MyGlobalFieldMessenger Class Reference

#include <MyGlobalFieldMessenger.hh>

List of all members.

Public Member Functions

 MyGlobalFieldMessenger (MyGlobalField *)
 ~MyGlobalFieldMessenger ()
void SetNewValue (G4UIcommand *, G4String)
void SetNewValue (G4UIcommand *, G4int)

Private Attributes

MyGlobalFieldfGlobalField
G4UIdirectory * detDir
G4UIcmdWith3VectorAndUnit * fGetFieldCMD
G4UIcmdWithAnInteger * fVerboseCMD
G4int fVerbose
G4UIcmdWithAnInteger * fStepperCMD
G4UIcmdWithADoubleAndUnit * fMinStepCMD
G4UIcmdWithADoubleAndUnit * fDeltaChordCMD
G4UIcmdWithADoubleAndUnit * fDeltaOneStepCMD
G4UIcmdWithADoubleAndUnit * fDeltaIntersectionCMD
G4UIcmdWithADoubleAndUnit * fEpsMinCMD
G4UIcmdWithADoubleAndUnit * fEpsMaxCMD
G4UIcmdWithoutParameter * fUpdateCMD

Detailed Description

Definition at line 47 of file MyGlobalFieldMessenger.hh.


Constructor & Destructor Documentation

MyGlobalFieldMessenger::MyGlobalFieldMessenger ( MyGlobalField pEMfield  ) 

Definition at line 41 of file MyGlobalFieldMessenger.cc.

References detDir, fDeltaChordCMD, fDeltaIntersectionCMD, fDeltaOneStepCMD, fEpsMaxCMD, fEpsMinCMD, fGetFieldCMD, fMinStepCMD, fStepperCMD, fUpdateCMD, fVerbose, and fVerboseCMD.

00042 : fGlobalField(pEMfield) {
00043     detDir = new G4UIdirectory("/field/");
00044     detDir->SetGuidance(" Field tracking control ");
00045 
00046     fVerboseCMD = new G4UIcmdWithAnInteger("/field/verbose",this);
00047     fVerboseCMD->SetGuidance("Verbosity of getField command");
00048     fVerboseCMD->SetParameterName("verbose",true);
00049     fVerboseCMD->SetDefaultValue(1);
00050     fVerboseCMD->AvailableForStates(G4State_PreInit,G4State_Idle);
00051     fVerbose=1;
00052 
00053     fGetFieldCMD =
00054         new G4UIcmdWith3VectorAndUnit("/field/getField",this);
00055     fGetFieldCMD->
00056         SetGuidance("Get the B field at the position.");
00057     fGetFieldCMD->SetParameterName("GlobalPosX","GlobalPosY","GlobalPosZ",false);
00058     fGetFieldCMD->SetUnitCategory("Length");
00059     fGetFieldCMD->AvailableForStates(G4State_Idle);
00060 
00061     fStepperCMD = new G4UIcmdWithAnInteger("/field/setStepperType",this);
00062     fStepperCMD->SetGuidance("Select stepper type for field");
00063     fStepperCMD->SetParameterName("choice",true);
00064     fStepperCMD->SetDefaultValue(4);
00065     fStepperCMD->AvailableForStates(G4State_PreInit,G4State_Idle);
00066 
00067     fUpdateCMD = new G4UIcmdWithoutParameter("/field/update",this);
00068     fUpdateCMD->SetGuidance("Update Field");
00069     fUpdateCMD->SetGuidance("This command MUST be applied before \"beamOn\" ");
00070     fUpdateCMD->SetGuidance("if you changed field settings.");
00071     fUpdateCMD->AvailableForStates(G4State_PreInit,G4State_Idle);
00072 
00073     fMinStepCMD = new G4UIcmdWithADoubleAndUnit("/field/setMinStep",this);
00074     fMinStepCMD->SetGuidance("Define minimal step");
00075     fMinStepCMD->SetParameterName("min step",false,false);
00076     fMinStepCMD->SetDefaultUnit("mm");
00077     fMinStepCMD->AvailableForStates(G4State_PreInit,G4State_Idle);
00078 
00079     fDeltaChordCMD = new G4UIcmdWithADoubleAndUnit("/field/setDeltaChord",this);
00080     fDeltaChordCMD->SetGuidance("Define delta chord");
00081     fDeltaChordCMD->SetParameterName("delta chord",false,false);
00082     fDeltaChordCMD->SetDefaultUnit("mm");
00083     fDeltaChordCMD->AvailableForStates(G4State_PreInit,G4State_Idle);
00084 
00085     fDeltaOneStepCMD =
00086         new G4UIcmdWithADoubleAndUnit("/field/setDeltaOneStep",this);
00087     fDeltaOneStepCMD->SetGuidance("Define delta one step");
00088     fDeltaOneStepCMD->SetParameterName("delta one step",false,false);
00089     fDeltaOneStepCMD->SetDefaultUnit("mm");
00090     fDeltaOneStepCMD->AvailableForStates(G4State_PreInit,G4State_Idle);
00091 
00092     fDeltaIntersectionCMD =
00093         new G4UIcmdWithADoubleAndUnit("/field/setDeltaIntersection",this);
00094     fDeltaIntersectionCMD->SetGuidance("Define delta intersection");
00095     fDeltaIntersectionCMD->SetParameterName("delta intersection",false,false);
00096     fDeltaIntersectionCMD->SetDefaultUnit("mm");
00097     fDeltaIntersectionCMD->AvailableForStates(G4State_PreInit,G4State_Idle);
00098 
00099     fEpsMinCMD = new G4UIcmdWithADoubleAndUnit("/field/setEpsMin",this);
00100     fEpsMinCMD->SetGuidance("Define eps min");
00101     fEpsMinCMD->SetParameterName("eps min",false,false);
00102     fEpsMinCMD->SetDefaultUnit("mm");
00103     fEpsMinCMD->AvailableForStates(G4State_PreInit,G4State_Idle);
00104 
00105     fEpsMaxCMD = new G4UIcmdWithADoubleAndUnit("/field/setEpsMax",this);
00106     fEpsMaxCMD->SetGuidance("Define eps max");
00107     fEpsMaxCMD->SetParameterName("eps max",false,false);
00108     fEpsMaxCMD->SetDefaultUnit("mm");
00109     fEpsMaxCMD->AvailableForStates(G4State_PreInit,G4State_Idle);
00110 }

MyGlobalFieldMessenger::~MyGlobalFieldMessenger (  ) 

Definition at line 113 of file MyGlobalFieldMessenger.cc.

References detDir, fDeltaChordCMD, fDeltaIntersectionCMD, fDeltaOneStepCMD, fEpsMaxCMD, fEpsMinCMD, fGetFieldCMD, fMinStepCMD, fStepperCMD, fUpdateCMD, and fVerboseCMD.

00113                                                 {
00114     delete detDir;
00115 
00116     delete fGetFieldCMD;
00117     delete fVerboseCMD;
00118 
00119     delete fStepperCMD;
00120     delete fMinStepCMD;
00121     delete fDeltaChordCMD;
00122     delete fDeltaOneStepCMD;
00123     delete fDeltaIntersectionCMD;
00124     delete fEpsMinCMD;
00125     delete fEpsMaxCMD;
00126     delete fUpdateCMD;
00127 }


Member Function Documentation

void MyGlobalFieldMessenger::SetNewValue ( G4UIcommand *  ,
G4int   
)
void MyGlobalFieldMessenger::SetNewValue ( G4UIcommand *  command,
G4String  newValue 
)

Definition at line 130 of file MyGlobalFieldMessenger.cc.

References fDeltaChordCMD, fDeltaIntersectionCMD, fDeltaOneStepCMD, fEpsMaxCMD, fEpsMinCMD, fGetFieldCMD, fGlobalField, fMinStepCMD, fStepperCMD, fUpdateCMD, fVerbose, fVerboseCMD, MyGlobalField::GetFieldValue(), MyGlobalField::SetDeltaChord(), MyGlobalField::SetEpsMax(), MyGlobalField::SetEpsMin(), MyGlobalField::SetMinStep(), MyGlobalField::SetStepperType(), and MyGlobalField::updateField().

00130                                                                                  {
00131     if( command == fGetFieldCMD ) {
00132         G4ThreeVector aPos = fGetFieldCMD->GetNew3VectorValue(newValue);
00133         G4double aPosVec[3];
00134         aPosVec[0] = aPos.x();
00135         aPosVec[1] = aPos.y();
00136         aPosVec[2] = aPos.z();
00137 
00138         G4double theField[6];
00139         fGlobalField->GetFieldValue(aPosVec, theField);
00140         if(fVerbose>0) {
00141             G4cout << "Point = [" << aPosVec[0]/mm << ", "
00142                 << aPosVec[1]/mm << ", " << aPosVec[2]/mm << "] mm" << G4endl;
00143             G4cout << "  Field = ["
00144                 << theField[0]/tesla << ", " << theField[1]/tesla
00145                 << ", " << theField[2]/tesla << "] T "
00146                 << " [" << theField[3] << ", " << theField[4]
00147                 << ", " << theField[5] << "] V/m" << G4endl;
00148         }
00149         else {
00150             G4cout << aPosVec[0]/mm << " " << aPosVec[1]/mm << " "
00151                 << aPosVec[2]/mm << " " << theField[0]/tesla << " "
00152                 << theField[1]/tesla << " " << theField[2]/tesla << " "
00153                 << theField[3] << " " << theField[4] << " " << theField[5]
00154                 << G4endl;
00155         }
00156     }
00157 
00158     if( command == fVerboseCMD ) {
00159         fVerbose=fStepperCMD->GetNewIntValue(newValue);
00160     }
00161 
00162     if( command == fStepperCMD ) {
00163         fGlobalField->SetStepperType(fStepperCMD->GetNewIntValue(newValue));
00164     }
00165     if( command == fUpdateCMD ) {
00166         fGlobalField->updateField();
00167     }
00168     if( command == fMinStepCMD ) {
00169         fGlobalField->SetMinStep(fMinStepCMD->GetNewDoubleValue(newValue));
00170     }
00171     if( command == fDeltaChordCMD ) {
00172         fGlobalField->SetDeltaChord(fDeltaChordCMD->GetNewDoubleValue(newValue));
00173     }
00174     if( command == fDeltaOneStepCMD ) {
00175         fGlobalField->
00176             SetDeltaOneStep(fDeltaOneStepCMD->GetNewDoubleValue(newValue));
00177     }
00178     if( command == fDeltaIntersectionCMD ) {
00179         fGlobalField->
00180             SetDeltaIntersection(fDeltaIntersectionCMD->GetNewDoubleValue(newValue));
00181     }
00182     if( command == fEpsMinCMD ) {
00183         fGlobalField->SetEpsMin(fEpsMinCMD->GetNewDoubleValue(newValue));
00184     }
00185     if( command == fEpsMaxCMD ) {
00186         fGlobalField->SetEpsMax(fEpsMaxCMD->GetNewDoubleValue(newValue));
00187     }
00188 }


Member Data Documentation

G4UIdirectory* MyGlobalFieldMessenger::detDir [private]

Definition at line 59 of file MyGlobalFieldMessenger.hh.

Referenced by MyGlobalFieldMessenger(), and ~MyGlobalFieldMessenger().

G4UIcmdWithADoubleAndUnit* MyGlobalFieldMessenger::fDeltaChordCMD [private]
G4UIcmdWithADoubleAndUnit* MyGlobalFieldMessenger::fDeltaIntersectionCMD [private]
G4UIcmdWithADoubleAndUnit* MyGlobalFieldMessenger::fDeltaOneStepCMD [private]
G4UIcmdWithADoubleAndUnit* MyGlobalFieldMessenger::fEpsMaxCMD [private]
G4UIcmdWithADoubleAndUnit* MyGlobalFieldMessenger::fEpsMinCMD [private]
G4UIcmdWith3VectorAndUnit* MyGlobalFieldMessenger::fGetFieldCMD [private]

Definition at line 57 of file MyGlobalFieldMessenger.hh.

Referenced by SetNewValue().

G4UIcmdWithADoubleAndUnit* MyGlobalFieldMessenger::fMinStepCMD [private]
G4UIcmdWithAnInteger* MyGlobalFieldMessenger::fStepperCMD [private]
G4UIcmdWithoutParameter* MyGlobalFieldMessenger::fUpdateCMD [private]

Definition at line 63 of file MyGlobalFieldMessenger.hh.

Referenced by MyGlobalFieldMessenger(), and SetNewValue().

G4UIcmdWithAnInteger* MyGlobalFieldMessenger::fVerboseCMD [private]

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

Generated on 15 Jun 2016 for g4sim by  doxygen 1.6.1