#include <BesMdcDigitizerMessenger.hh>
Public Member Functions | |
BesMdcDigitizerMessenger (BesMdcDigitizer *) | |
~BesMdcDigitizerMessenger () | |
void | SetNewValue (G4UIcommand *command, G4String newValues) |
Private Attributes | |
BesMdcDigitizer * | mdcDigitizer |
G4UIdirectory * | noiseDirectory |
G4UIcmdWithAnInteger * | noiseFlag |
G4UIcmdWithAnInteger * | noiseType |
G4UIcmdWithADouble * | noiseLevel |
G4UIdirectory * | digiDirectory |
G4UIcmdWithAnInteger * | smearFlag |
G4UIcmdWithADouble * | mdcDRes |
G4UIdirectory * | effDirectory |
G4UIcmdWithAnInteger * | effFlag |
G4UIcommand * | layerEff |
Definition at line 24 of file BesMdcDigitizerMessenger.hh.
BesMdcDigitizerMessenger::BesMdcDigitizerMessenger | ( | BesMdcDigitizer * | ) |
Definition at line 21 of file BesMdcDigitizerMessenger.cc.
References digiDirectory, effDirectory, effFlag, layerEff, mdcDRes, noiseDirectory, noiseFlag, noiseLevel, noiseType, and smearFlag.
00022 :mdcDigitizer(pointer) 00023 { 00024 noiseDirectory = new G4UIdirectory("/mdc/noise/"); 00025 noiseDirectory->SetGuidance("BESIII MDC noise control"); 00026 00027 //Noise On/Off command 00028 noiseFlag = new G4UIcmdWithAnInteger("/mdc/noise/flag",this); 00029 noiseFlag->SetGuidance("whether to add noise to MdcDigi."); 00030 noiseFlag->SetParameterName("MdcNoiseFlag",false); 00031 noiseFlag->SetRange("MdcNoiseFlag>=0"); 00032 // noiseFlag->SetDefaultValue(0); 00033 00034 //Noise type command 00035 noiseType = new G4UIcmdWithAnInteger("/mdc/noise/type",this); 00036 noiseType->SetGuidance("select noise type."); 00037 noiseType->SetParameterName("MdcNoiseType",false); 00038 noiseType->SetRange("MdcNoiseType>=0"); 00039 // noiseType->SetDefaultValue(3); 00040 00041 //Noise Level command 00042 noiseLevel = new G4UIcmdWithADouble("/mdc/noise/level",this); 00043 noiseLevel->SetGuidance("noise level"); 00044 noiseLevel->SetParameterName("MdcNoiseLevel",false); 00045 noiseLevel->SetRange("MdcNoiseLevel>=0."); 00046 // noiseLevel->SetDefaultValue(0.1); 00047 00048 digiDirectory = new G4UIdirectory("/mdc/digi/"); 00049 digiDirectory->SetGuidance("BESIII MDC digitizer control"); 00050 00051 //T channel smear On/Off command 00052 smearFlag = new G4UIcmdWithAnInteger("/mdc/digi/smearflag",this); 00053 smearFlag->SetGuidance("whether to do T smear to MdcDigi."); 00054 smearFlag->SetParameterName("MdcSmearFlag",true); 00055 smearFlag->SetRange("MdcSmearFlag>=0"); 00056 smearFlag->SetDefaultValue(1); 00057 00058 //Space resolution command 00059 mdcDRes = new G4UIcmdWithADouble("/mdc/digi/spaceres",this); 00060 mdcDRes->SetGuidance("value of space resolution"); 00061 mdcDRes->SetParameterName("MdcDRes",false); 00062 mdcDRes->SetRange("MdcDRes>0"); 00063 00064 effDirectory = new G4UIdirectory("/mdc/eff/"); 00065 effDirectory->SetGuidance("BESIII MDC wire efficiency control"); 00066 00067 //Eff. source command 00068 effFlag = new G4UIcmdWithAnInteger("/mdc/eff/flag",this); 00069 effFlag->SetGuidance("Get eff. from 0: CalSvc; 1: mac file"); 00070 effFlag->SetParameterName("MdcEffFlag",false); 00071 effFlag->SetRange("MdcEffFlag>=0"); 00072 // effFlag->SetDefaultValue(0); 00073 00074 G4UIparameter* parameter; 00075 G4bool omittable; 00076 00077 //Eff. command 00078 layerEff = new G4UIcommand("/mdc/eff/eff",this); 00079 layerEff->SetGuidance("Set eff. of MDC layers"); 00080 00081 parameter = new G4UIparameter("layer",'i',omittable = false); 00082 parameter->SetGuidance("Which layer to be modified"); 00083 parameter->SetParameterRange("layer >= -1 && layer < 43"); 00084 parameter->SetDefaultValue(-1); 00085 layerEff->SetParameter(parameter); 00086 00087 parameter = new G4UIparameter("eff",'d',omittable = false); 00088 parameter->SetGuidance("Eff. value"); 00089 parameter->SetParameterRange("eff >= 0. && eff <=1."); 00090 parameter->SetDefaultValue(1.); 00091 layerEff->SetParameter(parameter); 00092 }
BesMdcDigitizerMessenger::~BesMdcDigitizerMessenger | ( | ) |
Definition at line 94 of file BesMdcDigitizerMessenger.cc.
References digiDirectory, effDirectory, effFlag, layerEff, mdcDRes, noiseDirectory, noiseFlag, noiseLevel, noiseType, and smearFlag.
00095 { 00096 delete noiseDirectory; 00097 delete noiseFlag; 00098 delete noiseType; 00099 delete noiseLevel; 00100 delete digiDirectory; 00101 delete smearFlag; 00102 delete mdcDRes; 00103 delete effDirectory; 00104 delete effFlag; 00105 delete layerEff; 00106 }
void BesMdcDigitizerMessenger::SetNewValue | ( | G4UIcommand * | command, | |
G4String | newValues | |||
) |
Definition at line 108 of file BesMdcDigitizerMessenger.cc.
References effFlag, is, layerEff, mdcDigitizer, mdcDRes, noiseFlag, noiseLevel, noiseType, BesMdcDigitizer::SetEff(), BesMdcDigitizer::SetEffFlag(), BesMdcDigitizer::SetMdcDRes(), BesMdcDigitizer::SetNoiseFlag(), BesMdcDigitizer::SetNoiseLevel(), BesMdcDigitizer::SetNoiseType(), BesMdcDigitizer::SetSmearFlag(), and smearFlag.
00109 { 00110 if( command == noiseFlag) { 00111 mdcDigitizer->SetNoiseFlag(noiseFlag->GetNewIntValue(newValue)); 00112 }else if(command==noiseType){ 00113 mdcDigitizer->SetNoiseType(noiseType->GetNewIntValue(newValue)); 00114 }else if(command==noiseLevel){ 00115 mdcDigitizer->SetNoiseLevel(noiseLevel->GetNewDoubleValue(newValue)); 00116 }else if(command==smearFlag){ 00117 mdcDigitizer->SetSmearFlag(smearFlag->GetNewIntValue(newValue)); 00118 }else if(command==mdcDRes){ 00119 mdcDigitizer->SetMdcDRes(mdcDRes->GetNewDoubleValue(newValue)); 00120 }else if(command==effFlag){ 00121 mdcDigitizer->SetEffFlag(effFlag->GetNewIntValue(newValue)); 00122 }else if(command==layerEff){ 00123 G4int layer; 00124 G4double eff; 00125 std::istringstream is ((char*)newValue.data()); 00126 is >> layer >> eff; 00127 mdcDigitizer->SetEff(layer, eff); 00128 } 00129 }
G4UIdirectory* BesMdcDigitizerMessenger::digiDirectory [private] |
Definition at line 40 of file BesMdcDigitizerMessenger.hh.
Referenced by BesMdcDigitizerMessenger(), and ~BesMdcDigitizerMessenger().
G4UIdirectory* BesMdcDigitizerMessenger::effDirectory [private] |
Definition at line 44 of file BesMdcDigitizerMessenger.hh.
Referenced by BesMdcDigitizerMessenger(), and ~BesMdcDigitizerMessenger().
G4UIcmdWithAnInteger* BesMdcDigitizerMessenger::effFlag [private] |
Definition at line 45 of file BesMdcDigitizerMessenger.hh.
Referenced by BesMdcDigitizerMessenger(), SetNewValue(), and ~BesMdcDigitizerMessenger().
G4UIcommand* BesMdcDigitizerMessenger::layerEff [private] |
Definition at line 46 of file BesMdcDigitizerMessenger.hh.
Referenced by BesMdcDigitizerMessenger(), SetNewValue(), and ~BesMdcDigitizerMessenger().
G4UIcmdWithADouble* BesMdcDigitizerMessenger::mdcDRes [private] |
Definition at line 42 of file BesMdcDigitizerMessenger.hh.
Referenced by BesMdcDigitizerMessenger(), SetNewValue(), and ~BesMdcDigitizerMessenger().
G4UIdirectory* BesMdcDigitizerMessenger::noiseDirectory [private] |
Definition at line 35 of file BesMdcDigitizerMessenger.hh.
Referenced by BesMdcDigitizerMessenger(), and ~BesMdcDigitizerMessenger().
G4UIcmdWithAnInteger* BesMdcDigitizerMessenger::noiseFlag [private] |
Definition at line 36 of file BesMdcDigitizerMessenger.hh.
Referenced by BesMdcDigitizerMessenger(), SetNewValue(), and ~BesMdcDigitizerMessenger().
G4UIcmdWithADouble* BesMdcDigitizerMessenger::noiseLevel [private] |
Definition at line 38 of file BesMdcDigitizerMessenger.hh.
Referenced by BesMdcDigitizerMessenger(), SetNewValue(), and ~BesMdcDigitizerMessenger().
G4UIcmdWithAnInteger* BesMdcDigitizerMessenger::noiseType [private] |
Definition at line 37 of file BesMdcDigitizerMessenger.hh.
Referenced by BesMdcDigitizerMessenger(), SetNewValue(), and ~BesMdcDigitizerMessenger().
G4UIcmdWithAnInteger* BesMdcDigitizerMessenger::smearFlag [private] |
Definition at line 41 of file BesMdcDigitizerMessenger.hh.
Referenced by BesMdcDigitizerMessenger(), SetNewValue(), and ~BesMdcDigitizerMessenger().