/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Simulation/BOOST/TofSim/TofSim-00-02-33/src/BesTofDigitizerV.cc

Go to the documentation of this file.
00001 //---------------------------------------------------------------------------//
00002 //      BOOST --- BESIII Object_Oriented Simulation Tool                     //
00003 //---------------------------------------------------------------------------//
00004 //Description:
00005 //Author: Dengzy
00006 //Created: Mar, 2004
00007 //Modified:
00008 //Comment:
00009 //---------------------------------------------------------------------------//
00010 //$Id: BesTofDigitizerV.cc
00011 
00012 #include "GaudiKernel/ISvcLocator.h"
00013 #include "GaudiKernel/Bootstrap.h"
00014 #include "GaudiKernel/MsgStream.h"
00015 
00016 #include "BesTofDigitizerV.hh"
00017 #include "BesTofDigi.hh"
00018 #include "BesTofHit.hh"
00019 #include "G4DigiManager.hh"
00020 #include "BesTofGeoParameter.hh"
00021 #include "Randomize.hh"
00022 
00023 bool BesTofDigitizerV::m_booked = false;
00024 
00025 NTuple::Tuple* BesTofDigitizerV::m_tupleTof1 = 0;
00026 NTuple::Item<double> BesTofDigitizerV::m_partId;
00027 NTuple::Item<double> BesTofDigitizerV::m_scinNb;
00028 NTuple::Item<double> BesTofDigitizerV::m_edep;
00029 NTuple::Item<double> BesTofDigitizerV::m_nHits; 
00030 NTuple::Item<double> BesTofDigitizerV::m_time1st0;
00031 NTuple::Item<double> BesTofDigitizerV::m_time1st1;
00032 NTuple::Item<double> BesTofDigitizerV::m_timelast0;
00033 NTuple::Item<double> BesTofDigitizerV::m_timelast1;
00034 NTuple::Item<double> BesTofDigitizerV::m_totalPhot0;
00035 NTuple::Item<double> BesTofDigitizerV::m_totalPhot1;
00036 NTuple::Item<double> BesTofDigitizerV::m_NphAllSteps;
00037 NTuple::Item<double> BesTofDigitizerV::m_max0;
00038 NTuple::Item<double> BesTofDigitizerV::m_max1;
00039 NTuple::Item<double> BesTofDigitizerV::m_tdc0;
00040 NTuple::Item<double> BesTofDigitizerV::m_adc0;
00041 NTuple::Item<double> BesTofDigitizerV::m_tdc1;
00042 NTuple::Item<double> BesTofDigitizerV::m_adc1;
00043 
00044 NTuple::Tuple* BesTofDigitizerV::m_tupleTof2 = 0;
00045 NTuple::Item<double> BesTofDigitizerV::m_eTotal;
00046 NTuple::Item<double> BesTofDigitizerV::m_nDigi;
00047 NTuple::Item<double> BesTofDigitizerV::m_partIdMPV;
00048 NTuple::Item<double> BesTofDigitizerV::m_scinNbMPV;
00049 NTuple::Item<double> BesTofDigitizerV::m_edepMPV;
00050 NTuple::Item<double> BesTofDigitizerV::m_nDigiOut;
00051 
00052 NTuple::Tuple* BesTofDigitizerV::m_tupleTof3 = 0;
00053 NTuple::Item<double> BesTofDigitizerV::m_forb;
00054 NTuple::Item<double> BesTofDigitizerV::m_timeFlight;
00055 NTuple::Item<double> BesTofDigitizerV::m_ddT;
00056 NTuple::Item<double> BesTofDigitizerV::m_scinSwim;
00057 NTuple::Item<double> BesTofDigitizerV::m_scinTime;
00058 NTuple::Item<double> BesTofDigitizerV::m_transitTime;
00059 NTuple::Item<double> BesTofDigitizerV::m_endTime;
00060 
00061 NTuple::Item<double> BesTofDigitizerV::m_edepHit;
00062 
00063 
00064 //NTuple::Tuple* BesTofDigitizerV::m_tupleTof4 = 0;//Write  out the basic information for the Mrpc Digitizer 
00065 //NTuple::Item<double> BesTofDigitizerV::m_partIdmrpc;
00066 //NTuple::Item<double> BesTofDigitizerV::m_stripidentifier;
00067 //NTuple::Item<double> BesTofDigitizerV::m_trackindex;
00068 //NTuple::Item<double> BesTofDigitizerV::m_signal_pc;
00069 //NTuple::Item<double> BesTofDigitizerV::m_time_threshold;
00070 //NTuple::Item<double> BesTofDigitizerV::m_time_1sthit;
00071 //NTuple::Item<double> BesTofDigitizerV::m_time_1;
00072 //NTuple::Item<double> BesTofDigitizerV::m_time_2;
00073 //NTuple::Item<double> BesTofDigitizerV::m_firedstrip;
00074 //NTuple::Item<double> BesTofDigitizerV::m_numberions;
00075 
00076 
00077 
00078 
00079 
00080 
00081 
00082 
00083 BesTofDigitizerV::BesTofDigitizerV()
00084 {
00085     IMessageSvc* msgSvc;
00086     Gaudi::svcLocator()->service("MessageSvc", msgSvc);
00087     MsgStream log(msgSvc, "BesTofDigitizerBrV1");
00088 
00089     ISvcLocator* svcLocator = Gaudi::svcLocator();
00090 //    StatusCode scc = svcLocator->service("TofCaliSvc", m_tofCaliSvc);
00091 //    if (scc ==  StatusCode::SUCCESS) {
00092 //        log << MSG::INFO << "TofSim Gets TofCaliSvc Service Sucessfully!! " << endreq;
00093 //    }
00094 //    else {
00095 //        log << MSG::ERROR << "TofSim Gets TofCaliSvc Service Failed !! " << endreq;
00096 //    }
00097     
00098     StatusCode sim_scc = svcLocator->service("TofSimSvc", m_tofSimSvc);
00099     if (sim_scc ==  StatusCode::SUCCESS) {
00100         log << MSG::INFO << "TofSim Gets TofSimSvc Service Sucessfully!! " << endreq;
00101     }
00102     else {
00103         log << MSG::ERROR << "TofSim Gets TofSimSvc Service Failed !! " << endreq;
00104     }
00105     StatusCode qelec_scc = svcLocator->service("TofQElecSvc", m_tofQElecSvc);
00106     if (qelec_scc ==  StatusCode::SUCCESS) {
00107         log << MSG::INFO << "TofRec Gets tofQElecSvc Sucessfully!! " << endreq;
00108     }
00109     else {
00110         log << MSG::ERROR << "TofRec Gets tofQElecSvc Failed !! " << endreq;
00111     }
00112   
00113 
00114   
00115   //retrieve G4Svc
00116     IG4Svc* tmpSvc;
00117     StatusCode sc = svcLocator->service("G4Svc", tmpSvc);
00118     m_G4Svc = dynamic_cast<G4Svc *>(tmpSvc);
00119 
00120   
00121 
00122   //get Tof Ntuple from G4Svc
00123     if (m_G4Svc->TofRootFlag() && (!m_booked))
00124     {
00125 
00126 
00127       m_tupleTof1 = m_G4Svc->GetTupleTof1();
00128 
00129       sc = m_tupleTof1->addItem("partId",m_partId);
00130       sc = m_tupleTof1->addItem("scinNb",m_scinNb);
00131       sc = m_tupleTof1->addItem("edep",m_edep);
00132       sc = m_tupleTof1->addItem("nHits",m_nHits);
00133       sc = m_tupleTof1->addItem("time1st0",m_time1st0);
00134       sc = m_tupleTof1->addItem("time1st1",m_time1st1);
00135       sc = m_tupleTof1->addItem("timelast0",m_timelast0);
00136       sc = m_tupleTof1->addItem("timelast1",m_timelast1);
00137       sc = m_tupleTof1->addItem("totalPhot0",m_totalPhot0);
00138       sc = m_tupleTof1->addItem("totalPhot1",m_totalPhot1);
00139       sc = m_tupleTof1->addItem("NphAllSteps",m_NphAllSteps);
00140       sc = m_tupleTof1->addItem("max0",m_max0);
00141       sc = m_tupleTof1->addItem("max1",m_max1);
00142       sc = m_tupleTof1->addItem("tdc0",m_tdc0);
00143       sc = m_tupleTof1->addItem("adc0",m_adc0);
00144       sc = m_tupleTof1->addItem("tdc1",m_tdc1);
00145       sc = m_tupleTof1->addItem("adc1",m_adc1);
00146 
00147       
00148 
00149       m_tupleTof2 = m_G4Svc->GetTupleTof2();
00150       sc = m_tupleTof2->addItem("eTotal",m_eTotal);
00151       sc = m_tupleTof2->addItem("nDigi",m_nDigi);
00152       sc = m_tupleTof2->addItem("partIdMPV",m_partIdMPV);
00153       sc = m_tupleTof2->addItem("scinNbMPV",m_scinNbMPV);
00154       sc = m_tupleTof2->addItem("edepMPV",m_edepMPV);
00155       sc = m_tupleTof2->addItem("nDigiOut",m_nDigiOut);
00156       sc = m_tupleTof2->addItem("edepPerHit",m_edepHit);
00157 
00158       m_tupleTof3 = m_G4Svc->GetTupleTof3();
00159       //sc = m_tupleTof3->addItem("forb",m_forb);
00160       sc = m_tupleTof3->addItem("timeFlight",m_timeFlight);
00161       sc = m_tupleTof3->addItem("ddT",m_ddT);
00162       sc = m_tupleTof3->addItem("scinSwim",m_scinSwim);
00163       sc = m_tupleTof3->addItem("scinTime",m_scinTime);
00164       sc = m_tupleTof3->addItem("transitTime",m_transitTime);
00165       sc = m_tupleTof3->addItem("endTime",m_endTime);
00166 
00167       
00168       //m_tupleTof4 = m_G4Svc->GetTupleTof4();
00169       //sc = m_tupleTof4->addItem("partID",m_partIdmrpc);
00170       //sc = m_tupleTof4->addItem("stripidentifier",m_stripidentifier);
00171       //sc = m_tupleTof4->addItem("trackindex",m_trackindex);
00172       //sc = m_tupleTof4->addItem("signal_pc",m_signal_pc);
00173       //sc = m_tupleTof4->addItem("time_threshold",m_time_threshold);
00174       //sc = m_tupleTof4->addItem("time_1sthit",m_time_1sthit);
00175       //sc = m_tupleTof4->addItem("time_1",m_time_1);
00176       //sc = m_tupleTof4->addItem("time_2",m_time_2);
00177       //sc = m_tupleTof4->addItem("firedstrip",m_firedstrip);
00178       //sc = m_tupleTof4->addItem("numberions",m_numberions);
00179 
00180 
00181       m_booked = true;
00182     }
00183 
00184 }
00185 
00186 BesTofDigitizerV::~BesTofDigitizerV()
00187 {;}
00188 
00189 void BesTofDigitizerV::Initialize()
00190 {
00191     for (G4int i=0;i<2;i++)
00192     {
00193         m_ADC[i] = -999;
00194         m_TDC[i] = -999;
00195     }
00196     m_trackIndex = -999;
00197     m_globalTime = 9999;
00198 }
00199 

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