/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Simulation/BOOST/BesSim/BesSim-00-01-24/src/BesRunActionMessenger.cc

Go to the documentation of this file.
00001 //---------------------------------------------------------------------------//
00002 //      BOOST --- BESIII Object_Oriented Simulation Tool                     //
00003 //---------------------------------------------------------------------------//
00004 //Description: passing parameters to event action
00005 //Author: Deng Ziyan
00006 //Created: Sep, 2004
00007 //Modified:
00008 //Comment:
00009 //---------------------------------------------------------------------------//
00010 
00011 #include "BesRunActionMessenger.hh"
00012 #include "BesRunAction.hh"
00013 #include "G4UIdirectory.hh"
00014 #include "G4UIcommand.hh"
00015 #include "G4UIcmdWithAnInteger.hh"
00016 #include "G4UIcmdWithAString.hh"
00017 #include "G4ios.hh"
00018 
00019 BesRunActionMessenger::BesRunActionMessenger(BesRunAction * runAction)
00020 :m_runAction(runAction)
00021 {
00022   m_runActionDirectory = new G4UIdirectory("/runAction/");
00023   m_runActionDirectory->SetGuidance("BESIII run action");
00024   
00025   //MCTruth command
00026   m_MCTruthCmd =  new G4UIcmdWithAnInteger("/runAction/MCTruth",this);
00027   m_MCTruthCmd->SetGuidance("whether to save MC Truth information.");
00028   m_MCTruthCmd->SetParameterName("MCTruthFlag",true);
00029   m_MCTruthCmd->SetRange("MCTruthFlag>=0");
00030   m_MCTruthCmd->SetDefaultValue(0);
00031 
00032   //ascii I/O command
00033   /*G4UIparameter* parameter;
00034   G4bool omittable;
00035 
00036   m_asciiCmd = new G4UIcommand("/runAction/ascii",this);
00037   m_asciiCmd->SetGuidance("Ascii I/O in BES.");
00038   m_asciiCmd->SetGuidance("mdcTruFlag, tofTruFlag, emcTruFlag, mucTruFlag,mdcDigiFlag, tofDigiFlag, emcDigiFlag, mucDigiFlag, asciiFileName");
00039   
00040   parameter = new G4UIparameter("mdcTruFlag",'i',omittable = true);
00041   parameter->SetGuidance("whether output mdc Truth information to asciiFile");
00042   parameter->SetParameterRange("mdcTruFlag >= 0");
00043   parameter->SetDefaultValue(1);
00044   m_asciiCmd->SetParameter(parameter);
00045 
00046   parameter = new G4UIparameter("tofTruFlag",'i',omittable = true);
00047   parameter->SetGuidance("whether output tof truth information to asciiFile");
00048   parameter->SetParameterRange("tofTruFlag >= 0");
00049   parameter->SetDefaultValue(1);
00050   m_asciiCmd->SetParameter(parameter);
00051 
00052 
00053   parameter = new G4UIparameter("emcTruFlag",'i',omittable = true);
00054   parameter->SetGuidance("whether output emc truth information to asciiFile");
00055   parameter->SetParameterRange("emcTruFlag >= 0");
00056   parameter->SetDefaultValue(1);
00057   m_asciiCmd->SetParameter(parameter);
00058 
00059   parameter = new G4UIparameter("mucTruFlag",'i',omittable = true);
00060   parameter->SetGuidance("whether output muc truth information to asciiFile");
00061   parameter->SetParameterRange("mucTruFlag >= 0");
00062   parameter->SetDefaultValue(1);
00063   m_asciiCmd->SetParameter(parameter);
00064 
00065 
00066   parameter = new G4UIparameter("mdcDigiFlag",'i',omittable = true);
00067   parameter->SetGuidance("whether output mdc digi information to asciiFile");
00068   parameter->SetParameterRange("mdcDigiFlag >= 0");
00069   parameter->SetDefaultValue(1);
00070   m_asciiCmd->SetParameter(parameter);
00071 
00072   parameter = new G4UIparameter("tofDigiFlag",'i',omittable = true);
00073   parameter->SetGuidance("whether output tof digi information to asciiFile");
00074   parameter->SetParameterRange("tofDigiFlag >= 0");
00075   parameter->SetDefaultValue(1);
00076   m_asciiCmd->SetParameter(parameter);
00077 
00078 
00079   parameter = new G4UIparameter("emcDigiFlag",'i',omittable = true);
00080   parameter->SetGuidance("whether output emc digi information to asciiFile");
00081   parameter->SetParameterRange("emcDigiFlag >= 0");
00082   parameter->SetDefaultValue(1);
00083   m_asciiCmd->SetParameter(parameter);
00084 
00085   parameter = new G4UIparameter("mucDigiFlag",'i',omittable = true);
00086   parameter->SetGuidance("whether output muc digi information to asciiFile");
00087   parameter->SetParameterRange("mucDigiFlag >= 0");
00088   parameter->SetDefaultValue(1);
00089   m_asciiCmd->SetParameter(parameter);
00090 
00091   parameter = new G4UIparameter("asciiFileName",'s',omittable = true);
00092   parameter->SetGuidance("specify the ascii file name");
00093   parameter->SetDefaultValue("AsciiDmp_out.dat");
00094   m_asciiCmd->SetParameter(parameter);
00095   */
00096 
00097 }
00098 
00099 BesRunActionMessenger::~BesRunActionMessenger()
00100 {
00101   delete m_runActionDirectory;
00102   delete m_MCTruthCmd;
00103   delete m_asciiCmd;
00104 }
00105 
00106 void BesRunActionMessenger::SetNewValue(G4UIcommand * command,G4String newValue)
00107 {
00108   if( command == m_MCTruthCmd) 
00109     m_runAction->SetMCTruthFlag(m_MCTruthCmd->GetNewIntValue(newValue));
00110   
00111   /*else if( command == m_asciiCmd)
00112   {
00113     G4int mdcTruFlag, tofTruFlag, emcTruFlag, mucTruFlag;
00114     G4int mdcDigiFlag, tofDigiFlag, emcDigiFlag, mucDigiFlag;
00115     G4String fileName;
00116     
00117     std::istrstream is ((char*)newValue.data());
00118     is >> mdcTruFlag >> tofTruFlag >> emcTruFlag >> mucTruFlag 
00119        >> mdcDigiFlag >> tofDigiFlag >> emcDigiFlag >> mucDigiFlag
00120        >> fileName;
00121     m_runAction->SetMdcTruFlag(mdcTruFlag);
00122     m_runAction->SetTofTruFlag(tofTruFlag);
00123     m_runAction->SetEmcTruFlag(emcTruFlag);
00124     m_runAction->SetMucTruFlag(mucTruFlag);
00125     
00126     m_runAction->SetMdcDigiFlag(mdcDigiFlag);
00127     m_runAction->SetTofDigiFlag(tofDigiFlag);
00128     m_runAction->SetEmcDigiFlag(emcDigiFlag);
00129     m_runAction->SetMucDigiFlag(mucDigiFlag);
00130 
00131     m_runAction->SetAsciiFile(fileName);
00132   }*/
00133 }
00134 
00135 
00136 
00137 
00138 
00139 
00140 
00141 
00142 
00143 
00144 
00145 
00146 
00147 

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