PipiJpsi Class Reference

#include <PipiJpsi.h>

List of all members.

Public Member Functions

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

Private Attributes

double m_vr0cut
double m_vz0cut
bool m_checkDedx
bool m_checkTof
bool m_eventrate
int m_chan_det
double m_cosThetaCut
double m_pipi_dang_cut
bool m_subsample_flag
bool m_trigger_flag
double m_distin_emuon
NTuple::Tuple * m_tuple1
NTuple::Item< double > m_vx0
NTuple::Item< double > m_vy0
NTuple::Item< double > m_vz0
NTuple::Item< double > m_vr0
NTuple::Tuple * m_tuple2
NTuple::Item< double > m_dthe
NTuple::Item< double > m_dphi
NTuple::Item< double > m_dang
NTuple::Item< double > m_eraw
NTuple::Item< long > m_nGam
NTuple::Tuple * m_tuple3
NTuple::Item< double > m_ptrk
NTuple::Item< double > m_chie
NTuple::Item< double > m_chimu
NTuple::Item< double > m_chipi
NTuple::Item< double > m_chik
NTuple::Item< double > m_chip
NTuple::Item< double > m_probPH
NTuple::Item< double > m_normPH
NTuple::Item< double > m_ghit
NTuple::Item< double > m_thit
NTuple::Tuple * m_tuple4
NTuple::Item< double > m_ptot_etof
NTuple::Item< double > m_cntr_etof
NTuple::Item< double > m_path_etof
NTuple::Item< double > m_tof_etof
NTuple::Item< double > m_te_etof
NTuple::Item< double > m_tmu_etof
NTuple::Item< double > m_tpi_etof
NTuple::Item< double > m_tk_etof
NTuple::Item< double > m_tp_etof
NTuple::Item< double > m_ph_etof
NTuple::Item< double > m_rhit_etof
NTuple::Item< double > m_qual_etof
NTuple::Tuple * m_tuple5
NTuple::Item< double > m_ptot_btof1
NTuple::Item< double > m_cntr_btof1
NTuple::Item< double > m_path_btof1
NTuple::Item< double > m_tof_btof1
NTuple::Item< double > m_te_btof1
NTuple::Item< double > m_tmu_btof1
NTuple::Item< double > m_tpi_btof1
NTuple::Item< double > m_tk_btof1
NTuple::Item< double > m_tp_btof1
NTuple::Item< double > m_ph_btof1
NTuple::Item< double > m_zhit_btof1
NTuple::Item< double > m_qual_btof1
NTuple::Tuple * m_tuple6
NTuple::Item< double > m_ptot_btof2
NTuple::Item< double > m_cntr_btof2
NTuple::Item< double > m_path_btof2
NTuple::Item< double > m_tof_btof2
NTuple::Item< double > m_te_btof2
NTuple::Item< double > m_tmu_btof2
NTuple::Item< double > m_tpi_btof2
NTuple::Item< double > m_tk_btof2
NTuple::Item< double > m_tp_btof2
NTuple::Item< double > m_ph_btof2
NTuple::Item< double > m_zhit_btof2
NTuple::Item< double > m_qual_btof2
NTuple::Tuple * m_tuple8
NTuple::Item< double > m_mom_lepm
NTuple::Item< double > m_mom_lepp
NTuple::Item< double > m_mom_pionp
NTuple::Item< double > m_mom_pionm
NTuple::Item< double > m_pipi_dang
NTuple::Item< double > m_cms_lepp
NTuple::Item< double > m_cms_lepm
NTuple::Item< double > m_mass_twopi
NTuple::Item< double > m_mass_jpsi
NTuple::Item< double > m_mass_recoil
NTuple::Item< double > m_inv_mass
NTuple::Item< double > m_tot_e
NTuple::Item< double > m_tot_px
NTuple::Item< double > m_tot_py
NTuple::Item< double > m_tot_pz
NTuple::Item< double > m_ep_ratio
NTuple::Item< long > m_event_flag
NTuple::Item< double > m_trans_ratio_lepm
NTuple::Item< double > m_trans_ratio_lepp
NTuple::Item< double > m_trans_ratio_pionp
NTuple::Item< double > m_trans_ratio_pionm
NTuple::Item< long > m_run
NTuple::Item< long > m_event
NTuple::Item< long > m_index
NTuple::Array< double > m_cos_theta
NTuple::Array< double > m_phi
NTuple::Matrix< double > m_four_mom
NTuple::Item< long > m_pion_matched
NTuple::Item< long > m_lep_matched
NTuple::Item< long > m_idxmc
NTuple::Array< long > m_pdgid
NTuple::Array< long > m_motheridx
NTuple::Item< double > m_true_pionp
NTuple::Item< double > m_true_pionm


Detailed Description

Definition at line 11 of file PipiJpsi.h.


Constructor & Destructor Documentation

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

Definition at line 64 of file PipiJpsi.cxx.

References m_chan_det, m_checkDedx, m_checkTof, m_cosThetaCut, m_distin_emuon, m_eventrate, m_pipi_dang_cut, m_subsample_flag, m_trigger_flag, m_vr0cut, and m_vz0cut.

00064                                                                   :
00065   Algorithm(name, pSvcLocator) {
00066   //Declare the properties  
00067   declareProperty("Vr0cut", m_vr0cut=1.0);
00068   declareProperty("Vz0cut", m_vz0cut=5.0);
00069   declareProperty("TrackCosThetaCut",m_cosThetaCut=0.93);
00070   declareProperty("PipiDangCut",m_pipi_dang_cut=0.98);
00071 
00072   declareProperty("CheckDedx", m_checkDedx = true);
00073   declareProperty("CheckTof",  m_checkTof = true);
00074 
00075   declareProperty("Subsample", m_subsample_flag=false); 
00076   declareProperty("Trigger", m_trigger_flag=false); 
00077   declareProperty("DistinEMuon", m_distin_emuon=2.0);
00078 
00079   declareProperty("EventRate", m_eventrate=false);
00080   declareProperty("ChanDet", m_chan_det=1);
00081 }


Member Function Documentation

StatusCode PipiJpsi::execute (  ) 

Definition at line 287 of file PipiJpsi.cxx.

References DstMdcKalTrack::charge(), DstMdcDedx::chiE(), DstMdcDedx::chiK(), DstMdcDedx::chiMu(), DstMdcDedx::chiP(), DstMdcDedx::chiPi(), Bes_Common::DEBUG, DstMdcKalTrack::electron, DstExtTrack::emcPosition(), DstExtTrack::emcVolumeNumber(), DstEmcShower::energy(), calibUtil::ERROR, Bes_Common::FATAL, genRecEmupikp::i, Bes_Common::INFO, ganga-rec::j, m_chan_det, m_checkDedx, m_checkTof, m_chie, m_chik, m_chimu, m_chip, m_chipi, m_cms_lepm, m_cms_lepp, m_cntr_btof1, m_cntr_btof2, m_cntr_etof, m_cos_theta, m_cosThetaCut, m_cout_all(), m_cout_charge(), m_cout_col(), m_cout_everat(), m_cout_mom(), m_cout_nGood(), m_cout_recoil(), m_dang, m_distin_emuon, m_dphi, m_dthe, m_ep_ratio, m_eraw, m_event, m_event_flag, m_eventrate, m_four_mom, m_ghit, m_idxmc, m_index, m_inv_mass, m_lep_matched, m_mass_jpsi, m_mass_recoil, m_mass_twopi, m_mom_lepm, m_mom_lepp, m_mom_pionm, m_mom_pionp, m_motheridx, m_nGam, m_normPH, m_path_btof1, m_path_btof2, m_path_etof, m_pdgid, m_ph_btof1, m_ph_btof2, m_ph_etof, m_phi, m_pion_matched, m_pipi_dang, m_pipi_dang_cut, m_probPH, m_ptot_btof1, m_ptot_btof2, m_ptot_etof, m_ptrk, m_qual_btof1, m_qual_btof2, m_qual_etof, m_rhit_etof, m_run, m_subsample_flag, m_te_btof1, m_te_btof2, m_te_etof, m_thit, m_tk_btof1, m_tk_btof2, m_tk_etof, m_tmu_btof1, m_tmu_btof2, m_tmu_etof, m_tof_btof1, m_tof_btof2, m_tof_etof, m_tot_e, m_tot_px, m_tot_py, m_tot_pz, m_tp_btof1, m_tp_btof2, m_tp_etof, m_tpi_btof1, m_tpi_btof2, m_tpi_etof, m_trans_ratio_lepm, m_trans_ratio_lepp, m_trans_ratio_pionm, m_trans_ratio_pionp, m_trigger_flag, m_true_pionm, m_true_pionp, m_tuple1, m_tuple2, m_tuple3, m_tuple4, m_tuple5, m_tuple6, m_tuple8, m_vr0, m_vr0cut, m_vx0, m_vy0, m_vz0, m_vz0cut, m_zhit_btof1, m_zhit_btof2, msgSvc(), DstMdcKalTrack::muon, DstMdcDedx::normPH(), DstMdcDedx::numGoodHits(), DstMdcDedx::numTotalHits(), DstMdcKalTrack::p(), DstMdcKalTrack::p4(), pi, DstMdcKalTrack::pion, DstMdcDedx::probPH(), DstMdcKalTrack::r(), DstMdcKalTrack::setPidType(), EventModel::Trig::TrigData, velc, DstEmcShower::x(), DstMdcKalTrack::x(), xmass, DstEmcShower::y(), DstMdcKalTrack::y(), DstEmcShower::z(), and DstMdcKalTrack::z().

00287                              {
00288   
00289   //std::cout << "execute()" << std::endl;
00290 
00291   MsgStream log(msgSvc(), name());
00292   log << MSG::INFO << "in execute()" << endreq;
00293   m_cout_all ++;
00294   StatusCode sc=StatusCode::SUCCESS;
00295   //save the events passed selection to a new file
00296   setFilterPassed(false);
00297 
00298   SmartDataPtr<Event::EventHeader> eventHeader(eventSvc(),"/Event/EventHeader");
00299   if(!eventHeader){
00300     log << MSG::ERROR << "EventHeader not found" << endreq;
00301     return StatusCode::SUCCESS;
00302   }
00303   int run(eventHeader->runNumber());
00304   int event(eventHeader->eventNumber());
00305   if(event%1000==0) cout << "run: " << run << " event: " << event << endl;
00306 
00307   SmartDataPtr<EvtRecEvent> evtRecEvent(eventSvc(), "/Event/EvtRec/EvtRecEvent");
00308   if(!evtRecEvent){
00309     log << MSG::ERROR << "EvtRecEvent not found" << endreq;
00310     return StatusCode::SUCCESS;
00311   }
00312     log << MSG::DEBUG <<"ncharg, nneu, tottks = " 
00313       << evtRecEvent->totalCharged() << " , "
00314       << evtRecEvent->totalNeutral() << " , "
00315       << evtRecEvent->totalTracks() <<endreq;
00316     
00317   SmartDataPtr<EvtRecTrackCol> evtRecTrkCol(eventSvc(), "/Event/EvtRec/EvtRecTrackCol");
00318   if(!evtRecTrkCol){
00319     log << MSG::ERROR << "EvtRecTrackCol" << endreq;
00320     return StatusCode::SUCCESS;
00321   }
00322 
00323   if(m_trigger_flag){
00324     SmartDataPtr<TrigData> trigData(eventSvc(),EventModel::Trig::TrigData);
00325     if (!trigData) {
00326       log << MSG::FATAL << "Could not find Trigger Data for physics analysis" << endreq;
00327       return StatusCode::FAILURE;
00328     }
00330     log << MSG::DEBUG << "Trigger conditions: " << endreq;
00331     for(int i=0; i < 48; i++){
00332       log << MSG::DEBUG << "i:" << i << "  name:" << trigData->getTrigCondName(i) << "  cond:" << trigData->getTrigCondition(i) << endreq;
00333     }
00334     // test event rate
00335     int m_trig_tot(0), m_trig_which(-1);
00336     if(m_eventrate){
00337       for(int j=0; j<16; j++){
00338         if(trigData->getTrigChannel(j)){
00339           m_trig_tot ++;
00340           m_trig_which = j+1;
00341         }
00342       }
00343       if(m_trig_tot==1 && m_trig_which==m_chan_det) m_cout_everat++;
00344       return sc;
00345     }
00346   }
00347 
00348   m_cout_col ++;
00349   if(evtRecEvent->totalCharged()<3 || evtRecTrkCol->size()<3 || evtRecEvent->totalTracks()>99 || evtRecTrkCol->size()>99) return StatusCode::SUCCESS;
00350   m_cout_charge ++;
00351 
00352   // Asign four-momentum with KalmanTrack
00353   Vint iGood; iGood.clear();
00354   int m_num[4]={0,0,0,0}; // number of different particles: pi+, pi-, l+, l-
00355   int nCharge = 0;
00356   m_pion_matched = 0; m_lep_matched = 0;
00357   HepLorentzVector m_lv_pionp, m_lv_pionm, m_lv_lepp, m_lv_lepm, m_lv_ele, m_lv_pos, m_lv_mum, m_lv_mup;
00358 
00359   for(int i = 0; i < evtRecEvent->totalCharged(); i++){
00360     EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + i;
00361     if(!(*itTrk)->isMdcKalTrackValid()) continue;
00362     RecMdcKalTrack* mdcTrk = (*itTrk)->mdcKalTrack(); 
00363   
00364     m_vx0 = mdcTrk->x();
00365     m_vy0 = mdcTrk->y();
00366     m_vz0 = mdcTrk->z();
00367     m_vr0 = mdcTrk->r();
00368     if(fabs(m_vz0) >= m_vz0cut) continue;
00369     if(m_vr0 >= m_vr0cut) continue;
00370     iGood.push_back(i);
00371     nCharge += mdcTrk->charge();
00372     if(mdcTrk->p()<1.0){ if((*itTrk)->isEmcShowerValid()) m_pion_matched ++; }
00373     else{ if((*itTrk)->isEmcShowerValid()) m_lep_matched ++; }
00374 
00375     if(mdcTrk->charge()>0){
00376       if(mdcTrk->p()<1.0){
00377         mdcTrk->setPidType(RecMdcKalTrack::pion);
00378         // Warning: for ones who do not modify the DstMdcKalTrack package, the following p4() function cannot be used, you should get momentum from MdcKalTrack, then calculate the energy by yourself
00379         m_lv_pionp = mdcTrk->p4(xmass[2]);  
00380         m_num[0] ++;
00381       }
00382       else{
00383         mdcTrk->setPidType(RecMdcKalTrack::electron);
00384         m_lv_pos = mdcTrk->p4(xmass[0]);
00385         mdcTrk->setPidType(RecMdcKalTrack::muon);
00386         m_lv_mup = mdcTrk->p4(xmass[1]);
00387         m_num[2] ++;
00388       }
00389     }
00390     else{
00391       if(mdcTrk->p()<1.0){
00392         mdcTrk->setPidType(RecMdcKalTrack::pion);
00393         m_lv_pionm = mdcTrk->p4(xmass[2]); 
00394         m_num[1] ++;
00395       }
00396       else{
00397         mdcTrk->setPidType(RecMdcKalTrack::electron);
00398         m_lv_ele = mdcTrk->p4(xmass[0]); 
00399         mdcTrk->setPidType(RecMdcKalTrack::muon);
00400         m_lv_mum = mdcTrk->p4(xmass[1]); 
00401         m_num[3] ++;
00402       }
00403     }
00404   }
00405   
00406   int nGood = iGood.size();
00407   log << MSG::DEBUG << "With KalmanTrack, ngood, totcharge = " << nGood << " , " << nCharge << endreq;
00408   if(nGood<3 || nGood>4) return sc;
00409   m_cout_nGood ++;
00410 
00411   m_ep_ratio = 0;
00412   for(int i=0; i< evtRecEvent->totalTracks(); i++){
00413     EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + i;
00414     if(!(*itTrk)->isEmcShowerValid()) continue;
00415     RecEmcShower *emcTrk = (*itTrk)->emcShower();
00416     m_ep_ratio += emcTrk->energy();
00417   }
00418 
00419   if(m_ep_ratio > m_distin_emuon){
00420     m_lv_lepp = m_lv_pos;
00421     m_lv_lepm = m_lv_ele;
00422   }
00423   else{
00424     m_lv_lepp = m_lv_mup;
00425     m_lv_lepm = m_lv_mum;
00426   }
00427 
00428   HepLorentzVector m_lv_lab(0.04,0,0,3.686);
00429   if(nGood==4){
00430     if(nCharge) return sc;
00431     m_event_flag = 4;
00432   }
00433   else{ 
00434     if(m_num[0]>1 || m_num[1]>1 || m_num[2]>1 || m_num[3]>1) return sc;
00435     if(m_num[0]==0){
00436       if(nCharge != -1) return StatusCode::SUCCESS;
00437       m_lv_pionp = m_lv_lab - m_lv_pionm - m_lv_lepp - m_lv_lepm;
00438       if(m_lv_pionp.vect().cosTheta()>m_cosThetaCut)return StatusCode::SUCCESS;
00439       m_event_flag = 0;
00440     }
00441     if(m_num[1]==0){
00442       if(nCharge != 1) return StatusCode::SUCCESS;
00443       m_lv_pionm = m_lv_lab - m_lv_pionp - m_lv_lepp - m_lv_lepm;
00444       if(m_lv_pionm.vect().cosTheta()>m_cosThetaCut)return StatusCode::SUCCESS;
00445       m_event_flag = 1;
00446     }
00447     if(m_num[2]==0){
00448       if(nCharge != -1) return StatusCode::SUCCESS;
00449       m_lv_lepp = m_lv_lab - m_lv_pionp - m_lv_pionm - m_lv_lepm;
00450       if(m_lv_lepp.vect().cosTheta()>m_cosThetaCut)return StatusCode::SUCCESS;
00451       m_event_flag = 2;
00452     }
00453     if(m_num[3]==0){
00454        if(nCharge != 1) return StatusCode::SUCCESS;
00455        m_lv_lepm = m_lv_lab - m_lv_pionp - m_lv_pionm - m_lv_lepp;
00456       if(m_lv_lepm.vect().cosTheta()>m_cosThetaCut)return StatusCode::SUCCESS;
00457       m_event_flag = 3;
00458     }
00459   }
00460   m_cout_mom ++;
00461 
00462   // With momentum method calculate the invariant mass of Jpsi
00463   // actually we use the recoil mass
00464   HepLorentzVector m_lv_recoil, m_lv_jpsi;
00465   m_lv_recoil = m_lv_lab - m_lv_pionp - m_lv_pionm;
00466   m_lv_jpsi = m_lv_lepp + m_lv_lepm;
00467 
00468   m_mass_twopi = (m_lv_pionp + m_lv_pionm).m();
00469   m_mass_recoil = m_lv_recoil.m();
00470   m_mass_jpsi = m_lv_jpsi.m();
00471 
00472   // Jpsi mass cut
00473   if( m_mass_recoil < 3.05 || m_mass_recoil > 3.15 ) return sc;
00474   if( m_mass_jpsi < 3.0 || m_mass_jpsi > 3.2 ) return sc;
00475   m_cout_recoil ++;
00476 
00477   HepLorentzVector m_ttm(m_lv_jpsi + m_lv_pionp + m_lv_pionm);
00478   if(m_ttm.m()>4 || m_ttm.m()<3) return sc;
00479  
00480   // dangle between pions, suppress gamma convertion
00481   m_pipi_dang = m_lv_pionp.vect().cosTheta(m_lv_pionm.vect());
00482 
00483   m_mom_pionp = m_lv_pionp.vect().mag();
00484   m_mom_pionm = m_lv_pionm.vect().mag();
00485   m_mom_lepp = m_lv_lepp.vect().mag();
00486   m_mom_lepm = m_lv_lepm.vect().mag();
00487   m_trans_ratio_lepp = m_lv_lepp.vect().perp()/m_lv_lepp.vect().mag();
00488   m_trans_ratio_lepm = m_lv_lepm.vect().perp()/m_lv_lepm.vect().mag();
00489   m_trans_ratio_pionp = m_lv_pionp.vect().perp()/m_lv_pionp.vect().mag();
00490   m_trans_ratio_pionm = m_lv_pionm.vect().perp()/m_lv_pionm.vect().mag();
00491 
00492   Hep3Vector m_boost_jpsi(m_lv_recoil.boostVector());
00493   HepLorentzVector m_lv_cms_lepp(boostOf(m_lv_lepp,-m_boost_jpsi));
00494   HepLorentzVector m_lv_cms_lepm(boostOf(m_lv_lepm,-m_boost_jpsi));
00495   m_cms_lepm = m_lv_cms_lepm.vect().mag();
00496   m_cms_lepp = m_lv_cms_lepp.vect().mag();
00497   log << MSG::DEBUG << "jpsi four momentum in cms " << m_lv_cms_lepp + m_lv_cms_lepm <<endreq;
00498 
00499   m_inv_mass = m_ttm.m();
00500   m_tot_e = m_ttm.e();
00501   m_tot_px = m_ttm.px();
00502   m_tot_py = m_ttm.py();
00503   m_tot_pz = m_ttm.pz();
00504   m_run = run;
00505   m_event = event;
00506   HepLorentzVector m_lv_book(0,0,0,0); // assume one track is missing
00507   for(m_index=0; m_index<4; m_index++){
00508     switch(m_index){
00509     case 0: m_lv_book = m_lv_pionp; 
00510       break;
00511     case 1: m_lv_book = m_lv_pionm; 
00512       break;
00513     case 2: m_lv_book = m_lv_lepp;
00514       break;
00515     case 3: m_lv_book = m_lv_lepm;
00516       break;
00517     default: m_lv_book.setE(2008);
00518     }
00519     m_cos_theta[m_index] = m_lv_book.vect().cosTheta();
00520     m_phi[m_index] = m_lv_book.vect().phi();
00521     m_four_mom[m_index][0] = m_lv_book.e();
00522     m_four_mom[m_index][1] = m_lv_book.px();
00523     m_four_mom[m_index][2] = m_lv_book.py();
00524     m_four_mom[m_index][3] = m_lv_book.pz();
00525   }
00526 
00527   if(m_subsample_flag) setFilterPassed(true);
00528   else if(m_mass_recoil>3.08 && m_mass_recoil<3.12 && m_mass_jpsi>3.0 && m_mass_jpsi<3.2 && m_cms_lepp<1.7 && m_cms_lepp>1.4 && m_cms_lepm<1.7 && m_cms_lepm>1.4 && m_event_flag==4 && m_pipi_dang<m_pipi_dang_cut) setFilterPassed(true);
00529   //cout << "passed" << endl;
00530 
00531   //MC information
00532   SmartDataPtr<Event::McParticleCol> mcParticleCol(eventSvc(), "/Event/MC/McParticleCol");
00533   if(m_run<0){
00534     int m_numParticle(0), m_true_pid(0);
00535     if(!mcParticleCol){
00536       log << MSG::ERROR << "Could not retrieve McParticelCol" << endreq;
00537       return StatusCode::FAILURE;
00538     }
00539     else{
00540       bool psipDecay(false);
00541       int rootIndex(-1);
00542       Event::McParticleCol::iterator iter_mc = mcParticleCol->begin();
00543       for (; iter_mc != mcParticleCol->end(); iter_mc++){
00544         if ((*iter_mc)->primaryParticle()) continue;
00545         if (!(*iter_mc)->decayFromGenerator()) continue;
00546         //if ( ((*iter_mc)->mother()).trackIndex()<3 ) continue;
00547         if ((*iter_mc)->particleProperty()==100443){
00548           psipDecay = true;
00549           rootIndex = (*iter_mc)->trackIndex();
00550         }
00551         if (!psipDecay) continue;
00552         int mcidx = ((*iter_mc)->mother()).trackIndex() - rootIndex;
00553         int pdgid = (*iter_mc)->particleProperty();
00554         m_pdgid[m_numParticle] = pdgid;
00555         m_motheridx[m_numParticle] = mcidx;
00556         m_numParticle ++;    
00557 
00558         //if(!(*iter_mc)->leafParticle()) continue;
00559         if((*iter_mc)->particleProperty() == 211) m_true_pionp = (*iter_mc)->initialFourMomentum().vect().mag();
00560         if((*iter_mc)->particleProperty() == -211) m_true_pionm = (*iter_mc)->initialFourMomentum().vect().mag();
00561       }
00562       m_idxmc = m_numParticle;
00563     }
00564   }
00565 
00566   m_tuple1->write();
00567   m_tuple8->write();
00568 
00569 
00570   // next is good photon selection
00571   Vint iGam;  iGam.clear();
00572   for(int i = evtRecEvent->totalCharged(); i< evtRecEvent->totalTracks(); i++) {
00573     EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + i;
00574     if(!(*itTrk)->isEmcShowerValid()) continue;
00575     RecEmcShower *emcTrk = (*itTrk)->emcShower();
00576     Hep3Vector emcpos(emcTrk->x(), emcTrk->y(), emcTrk->z());
00577     // find the nearest charged track
00578     double dthe = 200.;
00579     double dphi = 200.;
00580     double dang = 200.; 
00581     for(int j = 0; j < evtRecEvent->totalCharged(); j++) {
00582       EvtRecTrackIterator jtTrk = evtRecTrkCol->begin() + j;
00583       if(!(*jtTrk)->isExtTrackValid()) continue;
00584       RecExtTrack *extTrk = (*jtTrk)->extTrack();
00585       if(extTrk->emcVolumeNumber() == -1) continue;
00586       Hep3Vector extpos = extTrk->emcPosition();
00587       //      double ctht = extpos.cosTheta(emcpos);
00588       double angd = extpos.angle(emcpos);
00589       double thed = extpos.theta() - emcpos.theta();
00590       double phid = extpos.deltaPhi(emcpos);
00591       thed = fmod(thed+CLHEP::twopi+CLHEP::twopi+pi, CLHEP::twopi) - CLHEP::pi;
00592       phid = fmod(phid+CLHEP::twopi+CLHEP::twopi+pi, CLHEP::twopi) - CLHEP::pi;
00593 
00594       if(fabs(thed) < fabs(dthe)) dthe = thed;
00595       if(fabs(phid) < fabs(dphi)) dphi = phid;
00596       if(angd < dang) dang = angd;
00597     }
00598     if(dang>=200) continue;
00599     double eraw = emcTrk->energy();
00600     dthe = dthe * 180 / (CLHEP::pi);
00601     dphi = dphi * 180 / (CLHEP::pi);
00602     dang = dang * 180 / (CLHEP::pi);
00603     m_dthe = dthe;
00604     m_dphi = dphi;
00605     m_dang = dang;
00606     m_eraw = eraw;
00607     // if(eraw < m_energyThreshold) continue;
00608     // if((fabs(dthe) < m_gammaThetaCut) && (fabs(dphi)<m_gammaPhiCut) ) continue;
00609     // good photon cut will be set here
00610     iGam.push_back((*itTrk)->trackId());
00611   }
00612   // Finish Good Photon Selection
00613   m_nGam = iGam.size();
00614   log << MSG::DEBUG << "num Good Photon " << m_nGam  << " , " <<evtRecEvent->totalNeutral()<<endreq;
00615   m_tuple2->write();
00616 
00617   //
00618   // check dedx infomation
00619   //
00620   if(m_checkDedx) {
00621     int m_dedx_cout(0);
00622     for(int i = 0; i < nGood; i++) {
00623       EvtRecTrackIterator  itTrk = evtRecTrkCol->begin() + iGood[i];
00624       if(!(*itTrk)->isMdcDedxValid())continue;
00625       RecMdcKalTrack *mdcTrk = (*itTrk)->mdcKalTrack();
00626       RecMdcDedx *dedxTrk = (*itTrk)->mdcDedx();
00627   
00628       m_ptrk = mdcTrk->p();
00629       m_chie = dedxTrk->chiE();
00630       m_chimu = dedxTrk->chiMu();
00631       m_chipi = dedxTrk->chiPi();
00632       m_chik = dedxTrk->chiK();
00633       m_chip = dedxTrk->chiP();
00634       m_ghit = dedxTrk->numGoodHits();
00635       m_thit = dedxTrk->numTotalHits();
00636       m_probPH = dedxTrk->probPH();
00637       m_normPH = dedxTrk->normPH();
00638 
00639       m_tuple3->write();
00640     }
00641   }
00642 
00643   //
00644   // check TOF infomation
00645   //
00646   if(m_checkTof) {
00647     int m_endcap_cout(0), m_layer1_cout(0), m_layer2_cout(0);
00648     for(int i = 0; i < nGood; i++) {
00649       EvtRecTrackIterator  itTrk = evtRecTrkCol->begin() + iGood[i];
00650       if(!(*itTrk)->isTofTrackValid()) continue;
00651 
00652       RecMdcKalTrack *mdcTrk = (*itTrk)->mdcKalTrack();
00653       SmartRefVector<RecTofTrack> tofTrkCol = (*itTrk)->tofTrack();
00654 
00655       double ptrk = mdcTrk->p();
00656 
00657       for( SmartRefVector<RecTofTrack>::iterator iter_tof = tofTrkCol.begin() ;iter_tof != tofTrkCol.end(); iter_tof++ ) { 
00658         TofHitStatus *status = new TofHitStatus; 
00659         status->setStatus((*iter_tof)->status());
00660         if(!(status->is_barrel())){//endcap
00661           if( !(status->is_counter()) ) continue; // ? 
00662           if( status->layer()!=0 ) continue;//layer1
00663           double path = (*iter_tof)->path(); // ? the unit is cm
00664           double tof  = (*iter_tof)->tof();  // the unit is ns/100
00665           double ph   = (*iter_tof)->ph();
00666           double rhit = (*iter_tof)->zrhit();
00667           double qual = 0.0 + (*iter_tof)->quality();
00668           double cntr = 0.0 + (*iter_tof)->tofID();
00669           double texp[5];
00670           for(int j = 0; j < 5; j++) {
00671             double gb = xmass[j]/ptrk;
00672             double beta = sqrt(1+gb*gb);
00673             texp[j] = path*beta/velc; // the unit here is ns
00674           }
00675           m_cntr_etof  = cntr;
00676           m_ptot_etof  = ptrk;
00677           m_path_etof = path;
00678           m_ph_etof    = ph;
00679           m_rhit_etof  = rhit;
00680           m_qual_etof  = qual;
00681           m_tof_etof = tof;
00682           m_te_etof    = tof - texp[0];
00683           m_tmu_etof   = tof - texp[1];
00684           m_tpi_etof   = tof - texp[2];
00685           m_tk_etof    = tof - texp[3];
00686           m_tp_etof    = tof - texp[4];
00687 
00688           m_tuple4->write();
00689         }
00690         else {//barrel
00691           if( !(status->is_counter()) ) continue; // ? 
00692           if(status->layer()==1){ //layer1
00693             double path=(*iter_tof)->path(); // ? 
00694             double tof  = (*iter_tof)->tof();
00695             double ph   = (*iter_tof)->ph();
00696             double rhit = (*iter_tof)->zrhit();
00697             double qual = 0.0 + (*iter_tof)->quality();
00698             double cntr = 0.0 + (*iter_tof)->tofID();
00699             double texp[5];
00700             for(int j = 0; j < 5; j++) {
00701             double gb = xmass[j]/ptrk;
00702             double beta = sqrt(1+gb*gb);
00703             texp[j] = path*beta/velc;
00704             }
00705  
00706             m_cntr_btof1  = cntr;
00707             m_ptot_btof1 = ptrk;
00708             m_path_btof1 = path;
00709             m_ph_btof1   = ph;
00710             m_zhit_btof1  = rhit;
00711             m_qual_btof1  = qual;
00712             m_tof_btof1 = tof;
00713             m_te_btof1    = tof - texp[0];
00714             m_tmu_btof1   = tof - texp[1];
00715             m_tpi_btof1   = tof - texp[2];
00716             m_tk_btof1    = tof - texp[3];
00717             m_tp_btof1    = tof - texp[4];
00718 
00719             m_tuple5->write();
00720           }
00721 
00722           if(status->layer()==2){//layer2
00723             double path=(*iter_tof)->path(); // ? 
00724             double tof  = (*iter_tof)->tof();
00725             double ph   = (*iter_tof)->ph();
00726             double rhit = (*iter_tof)->zrhit();
00727             double qual = 0.0 + (*iter_tof)->quality();
00728             double cntr = 0.0 + (*iter_tof)->tofID();
00729             double texp[5];
00730             for(int j = 0; j < 5; j++) {
00731             double gb = xmass[j]/ptrk;
00732             double beta = sqrt(1+gb*gb);
00733             texp[j] = path*beta/velc;
00734             }
00735  
00736             m_cntr_btof2  = cntr;
00737             m_ptot_btof2 = ptrk;
00738             m_path_btof2 = path;
00739             m_ph_btof2   = ph;
00740             m_zhit_btof2  = rhit;
00741             m_qual_btof2  = qual;
00742             m_tof_btof2 = tof;
00743             m_te_btof2    = tof - texp[0];
00744             m_tmu_btof2   = tof - texp[1];
00745             m_tpi_btof2   = tof - texp[2];
00746             m_tk_btof2    = tof - texp[3];
00747             m_tp_btof2    = tof - texp[4];
00748 
00749             m_tuple6->write();
00750           } 
00751         }
00752 
00753         delete status; 
00754       } 
00755     } // loop all charged track
00756   }  // check tof
00757  
00758 
00759     return StatusCode::SUCCESS;
00760 }

StatusCode PipiJpsi::finalize (  ) 

Definition at line 763 of file PipiJpsi.cxx.

References Bes_Common::INFO, m_chan_det, m_cout_all(), m_cout_charge(), m_cout_col(), m_cout_everat(), m_cout_mom(), m_cout_nGood(), m_cout_recoil(), m_eventrate, and msgSvc().

00763                               {
00764 
00765   MsgStream log(msgSvc(), name());
00766   log << MSG::INFO << "in finalize()" << endmsg;
00767   if(m_eventrate) cout << "all event: " << m_cout_all << endl << "only channel " << m_chan_det << ": " << m_cout_everat << endl;
00768   cout << "all event: " << m_cout_all << endl << "all collection point is OK: " << m_cout_col << endl << "charged tracks >=3: " << m_cout_charge << endl << "good charged tracks [3,4]: " << m_cout_nGood << endl << "after momentum assign: " << m_cout_mom << endl << "after recoild mass cut: " << m_cout_recoil << endl;
00769   return StatusCode::SUCCESS;
00770 }

StatusCode PipiJpsi::initialize (  ) 

Definition at line 84 of file PipiJpsi.cxx.

References calibUtil::ERROR, Bes_Common::INFO, m_checkDedx, m_checkTof, m_chie, m_chik, m_chimu, m_chip, m_chipi, m_cms_lepm, m_cms_lepp, m_cntr_btof1, m_cntr_btof2, m_cntr_etof, m_cos_theta, m_dang, m_dphi, m_dthe, m_ep_ratio, m_eraw, m_event, m_event_flag, m_four_mom, m_ghit, m_idxmc, m_index, m_inv_mass, m_lep_matched, m_mass_jpsi, m_mass_recoil, m_mass_twopi, m_mom_lepm, m_mom_lepp, m_mom_pionm, m_mom_pionp, m_motheridx, m_nGam, m_normPH, m_path_btof1, m_path_btof2, m_path_etof, m_pdgid, m_ph_btof1, m_ph_btof2, m_ph_etof, m_phi, m_pion_matched, m_pipi_dang, m_probPH, m_ptot_btof1, m_ptot_btof2, m_ptot_etof, m_ptrk, m_qual_btof1, m_qual_btof2, m_qual_etof, m_rhit_etof, m_run, m_te_btof1, m_te_btof2, m_te_etof, m_thit, m_tk_btof1, m_tk_btof2, m_tk_etof, m_tmu_btof1, m_tmu_btof2, m_tmu_etof, m_tof_btof1, m_tof_btof2, m_tof_etof, m_tot_e, m_tot_px, m_tot_py, m_tot_pz, m_tp_btof1, m_tp_btof2, m_tp_etof, m_tpi_btof1, m_tpi_btof2, m_tpi_etof, m_trans_ratio_lepm, m_trans_ratio_lepp, m_trans_ratio_pionm, m_trans_ratio_pionp, m_true_pionm, m_true_pionp, m_tuple1, m_tuple2, m_tuple3, m_tuple4, m_tuple5, m_tuple6, m_tuple8, m_vr0, m_vx0, m_vy0, m_vz0, m_zhit_btof1, m_zhit_btof2, msgSvc(), and ntupleSvc().

00084                                {
00085   MsgStream log(msgSvc(), name());
00086 
00087   log << MSG::INFO << "in initialize()" << endmsg;
00088   
00089   StatusCode status;
00090 
00091   NTuplePtr nt1(ntupleSvc(), "FILE1/vxyz");
00092   if ( nt1 ) m_tuple1 = nt1;
00093   else {
00094     m_tuple1 = ntupleSvc()->book ("FILE1/vxyz", CLID_ColumnWiseTuple, "ks N-Tuple example");
00095     if ( m_tuple1 )    {
00096       status = m_tuple1->addItem ("vx0",   m_vx0);
00097       status = m_tuple1->addItem ("vy0",   m_vy0);
00098       status = m_tuple1->addItem ("vz0",   m_vz0);
00099       status = m_tuple1->addItem ("vr0",   m_vr0);
00100     }
00101     else    { 
00102       log << MSG::ERROR << "    Cannot book N-tuple:" << long(m_tuple1) << endmsg;
00103       return StatusCode::FAILURE;
00104     }
00105   }
00106 
00107   NTuplePtr nt2(ntupleSvc(), "FILE1/photon");
00108   if ( nt2 ) m_tuple2 = nt2;
00109   else {
00110     m_tuple2 = ntupleSvc()->book ("FILE1/photon", CLID_ColumnWiseTuple, "ks N-Tuple example");
00111     if ( m_tuple2 )    {
00112       status = m_tuple2->addItem ("dthe",   m_dthe);
00113       status = m_tuple2->addItem ("dphi",   m_dphi);
00114       status = m_tuple2->addItem ("dang",   m_dang);
00115       status = m_tuple2->addItem ("eraw",   m_eraw);
00116       status = m_tuple2->addItem ("nGam",   m_nGam);
00117     }
00118     else    { 
00119       log << MSG::ERROR << "    Cannot book N-tuple:" << long(m_tuple2) << endmsg;
00120       return StatusCode::FAILURE;
00121     }
00122   }
00123 
00124 
00125   if(m_checkDedx) {
00126     NTuplePtr nt3(ntupleSvc(), "FILE1/dedx");
00127     if ( nt3 ) m_tuple3 = nt3;
00128     else {
00129       m_tuple3 = ntupleSvc()->book ("FILE1/dedx", CLID_ColumnWiseTuple, "ks N-Tuple example");
00130       if ( m_tuple3 )    {
00131         status = m_tuple3->addItem ("ptrk",   m_ptrk);
00132         status = m_tuple3->addItem ("chie",   m_chie);
00133         status = m_tuple3->addItem ("chimu",   m_chimu);
00134         status = m_tuple3->addItem ("chipi",   m_chipi);
00135         status = m_tuple3->addItem ("chik",   m_chik);
00136         status = m_tuple3->addItem ("chip",   m_chip);
00137         status = m_tuple3->addItem ("probPH",   m_probPH);
00138         status = m_tuple3->addItem ("normPH",   m_normPH);
00139         status = m_tuple3->addItem ("ghit",   m_ghit);
00140         status = m_tuple3->addItem ("thit",   m_thit);
00141       }
00142       else    { 
00143         log << MSG::ERROR << "    Cannot book N-tuple:" << long(m_tuple3) << endmsg;
00144         return StatusCode::FAILURE;
00145       }
00146     }
00147   } // check dE/dx
00148 
00149   if(m_checkTof) {
00150     NTuplePtr nt4(ntupleSvc(), "FILE1/tofe");
00151     if ( nt4 ) m_tuple4 = nt4;
00152     else {
00153       m_tuple4 = ntupleSvc()->book ("FILE1/tofe",CLID_ColumnWiseTuple, "ks N-Tuple example");
00154       if ( m_tuple4 )    {
00155         status = m_tuple4->addItem ("ptrk",   m_ptot_etof);
00156         status = m_tuple4->addItem ("cntr",   m_cntr_etof);
00157         status = m_tuple4->addItem ("path",   m_path_etof);
00158         status = m_tuple4->addItem ("ph",  m_ph_etof);
00159         status = m_tuple4->addItem ("rhit", m_rhit_etof);
00160         status = m_tuple4->addItem ("qual", m_qual_etof);
00161         status = m_tuple4->addItem ("tof",   m_tof_etof);
00162         status = m_tuple4->addItem ("te",   m_te_etof);
00163         status = m_tuple4->addItem ("tmu",   m_tmu_etof);
00164         status = m_tuple4->addItem ("tpi",   m_tpi_etof);
00165         status = m_tuple4->addItem ("tk",   m_tk_etof);
00166         status = m_tuple4->addItem ("tp",   m_tp_etof);
00167       }
00168       else    { 
00169         log << MSG::ERROR << "    Cannot book N-tuple:" << long(m_tuple4) << endmsg;
00170         return StatusCode::FAILURE;
00171       }
00172     }
00173   } // check Tof:endcap
00174 
00175 
00176 
00177   if(m_checkTof) {
00178     NTuplePtr nt5(ntupleSvc(), "FILE1/tof1");
00179     if ( nt5 ) m_tuple5 = nt5;
00180     else {
00181       m_tuple5 = ntupleSvc()->book ("FILE1/tof1", CLID_ColumnWiseTuple, "ks N-Tuple example");
00182       if ( m_tuple5 )    {
00183         status = m_tuple5->addItem ("ptrk",   m_ptot_btof1);
00184         status = m_tuple5->addItem ("cntr",   m_cntr_btof1);
00185         status = m_tuple5->addItem ("path",   m_path_btof1);
00186         status = m_tuple5->addItem ("ph",  m_ph_btof1);
00187         status = m_tuple5->addItem ("zhit", m_zhit_btof1);
00188         status = m_tuple5->addItem ("qual", m_qual_btof1);
00189         status = m_tuple5->addItem ("tof",   m_tof_btof1);
00190         status = m_tuple5->addItem ("te",   m_te_btof1);
00191         status = m_tuple5->addItem ("tmu",   m_tmu_btof1);
00192         status = m_tuple5->addItem ("tpi",   m_tpi_btof1);
00193         status = m_tuple5->addItem ("tk",   m_tk_btof1);
00194         status = m_tuple5->addItem ("tp",   m_tp_btof1);
00195       }
00196       else    { 
00197         log << MSG::ERROR << "    Cannot book N-tuple:" << long(m_tuple5) << endmsg;
00198         return StatusCode::FAILURE;
00199       }
00200     }
00201   } // check Tof:barrel inner Tof 
00202 
00203 
00204   if(m_checkTof) {
00205     NTuplePtr nt6(ntupleSvc(), "FILE1/tof2");
00206     if ( nt6 ) m_tuple6 = nt6;
00207     else {
00208       m_tuple6 = ntupleSvc()->book ("FILE1/tof2", CLID_ColumnWiseTuple, "ks N-Tuple example");
00209       if ( m_tuple6 )    {
00210         status = m_tuple6->addItem ("ptrk",   m_ptot_btof2);
00211         status = m_tuple6->addItem ("cntr",   m_cntr_btof2);
00212         status = m_tuple6->addItem ("path",   m_path_btof2);
00213         status = m_tuple6->addItem ("ph",  m_ph_btof2);
00214         status = m_tuple6->addItem ("zhit", m_zhit_btof2);
00215         status = m_tuple6->addItem ("qual", m_qual_btof2);
00216         status = m_tuple6->addItem ("tof",   m_tof_btof2);
00217         status = m_tuple6->addItem ("te",   m_te_btof2);
00218         status = m_tuple6->addItem ("tmu",   m_tmu_btof2);
00219         status = m_tuple6->addItem ("tpi",   m_tpi_btof2);
00220         status = m_tuple6->addItem ("tk",   m_tk_btof2);
00221         status = m_tuple6->addItem ("tp",   m_tp_btof2);
00222       }
00223       else    { 
00224         log << MSG::ERROR << "    Cannot book N-tuple:" << long(m_tuple6) << endmsg;
00225         return StatusCode::FAILURE;
00226       }
00227     }
00228   } // check Tof:barrel outter Tof
00229 
00230  NTuplePtr nt8(ntupleSvc(), "FILE1/infmom");
00231   if ( nt8 ) m_tuple8 = nt8;
00232   else {
00233     m_tuple8 = ntupleSvc()->book ("FILE1/infmom", CLID_ColumnWiseTuple, "information with momentum method");
00234     if ( m_tuple8 )    {
00235       status = m_tuple8->addItem ("momlepp", m_mom_lepp );
00236       status = m_tuple8->addItem ("momlepmm", m_mom_lepm );
00237       status = m_tuple8->addItem ("mompionm", m_mom_pionm );
00238       status = m_tuple8->addItem ("mompionp", m_mom_pionp );
00239       status = m_tuple8->addItem ("pipidang", m_pipi_dang );
00240       status = m_tuple8->addItem ("cmslepp", m_cms_lepp );
00241       status = m_tuple8->addItem ("cmslepm", m_cms_lepm );
00242       status = m_tuple8->addItem ("invtwopi", m_mass_twopi );
00243       status = m_tuple8->addItem ("invjpsi", m_mass_jpsi );
00244       status = m_tuple8->addItem ("recoil", m_mass_recoil);
00245       status = m_tuple8->addItem ("invmass", m_inv_mass );
00246       status = m_tuple8->addItem ("totene", m_tot_e );
00247       status = m_tuple8->addItem ("totpx", m_tot_px );
00248       status = m_tuple8->addItem ("totpy", m_tot_py );
00249       status = m_tuple8->addItem ("totpz", m_tot_pz );
00250       status = m_tuple8->addItem ("epratio", m_ep_ratio );
00251       status = m_tuple8->addItem ("eveflag", m_event_flag );
00252       status = m_tuple8->addItem ("tplepratiom", m_trans_ratio_lepm );
00253       status = m_tuple8->addItem ("tplepratiop", m_trans_ratio_lepp );
00254       status = m_tuple8->addItem ("tppionratiom", m_trans_ratio_pionm );
00255       status = m_tuple8->addItem ("tppionratiop", m_trans_ratio_pionp );
00256       status = m_tuple8->addItem ("run", m_run );
00257       status = m_tuple8->addItem ("event", m_event );
00258       status = m_tuple8->addItem ("ntrack", m_index, 0, 4 );
00259       status = m_tuple8->addIndexedItem ("costhe", m_index, m_cos_theta );
00260       status = m_tuple8->addIndexedItem ("phi", m_index, m_phi );
00261       status = m_tuple8->addIndexedItem ("fourmom", m_index, 4, m_four_mom);
00262       status = m_tuple8->addItem ("pionmat", m_pion_matched);
00263       status = m_tuple8->addItem ("lepmat", m_lep_matched);
00264       //MCtruth
00265       status = m_tuple8->addItem("indexmc",    m_idxmc, 0, 100);
00266       status = m_tuple8->addIndexedItem("pdgid",     m_idxmc, m_pdgid);
00267       status = m_tuple8->addIndexedItem("motheridx", m_idxmc, m_motheridx);
00268       status = m_tuple8->addItem("truepp", m_true_pionp);
00269       status = m_tuple8->addItem("truepm", m_true_pionm);
00270     }
00271     else    { 
00272       log << MSG::ERROR << "    Cannot book N-tuple:" << long(m_tuple8) << endmsg;
00273       return StatusCode::FAILURE;
00274     }
00275   }
00276  
00277   //
00278   //--------end of book--------
00279   //
00280 
00281   log << MSG::INFO << "successfully return from initialize()" <<endmsg;
00282   return StatusCode::SUCCESS;
00283 
00284 }


Member Data Documentation

int PipiJpsi::m_chan_det [private]

Definition at line 29 of file PipiJpsi.h.

Referenced by execute(), finalize(), and PipiJpsi().

bool PipiJpsi::m_checkDedx [private]

Definition at line 26 of file PipiJpsi.h.

Referenced by execute(), initialize(), and PipiJpsi().

bool PipiJpsi::m_checkTof [private]

Definition at line 27 of file PipiJpsi.h.

Referenced by execute(), initialize(), and PipiJpsi().

NTuple::Item<double> PipiJpsi::m_chie [private]

Definition at line 58 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_chik [private]

Definition at line 61 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_chimu [private]

Definition at line 59 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_chip [private]

Definition at line 62 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_chipi [private]

Definition at line 60 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_cms_lepm [private]

Definition at line 118 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_cms_lepp [private]

Definition at line 117 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_cntr_btof1 [private]

Definition at line 84 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_cntr_btof2 [private]

Definition at line 98 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_cntr_etof [private]

Definition at line 70 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Array<double> PipiJpsi::m_cos_theta [private]

Definition at line 136 of file PipiJpsi.h.

Referenced by execute(), and initialize().

double PipiJpsi::m_cosThetaCut [private]

Definition at line 31 of file PipiJpsi.h.

Referenced by execute(), and PipiJpsi().

NTuple::Item<double> PipiJpsi::m_dang [private]

Definition at line 52 of file PipiJpsi.h.

Referenced by execute(), and initialize().

double PipiJpsi::m_distin_emuon [private]

Definition at line 40 of file PipiJpsi.h.

Referenced by execute(), and PipiJpsi().

NTuple::Item<double> PipiJpsi::m_dphi [private]

Definition at line 51 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_dthe [private]

Definition at line 50 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_ep_ratio [private]

Definition at line 127 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_eraw [private]

Definition at line 53 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<long> PipiJpsi::m_event [private]

Definition at line 134 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<long> PipiJpsi::m_event_flag [private]

Definition at line 128 of file PipiJpsi.h.

Referenced by execute(), and initialize().

bool PipiJpsi::m_eventrate [private]

Definition at line 28 of file PipiJpsi.h.

Referenced by execute(), finalize(), and PipiJpsi().

NTuple::Matrix<double> PipiJpsi::m_four_mom [private]

Definition at line 138 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_ghit [private]

Definition at line 65 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<long> PipiJpsi::m_idxmc [private]

Definition at line 143 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<long> PipiJpsi::m_index [private]

Definition at line 135 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_inv_mass [private]

Definition at line 122 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<long> PipiJpsi::m_lep_matched [private]

Definition at line 141 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_mass_jpsi [private]

Definition at line 120 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_mass_recoil [private]

Definition at line 121 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_mass_twopi [private]

Definition at line 119 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_mom_lepm [private]

Definition at line 112 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_mom_lepp [private]

Definition at line 113 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_mom_pionm [private]

Definition at line 115 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_mom_pionp [private]

Definition at line 114 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Array<long> PipiJpsi::m_motheridx [private]

Definition at line 145 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<long> PipiJpsi::m_nGam [private]

Definition at line 54 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_normPH [private]

Definition at line 64 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_path_btof1 [private]

Definition at line 85 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_path_btof2 [private]

Definition at line 99 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_path_etof [private]

Definition at line 71 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Array<long> PipiJpsi::m_pdgid [private]

Definition at line 144 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_ph_btof1 [private]

Definition at line 92 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_ph_btof2 [private]

Definition at line 106 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_ph_etof [private]

Definition at line 78 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Array<double> PipiJpsi::m_phi [private]

Definition at line 137 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<long> PipiJpsi::m_pion_matched [private]

Definition at line 140 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_pipi_dang [private]

Definition at line 116 of file PipiJpsi.h.

Referenced by execute(), and initialize().

double PipiJpsi::m_pipi_dang_cut [private]

Definition at line 34 of file PipiJpsi.h.

Referenced by execute(), and PipiJpsi().

NTuple::Item<double> PipiJpsi::m_probPH [private]

Definition at line 63 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_ptot_btof1 [private]

Definition at line 83 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_ptot_btof2 [private]

Definition at line 97 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_ptot_etof [private]

Definition at line 69 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_ptrk [private]

Definition at line 57 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_qual_btof1 [private]

Definition at line 94 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_qual_btof2 [private]

Definition at line 108 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_qual_etof [private]

Definition at line 80 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_rhit_etof [private]

Definition at line 79 of file PipiJpsi.h.

Referenced by execute(), and initialize().

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

Definition at line 133 of file PipiJpsi.h.

Referenced by execute(), and initialize().

bool PipiJpsi::m_subsample_flag [private]

Definition at line 37 of file PipiJpsi.h.

Referenced by execute(), and PipiJpsi().

NTuple::Item<double> PipiJpsi::m_te_btof1 [private]

Definition at line 87 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_te_btof2 [private]

Definition at line 101 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_te_etof [private]

Definition at line 73 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_thit [private]

Definition at line 66 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_tk_btof1 [private]

Definition at line 90 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_tk_btof2 [private]

Definition at line 104 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_tk_etof [private]

Definition at line 76 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_tmu_btof1 [private]

Definition at line 88 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_tmu_btof2 [private]

Definition at line 102 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_tmu_etof [private]

Definition at line 74 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_tof_btof1 [private]

Definition at line 86 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_tof_btof2 [private]

Definition at line 100 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_tof_etof [private]

Definition at line 72 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_tot_e [private]

Definition at line 123 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_tot_px [private]

Definition at line 124 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_tot_py [private]

Definition at line 125 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_tot_pz [private]

Definition at line 126 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_tp_btof1 [private]

Definition at line 91 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_tp_btof2 [private]

Definition at line 105 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_tp_etof [private]

Definition at line 77 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_tpi_btof1 [private]

Definition at line 89 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_tpi_btof2 [private]

Definition at line 103 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_tpi_etof [private]

Definition at line 75 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_trans_ratio_lepm [private]

Definition at line 129 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_trans_ratio_lepp [private]

Definition at line 130 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_trans_ratio_pionm [private]

Definition at line 132 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_trans_ratio_pionp [private]

Definition at line 131 of file PipiJpsi.h.

Referenced by execute(), and initialize().

bool PipiJpsi::m_trigger_flag [private]

Definition at line 37 of file PipiJpsi.h.

Referenced by execute(), and PipiJpsi().

NTuple::Item<double> PipiJpsi::m_true_pionm [private]

Definition at line 147 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_true_pionp [private]

Definition at line 146 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Tuple* PipiJpsi::m_tuple1 [private]

Definition at line 43 of file PipiJpsi.h.

Referenced by execute(), and initialize().

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

Definition at line 49 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Tuple* PipiJpsi::m_tuple3 [private]

Definition at line 56 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Tuple* PipiJpsi::m_tuple4 [private]

Definition at line 68 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Tuple* PipiJpsi::m_tuple5 [private]

Definition at line 82 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Tuple* PipiJpsi::m_tuple6 [private]

Definition at line 96 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Tuple* PipiJpsi::m_tuple8 [private]

Definition at line 111 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_vr0 [private]

Definition at line 47 of file PipiJpsi.h.

Referenced by execute(), and initialize().

double PipiJpsi::m_vr0cut [private]

Definition at line 22 of file PipiJpsi.h.

Referenced by execute(), and PipiJpsi().

NTuple::Item<double> PipiJpsi::m_vx0 [private]

Definition at line 44 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_vy0 [private]

Definition at line 45 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_vz0 [private]

Definition at line 46 of file PipiJpsi.h.

Referenced by execute(), and initialize().

double PipiJpsi::m_vz0cut [private]

Definition at line 23 of file PipiJpsi.h.

Referenced by execute(), and PipiJpsi().

NTuple::Item<double> PipiJpsi::m_zhit_btof1 [private]

Definition at line 93 of file PipiJpsi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> PipiJpsi::m_zhit_btof2 [private]

Definition at line 107 of file PipiJpsi.h.

Referenced by execute(), and initialize().


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