#include <BesMagneticFieldMessenger.hh>
Public Member Functions | |
BesMagneticFieldMessenger (BesMagneticField *) | |
~BesMagneticFieldMessenger () | |
void | SetNewValue (G4UIcommand *, G4String) |
Private Attributes | |
BesMagneticField * | fEMfieldSetup |
G4UIdirectory * | F01detDir |
G4UIcmdWithAnInteger * | StepperCmd |
G4UIcmdWithADouble * | MaximumEpsilonStepCmd |
G4UIcmdWithADouble * | MinimumEpsilonStepCmd |
G4UIcmdWithADoubleAndUnit * | MinStepCmd |
G4UIcmdWithADoubleAndUnit * | DeltaIntersectionCmd |
G4UIcmdWithADoubleAndUnit * | DeltaOneStepCmd |
Definition at line 15 of file BesMagneticFieldMessenger.hh.
BesMagneticFieldMessenger::BesMagneticFieldMessenger | ( | BesMagneticField * | ) |
Definition at line 12 of file BesMagneticFieldMessenger.cc.
References DeltaIntersectionCmd, DeltaOneStepCmd, F01detDir, MaximumEpsilonStepCmd, MinimumEpsilonStepCmd, MinStepCmd, and StepperCmd.
00012 :fEMfieldSetup(pEMfieldSetup) 00013 { 00014 F01detDir= new G4UIdirectory("/field/"); 00015 F01detDir->SetGuidance("Bes MagneticField tracking control."); 00016 00017 StepperCmd= new G4UIcmdWithAnInteger("/field/SetStepperType",this); 00018 StepperCmd->SetGuidance("Select stepper type for magnetic field"); 00019 StepperCmd->SetParameterName("choice",true); 00020 StepperCmd->SetDefaultValue(4); 00021 StepperCmd->SetRange("choice>=0&&choice<=9"); 00022 00023 MinStepCmd= new G4UIcmdWithADoubleAndUnit("/field/SetMinStep",this); 00024 MinStepCmd->SetGuidance("Please change it carefully,it is better keep it const"); 00025 MinStepCmd->SetParameterName("MinStep",true); 00026 MinStepCmd->SetDefaultUnit("mm"); 00027 MinStepCmd->SetDefaultValue(0.01); 00028 MinStepCmd->SetRange("MinStep>=0&&MinStep<=1"); 00029 00030 DeltaOneStepCmd= new G4UIcmdWithADoubleAndUnit("/field/SetDeltaOneStep",this); 00031 DeltaOneStepCmd->SetGuidance("Set DeltaOneStep for tracking"); 00032 DeltaOneStepCmd->SetParameterName("DeltaOneStep",true); 00033 DeltaOneStepCmd->SetDefaultUnit("mm"); 00034 DeltaOneStepCmd->SetDefaultValue(0.01); 00035 DeltaOneStepCmd->SetRange("DeltaOneStep>=0"); 00036 00037 DeltaIntersectionCmd=new G4UIcmdWithADoubleAndUnit("/field/SetDeltaIntersection",this); 00038 DeltaIntersectionCmd->SetGuidance("Set DeltaIntersection for tracking"); 00039 DeltaIntersectionCmd->SetParameterName("DeltaIntersection",true); 00040 DeltaIntersectionCmd->SetDefaultUnit("mm"); 00041 DeltaIntersectionCmd->SetDefaultValue(0.001); 00042 DeltaIntersectionCmd->SetRange("DeltaIntersection>=0"); 00043 00044 MinimumEpsilonStepCmd=new G4UIcmdWithADouble("/field/SetMinimumEpsilonStep",this); 00045 MinimumEpsilonStepCmd->SetGuidance("Set Minimum Epsilon Step for tracking"); 00046 MinimumEpsilonStepCmd->SetParameterName("MinimumEpsilonStep",true); 00047 MinimumEpsilonStepCmd->SetDefaultValue(5.0e-5); 00048 MinimumEpsilonStepCmd->SetRange("MinimumEpsilonStep>=0"); 00049 00050 MaximumEpsilonStepCmd=new G4UIcmdWithADouble("/field/SetMaximumEpsilonStep",this); 00051 MaximumEpsilonStepCmd->SetGuidance("Set Maximum Epsilon Step for tracking"); 00052 MaximumEpsilonStepCmd->SetParameterName("MaximumEpsilonStep",true); 00053 MaximumEpsilonStepCmd->SetDefaultValue(1.0e-3); 00054 MaximumEpsilonStepCmd->SetRange("MaximumEpsilonStep>=0"); 00055 }
BesMagneticFieldMessenger::~BesMagneticFieldMessenger | ( | ) |
Definition at line 57 of file BesMagneticFieldMessenger.cc.
References DeltaIntersectionCmd, DeltaOneStepCmd, F01detDir, MaximumEpsilonStepCmd, MinimumEpsilonStepCmd, MinStepCmd, and StepperCmd.
00058 { 00059 delete MaximumEpsilonStepCmd; 00060 delete MinimumEpsilonStepCmd; 00061 delete DeltaIntersectionCmd; 00062 delete DeltaOneStepCmd; 00063 delete MinStepCmd; 00064 delete StepperCmd; 00065 delete F01detDir; 00066 }
void BesMagneticFieldMessenger::SetNewValue | ( | G4UIcommand * | , | |
G4String | ||||
) |
Definition at line 68 of file BesMagneticFieldMessenger.cc.
References BesMagneticField::CreateStepperAndChordFinder(), DeltaIntersectionCmd, DeltaOneStepCmd, fEMfieldSetup, MaximumEpsilonStepCmd, MinimumEpsilonStepCmd, MinStepCmd, BesMagneticField::SetDeltaIntersection(), BesMagneticField::SetDeltaOneStep(), BesMagneticField::SetMaximumEpsilonStep(), BesMagneticField::SetMinimumEpsilonStep(), BesMagneticField::SetMinStep(), BesMagneticField::SetStepperType(), and StepperCmd.
00069 { 00070 //Please don't change the order of code ,it will make some parameters useless if you do that. 00071 if(command==StepperCmd) 00072 { 00073 fEMfieldSetup->SetStepperType(StepperCmd->GetNewIntValue(newvalue)); 00074 fEMfieldSetup->CreateStepperAndChordFinder(); 00075 } 00076 if(command==MinStepCmd) 00077 { 00078 fEMfieldSetup->SetMinStep(MinStepCmd->GetNewDoubleValue(newvalue)); 00079 fEMfieldSetup->CreateStepperAndChordFinder(); 00080 } 00081 if(command==DeltaOneStepCmd) 00082 { 00083 fEMfieldSetup->SetDeltaOneStep(DeltaOneStepCmd->GetNewDoubleValue(newvalue)); 00084 } 00085 if(command==DeltaIntersectionCmd) 00086 { 00087 fEMfieldSetup->SetDeltaIntersection(DeltaIntersectionCmd->GetNewDoubleValue(newvalue)); 00088 } 00089 if(command==MinimumEpsilonStepCmd) 00090 { 00091 fEMfieldSetup->SetMinimumEpsilonStep(MinimumEpsilonStepCmd->GetNewDoubleValue(newvalue)); 00092 } 00093 if(command==MaximumEpsilonStepCmd) 00094 { 00095 fEMfieldSetup->SetMaximumEpsilonStep(MaximumEpsilonStepCmd->GetNewDoubleValue(newvalue)); 00096 } 00097 00098 }
G4UIcmdWithADoubleAndUnit* BesMagneticFieldMessenger::DeltaIntersectionCmd [private] |
Definition at line 29 of file BesMagneticFieldMessenger.hh.
Referenced by BesMagneticFieldMessenger(), SetNewValue(), and ~BesMagneticFieldMessenger().
G4UIcmdWithADoubleAndUnit* BesMagneticFieldMessenger::DeltaOneStepCmd [private] |
Definition at line 30 of file BesMagneticFieldMessenger.hh.
Referenced by BesMagneticFieldMessenger(), SetNewValue(), and ~BesMagneticFieldMessenger().
G4UIdirectory* BesMagneticFieldMessenger::F01detDir [private] |
Definition at line 24 of file BesMagneticFieldMessenger.hh.
Referenced by BesMagneticFieldMessenger(), and ~BesMagneticFieldMessenger().
G4UIcmdWithADouble* BesMagneticFieldMessenger::MaximumEpsilonStepCmd [private] |
Definition at line 26 of file BesMagneticFieldMessenger.hh.
Referenced by BesMagneticFieldMessenger(), SetNewValue(), and ~BesMagneticFieldMessenger().
G4UIcmdWithADouble* BesMagneticFieldMessenger::MinimumEpsilonStepCmd [private] |
Definition at line 27 of file BesMagneticFieldMessenger.hh.
Referenced by BesMagneticFieldMessenger(), SetNewValue(), and ~BesMagneticFieldMessenger().
G4UIcmdWithADoubleAndUnit* BesMagneticFieldMessenger::MinStepCmd [private] |
Definition at line 28 of file BesMagneticFieldMessenger.hh.
Referenced by BesMagneticFieldMessenger(), SetNewValue(), and ~BesMagneticFieldMessenger().
G4UIcmdWithAnInteger* BesMagneticFieldMessenger::StepperCmd [private] |
Definition at line 25 of file BesMagneticFieldMessenger.hh.
Referenced by BesMagneticFieldMessenger(), SetNewValue(), and ~BesMagneticFieldMessenger().