EFTest Class Reference

#include <EFTest.h>

List of all members.

Public Member Functions

 EFTest (const std::string &name, ISvcLocator *pSvcLocator)
 ~EFTest ()
StatusCode initialize ()
StatusCode execute ()
StatusCode finalize ()

Private Attributes

int m_outputLevel
NTuple::Tuple * m_tuple
NTuple::Item< long > m_type
NTuple::Item< long > m_alg
NTuple::Item< long > m_endEE
NTuple::Item< long > m_version
NTuple::Item< float > m_etot
NTuple::Item< long > m_nmdc0
NTuple::Item< long > m_ntof0
NTuple::Item< long > m_nemc0
NTuple::Item< long > m_nmuc0
NTuple::Item< long > m_ncon0
NTuple::Item< long > m_nmdc
NTuple::Item< long > m_ntof
NTuple::Item< long > m_nemc
NTuple::Item< long > m_nmuc
NTuple::Item< long > m_ncon
NTuple::Array< float > m_mdcData
NTuple::Array< float > m_tofData
NTuple::Array< float > m_emcData
NTuple::Array< float > m_mucData
NTuple::Array< float > m_conData


Detailed Description

Definition at line 4 of file EFTest.h.


Constructor & Destructor Documentation

EFTest::EFTest ( const std::string name,
ISvcLocator *  pSvcLocator 
)

Definition at line 13 of file EFTest.cxx.

References m_outputLevel.

00013                                                               :
00014                Algorithm(name, pSvcLocator) {
00015   // Declare the properties  
00016   // declareProperty("Cut", m_acolCut = 10);
00017   declareProperty("OutputLevel", m_outputLevel = MSG::NIL);
00018 }

EFTest::~EFTest (  ) 

Definition at line 20 of file EFTest.cxx.

00020                {
00021 }


Member Function Documentation

StatusCode EFTest::execute (  ) 

Definition at line 69 of file EFTest.cxx.

References HltID::CON, Bes_Common::DEBUG, HltID::EMC, Bes_Common::FATAL, EventFilter::getName(), EventFilter::getResult(), genRecEmupikp::i, Bes_Common::INFO, m_alg, m_conData, m_emcData, m_endEE, m_etot, m_mdcData, m_mucData, m_ncon, m_ncon0, m_nemc, m_nemc0, m_nmdc, m_nmdc0, m_nmuc, m_nmuc0, m_ntof, m_ntof0, m_tofData, m_tuple, m_type, m_version, HltID::MDC, msgSvc(), HltID::MUC, HltID::TOF, type, and Bes_Common::WARNING.

00069                            {
00070 
00071   MsgStream log(msgSvc(), name());
00072   log << MSG::INFO << "in execute()" << endreq;
00073 
00074   if(!EventFilter::getResult()) {
00075     // this event refused by event filter
00076     log << MSG::DEBUG << "this event refused by event filter: "
00077         << EventFilter::getName() <<endreq;
00078     // user code
00079 
00080   }
00081   else {
00082     // this event accepted by event filter  
00083     log << MSG::DEBUG << "this event accepteded by event filter: "
00084         << EventFilter::getName() <<endreq;
00085     // user code
00086 
00087   }
00088   SmartDataPtr<HltInf> hlt(eventSvc(),"/Event/Hlt/HltInf");
00089   bool dstFlag=false;
00090   if(!hlt) {
00091     log << MSG::WARNING << "Could not find Event HltInf (try DstHltInf now)" << endreq;
00092     SmartDataPtr<DstHltInf> hltDst(eventSvc(),"/Event/Hlt/DstHltInf");
00093     if(!hltDst){
00094       log << MSG::FATAL << "Could not find Event DstHltInf too ( please re-generate data)" << endreq;
00095       return( StatusCode::FAILURE);
00096     }
00097     else{
00098       hlt=hltDst;
00099       dstFlag=true;
00100     }
00101   }
00102 
00103   uint32_t type = hlt->getEventType();
00104   for(int i=0;i<32;i++) {
00105     if((1<<i)&type) m_type=i;
00106   }
00107   m_alg     = hlt->getAlgProcess();
00108   m_endEE   = hlt->getCriteriaTable();
00109   m_version = hlt->getVersion();
00110   m_etot    = hlt->getTotalEnergy();
00111   m_nmdc0    = hlt->getNMDC();
00112   m_ntof0    = hlt->getNTOF();
00113   m_nemc0    = hlt->getNEMC();
00114   m_nmuc0    = hlt->getNMUC();
00115   m_ncon0    = hlt->getNCON();
00116   m_nmdc    = 0;
00117   m_ntof    = 0;
00118   m_nemc    = 0;
00119   m_nmuc    = 0;
00120   m_ncon    = 0;
00121   if(!dstFlag) {
00122     vector<uint32_t>::iterator it;
00123 
00124     vector<uint32_t> mdcData= hlt->getDataVec(HltID::MDC);
00125     it = mdcData.begin();
00126     for(;it!=mdcData.end();it++,m_nmdc++){
00127       if(m_nmdc>1)   m_mdcData[m_nmdc]= *((float*) &(*it));
00128       else           m_mdcData[m_nmdc]= *it;  //*((int*) &(*it));
00129     }
00130 
00131     vector<uint32_t> tofData= hlt->getDataVec(HltID::TOF);
00132     it = tofData.begin();
00133     for(;it!=tofData.end();it++,m_ntof++){
00134       if(m_ntof>0)   m_tofData[m_ntof]= *((float*) &(*it));
00135       else           m_tofData[m_ntof]= *it;  //*((int*) &(*it));
00136     }
00137 
00138     vector<uint32_t> emcData= hlt->getDataVec(HltID::EMC);
00139     it = emcData.begin();
00140     for(;it!=emcData.end();it++,m_nemc++){
00141       if(!(m_nemc==0||m_nemc==7||m_nemc==8))   m_emcData[m_nemc]= *((float*) &(*it));
00142       else                                  m_emcData[m_nemc]= *it;  //*((int*) &(*it));
00143     }
00144 
00145     vector<uint32_t> mucData= hlt->getDataVec(HltID::MUC);
00146     it = mucData.begin();
00147     for(;it!=mucData.end();it++,m_nmuc++){
00148       if(m_nmuc>1)   m_mucData[m_nmuc]= *((float*) &(*it));
00149       else           m_mucData[m_nmuc]= *it;  //*((int*) &(*it));
00150     }
00151 
00152     vector<uint32_t> conData= hlt->getDataVec(HltID::CON);
00153     it = conData.begin();
00154     for(;it!=conData.end();it++,m_ncon++){
00155       m_conData[m_ncon]= *it;  //*((int*) &(*it));
00156     }
00157   }
00158 
00159   m_tuple->write();
00160 
00161   return StatusCode::SUCCESS ;
00162 }

StatusCode EFTest::finalize (  ) 

Definition at line 164 of file EFTest.cxx.

References EventFilter::getNEvt(), EventFilter::getNPass(), Bes_Common::INFO, and msgSvc().

00164                             {
00165 
00166   MsgStream log(msgSvc(), name());
00167   log << MSG::INFO << "in finalize()" << endreq;
00168   // event number
00169   long unsigned ntot=EventFilter::getNEvt();
00170   long unsigned npass=EventFilter::getNPass();
00171   log << MSG::ALWAYS << "=========================================" <<endreq
00172       << "total "<< ntot <<" events with " << npass << " effective events " <<endreq
00173       <<              "========================================="<< endreq;
00174   // user code
00175 
00176   return StatusCode::SUCCESS;
00177 }

StatusCode EFTest::initialize (  ) 

Definition at line 23 of file EFTest.cxx.

References calibUtil::ERROR, HltID::getID_EMC_MAX(), HltID::getID_MDC_MAX(), HltID::getID_MUC_MAX(), HltID::getID_TOF_MAX(), Bes_Common::INFO, m_alg, m_conData, m_emcData, m_endEE, m_etot, m_mdcData, m_mucData, m_ncon, m_ncon0, m_nemc, m_nemc0, m_nmdc, m_nmdc0, m_nmuc, m_nmuc0, m_ntof, m_ntof0, m_tofData, m_tuple, m_type, m_version, msgSvc(), and ntupleSvc().

00023                              {
00024 
00025   MsgStream log(msgSvc(), name());
00026   log << MSG::INFO << "in initialize()" << endreq;
00027   // user code
00028 
00029   StatusCode status=StatusCode::SUCCESS;
00030   NTuplePtr nt1(ntupleSvc(), "FILE1/EventFilter");
00031   if ( nt1 ) m_tuple = nt1;
00032   else {
00033     m_tuple = ntupleSvc()->book ("FILE1/EventFilter", CLID_ColumnWiseTuple, "EventFilter N-Tuple");
00034     if ( m_tuple ) {
00035       status = m_tuple->addItem ("type",   m_type);
00036       status = m_tuple->addItem ("alg",   m_alg);
00037       status = m_tuple->addItem ("endEE",   m_endEE);
00038       status = m_tuple->addItem ("version",   m_version);
00039       status = m_tuple->addItem ("etot",   m_etot);
00040       status = m_tuple->addItem ("nMDCdata",   m_nmdc0);
00041       status = m_tuple->addItem ("nTOFdata",   m_ntof0);
00042       status = m_tuple->addItem ("nEMCdata",   m_nemc0);
00043       status = m_tuple->addItem ("nMUCdata",   m_nmuc0);
00044       status = m_tuple->addItem ("nCONdata",   m_ncon0);
00045       status = m_tuple->addItem ("nMDCfill",   m_nmdc, 0, (int)HltID::getID_MDC_MAX() );
00046       status = m_tuple->addItem ("nTOFfill",   m_ntof, 0, (int)HltID::getID_TOF_MAX() );
00047       status = m_tuple->addItem ("nEMCfill",   m_nemc, 0, (int)HltID::getID_EMC_MAX() );
00048       status = m_tuple->addItem ("nMUCfill",   m_nmuc, 0, (int)HltID::getID_MUC_MAX() );
00049       status = m_tuple->addItem ("nCONfill",   m_ncon, 0, 100 );
00050       status = m_tuple->addIndexedItem ("MDCdata", m_nmdc, m_mdcData);
00051       status = m_tuple->addIndexedItem ("TOFdata", m_ntof, m_tofData);
00052       status = m_tuple->addIndexedItem ("EMCdata", m_nemc, m_emcData);
00053       status = m_tuple->addIndexedItem ("MUCdata", m_nmuc, m_mucData);
00054       status = m_tuple->addIndexedItem ("CONdata", m_ncon, m_conData);
00055       if (!status) {
00056         log << MSG::ERROR << "    Cannot add item into N-tuple" << endreq; 
00057         return status;
00058       }
00059     }
00060     else { 
00061       log << MSG::ERROR << "    Cannot book N-tuple:" << long(m_tuple) << endreq;
00062       return StatusCode::FAILURE;
00063     }
00064   }
00065 
00066   return StatusCode::SUCCESS;
00067 }


Member Data Documentation

NTuple::Item<long> EFTest::m_alg [private]

Definition at line 18 of file EFTest.h.

Referenced by execute(), and initialize().

NTuple::Array<float> EFTest::m_conData [private]

Definition at line 36 of file EFTest.h.

Referenced by execute(), and initialize().

NTuple::Array<float> EFTest::m_emcData [private]

Definition at line 34 of file EFTest.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EFTest::m_endEE [private]

Definition at line 19 of file EFTest.h.

Referenced by execute(), and initialize().

NTuple::Item<float> EFTest::m_etot [private]

Definition at line 21 of file EFTest.h.

Referenced by execute(), and initialize().

NTuple::Array<float> EFTest::m_mdcData [private]

Definition at line 32 of file EFTest.h.

Referenced by execute(), and initialize().

NTuple::Array<float> EFTest::m_mucData [private]

Definition at line 35 of file EFTest.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EFTest::m_ncon [private]

Definition at line 31 of file EFTest.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EFTest::m_ncon0 [private]

Definition at line 26 of file EFTest.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EFTest::m_nemc [private]

Definition at line 29 of file EFTest.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EFTest::m_nemc0 [private]

Definition at line 24 of file EFTest.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EFTest::m_nmdc [private]

Definition at line 27 of file EFTest.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EFTest::m_nmdc0 [private]

Definition at line 22 of file EFTest.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EFTest::m_nmuc [private]

Definition at line 30 of file EFTest.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EFTest::m_nmuc0 [private]

Definition at line 25 of file EFTest.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EFTest::m_ntof [private]

Definition at line 28 of file EFTest.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EFTest::m_ntof0 [private]

Definition at line 23 of file EFTest.h.

Referenced by execute(), and initialize().

int EFTest::m_outputLevel [private]

Definition at line 14 of file EFTest.h.

Referenced by EFTest().

NTuple::Array<float> EFTest::m_tofData [private]

Definition at line 33 of file EFTest.h.

Referenced by execute(), and initialize().

NTuple::Tuple* EFTest::m_tuple [private]

Definition at line 16 of file EFTest.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EFTest::m_type [private]

Definition at line 17 of file EFTest.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EFTest::m_version [private]

Definition at line 20 of file EFTest.h.

Referenced by execute(), and initialize().


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