BOSS 6.6.4.p03
BESIII Offline Software System
Loading...
Searching...
No Matches
BesMagneticFieldMessenger Class Reference

#include <BesMagneticFieldMessenger.hh>

+ Inheritance diagram for BesMagneticFieldMessenger:

Public Member Functions

 BesMagneticFieldMessenger (BesMagneticField *)
 
 ~BesMagneticFieldMessenger ()
 
void SetNewValue (G4UIcommand *, G4String)
 

Detailed Description

Definition at line 15 of file BesMagneticFieldMessenger.hh.

Constructor & Destructor Documentation

◆ BesMagneticFieldMessenger()

BesMagneticFieldMessenger::BesMagneticFieldMessenger ( BesMagneticField pEMfieldSetup)

Definition at line 12 of file BesMagneticFieldMessenger.cc.

12 :fEMfieldSetup(pEMfieldSetup)
13{
14 F01detDir= new G4UIdirectory("/field/");
15 F01detDir->SetGuidance("Bes MagneticField tracking control.");
16
17 StepperCmd= new G4UIcmdWithAnInteger("/field/SetStepperType",this);
18 StepperCmd->SetGuidance("Select stepper type for magnetic field");
19 StepperCmd->SetParameterName("choice",true);
20 StepperCmd->SetDefaultValue(4);
21 StepperCmd->SetRange("choice>=0&&choice<=9");
22
23 MinStepCmd= new G4UIcmdWithADoubleAndUnit("/field/SetMinStep",this);
24 MinStepCmd->SetGuidance("Please change it carefully,it is better keep it const");
25 MinStepCmd->SetParameterName("MinStep",true);
26 MinStepCmd->SetDefaultUnit("mm");
27 MinStepCmd->SetDefaultValue(0.01);
28 MinStepCmd->SetRange("MinStep>=0&&MinStep<=1");
29
30 DeltaOneStepCmd= new G4UIcmdWithADoubleAndUnit("/field/SetDeltaOneStep",this);
31 DeltaOneStepCmd->SetGuidance("Set DeltaOneStep for tracking");
32 DeltaOneStepCmd->SetParameterName("DeltaOneStep",true);
33 DeltaOneStepCmd->SetDefaultUnit("mm");
34 DeltaOneStepCmd->SetDefaultValue(0.01);
35 DeltaOneStepCmd->SetRange("DeltaOneStep>=0");
36
37 DeltaIntersectionCmd=new G4UIcmdWithADoubleAndUnit("/field/SetDeltaIntersection",this);
38 DeltaIntersectionCmd->SetGuidance("Set DeltaIntersection for tracking");
39 DeltaIntersectionCmd->SetParameterName("DeltaIntersection",true);
40 DeltaIntersectionCmd->SetDefaultUnit("mm");
41 DeltaIntersectionCmd->SetDefaultValue(0.001);
42 DeltaIntersectionCmd->SetRange("DeltaIntersection>=0");
43
44 MinimumEpsilonStepCmd=new G4UIcmdWithADouble("/field/SetMinimumEpsilonStep",this);
45 MinimumEpsilonStepCmd->SetGuidance("Set Minimum Epsilon Step for tracking");
46 MinimumEpsilonStepCmd->SetParameterName("MinimumEpsilonStep",true);
47 MinimumEpsilonStepCmd->SetDefaultValue(5.0e-5);
48 MinimumEpsilonStepCmd->SetRange("MinimumEpsilonStep>=0");
49
50 MaximumEpsilonStepCmd=new G4UIcmdWithADouble("/field/SetMaximumEpsilonStep",this);
51 MaximumEpsilonStepCmd->SetGuidance("Set Maximum Epsilon Step for tracking");
52 MaximumEpsilonStepCmd->SetParameterName("MaximumEpsilonStep",true);
53 MaximumEpsilonStepCmd->SetDefaultValue(1.0e-3);
54 MaximumEpsilonStepCmd->SetRange("MaximumEpsilonStep>=0");
55}

◆ ~BesMagneticFieldMessenger()

BesMagneticFieldMessenger::~BesMagneticFieldMessenger ( )

Definition at line 57 of file BesMagneticFieldMessenger.cc.

58{
59 delete MaximumEpsilonStepCmd;
60 delete MinimumEpsilonStepCmd;
61 delete DeltaIntersectionCmd;
62 delete DeltaOneStepCmd;
63 delete MinStepCmd;
64 delete StepperCmd;
65 delete F01detDir;
66}

Member Function Documentation

◆ SetNewValue()

void BesMagneticFieldMessenger::SetNewValue ( G4UIcommand *  command,
G4String  newvalue 
)

Definition at line 68 of file BesMagneticFieldMessenger.cc.

69{
70//Please don't change the order of code ,it will make some parameters useless if you do that.
71 if(command==StepperCmd)
72 {
73 fEMfieldSetup->SetStepperType(StepperCmd->GetNewIntValue(newvalue));
74 fEMfieldSetup->CreateStepperAndChordFinder();
75 }
76 if(command==MinStepCmd)
77 {
78 fEMfieldSetup->SetMinStep(MinStepCmd->GetNewDoubleValue(newvalue));
79 fEMfieldSetup->CreateStepperAndChordFinder();
80 }
81 if(command==DeltaOneStepCmd)
82 {
83 fEMfieldSetup->SetDeltaOneStep(DeltaOneStepCmd->GetNewDoubleValue(newvalue));
84 }
85 if(command==DeltaIntersectionCmd)
86 {
87 fEMfieldSetup->SetDeltaIntersection(DeltaIntersectionCmd->GetNewDoubleValue(newvalue));
88 }
89 if(command==MinimumEpsilonStepCmd)
90 {
91 fEMfieldSetup->SetMinimumEpsilonStep(MinimumEpsilonStepCmd->GetNewDoubleValue(newvalue));
92 }
93 if(command==MaximumEpsilonStepCmd)
94 {
95 fEMfieldSetup->SetMaximumEpsilonStep(MaximumEpsilonStepCmd->GetNewDoubleValue(newvalue));
96 }
97
98}
void SetMaximumEpsilonStep(double newvalue)
void CreateStepperAndChordFinder()
void SetDeltaIntersection(double newvalue)
void SetStepperType(G4int i)
void SetMinimumEpsilonStep(double newvalue)
void SetMinStep(G4double s)
void SetDeltaOneStep(double newvalue)

The documentation for this class was generated from the following files: