55 MsgStream log(
msgSvc(), name() );
57 log << MSG::INFO <<
"in initialize()" << endmsg;
61 status = service(
"InjSigIntervalSvc", m_intervalSvc );
62 if ( status != StatusCode::SUCCESS )
63 { log << MSG::FATAL <<
"can not use InjSigIntervalSvc" << endmsg; }
65 NTuplePtr nt2(
ntupleSvc(),
"LumTau/event" );
66 if ( nt2 ) m_tuple2 = nt2;
70 ntupleSvc()->book(
"LumTau/event", CLID_ColumnWiseTuple,
"Bhabha N-Tuple signal" );
73 status = m_tuple2->addItem(
"topup", m_topup );
74 status = m_tuple2->addItem(
"run", m_run );
75 status = m_tuple2->addItem(
"rec", m_rec );
76 status = m_tuple2->addItem(
"time", m_time );
77 status = m_tuple2->addItem(
"etsT1", m_etsT1 );
78 status = m_tuple2->addItem(
"etot", m_etot );
79 status = m_tuple2->addItem(
"e1", m_e1 );
80 status = m_tuple2->addItem(
"e2", m_e2 );
81 status = m_tuple2->addItem(
"costht1", m_costht1 );
82 status = m_tuple2->addItem(
"costht2", m_costht2 );
83 status = m_tuple2->addItem(
"dltphi", m_dltphi );
84 status = m_tuple2->addItem(
"dlttht", m_dlttht );
85 status = m_tuple2->addItem(
"phi1", m_phi1 );
86 status = m_tuple2->addItem(
"phi2", m_phi2 );
90 log << MSG::ERROR <<
"Cannot book N-tuple2:" << long( m_tuple2 ) << endmsg;
91 return StatusCode::FAILURE;
94 return StatusCode::SUCCESS;
98 StatusCode sc = StatusCode::SUCCESS;
100 MsgStream log(
msgSvc(), name() );
101 log << MSG::INFO <<
"in execute()" << endmsg;
103 SmartDataPtr<Event::EventHeader> eventHeader( eventSvc(),
"/Event/EventHeader" );
106 log << MSG::DEBUG <<
"ncharg, nneu, tottks = " << evtRecEvent->totalCharged() <<
" , "
107 << evtRecEvent->totalNeutral() <<
" , " << evtRecEvent->totalTracks() << endmsg;
110 log << MSG::DEBUG <<
"ncharg, nneu, tottks = " << evtRecEvent->totalCharged() <<
" , "
111 << evtRecEvent->totalNeutral() <<
" , " << evtRecEvent->totalTracks() << endmsg;
112 SmartDataPtr<RecEsTimeCol> evTimeCol( eventSvc(),
"/Event/Recon/RecEsTimeCol" );
115 interval = m_intervalSvc->getTInterval();
116 log << MSG::DEBUG <<
"interval = " << interval << endmsg;
120 log << MSG::FATAL <<
"error in reading the interval!" << endmsg;
121 return StatusCode::FAILURE;
123 else if ( interval < 100 )
128 double time = eventHeader->time();
129 log << MSG::DEBUG <<
"time = " <<
time << endmsg;
130 if (
time <= 0 )
return StatusCode::SUCCESS;
132 m_etsT1 = eventHeader->etsT1() / 2000000.;
133 log << MSG::DEBUG <<
"ets time = " << m_etsT1 << endmsg;
135 m_run = eventHeader->runNumber();
136 m_rec = eventHeader->eventNumber();
138 if ( m_rec % 1000 == 0 )
139 log << MSG::INFO <<
"Run " << m_run <<
" Event " << m_rec << endmsg;
145 if ( ( evtRecEvent->totalTracks() >= 2 ) )
148 for (
int i = 0; i < evtRecEvent->totalTracks(); i++ )
150 if ( i >= evtRecTrkCol->size() )
break;
152 if ( !( *itTrk )->isEmcShowerValid() )
continue;
154 double Ener = emcTrk->
energy();
174 log << MSG::INFO <<
"Emax1 = " << Emax1 <<
"Emax2= " << Emax2 << endmsg;
175 if ( Emax1 > 0 && Emax2 > 0 )
177 double emcphi[2], emctht[2];
178 for (
int i = 0; i < 2; i++ )
180 if ( i >= evtRecTrkCol->size() )
break;
182 if ( !( *itTrk )->isEmcShowerValid() )
continue;
184 emcphi[i] = emcTrk->
phi();
185 emctht[i] = emcTrk->
theta();
188 double dltphi = ( fabs( emcphi[0] - emcphi[1] ) -
pai ) * 180. /
pai;
189 double dlttht = ( fabs( emctht[0] + emctht[1] ) -
pai ) * 180. /
pai;
190 m_costht1 =
cos( emctht[0] );
191 m_costht2 =
cos( emctht[1] );
225 StatusCode DiskWrite = m_tuple2->write();
226 if ( DiskWrite != StatusCode::SUCCESS )
228 log << MSG::FATAL <<
"ERROR In LumTau DiskWrite!" << endmsg;
232 return StatusCode::SUCCESS;