Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

LumTau Class Reference

#include <LumTau.h>

List of all members.

Public Member Functions

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

Private Attributes

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


Constructor & Destructor Documentation

LumTau::LumTau const std::string &  name,
ISvcLocator *  pSvcLocator
 

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

LumTau::LumTau const std::string &  name,
ISvcLocator *  pSvcLocator
 


Member Function Documentation

StatusCode LumTau::execute  ) 
 

StatusCode LumTau::execute  ) 
 

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  ) 
 

StatusCode LumTau::finalize  ) 
 

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

StatusCode LumTau::hello  ) 
 

StatusCode LumTau::hello  ) 
 

StatusCode LumTau::initialize  ) 
 

StatusCode LumTau::initialize  ) 
 

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]
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 16:21:53 2011 for BOSS6.5.5 by  doxygen 1.3.9.1