85 MsgStream log(
msgSvc(), name() );
87 log << MSG::INFO <<
"in initialize()" << endmsg;
91 NTuplePtr nt1(
ntupleSvc(),
"FILE1/vxyz" );
92 if ( nt1 ) m_tuple1 = nt1;
95 m_tuple1 =
ntupleSvc()->book(
"FILE1/vxyz", CLID_ColumnWiseTuple,
"ks N-Tuple example" );
98 status = m_tuple1->addItem(
"vx0", m_vx0 );
99 status = m_tuple1->addItem(
"vy0", m_vy0 );
100 status = m_tuple1->addItem(
"vz0", m_vz0 );
101 status = m_tuple1->addItem(
"vr0", m_vr0 );
105 log << MSG::ERROR <<
" Cannot book N-tuple:" << long( m_tuple1 ) << endmsg;
106 return StatusCode::FAILURE;
110 NTuplePtr nt2(
ntupleSvc(),
"FILE1/photon" );
111 if ( nt2 ) m_tuple2 = nt2;
114 m_tuple2 =
ntupleSvc()->book(
"FILE1/photon", CLID_ColumnWiseTuple,
"ks N-Tuple example" );
117 status = m_tuple2->addItem(
"dthe", m_dthe );
118 status = m_tuple2->addItem(
"dphi", m_dphi );
119 status = m_tuple2->addItem(
"dang", m_dang );
120 status = m_tuple2->addItem(
"eraw", m_eraw );
121 status = m_tuple2->addItem(
"nGam", m_nGam );
125 log << MSG::ERROR <<
" Cannot book N-tuple:" << long( m_tuple2 ) << endmsg;
126 return StatusCode::FAILURE;
132 NTuplePtr nt3(
ntupleSvc(),
"FILE1/dedx" );
133 if ( nt3 ) m_tuple3 = nt3;
136 m_tuple3 =
ntupleSvc()->book(
"FILE1/dedx", CLID_ColumnWiseTuple,
"ks N-Tuple example" );
139 status = m_tuple3->addItem(
"ptrk", m_ptrk );
140 status = m_tuple3->addItem(
"chie", m_chie );
141 status = m_tuple3->addItem(
"chimu", m_chimu );
142 status = m_tuple3->addItem(
"chipi", m_chipi );
143 status = m_tuple3->addItem(
"chik", m_chik );
144 status = m_tuple3->addItem(
"chip", m_chip );
145 status = m_tuple3->addItem(
"probPH", m_probPH );
146 status = m_tuple3->addItem(
"normPH", m_normPH );
147 status = m_tuple3->addItem(
"ghit", m_ghit );
148 status = m_tuple3->addItem(
"thit", m_thit );
152 log << MSG::ERROR <<
" Cannot book N-tuple:" << long( m_tuple3 ) << endmsg;
153 return StatusCode::FAILURE;
160 NTuplePtr nt4(
ntupleSvc(),
"FILE1/tofe" );
161 if ( nt4 ) m_tuple4 = nt4;
164 m_tuple4 =
ntupleSvc()->book(
"FILE1/tofe", CLID_ColumnWiseTuple,
"ks N-Tuple example" );
167 status = m_tuple4->addItem(
"ptrk", m_ptot_etof );
168 status = m_tuple4->addItem(
"cntr", m_cntr_etof );
169 status = m_tuple4->addItem(
"path", m_path_etof );
170 status = m_tuple4->addItem(
"ph", m_ph_etof );
171 status = m_tuple4->addItem(
"rhit", m_rhit_etof );
172 status = m_tuple4->addItem(
"qual", m_qual_etof );
173 status = m_tuple4->addItem(
"tof", m_tof_etof );
174 status = m_tuple4->addItem(
"te", m_te_etof );
175 status = m_tuple4->addItem(
"tmu", m_tmu_etof );
176 status = m_tuple4->addItem(
"tpi", m_tpi_etof );
177 status = m_tuple4->addItem(
"tk", m_tk_etof );
178 status = m_tuple4->addItem(
"tp", m_tp_etof );
182 log << MSG::ERROR <<
" Cannot book N-tuple:" << long( m_tuple4 ) << endmsg;
183 return StatusCode::FAILURE;
190 NTuplePtr nt5(
ntupleSvc(),
"FILE1/tof1" );
191 if ( nt5 ) m_tuple5 = nt5;
194 m_tuple5 =
ntupleSvc()->book(
"FILE1/tof1", CLID_ColumnWiseTuple,
"ks N-Tuple example" );
197 status = m_tuple5->addItem(
"ptrk", m_ptot_btof1 );
198 status = m_tuple5->addItem(
"cntr", m_cntr_btof1 );
199 status = m_tuple5->addItem(
"path", m_path_btof1 );
200 status = m_tuple5->addItem(
"ph", m_ph_btof1 );
201 status = m_tuple5->addItem(
"zhit", m_zhit_btof1 );
202 status = m_tuple5->addItem(
"qual", m_qual_btof1 );
203 status = m_tuple5->addItem(
"tof", m_tof_btof1 );
204 status = m_tuple5->addItem(
"te", m_te_btof1 );
205 status = m_tuple5->addItem(
"tmu", m_tmu_btof1 );
206 status = m_tuple5->addItem(
"tpi", m_tpi_btof1 );
207 status = m_tuple5->addItem(
"tk", m_tk_btof1 );
208 status = m_tuple5->addItem(
"tp", m_tp_btof1 );
212 log << MSG::ERROR <<
" Cannot book N-tuple:" << long( m_tuple5 ) << endmsg;
213 return StatusCode::FAILURE;
220 NTuplePtr nt6(
ntupleSvc(),
"FILE1/tof2" );
221 if ( nt6 ) m_tuple6 = nt6;
224 m_tuple6 =
ntupleSvc()->book(
"FILE1/tof2", CLID_ColumnWiseTuple,
"ks N-Tuple example" );
227 status = m_tuple6->addItem(
"ptrk", m_ptot_btof2 );
228 status = m_tuple6->addItem(
"cntr", m_cntr_btof2 );
229 status = m_tuple6->addItem(
"path", m_path_btof2 );
230 status = m_tuple6->addItem(
"ph", m_ph_btof2 );
231 status = m_tuple6->addItem(
"zhit", m_zhit_btof2 );
232 status = m_tuple6->addItem(
"qual", m_qual_btof2 );
233 status = m_tuple6->addItem(
"tof", m_tof_btof2 );
234 status = m_tuple6->addItem(
"te", m_te_btof2 );
235 status = m_tuple6->addItem(
"tmu", m_tmu_btof2 );
236 status = m_tuple6->addItem(
"tpi", m_tpi_btof2 );
237 status = m_tuple6->addItem(
"tk", m_tk_btof2 );
238 status = m_tuple6->addItem(
"tp", m_tp_btof2 );
242 log << MSG::ERROR <<
" Cannot book N-tuple:" << long( m_tuple6 ) << endmsg;
243 return StatusCode::FAILURE;
248 NTuplePtr nt8(
ntupleSvc(),
"FILE1/infmom" );
249 if ( nt8 ) m_tuple8 = nt8;
252 m_tuple8 =
ntupleSvc()->book(
"FILE1/infmom", CLID_ColumnWiseTuple,
253 "information with momentum method" );
256 status = m_tuple8->addItem(
"momlepp", m_mom_lepp );
257 status = m_tuple8->addItem(
"momlepmm", m_mom_lepm );
258 status = m_tuple8->addItem(
"mompionm", m_mom_pionm );
259 status = m_tuple8->addItem(
"mompionp", m_mom_pionp );
260 status = m_tuple8->addItem(
"pipidang", m_pipi_dang );
261 status = m_tuple8->addItem(
"cmslepp", m_cms_lepp );
262 status = m_tuple8->addItem(
"cmslepm", m_cms_lepm );
263 status = m_tuple8->addItem(
"invtwopi", m_mass_twopi );
264 status = m_tuple8->addItem(
"invjpsi", m_mass_jpsi );
265 status = m_tuple8->addItem(
"recoil", m_mass_recoil );
266 status = m_tuple8->addItem(
"invmass", m_inv_mass );
267 status = m_tuple8->addItem(
"totene", m_tot_e );
268 status = m_tuple8->addItem(
"totpx", m_tot_px );
269 status = m_tuple8->addItem(
"totpy", m_tot_py );
270 status = m_tuple8->addItem(
"totpz", m_tot_pz );
271 status = m_tuple8->addItem(
"epratio", m_ep_ratio );
272 status = m_tuple8->addItem(
"eveflag", m_event_flag );
273 status = m_tuple8->addItem(
"tplepratiom", m_trans_ratio_lepm );
274 status = m_tuple8->addItem(
"tplepratiop", m_trans_ratio_lepp );
275 status = m_tuple8->addItem(
"tppionratiom", m_trans_ratio_pionm );
276 status = m_tuple8->addItem(
"tppionratiop", m_trans_ratio_pionp );
277 status = m_tuple8->addItem(
"run", m_run );
278 status = m_tuple8->addItem(
"event", m_event );
279 status = m_tuple8->addItem(
"ntrack", m_index, 0, 4 );
280 status = m_tuple8->addIndexedItem(
"costhe", m_index, m_cos_theta );
281 status = m_tuple8->addIndexedItem(
"phi", m_index, m_phi );
282 status = m_tuple8->addIndexedItem(
"fourmom", m_index, 4, m_four_mom );
283 status = m_tuple8->addItem(
"pionmat", m_pion_matched );
284 status = m_tuple8->addItem(
"lepmat", m_lep_matched );
286 status = m_tuple8->addItem(
"indexmc", m_idxmc, 0, 100 );
287 status = m_tuple8->addIndexedItem(
"pdgid", m_idxmc, m_pdgid );
288 status = m_tuple8->addIndexedItem(
"motheridx", m_idxmc, m_motheridx );
289 status = m_tuple8->addItem(
"truepp", m_true_pionp );
290 status = m_tuple8->addItem(
"truepm", m_true_pionm );
294 log << MSG::ERROR <<
" Cannot book N-tuple:" << long( m_tuple8 ) << endmsg;
295 return StatusCode::FAILURE;
303 log << MSG::INFO <<
"successfully return from initialize()" << endmsg;
304 return StatusCode::SUCCESS;
312 MsgStream log(
msgSvc(), name() );
313 log << MSG::INFO <<
"in execute()" << endmsg;
315 StatusCode sc = StatusCode::SUCCESS;
317 setFilterPassed(
false );
319 SmartDataPtr<Event::EventHeader> eventHeader( eventSvc(),
"/Event/EventHeader" );
322 log << MSG::ERROR <<
"EventHeader not found" << endmsg;
323 return StatusCode::SUCCESS;
325 int run( eventHeader->runNumber() );
326 int event( eventHeader->eventNumber() );
327 if ( event % 1000 == 0 ) cout <<
"run: " << run <<
" event: " <<
event << endl;
329 SmartDataPtr<EvtRecEvent> evtRecEvent( eventSvc(),
"/Event/EvtRec/EvtRecEvent" );
332 log << MSG::ERROR <<
"EvtRecEvent not found" << endmsg;
333 return StatusCode::SUCCESS;
335 log << MSG::DEBUG <<
"ncharg, nneu, tottks = " << evtRecEvent->totalCharged() <<
" , "
336 << evtRecEvent->totalNeutral() <<
" , " << evtRecEvent->totalTracks() << endmsg;
338 SmartDataPtr<EvtRecTrackCol> evtRecTrkCol( eventSvc(),
"/Event/EvtRec/EvtRecTrackCol" );
341 log << MSG::ERROR <<
"EvtRecTrackCol" << endmsg;
342 return StatusCode::SUCCESS;
345 if ( m_trigger_flag )
350 log << MSG::FATAL <<
"Could not find Trigger Data for physics analysis" << endmsg;
351 return StatusCode::FAILURE;
354 log << MSG::DEBUG <<
"Trigger conditions: " << endmsg;
355 for (
int i = 0; i < 48; i++ )
357 log << MSG::DEBUG <<
"i:" << i <<
" name:" << trigData->getTrigCondName( i )
358 <<
" cond:" << trigData->getTrigCondition( i ) << endmsg;
361 int m_trig_tot( 0 ), m_trig_which( -1 );
364 for (
int j = 0; j < 16; j++ )
366 if ( trigData->getTrigChannel( j ) )
369 m_trig_which = j + 1;
372 if ( m_trig_tot == 1 && m_trig_which == m_chan_det )
m_cout_everat++;
378 if ( evtRecEvent->totalCharged() < 3 || evtRecTrkCol->size() < 3 ||
379 evtRecEvent->totalTracks() > 99 || evtRecTrkCol->size() > 99 )
380 return StatusCode::SUCCESS;
386 int m_num[4] = { 0, 0, 0, 0 };
390 HepLorentzVector m_lv_pionp, m_lv_pionm, m_lv_lepp, m_lv_lepm, m_lv_ele, m_lv_pos, m_lv_mum,
393 for (
int i = 0; i < evtRecEvent->totalCharged(); i++ )
396 if ( !( *itTrk )->isMdcKalTrackValid() )
continue;
403 if ( fabs( m_vz0 ) >= m_vz0cut )
continue;
404 if ( m_vr0 >= m_vr0cut )
continue;
405 iGood.push_back( i );
406 nCharge += mdcTrk->
charge();
407 if ( mdcTrk->
p() < 1.0 )
409 if ( ( *itTrk )->isEmcShowerValid() ) m_pion_matched++;
413 if ( ( *itTrk )->isEmcShowerValid() ) m_lep_matched++;
416 if ( mdcTrk->
charge() > 0 )
418 if ( mdcTrk->
p() < 1.0 )
424 m_lv_pionp = mdcTrk->
p4(
xmass[2] );
430 m_lv_pos = mdcTrk->
p4(
xmass[0] );
432 m_lv_mup = mdcTrk->
p4(
xmass[1] );
438 if ( mdcTrk->
p() < 1.0 )
441 m_lv_pionm = mdcTrk->
p4(
xmass[2] );
447 m_lv_ele = mdcTrk->
p4(
xmass[0] );
449 m_lv_mum = mdcTrk->
p4(
xmass[1] );
455 int nGood = iGood.size();
456 log << MSG::DEBUG <<
"With KalmanTrack, ngood, totcharge = " << nGood <<
" , " << nCharge
458 if ( nGood < 3 || nGood > 4 )
return sc;
462 for (
int i = 0; i < evtRecEvent->totalTracks(); i++ )
465 if ( !( *itTrk )->isEmcShowerValid() )
continue;
467 m_ep_ratio += emcTrk->
energy();
470 if ( m_ep_ratio > m_distin_emuon )
472 m_lv_lepp = m_lv_pos;
473 m_lv_lepm = m_lv_ele;
477 m_lv_lepp = m_lv_mup;
478 m_lv_lepm = m_lv_mum;
481 HepLorentzVector m_lv_lab( 0.04, 0, 0, 3.686 );
484 if ( nCharge )
return sc;
489 if ( m_num[0] > 1 || m_num[1] > 1 || m_num[2] > 1 || m_num[3] > 1 )
return sc;
492 if ( nCharge != -1 )
return StatusCode::SUCCESS;
493 m_lv_pionp = m_lv_lab - m_lv_pionm - m_lv_lepp - m_lv_lepm;
494 if ( m_lv_pionp.vect().cosTheta() > m_cosThetaCut )
return StatusCode::SUCCESS;
499 if ( nCharge != 1 )
return StatusCode::SUCCESS;
500 m_lv_pionm = m_lv_lab - m_lv_pionp - m_lv_lepp - m_lv_lepm;
501 if ( m_lv_pionm.vect().cosTheta() > m_cosThetaCut )
return StatusCode::SUCCESS;
506 if ( nCharge != -1 )
return StatusCode::SUCCESS;
507 m_lv_lepp = m_lv_lab - m_lv_pionp - m_lv_pionm - m_lv_lepm;
508 if ( m_lv_lepp.vect().cosTheta() > m_cosThetaCut )
return StatusCode::SUCCESS;
513 if ( nCharge != 1 )
return StatusCode::SUCCESS;
514 m_lv_lepm = m_lv_lab - m_lv_pionp - m_lv_pionm - m_lv_lepp;
515 if ( m_lv_lepm.vect().cosTheta() > m_cosThetaCut )
return StatusCode::SUCCESS;
523 HepLorentzVector m_lv_recoil, m_lv_jpsi;
524 m_lv_recoil = m_lv_lab - m_lv_pionp - m_lv_pionm;
525 m_lv_jpsi = m_lv_lepp + m_lv_lepm;
527 m_mass_twopi = ( m_lv_pionp + m_lv_pionm ).m();
528 m_mass_recoil = m_lv_recoil.m();
529 m_mass_jpsi = m_lv_jpsi.m();
532 if ( m_mass_recoil < 3.05 || m_mass_recoil > 3.15 )
return sc;
533 if ( m_mass_jpsi < 3.0 || m_mass_jpsi > 3.2 )
return sc;
536 HepLorentzVector m_ttm( m_lv_jpsi + m_lv_pionp + m_lv_pionm );
537 if ( m_ttm.m() > 4 || m_ttm.m() < 3 )
return sc;
540 m_pipi_dang = m_lv_pionp.vect().cosTheta( m_lv_pionm.vect() );
542 m_mom_pionp = m_lv_pionp.vect().mag();
543 m_mom_pionm = m_lv_pionm.vect().mag();
544 m_mom_lepp = m_lv_lepp.vect().mag();
545 m_mom_lepm = m_lv_lepm.vect().mag();
546 m_trans_ratio_lepp = m_lv_lepp.vect().perp() / m_lv_lepp.vect().mag();
547 m_trans_ratio_lepm = m_lv_lepm.vect().perp() / m_lv_lepm.vect().mag();
548 m_trans_ratio_pionp = m_lv_pionp.vect().perp() / m_lv_pionp.vect().mag();
549 m_trans_ratio_pionm = m_lv_pionm.vect().perp() / m_lv_pionm.vect().mag();
551 Hep3Vector m_boost_jpsi( m_lv_recoil.boostVector() );
552 HepLorentzVector m_lv_cms_lepp( boostOf( m_lv_lepp, -m_boost_jpsi ) );
553 HepLorentzVector m_lv_cms_lepm( boostOf( m_lv_lepm, -m_boost_jpsi ) );
554 m_cms_lepm = m_lv_cms_lepm.vect().mag();
555 m_cms_lepp = m_lv_cms_lepp.vect().mag();
556 log << MSG::DEBUG <<
"jpsi four momentum in cms " << m_lv_cms_lepp + m_lv_cms_lepm << endmsg;
558 m_inv_mass = m_ttm.m();
560 m_tot_px = m_ttm.px();
561 m_tot_py = m_ttm.py();
562 m_tot_pz = m_ttm.pz();
565 HepLorentzVector m_lv_book( 0, 0, 0, 0 );
566 for ( m_index = 0; m_index < 4; m_index++ )
570 case 0: m_lv_book = m_lv_pionp;
break;
571 case 1: m_lv_book = m_lv_pionm;
break;
572 case 2: m_lv_book = m_lv_lepp;
break;
573 case 3: m_lv_book = m_lv_lepm;
break;
574 default: m_lv_book.setE( 2008 );
576 m_cos_theta[m_index] = m_lv_book.vect().cosTheta();
577 m_phi[m_index] = m_lv_book.vect().phi();
578 m_four_mom[m_index][0] = m_lv_book.e();
579 m_four_mom[m_index][1] = m_lv_book.px();
580 m_four_mom[m_index][2] = m_lv_book.py();
581 m_four_mom[m_index][3] = m_lv_book.pz();
584 if ( m_subsample_flag ) setFilterPassed(
true );
585 else if ( m_mass_recoil > 3.08 && m_mass_recoil < 3.12 && m_mass_jpsi > 3.0 &&
586 m_mass_jpsi < 3.2 && m_cms_lepp < 1.7 && m_cms_lepp > 1.4 && m_cms_lepm < 1.7 &&
587 m_cms_lepm > 1.4 && m_event_flag == 4 && m_pipi_dang < m_pipi_dang_cut )
588 setFilterPassed(
true );
592 SmartDataPtr<Event::McParticleCol> mcParticleCol( eventSvc(),
"/Event/MC/McParticleCol" );
595 int m_numParticle( 0 ), m_true_pid( 0 );
596 if ( !mcParticleCol )
598 log << MSG::ERROR <<
"Could not retrieve McParticelCol" << endmsg;
599 return StatusCode::FAILURE;
603 bool psipDecay(
false );
605 Event::McParticleCol::iterator iter_mc = mcParticleCol->begin();
606 for ( ; iter_mc != mcParticleCol->end(); iter_mc++ )
608 if ( ( *iter_mc )->primaryParticle() )
continue;
609 if ( !( *iter_mc )->decayFromGenerator() )
continue;
611 if ( ( *iter_mc )->particleProperty() == 100443 )
614 rootIndex = ( *iter_mc )->trackIndex();
616 if ( !psipDecay )
continue;
617 int mcidx = ( ( *iter_mc )->mother() ).trackIndex() - rootIndex;
618 int pdgid = ( *iter_mc )->particleProperty();
619 m_pdgid[m_numParticle] = pdgid;
620 m_motheridx[m_numParticle] = mcidx;
624 if ( ( *iter_mc )->particleProperty() == 211 )
625 m_true_pionp = ( *iter_mc )->initialFourMomentum().vect().mag();
626 if ( ( *iter_mc )->particleProperty() == -211 )
627 m_true_pionm = ( *iter_mc )->initialFourMomentum().vect().mag();
629 m_idxmc = m_numParticle;
639 for (
int i = evtRecEvent->totalCharged(); i < evtRecEvent->totalTracks(); i++ )
642 if ( !( *itTrk )->isEmcShowerValid() )
continue;
644 Hep3Vector emcpos( emcTrk->
x(), emcTrk->
y(), emcTrk->
z() );
649 for (
int j = 0; j < evtRecEvent->totalCharged(); j++ )
652 if ( !( *jtTrk )->isExtTrackValid() )
continue;
657 double angd = extpos.angle( emcpos );
658 double thed = extpos.theta() - emcpos.theta();
659 double phid = extpos.deltaPhi( emcpos );
660 thed = fmod( thed + CLHEP::twopi + CLHEP::twopi +
pi, CLHEP::twopi ) - CLHEP::pi;
661 phid = fmod( phid + CLHEP::twopi + CLHEP::twopi +
pi, CLHEP::twopi ) - CLHEP::pi;
663 if ( fabs( thed ) < fabs( dthe ) ) dthe = thed;
664 if ( fabs( phid ) < fabs( dphi ) ) dphi = phid;
665 if ( angd < dang ) dang = angd;
667 if ( dang >= 200 )
continue;
668 double eraw = emcTrk->
energy();
669 dthe = dthe * 180 / ( CLHEP::pi );
670 dphi = dphi * 180 / ( CLHEP::pi );
671 dang = dang * 180 / ( CLHEP::pi );
679 iGam.push_back( ( *itTrk )->trackId() );
682 m_nGam = iGam.size();
683 log << MSG::DEBUG <<
"num Good Photon " << m_nGam <<
" , " << evtRecEvent->totalNeutral()
692 int m_dedx_cout( 0 );
693 for (
int i = 0; i < nGood; i++ )
696 if ( !( *itTrk )->isMdcDedxValid() )
continue;
700 m_ptrk = mdcTrk->
p();
701 m_chie = dedxTrk->
chiE();
702 m_chimu = dedxTrk->
chiMu();
703 m_chipi = dedxTrk->
chiPi();
704 m_chik = dedxTrk->
chiK();
705 m_chip = dedxTrk->
chiP();
708 m_probPH = dedxTrk->
probPH();
709 m_normPH = dedxTrk->
normPH();
720 int m_endcap_cout( 0 ), m_layer1_cout( 0 ), m_layer2_cout( 0 );
721 for (
int i = 0; i < nGood; i++ )
724 if ( !( *itTrk )->isTofTrackValid() )
continue;
727 SmartRefVector<RecTofTrack> tofTrkCol = ( *itTrk )->tofTrack();
729 double ptrk = mdcTrk->
p();
731 for ( SmartRefVector<RecTofTrack>::iterator iter_tof = tofTrkCol.begin();
732 iter_tof != tofTrkCol.end(); iter_tof++ )
735 status->
setStatus( ( *iter_tof )->status() );
739 if ( status->
layer() != 0 )
continue;
740 double path = ( *iter_tof )->path();
741 double tof = ( *iter_tof )->tof();
742 double ph = ( *iter_tof )->ph();
743 double rhit = ( *iter_tof )->zrhit();
744 double qual = 0.0 + ( *iter_tof )->quality();
745 double cntr = 0.0 + ( *iter_tof )->tofID();
747 for (
int j = 0; j < 5; j++ )
749 double gb =
xmass[j] / ptrk;
750 double beta = sqrt( 1 + gb * gb );
751 texp[j] = path * beta /
velc;
760 m_te_etof = tof - texp[0];
761 m_tmu_etof = tof - texp[1];
762 m_tpi_etof = tof - texp[2];
763 m_tk_etof = tof - texp[3];
764 m_tp_etof = tof - texp[4];
771 if ( status->
layer() == 1 )
773 double path = ( *iter_tof )->path();
774 double tof = ( *iter_tof )->tof();
775 double ph = ( *iter_tof )->ph();
776 double rhit = ( *iter_tof )->zrhit();
777 double qual = 0.0 + ( *iter_tof )->quality();
778 double cntr = 0.0 + ( *iter_tof )->tofID();
780 for (
int j = 0; j < 5; j++ )
782 double gb =
xmass[j] / ptrk;
783 double beta = sqrt( 1 + gb * gb );
784 texp[j] = path * beta /
velc;
794 m_te_btof1 = tof - texp[0];
795 m_tmu_btof1 = tof - texp[1];
796 m_tpi_btof1 = tof - texp[2];
797 m_tk_btof1 = tof - texp[3];
798 m_tp_btof1 = tof - texp[4];
803 if ( status->
layer() == 2 )
805 double path = ( *iter_tof )->path();
806 double tof = ( *iter_tof )->tof();
807 double ph = ( *iter_tof )->ph();
808 double rhit = ( *iter_tof )->zrhit();
809 double qual = 0.0 + ( *iter_tof )->quality();
810 double cntr = 0.0 + ( *iter_tof )->tofID();
812 for (
int j = 0; j < 5; j++ )
814 double gb =
xmass[j] / ptrk;
815 double beta = sqrt( 1 + gb * gb );
816 texp[j] = path * beta /
velc;
826 m_te_btof2 = tof - texp[0];
827 m_tmu_btof2 = tof - texp[1];
828 m_tpi_btof2 = tof - texp[2];
829 m_tk_btof2 = tof - texp[3];
830 m_tp_btof2 = tof - texp[4];
841 return StatusCode::SUCCESS;