Ppjrhopi Class Reference

#include <Ppjrhopi.h>

List of all members.

Public Member Functions

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

Private Attributes

double m_vr0cut
double m_vz0cut
double m_vr1cut
double m_vz1cut
double m_cthcut
double m_energyThreshold
double m_gammaAngCut
int m_test4C
int m_test5C
int m_checkDedx
int m_checkTof
NTuple::Tuple * m_tuple4
NTuple::Item< long > m_run
NTuple::Item< long > m_rec
NTuple::Item< long > m_nch
NTuple::Item< long > m_nneu
NTuple::Item< long > m_gdgam
NTuple::Item< double > m_recpp
NTuple::Item< double > m_chi1
NTuple::Item< double > m_mpi0
NTuple::Item< double > m_mprho0
NTuple::Item< double > m_mprhop
NTuple::Item< double > m_mprhom
NTuple::Item< double > m_mpjjj
NTuple::Item< double > m_bepi0
NTuple::Item< double > m_be4cjpsi
NTuple::Item< double > m_mp2pi1
NTuple::Item< double > m_mf2pi1g1
NTuple::Item< double > m_mf2pi1g2
NTuple::Item< double > m_mf2pi1pi0
NTuple::Item< double > m_mt2pi2g1
NTuple::Item< double > m_mt2pi2g2
NTuple::Item< double > m_mp2pi3
NTuple::Item< double > m_mf2pi3g1
NTuple::Item< double > m_mf2pi3g2
NTuple::Item< double > m_mf2pi3pi0
NTuple::Item< double > m_mp2pi4
NTuple::Item< double > m_mf2pi4g1
NTuple::Item< double > m_mf2pi4g2
NTuple::Item< double > m_mf2pi4pi0
NTuple::Item< double > m_mp4pi
NTuple::Item< double > m_mppptot
NTuple::Item< double > m_mp4pig1
NTuple::Item< double > m_mp4pig2
NTuple::Item< double > m_mpx1
NTuple::Item< double > m_mpy1
NTuple::Item< double > m_mpz1
NTuple::Item< double > m_mpe1
NTuple::Item< double > m_mpx2
NTuple::Item< double > m_mpy2
NTuple::Item< double > m_mpz2
NTuple::Item< double > m_mpe2
NTuple::Item< double > m_mpx3
NTuple::Item< double > m_mpy3
NTuple::Item< double > m_mpz3
NTuple::Item< double > m_mpe3
NTuple::Item< double > m_mpx4
NTuple::Item< double > m_mpy4
NTuple::Item< double > m_mpz4
NTuple::Item< double > m_mpe4
NTuple::Item< double > m_mpxg1
NTuple::Item< double > m_mpyg1
NTuple::Item< double > m_mpzg1
NTuple::Item< double > m_mpeg1
NTuple::Item< double > m_mpxg2
NTuple::Item< double > m_mpyg2
NTuple::Item< double > m_mpzg2
NTuple::Item< double > m_mpeg2
NTuple::Item< double > m_chikk
NTuple::Item< long > m_good
NTuple::Item< long > m_gam
NTuple::Item< long > m_pip
NTuple::Item< long > m_pim
NTuple::Item< long > m_pidpip
NTuple::Array< double > m_ipipin
NTuple::Item< long > m_pidpim
NTuple::Array< double > m_ipimin
NTuple::Item< double > m_angle
NTuple::Item< double > m_cosuubr
NTuple::Item< double > m_cosmupbr
NTuple::Item< double > m_cosmumbr
NTuple::Item< double > m_phimupbr
NTuple::Item< double > m_phimumbr
NTuple::Item< long > m_ngch
NTuple::Array< double > m_ptrk
NTuple::Array< double > m_chie
NTuple::Array< double > m_chimu
NTuple::Array< double > m_chipi
NTuple::Array< double > m_chik
NTuple::Array< double > m_chip
NTuple::Array< double > m_probPH
NTuple::Array< double > m_normPH
NTuple::Array< double > m_ghit
NTuple::Array< double > m_thit
NTuple::Array< double > m_ptot_etof
NTuple::Array< double > m_cntr_etof
NTuple::Array< double > m_te_etof
NTuple::Array< double > m_tmu_etof
NTuple::Array< double > m_tpi_etof
NTuple::Array< double > m_tk_etof
NTuple::Array< double > m_tp_etof
NTuple::Array< double > m_ph_etof
NTuple::Array< double > m_rhit_etof
NTuple::Array< double > m_qual_etof
NTuple::Array< double > m_ec_toff_e
NTuple::Array< double > m_ec_toff_mu
NTuple::Array< double > m_ec_toff_pi
NTuple::Array< double > m_ec_toff_k
NTuple::Array< double > m_ec_toff_p
NTuple::Array< double > m_ec_tsig_e
NTuple::Array< double > m_ec_tsig_mu
NTuple::Array< double > m_ec_tsig_pi
NTuple::Array< double > m_ec_tsig_k
NTuple::Array< double > m_ec_tsig_p
NTuple::Array< double > m_ec_tof
NTuple::Array< double > m_ptot_btof1
NTuple::Array< double > m_cntr_btof1
NTuple::Array< double > m_te_btof1
NTuple::Array< double > m_tmu_btof1
NTuple::Array< double > m_tpi_btof1
NTuple::Array< double > m_tk_btof1
NTuple::Array< double > m_tp_btof1
NTuple::Array< double > m_ph_btof1
NTuple::Array< double > m_zhit_btof1
NTuple::Array< double > m_qual_btof1
NTuple::Array< double > m_b1_toff_e
NTuple::Array< double > m_b1_toff_mu
NTuple::Array< double > m_b1_toff_pi
NTuple::Array< double > m_b1_toff_k
NTuple::Array< double > m_b1_toff_p
NTuple::Array< double > m_b1_tsig_e
NTuple::Array< double > m_b1_tsig_mu
NTuple::Array< double > m_b1_tsig_pi
NTuple::Array< double > m_b1_tsig_k
NTuple::Array< double > m_b1_tsig_p
NTuple::Array< double > m_b1_tof
NTuple::Array< double > m_dedx_pid
NTuple::Array< double > m_tof1_pid
NTuple::Array< double > m_tof2_pid
NTuple::Array< double > m_prob_pid
NTuple::Array< double > m_ptrk_pid
NTuple::Array< double > m_cost_pid
NTuple::Item< long > m_nggneu
NTuple::Array< double > m_numHits
NTuple::Array< double > m_secondmoment
NTuple::Array< double > m_x
NTuple::Array< double > m_y
NTuple::Array< double > m_z
NTuple::Array< double > m_cosemc
NTuple::Array< double > m_phiemc
NTuple::Array< double > m_energy
NTuple::Array< double > m_eSeed
NTuple::Array< double > m_e3x3
NTuple::Array< double > m_e5x5
NTuple::Array< double > m_lat
NTuple::Array< double > m_a20
NTuple::Array< double > m_a42


Detailed Description

Definition at line 9 of file Ppjrhopi.h.


Constructor & Destructor Documentation

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

Definition at line 57 of file Ppjrhopi.cxx.

References m_checkDedx, m_checkTof, m_cthcut, m_energyThreshold, m_gammaAngCut, m_test4C, m_test5C, m_vr0cut, m_vr1cut, m_vz0cut, and m_vz1cut.

00057                                                                   :
00058   Algorithm(name, pSvcLocator) {
00059   
00060   //Declare the properties  
00061   declareProperty("Vr0cut", m_vr0cut=5.0);
00062   declareProperty("Vz0cut", m_vz0cut=20.0);
00063   declareProperty("Vr1cut", m_vr1cut=1.0);
00064   declareProperty("Vz1cut", m_vz1cut=5.0);
00065   declareProperty("Vctcut", m_cthcut=0.93);
00066   declareProperty("EnergyThreshold", m_energyThreshold=0.04);
00067   declareProperty("GammaAngCut", m_gammaAngCut=20.0);
00068   declareProperty("Test4C", m_test4C = 1);
00069   declareProperty("Test5C", m_test5C = 1);
00070   declareProperty("CheckDedx", m_checkDedx = 1);
00071   declareProperty("CheckTof",  m_checkTof = 1);
00072 }


Member Function Documentation

StatusCode Ppjrhopi::execute (  ) 

Definition at line 298 of file Ppjrhopi.cxx.

References KinematicFit::AddFourMomentum(), TrackPool::AddTrack(), VertexFit::AddVertex(), DstMdcKalTrack::charge(), DstMdcTrack::charge(), KinematicFit::chisq(), cos(), Bes_Common::DEBUG, ecms, DstExtTrack::emcPosition(), DstExtTrack::emcVolumeNumber(), DstEmcShower::energy(), EventModel::EvtRec::EvtRecEvent, EventModel::EvtRec::EvtRecTrackCol, KinematicFit::Fit(), VertexFit::Fit(), RecMdcKalTrack::getZError(), RecMdcKalTrack::getZErrorK(), RecMdcKalTrack::getZHelix(), RecMdcKalTrack::getZHelixK(), DstMdcTrack::helix(), genRecEmupikp::i, Bes_Common::INFO, KinematicFit::init(), VertexFit::init(), KinematicFit::instance(), VertexFit::instance(), IVertexDbSvc::isVertexValid(), ganga-rec::j, m_cthcut, m_energyThreshold, m_gammaAngCut, m_test4C, m_vr0cut, m_vr1cut, m_vz0cut, m_vz1cut, mk, mpi, msgSvc(), Ncut0, Ncut1, Ncut10, Ncut2, Ncut3, Ncut4, Ncut5, Ncut6, Ncut7, Ncut8, Ncut9, DstMucTrack::numLayers(), DstMdcKalTrack::p(), DstMdcTrack::p(), KinematicFit::pfit(), DstEmcShower::phi(), phi0, pi, DstMdcKalTrack::pion, IVertexDbSvc::PrimaryVertex(), DstMdcKalTrack::px(), DstMdcKalTrack::py(), DstMdcKalTrack::pz(), runNo, KinematicFit::setDynamicerror(), VertexParameter::setEvx(), DstMdcKalTrack::setPidType(), VertexParameter::setVx(), IVertexDbSvc::SigmaPrimaryVertex(), sin(), VertexFit::Swim(), DstEmcShower::theta(), DstMdcTrack::theta(), unit, VertexFit::wtrk(), DstEmcShower::x(), DstMdcTrack::x(), DstEmcShower::y(), DstMdcTrack::y(), DstEmcShower::z(), and DstMdcTrack::z().

00298                              {
00299   
00300 //  std::cout << "execute()" << std::endl;
00301 
00302   MsgStream log(msgSvc(), name());
00303   log << MSG::INFO << "in execute()" << endreq;
00304 
00305   setFilterPassed(false);
00306 
00307   SmartDataPtr<Event::EventHeader> eventHeader(eventSvc(),"/Event/EventHeader");
00308   int runNo=eventHeader->runNumber(); 
00309   int event=eventHeader->eventNumber();
00310   log << MSG::DEBUG <<"runNo, evtnum = "
00311       << runNo << " , "
00312       << event <<endreq;
00313 
00314   Ncut0++;
00315 
00316 //   FOR 6.4.0 EventModel::Recon--->EventModel::EvtRec IN 6.4.1
00317   SmartDataPtr<EvtRecEvent> evtRecEvent(eventSvc(), EventModel::EvtRec::EvtRecEvent);
00318   log << MSG::INFO << "get event tag OK" << endreq;
00319     log << MSG::DEBUG <<"ncharg, nneu, tottks = " 
00320       << evtRecEvent->totalCharged() << " , "
00321       << evtRecEvent->totalNeutral() << " , "
00322       << evtRecEvent->totalTracks() <<endreq;
00323 
00324 
00325 
00326   SmartDataPtr<EvtRecTrackCol> evtRecTrkCol(eventSvc(), EventModel::EvtRec::EvtRecTrackCol);
00327   //
00328   // check x0, y0, z0, r0
00329   // suggest cut: |z0|<5 && r0<1
00330   //
00331   if(evtRecEvent->totalNeutral()>100) {
00332     return StatusCode::SUCCESS;
00333   }
00334 
00335   Vint iGood, ipip, ipim;
00336   iGood.clear();
00337   ipip.clear();
00338   ipim.clear();
00339   Vp4 ppip, ppim;
00340   ppip.clear();
00341   ppim.clear();
00342 
00343   Hep3Vector xorigin(0,0,0);
00344  
00345   //if (m_reader.isRunNumberValid(runNo)) {
00346    IVertexDbSvc*  vtxsvc;
00347   Gaudi::svcLocator()->service("VertexDbSvc", vtxsvc);
00348   if(vtxsvc->isVertexValid()){ 
00349   double* dbv = vtxsvc->PrimaryVertex();
00350   double*  vv = vtxsvc->SigmaPrimaryVertex();
00351 //    HepVector dbv = m_reader.PrimaryVertex(runNo);
00352 //    HepVector vv = m_reader.SigmaPrimaryVertex(runNo);
00353     xorigin.setX(dbv[0]);
00354     xorigin.setY(dbv[1]);
00355     xorigin.setZ(dbv[2]);
00356   }
00357 
00358   int nCharge = 0;
00359   for(int i = 0; i < evtRecEvent->totalCharged(); i++){
00360     EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + i;
00361     if(!(*itTrk)->isMdcTrackValid()) continue;
00362     if (!(*itTrk)->isMdcKalTrackValid()) continue;
00363     RecMdcTrack *mdcTrk = (*itTrk)->mdcTrack();
00364 
00365     double pch =mdcTrk->p();
00366     double x0  =mdcTrk->x(); 
00367     double y0  =mdcTrk->y(); 
00368     double z0  =mdcTrk->z(); 
00369     double phi0=mdcTrk->helix(1);
00370     double xv=xorigin.x();
00371     double yv=xorigin.y();
00372     double Rxy=fabs((x0-xv)*cos(phi0)+(y0-yv)*sin(phi0));
00373 // 2009//4
00374     double m_vx0 = x0;
00375     double m_vy0 = y0;
00376     double m_vz0 = z0-xorigin.z();
00377     double m_vr0 = Rxy;
00378     double m_Vctc=z0/sqrt(Rxy*Rxy+z0*z0);
00379     double m_Vct =cos(mdcTrk->theta());
00380 
00381 //    m_tuple1->write();
00382 //2009//4
00383     if(fabs(m_vz0) >= m_vz0cut) continue;
00384     if(m_vr0 >= m_vr0cut) continue;
00385 //    if(fabs(m_Vct)>=m_cthcut) continue;
00386     iGood.push_back((*itTrk)->trackId());
00387     nCharge += mdcTrk->charge();
00388   }
00389   
00390   //
00391   // Finish Good Charged Track Selection
00392   //
00393   int nGood = iGood.size();
00394 
00395   log << MSG::DEBUG << "ngood, totcharge = " << nGood << " , " << nCharge << endreq;
00396   if((nGood != 4)||(nCharge!=0)){
00397     return StatusCode::SUCCESS;
00398   }
00399 
00400   Ncut1++;
00401 
00402   Vint iGam;
00403   iGam.clear();
00404   for(int i = evtRecEvent->totalCharged(); i< evtRecEvent->totalTracks(); i++) {
00405     EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + i;
00406     if(!(*itTrk)->isEmcShowerValid()) continue;
00407     RecEmcShower *emcTrk = (*itTrk)->emcShower();
00408     Hep3Vector emcpos(emcTrk->x(), emcTrk->y(), emcTrk->z());
00409     // find the nearest charged track
00410     double dthe = 200.;
00411     double dphi = 200.;
00412     double dang = 200.; 
00413   log << MSG::DEBUG << "liuf neu= "  <<i <<endreq;
00414     for(int j = 0; j < evtRecEvent->totalCharged(); j++) {
00415       EvtRecTrackIterator jtTrk = evtRecTrkCol->begin() + j;
00416       if(!(*jtTrk)->isExtTrackValid()) continue;
00417       RecExtTrack *extTrk = (*jtTrk)->extTrack();
00418       if(extTrk->emcVolumeNumber() == -1) continue;
00419       Hep3Vector extpos = extTrk->emcPosition();
00420   log << MSG::DEBUG << "liuf charge= "  <<j <<endreq;
00421       //      double ctht = extpos.cosTheta(emcpos);
00422       double angd = extpos.angle(emcpos);
00423       double thed = extpos.theta() - emcpos.theta();
00424       double phid = extpos.deltaPhi(emcpos);
00425       thed = fmod(thed+CLHEP::twopi+CLHEP::twopi+pi, CLHEP::twopi) - CLHEP::pi;
00426       phid = fmod(phid+CLHEP::twopi+CLHEP::twopi+pi, CLHEP::twopi) - CLHEP::pi;
00427 
00428 //      if(fabs(thed) < fabs(dthe)) dthe = thed;
00429 //      if(fabs(phid) < fabs(dphi)) dphi = phid;
00430       if(angd < dang) {
00431          dang = angd;
00432          dthe = thed;
00433          dphi = phid;
00434          }
00435     }
00436     if(dang>=200) continue;
00437     double eraw = emcTrk->energy();
00438     dthe = dthe * 180 / (CLHEP::pi);
00439     dphi = dphi * 180 / (CLHEP::pi);
00440     dang = dang * 180 / (CLHEP::pi);
00441 // 2009//4
00442     double m_dthe = dthe;
00443     double m_dphi = dphi;
00444     double m_dang = dang;
00445     double m_eraw = eraw;
00446 //    m_tuple2->write();
00447 // 2009//4
00448   log << MSG::DEBUG << "eraw dang= " << eraw  << " , " <<dang <<"," <<i <<endreq;
00449     if(eraw < m_energyThreshold) continue;
00450     if(dang < m_gammaAngCut) continue;
00451 //    if((fabs(dthe) < m_gammaThetaCut) && (fabs(dphi)<m_gammaPhiCut) ) continue;
00452     //
00453     // good photon cut will be set here
00454     //
00455     iGam.push_back((*itTrk)->trackId());
00456   }
00457   
00458   //
00459   // Finish Good Photon Selection
00460   //
00461   int nGam = iGam.size();
00462 
00463   log << MSG::DEBUG << "num Good Photon " << nGam  << " , " <<evtRecEvent->totalNeutral()<<endreq;
00464   if(nGam<2){
00465     return StatusCode::SUCCESS;
00466   }
00467 
00468   Ncut2++;
00469 
00470 
00471 
00472 
00473   //
00474   // Assign 4-momentum to each photon
00475   // 
00476 
00477   Vp4 pGam;
00478   pGam.clear();
00479   for(int i = 0; i < nGam; i++) {
00480     EvtRecTrackIterator itTrk = evtRecTrkCol->begin() + iGam[i]; 
00481     RecEmcShower* emcTrk = (*itTrk)->emcShower();
00482     double eraw = emcTrk->energy();
00483     double phi = emcTrk->phi();
00484     double the = emcTrk->theta();
00485     HepLorentzVector ptrk;
00486     ptrk.setPx(eraw*sin(the)*cos(phi));
00487     ptrk.setPy(eraw*sin(the)*sin(phi));
00488     ptrk.setPz(eraw*cos(the));
00489     ptrk.setE(eraw);
00490 
00491 //    ptrk = ptrk.boost(-0.011,0,0);// boost to cms
00492 
00493     pGam.push_back(ptrk);
00494   }
00495 
00496 
00497   for(int i = 0; i < nGood; i++) {//for rhopi without PID
00498     EvtRecTrackIterator itTrk = evtRecTrkCol->begin() + iGood[i];
00499     if (!(*itTrk)->isMdcTrackValid()) continue;
00500     RecMdcTrack *mdcTrk = (*itTrk)->mdcTrack();
00501     if (!(*itTrk)->isMdcKalTrackValid()) continue;
00502     RecMdcKalTrack *mdcKalTrk = (*itTrk)->mdcKalTrack();
00503     mdcKalTrk->setPidType(RecMdcKalTrack::pion);
00504     if(mdcKalTrk->charge() >0 ) {
00505       ipip.push_back(iGood[i]);
00506       HepLorentzVector ptrk;
00507       ptrk.setPx(mdcKalTrk->px());
00508       ptrk.setPy(mdcKalTrk->py());
00509       ptrk.setPz(mdcKalTrk->pz());
00510       double p3 = ptrk.mag();
00511       ptrk.setE(sqrt(p3*p3+mpi*mpi));
00512       ppip.push_back(ptrk);
00513     } else {
00514       ipim.push_back(iGood[i]);
00515       HepLorentzVector ptrk;
00516       ptrk.setPx(mdcKalTrk->px());
00517       ptrk.setPy(mdcKalTrk->py());
00518       ptrk.setPz(mdcKalTrk->pz());
00519       double p3 = ptrk.mag();
00520       ptrk.setE(sqrt(p3*p3+mpi*mpi));
00521       ppim.push_back(ptrk);
00522     }
00523   }// without PID
00524 
00525 
00526   int npip = ipip.size();
00527   int npim = ipim.size();
00528   if(npip!=2||npim != 2) return SUCCESS;
00529 /*
00530   log << MSG::DEBUG << "ngood track ID = " << ipip[0] << " , " 
00531       << ipim[0]<< " , " << ipip[1] << " , " << ipim[1] << endreq;
00532 */
00533   Ncut3++;
00534 
00535 
00536   //
00537   //   find the two pi from the primary vetex
00538   //   ipip[0] && ipim[0] from ppsi
00539   //   ipip[1] && ipim[1] from jpsi
00540   //   should change track ID
00541   //
00542   HepLorentzVector pTot0(0.011*3.6862,0,0,3.6862);
00543   HepLorentzVector pTrec1,pTrec2,pTrec3,pTrec4;
00544   HepLorentzVector pTrecf;
00545   double  m_recjpsi1,m_recjpsi2,m_recjpsi3,m_recjpsi4,m_recppf;   
00546   double deljp1,deljp2,deljp3,deljp4;
00547       pTrec1 = pTot0 - ppip[0] - ppim[0];
00548       pTrec2 = pTot0 - ppip[0] - ppim[1];
00549       pTrec3 = pTot0 - ppip[1] - ppim[0];
00550       pTrec4 = pTot0 - ppip[1] - ppim[1];
00551       m_recjpsi1 = pTrec1.m();
00552       m_recjpsi2 = pTrec2.m();
00553       m_recjpsi3 = pTrec3.m();
00554       m_recjpsi4 = pTrec4.m();
00555       deljp1=fabs(m_recjpsi1-3.097);
00556       deljp2=fabs(m_recjpsi2-3.097);
00557       deljp3=fabs(m_recjpsi3-3.097);
00558       deljp4=fabs(m_recjpsi4-3.097);
00559 
00560       int itmp,itmp1,itmp2;
00561       HepLorentzVector ptmp,ptmp1,ptmp2;
00562 
00563       pTrecf =pTrec1;
00564       m_recppf=pTrec1.m();
00565 
00566       if(deljp2<deljp1&&deljp2<deljp3&&deljp2<deljp4) 
00567       { itmp= ipim[1];
00568         ipim[1]=ipim[0];
00569         ipim[0]=itmp;
00570 
00571         ptmp =ppim[1];
00572         ppim[1]=ppim[0];
00573         ppim[0]=ptmp;  
00574 
00575         pTrecf =pTrec2;
00576         m_recppf=pTrec2.m();
00577       }
00578 
00579       if(deljp3<deljp1&&deljp3<deljp2&&deljp3<deljp4) 
00580       { itmp= ipip[1];
00581         ipip[1]=ipip[0];
00582         ipip[0]=itmp;
00583 
00584         ptmp =ppip[1];
00585         ppip[1]=ppip[0];
00586         ppip[0]=ptmp;  
00587 
00588         pTrecf =pTrec3;
00589         m_recppf=pTrec3.m();
00590       }
00591 
00592       if(deljp4<deljp1&&deljp4<deljp2&&deljp4<deljp3) 
00593       { itmp1= ipip[1];
00594         ipip[1]=ipip[0];
00595         ipip[0]=itmp1;
00596         itmp2= ipim[1];
00597         ipim[1]=ipim[0];
00598         ipim[0]=itmp2;
00599 
00600         ptmp1 =ppip[1];
00601         ppip[1]=ppip[0];
00602         ppip[0]=ptmp1;  
00603         ptmp2 =ppim[1];
00604         ppim[1]=ppim[0];
00605         ppim[0]=ptmp2;  
00606 
00607         pTrecf =pTrec4;
00608         m_recppf=pTrec4.m();
00609       }
00610 
00611         if(fabs(m_recppf-3.097)>0.2)  return SUCCESS;
00612 
00613   log << MSG::DEBUG << "ngood track ID after jpsi = " << ipip[0] << " , " 
00614       << ipim[0]<< " , " << ipip[1] << " , " << ipim[1] << endreq;
00615   Ncut4++;
00616 
00617   HepLorentzVector ppi2_no1 = ppip[0] + ppim[0];
00618   HepLorentzVector ppi2_no2 = ppip[1] + ppim[1];
00619   HepLorentzVector ppi2_no3 = ppip[0] + ppim[1];
00620   HepLorentzVector ppi2_no4 = ppip[1] + ppim[0];
00621   HepLorentzVector p4pi_no = ppi2_no1+ ppi2_no2;
00622 
00623     double emcTg1=0.0;
00624     double emcTg2=0.0;
00625     double emcTg3=0.0;
00626     double emcTg4=0.0;
00627     double laypi1=-1.0;
00628     double laypi2=-1.0;
00629     double laypi3=-1.0;
00630     double laypi4=-1.0;
00631 
00632     EvtRecTrackIterator itTrkp1=evtRecTrkCol->begin() + ipip[0];
00633     RecMdcTrack*  mdcTrkp1 = (*itTrkp1)->mdcTrack();
00634     RecMdcKalTrack *mdcKalTrkp1 = (*itTrkp1)->mdcKalTrack();
00635     RecEmcShower* emcTrkp1 = (*itTrkp1)->emcShower();
00636     RecMucTrack *mucTrkp1=(*itTrkp1)->mucTrack();
00637 
00638     double phi01=mdcTrkp1->helix(1);  
00639     double m_p1vx = mdcTrkp1->x();
00640     double m_p1vy = mdcTrkp1->y();
00641     double m_p1vz = mdcTrkp1->z()-xorigin.z();
00642     double m_p1vr = fabs((mdcTrkp1->x()-xorigin.x())*cos(phi01)+(mdcTrkp1->y()-xorigin.y())*sin(phi01));
00643     double m_p1vct=cos(mdcTrkp1->theta());
00644     double m_p1ptot=mdcKalTrkp1->p();
00645     double m_p1pxy=sqrt(mdcKalTrkp1->px()*mdcKalTrkp1->px()+mdcKalTrkp1->py()*mdcKalTrkp1->py());
00646 
00647     if((*itTrkp1)->isEmcShowerValid()){
00648     emcTg1=emcTrkp1->energy();
00649     }
00650     if((*itTrkp1)->isMucTrackValid()){
00651     laypi1=mucTrkp1->numLayers();
00652     }
00653     double m_laypip1=laypi1;
00654 
00655     EvtRecTrackIterator itTrkm1=evtRecTrkCol->begin() + ipim[0];
00656     RecMdcTrack*  mdcTrkm1 = (*itTrkm1)->mdcTrack();
00657     RecMdcKalTrack *mdcKalTrkm1 = (*itTrkm1)->mdcKalTrack();
00658     RecEmcShower* emcTrkm1 = (*itTrkm1)->emcShower();
00659     RecMucTrack *mucTrkm1=(*itTrkm1)->mucTrack();
00660 
00661     double phi02=mdcTrkm1->helix(1);  
00662     double m_m1vx = mdcTrkm1->x();
00663     double m_m1vy = mdcTrkm1->y();
00664     double m_m1vz = mdcTrkm1->z()-xorigin.z();
00665     double m_m1vr = fabs((mdcTrkm1->x()-xorigin.x())*cos(phi02)+(mdcTrkm1->y()-xorigin.y())*sin(phi02));
00666     double m_m1vct=cos(mdcTrkm1->theta());
00667     double m_m1ptot=mdcKalTrkm1->p();
00668     double m_m1pxy=sqrt(mdcKalTrkm1->px()*mdcKalTrkm1->px()+mdcKalTrkm1->py()*mdcKalTrkm1->py());
00669 
00670     if((*itTrkm1)->isEmcShowerValid()){
00671     emcTg2= emcTrkm1->energy();
00672     }
00673     if((*itTrkm1)->isMucTrackValid()){
00674     laypi2=mucTrkm1->numLayers();
00675     }
00676     double m_laypim1=laypi2;
00677 
00678     EvtRecTrackIterator itTrkp2=evtRecTrkCol->begin() + ipip[1];
00679     RecMdcTrack*  mdcTrkp2 = (*itTrkp2)->mdcTrack();
00680     RecMdcKalTrack *mdcKalTrkp2 = (*itTrkp2)->mdcKalTrack();
00681     RecEmcShower* emcTrkp2 = (*itTrkp2)->emcShower();
00682     RecMucTrack *mucTrkp2=(*itTrkp2)->mucTrack();
00683 
00684     double phi03=mdcTrkp2->helix(1);  
00685     double m_p2vx = mdcTrkp2->x();
00686     double m_p2vy = mdcTrkp2->y();
00687     double m_p2vz = mdcTrkp2->z()-xorigin.z();
00688     double m_p2vr = fabs((mdcTrkp2->x()-xorigin.x())*cos(phi03)+(mdcTrkp2->y()-xorigin.y())*sin(phi03));
00689     double m_p2vct=cos(mdcTrkp2->theta());
00690     double m_p2ptot=mdcKalTrkp2->p();
00691     double m_p2pxy=sqrt(mdcKalTrkp2->px()*mdcKalTrkp2->px()+mdcKalTrkp2->py()*mdcKalTrkp2->py());
00692 
00693     if((*itTrkp2)->isEmcShowerValid()){
00694     emcTg3= emcTrkp2->energy();
00695     }
00696     if((*itTrkp2)->isMucTrackValid()){
00697     laypi3=mucTrkp2->numLayers();
00698     }
00699     double m_laypip2=laypi3;
00700 
00701     EvtRecTrackIterator itTrkm2=evtRecTrkCol->begin() + ipim[1];
00702     RecMdcTrack*  mdcTrkm2 = (*itTrkm2)->mdcTrack();
00703     RecMdcKalTrack *mdcKalTrkm2 = (*itTrkm2)->mdcKalTrack();
00704     RecEmcShower* emcTrkm2 = (*itTrkm2)->emcShower();
00705     RecMucTrack *mucTrkm2=(*itTrkm2)->mucTrack();
00706 
00707     double phi04=mdcTrkm2->helix(1);  
00708     double m_m2vx = mdcTrkm2->x();
00709     double m_m2vy = mdcTrkm2->y();
00710     double m_m2vz = mdcTrkm2->z()-xorigin.z();
00711     double m_m2vr = fabs((mdcTrkm2->x()-xorigin.x())*cos(phi04)+(mdcTrkm2->y()-xorigin.y())*sin(phi04));
00712     double m_m2vct=cos(mdcTrkm2->theta());
00713     double m_m2ptot=mdcKalTrkm2->p();
00714     double m_m2pxy=sqrt(mdcKalTrkm2->px()*mdcKalTrkm2->px()+mdcKalTrkm2->py()*mdcKalTrkm2->py());
00715 
00716     if((*itTrkm2)->isEmcShowerValid()){
00717     emcTg4= emcTrkm2->energy();
00718     }
00719     if((*itTrkm2)->isMucTrackValid()){
00720     laypi4=mucTrkm2->numLayers();
00721     }
00722     double m_laypim2=laypi4;
00723 
00724     double m_emcTp1 =emcTg1; 
00725     double m_emcTm1 =emcTg2; 
00726     double m_emcTp2 =emcTg3;
00727     double m_emcTm2 =emcTg4; 
00728 
00729     if(fabs(m_p1vz) >= m_vz1cut) return SUCCESS;
00730     if(m_p1vr >= m_vr1cut) return SUCCESS;
00731     if(fabs(m_p1vct)>=m_cthcut) return SUCCESS;
00732 
00733     if(fabs(m_m1vz) >= m_vz1cut) return SUCCESS;
00734     if(m_m1vr >= m_vr1cut) return SUCCESS;
00735     if(fabs(m_m1vct)>=m_cthcut) return SUCCESS;
00736     Ncut5++;
00737 
00738   HepLorentzVector p4muonp = ppip[1];
00739   HepLorentzVector p4muonm = ppim[1];
00740   HepLorentzVector p4uu  =   pTrecf;
00741 
00742  //Lorentz transformation : boost and rotate
00743   Hep3Vector  p3jpsiUnit = (p4uu.vect()).unit();
00744   double      jBeta = p4uu.beta(); // just same as the P/E
00745 
00746 //  std::cout << jBeta << " " << p4uu.beta() << std::endl;
00747 
00748   //
00749   // Loop each gamma pair, check ppi0, pTot
00750   // and other mass from MDC momentum  
00751   //
00752 
00753   HepLorentzVector pTot;
00754   double minpi0=999.0;
00755   for(int i = 0; i < nGam - 1; i++){
00756     for(int j = i+1; j < nGam; j++) {
00757       HepLorentzVector p2g = pGam[i] + pGam[j];
00758       pTot = ppip[0] + ppim[0] + ppip[1] + ppim[1];
00759       pTot += p2g;
00760       if(fabs(p2g.m()-0.135)<minpi0){
00761            minpi0 = fabs(p2g.m()-0.135);
00762 // 2009//4
00763            double  m_m2gg = p2g.m();
00764 // 2009//4
00765            HepLorentzVector prho0_no = ppi2_no2;
00766            HepLorentzVector prhop_no = ppip[1] + p2g;
00767            HepLorentzVector prhom_no = ppim[1] + p2g;
00768            HepLorentzVector prho0pi0 = ppi2_no2 + p2g;
00769            HepLorentzVector frho1pi0 = ppi2_no1 + p2g;
00770            HepLorentzVector frho2pi0 = ppi2_no3 + p2g;
00771            HepLorentzVector frho3pi0 = ppi2_no4 + p2g;
00772            HepLorentzVector prho0g1 = ppi2_no2 + pGam[i];
00773            HepLorentzVector prho0g2 = ppi2_no2 + pGam[j];
00774            HepLorentzVector frho1g1 = ppi2_no1 + pGam[i];
00775            HepLorentzVector frho1g2 = ppi2_no1 + pGam[j];
00776            HepLorentzVector frho2g1 = ppi2_no3 + pGam[i];
00777            HepLorentzVector frho2g2 = ppi2_no3 + pGam[j];
00778            HepLorentzVector frho3g1 = ppi2_no4 + pGam[i];
00779            HepLorentzVector frho3g2 = ppi2_no4 + pGam[j];
00780            HepLorentzVector p5pi_no = p4pi_no + p2g;
00781 
00782 // 2009//4
00783       double m_prho0_no = prho0_no.m();
00784       double m_prhop_no = prhop_no.m();
00785       double m_prhom_no = prhom_no.m();
00786       double m_prho0pi0 = prho0pi0.m();
00787       double m_frho1pi0 = frho1pi0.m();
00788       double m_frho2pi0 = frho2pi0.m();
00789       double m_frho3pi0 = frho3pi0.m();
00790       double m_prho0g1  = prho0g1.m();
00791       double m_prho0g2  = prho0g2.m();
00792       double m_frho1g1  = frho1g1.m();
00793       double m_frho1g2  = frho1g2.m();
00794       double m_frho2g1  = frho2g1.m();
00795       double m_frho2g2  = frho2g2.m();
00796       double m_frho3g1  = frho3g1.m();
00797       double m_frho3g2  = frho3g2.m();
00798       double m_p4pi_no  = p4pi_no.m();
00799       double m_p5pi_no  = p5pi_no.m();
00800       double m_mdcpx1=ppip[0].px();
00801       double m_mdcpy1=ppip[0].py();
00802       double m_mdcpz1=ppip[0].pz();
00803       double m_mdcpe1=ppip[0].e();
00804       double m_mdcpx2=ppim[0].px();
00805       double m_mdcpy2=ppim[0].py();
00806       double m_mdcpz2=ppim[0].pz();
00807       double m_mdcpe2=ppim[0].e();
00808       double m_mdcpx3=ppip[1].px();
00809       double m_mdcpy3=ppip[1].py();
00810       double m_mdcpz3=ppip[1].pz();
00811       double m_mdcpe3=ppip[1].e();
00812       double m_mdcpx4=ppim[1].px();
00813       double m_mdcpy4=ppim[1].py();
00814       double m_mdcpz4=ppim[1].pz();
00815       double m_mdcpe4=ppim[1].e();
00816       double m_mdcpxg1=pGam[i].px();
00817       double m_mdcpyg1=pGam[i].py();
00818       double m_mdcpzg1=pGam[i].pz();
00819       double m_mdcpeg1=pGam[i].e();
00820       double m_mdcpxg2=pGam[j].px();
00821       double m_mdcpyg2=pGam[j].py();
00822       double m_mdcpzg2=pGam[j].pz();
00823       double m_mdcpeg2=pGam[j].e();
00824       double m_etot = pTot.e();
00825       double m_mrecjp1=m_recjpsi1;
00826       double m_mrecjp2=m_recjpsi2;
00827       double m_mrecjp3=m_recjpsi3;
00828       double m_mrecjp4=m_recjpsi4;
00829 //      m_tuple3 -> write();
00830 // 2009//4
00831      }
00832     }
00833   }
00834     Ncut6++;  
00835 
00836 
00837   //
00838   //    Test vertex fit
00839   //
00840 
00841   HepPoint3D vx(0., 0., 0.);
00842   HepSymMatrix Evx(3, 0);
00843   double bx = 1E+6;
00844   double by = 1E+6;
00845   double bz = 1E+6;
00846   Evx[0][0] = bx*bx;
00847   Evx[1][1] = by*by;
00848   Evx[2][2] = bz*bz;
00849 
00850   VertexParameter vxpar;
00851   vxpar.setVx(vx);
00852   vxpar.setEvx(Evx);
00853   
00854   VertexFit* vtxfit = VertexFit::instance();
00855   vtxfit->init();
00856 
00857   // assume charged tracks to pi 
00858 
00859 
00860   RecMdcKalTrack *pipTrk1 = (*(evtRecTrkCol->begin()+ipip[0]))->mdcKalTrack();
00861   RecMdcKalTrack *pimTrk1 = (*(evtRecTrkCol->begin()+ipim[0]))->mdcKalTrack();
00862   RecMdcKalTrack *pipTrk2 = (*(evtRecTrkCol->begin()+ipip[1]))->mdcKalTrack();
00863   RecMdcKalTrack *pimTrk2 = (*(evtRecTrkCol->begin()+ipim[1]))->mdcKalTrack();
00864 
00865   WTrackParameter wvpipTrk1, wvpimTrk1,wvpipTrk2, wvpimTrk2;
00866   wvpipTrk1 = WTrackParameter(mpi, pipTrk1->getZHelix(), pipTrk1->getZError());
00867   wvpimTrk1 = WTrackParameter(mpi, pimTrk1->getZHelix(), pimTrk1->getZError());
00868   wvpipTrk2 = WTrackParameter(mpi, pipTrk2->getZHelix(), pipTrk2->getZError());
00869   wvpimTrk2 = WTrackParameter(mpi, pimTrk2->getZHelix(), pimTrk2->getZError());
00870 
00871   vtxfit->AddTrack(0,  wvpipTrk1);
00872   vtxfit->AddTrack(1,  wvpimTrk1);
00873   vtxfit->AddVertex(0, vxpar,0, 1);
00874   if(!vtxfit->Fit(0)) return SUCCESS;
00875   vtxfit->Swim(0);
00876 
00877   Ncut7++;
00878 
00879   WTrackParameter wpip1 = vtxfit->wtrk(0);
00880   WTrackParameter wpim1 = vtxfit->wtrk(1);
00881 
00882   KinematicFit * kmfit = KinematicFit::instance();
00883 
00884   //
00885   //  Apply Kinematic 4C fit
00886   // 
00887     int igbf1 = -1;
00888     int igbf2 = -1;
00889   HepLorentzVector pTgam1(0,0,0,0);
00890   HepLorentzVector pTgam2(0,0,0,0);
00891 
00892   if(m_test4C==1) {
00893 //    double ecms = 3.097;
00894     HepLorentzVector ecms(0.011*3.6862,0,0,3.6862);
00895 
00896     //
00897     // kinematic fit to pi pi K  K pi0
00898     //
00899   WTrackParameter wvkipTrk2, wvkimTrk2;
00900   wvkipTrk2 = WTrackParameter(mk, pipTrk2->getZHelixK(), pipTrk2->getZErrorK());    
00901   wvkimTrk2 = WTrackParameter(mk, pimTrk2->getZHelixK(), pimTrk2->getZErrorK());     
00902     double chisq = 9999.;
00903      int ig11 = -1;
00904      int ig21 = -1;
00905     double chikk=9999.;
00906     for(int i = 0; i < nGam-1; i++) {
00907       RecEmcShower *g1Trk = (*(evtRecTrkCol->begin()+iGam[i]))->emcShower();
00908       for(int j = i+1; j < nGam; j++) {
00909         RecEmcShower *g2Trk = (*(evtRecTrkCol->begin()+iGam[j]))->emcShower();
00910         kmfit->init();
00911         kmfit->setDynamicerror(1);
00912         kmfit->AddTrack(0, wpip1);
00913         kmfit->AddTrack(1, wpim1);
00914         kmfit->AddTrack(2, wvkipTrk2);
00915         kmfit->AddTrack(3, wvkimTrk2);
00916         kmfit->AddTrack(4, 0.0, g1Trk);
00917         kmfit->AddTrack(5, 0.0, g2Trk);
00918         kmfit->AddFourMomentum(0, ecms);
00919         bool oksq = kmfit->Fit();
00920         if(oksq&&kmfit->chisq()<chikk) {
00921           chikk = kmfit->chisq();
00922         }
00923       }
00924     }
00925   Ncut8++;
00926 
00927     //
00928     // kinematic fit to pi pi pi pi pi0
00929     //
00930 
00931     chisq = 9999.;
00932     int ig1 = -1;
00933     int ig2 = -1;
00934     for(int i = 0; i < nGam-1; i++) {
00935       RecEmcShower *g1Trk = (*(evtRecTrkCol->begin()+iGam[i]))->emcShower();
00936       for(int j = i+1; j < nGam; j++) {
00937         RecEmcShower *g2Trk = (*(evtRecTrkCol->begin()+iGam[j]))->emcShower();
00938         kmfit->init();
00939         kmfit->setDynamicerror(1);
00940         kmfit->AddTrack(0, wpip1);
00941         kmfit->AddTrack(1, wpim1);
00942         kmfit->AddTrack(2, wvpipTrk2);
00943         kmfit->AddTrack(3, wvpimTrk2);
00944         kmfit->AddTrack(4, 0.0, g1Trk);
00945         kmfit->AddTrack(5, 0.0, g2Trk);
00946         kmfit->AddFourMomentum(0, ecms);
00947         bool oksq = kmfit->Fit();
00948         if(oksq) {
00949           double chi2 = kmfit->chisq();
00950           if(chi2 < chisq) {
00951             chisq = chi2;
00952             ig1 = iGam[i];
00953             ig2 = iGam[j];
00954             igbf1 = iGam[i];
00955             igbf2 = iGam[j];
00956             pTgam1=pGam[i];
00957             pTgam2=pGam[j];
00958           }
00959         }
00960       }
00961     }
00962 //    log << MSG::DEBUG << "photon ID from 4c fit to 4pi+pi0 " << ig1 << " , " 
00963 //        << ig2 << endreq;    
00964     if(chisq > 200) return SUCCESS;
00965     Ncut9++;
00966 
00967 // select charge track and nneu track
00968   Vint jGood;
00969   jGood.clear();
00970   jGood.push_back(ipip[0]);  
00971   jGood.push_back(ipim[0]);
00972   jGood.push_back(ipip[1]);
00973   jGood.push_back(ipim[1]);
00974 
00975 
00976 
00977   Vint jGgam;
00978   jGgam.clear();
00979   jGgam.push_back(igbf1);
00980   jGgam.push_back(igbf2);
00981 
00982       double chi1_pp=9999.0;
00983     
00984       RecEmcShower *g1Trk = (*(evtRecTrkCol->begin()+ig1))->emcShower();
00985       RecEmcShower *g2Trk = (*(evtRecTrkCol->begin()+ig2))->emcShower();
00986       kmfit->init();
00987       kmfit->AddTrack(0, wpip1);
00988       kmfit->AddTrack(1, wpim1);
00989       kmfit->AddTrack(2, wvpipTrk2);
00990       kmfit->AddTrack(3, wvpimTrk2);
00991       kmfit->AddTrack(4, 0.0, g1Trk);
00992       kmfit->AddTrack(5, 0.0, g2Trk);
00993       kmfit->AddFourMomentum(0, ecms);
00994       bool oksq = kmfit->Fit();
00995       if(oksq) {
00996         chi1_pp = kmfit->chisq();
00997         HepLorentzVector ppi0 = kmfit->pfit(4) + kmfit->pfit(5);
00998         HepLorentzVector prho0= kmfit->pfit(2) + kmfit->pfit(3);
00999         HepLorentzVector prhop= kmfit->pfit(2) + ppi0;
01000         HepLorentzVector prhom= kmfit->pfit(3) + ppi0;
01001         HepLorentzVector pjjj = prho0 + ppi0; 
01002 
01003         HepLorentzVector p2pi1=kmfit->pfit(0) + kmfit->pfit(1);
01004         HepLorentzVector f2pi1g1= p2pi1 + kmfit->pfit(4);
01005         HepLorentzVector f2pi1g2= p2pi1 + kmfit->pfit(5);
01006         HepLorentzVector f2pi1pi0=p2pi1 + ppi0;
01007 
01008         HepLorentzVector t2pi2g1= prho0 + kmfit->pfit(4);
01009         HepLorentzVector t2pi2g2= prho0 + kmfit->pfit(5);
01010 
01011         HepLorentzVector p2pi3=kmfit->pfit(0) + kmfit->pfit(3);
01012         HepLorentzVector f2pi3g1= p2pi3 + kmfit->pfit(4);
01013         HepLorentzVector f2pi3g2= p2pi3 + kmfit->pfit(5);
01014         HepLorentzVector f2pi3pi0=p2pi3 + ppi0;
01015 
01016         HepLorentzVector p2pi4=kmfit->pfit(1) + kmfit->pfit(2);
01017         HepLorentzVector f2pi4g1= p2pi4 + kmfit->pfit(4);
01018         HepLorentzVector f2pi4g2= p2pi4 + kmfit->pfit(5);
01019         HepLorentzVector f2pi4pi0=p2pi4 + ppi0;
01020 
01021        HepLorentzVector p4pi= p2pi1 + prho0;
01022        HepLorentzVector p4pig1= p4pi + kmfit->pfit(4);
01023        HepLorentzVector p4pig2= p4pi + kmfit->pfit(5);
01024        HepLorentzVector ppptot= p4pi + ppi0;
01025 
01026 //     add
01027        HepLorentzVector be4cpi0= pTgam1 + pTgam2;
01028        HepLorentzVector be4c_ppi1 = ppip[0] + ppim[0];        
01029        HepLorentzVector be4c_ppi2 = ppip[1] + ppim[1];
01030        HepLorentzVector be4cjp= be4cpi0 + be4c_ppi2;
01031 
01032 //**********************************//
01033 //      final event selection       //
01034 //      for pion control sample     //
01035 //**********************************//
01036 /*
01037       if(fabs(ppi0.m()-0.135)>0.02) return SUCCESS;
01038       if(fabs(m_recppf-3.097)>0.01) return SUCCESS;
01039       if(fabs(m_emcTp2+m_emcTm2)>2.6) return SUCCESS;
01040       if(chi1_pp>chikk) return SUCCESS;
01041 
01042 */
01043 //**********************************//
01044 
01045 /*  
01046   m_run = eventHeader->runNumber();  
01047   m_rec = eventHeader->eventNumber();
01048   m_nch  = evtRecEvent->totalCharged();
01049   m_nneu = evtRecEvent->totalNeutral();
01050 
01051         m_gdgam=nGam;
01052         m_recpp=m_recppf;
01053         m_ngch = jGood.size();
01054         m_nggneu=jGgam.size();
01055  
01056         m_chi1=chi1_pp;
01057         m_bepi0=be4cpi0.m();
01058         m_be4cjpsi = be4cjp.m();
01059 //
01060         m_mpi0 = ppi0.m();
01061         m_mprho0=prho0.m();
01062         m_mprhop=prhop.m();
01063         m_mprhom=prhom.m();
01064         m_mpjjj =pjjj.m();
01065         m_mp2pi1 = p2pi1.m();
01066         m_mf2pi1g1=f2pi1g1.m();
01067         m_mf2pi1g2=f2pi1g2.m();
01068         m_mf2pi1pi0=f2pi1pi0.m();
01069         m_mt2pi2g1=t2pi2g1.m();
01070         m_mt2pi2g2=t2pi2g2.m();
01071         m_mp2pi3 = p2pi3.m();
01072         m_mf2pi3g1=f2pi3g1.m();
01073         m_mf2pi3g2=f2pi3g2.m();
01074         m_mf2pi3pi0=f2pi3pi0.m();
01075         m_mp2pi4 = p2pi4.m();
01076         m_mf2pi4g1=f2pi4g1.m();
01077         m_mf2pi4g2=f2pi4g2.m();
01078         m_mf2pi4pi0=f2pi4pi0.m();
01079         m_mp4pi = p4pi.m();
01080         m_mppptot=ppptot.m();
01081         m_mp4pig1=p4pig1.m();
01082         m_mp4pig2=p4pig2.m();
01083         m_mpx1=kmfit->pfit(0).px();
01084         m_mpy1=kmfit->pfit(0).py();
01085         m_mpz1=kmfit->pfit(0).pz();
01086         m_mpe1=kmfit->pfit(0).e();
01087         m_mpx2=kmfit->pfit(1).px();
01088         m_mpy2=kmfit->pfit(1).py();
01089         m_mpz2=kmfit->pfit(1).pz();
01090         m_mpe2=kmfit->pfit(1).e();
01091         m_mpx3=kmfit->pfit(2).px();
01092         m_mpy3=kmfit->pfit(2).py();
01093         m_mpz3=kmfit->pfit(2).pz();
01094         m_mpe3=kmfit->pfit(2).e();
01095         m_mpx4=kmfit->pfit(3).px();
01096         m_mpy4=kmfit->pfit(3).py();
01097         m_mpz4=kmfit->pfit(3).pz();
01098         m_mpe4=kmfit->pfit(3).e();
01099         m_mpxg1=kmfit->pfit(4).px();
01100         m_mpyg1=kmfit->pfit(4).py();
01101         m_mpzg1=kmfit->pfit(4).pz();
01102         m_mpeg1=kmfit->pfit(4).e();
01103         m_mpxg2=kmfit->pfit(5).px();
01104         m_mpyg2=kmfit->pfit(5).py();
01105         m_mpzg2=kmfit->pfit(5).pz();
01106         m_mpeg2=kmfit->pfit(5).e();
01107         m_good = nGood;
01108         m_chikk=chikk;
01109         m_gam  = nGam;
01110         m_pip  = npip;
01111         m_pim  = npim;
01112 
01113 //
01114 //          fill information of dedx and tof
01115 //
01116 
01117     for(int jk = 0; jk < 2; jk++) {
01118     m_ipipin[jk]=0;
01119     m_ipimin[jk]=0;
01120     }
01121    int ipidpip=0;
01122    int ipidpim=0;
01123 
01124   ParticleID *pid = ParticleID::instance();
01125   for(int i = 0; i < npip; i++) {
01126     EvtRecTrackIterator itTrk = evtRecTrkCol->begin() + ipip[i];
01127     pid->init();
01128     pid->setMethod(pid->methodProbability()); 
01129     pid->setChiMinCut(4);
01130     pid->setRecTrack(*itTrk);
01131     pid->usePidSys(pid->useDedx() | pid->useTof1() | pid->useTof2()); // use PID sub-system
01132     pid->identify(pid->onlyPion() | pid->onlyKaon());    // seperater Pion/Kaon
01133     pid->calculate();
01134     if(!(pid->IsPidInfoValid())) continue;
01135     if(pid->probPion() > pid->probKaon()) {
01136      m_ipipin[ipidpip]=1;
01137      ipidpip++;
01138     }
01139    }
01140 
01141 //  ParticleID *pid = ParticleID::instance();
01142   for(int j = 0; j < npim; j++) {
01143     EvtRecTrackIterator jtTrk = evtRecTrkCol->begin() + ipim[j];
01144     pid->init();
01145     pid->setMethod(pid->methodProbability()); 
01146     pid->setChiMinCut(4);
01147     pid->setRecTrack(*jtTrk);
01148     pid->usePidSys(pid->useDedx() | pid->useTof1() | pid->useTof2()); // use PID sub-system
01149     pid->identify(pid->onlyPion() | pid->onlyKaon());    // seperater Pion/Kaon
01150     pid->calculate();
01151     if(!(pid->IsPidInfoValid())) continue;
01152     if(pid->probPion() > pid->probKaon()) {
01153     m_ipimin[ipidpim]=1;
01154     ipidpim++;
01155     }
01156    }
01157 
01158    m_pidpip=ipidpip;
01159    m_pidpim=ipidpim;
01160 
01161   //
01162   // check dedx infomation
01163   //
01164 
01165     for(int ii = 0; ii < 4; ii++) {
01166 // dedx
01167       m_ptrk[ii] = 9999.0;
01168       m_chie[ii] = 9999.0;
01169       m_chimu[ii] = 9999.0;
01170       m_chipi[ii] = 9999.0;
01171       m_chik[ii] = 9999.0;
01172       m_chip[ii] = 9999.0;
01173       m_ghit[ii] = 9999.0;
01174       m_thit[ii] = 9999.0;
01175       m_probPH[ii] = 9999.0;
01176       m_normPH[ii] = 9999.0;
01177 
01178 //endtof
01179           m_cntr_etof[ii] = 9999.0;
01180           m_ptot_etof[ii] = 9999.0;
01181           m_ph_etof[ii]   = 9999.0;
01182           m_rhit_etof[ii] = 9999.0;
01183           m_qual_etof[ii] = 9999.0;
01184           m_te_etof[ii]   = 9999.0;
01185           m_tmu_etof[ii]  = 9999.0;
01186           m_tpi_etof[ii]  = 9999.0;
01187           m_tk_etof[ii]   = 9999.0;
01188           m_tp_etof[ii]   = 9999.0;
01189           m_ec_tof[ii]    =  9999.0;
01190           m_ec_toff_e[ii]   = 9999.0;
01191           m_ec_toff_mu[ii]  = 9999.0;
01192           m_ec_toff_pi[ii]  = 9999.0;
01193           m_ec_toff_k[ii]   = 9999.0;
01194           m_ec_toff_p[ii]   = 9999.0;
01195           m_ec_tsig_e[ii]   = 9999.0;
01196           m_ec_tsig_mu[ii]  = 9999.0;
01197           m_ec_tsig_pi[ii]  = 9999.0;
01198           m_ec_tsig_k[ii]   = 9999.0;
01199           m_ec_tsig_p[ii]   = 9999.0;
01200 
01201 // barrel tof
01202           m_cntr_btof1[ii]  = 9999.0;
01203           m_ptot_btof1[ii]  = 9999.0;
01204           m_ph_btof1[ii]    = 9999.0;
01205           m_zhit_btof1[ii]  = 9999.0;
01206           m_qual_btof1[ii]  = 9999.0;
01207           m_te_btof1[ii]    = 9999.0;
01208           m_tmu_btof1[ii]   = 9999.0;
01209           m_tpi_btof1[ii]   = 9999.0;
01210           m_tk_btof1[ii]    = 9999.0;
01211           m_tp_btof1[ii]    = 9999.0;
01212           m_b1_tof[ii]      = 9999.0;
01213           m_b1_toff_e[ii]   = 9999.0;
01214           m_b1_toff_mu[ii]  = 9999.0;
01215           m_b1_toff_pi[ii]  = 9999.0;
01216           m_b1_toff_k[ii]   = 9999.0;
01217           m_b1_toff_p[ii]   = 9999.0;
01218           m_b1_tsig_e[ii]   = 9999.0;
01219           m_b1_tsig_mu[ii]  = 9999.0;
01220           m_b1_tsig_pi[ii]  = 9999.0;
01221           m_b1_tsig_k[ii]   = 9999.0;
01222           m_b1_tsig_p[ii]   = 9999.0;
01223 //pid
01224           m_dedx_pid[ii] = 9999.0;
01225           m_tof1_pid[ii] = 9999.0;
01226           m_tof2_pid[ii] = 9999.0;
01227           m_prob_pid[ii] = 9999.0; 
01228           m_ptrk_pid[ii] = 9999.0;  
01229           m_cost_pid[ii] = 9999.0;
01230        }
01231 
01232 
01233       int  indx0=0;
01234       for(int i = 0; i < m_ngch; i++) {
01235       EvtRecTrackIterator  itTrk = evtRecTrkCol->begin() + jGood[i];
01236       if(!(*itTrk)->isMdcTrackValid()) continue;
01237       if(!(*itTrk)->isMdcDedxValid())continue;
01238       RecMdcTrack* mdcTrk = (*itTrk)->mdcTrack();
01239       RecMdcDedx* dedxTrk = (*itTrk)->mdcDedx();
01240       m_ptrk[indx0] = mdcTrk->p();
01241 
01242       m_chie[indx0] = dedxTrk->chiE();
01243       m_chimu[indx0] = dedxTrk->chiMu();
01244       m_chipi[indx0] = dedxTrk->chiPi();
01245       m_chik[indx0] = dedxTrk->chiK();
01246       m_chip[indx0] = dedxTrk->chiP();
01247       m_ghit[indx0] = dedxTrk->numGoodHits();
01248       m_thit[indx0] = dedxTrk->numTotalHits();
01249       m_probPH[indx0] = dedxTrk->probPH();
01250       m_normPH[indx0] = dedxTrk->normPH();
01251       indx0++;
01252 //      m_tuple7->write();
01253     }
01254 
01255 
01256   //
01257   // check TOF infomation
01258   //
01259 
01260 
01261      int indx1=0;
01262     for(int i = 0; i < m_ngch; i++) {
01263       EvtRecTrackIterator  itTrk = evtRecTrkCol->begin() + jGood[i];
01264       if(!(*itTrk)->isMdcTrackValid()) continue;
01265       if(!(*itTrk)->isTofTrackValid()) continue;
01266 
01267       RecMdcTrack * mdcTrk = (*itTrk)->mdcTrack();
01268       SmartRefVector<RecTofTrack> tofTrkCol = (*itTrk)->tofTrack();
01269 
01270       double ptrk = mdcTrk->p();
01271       SmartRefVector<RecTofTrack>::iterator iter_tof = tofTrkCol.begin();
01272       for(;iter_tof != tofTrkCol.end(); iter_tof++ ) { 
01273         TofHitStatus *status = new TofHitStatus; 
01274         status->setStatus((*iter_tof)->status());
01275         if(!(status->is_barrel())){//endcap
01276           if( !(status->is_counter()) ) continue; // ? 
01277           if( status->layer()!=1 ) continue;//layer1
01278           double path=(*iter_tof)->path(); // ? 
01279           double tof  = (*iter_tof)->tof();
01280           double ph   = (*iter_tof)->ph();
01281           double rhit = (*iter_tof)->zrhit();
01282           double qual = 0.0 + (*iter_tof)->quality();
01283           double cntr = 0.0 + (*iter_tof)->tofID();
01284           double texp[5];
01285           double tsig[5];
01286           for(int j = 0; j < 5; j++) {//0 e, 1 mu, 2 pi, 3 K, 4 p
01287            texp[j] = (*iter_tof)->texp(j);
01288 //           tsig[j] = (*iter_tof)->sigma(j);
01289 //           toffset[j] = (*iter_tof)->offset(j);
01290           }
01291           m_cntr_etof[indx1]  = cntr;
01292           m_ptot_etof[indx1] = ptrk;
01293           m_ph_etof[indx1]   = ph;
01294           m_rhit_etof[indx1]  = rhit;
01295           m_qual_etof[indx1]  = qual;
01296           m_te_etof[indx1]    = tof - texp[0];
01297           m_tmu_etof[indx1]   = tof - texp[1];
01298           m_tpi_etof[indx1]   = tof - texp[2];
01299           m_tk_etof[indx1]    = tof - texp[3];
01300           m_tp_etof[indx1]    = tof - texp[4];
01301 
01302           m_ec_tof[indx1]      =  tof;
01303 
01304           m_ec_toff_e[indx1]   = (*iter_tof)->toffset(0);
01305           m_ec_toff_mu[indx1]  = (*iter_tof)->toffset(1);
01306           m_ec_toff_pi[indx1]  = (*iter_tof)->toffset(2);
01307           m_ec_toff_k[indx1]   = (*iter_tof)->toffset(3);
01308           m_ec_toff_p[indx1]   = (*iter_tof)->toffset(4);
01309 
01310           m_ec_tsig_e[indx1]   = (*iter_tof)->sigma(0);
01311           m_ec_tsig_mu[indx1]  = (*iter_tof)->sigma(1);
01312           m_ec_tsig_pi[indx1]  = (*iter_tof)->sigma(2);
01313           m_ec_tsig_k[indx1]   = (*iter_tof)->sigma(3);
01314           m_ec_tsig_p[indx1]   = (*iter_tof)->sigma(4);
01315 
01316 //          m_tuple8->write();
01317         }
01318         else {//barrel
01319           if( !(status->is_cluster()) ) continue; // ? 
01320             double path=(*iter_tof)->path(); // ? 
01321             double tof  = (*iter_tof)->tof();
01322             double ph   = (*iter_tof)->ph();
01323             double rhit = (*iter_tof)->zrhit();
01324             double qual = 0.0 + (*iter_tof)->quality();
01325             double cntr = 0.0 + (*iter_tof)->tofID();
01326           double texp[5];
01327           for(int j = 0; j < 5; j++) {
01328             texp[j] = (*iter_tof)->texp(j);
01329             }
01330             m_cntr_btof1[indx1]  = cntr;
01331             m_ptot_btof1[indx1] = ptrk;
01332             m_ph_btof1[indx1]   = ph;
01333             m_zhit_btof1[indx1]  = rhit;
01334             m_qual_btof1[indx1]  = qual;
01335             m_te_btof1[indx1]    = tof - texp[0];
01336             m_tmu_btof1[indx1]   = tof - texp[1];
01337             m_tpi_btof1[indx1]   = tof - texp[2];
01338             m_tk_btof1[indx1]    = tof - texp[3];
01339             m_tp_btof1[indx1]    = tof - texp[4];
01340 
01341           m_b1_tof[indx1]      =  tof;
01342 
01343           m_b1_toff_e[indx1]   = (*iter_tof)->toffset(0);
01344           m_b1_toff_mu[indx1]  = (*iter_tof)->toffset(1);
01345           m_b1_toff_pi[indx1]  = (*iter_tof)->toffset(2);
01346           m_b1_toff_k[indx1]   = (*iter_tof)->toffset(3);
01347           m_b1_toff_p[indx1]   = (*iter_tof)->toffset(4);
01348 
01349           m_b1_tsig_e[indx1]   = (*iter_tof)->sigma(0);
01350           m_b1_tsig_mu[indx1]  = (*iter_tof)->sigma(1);
01351           m_b1_tsig_pi[indx1]  = (*iter_tof)->sigma(2);
01352           m_b1_tsig_k[indx1]   = (*iter_tof)->sigma(3);
01353           m_b1_tsig_p[indx1]   = (*iter_tof)->sigma(4);
01354 
01355 //            m_tuple9->write();
01356           }
01357         delete status; 
01358       } 
01359       indx1++;
01360     } // loop all charged track
01361 
01362   //
01363   // Assign 4-momentum to each charged track
01364   //
01365     int indx2=0;
01366 //  ParticleID *pid = ParticleID::instance();
01367   for(int i = 0; i < m_ngch; i++) {
01368     EvtRecTrackIterator itTrk = evtRecTrkCol->begin() + jGood[i]; 
01369     //    if(pid) delete pid;
01370     pid->init();
01371     pid->setMethod(pid->methodProbability());
01372 //    pid->setMethod(pid->methodLikelihood());  //for Likelihood Method  
01373 
01374     pid->setChiMinCut(4);
01375     pid->setRecTrack(*itTrk);
01376     pid->usePidSys(pid->useDedx() | pid->useTof1() | pid->useTof2()); // use PID sub-system
01377     pid->identify(pid->onlyPion() | pid->onlyKaon());    // seperater Pion/Kaon
01378     //    pid->identify(pid->onlyPion());
01379     //  pid->identify(pid->onlyKaon());
01380     pid->calculate();
01381     if(!(pid->IsPidInfoValid())) continue;
01382     RecMdcTrack* mdcTrk = (*itTrk)->mdcTrack();
01383 
01384     m_dedx_pid[indx2] = pid->chiDedx(2);
01385     m_tof1_pid[indx2] = pid->chiTof1(2);
01386     m_tof2_pid[indx2] = pid->chiTof2(2);
01387     m_prob_pid[indx2] = pid->probPion();
01388 
01389 //    if(pid->probPion() < 0.001 || (pid->probPion() < pid->probKaon())) continue;
01390 //    if(pid->probPion() < 0.001) continue;
01391 //    if(pid->pdf(2)<pid->pdf(3)) continue; //  for Likelihood Method(0=electron 1=muon 2=pion 3=kaon 4=proton) 
01392 
01393     RecMdcKalTrack* mdcKalTrk = (*itTrk)->mdcKalTrack();//After ParticleID, use RecMdcKalTrack substitute RecMdcTrack
01394     RecMdcKalTrack::setPidType  (RecMdcKalTrack::pion);//PID can set to electron, muon, pion, kaon and proton;The default setting is pion
01395 
01396     m_ptrk_pid[indx2] = mdcKalTrk->p();
01397     m_cost_pid[indx2] = cos(mdcTrk->theta());
01398   }
01399 
01400 
01401   int iphoton = 0;
01402   for (int i=0; i<m_nggneu; i++)
01403   {
01404     EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + jGgam[i];
01405     if (!(*itTrk)->isEmcShowerValid()) continue; 
01406     RecEmcShower *emcTrk = (*itTrk)->emcShower();
01407     m_numHits[iphoton] = emcTrk->numHits();
01408     m_secondmoment[iphoton] = emcTrk->secondMoment();
01409     m_x[iphoton] = emcTrk->x();
01410     m_y[iphoton]= emcTrk->y();
01411     m_z[iphoton]= emcTrk->z();
01412     m_cosemc[iphoton]   = cos(emcTrk->theta());
01413     m_phiemc[iphoton]   = emcTrk->phi();      
01414     m_energy[iphoton]   = emcTrk->energy();
01415     m_eSeed[iphoton]    = emcTrk->eSeed(); 
01416     m_e3x3[iphoton]     = emcTrk->e3x3();  
01417     m_e5x5[iphoton]     = emcTrk->e5x5();  
01418     m_lat[iphoton]      = emcTrk->latMoment();
01419     m_a20[iphoton]      = emcTrk->a20Moment();
01420     m_a42[iphoton]      = emcTrk->a42Moment();
01421     iphoton++;
01422   }
01423 //      m_tuple4->write();
01424 */
01425         Ncut10++;
01426 //    log << MSG::DEBUG << "chisquare from 4c fit to 4pi+pi0 " << m_chi1 << endreq;    
01427       }
01428   }
01429   
01430   //
01431   //  Apply Kinematic 5C Fit
01432   //
01433 
01434   // find the best combination over all possible pi+ pi- gamma gamma pair
01435 
01436   setFilterPassed(true);
01437 
01438   (*(evtRecTrkCol->begin()+ipip[0]))->setPartId(2);
01439   (*(evtRecTrkCol->begin()+ipim[0]))->setPartId(2);
01440   (*(evtRecTrkCol->begin()+ipip[1]))->setPartId(2);
01441   (*(evtRecTrkCol->begin()+ipim[1]))->setPartId(2);
01442 
01443 
01444   return StatusCode::SUCCESS;
01445 }

StatusCode Ppjrhopi::finalize (  ) 

Definition at line 1449 of file Ppjrhopi.cxx.

References Bes_Common::INFO, msgSvc(), Ncut0, Ncut1, Ncut10, Ncut2, Ncut3, Ncut4, Ncut5, Ncut6, Ncut7, Ncut8, and Ncut9.

01449                               {
01450   cout<<"total number:         "<<Ncut0<<endl;
01451   cout<<"nGood==4, nCharge==0: "<<Ncut1<<endl;
01452   cout<<"nGam>=2:              "<<Ncut2<<endl;
01453   cout<<"Pass no Pid:          "<<Ncut3<<endl;
01454   cout<<"ChangeID recfrom psp: "<<Ncut4<<endl;
01455   cout<<"vetex position:       "<<Ncut5<<endl;
01456   cout<<"Mass from MDC:        "<<Ncut6<<endl;
01457   cout<<"primary vetex fit:    "<<Ncut7<<endl;
01458   cout<<"Pass 4C for ppkkp0:   "<<Ncut8<<endl;
01459   cout<<"Pass 4C for 4pi+pi0:  "<<Ncut9<<endl;
01460   cout<<"Pass 4C <200:         "<<Ncut10<<endl;
01461   MsgStream log(msgSvc(), name());
01462   log << MSG::INFO << "in finalize()" << endmsg;
01463   return StatusCode::SUCCESS;
01464 }

StatusCode Ppjrhopi::initialize (  ) 

Definition at line 75 of file Ppjrhopi.cxx.

References Bes_Common::INFO, m_test4C, and msgSvc().

00075                                {
00076   MsgStream log(msgSvc(), name());
00077 
00078   log << MSG::INFO << "in initialize()" << endmsg;
00079   
00080   StatusCode status;
00081 
00082   if(m_test4C==1) {
00083 /*
00084     NTuplePtr nt4(ntupleSvc(), "FILE1/fit4c");
00085     if ( nt4 ) m_tuple4 = nt4;
00086     else {
00087       m_tuple4 = ntupleSvc()->book ("FILE1/fit4c", CLID_ColumnWiseTuple, "ks N-Tuple example");
00088       if ( m_tuple4 )    {
00089         status = m_tuple4->addItem ("run",    m_run);
00090         status = m_tuple4->addItem ("rec",    m_rec);
00091         status = m_tuple4->addItem ("nch",    m_nch);
00092         status = m_tuple4->addItem ("nneu",   m_nneu);
00093         status = m_tuple4->addItem ("mgdgam", m_gdgam);
00094         status = m_tuple4->addItem ("recpp",  m_recpp);
00095         status = m_tuple4->addItem ("chi2",   m_chi1);
00096         status = m_tuple4->addItem ("mpi0",   m_mpi0); 
00097         status = m_tuple4->addItem ("mprho0", m_mprho0);  
00098         status = m_tuple4->addItem ("mprhop", m_mprhop);
00099         status = m_tuple4->addItem ("mprhom", m_mprhom);
00100         status = m_tuple4->addItem ("mpjjj",  m_mpjjj);
00101         status = m_tuple4->addItem ("mbepi0", m_bepi0);
00102         status = m_tuple4->addItem ("mbe4cjpsi",m_be4cjpsi); 
00103         status = m_tuple4->addItem ("mp2pi1", m_mp2pi1); 
00104         status = m_tuple4->addItem ("mf2pi1g1", m_mf2pi1g1);
00105         status = m_tuple4->addItem ("mf2pi1g2", m_mf2pi1g2);
00106         status = m_tuple4->addItem ("mf2pi1pi0",m_mf2pi1pi0);
00107         status = m_tuple4->addItem ("mt2pi2g1", m_mt2pi2g1);
00108         status = m_tuple4->addItem ("mt2pi2g2", m_mt2pi2g2);
00109         status = m_tuple4->addItem ("mp2pi3",   m_mp2pi3); 
00110         status = m_tuple4->addItem ("mf2pi3g1", m_mf2pi3g1);
00111         status = m_tuple4->addItem ("mf2pi3g2", m_mf2pi3g2);
00112         status = m_tuple4->addItem ("mf2pi3pi0",m_mf2pi3pi0);
00113         status = m_tuple4->addItem ("mp2pi4",   m_mp2pi4); 
00114         status = m_tuple4->addItem ("mf2pi4g1", m_mf2pi4g1);
00115         status = m_tuple4->addItem ("mf2pi4g2", m_mf2pi4g2);
00116         status = m_tuple4->addItem ("mf2pi4pi0",m_mf2pi4pi0);
00117         status = m_tuple4->addItem ("mp4pi",    m_mp4pi); 
00118         status = m_tuple4->addItem ("mppptot",  m_mppptot);
00119         status = m_tuple4->addItem ("mp4pig1",  m_mp4pig1);
00120         status = m_tuple4->addItem ("mp4pig2",  m_mp4pig2);    
00121         status = m_tuple4->addItem ("mpx1",     m_mpx1);
00122         status = m_tuple4->addItem ("mpy1",     m_mpy1);
00123         status = m_tuple4->addItem ("mpz1",     m_mpz1);
00124         status = m_tuple4->addItem ("mpe1",     m_mpe1);
00125         status = m_tuple4->addItem ("mpx2",     m_mpx2);
00126         status = m_tuple4->addItem ("mpy2",     m_mpy2);
00127         status = m_tuple4->addItem ("mpz2",     m_mpz2);
00128         status = m_tuple4->addItem ("mpe2",     m_mpe2);
00129         status = m_tuple4->addItem ("mpx3",     m_mpx3);
00130         status = m_tuple4->addItem ("mpy3",     m_mpy3);
00131         status = m_tuple4->addItem ("mpz3",     m_mpz3);
00132         status = m_tuple4->addItem ("mpe3",     m_mpe3);
00133         status = m_tuple4->addItem ("mpx4",     m_mpx4);
00134         status = m_tuple4->addItem ("mpy4",     m_mpy4);
00135         status = m_tuple4->addItem ("mpz4",     m_mpz4);
00136         status = m_tuple4->addItem ("mpe4",     m_mpe4);
00137         status = m_tuple4->addItem ("mpxg1",    m_mpxg1);
00138         status = m_tuple4->addItem ("mpyg1",    m_mpyg1);
00139         status = m_tuple4->addItem ("mpzg1",    m_mpzg1);
00140         status = m_tuple4->addItem ("mpeg1",    m_mpeg1);
00141         status = m_tuple4->addItem ("mpxg2",    m_mpxg2);
00142         status = m_tuple4->addItem ("mpyg2",    m_mpyg2);
00143         status = m_tuple4->addItem ("mpzg2",    m_mpzg2);
00144         status = m_tuple4->addItem ("mpeg2",    m_mpeg2);
00145         status = m_tuple4->addItem ("chikk",    m_chikk);
00146         status = m_tuple4->addItem ("p1vx",     m_p1vx);
00147         status = m_tuple4->addItem ("p1vy",     m_p1vy);
00148         status = m_tuple4->addItem ("p1vz",     m_p1vz);
00149         status = m_tuple4->addItem ("p1vr",     m_p1vr);
00150         status = m_tuple4->addItem ("p1vct",    m_p1vct);
00151         status = m_tuple4->addItem ("m1vx",     m_m1vx);
00152         status = m_tuple4->addItem ("m1vy",     m_m1vy);
00153         status = m_tuple4->addItem ("m1vz",     m_m1vz);
00154         status = m_tuple4->addItem ("m1vr",     m_m1vr);
00155         status = m_tuple4->addItem ("m1vct",    m_m1vct);
00156         status = m_tuple4->addItem ("p2vx",     m_p2vx);
00157         status = m_tuple4->addItem ("p2vy",     m_p2vy);
00158         status = m_tuple4->addItem ("p2vz",     m_p2vz);
00159         status = m_tuple4->addItem ("p2vr",     m_p2vr);
00160         status = m_tuple4->addItem ("p2vct",    m_p2vct);
00161         status = m_tuple4->addItem ("m2vx",     m_m2vx);
00162         status = m_tuple4->addItem ("m2vy",     m_m2vy);
00163         status = m_tuple4->addItem ("m2vz",     m_m2vz);
00164         status = m_tuple4->addItem ("m2vr",     m_m2vr);
00165         status = m_tuple4->addItem ("m2vct",    m_m2vct);
00166         status = m_tuple4->addItem ("mgood",    m_good);
00167         status = m_tuple4->addItem ("mgam",     m_gam);
00168         status = m_tuple4->addItem ("mpip",     m_pip);
00169         status = m_tuple4->addItem ("mpim",     m_pim);
00170         status = m_tuple4->addItem ("mp1ptot",  m_p1ptot);
00171         status = m_tuple4->addItem ("memcTp1",  m_emcTp1);
00172         status = m_tuple4->addItem ("mm1ptot",  m_m1ptot);
00173         status = m_tuple4->addItem ("memcTm1",  m_emcTm1);
00174         status = m_tuple4->addItem ("mp2ptot",  m_p2ptot);
00175         status = m_tuple4->addItem ("memcTp2",  m_emcTp2);
00176         status = m_tuple4->addItem ("mm2ptot",  m_m2ptot);
00177         status = m_tuple4->addItem ("memcTm2",  m_emcTm2);
00178         status = m_tuple4->addItem ("p1pxy",    m_p1pxy);
00179         status = m_tuple4->addItem ("m1pxy",    m_m1pxy);
00180         status = m_tuple4->addItem ("p2pxy",    m_p2pxy);
00181         status = m_tuple4->addItem ("m2pxy",    m_m2pxy);
00182 
00183         status = m_tuple4->addItem ("mpidpip", m_pidpip, 0, 10);        
00184         status = m_tuple4->addIndexedItem ("mipipin" , m_pidpip, m_ipipin);
00185         status = m_tuple4->addItem ("mpidpim", m_pidpim, 0, 10);        
00186         status = m_tuple4->addIndexedItem ("mipimin" , m_pidpim, m_ipimin);
00187 
00188         status = m_tuple4->addItem ("laypip1",  m_laypip1);
00189         status = m_tuple4->addItem ("laypim1",  m_laypim1);
00190         status = m_tuple4->addItem ("laypip2",  m_laypip2);
00191         status = m_tuple4->addItem ("laypim2",  m_laypim2);
00192         status = m_tuple4->addItem ("mangle",   m_angle);
00193         status = m_tuple4->addItem ("cosuubr",m_cosuubr );
00194         status = m_tuple4->addItem ("cosmupbr", m_cosmupbr);
00195         status = m_tuple4->addItem ("cosmumbr", m_cosmumbr);
00196         status = m_tuple4->addItem ("phimupbr", m_phimupbr);
00197         status = m_tuple4->addItem ("phimumbr", m_phimumbr);  
00198         status = m_tuple4->addItem ("ngch",     m_ngch,  0, 10);
00199         status = m_tuple4->addItem ("nggneu",   m_nggneu,0, 10);
00200         // modifiey by Zhu
00201         //        status = m_tuple4->addItem ("indx0",   indx0, 0, 10);
00202         status = m_tuple4->addIndexedItem ("mptrk" , m_ngch, m_ptrk);
00203         status = m_tuple4->addIndexedItem ("chie",   m_ngch, m_chie);
00204         status = m_tuple4->addIndexedItem ("chimu",  m_ngch,m_chimu);
00205         status = m_tuple4->addIndexedItem ("chipi",  m_ngch,m_chipi);
00206         status = m_tuple4->addIndexedItem ("chik",   m_ngch,m_chik);
00207         status = m_tuple4->addIndexedItem ("chip",   m_ngch,m_chip);
00208         status = m_tuple4->addIndexedItem ("probPH", m_ngch,m_probPH);
00209         status = m_tuple4->addIndexedItem ("normPH", m_ngch,m_normPH);
00210         status = m_tuple4->addIndexedItem ("ghit",   m_ngch,m_ghit);
00211         status = m_tuple4->addIndexedItem ("thit",   m_ngch,m_thit);
00212 
00213         status = m_tuple4->addIndexedItem ("ptot_etof", m_ngch,m_ptot_etof);
00214         status = m_tuple4->addIndexedItem ("cntr_etof", m_ngch,m_cntr_etof);
00215         status = m_tuple4->addIndexedItem ("te_etof",   m_ngch,m_te_etof);
00216         status = m_tuple4->addIndexedItem ("tmu_etof",  m_ngch,m_tmu_etof);
00217         status = m_tuple4->addIndexedItem ("tpi_etof",  m_ngch,m_tpi_etof);
00218         status = m_tuple4->addIndexedItem ("tk_etof",   m_ngch,m_tk_etof);
00219         status = m_tuple4->addIndexedItem ("tp_etof",   m_ngch,m_tp_etof);
00220         status = m_tuple4->addIndexedItem ("ph_etof",   m_ngch,m_ph_etof);
00221         status = m_tuple4->addIndexedItem ("rhit_etof", m_ngch,m_rhit_etof);
00222         status = m_tuple4->addIndexedItem ("qual_etof", m_ngch,m_qual_etof);
00223         status = m_tuple4->addIndexedItem ("ec_toff_e", m_ngch,m_ec_toff_e);
00224         status = m_tuple4->addIndexedItem ("ec_toff_mu",m_ngch,m_ec_toff_mu);
00225         status = m_tuple4->addIndexedItem ("ec_toff_pi",m_ngch,m_ec_toff_pi);
00226         status = m_tuple4->addIndexedItem ("ec_toff_k", m_ngch,m_ec_toff_k);
00227         status = m_tuple4->addIndexedItem ("ec_toff_p", m_ngch,m_ec_toff_p);
00228         status = m_tuple4->addIndexedItem ("ec_tsig_e", m_ngch,m_ec_tsig_e);
00229         status = m_tuple4->addIndexedItem ("ec_tsig_mu",m_ngch,m_ec_tsig_mu);
00230         status = m_tuple4->addIndexedItem ("ec_tsig_pi",m_ngch,m_ec_tsig_pi);
00231         status = m_tuple4->addIndexedItem ("ec_tsig_k", m_ngch,m_ec_tsig_k);
00232         status = m_tuple4->addIndexedItem ("ec_tsig_p", m_ngch,m_ec_tsig_p);
00233         status = m_tuple4->addIndexedItem ("ec_tof",    m_ngch,m_ec_tof);
00234         status = m_tuple4->addIndexedItem ("ptot_btof1",m_ngch,m_ptot_btof1);
00235         status = m_tuple4->addIndexedItem ("cntr_btof1",m_ngch,m_cntr_btof1);
00236         status = m_tuple4->addIndexedItem ("te_btof1",  m_ngch,m_te_btof1);
00237         status = m_tuple4->addIndexedItem ("tmu_btof1", m_ngch,m_tmu_btof1);
00238         status = m_tuple4->addIndexedItem ("tpi_btof1", m_ngch,m_tpi_btof1);
00239         status = m_tuple4->addIndexedItem ("tk_btof1",  m_ngch,m_tk_btof1);
00240         status = m_tuple4->addIndexedItem ("tp_btof1",  m_ngch,m_tp_btof1);
00241         status = m_tuple4->addIndexedItem ("ph_btof1",  m_ngch,m_ph_btof1);
00242         status = m_tuple4->addIndexedItem ("zhit_btof1",m_ngch,m_zhit_btof1);
00243         status = m_tuple4->addIndexedItem ("qual_btof1",m_ngch,m_qual_btof1);
00244         status = m_tuple4->addIndexedItem ("b1_toff_e", m_ngch,m_b1_toff_e);
00245         status = m_tuple4->addIndexedItem ("b1_toff_mu",m_ngch,m_b1_toff_mu);
00246         status = m_tuple4->addIndexedItem ("b1_toff_pi",m_ngch,m_b1_toff_pi);
00247         status = m_tuple4->addIndexedItem ("b1_toff_k", m_ngch,m_b1_toff_k);
00248         status = m_tuple4->addIndexedItem ("b1_toff_p", m_ngch,m_b1_toff_p);
00249         status = m_tuple4->addIndexedItem ("b1_tsig_e", m_ngch,m_b1_tsig_e);
00250         status = m_tuple4->addIndexedItem ("b1_tsig_mu",m_ngch,m_b1_tsig_mu);
00251         status = m_tuple4->addIndexedItem ("b1_tsig_pi",m_ngch,m_b1_tsig_pi);
00252         status = m_tuple4->addIndexedItem ("b1_tsig_k", m_ngch,m_b1_tsig_k);
00253         status = m_tuple4->addIndexedItem ("b1_tsig_p", m_ngch,m_b1_tsig_p);
00254         status = m_tuple4->addIndexedItem ("b1_tof",    m_ngch,m_b1_tof);                                                    
00255 
00256         status = m_tuple4->addIndexedItem ("mdedx_pid", m_ngch,m_dedx_pid);
00257         status = m_tuple4->addIndexedItem ("mtof1_pid", m_ngch,m_tof1_pid);
00258         status = m_tuple4->addIndexedItem ("mtof2_pid", m_ngch,m_tof2_pid);
00259         status = m_tuple4->addIndexedItem ("mprob_pid", m_ngch,m_prob_pid);
00260         status = m_tuple4->addIndexedItem ("mptrk_pid", m_ngch,m_ptrk_pid);
00261         status = m_tuple4->addIndexedItem ("mcost_pid", m_ngch,m_cost_pid);
00262 
00263         status = m_tuple4->addIndexedItem ("numHits",      m_nggneu,m_numHits);    // Total number of hits
00264         status = m_tuple4->addIndexedItem ("secondmoment", m_nggneu,m_secondmoment);
00265         status = m_tuple4->addIndexedItem ("mx",           m_nggneu,m_x);       //  Shower coordinates and errors
00266         status = m_tuple4->addIndexedItem ("my",           m_nggneu,m_y);
00267         status = m_tuple4->addIndexedItem ("mz",           m_nggneu,m_z);
00268         status = m_tuple4->addIndexedItem ("cosemc",       m_nggneu,m_cosemc);   // Shower Counter angles and errors
00269         status = m_tuple4->addIndexedItem ("phiemc",       m_nggneu,m_phiemc);
00270         status = m_tuple4->addIndexedItem ("energy",       m_nggneu,m_energy);  // Total energy observed in Emc
00271         status = m_tuple4->addIndexedItem ("eseed",        m_nggneu,m_eSeed);
00272         status = m_tuple4->addIndexedItem ("me9",          m_nggneu,m_e3x3); 
00273         status = m_tuple4->addIndexedItem ("me25",         m_nggneu,m_e5x5); 
00274         status = m_tuple4->addIndexedItem ("mlat",         m_nggneu,m_lat);
00275         status = m_tuple4->addIndexedItem ("ma20",         m_nggneu,m_a20);
00276         status = m_tuple4->addIndexedItem ("ma42",         m_nggneu,m_a42);  
00277 
00278 
00279       }
00280       else    { 
00281         log << MSG::ERROR << "    Cannot book N-tuple:" << long(m_tuple4) << endmsg;
00282         return StatusCode::FAILURE;
00283       }
00284     }
00285 */
00286   } // test 4C
00287 
00288   //
00289   //--------end of book--------
00290   //
00291 
00292   log << MSG::INFO << "successfully return from initialize()" <<endmsg;
00293   return StatusCode::SUCCESS;
00294 
00295 }


Member Data Documentation

NTuple::Array<double> Ppjrhopi::m_a20 [private]

Definition at line 232 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_a42 [private]

Definition at line 233 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_angle [private]

Definition at line 150 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_b1_tof [private]

Definition at line 210 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_b1_toff_e [private]

Definition at line 200 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_b1_toff_k [private]

Definition at line 203 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_b1_toff_mu [private]

Definition at line 201 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_b1_toff_p [private]

Definition at line 204 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_b1_toff_pi [private]

Definition at line 202 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_b1_tsig_e [private]

Definition at line 205 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_b1_tsig_k [private]

Definition at line 208 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_b1_tsig_mu [private]

Definition at line 206 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_b1_tsig_p [private]

Definition at line 209 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_b1_tsig_pi [private]

Definition at line 207 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_be4cjpsi [private]

Definition at line 57 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_bepi0 [private]

Definition at line 56 of file Ppjrhopi.h.

int Ppjrhopi::m_checkDedx [private]

Definition at line 38 of file Ppjrhopi.h.

Referenced by Ppjrhopi().

int Ppjrhopi::m_checkTof [private]

Definition at line 39 of file Ppjrhopi.h.

Referenced by Ppjrhopi().

NTuple::Item<double> Ppjrhopi::m_chi1 [private]

Definition at line 50 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_chie [private]

Definition at line 158 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_chik [private]

Definition at line 161 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_chikk [private]

Definition at line 101 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_chimu [private]

Definition at line 159 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_chip [private]

Definition at line 162 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_chipi [private]

Definition at line 160 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_cntr_btof1 [private]

Definition at line 191 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_cntr_etof [private]

Definition at line 169 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_cosemc [private]

Definition at line 225 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_cosmumbr [private]

Definition at line 153 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_cosmupbr [private]

Definition at line 152 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_cost_pid [private]

Definition at line 217 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_cosuubr [private]

Definition at line 151 of file Ppjrhopi.h.

double Ppjrhopi::m_cthcut [private]

Definition at line 25 of file Ppjrhopi.h.

Referenced by execute(), and Ppjrhopi().

NTuple::Array<double> Ppjrhopi::m_dedx_pid [private]

Definition at line 212 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_e3x3 [private]

Definition at line 229 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_e5x5 [private]

Definition at line 230 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_ec_tof [private]

Definition at line 188 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_ec_toff_e [private]

Definition at line 178 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_ec_toff_k [private]

Definition at line 181 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_ec_toff_mu [private]

Definition at line 179 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_ec_toff_p [private]

Definition at line 182 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_ec_toff_pi [private]

Definition at line 180 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_ec_tsig_e [private]

Definition at line 183 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_ec_tsig_k [private]

Definition at line 186 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_ec_tsig_mu [private]

Definition at line 184 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_ec_tsig_p [private]

Definition at line 187 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_ec_tsig_pi [private]

Definition at line 185 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_energy [private]

Definition at line 227 of file Ppjrhopi.h.

double Ppjrhopi::m_energyThreshold [private]

Definition at line 28 of file Ppjrhopi.h.

Referenced by execute(), and Ppjrhopi().

NTuple::Array<double> Ppjrhopi::m_eSeed [private]

Definition at line 228 of file Ppjrhopi.h.

NTuple::Item<long> Ppjrhopi::m_gam [private]

Definition at line 142 of file Ppjrhopi.h.

double Ppjrhopi::m_gammaAngCut [private]

Definition at line 29 of file Ppjrhopi.h.

Referenced by execute(), and Ppjrhopi().

NTuple::Item<long> Ppjrhopi::m_gdgam [private]

Definition at line 48 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_ghit [private]

Definition at line 165 of file Ppjrhopi.h.

NTuple::Item<long> Ppjrhopi::m_good [private]

Definition at line 141 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_ipimin [private]

Definition at line 148 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_ipipin [private]

Definition at line 146 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_lat [private]

Definition at line 231 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mf2pi1g1 [private]

Definition at line 59 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mf2pi1g2 [private]

Definition at line 60 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mf2pi1pi0 [private]

Definition at line 61 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mf2pi3g1 [private]

Definition at line 65 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mf2pi3g2 [private]

Definition at line 66 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mf2pi3pi0 [private]

Definition at line 67 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mf2pi4g1 [private]

Definition at line 69 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mf2pi4g2 [private]

Definition at line 70 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mf2pi4pi0 [private]

Definition at line 71 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mp2pi1 [private]

Definition at line 58 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mp2pi3 [private]

Definition at line 64 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mp2pi4 [private]

Definition at line 68 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mp4pi [private]

Definition at line 72 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mp4pig1 [private]

Definition at line 74 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mp4pig2 [private]

Definition at line 75 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpe1 [private]

Definition at line 80 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpe2 [private]

Definition at line 84 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpe3 [private]

Definition at line 88 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpe4 [private]

Definition at line 92 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpeg1 [private]

Definition at line 96 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpeg2 [private]

Definition at line 100 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpi0 [private]

Definition at line 51 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpjjj [private]

Definition at line 55 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mppptot [private]

Definition at line 73 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mprho0 [private]

Definition at line 52 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mprhom [private]

Definition at line 54 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mprhop [private]

Definition at line 53 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpx1 [private]

Definition at line 77 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpx2 [private]

Definition at line 81 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpx3 [private]

Definition at line 85 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpx4 [private]

Definition at line 89 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpxg1 [private]

Definition at line 93 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpxg2 [private]

Definition at line 97 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpy1 [private]

Definition at line 78 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpy2 [private]

Definition at line 82 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpy3 [private]

Definition at line 86 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpy4 [private]

Definition at line 90 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpyg1 [private]

Definition at line 94 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpyg2 [private]

Definition at line 98 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpz1 [private]

Definition at line 79 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpz2 [private]

Definition at line 83 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpz3 [private]

Definition at line 87 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpz4 [private]

Definition at line 91 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpzg1 [private]

Definition at line 95 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mpzg2 [private]

Definition at line 99 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mt2pi2g1 [private]

Definition at line 62 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_mt2pi2g2 [private]

Definition at line 63 of file Ppjrhopi.h.

NTuple::Item<long> Ppjrhopi::m_nch [private]

Definition at line 46 of file Ppjrhopi.h.

NTuple::Item<long> Ppjrhopi::m_ngch [private]

Definition at line 156 of file Ppjrhopi.h.

NTuple::Item<long> Ppjrhopi::m_nggneu [private]

Definition at line 219 of file Ppjrhopi.h.

NTuple::Item<long> Ppjrhopi::m_nneu [private]

Definition at line 47 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_normPH [private]

Definition at line 164 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_numHits [private]

Definition at line 220 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_ph_btof1 [private]

Definition at line 197 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_ph_etof [private]

Definition at line 175 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_phiemc [private]

Definition at line 226 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_phimumbr [private]

Definition at line 155 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_phimupbr [private]

Definition at line 154 of file Ppjrhopi.h.

NTuple::Item<long> Ppjrhopi::m_pidpim [private]

Definition at line 147 of file Ppjrhopi.h.

NTuple::Item<long> Ppjrhopi::m_pidpip [private]

Definition at line 145 of file Ppjrhopi.h.

NTuple::Item<long> Ppjrhopi::m_pim [private]

Definition at line 144 of file Ppjrhopi.h.

NTuple::Item<long> Ppjrhopi::m_pip [private]

Definition at line 143 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_prob_pid [private]

Definition at line 215 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_probPH [private]

Definition at line 163 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_ptot_btof1 [private]

Definition at line 190 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_ptot_etof [private]

Definition at line 168 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_ptrk [private]

Definition at line 157 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_ptrk_pid [private]

Definition at line 216 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_qual_btof1 [private]

Definition at line 199 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_qual_etof [private]

Definition at line 177 of file Ppjrhopi.h.

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

Definition at line 45 of file Ppjrhopi.h.

NTuple::Item<double> Ppjrhopi::m_recpp [private]

Definition at line 49 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_rhit_etof [private]

Definition at line 176 of file Ppjrhopi.h.

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

Definition at line 44 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_secondmoment [private]

Definition at line 221 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_te_btof1 [private]

Definition at line 192 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_te_etof [private]

Definition at line 170 of file Ppjrhopi.h.

int Ppjrhopi::m_test4C [private]

Definition at line 34 of file Ppjrhopi.h.

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

int Ppjrhopi::m_test5C [private]

Definition at line 35 of file Ppjrhopi.h.

Referenced by Ppjrhopi().

NTuple::Array<double> Ppjrhopi::m_thit [private]

Definition at line 166 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_tk_btof1 [private]

Definition at line 195 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_tk_etof [private]

Definition at line 173 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_tmu_btof1 [private]

Definition at line 193 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_tmu_etof [private]

Definition at line 171 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_tof1_pid [private]

Definition at line 213 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_tof2_pid [private]

Definition at line 214 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_tp_btof1 [private]

Definition at line 196 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_tp_etof [private]

Definition at line 174 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_tpi_btof1 [private]

Definition at line 194 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_tpi_etof [private]

Definition at line 172 of file Ppjrhopi.h.

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

Definition at line 43 of file Ppjrhopi.h.

double Ppjrhopi::m_vr0cut [private]

Definition at line 21 of file Ppjrhopi.h.

Referenced by execute(), and Ppjrhopi().

double Ppjrhopi::m_vr1cut [private]

Definition at line 23 of file Ppjrhopi.h.

Referenced by execute(), and Ppjrhopi().

double Ppjrhopi::m_vz0cut [private]

Definition at line 22 of file Ppjrhopi.h.

Referenced by execute(), and Ppjrhopi().

double Ppjrhopi::m_vz1cut [private]

Definition at line 24 of file Ppjrhopi.h.

Referenced by execute(), and Ppjrhopi().

NTuple::Array<double> Ppjrhopi::m_x [private]

Definition at line 222 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_y [private]

Definition at line 223 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_z [private]

Definition at line 224 of file Ppjrhopi.h.

NTuple::Array<double> Ppjrhopi::m_zhit_btof1 [private]

Definition at line 198 of file Ppjrhopi.h.


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