BesMdcDigitizerMessenger Class Reference

#include <BesMdcDigitizerMessenger.hh>

List of all members.

Public Member Functions

 BesMdcDigitizerMessenger (BesMdcDigitizer *)
 ~BesMdcDigitizerMessenger ()
void SetNewValue (G4UIcommand *command, G4String newValues)

Private Attributes

BesMdcDigitizermdcDigitizer
G4UIdirectory * noiseDirectory
G4UIcmdWithAnInteger * noiseFlag
G4UIcmdWithAnInteger * noiseType
G4UIcmdWithADouble * noiseLevel
G4UIdirectory * digiDirectory
G4UIcmdWithAnInteger * smearFlag
G4UIcmdWithADouble * mdcDRes
G4UIdirectory * effDirectory
G4UIcmdWithAnInteger * effFlag
G4UIcommand * layerEff


Detailed Description

Definition at line 24 of file BesMdcDigitizerMessenger.hh.


Constructor & Destructor Documentation

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 }


Member Function Documentation

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 }


Member Data Documentation

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

BesMdcDigitizer* BesMdcDigitizerMessenger::mdcDigitizer [private]

Definition at line 34 of file BesMdcDigitizerMessenger.hh.

Referenced by SetNewValue().

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


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