LumTau Class Reference

#include <LumTau.h>

List of all members.

Public Member Functions

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

Private Attributes

NTuple::Tuple * m_tuple2
NTuple::Item< long > m_run
NTuple::Item< long > m_rec
NTuple::Item< double > m_time
NTuple::Item< double > m_etot
NTuple::Item< double > m_e1
NTuple::Item< double > m_e2
NTuple::Item< double > m_costht1
NTuple::Item< double > m_costht2
NTuple::Item< double > m_dltphi
NTuple::Item< double > m_dlttht
NTuple::Item< double > m_phi1
NTuple::Item< double > m_phi2


Detailed Description

Definition at line 9 of file LumTau.h.


Constructor & Destructor Documentation

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

Definition at line 54 of file LumTau.cxx.

00054                                                               :
00055         Algorithm(name, pSvcLocator) 
00056 {  
00057 }


Member Function Documentation

StatusCode LumTau::execute (  ) 

Definition at line 97 of file LumTau.cxx.

References cos(), Bes_Common::DEBUG, DstEmcShower::energy(), EventModel::EvtRec::EvtRecEvent, EventModel::EvtRec::EvtRecTrackCol, Bes_Common::FATAL, genRecEmupikp::i, Bes_Common::INFO, m_costht1, m_costht2, m_dltphi, m_dlttht, m_e1, m_e2, m_etot, m_phi1, m_phi2, m_rec, m_run, m_time, m_tuple2, msgSvc(), pai, DstEmcShower::phi(), and DstEmcShower::theta().

00098 {
00099         StatusCode sc=StatusCode::SUCCESS;
00100 
00101         MsgStream log(msgSvc(),name());
00102         log<<MSG::INFO<<"in execute()"<<endreq;
00103 
00104         SmartDataPtr<Event::EventHeader> eventHeader(eventSvc(),"/Event/EventHeader");
00105         SmartDataPtr<EvtRecEvent> evtRecEvent(eventSvc(), EventModel::EvtRec::EvtRecEvent);
00106 
00107         log<<MSG::DEBUG<<"ncharg, nneu, tottks = "<<evtRecEvent->totalCharged()<<" , "<<evtRecEvent->totalNeutral()<<" , "<<evtRecEvent->totalTracks()<<endreq;
00108         SmartDataPtr<EvtRecTrackCol> evtRecTrkCol(eventSvc(),EventModel::EvtRec::EvtRecTrackCol);
00109 
00110         log<<MSG::DEBUG <<"ncharg, nneu, tottks = "<<evtRecEvent->totalCharged()<<" , "<<evtRecEvent->totalNeutral()<<" , "<<evtRecEvent->totalTracks()<<endreq;
00111         SmartDataPtr<RecEsTimeCol> evTimeCol(eventSvc(),"/Event/Recon/RecEsTimeCol");
00112 
00113         double time = eventHeader->time();
00114         m_time = time;
00115 
00116         m_run = eventHeader->runNumber();
00117         m_rec = eventHeader->eventNumber();
00118 
00119         if(m_rec%1000==0)cout<<"Run   "<<m_run<<"     Event   "<<m_rec<<endl;
00120 
00121         double Emax1 = -1;
00122         double Emax2 = -1;
00123         int Imax[2];
00124 
00125         if((evtRecEvent->totalTracks() >= 2)){
00126                 double etot = 0.;
00127                 for(int i = 0;i < evtRecEvent->totalTracks(); i++)
00128                 {
00129                         if(i>=evtRecTrkCol->size()) break;
00130                         EvtRecTrackIterator  itTrk=evtRecTrkCol->begin() + i;
00131                         if(!(*itTrk)->isEmcShowerValid()) continue;
00132                         RecEmcShower *emcTrk = (*itTrk)->emcShower();
00133                         double Ener=emcTrk->energy();
00134                         if(Ener>Emax2)
00135                         {
00136                                 Emax2=Ener;
00137                                 Imax[1]=i;
00138                         }
00139                         if(Ener>Emax1)
00140                         {
00141                                 Emax2=Emax1;
00142                                 Imax[1]=Imax[0];
00143                                 Emax1=Ener;
00144                                 Imax[0]=i;
00145                         }
00146                         etot += Ener;
00147                 }
00148 
00149                 m_etot = etot;
00150                 m_e1 = Emax1;
00151                 m_e2 = Emax2;
00152 
00153                 log << MSG::INFO << "Emax1 = " << Emax1 <<"Emax2= "<<Emax2<< endreq;
00154                 if(Emax1 > 0 && Emax2 > 0){
00155                         double emcphi[2],emctht[2];
00156                         for(int i = 0;i < 2; i++)
00157                         {
00158                                 if(i>=evtRecTrkCol->size()) break;
00159                                 EvtRecTrackIterator  itTrk=evtRecTrkCol->begin() + Imax[i];
00160                                 if(!(*itTrk)->isEmcShowerValid()) continue;
00161                                 RecEmcShower *emcTrk = (*itTrk)->emcShower();
00162                                 emcphi[i]=emcTrk->phi();
00163                                 emctht[i]=emcTrk->theta();
00164                         }
00165 
00166                         double dltphi=(fabs(emcphi[0]-emcphi[1])-pai)*180./pai;
00167                         double dlttht=(fabs(emctht[0]+emctht[1])-pai)*180./pai;
00168                         m_costht1=cos(emctht[0]);
00169                         m_costht2=cos(emctht[1]);
00170                         m_phi1=emcphi[0];
00171                         m_phi2=emcphi[1];
00172                         m_dlttht=dlttht;
00173                         m_dltphi=dltphi;
00174                 }
00175                 else{
00176                         m_etot = -1;
00177                         m_e1 = -1;
00178                         m_e2 = -1;
00179                         m_costht1 = -1;
00180                         m_costht2 = -1;
00181                         m_phi1 = -1;
00182                         m_phi2 = -1;
00183                         m_dlttht = -1;
00184                         m_dltphi = -1;
00185                 }
00186         }
00187         else{
00188                 m_etot = -1;
00189                 m_e1 = -1;
00190                 m_e2 = -1;
00191                 m_costht1 = -1;
00192                 m_costht2 = -1;
00193                 m_phi1 = -1;
00194                 m_phi2 = -1;
00195                 m_dlttht = -1;
00196                 m_dltphi = -1;
00197         }
00198 
00199 //      m_tuple2->write();
00200 
00201         int DiskWrite = m_tuple2->write();
00202         if(DiskWrite != 1){
00203                 log<<MSG::FATAL<<"ERROR In LumTau DiskWrite!"<<endreq;
00204                 exit(1);
00205         }
00206 
00207         return StatusCode::SUCCESS;
00208 }

StatusCode LumTau::finalize (  ) 

Definition at line 210 of file LumTau.cxx.

00211 {
00212         cout<<"Event Finalize"<<endl;
00213         return StatusCode::SUCCESS;
00214 }

StatusCode LumTau::hello (  ) 

StatusCode LumTau::initialize (  ) 

Definition at line 60 of file LumTau.cxx.

References calibUtil::ERROR, Bes_Common::INFO, m_costht1, m_costht2, m_dltphi, m_dlttht, m_e1, m_e2, m_etot, m_phi1, m_phi2, m_rec, m_run, m_time, m_tuple2, msgSvc(), and ntupleSvc().

00061 {
00062         MsgStream log(msgSvc(), name());
00063 
00064         log << MSG::INFO << "in initialize()" << endmsg;
00065 
00066         StatusCode status;
00067 
00068         NTuplePtr nt2(ntupleSvc(), "LumTau/event");
00069         if ( nt2 ) m_tuple2 = nt2;
00070         else 
00071         {
00072                 m_tuple2 = ntupleSvc()->book ("LumTau/event", CLID_ColumnWiseTuple, "Bhabha N-Tuple signal");
00073                 if ( m_tuple2 )
00074                 {
00075                         status = m_tuple2->addItem ("run",    m_run);
00076                         status = m_tuple2->addItem ("rec",    m_rec);
00077                         status = m_tuple2->addItem ("time",  m_time);  
00078                         status = m_tuple2->addItem ("etot",  m_etot);
00079                         status = m_tuple2->addItem ("e1",    m_e1);
00080                         status = m_tuple2->addItem ("e2",    m_e2);
00081                         status = m_tuple2->addItem ("costht1",    m_costht1);
00082                         status = m_tuple2->addItem ("costht2",    m_costht2);
00083                         status = m_tuple2->addItem ("dltphi",    m_dltphi);
00084                         status = m_tuple2->addItem ("dlttht",    m_dlttht);
00085                         status = m_tuple2->addItem ("phi1",    m_phi1);
00086                         status = m_tuple2->addItem ("phi2",    m_phi2);
00087                 }
00088                 else
00089                 {
00090                         log << MSG::ERROR << "Cannot book N-tuple2:"<<long(m_tuple2)<<endmsg;
00091                         return StatusCode::FAILURE;
00092                 }
00093         }
00094         return StatusCode::SUCCESS;
00095 }


Member Data Documentation

NTuple::Item<double> LumTau::m_costht1 [private]

Definition at line 25 of file LumTau.h.

Referenced by execute(), and initialize().

NTuple::Item<double> LumTau::m_costht2 [private]

Definition at line 26 of file LumTau.h.

Referenced by execute(), and initialize().

NTuple::Item<double> LumTau::m_dltphi [private]

Definition at line 27 of file LumTau.h.

Referenced by execute(), and initialize().

NTuple::Item<double> LumTau::m_dlttht [private]

Definition at line 28 of file LumTau.h.

Referenced by execute(), and initialize().

NTuple::Item<double> LumTau::m_e1 [private]

Definition at line 23 of file LumTau.h.

Referenced by execute(), and initialize().

NTuple::Item<double> LumTau::m_e2 [private]

Definition at line 24 of file LumTau.h.

Referenced by execute(), and initialize().

NTuple::Item<double> LumTau::m_etot [private]

Definition at line 22 of file LumTau.h.

Referenced by execute(), and initialize().

NTuple::Item<double> LumTau::m_phi1 [private]

Definition at line 29 of file LumTau.h.

Referenced by execute(), and initialize().

NTuple::Item<double> LumTau::m_phi2 [private]

Definition at line 30 of file LumTau.h.

Referenced by execute(), and initialize().

NTuple::Item<long> LumTau::m_rec [private]

Definition at line 20 of file LumTau.h.

Referenced by execute(), and initialize().

NTuple::Item<long> LumTau::m_run [private]

Definition at line 19 of file LumTau.h.

Referenced by execute(), and initialize().

NTuple::Item<double> LumTau::m_time [private]

Definition at line 21 of file LumTau.h.

Referenced by execute(), and initialize().

NTuple::Tuple* LumTau::m_tuple2 [private]

Definition at line 18 of file LumTau.h.

Referenced by execute(), and initialize().


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