BOSS 7.0.3
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)
 
 BesMagneticFieldMessenger (BesMagneticField *)
 
 ~BesMagneticFieldMessenger ()
 
void SetNewValue (G4UIcommand *, G4String)
 

Detailed Description

Constructor & Destructor Documentation

◆ BesMagneticFieldMessenger() [1/2]

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() [1/2]

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}

◆ BesMagneticFieldMessenger() [2/2]

BesMagneticFieldMessenger::BesMagneticFieldMessenger ( BesMagneticField )

◆ ~BesMagneticFieldMessenger() [2/2]

BesMagneticFieldMessenger::~BesMagneticFieldMessenger ( )

Member Function Documentation

◆ SetNewValue() [1/2]

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 SetMinimumEpsilonStep(double newvalue)
void SetDeltaOneStep(double newvalue)

◆ SetNewValue() [2/2]

void BesMagneticFieldMessenger::SetNewValue ( G4UIcommand *  ,
G4String   
)

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