Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

BesEmcDetectorMessenger Class Reference

#include <BesEmcDetectorMessenger.hh>

List of all members.

Public Member Functions

 BesEmcDetectorMessenger (BesEmcConstruction *, BesEmcGeometry *)
 BesEmcDetectorMessenger (BesEmcConstruction *, BesEmcGeometry *)
G4String GetCurrentValue (G4UIcommand *)
G4String GetCurrentValue (G4UIcommand *)
void SetNewValue (G4UIcommand *, G4String)
void SetNewValue (G4UIcommand *, G4String)
 ~BesEmcDetectorMessenger ()
 ~BesEmcDetectorMessenger ()

Private Attributes

G4UIdirectory * BesdetDir
G4UIdirectory * BesdetDir
BesEmcConstructionBesEmc
BesEmcConstructionBesEmc
G4UIcmdWithAString * CasingMaterCmd
G4UIcmdWithAString * CasingMaterCmd
G4UIcmdWith3VectorAndUnit * CasingThickCmd
G4UIcmdWith3VectorAndUnit * CasingThickCmd
G4UIcmdWithAString * CryMaterCmd
G4UIcmdWithAString * CryMaterCmd
BesEmcGeometryfBesEmcGeometry
BesEmcGeometryfBesEmcGeometry
G4UIcmdWithADoubleAndUnit * LengthCmd
G4UIcmdWithADoubleAndUnit * LengthCmd
G4UIcmdWithADoubleAndUnit * MagFieldCmd
G4UIcmdWithADoubleAndUnit * MagFieldCmd
G4UIcmdWithAnInteger * NbPhiCmd
G4UIcmdWithAnInteger * NbPhiCmd
G4UIcmdWithAnInteger * NbThetaCmd
G4UIcmdWithAnInteger * NbThetaCmd
G4UIcmdWithADoubleAndUnit * SizeRminCmd
G4UIcmdWithADoubleAndUnit * SizeRminCmd
G4UIcmdWithAnInteger * StartIDThetaCmd
G4UIcmdWithAnInteger * StartIDThetaCmd
G4UIcmdWithoutParameter * UpdateCmd
G4UIcmdWithoutParameter * UpdateCmd
G4UIcmdWithAnInteger * verboseCmd
G4UIcmdWithAnInteger * verboseCmd


Constructor & Destructor Documentation

BesEmcDetectorMessenger::BesEmcDetectorMessenger BesEmcConstruction ,
BesEmcGeometry
 

00027 :BesEmc(BesDet)
00028 { 
00029   fBesEmcGeometry=besEMCGeometry;
00030 
00031   BesdetDir = new G4UIdirectory("/calor/");
00032   BesdetDir->SetGuidance("Bes calorimeter detector control.");
00033 
00034   verboseCmd = new G4UIcmdWithAnInteger("/calor/verbose",this);
00035   verboseCmd->SetGuidance("Set Verbose level of calor management category.");
00036   verboseCmd->SetGuidance(" 0 : Important information");
00037   verboseCmd->SetGuidance(" 1 : Base information");
00038   verboseCmd->SetGuidance(" 2 : More...");
00039   verboseCmd->SetParameterName("level",true);
00040   verboseCmd->SetRange("level>=0");
00041   verboseCmd->SetDefaultValue(0);
00042       
00043   CryMaterCmd = new G4UIcmdWithAString("/calor/setCryMat",this);
00044   CryMaterCmd->SetGuidance("Select Material of the Crystal.");
00045   CryMaterCmd->SetParameterName("choice",true,true);
00046   //  CryMaterCmd->AvailableForStates(Idle);
00047   
00048   CasingMaterCmd = new G4UIcmdWithAString("/calor/setCasMat",this);
00049   CasingMaterCmd->SetGuidance("Select Material of the Casing.");
00050   CasingMaterCmd->SetParameterName("choice",true,true);
00051   //  CasingMaterCmd->AvailableForStates(Idle);
00052   
00053   CasingThickCmd = new G4UIcmdWith3VectorAndUnit("/calor/setCasThick",this);
00054   CasingThickCmd->SetGuidance("Set Thickness of the Casing");
00055   CasingThickCmd->SetParameterName("TyvekThk","AlThk","MylarThk",true);
00056   CasingThickCmd->SetRange("Size>=0.");
00057   CasingThickCmd->SetUnitCategory("Length"); 
00058   CasingThickCmd->SetDefaultValue(fBesEmcGeometry->GetCasingThickness()/mm);
00059   CasingThickCmd->SetDefaultUnit("mm");
00060   //  CasingThickCmd->AvailableForStates(Idle);
00061   
00062   SizeRminCmd = new G4UIcmdWithADoubleAndUnit("/calor/setSizeRmin",this);
00063   SizeRminCmd->SetGuidance("Set Rmin size of the barrel calorimeter");
00064   SizeRminCmd->SetParameterName("Size",true);
00065   SizeRminCmd->SetRange("Size>0.");
00066   SizeRminCmd->SetUnitCategory("Length");
00067   SizeRminCmd->SetDefaultValue(fBesEmcGeometry->GetBSCRmin()/cm);
00068   SizeRminCmd->SetDefaultUnit("cm");
00069   //  SizeRminCmd->AvailableForStates(Idle);
00070 
00071   NbPhiCmd = new G4UIcmdWithAnInteger("/calor/setNbPhi",this);
00072   NbPhiCmd->SetGuidance("Set number of crystals at phi direction.");
00073   NbPhiCmd->SetParameterName("NbCrystals",false);
00074   NbPhiCmd->SetRange("NbCrystals>0 && NbCrystals<=150");
00075   //  NbPhiCmd->AvailableForStates(Idle);
00076 
00077   NbThetaCmd = new G4UIcmdWithAnInteger("/calor/setNbTheta",this);
00078   NbThetaCmd->SetGuidance("Set number of crystals at theta direction.");
00079   NbThetaCmd->SetParameterName("NbCrystals",false);
00080   NbThetaCmd->SetRange("NbCrystals>0 && NbCrystals<=22");
00081   //  NbThetaCmd->AvailableForStates(Idle);
00082   
00083   StartIDThetaCmd = new G4UIcmdWithAnInteger("/calor/setStartTheta",this);
00084   StartIDThetaCmd->SetGuidance("Set ID of starting crystals at theta direction.");
00085   StartIDThetaCmd->SetParameterName("IDCrystal",false);
00086   StartIDThetaCmd->SetRange("IDCrystal>=0 && IDCrystal<22");
00087   //  StartIDThetaCmd->AvailableForStates(Idle);
00088 
00089   LengthCmd = new G4UIcmdWithADoubleAndUnit("/calor/setCryLength",this);
00090   LengthCmd->SetGuidance("Set Length of crystals of barrel calorimeter");
00091   LengthCmd->SetParameterName("Size",true);
00092   LengthCmd->SetRange("Size>0.");
00093   LengthCmd->SetUnitCategory("Length");
00094   LengthCmd->SetDefaultValue(fBesEmcGeometry->GetBSCCryLength()/cm);
00095   LengthCmd->SetDefaultUnit("cm");
00096   //  LengthCmd->AvailableForStates(Idle);
00097 
00098   UpdateCmd = new G4UIcmdWithoutParameter("/calor/update",this);
00099   UpdateCmd->SetGuidance("Update calorimeter geometry.");
00100   UpdateCmd->SetGuidance("This command MUST be applied before \"beamOn\" ");
00101   UpdateCmd->SetGuidance("if you changed geometrical value(s).");
00102   //  UpdateCmd->AvailableForStates(Idle);
00103       
00104   MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/calor/setField",this);  
00105   MagFieldCmd->SetGuidance("Define magnetic field.");
00106   MagFieldCmd->SetGuidance("Magnetic field will be in Z direction.");
00107   MagFieldCmd->SetParameterName("Bz",true);
00108   MagFieldCmd->SetRange("Bz>=0.");
00109   MagFieldCmd->SetUnitCategory("Magnetic flux density");
00110   MagFieldCmd->SetDefaultValue(BesEmc->GetMagField()/tesla);
00111   MagFieldCmd->SetDefaultUnit("tesla");
00112   //  MagFieldCmd->AvailableForStates(Idle);  
00113 }

BesEmcDetectorMessenger::~BesEmcDetectorMessenger  ) 
 

00118 {
00119   delete verboseCmd;
00120   delete LengthCmd; 
00121   delete NbPhiCmd; delete NbThetaCmd;
00122   delete StartIDThetaCmd;
00123   delete CryMaterCmd; delete CasingMaterCmd;
00124   delete CasingThickCmd;
00125   delete SizeRminCmd;
00126   delete UpdateCmd;
00127   delete MagFieldCmd;
00128   delete BesdetDir;
00129 }

BesEmcDetectorMessenger::BesEmcDetectorMessenger BesEmcConstruction ,
BesEmcGeometry
 

BesEmcDetectorMessenger::~BesEmcDetectorMessenger  ) 
 


Member Function Documentation

G4String BesEmcDetectorMessenger::GetCurrentValue G4UIcommand *   ) 
 

G4String BesEmcDetectorMessenger::GetCurrentValue G4UIcommand *   ) 
 

00174 {
00175   G4String cv;
00176 
00177   if( command == verboseCmd )
00178     { cv = verboseCmd->ConvertToString(BesEmc->GetVerboseLevel()); }
00179 
00180   if( command == CryMaterCmd )
00181     { cv = BesEmc->GetCrystalMaterial()->GetName(); }
00182 
00183   if( command == CasingMaterCmd )
00184     { cv = BesEmc->GetCasingMaterial()->GetName(); }
00185   
00186   return cv;
00187 }

void BesEmcDetectorMessenger::SetNewValue G4UIcommand *  ,
G4String 
 

void BesEmcDetectorMessenger::SetNewValue G4UIcommand *  ,
G4String 
 

00134 { 
00135   if( command == verboseCmd )
00136     { 
00137       BesEmc->SetVerboseLevel(verboseCmd->GetNewIntValue(newValue));
00138     }
00139   
00140   if( command == CryMaterCmd )
00141     { BesEmc->SetCrystalMaterial(newValue);}
00142    
00143   if( command == CasingMaterCmd )
00144     { BesEmc->SetCasingMaterial(newValue);}
00145   
00146   if( command == CasingThickCmd )
00147     { BesEmc->SetCasingThickness(CasingThickCmd->GetNew3VectorValue(newValue));}
00148   
00149   if( command == SizeRminCmd )
00150     { BesEmc->SetBSCRmin(SizeRminCmd->GetNewDoubleValue(newValue));}
00151 
00152   if( command == NbPhiCmd )
00153     { BesEmc->SetBSCNbPhi(NbPhiCmd->GetNewIntValue(newValue));}
00154   
00155   if( command == NbThetaCmd )
00156     { BesEmc->SetBSCNbTheta(NbThetaCmd->GetNewIntValue(newValue));}
00157 
00158   if( command == StartIDThetaCmd )
00159     { BesEmc->SetStartIDTheta(StartIDThetaCmd->GetNewIntValue(newValue));}
00160 
00161   if( command == LengthCmd )
00162     { BesEmc->SetBSCCrystalLength(LengthCmd->GetNewDoubleValue(newValue));}
00163 
00164   if( command == UpdateCmd )
00165     { BesEmc->UpdateGeometry(); }
00166 
00167   if( command == MagFieldCmd )
00168     { BesEmc->SetMagField(MagFieldCmd->GetNewDoubleValue(newValue));}
00169 }


Member Data Documentation

G4UIdirectory* BesEmcDetectorMessenger::BesdetDir [private]
 

G4UIdirectory* BesEmcDetectorMessenger::BesdetDir [private]
 

BesEmcConstruction* BesEmcDetectorMessenger::BesEmc [private]
 

BesEmcConstruction* BesEmcDetectorMessenger::BesEmc [private]
 

G4UIcmdWithAString* BesEmcDetectorMessenger::CasingMaterCmd [private]
 

G4UIcmdWithAString* BesEmcDetectorMessenger::CasingMaterCmd [private]
 

G4UIcmdWith3VectorAndUnit* BesEmcDetectorMessenger::CasingThickCmd [private]
 

G4UIcmdWith3VectorAndUnit* BesEmcDetectorMessenger::CasingThickCmd [private]
 

G4UIcmdWithAString* BesEmcDetectorMessenger::CryMaterCmd [private]
 

G4UIcmdWithAString* BesEmcDetectorMessenger::CryMaterCmd [private]
 

BesEmcGeometry* BesEmcDetectorMessenger::fBesEmcGeometry [private]
 

BesEmcGeometry* BesEmcDetectorMessenger::fBesEmcGeometry [private]
 

G4UIcmdWithADoubleAndUnit* BesEmcDetectorMessenger::LengthCmd [private]
 

G4UIcmdWithADoubleAndUnit* BesEmcDetectorMessenger::LengthCmd [private]
 

G4UIcmdWithADoubleAndUnit* BesEmcDetectorMessenger::MagFieldCmd [private]
 

G4UIcmdWithADoubleAndUnit* BesEmcDetectorMessenger::MagFieldCmd [private]
 

G4UIcmdWithAnInteger* BesEmcDetectorMessenger::NbPhiCmd [private]
 

G4UIcmdWithAnInteger* BesEmcDetectorMessenger::NbPhiCmd [private]
 

G4UIcmdWithAnInteger* BesEmcDetectorMessenger::NbThetaCmd [private]
 

G4UIcmdWithAnInteger* BesEmcDetectorMessenger::NbThetaCmd [private]
 

G4UIcmdWithADoubleAndUnit* BesEmcDetectorMessenger::SizeRminCmd [private]
 

G4UIcmdWithADoubleAndUnit* BesEmcDetectorMessenger::SizeRminCmd [private]
 

G4UIcmdWithAnInteger* BesEmcDetectorMessenger::StartIDThetaCmd [private]
 

G4UIcmdWithAnInteger* BesEmcDetectorMessenger::StartIDThetaCmd [private]
 

G4UIcmdWithoutParameter* BesEmcDetectorMessenger::UpdateCmd [private]
 

G4UIcmdWithoutParameter* BesEmcDetectorMessenger::UpdateCmd [private]
 

G4UIcmdWithAnInteger* BesEmcDetectorMessenger::verboseCmd [private]
 

G4UIcmdWithAnInteger* BesEmcDetectorMessenger::verboseCmd [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 15:52:12 2011 for BOSS6.5.5 by  doxygen 1.3.9.1