-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfield.cc
45 lines (35 loc) · 980 Bytes
/
field.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "field.hh"
#include "G4GenericMessenger.hh"
#include "globals.hh"
#include "G4SystemOfUnits.hh"
#include "G4UniformMagField.hh"
#include "G4MagneticField.hh"
#include "G4FieldManager.hh"
#include "G4TransportationManager.hh"
MagneticField::MagneticField()
{
DefineCommands();
}
MagneticField::~MagneticField()
{
delete fMessenger;
}
void MagneticField::GetFieldValue(const G4double [4],double *bField) const
{
bField[0] = fBy;
bField[1] = 0.;
bField[2] = 0.;
}
void MagneticField::DefineCommands()
{
fMessenger = new G4GenericMessenger(this,
"/exp/field/",
"Field control");
// fieldValue command
auto& valueCmd
= fMessenger->DeclareMethodWithUnit("value","tesla",
&MagneticField::SetField,
"Set field strength.");
valueCmd.SetParameterName("field", true);
valueCmd.SetDefaultValue("-0.5");
}