#include <CheckEFResult.h>
Public Member Functions | |
CheckEFResult (const std::string &name, ISvcLocator *pSvcLocator) | |
virtual | ~CheckEFResult () |
StatusCode | initialize () |
StatusCode | execute () |
StatusCode | finalize () |
Private Attributes | |
HltStoreSvc * | m_HltStoreSvc |
IDataProviderSvc * | m_evtDataSvc |
NTuple::Tuple * | m_tuple |
NTuple::Item< long > | m_nevt |
NTuple::Item< long > | m_alg |
NTuple::Item< long > | m_nmdc |
NTuple::Item< long > | m_ntof |
NTuple::Item< long > | m_nemc |
NTuple::Item< long > | m_nmuc |
NTuple::Item< long > | m_nshower |
NTuple::Item< long > | m_ntrk |
NTuple::Item< long > | m_nsec |
NTuple::Item< float > | m_etot |
NTuple::Item< float > | m_ebarrel |
NTuple::Item< float > | m_eendcap |
NTuple::Item< float > | m_acop |
NTuple::Item< float > | m_ebalance |
NTuple::Item< float > | m_emax1 |
NTuple::Item< float > | m_emax2 |
NTuple::Item< float > | m_dtof1 |
NTuple::Item< float > | m_dphi1 |
NTuple::Item< float > | m_dtof2 |
NTuple::Item< float > | m_dphi2 |
NTuple::Item< float > | m_acol |
NTuple::Item< float > | m_pmax1 |
NTuple::Item< float > | m_pmax2 |
NTuple::Item< float > | m_cost1 |
NTuple::Item< float > | m_cost2 |
NTuple::Item< float > | m_mbalance |
NTuple::Item< long > | m_evttype |
std::vector< int > | m_notpass |
std::string | m_outfile |
Definition at line 18 of file CheckEFResult.h.
CheckEFResult::CheckEFResult | ( | const std::string & | name, | |
ISvcLocator * | pSvcLocator | |||
) |
CheckEFResult::~CheckEFResult | ( | ) | [virtual] |
StatusCode CheckEFResult::execute | ( | ) |
Definition at line 106 of file CheckEFResult.cxx.
References Bes_Common::DEBUG, calibUtil::ERROR, Bes_Common::FATAL, HltStoreSvc::get(), EFResult::getAnswer(), EFResult::getAnswerIndex(), EFResult::getEFVec(), CriteriaItemValue::getValue(), Bes_Common::INFO, m_acol, m_acop, m_alg, m_dphi1, m_dphi2, m_dtof1, m_dtof2, m_ebalance, m_ebarrel, m_eendcap, m_emax1, m_emax2, m_etot, m_evttype, m_HltStoreSvc, m_mbalance, m_nemc, m_nevt, m_nmdc, m_nmuc, m_notpass, m_nsec, m_nshower, m_ntof, m_ntrk, m_pmax1, m_pmax2, m_tuple, msgSvc(), and deljobs::string.
00106 { 00107 00108 MsgStream log(msgSvc(), name()); 00109 //log << MSG::INFO << "in execute()" << endreq; 00110 00111 EFResult* efResult; 00112 StatusCode sc = m_HltStoreSvc->get("EFResult", efResult); 00113 if ( sc.isFailure() ) { 00114 log << MSG::ERROR << " Could not find EFResult" << endreq; 00115 return sc; 00116 } 00117 00118 if (efResult->getAnswerIndex() == -1) { 00119 log << MSG::ERROR << " Unvalid efResult(AnswerIndex==-1)" << endreq; 00120 return StatusCode::FAILURE; 00121 } 00122 00123 std::string answer = efResult->getAnswer(); 00124 // answer should be "Accepted" or "Rejected" (or "Error") 00125 log << MSG::INFO << "this event is " << answer << endreq; 00126 00127 if (answer == "Accepted") { 00128 EFResult* evtType; 00129 sc = m_HltStoreSvc->get("EventType", evtType); 00130 if ( sc.isFailure() ) { 00131 log << MSG::ERROR << " Could not find EventType" << endreq; 00132 return sc; 00133 } 00134 if (evtType->getAnswerIndex() == -1) { 00135 log << MSG::ERROR << " Unvalid evtType(AnswerIndex==-1)" << endreq; 00136 return StatusCode::FAILURE; 00137 } 00138 std::string typeStr = evtType->getAnswer(); 00139 log << MSG::INFO << " ==> it's marked as " << typeStr << endreq; 00140 00141 // Event Type 00142 if(typeStr=="Junk") m_evttype=0; 00143 else if(typeStr=="GJunk") m_evttype=1; 00144 else if(typeStr=="Beamgas") m_evttype=2; 00145 else if(typeStr=="GBeamgas") m_evttype=3; 00146 else if(typeStr=="Cosmic") m_evttype=4; 00147 else if(typeStr=="GCosmic") m_evttype=5; 00148 else if(typeStr=="EBhabha") m_evttype=6; 00149 else if(typeStr=="GEBhabha") m_evttype=7; 00150 else if(typeStr=="BBhabha") m_evttype=8; 00151 else if(typeStr=="GBBhabha") m_evttype=9; 00152 else if(typeStr=="Dimuon") m_evttype=10; 00153 else if(typeStr=="GDimuon") m_evttype=11; 00154 else if(typeStr=="Diphoton") m_evttype=12; 00155 else if(typeStr=="GDiphoton") m_evttype=13; 00156 else if(typeStr=="Hadron") m_evttype=14; 00157 else if(typeStr=="GHadron") m_evttype=15; 00158 else if(typeStr=="Twophoton") m_evttype=16; 00159 else if(typeStr=="GTwophoton") m_evttype=17; 00160 else if(typeStr=="RandomTrg") m_evttype=31; 00161 else if(typeStr=="Error") m_evttype=30; 00162 else if(typeStr=="Other") m_evttype=29; 00163 else m_evttype=-1; 00164 } 00165 log << MSG::DEBUG << "get event type info: " << m_evttype << endreq; 00166 //Event No. 00167 SmartDataPtr<Event::EventHeader> eventHeader(eventSvc(),"/Event/EventHeader"); 00168 if (!eventHeader) { 00169 log << MSG::FATAL << "Could not find Event Header" << endreq; 00170 return (StatusCode::FAILURE); 00171 } 00172 m_nevt= eventHeader->eventNumber(); 00173 log << MSG::INFO << "EventNo: " << m_nevt <<endl; 00174 if(m_evttype==1||m_evttype==3||m_evttype==5) m_notpass.push_back(eventHeader->eventNumber()); 00175 00176 // Run time 00177 //m_timer[1]->stop(); 00178 //m_filtertime = m_timer[1]->elapsed(); 00179 00180 //if(pBesTimer){ 00181 // pBesTimer->stop(); 00182 // m_CPUtime = pBesTimer->elapsed(); 00183 //} 00184 00185 // Detector information 00186 float nmdc,ntof,nemc,nmuc,nshower,ntrk,nsec; 00187 float etot,ebar,eend,ebal,acop,emax1,emax2,dtof1,dphi1,dtof2,dphi2,acol,mbal,pmax1,pmax2; 00188 00189 CriteriaItemValue* pcri; 00190 00191 sc = m_HltStoreSvc->get("nmdc", pcri); 00192 if ( sc.isFailure() ) nmdc=-9; 00193 else pcri->getValue(nmdc); 00194 sc = m_HltStoreSvc->get("nmuc", pcri); 00195 if ( sc.isFailure() ) nmuc=-9; 00196 else pcri->getValue(nmuc); 00197 sc = m_HltStoreSvc->get("ntof", pcri); 00198 if ( sc.isFailure() ) ntof=-9; 00199 else pcri->getValue(ntof); 00200 sc = m_HltStoreSvc->get("nemc", pcri); 00201 if ( sc.isFailure() ) nemc=-9; 00202 else pcri->getValue(nemc); 00203 00204 sc = m_HltStoreSvc->get("nshw", pcri); 00205 if ( sc.isFailure() ) nshower=-9; 00206 else pcri->getValue(nshower); 00207 sc = m_HltStoreSvc->get("ntrk", pcri); 00208 if ( sc.isFailure() ) ntrk=-9; 00209 else pcri->getValue(ntrk); 00210 sc = m_HltStoreSvc->get("etot", pcri); 00211 if ( sc.isFailure() ) etot=-9; 00212 else pcri->getValue(etot); 00213 sc = m_HltStoreSvc->get("ebar", pcri); 00214 if ( sc.isFailure() ) ebar=-9; 00215 else pcri->getValue(ebar); 00216 sc = m_HltStoreSvc->get("eend", pcri); 00217 if ( sc.isFailure() ) eend=-9; 00218 else pcri->getValue(eend); 00219 sc = m_HltStoreSvc->get("ebal", pcri); 00220 if ( sc.isFailure() ) ebal=-9; 00221 else pcri->getValue(ebal); 00222 sc = m_HltStoreSvc->get("acop", pcri); 00223 if ( sc.isFailure() ) acop=-9; 00224 else pcri->getValue(acop); 00225 sc = m_HltStoreSvc->get("emax1", pcri); 00226 if ( sc.isFailure() ) emax1=-9; 00227 else pcri->getValue(emax1); 00228 sc = m_HltStoreSvc->get("emax2", pcri); 00229 if ( sc.isFailure() ) emax2=-9; 00230 else pcri->getValue(emax2); 00231 sc = m_HltStoreSvc->get("dtof1", pcri); 00232 if ( sc.isFailure() ) dtof1=-999; 00233 else pcri->getValue(dtof1); 00234 sc = m_HltStoreSvc->get("dphi1", pcri); 00235 if ( sc.isFailure() ) dphi1=-9; 00236 else pcri->getValue(dphi1); 00237 sc = m_HltStoreSvc->get("dtof2", pcri); 00238 if ( sc.isFailure() ) dtof2=-999; 00239 else pcri->getValue(dtof2); 00240 sc = m_HltStoreSvc->get("dphi2", pcri); 00241 if ( sc.isFailure() ) dphi2=-9; 00242 else pcri->getValue(dphi2); 00243 sc = m_HltStoreSvc->get("acol", pcri); 00244 if ( sc.isFailure() ) acol=-9; 00245 else pcri->getValue(acol); 00246 sc = m_HltStoreSvc->get("pmax1", pcri); 00247 if ( sc.isFailure() ) pmax1=-9; 00248 else pcri->getValue(pmax1); 00249 sc = m_HltStoreSvc->get("pmax2", pcri); 00250 if ( sc.isFailure() ) pmax2=-9; 00251 else pcri->getValue(pmax2); 00252 sc = m_HltStoreSvc->get("nsec", pcri); 00253 if ( sc.isFailure() ) nsec=-9; 00254 else pcri->getValue(nsec); 00255 sc = m_HltStoreSvc->get("mbal", pcri); 00256 if ( sc.isFailure() ) mbal=-9; 00257 else pcri->getValue(mbal); 00258 m_nmdc=long(nmdc); 00259 m_ntof=long(ntof); 00260 m_nemc=long(nemc); 00261 m_nmuc=long(nmuc); 00262 m_nshower=long(nshower); 00263 m_ntrk=long(ntrk); 00264 m_nsec=long(nsec); 00265 m_etot=etot; 00266 m_ebarrel=ebar; 00267 m_eendcap=eend; 00268 m_ebalance=ebal; 00269 m_acop=acop; 00270 m_emax1=emax1; 00271 m_emax2=emax2; 00272 m_dtof1=dtof1; 00273 m_dphi1=dphi1; 00274 m_dtof2=dtof2; 00275 m_dphi2=dphi2; 00276 m_acol=acol; 00277 m_mbalance=mbal; 00278 m_pmax1=pmax1; 00279 m_pmax2=pmax2; 00280 00281 std::vector<uint32_t> efVec=efResult->getEFVec(); 00282 m_alg =efVec[0]; 00283 /* 00284 m_nmuc =efVec[1]; 00285 m_etot =efVec[4]; 00286 m_emax1=efVec[5]; 00287 m_emax2=efVec[6]; 00288 m_acop =efVec[7]; 00289 m_ebalance=efVec[8]; 00290 m_ebarrel=efVec[9]; 00291 m_eendcap=efVec[10]; 00292 m_ntrk =efVec[11]; 00293 m_pmax1=efVec[12]; 00294 m_pmax2=efVec[13]; 00295 m_acol =efVec[14]; 00296 m_cost1=efVec[15]; 00297 m_cost2=efVec[16]; 00298 m_dtof1 =efVec[19]; 00299 m_dphi1 =efVec[20]; 00300 m_dtof2 =efVec[19]; 00301 m_dphi2 =efVec[20]; 00302 */ 00303 log<< MSG::INFO<<efVec<<endreq; 00304 log<< MSG::INFO<<acol<<" "<<etot<<endreq; 00305 if(m_tuple){ 00306 StatusCode status = m_tuple->write(); 00307 if (!status.isSuccess()) { 00308 log << MSG::ERROR << "Can't fill ntuple!" << endreq; 00309 } 00310 } 00311 00312 //m_timer[1]->start(); 00313 00314 return StatusCode::SUCCESS; 00315 }
StatusCode CheckEFResult::finalize | ( | ) |
Definition at line 317 of file CheckEFResult.cxx.
References genRecEmupikp::i, Bes_Common::INFO, m_notpass, m_outfile, and msgSvc().
00317 { 00318 00319 MsgStream log(msgSvc(), name()); 00320 log << MSG::INFO << "in finalize()" << endreq; 00321 00322 //m_timersvc->print(); 00323 if(m_notpass.size()>0&&m_outfile!="lv2"){ 00324 ofstream outfile; 00325 outfile.open(m_outfile.c_str(),ios_base::out); 00326 for(unsigned int i=0;i<m_notpass.size();i++){ 00327 outfile << m_notpass[i] <<endl; 00328 } 00329 outfile.close(); 00330 } 00331 00332 return StatusCode::SUCCESS; 00333 }
StatusCode CheckEFResult::initialize | ( | ) |
Definition at line 27 of file CheckEFResult.cxx.
References calibUtil::ERROR, Bes_Common::FATAL, Bes_Common::INFO, m_acol, m_acop, m_alg, m_cost1, m_cost2, m_dphi1, m_dphi2, m_dtof1, m_dtof2, m_ebalance, m_ebarrel, m_eendcap, m_emax1, m_emax2, m_etot, m_evtDataSvc, m_evttype, m_HltStoreSvc, m_mbalance, m_nemc, m_nevt, m_nmdc, m_nmuc, m_nsec, m_nshower, m_ntof, m_ntrk, m_pmax1, m_pmax2, m_tuple, msgSvc(), and ntupleSvc().
00027 { 00028 00029 MsgStream log(msgSvc(), name()); 00030 log << MSG::INFO << "in initialize()" << endreq; 00031 00032 StatusCode sc = service( "HltStoreSvc", m_HltStoreSvc); 00033 if( sc.isFailure() ) { 00034 log << MSG::FATAL << name() << ": Unable to locate Service HltStoreSvc" << endreq; 00035 return sc; 00036 } 00037 00038 sc = serviceLocator()->service("EventDataSvc", m_evtDataSvc, true); 00039 if (!sc.isSuccess()) { 00040 log << MSG::FATAL << "Error retrieving EventDataSvc interface IDataProviderSvc." << endreq; 00041 return sc; 00042 } 00043 00044 NTuplePtr nt(ntupleSvc(),"FILE123/EventFilter"); 00045 if ( nt ) m_tuple = nt; 00046 else { 00047 m_tuple=ntupleSvc()->book("FILE123/EventFilter",CLID_ColumnWiseTuple,"EventFilter"); 00048 if( m_tuple ) { 00049 m_tuple->addItem ("alg", m_alg); 00050 m_tuple->addItem ("nevt", m_nevt); 00051 00052 m_tuple->addItem ("ntof", m_ntof); 00053 m_tuple->addItem ("nemc", m_nemc); 00054 m_tuple->addItem ("nmdc", m_nmdc); 00055 m_tuple->addItem ("nshw", m_nshower); 00056 m_tuple->addItem ("nsec", m_nsec); 00057 m_tuple->addItem ("mbal", m_mbalance); 00058 m_tuple->addItem ("type", m_evttype); 00059 //m_tuple->addItem ("time", m_filtertime); 00060 //m_tuple->addItem ("CPUt", m_CPUtime); 00061 00062 m_tuple->addItem ("nmuc", m_nmuc); 00063 m_tuple->addItem ("etot", m_etot); 00064 m_tuple->addItem ("emax1", m_emax1); 00065 m_tuple->addItem ("emax2", m_emax2); 00066 m_tuple->addItem ("acop", m_acop); 00067 m_tuple->addItem ("ebal", m_ebalance); 00068 m_tuple->addItem ("ebar", m_ebarrel); 00069 m_tuple->addItem ("eend", m_eendcap); 00070 m_tuple->addItem ("ntrk", m_ntrk); 00071 m_tuple->addItem ("pmax1", m_pmax1); 00072 m_tuple->addItem ("pmax2", m_pmax2); 00073 m_tuple->addItem ("acol", m_acol); 00074 m_tuple->addItem ("cost1", m_cost1); 00075 m_tuple->addItem ("cost2", m_cost2); 00076 m_tuple->addItem ("dtof1", m_dtof1); 00077 m_tuple->addItem ("dphi1", m_dphi1); 00078 m_tuple->addItem ("dtof2", m_dtof2); 00079 m_tuple->addItem ("dphi2", m_dphi2); 00080 } 00081 else { // did not manage to book the N tuple.... 00082 log << MSG::ERROR <<"Cannot book N-tuple:" << long(m_tuple) << endmsg; 00083 return StatusCode::FAILURE; 00084 } 00085 } 00086 00087 /* 00088 sc = service( "BesTimerSvc", m_timersvc); 00089 if( sc.isFailure() ) { 00090 log << MSG::WARNING << name() << ": Unable to locate BesTimer Service" << endreq; 00091 return StatusCode::FAILURE; 00092 } 00093 00094 m_timer[0] = m_timersvc->addItem("PrueHandler"); 00095 m_timer[0]->propName("nPrueHandler"); 00096 pBesTimer=m_timer[0]; 00097 m_timer[1] = m_timersvc->addItem("WholePro"); 00098 m_timer[1]->propName("nWholePro"); 00099 m_timer[1]->start(); 00100 00101 log << MSG::INFO << pBesTimer<<endreq; 00102 */ 00103 return StatusCode::SUCCESS; 00104 }
NTuple::Item<float> CheckEFResult::m_acol [private] |
NTuple::Item<float> CheckEFResult::m_acop [private] |
NTuple::Item<long> CheckEFResult::m_alg [private] |
NTuple::Item<float> CheckEFResult::m_cost1 [private] |
NTuple::Item<float> CheckEFResult::m_cost2 [private] |
NTuple::Item<float> CheckEFResult::m_dphi1 [private] |
NTuple::Item<float> CheckEFResult::m_dphi2 [private] |
NTuple::Item<float> CheckEFResult::m_dtof1 [private] |
NTuple::Item<float> CheckEFResult::m_dtof2 [private] |
NTuple::Item<float> CheckEFResult::m_ebalance [private] |
NTuple::Item<float> CheckEFResult::m_ebarrel [private] |
NTuple::Item<float> CheckEFResult::m_eendcap [private] |
NTuple::Item<float> CheckEFResult::m_emax1 [private] |
NTuple::Item<float> CheckEFResult::m_emax2 [private] |
NTuple::Item<float> CheckEFResult::m_etot [private] |
IDataProviderSvc* CheckEFResult::m_evtDataSvc [private] |
NTuple::Item<long> CheckEFResult::m_evttype [private] |
HltStoreSvc* CheckEFResult::m_HltStoreSvc [private] |
NTuple::Item<float> CheckEFResult::m_mbalance [private] |
NTuple::Item<long> CheckEFResult::m_nemc [private] |
NTuple::Item<long> CheckEFResult::m_nevt [private] |
NTuple::Item<long> CheckEFResult::m_nmdc [private] |
NTuple::Item<long> CheckEFResult::m_nmuc [private] |
std::vector<int> CheckEFResult::m_notpass [private] |
NTuple::Item<long> CheckEFResult::m_nsec [private] |
NTuple::Item<long> CheckEFResult::m_nshower [private] |
NTuple::Item<long> CheckEFResult::m_ntof [private] |
NTuple::Item<long> CheckEFResult::m_ntrk [private] |
std::string CheckEFResult::m_outfile [private] |
NTuple::Item<float> CheckEFResult::m_pmax1 [private] |
NTuple::Item<float> CheckEFResult::m_pmax2 [private] |
NTuple::Tuple* CheckEFResult::m_tuple [private] |