BesMagneticFieldMessenger Class Reference

#include <BesMagneticFieldMessenger.hh>

List of all members.

Public Member Functions

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

Private Attributes

BesMagneticFieldfEMfieldSetup
G4UIdirectory * F01detDir
G4UIcmdWithAnInteger * StepperCmd
G4UIcmdWithADouble * MaximumEpsilonStepCmd
G4UIcmdWithADouble * MinimumEpsilonStepCmd
G4UIcmdWithADoubleAndUnit * MinStepCmd
G4UIcmdWithADoubleAndUnit * DeltaIntersectionCmd
G4UIcmdWithADoubleAndUnit * DeltaOneStepCmd


Detailed Description

Definition at line 15 of file BesMagneticFieldMessenger.hh.


Constructor & Destructor Documentation

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 }


Member Function Documentation

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 }


Member Data Documentation

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().

BesMagneticField* BesMagneticFieldMessenger::fEMfieldSetup [private]

Definition at line 23 of file BesMagneticFieldMessenger.hh.

Referenced by SetNewValue().

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().


Generated on Tue Nov 29 23:17:32 2016 for BOSS_7.0.2 by  doxygen 1.4.7