DQARhopi Class Reference

#include <DQARhopi.h>

List of all members.

Public Member Functions

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

Private Attributes

double m_vr0cut
double m_vz0cut
double m_cthcut
double m_energyThreshold
double m_gammaAngCut
int m_test4C
int m_test5C
int m_checkDedx
int m_checkTof
ITHistSvc * m_thsvc
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< double > m_chi1
NTuple::Item< double > m_mpi0
NTuple::Item< double > m_prho0
NTuple::Item< double > m_prhop
NTuple::Item< double > m_prhom
NTuple::Item< long > m_good
NTuple::Item< long > m_gam
NTuple::Item< long > m_pip
NTuple::Item< long > m_pim
NTuple::Item< double > m_2gam
NTuple::Item< double > m_outpi0
NTuple::Item< double > m_cosang
NTuple::Item< double > m_outpip
NTuple::Item< double > m_outpim
NTuple::Item< double > m_enpip
NTuple::Item< double > m_dcpip
NTuple::Item< double > m_enpim
NTuple::Item< double > m_dcpim
NTuple::Item< double > m_pipf
NTuple::Item< double > m_pimf
NTuple::Item< double > m_pi0f
NTuple::Item< long > m_nangecc
NTuple::Array< double > m_dthec
NTuple::Array< double > m_dphic
NTuple::Array< double > m_dangc
NTuple::Array< double > m_mspippim
NTuple::Item< double > m_pmax
NTuple::Item< double > m_ppx
NTuple::Item< double > m_ppy
NTuple::Item< double > m_ppz
NTuple::Item< double > m_costhep
NTuple::Item< double > m_ppxkal
NTuple::Item< double > m_ppykal
NTuple::Item< double > m_ppzkal
NTuple::Item< double > m_mpx
NTuple::Item< double > m_mpy
NTuple::Item< double > m_mpz
NTuple::Item< double > m_costhem
NTuple::Item< double > m_mpxkal
NTuple::Item< double > m_mpykal
NTuple::Item< double > m_mpzkal
NTuple::Item< double > m_vxpin
NTuple::Item< double > m_vypin
NTuple::Item< double > m_vzpin
NTuple::Item< double > m_vrpin
NTuple::Item< double > m_costhepin
NTuple::Item< double > m_vxmin
NTuple::Item< double > m_vymin
NTuple::Item< double > m_vzmin
NTuple::Item< double > m_vrmin
NTuple::Item< double > m_costhemin
NTuple::Item< double > m_vxp
NTuple::Item< double > m_vyp
NTuple::Item< double > m_vzp
NTuple::Item< double > m_vrp
NTuple::Item< double > m_vxm
NTuple::Item< double > m_vym
NTuple::Item< double > m_vzm
NTuple::Item< double > m_vrm
NTuple::Item< double > dangsg
NTuple::Item< double > dthesg
NTuple::Item< double > dphisg
NTuple::Item< double > cosgth1
NTuple::Item< double > cosgth2
NTuple::Item< double > m_chi5
NTuple::Item< double > m_kpi0
NTuple::Item< double > m_kpkm
NTuple::Item< double > m_kpp0
NTuple::Item< double > m_kmp0
NTuple::Item< double > m_pgam2pi1
NTuple::Item< double > m_pgam2pi2
NTuple::Item< double > cosva1
NTuple::Item< double > cosva2
NTuple::Item< double > m_laypi1
NTuple::Item< double > m_hit1
NTuple::Item< double > m_laypi2
NTuple::Item< double > m_hit2
NTuple::Item< double > m_anglepm
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_pnp
NTuple::Item< long > m_pnm
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 10 of file DQARhopi.h.


Constructor & Destructor Documentation

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

Definition at line 63 of file DQARhopi.cxx.

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

00063                                                                   :
00064   Algorithm(name, pSvcLocator) {
00065   
00066   //Declare the properties  
00067   declareProperty("Vr0cut", m_vr0cut=1.0);
00068   declareProperty("Vz0cut", m_vz0cut=5.0);
00069   declareProperty("Vctcut", m_cthcut=0.93);
00070   declareProperty("EnergyThreshold", m_energyThreshold=0.05);
00071   declareProperty("GammaAngCut", m_gammaAngCut=25.0);
00072   declareProperty("Test4C", m_test4C = 1);
00073   declareProperty("Test5C", m_test5C = 1);
00074   declareProperty("CheckDedx", m_checkDedx = 1);
00075   declareProperty("CheckTof",  m_checkTof = 1);
00076 }


Member Function Documentation

StatusCode DQARhopi::execute (  ) 

Definition at line 304 of file DQARhopi.cxx.

References DstEmcShower::a20Moment(), DstEmcShower::a42Moment(), KinematicFit::AddFourMomentum(), TrackPool::AddTrack(), VertexFit::AddVertex(), DstMdcTrack::charge(), DstMdcDedx::chiE(), DstMdcDedx::chiK(), DstMdcDedx::chiMu(), DstMdcDedx::chiP(), DstMdcDedx::chiPi(), KinematicFit::chisq(), cos(), cosva1, cosva2, Bes_Common::DEBUG, DstEmcShower::e3x3(), DstEmcShower::e5x5(), ecms, DstExtTrack::emcPosition(), DstExtTrack::emcVolumeNumber(), DstEmcShower::energy(), calibUtil::ERROR, DstEmcShower::eSeed(), 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(), ParticleID::instance(), KinematicFit::instance(), VertexFit::instance(), IVertexDbSvc::isVertexValid(), ganga-rec::j, DstEmcShower::latMoment(), m_2gam, m_a20, m_a42, m_anglepm, m_b1_tof, m_b1_toff_e, m_b1_toff_k, m_b1_toff_mu, m_b1_toff_p, m_b1_toff_pi, m_b1_tsig_e, m_b1_tsig_k, m_b1_tsig_mu, m_b1_tsig_p, m_b1_tsig_pi, m_chi1, m_chi5, m_chie, m_chik, m_chimu, m_chip, m_chipi, m_cntr_btof1, m_cntr_etof, m_cosang, m_cosemc, m_cost_pid, m_costhem, m_costhemin, m_costhep, m_costhepin, m_cthcut, m_dangc, m_dcpim, m_dcpip, m_dedx_pid, m_dphic, m_dthec, m_e3x3, m_e5x5, m_ec_tof, m_ec_toff_e, m_ec_toff_k, m_ec_toff_mu, m_ec_toff_p, m_ec_toff_pi, m_ec_tsig_e, m_ec_tsig_k, m_ec_tsig_mu, m_ec_tsig_p, m_ec_tsig_pi, m_energy, m_energyThreshold, m_enpim, m_enpip, m_eSeed, m_gam, m_gammaAngCut, m_ghit, m_good, m_hit1, m_hit2, m_kmp0, m_kpi0, m_kpkm, m_kpp0, m_lat, m_laypi1, m_laypi2, m_mpi0, m_mpx, m_mpxkal, m_mpy, m_mpykal, m_mpz, m_mpzkal, m_mspippim, m_nangecc, m_nch, m_ngch, m_nggneu, m_nneu, m_normPH, m_numHits, m_outpi0, m_outpim, m_outpip, m_pgam2pi1, m_pgam2pi2, m_ph_btof1, m_ph_etof, m_phiemc, m_pi0f, m_pim, m_pimf, m_pip, m_pipf, m_pmax, m_pnm, m_pnp, m_ppx, m_ppxkal, m_ppy, m_ppykal, m_ppz, m_ppzkal, m_prho0, m_prhom, m_prhop, m_prob_pid, m_probPH, m_ptot_btof1, m_ptot_etof, m_ptrk, m_ptrk_pid, m_qual_btof1, m_qual_etof, m_rec, m_rhit_etof, m_run, m_secondmoment, m_te_btof1, m_te_etof, m_thit, m_thsvc, m_tk_btof1, m_tk_etof, m_tmu_btof1, m_tmu_etof, m_tof1_pid, m_tof2_pid, m_tp_btof1, m_tp_etof, m_tpi_btof1, m_tpi_etof, m_tuple4, m_vr0cut, m_vrm, m_vrmin, m_vrp, m_vrpin, m_vxm, m_vxmin, m_vxp, m_vxpin, m_vym, m_vymin, m_vyp, m_vypin, m_vz0cut, m_vzm, m_vzmin, m_vzp, m_vzpin, m_x, m_y, m_z, m_zhit_btof1, mk, mpi, msgSvc(), DstMdcDedx::normPH(), DstMdcDedx::numGoodHits(), DstEmcShower::numHits(), DstMucTrack::numHits(), DstMucTrack::numLayers(), DstMdcDedx::numTotalHits(), DstMdcKalTrack::p(), DstMdcTrack::p(), KinematicFit::pfit(), DstEmcShower::phi(), phi0, pi, pid, DstMdcKalTrack::pion, IVertexDbSvc::PrimaryVertex(), DstMdcDedx::probPH(), DstMdcTrack::px(), DstMdcKalTrack::px(), DstMdcTrack::py(), DstMdcKalTrack::py(), DstMdcTrack::pz(), DstMdcKalTrack::pz(), DstEmcShower::secondMoment(), KinematicFit::setDynamicerror(), VertexParameter::setEvx(), DstMdcKalTrack::setPidType(), VertexParameter::setVx(), IVertexDbSvc::SigmaPrimaryVertex(), sin(), VertexFit::Swim(), DstMdcKalTrack::theta(), DstEmcShower::theta(), DstMdcTrack::theta(), u_cms, VertexFit::wtrk(), DstMdcKalTrack::x(), DstEmcShower::x(), DstMdcTrack::x(), DstMdcKalTrack::y(), DstEmcShower::y(), DstMdcTrack::y(), DstMdcKalTrack::z(), DstEmcShower::z(), and DstMdcTrack::z().

00304                              {
00305   
00306 //  std::cout << "execute()" << std::endl;
00307 
00308   MsgStream log(msgSvc(), name());
00309   log << MSG::INFO << "in execute()" << endreq;
00310 
00311     setFilterPassed(false);
00312 
00313   SmartDataPtr<Event::EventHeader> eventHeader(eventSvc(),"/Event/EventHeader");
00314   int run=eventHeader->runNumber();
00315   int event=eventHeader->eventNumber();
00316   log << MSG::DEBUG <<"run, evtnum = "
00317       << run << " , "
00318       << event <<endreq;
00319 
00320   m_run = eventHeader->runNumber();  
00321   m_rec = eventHeader->eventNumber();
00322 
00323 //  cout<<"event "<<event<<endl;
00324   Ncut0++;
00325   SmartDataPtr<EvtRecEvent> evtRecEvent(eventSvc(), EventModel::EvtRec::EvtRecEvent);
00326     log << MSG::INFO << "get event tag OK" << endreq;
00327     log << MSG::DEBUG <<"ncharg, nneu, tottks = " 
00328       << evtRecEvent->totalCharged() << " , "
00329       << evtRecEvent->totalNeutral() << " , "
00330       << evtRecEvent->totalTracks() <<endreq;
00331 
00332   m_nch  = evtRecEvent->totalCharged();
00333   m_nneu = evtRecEvent->totalNeutral();
00334 
00335   SmartDataPtr<EvtRecTrackCol> evtRecTrkCol(eventSvc(), EventModel::EvtRec::EvtRecTrackCol);
00336 
00337   //
00338   // check x0, y0, z0, r0
00339   // suggest cut: |z0|<5 && r0<1
00340   //
00341   Vint iGood, ipip, ipim, ipnp,ipnm;
00342   iGood.clear();
00343   ipip.clear();
00344   ipim.clear();
00345   ipnp.clear();
00346   ipnm.clear();
00347   Vp4 ppip, ppim , ppnp, ppnm;
00348   ppip.clear();
00349   ppim.clear();
00350   ppnp.clear();
00351   ppnm.clear();
00352 
00353   Hep3Vector xorigin(0,0,0);
00354  
00355 
00356   //if (m_reader.isRunNumberValid(runNo)) {
00357    IVertexDbSvc*  vtxsvc;
00358   Gaudi::svcLocator()->service("VertexDbSvc", vtxsvc);
00359   if(vtxsvc->isVertexValid()){ 
00360   double* dbv = vtxsvc->PrimaryVertex();
00361   double*  vv = vtxsvc->SigmaPrimaryVertex();
00362     xorigin.setX(dbv[0]);
00363     xorigin.setY(dbv[1]);
00364     xorigin.setZ(dbv[2]);
00365   }
00366 
00367   int nCharge = 0;
00368   for(int i = 0; i < evtRecEvent->totalCharged(); i++){
00369     EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + i;
00370     if(!(*itTrk)->isMdcTrackValid()) continue;
00371     if (!(*itTrk)->isMdcKalTrackValid()) continue;
00372     RecMdcTrack *mdcTrk = (*itTrk)->mdcTrack();
00373     RecMdcKalTrack *mdcKalTrk = (*itTrk)->mdcKalTrack();    
00374 
00375     double pch =mdcTrk->p();
00376     double x0  =mdcTrk->x();
00377     double y0  =mdcTrk->y();
00378     double z0  =mdcTrk->z();
00379     double phi0=mdcTrk->helix(1);
00380     double xv=xorigin.x();
00381     double yv=xorigin.y();
00382     double Rxy=fabs((x0-xv)*cos(phi0)+(y0-yv)*sin(phi0));
00383     double m_vx0 = x0;
00384     double m_vy0 = y0;
00385     double m_vz0 = z0-xorigin.z();
00386     double m_vr0 = Rxy;
00387     double m_Vct=cos(mdcTrk->theta());
00388 //    m_tuple1->write();
00389     if(fabs(m_vz0) >= m_vz0cut) continue;
00390     if(m_vr0 >= m_vr0cut) continue;
00391     if(fabs(m_Vct)>=m_cthcut) continue;
00392 
00393     iGood.push_back((*itTrk)->trackId());
00394     nCharge += mdcTrk->charge();
00395 
00396   }
00397   
00398   //
00399   // Finish Good Charged Track Selection
00400   //
00401   int nGood = iGood.size();
00402   log << MSG::DEBUG << "ngood, totcharge = " << nGood << " , " << nCharge << endreq;
00403   if((nGood != 2)||(nCharge!=0)){
00404     return StatusCode::SUCCESS;
00405   }
00406   Ncut1++;
00407 
00408   Vint iGam;
00409   iGam.clear();
00410   for(int i = evtRecEvent->totalCharged(); i< evtRecEvent->totalTracks(); i++) {
00411     EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + i;
00412     if(!(*itTrk)->isEmcShowerValid()) continue;
00413     RecEmcShower *emcTrk = (*itTrk)->emcShower();
00414     Hep3Vector emcpos(emcTrk->x(), emcTrk->y(), emcTrk->z());
00415     // find the nearest charged track
00416     double dthe = 200.;
00417     double dphi = 200.;
00418     double dang = 200.; 
00419     for(int j = 0; j < evtRecEvent->totalCharged(); j++) {
00420       EvtRecTrackIterator jtTrk = evtRecTrkCol->begin() + j;
00421       if(!(*jtTrk)->isExtTrackValid()) continue;
00422       RecExtTrack *extTrk = (*jtTrk)->extTrack();
00423       if(extTrk->emcVolumeNumber() == -1) continue;
00424       Hep3Vector extpos = extTrk->emcPosition();
00425       //      double ctht = extpos.cosTheta(emcpos);
00426       double angd = extpos.angle(emcpos);
00427       double thed = extpos.theta() - emcpos.theta();
00428       double phid = extpos.deltaPhi(emcpos);
00429       thed = fmod(thed+CLHEP::twopi+CLHEP::twopi+pi, CLHEP::twopi) - CLHEP::pi;
00430       phid = fmod(phid+CLHEP::twopi+CLHEP::twopi+pi, CLHEP::twopi) - CLHEP::pi;
00431 
00432       if(fabs(thed) < fabs(dthe)) dthe = thed;
00433       if(fabs(phid) < fabs(dphi)) dphi = phid;
00434       if(angd < dang) dang = angd;
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     double m_dthe = dthe;
00442     double m_dphi = dphi;
00443     double m_dang = dang;
00444     double m_eraw = eraw;
00445 //    m_tuple2->write();
00446     if(eraw < m_energyThreshold) continue;
00447     if(dang < m_gammaAngCut) continue;
00448     //
00449     // good photon cut will be set here
00450     //
00451     iGam.push_back((*itTrk)->trackId());
00452   }
00453   
00454   //
00455   // Finish Good Photon Selection
00456   //
00457   int nGam = iGam.size();
00458 
00459   log << MSG::DEBUG << "num Good Photon " << nGam  << " , " <<evtRecEvent->totalNeutral()<<endreq;
00460   if(nGam<2){
00461     return StatusCode::SUCCESS;
00462   }
00463   Ncut2++;
00464 
00465 
00466   //
00467   // Assign 4-momentum to each photon
00468   // 
00469 
00470   Vp4 pGam;
00471   pGam.clear();
00472   for(int i = 0; i < nGam; i++) {
00473     EvtRecTrackIterator itTrk = evtRecTrkCol->begin() + iGam[i]; 
00474     RecEmcShower* emcTrk = (*itTrk)->emcShower();
00475     double eraw = emcTrk->energy();
00476     double phi = emcTrk->phi();
00477     double the = emcTrk->theta();
00478     HepLorentzVector ptrk;
00479     ptrk.setPx(eraw*sin(the)*cos(phi));
00480     ptrk.setPy(eraw*sin(the)*sin(phi));
00481     ptrk.setPz(eraw*cos(the));
00482     ptrk.setE(eraw);
00483 
00484 //    ptrk = ptrk.boost(-0.011,0,0);// boost to cms
00485 
00486     pGam.push_back(ptrk);
00487   }
00488 
00489   log << MSG::DEBUG << "liuf1 Good Photon " <<endreq;
00490 
00491 
00492   for(int i = 0; i < nGood; i++) {//for rhopi without PID
00493     EvtRecTrackIterator itTrk = evtRecTrkCol->begin() + iGood[i];
00494     if(!(*itTrk)->isMdcTrackValid()) continue;
00495     if (!(*itTrk)->isMdcKalTrackValid()) continue;
00496     RecMdcTrack* mdcTrk = (*itTrk)->mdcTrack(); 
00497     RecMdcKalTrack* mdcKalTrk = (*itTrk)->mdcKalTrack();
00498     RecMdcKalTrack::setPidType  (RecMdcKalTrack::pion);
00499 
00500     if(mdcTrk->charge() >0) {
00501       ipip.push_back(iGood[i]);
00502       HepLorentzVector ptrk;
00503       ptrk.setPx(mdcKalTrk->px());
00504       ptrk.setPy(mdcKalTrk->py());
00505       ptrk.setPz(mdcKalTrk->pz());
00506       double p3 = ptrk.mag();
00507       ptrk.setE(sqrt(p3*p3+mpi*mpi));
00508       ppip.push_back(ptrk);
00509     } else {
00510       ipim.push_back(iGood[i]);
00511       HepLorentzVector ptrk;
00512       ptrk.setPx(mdcKalTrk->px());
00513       ptrk.setPy(mdcKalTrk->py());
00514       ptrk.setPz(mdcKalTrk->pz());
00515       double p3 = ptrk.mag();
00516       ptrk.setE(sqrt(p3*p3+mpi*mpi));
00517       ppim.push_back(ptrk);
00518     }
00519   }// without PID
00520 
00521   int npip = ipip.size();
00522   int npim = ipim.size();
00523   log << MSG::DEBUG << "num of pion "<< ipip.size()<<","<<ipim.size()<<endreq;
00524   Ncut3++;
00525 
00526 
00527 
00528   //***********************************************//
00529   // the angle between the two charged tracks      //
00530   //***********************************************//
00531 
00532     int langcc=0;
00533     double dthec = 200.; 
00534     double dphic = 200.; 
00535     double dangc = 200.; 
00536   for(int i=0; i < npip; i++) {
00537     EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + ipip[i] ;
00538     RecMdcTrack* mdcTrk1 = (*itTrk)->mdcTrack();
00539     RecMdcKalTrack* mdcKalTrk1 = (*itTrk)->mdcKalTrack();
00540     Hep3Vector emcpos(ppip[i].px(), ppip[i].py(), ppip[i].pz());
00541    
00542     for(int j = 0; j < npim; j++) {
00543       EvtRecTrackIterator jtTrk = evtRecTrkCol->begin() + ipim[j];
00544       RecMdcTrack* mdcTrk2 = (*jtTrk)->mdcTrack();
00545       RecMdcKalTrack* mdcKalTrk2 = (*jtTrk)->mdcKalTrack();
00546 
00547       HepLorentzVector pippim=ppip[i]+ppim[j];
00548 
00549       Hep3Vector extpos(ppim[j].px(), ppim[j].py(), ppim[j].pz());
00550        
00551       double angd = extpos.angle(emcpos);
00552       double thed = extpos.theta() - emcpos.theta();
00553       double phid = extpos.deltaPhi(emcpos);
00554       thed = fmod(thed+CLHEP::twopi+CLHEP::twopi+pi, CLHEP::twopi) - CLHEP::pi;
00555       phid = fmod(phid+CLHEP::twopi+CLHEP::twopi+pi, CLHEP::twopi) - CLHEP::pi;
00556 
00557       m_dthec[langcc] = thed * 180 / (CLHEP::pi);
00558       m_dphic[langcc] = phid * 180 / (CLHEP::pi);
00559       m_dangc[langcc] = angd * 180 / (CLHEP::pi);
00560       m_mspippim[langcc] =pippim.m();
00561       langcc++;
00562     }
00563    }
00564       m_nangecc=langcc;
00565 
00566   //
00567   // Loop each gamma pair, check ppi0 and pTot 
00568   //
00569 
00570   double m_m2gg,m_momentpi0;
00571   HepLorentzVector pTot,p2g;
00572 
00573   log << MSG::DEBUG << "liuf2 Good Photon " <<langcc<<endreq;
00574     //******************************************************//
00575     //   asign the momentum of MDC and KALFIT               //
00576     //   the deposite energy of EMC  for charged tracks     //
00577     //******************************************************// 
00578     double m_momentpip,m_momentpim,extmot1,extmot2;
00579     double emcTg1=0.0;
00580     double emcTg2=0.0;
00581     double nlaypi1=0;
00582     double nhit1=0;
00583     double nlaypi2=0;
00584     double nhit2=0;
00585 
00586       EvtRecTrackIterator  itTrk11 = evtRecTrkCol->begin() + ipip[0];
00587       RecMdcTrack* mdcTrk11 = (*itTrk11)->mdcTrack();
00588       RecMdcKalTrack* mdcKalTrk11 = (*itTrk11)->mdcKalTrack();
00589       RecEmcShower* emcTrk11 = (*itTrk11)->emcShower();
00590       RecMucTrack *mucTrk11=(*itTrk11)->mucTrack();
00591       double phi01=mdcTrk11->helix(1);
00592  
00593       EvtRecTrackIterator  itTrk12 = evtRecTrkCol->begin() + ipim[0];
00594       RecMdcTrack* mdcTrk12 = (*itTrk12)->mdcTrack();
00595       RecMdcKalTrack* mdcKalTrk12 = (*itTrk12)->mdcKalTrack();
00596       RecEmcShower* emcTrk12 = (*itTrk12)->emcShower();
00597       RecMucTrack *mucTrk12=(*itTrk12)->mucTrack();
00598       double phi02=mdcTrk12->helix(1);
00599 
00600     m_vxpin = mdcTrk11->x();
00601     m_vypin = mdcTrk11->y();
00602     m_vzpin = mdcTrk11->z()-xorigin.z();
00603     m_vrpin = fabs((mdcTrk11->x()-xorigin.x())*cos(phi01)+(mdcTrk11->y()-xorigin.y())*sin(phi01));
00604     m_costhepin =cos(mdcTrk11->theta());
00605 
00606     m_momentpip=mdcTrk11->p();
00607     m_ppx  =mdcTrk11->px();
00608     m_ppy  =mdcTrk11->py();
00609     m_ppz  =mdcTrk11->pz();
00610 
00611     m_vxp = mdcKalTrk11->x();
00612     m_vyp = mdcKalTrk11->y();
00613     m_vzp = mdcKalTrk11->z()-xorigin.z();
00614     m_vrp = fabs((mdcKalTrk11->x()-xorigin.x())*cos(phi01)+(mdcKalTrk11->y()-xorigin.y())*sin(phi01));
00615     m_costhep =cos(mdcKalTrk11->theta());
00616 
00617     extmot1=mdcKalTrk11->p();
00618     m_ppxkal   =mdcKalTrk11->px();
00619     m_ppykal   =mdcKalTrk11->py();
00620     m_ppzkal   =mdcKalTrk11->pz();
00621 
00622     m_vxmin = mdcTrk12->x();  
00623     m_vymin = mdcTrk12->y();  
00624     m_vzmin = mdcTrk12->z();  
00625     m_vrmin = fabs((mdcTrk12->x()-xorigin.x())*cos(phi02)+(mdcTrk12->y()-xorigin.y())*sin(phi02));
00626     m_costhemin =cos(mdcTrk12->theta());
00627 
00628     m_momentpim=mdcTrk12->p();
00629     m_mpx  =mdcTrk12->px();
00630     m_mpy  =mdcTrk12->py();
00631     m_mpz  =mdcTrk12->pz();
00632 
00633     m_vxm = mdcKalTrk12->x();
00634     m_vym = mdcKalTrk12->y();
00635     m_vzm = mdcKalTrk12->z();  
00636     m_vrm = fabs((mdcKalTrk12->x()-xorigin.x())*cos(phi02)+(mdcKalTrk12->y()-xorigin.y())*sin(phi02));
00637     m_costhem =cos(mdcKalTrk12->theta());
00638 
00639     extmot2    =mdcKalTrk12->p();
00640     m_mpxkal   =mdcKalTrk12->px();
00641     m_mpykal   =mdcKalTrk12->py();
00642     m_mpzkal   =mdcKalTrk12->pz();
00643 
00644     if((*itTrk11)->isEmcShowerValid()){
00645     emcTg1 = emcTrk11->energy();
00646     }
00647     if((*itTrk12)->isEmcShowerValid()){
00648     emcTg2 = emcTrk12->energy();
00649     }
00650     if((*itTrk11)->isMucTrackValid()){
00651     nlaypi1=mucTrk11->numLayers();
00652     nhit1  =mucTrk11->numHits();
00653     }
00654     if((*itTrk12)->isMucTrackValid()){
00655     nlaypi2=mucTrk12->numLayers();
00656     nhit2  =mucTrk12->numHits();  
00657     }
00658 
00659     m_laypi1=nlaypi1;
00660     m_hit1  =nhit1;  
00661     m_laypi2=nlaypi2;
00662     m_hit2  =nhit2;  
00663 
00664   log << MSG::DEBUG << "liuf3 Good Photon " << ipim[0] <<endreq;
00665 
00666   RecMdcKalTrack *pipTrk = (*(evtRecTrkCol->begin()+ipip[0]))->mdcKalTrack();
00667   RecMdcKalTrack *pimTrk = (*(evtRecTrkCol->begin()+ipim[0]))->mdcKalTrack();
00668 
00669   log << MSG::DEBUG << "liuf4 Good Photon "  <<endreq;
00670 
00671   WTrackParameter wvpipTrk, wvpimTrk,wvkpTrk, wvkmTrk;
00672   wvpipTrk = WTrackParameter(mpi, pipTrk->getZHelix(), pipTrk->getZError());
00673   wvpimTrk = WTrackParameter(mpi, pimTrk->getZHelix(), pimTrk->getZError());
00674 
00675   wvkpTrk = WTrackParameter(mk, pipTrk->getZHelixK(), pipTrk->getZErrorK());//kaon
00676   wvkmTrk = WTrackParameter(mk, pimTrk->getZHelixK(), pimTrk->getZErrorK());//kaon
00677 
00678 /* Default is pion, for other particles:
00679   wvppTrk = WTrackParameter(mp, pipTrk->getZHelixP(), pipTrk->getZErrorP());//proton
00680   wvmupTrk = WTrackParameter(mmu, pipTrk->getZHelixMu(), pipTrk->getZErrorMu());//muon
00681   wvepTrk = WTrackParameter(me, pipTrk->getZHelixE(), pipTrk->getZErrorE());//electron
00682   wvkpTrk = WTrackParameter(mk, pipTrk->getZHelixK(), pipTrk->getZErrorK());//kaon
00683 */
00684   //
00685   //    Test vertex fit
00686   //
00687 
00688   HepPoint3D vx(0., 0., 0.);
00689   HepSymMatrix Evx(3, 0);
00690   double bx = 1E+6;
00691   double by = 1E+6;
00692   double bz = 1E+6;
00693   Evx[0][0] = bx*bx;
00694   Evx[1][1] = by*by;
00695   Evx[2][2] = bz*bz;
00696 
00697   VertexParameter vxpar;
00698   vxpar.setVx(vx);
00699   vxpar.setEvx(Evx);
00700   
00701   //****************************************************//
00702   //    Test vertex fit                                 //
00703   //****************************************************//
00704 
00705   VertexFit* vtxfit = VertexFit::instance();
00706 
00707   //****************************************************//
00708   //   if the charged particle is kaon                  //
00709   //****************************************************//
00710     double chi5=9999.0;
00711     double jkpi0=-0.5;
00712     double jkpkm=0.0;
00713     double jkpp0=0.0;
00714     double jkmp0=0.0;  
00715   vtxfit->init();
00716   vtxfit->AddTrack(0,  wvkpTrk);
00717   vtxfit->AddTrack(1,  wvkmTrk);
00718   vtxfit->AddVertex(0, vxpar,0, 1);
00719   if(vtxfit->Fit(0)) {
00720   vtxfit->Swim(0);  
00721   WTrackParameter wkp = vtxfit->wtrk(0);
00722   WTrackParameter wkm = vtxfit->wtrk(1);
00723 
00724   KinematicFit * kmfit = KinematicFit::instance();
00725 
00726   //
00727   //  Apply Kinematic 4C fit
00728   // 
00729 
00730     double chisq = 9999.;
00731     for(int i = 0; i < nGam-1; i++) {
00732       RecEmcShower *g1Trk = (*(evtRecTrkCol->begin()+iGam[i]))->emcShower();
00733       for(int j = i+1; j < nGam; j++) {
00734         RecEmcShower *g2Trk = (*(evtRecTrkCol->begin()+iGam[j]))->emcShower();
00735         kmfit->init();
00736         kmfit->setDynamicerror(1);
00737         kmfit->AddTrack(0, wkp);
00738         kmfit->AddTrack(1, wkm);
00739         kmfit->AddTrack(2, 0.0, g1Trk);
00740         kmfit->AddTrack(3, 0.0, g2Trk);
00741         kmfit->AddFourMomentum(0, ecms);
00742         bool oksq = kmfit->Fit();
00743         if(oksq) {
00744           double chi2 = kmfit->chisq();
00745           if(chi2 < chi5) {
00746         HepLorentzVector kpi0 = kmfit->pfit(2) + kmfit->pfit(3);
00747         HepLorentzVector kpkm = kmfit->pfit(0) + kmfit->pfit(1);
00748         HepLorentzVector kpp0 = kmfit->pfit(0) + kpi0;
00749         HepLorentzVector kmp0 = kmfit->pfit(1) + kpi0;
00750         chi5 = kmfit->chisq();
00751         jkpi0 = kpi0.m();
00752         jkpkm= kpkm.m();
00753         jkpp0= kpp0.m();
00754         jkmp0= kmp0.m();
00755           }
00756         }
00757       }
00758     }
00759     } // vetex is true
00760 
00761   //****************************************************//
00762   //   if the charged particles are pions for real      //
00763   //****************************************************//
00764 
00765   vtxfit->init();
00766   vtxfit->AddTrack(0,  wvpipTrk);
00767   vtxfit->AddTrack(1,  wvpimTrk);
00768   vtxfit->AddVertex(0, vxpar,0, 1);
00769   if(!vtxfit->Fit(0)) return SUCCESS;
00770   vtxfit->Swim(0);
00771   
00772   WTrackParameter wpip = vtxfit->wtrk(0);
00773   WTrackParameter wpim = vtxfit->wtrk(1);
00774 
00775   log << MSG::DEBUG << "liuf5 Good Photon " <<endreq;
00776 
00777   KinematicFit * kmfit = KinematicFit::instance();
00778 
00779   //
00780   //  Apply Kinematic 4C fit
00781   // 
00782 
00783     double chisq = 9999.;
00784     int ig1 = -1;
00785     int ig2 = -1;
00786     HepLorentzVector gg1,gg2;    
00787     for(int i = 0; i < nGam-1; i++) {
00788       RecEmcShower *g1Trk = (*(evtRecTrkCol->begin()+iGam[i]))->emcShower();
00789       for(int j = i+1; j < nGam; j++) {
00790         RecEmcShower *g2Trk = (*(evtRecTrkCol->begin()+iGam[j]))->emcShower();
00791         kmfit->init();
00792         kmfit->setDynamicerror(1);
00793         kmfit->AddTrack(0, wpip);
00794         kmfit->AddTrack(1, wpim);
00795         kmfit->AddTrack(2, 0.0, g1Trk);
00796         kmfit->AddTrack(3, 0.0, g2Trk);
00797         kmfit->AddFourMomentum(0, ecms);
00798         bool oksq = kmfit->Fit();
00799         if(oksq) {
00800           double chi2 = kmfit->chisq();
00801           if(chi2 < chisq) {
00802             chisq = chi2;
00803             ig1 = iGam[i];
00804             ig2 = iGam[j];
00805             gg1 = pGam[i];
00806             gg2 = pGam[j];
00807           }
00808         }
00809       }
00810     }
00811     
00812       p2g = gg1 + gg2;
00813       m_pmax=gg1.e()>gg2.e()?gg1.e():gg2.e();
00814       m_m2gg = p2g.m();
00815       m_cosang=(gg1.e()-gg2.e())/p2g.rho();
00816       m_momentpi0=sqrt(p2g.px()*p2g.px()+p2g.py()*p2g.py()+p2g.pz()*p2g.pz());  
00817         log << MSG::DEBUG << " chisq for 4c " << chisq <<endreq; 
00818     if(chisq > 200) {
00819        return StatusCode::SUCCESS; 
00820       }
00821 
00822 // select charge track and nneu track
00823   Vint jGood;
00824   jGood.clear();
00825   jGood.push_back(ipip[0]);  
00826   jGood.push_back(ipim[0]);
00827   m_ngch = jGood.size();
00828 
00829   Vint jGgam;
00830   jGgam.clear();
00831   jGgam.push_back(ig1);
00832   jGgam.push_back(ig2);
00833   m_nggneu=jGgam.size();
00834 
00835      HepLorentzVector ppip1=ppip[0];
00836      HepLorentzVector ppim1=ppim[0];
00837 
00838      HepLorentzVector Ppipboost = ppip1.boost(u_cms);
00839      HepLorentzVector Ppimboost = ppim1.boost(u_cms);
00840      Hep3Vector p3pi1 = Ppipboost.vect();          //pi1
00841      Hep3Vector p3pi2 = Ppimboost.vect();         //pi2   
00842      m_anglepm   = (p3pi1.angle(p3pi2))* 180 / (CLHEP::pi);     
00843  
00844 //*******************************************************//
00845 
00846       RecEmcShower *g1Trk = (*(evtRecTrkCol->begin()+ig1))->emcShower();
00847       RecEmcShower *g2Trk = (*(evtRecTrkCol->begin()+ig2))->emcShower();
00848       kmfit->init();
00849       kmfit->setDynamicerror(1);
00850       kmfit->AddTrack(0, wpip);
00851       kmfit->AddTrack(1, wpim);
00852       kmfit->AddTrack(2, 0.0, g1Trk);
00853       kmfit->AddTrack(3, 0.0, g2Trk);
00854       kmfit->AddFourMomentum(0, ecms);
00855       bool oksq = kmfit->Fit();
00856       if(!oksq) return SUCCESS;
00857 
00858         HepLorentzVector ppi0 = kmfit->pfit(2) + kmfit->pfit(3);
00859         HepLorentzVector prho0 = kmfit->pfit(0) + kmfit->pfit(1);
00860         HepLorentzVector prhop = kmfit->pfit(0) + ppi0;
00861         HepLorentzVector prhom = kmfit->pfit(1) + ppi0;
00862         HepLorentzVector pgam2pi1 = prho0 + kmfit->pfit(2);
00863         HepLorentzVector pgam2pi2 = prho0 + kmfit->pfit(3);
00864         HepLorentzVector pgam11 =kmfit->pfit(2);
00865         HepLorentzVector pgam12 =kmfit->pfit(3);
00866 
00867 /*
00868         HepLorentzVector ppi0_a=ppi0;
00869         HepLorentzVector pgam11_a =pgam11;
00870         HepLorentzVector pgam12_a =pgam12;
00871 
00872         Hep3Vector pi0_cms = -ppi0_a.boostVector();
00873         HepLorentzVector pgam1 = pgam11_a.boost(pi0_cms);
00874         HepLorentzVector pgam2 = pgam12_a.boost(pi0_cms);
00875 */
00876         m_chi1 = kmfit->chisq();
00877         m_mpi0 = ppi0.m();
00878         m_prho0= prho0.m();
00879         m_prhop= prhop.m();
00880         m_prhom= prhom.m();
00881         m_good = nGood;
00882         m_gam  = nGam;
00883 
00884         m_pip  = npip;
00885         m_pim  = npim;
00886         m_2gam = m_m2gg;
00887         m_outpi0=m_momentpi0;
00888         m_outpip=m_momentpip;
00889         m_outpim=m_momentpim;
00890         m_enpip =emcTg1;
00891         m_dcpip =extmot1;
00892         m_enpim =emcTg2;
00893         m_dcpim =extmot2;
00894         m_pipf=kmfit->pfit(0).rho();
00895         m_pimf=kmfit->pfit(1).rho();
00896         m_pi0f=ppi0.rho();
00897 
00898         m_chi5=chi5;
00899         m_kpi0=jkpi0;
00900         m_kpkm=jkpkm;
00901         m_kpp0=jkpp0;
00902         m_kmp0=jkmp0;
00903         m_pgam2pi1=pgam2pi1.m();
00904         m_pgam2pi2=pgam2pi2.m();
00905         cosva1=kmfit->pfit(2).rho();
00906         cosva2=kmfit->pfit(3).rho();
00907 //        m_pe1   =pe1;
00908 //        m_pe2   =pe2;
00909 
00910 //
00911 //          fill information of dedx and tof
00912 //
00913 
00914   //
00915   // check dedx infomation
00916   //
00917 
00918     for(int ii = 0; ii < m_ngch; ii++) {
00919 // dedx
00920       m_ptrk[ii] = 9999.0;
00921       m_chie[ii] = 9999.0;
00922       m_chimu[ii] = 9999.0;
00923       m_chipi[ii] = 9999.0;
00924       m_chik[ii] = 9999.0;
00925       m_chip[ii] = 9999.0;
00926       m_ghit[ii] = 9999.0;
00927       m_thit[ii] = 9999.0;
00928       m_probPH[ii] = 9999.0;
00929       m_normPH[ii] = 9999.0;
00930 
00931 //endtof
00932           m_cntr_etof[ii] = 9999.0;
00933           m_ptot_etof[ii] = 9999.0;
00934           m_ph_etof[ii]   = 9999.0;
00935           m_rhit_etof[ii] = 9999.0;
00936           m_qual_etof[ii] = 9999.0;
00937           m_te_etof[ii]   = 9999.0;
00938           m_tmu_etof[ii]  = 9999.0;
00939           m_tpi_etof[ii]  = 9999.0;
00940           m_tk_etof[ii]   = 9999.0;
00941           m_tp_etof[ii]   = 9999.0;
00942           m_ec_tof[ii]    =  9999.0;
00943           m_ec_toff_e[ii]   = 9999.0;
00944           m_ec_toff_mu[ii]  = 9999.0;
00945           m_ec_toff_pi[ii]  = 9999.0;
00946           m_ec_toff_k[ii]   = 9999.0;
00947           m_ec_toff_p[ii]   = 9999.0;
00948           m_ec_tsig_e[ii]   = 9999.0;
00949           m_ec_tsig_mu[ii]  = 9999.0;
00950           m_ec_tsig_pi[ii]  = 9999.0;
00951           m_ec_tsig_k[ii]   = 9999.0;
00952           m_ec_tsig_p[ii]   = 9999.0;
00953 
00954 // barrel tof
00955           m_cntr_btof1[ii]  = 9999.0;
00956           m_ptot_btof1[ii]  = 9999.0;
00957           m_ph_btof1[ii]    = 9999.0;
00958           m_zhit_btof1[ii]  = 9999.0;
00959           m_qual_btof1[ii]  = 9999.0;
00960           m_te_btof1[ii]    = 9999.0;
00961           m_tmu_btof1[ii]   = 9999.0;
00962           m_tpi_btof1[ii]   = 9999.0;
00963           m_tk_btof1[ii]    = 9999.0;
00964           m_tp_btof1[ii]    = 9999.0;
00965           m_b1_tof[ii]      = 9999.0;
00966           m_b1_toff_e[ii]   = 9999.0;
00967           m_b1_toff_mu[ii]  = 9999.0;
00968           m_b1_toff_pi[ii]  = 9999.0;
00969           m_b1_toff_k[ii]   = 9999.0;
00970           m_b1_toff_p[ii]   = 9999.0;
00971           m_b1_tsig_e[ii]   = 9999.0;
00972           m_b1_tsig_mu[ii]  = 9999.0;
00973           m_b1_tsig_pi[ii]  = 9999.0;
00974           m_b1_tsig_k[ii]   = 9999.0;
00975           m_b1_tsig_p[ii]   = 9999.0;
00976 //pid
00977           m_dedx_pid[ii] = 9999.0;
00978           m_tof1_pid[ii] = 9999.0;
00979           m_tof2_pid[ii] = 9999.0;
00980           m_prob_pid[ii] = 9999.0; 
00981           m_ptrk_pid[ii] = 9999.0;  
00982           m_cost_pid[ii] = 9999.0;
00983        }
00984 
00985 
00986       int  indx0=0;
00987       for(int i = 0; i < m_ngch; i++) {
00988       EvtRecTrackIterator  itTrk = evtRecTrkCol->begin() + jGood[i];
00989       if(!(*itTrk)->isMdcTrackValid()) continue;
00990       if(!(*itTrk)->isMdcDedxValid())continue;
00991       RecMdcTrack* mdcTrk = (*itTrk)->mdcTrack();
00992       RecMdcDedx* dedxTrk = (*itTrk)->mdcDedx();
00993       m_ptrk[indx0] = mdcTrk->p();
00994 
00995       m_chie[indx0] = dedxTrk->chiE();
00996       m_chimu[indx0] = dedxTrk->chiMu();
00997       m_chipi[indx0] = dedxTrk->chiPi();
00998       m_chik[indx0] = dedxTrk->chiK();
00999       m_chip[indx0] = dedxTrk->chiP();
01000       m_ghit[indx0] = dedxTrk->numGoodHits();
01001       m_thit[indx0] = dedxTrk->numTotalHits();
01002       m_probPH[indx0] = dedxTrk->probPH();
01003       m_normPH[indx0] = dedxTrk->normPH();
01004       indx0++;
01005     }
01006 
01007 
01008   //
01009   // check TOF infomation
01010   //
01011 
01012 
01013      int indx1=0;
01014     for(int i = 0; i < m_ngch; i++) {
01015       EvtRecTrackIterator  itTrk = evtRecTrkCol->begin() + jGood[i];
01016       if(!(*itTrk)->isMdcTrackValid()) continue;
01017       if(!(*itTrk)->isTofTrackValid()) continue;
01018 
01019       RecMdcTrack * mdcTrk = (*itTrk)->mdcTrack();
01020       SmartRefVector<RecTofTrack> tofTrkCol = (*itTrk)->tofTrack();
01021 
01022       double ptrk = mdcTrk->p();
01023       SmartRefVector<RecTofTrack>::iterator iter_tof = tofTrkCol.begin();
01024       for(;iter_tof != tofTrkCol.end(); iter_tof++ ) { 
01025         TofHitStatus *status = new TofHitStatus; 
01026         status->setStatus((*iter_tof)->status());
01027         if(!(status->is_barrel())){//endcap
01028           if( !(status->is_counter()) ) continue; // ? 
01029           if( status->layer()!=1 ) continue;//layer1
01030           double path=(*iter_tof)->path(); // ? 
01031           double tof  = (*iter_tof)->tof();
01032           double ph   = (*iter_tof)->ph();
01033           double rhit = (*iter_tof)->zrhit();
01034           double qual = 0.0 + (*iter_tof)->quality();
01035           double cntr = 0.0 + (*iter_tof)->tofID();
01036           double texp[5];
01037           double tsig[5];
01038           for(int j = 0; j < 5; j++) {//0 e, 1 mu, 2 pi, 3 K, 4 p
01039            texp[j] = (*iter_tof)->texp(j);
01040 //           tsig[j] = (*iter_tof)->sigma(j);
01041 //           toffset[j] = (*iter_tof)->offset(j);
01042           }
01043           m_cntr_etof[indx1]  = cntr;
01044           m_ptot_etof[indx1] = ptrk;
01045           m_ph_etof[indx1]   = ph;
01046           m_rhit_etof[indx1]  = rhit;
01047           m_qual_etof[indx1]  = qual;
01048           m_te_etof[indx1]    = tof - texp[0];
01049           m_tmu_etof[indx1]   = tof - texp[1];
01050           m_tpi_etof[indx1]   = tof - texp[2];
01051           m_tk_etof[indx1]    = tof - texp[3];
01052           m_tp_etof[indx1]    = tof - texp[4];
01053 
01054           m_ec_tof[indx1]      =  tof;
01055 
01056           m_ec_toff_e[indx1]   = (*iter_tof)->toffset(0);
01057           m_ec_toff_mu[indx1]  = (*iter_tof)->toffset(1);
01058           m_ec_toff_pi[indx1]  = (*iter_tof)->toffset(2);
01059           m_ec_toff_k[indx1]   = (*iter_tof)->toffset(3);
01060           m_ec_toff_p[indx1]   = (*iter_tof)->toffset(4);
01061 
01062           m_ec_tsig_e[indx1]   = (*iter_tof)->sigma(0);
01063           m_ec_tsig_mu[indx1]  = (*iter_tof)->sigma(1);
01064           m_ec_tsig_pi[indx1]  = (*iter_tof)->sigma(2);
01065           m_ec_tsig_k[indx1]   = (*iter_tof)->sigma(3);
01066           m_ec_tsig_p[indx1]   = (*iter_tof)->sigma(4);
01067 
01068         }
01069         else {//barrel
01070           if( !(status->is_cluster()) ) continue; // ? 
01071             double path=(*iter_tof)->path(); // ? 
01072             double tof  = (*iter_tof)->tof();
01073             double ph   = (*iter_tof)->ph();
01074             double rhit = (*iter_tof)->zrhit();
01075             double qual = 0.0 + (*iter_tof)->quality();
01076             double cntr = 0.0 + (*iter_tof)->tofID();
01077           double texp[5];
01078           for(int j = 0; j < 5; j++) {
01079             texp[j] = (*iter_tof)->texp(j);
01080             }
01081             m_cntr_btof1[indx1]  = cntr;
01082             m_ptot_btof1[indx1] = ptrk;
01083             m_ph_btof1[indx1]   = ph;
01084             m_zhit_btof1[indx1]  = rhit;
01085             m_qual_btof1[indx1]  = qual;
01086             m_te_btof1[indx1]    = tof - texp[0];
01087             m_tmu_btof1[indx1]   = tof - texp[1];
01088             m_tpi_btof1[indx1]   = tof - texp[2];
01089             m_tk_btof1[indx1]    = tof - texp[3];
01090             m_tp_btof1[indx1]    = tof - texp[4];
01091 
01092           m_b1_tof[indx1]      =  tof;
01093 
01094           m_b1_toff_e[indx1]   = (*iter_tof)->toffset(0);
01095           m_b1_toff_mu[indx1]  = (*iter_tof)->toffset(1);
01096           m_b1_toff_pi[indx1]  = (*iter_tof)->toffset(2);
01097           m_b1_toff_k[indx1]   = (*iter_tof)->toffset(3);
01098           m_b1_toff_p[indx1]   = (*iter_tof)->toffset(4);
01099 
01100           m_b1_tsig_e[indx1]   = (*iter_tof)->sigma(0);
01101           m_b1_tsig_mu[indx1]  = (*iter_tof)->sigma(1);
01102           m_b1_tsig_pi[indx1]  = (*iter_tof)->sigma(2);
01103           m_b1_tsig_k[indx1]   = (*iter_tof)->sigma(3);
01104           m_b1_tsig_p[indx1]   = (*iter_tof)->sigma(4);
01105 
01106           }
01107         delete status; 
01108       } 
01109       indx1++;
01110     } // loop all charged track
01111 
01112   //
01113   // Assign 4-momentum to each charged track
01114   //
01115     int indx2=0;
01116   ParticleID *pid = ParticleID::instance();
01117   for(int i = 0; i < m_ngch; i++) {
01118     EvtRecTrackIterator itTrk = evtRecTrkCol->begin() + jGood[i]; 
01119     //    if(pid) delete pid;
01120     pid->init();
01121     pid->setMethod(pid->methodProbability());
01122 //    pid->setMethod(pid->methodLikelihood());  //for Likelihood Method  
01123 
01124     pid->setChiMinCut(4);
01125     pid->setRecTrack(*itTrk);
01126     pid->usePidSys(pid->useDedx() | pid->useTof1() | pid->useTof2()); // use PID sub-system
01127     pid->identify(pid->onlyPion() | pid->onlyKaon());    // seperater Pion/Kaon
01128     //    pid->identify(pid->onlyPion());
01129     //  pid->identify(pid->onlyKaon());
01130     pid->calculate();
01131     if(!(pid->IsPidInfoValid())) continue;
01132     RecMdcTrack* mdcTrk = (*itTrk)->mdcTrack();
01133 
01134     m_dedx_pid[indx2] = pid->chiDedx(2);
01135     m_tof1_pid[indx2] = pid->chiTof1(2);
01136     m_tof2_pid[indx2] = pid->chiTof2(2);
01137     m_prob_pid[indx2] = pid->probPion();
01138 
01139 //    if(pid->probPion() < 0.001 || (pid->probPion() < pid->probKaon())) continue;
01140 //    if(pid->probPion() < 0.001) continue;
01141 //    if(pid->pdf(2)<pid->pdf(3)) continue; //  for Likelihood Method(0=electron 1=muon 2=pion 3=kaon 4=proton) 
01142 
01143     RecMdcKalTrack* mdcKalTrk = (*itTrk)->mdcKalTrack();//After ParticleID, use RecMdcKalTrack substitute RecMdcTrack
01144     RecMdcKalTrack::setPidType  (RecMdcKalTrack::pion);//PID can set to electron, muon, pion, kaon and proton;The default setting is pion
01145 
01146     m_ptrk_pid[indx2] = mdcKalTrk->p();
01147     m_cost_pid[indx2] = cos(mdcTrk->theta());
01148 
01149     if(mdcTrk->charge() >0 && pid->probPion() > pid->probKaon()) {
01150       ipnp.push_back(jGood[i]);
01151       HepLorentzVector ptrk;
01152       ptrk.setPx(mdcKalTrk->px());
01153       ptrk.setPy(mdcKalTrk->py());
01154       ptrk.setPz(mdcKalTrk->pz());
01155       double p3 = ptrk.mag();
01156       ptrk.setE(sqrt(p3*p3+mpi*mpi));
01157 //      ptrk = ptrk.boost(-0.011,0,0);//boost to cms
01158 
01159       ppnp.push_back(ptrk);
01160     }     //plus charge with with PID
01161       if(mdcTrk->charge() <0 && pid->probPion() > pid->probKaon()) {
01162       ipnm.push_back(jGood[i]);
01163       HepLorentzVector ptrk;
01164       ptrk.setPx(mdcKalTrk->px());
01165       ptrk.setPy(mdcKalTrk->py());
01166       ptrk.setPz(mdcKalTrk->pz());
01167       double p3 = ptrk.mag();
01168       ptrk.setE(sqrt(p3*p3+mpi*mpi));
01169 
01170 //      ptrk = ptrk.boost(-0.011,0,0);//boost to cms
01171 
01172       ppnm.push_back(ptrk);
01173     }     //minus charge with with PID
01174   }
01175   int npnp = ipnp.size();
01176   int npnm = ipnm.size();
01177 
01178         m_pnp  = npnp;
01179         m_pnm  = npnm;
01180 
01181   int iphoton = 0;
01182   for (int i=0; i<m_nggneu; i++)
01183   {
01184     EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + jGgam[i];
01185     if (!(*itTrk)->isEmcShowerValid()) continue; 
01186     RecEmcShower *emcTrk = (*itTrk)->emcShower();
01187     m_numHits[iphoton] = emcTrk->numHits();
01188     m_secondmoment[iphoton] = emcTrk->secondMoment();
01189     m_x[iphoton] = emcTrk->x();
01190     m_y[iphoton]= emcTrk->y();
01191     m_z[iphoton]= emcTrk->z();
01192     m_cosemc[iphoton]   = cos(emcTrk->theta());
01193     m_phiemc[iphoton]   = emcTrk->phi();      
01194     m_energy[iphoton]   = emcTrk->energy();
01195     m_eSeed[iphoton]    = emcTrk->eSeed(); 
01196     m_e3x3[iphoton]     = emcTrk->e3x3();  
01197     m_e5x5[iphoton]     = emcTrk->e5x5();  
01198     m_lat[iphoton]      = emcTrk->latMoment();
01199     m_a20[iphoton]      = emcTrk->a20Moment();
01200     m_a42[iphoton]      = emcTrk->a42Moment();
01201     iphoton++;
01202   }
01203         m_tuple4->write();
01204          Ncut4++;
01205 
01206       if(kmfit->chisq()>=chi5) return SUCCESS;
01207       if(pgam2pi2.m()<=1.0) return SUCCESS;
01208       if(pgam2pi1.m()<=1.0) return SUCCESS;
01209       if(nGam!=2)  return SUCCESS;
01210       if(emcTg1/extmot1>=0.8)  return SUCCESS;
01211       if(emcTg2/extmot2>=0.8)  return SUCCESS;
01212          Ncut5++;
01213 
01214     // DQA
01215     TH1 *h(0);
01216     if (m_thsvc->getHist("/DQAHist/Rhopi/mpi0", h).isSuccess()) {
01217         h->Fill(ppi0.m());
01218     } else {
01219         log << MSG::ERROR << "Couldn't retrieve mpi0" << endreq;
01220     }
01221 
01222       if(fabs(ppi0.m()-0.135)>=0.015) return SUCCESS;      
01223          Ncut6++;
01224 
01225     if (m_thsvc->getHist("/DQAHist/Rhopi/mrho0", h).isSuccess()) {
01226         h->Fill(prho0.m());
01227     } else {
01228         log << MSG::ERROR << "Couldn't retrieve mrho0" << endreq;
01229     }
01230 
01231 
01232     if (m_thsvc->getHist("/DQAHist/Rhopi/mrhop", h).isSuccess()) {
01233         h->Fill(prhop.m());
01234     } else {
01235         log << MSG::ERROR << "Couldn't retrieve mrhop" << endreq;
01236     }
01237 
01238     if (m_thsvc->getHist("/DQAHist/Rhopi/mrhom", h).isSuccess()) {
01239         h->Fill(prhom.m());
01240     } else {
01241         log << MSG::ERROR << "Couldn't retrieve mrhom" << endreq;
01242     }
01243 
01244 
01245  // Pid: 1 - electron, 2 - muon, 3 - pion, 4 - kaon, 5 - proton
01246 
01247   (*(evtRecTrkCol->begin()+ipip[0]))->setPartId(3);
01248   (*(evtRecTrkCol->begin()+ipim[0]))->setPartId(3);
01249 
01250   // Quality: defined by whether dE/dx or TOF is used to identify particle
01251   // 0 - no dE/dx, no TOF (can be used for dE/dx and TOF calibration)
01252   // 1 - only dE/dx (can be used for TOF calibration)
01253   // 2 - only TOF (can be used for dE/dx calibration)
01254   // 3 - Both dE/dx and TOF
01255 
01256   (*(evtRecTrkCol->begin()+ipip[0]))->setQuality(0);
01257   (*(evtRecTrkCol->begin()+ipim[0]))->setQuality(0);
01258 
01259          setFilterPassed(true);
01260 
01261   return StatusCode::SUCCESS;
01262 }

StatusCode DQARhopi::finalize (  ) 

Definition at line 1266 of file DQARhopi.cxx.

References Bes_Common::INFO, and msgSvc().

01266                               {
01267   cout<<"total number:         "<<Ncut0<<endl;
01268   cout<<"nGood==2, nCharge==0: "<<Ncut1<<endl;
01269   cout<<"nGam>=2:              "<<Ncut2<<endl;
01270   cout<<"Pass Pid:             "<<Ncut3<<endl;
01271   cout<<"Pass 4C:              "<<Ncut4<<endl;
01272   cout<<"final cut without pi0:"<<Ncut5<<endl;
01273   cout<<"final cut with pi0:   "<<Ncut6<<endl;
01274   MsgStream log(msgSvc(), name());
01275   log << MSG::INFO << "in finalize()" << endmsg;
01276   return StatusCode::SUCCESS;
01277 }

StatusCode DQARhopi::initialize (  ) 

Definition at line 79 of file DQARhopi.cxx.

References cosgth1, cosgth2, cosva1, cosva2, dangsg, dphisg, dthesg, calibUtil::ERROR, Bes_Common::INFO, m_2gam, m_a20, m_a42, m_anglepm, m_b1_tof, m_b1_toff_e, m_b1_toff_k, m_b1_toff_mu, m_b1_toff_p, m_b1_toff_pi, m_b1_tsig_e, m_b1_tsig_k, m_b1_tsig_mu, m_b1_tsig_p, m_b1_tsig_pi, m_chi1, m_chi5, m_chie, m_chik, m_chimu, m_chip, m_chipi, m_cntr_btof1, m_cntr_etof, m_cosang, m_cosemc, m_cost_pid, m_costhem, m_costhemin, m_costhep, m_costhepin, m_dangc, m_dcpim, m_dcpip, m_dedx_pid, m_dphic, m_dthec, m_e3x3, m_e5x5, m_ec_tof, m_ec_toff_e, m_ec_toff_k, m_ec_toff_mu, m_ec_toff_p, m_ec_toff_pi, m_ec_tsig_e, m_ec_tsig_k, m_ec_tsig_mu, m_ec_tsig_p, m_ec_tsig_pi, m_energy, m_enpim, m_enpip, m_eSeed, m_gam, m_ghit, m_good, m_hit1, m_hit2, m_kmp0, m_kpi0, m_kpkm, m_kpp0, m_lat, m_laypi1, m_laypi2, m_mpi0, m_mpx, m_mpxkal, m_mpy, m_mpykal, m_mpz, m_mpzkal, m_mspippim, m_nangecc, m_nch, m_ngch, m_nggneu, m_nneu, m_normPH, m_numHits, m_outpi0, m_outpim, m_outpip, m_pgam2pi1, m_pgam2pi2, m_ph_btof1, m_ph_etof, m_phiemc, m_pi0f, m_pim, m_pimf, m_pip, m_pipf, m_pmax, m_pnm, m_pnp, m_ppx, m_ppxkal, m_ppy, m_ppykal, m_ppz, m_ppzkal, m_prho0, m_prhom, m_prhop, m_prob_pid, m_probPH, m_ptot_btof1, m_ptot_etof, m_ptrk, m_ptrk_pid, m_qual_btof1, m_qual_etof, m_rec, m_rhit_etof, m_run, m_secondmoment, m_te_btof1, m_te_etof, m_thit, m_thsvc, m_tk_btof1, m_tk_etof, m_tmu_btof1, m_tmu_etof, m_tof1_pid, m_tof2_pid, m_tp_btof1, m_tp_etof, m_tpi_btof1, m_tpi_etof, m_tuple4, m_vrm, m_vrmin, m_vrp, m_vrpin, m_vxm, m_vxmin, m_vxp, m_vxpin, m_vym, m_vymin, m_vyp, m_vypin, m_vzm, m_vzmin, m_vzp, m_vzpin, m_x, m_y, m_z, m_zhit_btof1, mpi0, msgSvc(), and ntupleSvc().

00079                                {
00080   MsgStream log(msgSvc(), name());
00081 
00082   log << MSG::INFO << "in initialize()" << endmsg;
00083   
00084   StatusCode status;
00085 
00086     NTuplePtr nt4(ntupleSvc(), "DQAFILE/Rhopi");
00087     if ( nt4 ) m_tuple4 = nt4;
00088     else {
00089       m_tuple4 = ntupleSvc()->book ("DQAFILE/Rhopi", CLID_ColumnWiseTuple, "ks N-Tuple example");
00090       if ( m_tuple4 )    {
00091         status = m_tuple4->addItem ("run",    m_run);
00092         status = m_tuple4->addItem ("rec",    m_rec);     
00093         status = m_tuple4->addItem ("nch",    m_nch);
00094         status = m_tuple4->addItem ("nneu",   m_nneu);
00095         status = m_tuple4->addItem ("chi1",   m_chi1);
00096         status = m_tuple4->addItem ("mpi0",   m_mpi0);
00097         status = m_tuple4->addItem ("mprho0", m_prho0);
00098         status = m_tuple4->addItem ("mprhop", m_prhop);
00099         status = m_tuple4->addItem ("mprhom", m_prhom);
00100         status = m_tuple4->addItem ("mgood",  m_good);
00101         status = m_tuple4->addItem ("mgam",   m_gam);
00102         status = m_tuple4->addItem ("mpip",   m_pip);
00103         status = m_tuple4->addItem ("mpim",   m_pim);
00104         status = m_tuple4->addItem ("m2gam",  m_2gam);
00105         status = m_tuple4->addItem ("ngch",     m_ngch,  0, 10);
00106         status = m_tuple4->addItem ("nggneu",   m_nggneu,0, 10);
00107         status = m_tuple4->addItem ("moutpi0",m_outpi0);
00108         status = m_tuple4->addItem ("cosang", m_cosang);
00109         status = m_tuple4->addItem ("moutpip",m_outpip);
00110         status = m_tuple4->addItem ("moutpim",m_outpim);
00111         status = m_tuple4->addItem ("menpip", m_enpip);
00112         status = m_tuple4->addItem ("mdcpip", m_dcpip );
00113         status = m_tuple4->addItem ("menpim", m_enpim );
00114         status = m_tuple4->addItem ("mdcpim", m_dcpim );   
00115         status = m_tuple4->addItem ("mpipf",  m_pipf);        
00116         status = m_tuple4->addItem ("mpimf",  m_pimf);        
00117         status = m_tuple4->addItem ("mpi0f",  m_pi0f);
00118 
00119         status = m_tuple4->addItem ("mpmax",   m_pmax);
00120         status = m_tuple4->addItem ("mppx",    m_ppx);
00121         status = m_tuple4->addItem ("mppy",    m_ppy);
00122         status = m_tuple4->addItem ("mppz",    m_ppz);
00123         status = m_tuple4->addItem ("mcosthep",m_costhep);
00124         status = m_tuple4->addItem ("mppxkal", m_ppxkal);
00125         status = m_tuple4->addItem ("mppykal", m_ppykal);
00126         status = m_tuple4->addItem ("mppzkal", m_ppzkal);
00127         status = m_tuple4->addItem ("mmpx",    m_mpx);
00128         status = m_tuple4->addItem ("mmpy",    m_mpy);
00129         status = m_tuple4->addItem ("mmpz",    m_mpz);
00130         status = m_tuple4->addItem ("mcosthem",m_costhem);
00131         status = m_tuple4->addItem ("mmpxkal", m_mpxkal);
00132         status = m_tuple4->addItem ("mmpykal", m_mpykal);
00133         status = m_tuple4->addItem ("mmpzkal", m_mpzkal);
00134 
00135         status = m_tuple4->addItem ("mvxpin",  m_vxpin);
00136         status = m_tuple4->addItem ("mvypin",  m_vypin);
00137         status = m_tuple4->addItem ("mvzpin",  m_vzpin);
00138         status = m_tuple4->addItem ("mvrpin",  m_vrpin);
00139         status = m_tuple4->addItem ("mcosthepin",m_costhepin);
00140         status = m_tuple4->addItem ("mvxmin",  m_vxmin);
00141         status = m_tuple4->addItem ("mvymin",  m_vymin);
00142         status = m_tuple4->addItem ("mvzmin",  m_vzmin);
00143         status = m_tuple4->addItem ("mvrmin",  m_vrmin);
00144         status = m_tuple4->addItem ("mcosthemin",m_costhemin);
00145         status = m_tuple4->addItem ("mvxp",    m_vxp);
00146         status = m_tuple4->addItem ("mvyp",    m_vyp);
00147         status = m_tuple4->addItem ("mvzp",    m_vzp);
00148         status = m_tuple4->addItem ("mvrp",    m_vrp);
00149         status = m_tuple4->addItem ("mvxm",    m_vxm);
00150         status = m_tuple4->addItem ("mvym",    m_vym);
00151         status = m_tuple4->addItem ("mvzm",    m_vzm);
00152         status = m_tuple4->addItem ("mvrm",    m_vrm);
00153         status = m_tuple4->addItem ("nangecc",m_nangecc,0,10);
00154         status = m_tuple4->addIndexedItem ("mdthec", m_nangecc, m_dthec);
00155         status = m_tuple4->addIndexedItem ("mdphic", m_nangecc, m_dphic);
00156         status = m_tuple4->addIndexedItem ("mdangc", m_nangecc, m_dangc);
00157         status = m_tuple4->addIndexedItem ("mspippim", m_nangecc, m_mspippim);
00158 
00159         status = m_tuple4->addItem ("angsg",   dangsg);
00160         status = m_tuple4->addItem ("thesg",   dthesg);
00161         status = m_tuple4->addItem ("phisg",   dphisg);
00162         status = m_tuple4->addItem ("cosgth1", cosgth1);
00163         status = m_tuple4->addItem ("cosgth2", cosgth2);
00164 
00165         status = m_tuple4->addItem ("mchi5",   m_chi5);
00166         status = m_tuple4->addItem ("mkpi0",   m_kpi0);
00167         status = m_tuple4->addItem ("mkpkm",   m_kpkm);
00168         status = m_tuple4->addItem ("mkpp0",   m_kpp0);
00169         status = m_tuple4->addItem ("mkmp0",   m_kmp0);            
00170         status = m_tuple4->addItem ("mpgam2pi1",m_pgam2pi1);
00171         status = m_tuple4->addItem ("mpgam2pi2",m_pgam2pi2);
00172         status = m_tuple4->addItem ("cosva1",   cosva1);
00173         status = m_tuple4->addItem ("cosva2",   cosva2);
00174         status = m_tuple4->addItem ("laypi1",   m_laypi1);
00175         status = m_tuple4->addItem ("hit1",     m_hit1);
00176         status = m_tuple4->addItem ("laypi2",   m_laypi2);
00177         status = m_tuple4->addItem ("hit2",     m_hit2);
00178         status = m_tuple4->addItem ("anglepm",  m_anglepm);
00179 
00180         status = m_tuple4->addIndexedItem ("mptrk", m_ngch, m_ptrk);
00181         status = m_tuple4->addIndexedItem ("chie",   m_ngch, m_chie);
00182         status = m_tuple4->addIndexedItem ("chimu",  m_ngch,m_chimu);
00183         status = m_tuple4->addIndexedItem ("chipi",  m_ngch,m_chipi);
00184         status = m_tuple4->addIndexedItem ("chik",   m_ngch,m_chik);
00185         status = m_tuple4->addIndexedItem ("chip",   m_ngch,m_chip);
00186         status = m_tuple4->addIndexedItem ("probPH", m_ngch,m_probPH);
00187         status = m_tuple4->addIndexedItem ("normPH", m_ngch,m_normPH);
00188         status = m_tuple4->addIndexedItem ("ghit",   m_ngch,m_ghit);
00189         status = m_tuple4->addIndexedItem ("thit",   m_ngch,m_thit);
00190 
00191         status = m_tuple4->addIndexedItem ("ptot_etof", m_ngch,m_ptot_etof);
00192         status = m_tuple4->addIndexedItem ("cntr_etof", m_ngch,m_cntr_etof);
00193         status = m_tuple4->addIndexedItem ("te_etof",   m_ngch,m_te_etof);
00194         status = m_tuple4->addIndexedItem ("tmu_etof",  m_ngch,m_tmu_etof);
00195         status = m_tuple4->addIndexedItem ("tpi_etof",  m_ngch,m_tpi_etof);
00196         status = m_tuple4->addIndexedItem ("tk_etof",   m_ngch,m_tk_etof);
00197         status = m_tuple4->addIndexedItem ("tp_etof",   m_ngch,m_tp_etof);
00198         status = m_tuple4->addIndexedItem ("ph_etof",   m_ngch,m_ph_etof);
00199         status = m_tuple4->addIndexedItem ("rhit_etof", m_ngch,m_rhit_etof);
00200         status = m_tuple4->addIndexedItem ("qual_etof", m_ngch,m_qual_etof);
00201         status = m_tuple4->addIndexedItem ("ec_toff_e", m_ngch,m_ec_toff_e);
00202         status = m_tuple4->addIndexedItem ("ec_toff_mu",m_ngch,m_ec_toff_mu);
00203         status = m_tuple4->addIndexedItem ("ec_toff_pi",m_ngch,m_ec_toff_pi);
00204         status = m_tuple4->addIndexedItem ("ec_toff_k", m_ngch,m_ec_toff_k);
00205         status = m_tuple4->addIndexedItem ("ec_toff_p", m_ngch,m_ec_toff_p);
00206         status = m_tuple4->addIndexedItem ("ec_tsig_e", m_ngch,m_ec_tsig_e);
00207         status = m_tuple4->addIndexedItem ("ec_tsig_mu",m_ngch,m_ec_tsig_mu);
00208         status = m_tuple4->addIndexedItem ("ec_tsig_pi",m_ngch,m_ec_tsig_pi);
00209         status = m_tuple4->addIndexedItem ("ec_tsig_k", m_ngch,m_ec_tsig_k);
00210         status = m_tuple4->addIndexedItem ("ec_tsig_p", m_ngch,m_ec_tsig_p);
00211         status = m_tuple4->addIndexedItem ("ec_tof",    m_ngch,m_ec_tof);
00212         status = m_tuple4->addIndexedItem ("ptot_btof1",m_ngch,m_ptot_btof1);
00213         status = m_tuple4->addIndexedItem ("cntr_btof1",m_ngch,m_cntr_btof1);
00214         status = m_tuple4->addIndexedItem ("te_btof1",  m_ngch,m_te_btof1);
00215         status = m_tuple4->addIndexedItem ("tmu_btof1", m_ngch,m_tmu_btof1);
00216         status = m_tuple4->addIndexedItem ("tpi_btof1", m_ngch,m_tpi_btof1);
00217         status = m_tuple4->addIndexedItem ("tk_btof1",  m_ngch,m_tk_btof1);
00218         status = m_tuple4->addIndexedItem ("tp_btof1",  m_ngch,m_tp_btof1);
00219         status = m_tuple4->addIndexedItem ("ph_btof1",  m_ngch,m_ph_btof1);
00220         status = m_tuple4->addIndexedItem ("zhit_btof1",m_ngch,m_zhit_btof1);
00221         status = m_tuple4->addIndexedItem ("qual_btof1",m_ngch,m_qual_btof1);
00222         status = m_tuple4->addIndexedItem ("b1_toff_e", m_ngch,m_b1_toff_e);
00223         status = m_tuple4->addIndexedItem ("b1_toff_mu",m_ngch,m_b1_toff_mu);
00224         status = m_tuple4->addIndexedItem ("b1_toff_pi",m_ngch,m_b1_toff_pi);
00225         status = m_tuple4->addIndexedItem ("b1_toff_k", m_ngch,m_b1_toff_k);
00226         status = m_tuple4->addIndexedItem ("b1_toff_p", m_ngch,m_b1_toff_p);
00227         status = m_tuple4->addIndexedItem ("b1_tsig_e", m_ngch,m_b1_tsig_e);
00228         status = m_tuple4->addIndexedItem ("b1_tsig_mu",m_ngch,m_b1_tsig_mu);
00229         status = m_tuple4->addIndexedItem ("b1_tsig_pi",m_ngch,m_b1_tsig_pi);
00230         status = m_tuple4->addIndexedItem ("b1_tsig_k", m_ngch,m_b1_tsig_k);
00231         status = m_tuple4->addIndexedItem ("b1_tsig_p", m_ngch,m_b1_tsig_p);
00232         status = m_tuple4->addIndexedItem ("b1_tof",    m_ngch,m_b1_tof);                                                    
00233 
00234         status = m_tuple4->addIndexedItem ("mdedx_pid", m_ngch,m_dedx_pid);
00235         status = m_tuple4->addIndexedItem ("mtof1_pid", m_ngch,m_tof1_pid);
00236         status = m_tuple4->addIndexedItem ("mtof2_pid", m_ngch,m_tof2_pid);
00237         status = m_tuple4->addIndexedItem ("mprob_pid", m_ngch,m_prob_pid);
00238         status = m_tuple4->addIndexedItem ("mptrk_pid", m_ngch,m_ptrk_pid);
00239         status = m_tuple4->addIndexedItem ("mcost_pid", m_ngch,m_cost_pid);
00240         status = m_tuple4->addItem ("mpnp",   m_pnp);
00241         status = m_tuple4->addItem ("mpnm",   m_pnm);
00242 
00243         status = m_tuple4->addIndexedItem ("numHits",      m_nggneu,m_numHits);    // Total number of hits
00244         status = m_tuple4->addIndexedItem ("secondmoment", m_nggneu,m_secondmoment);
00245         status = m_tuple4->addIndexedItem ("mx",           m_nggneu,m_x);       //  Shower coordinates and errors
00246         status = m_tuple4->addIndexedItem ("my",           m_nggneu,m_y);
00247         status = m_tuple4->addIndexedItem ("mz",           m_nggneu,m_z);
00248         status = m_tuple4->addIndexedItem ("cosemc",       m_nggneu,m_cosemc);   // Shower Counter angles and errors
00249         status = m_tuple4->addIndexedItem ("phiemc",       m_nggneu,m_phiemc);
00250         status = m_tuple4->addIndexedItem ("energy",       m_nggneu,m_energy);  // Total energy observed in Emc
00251         status = m_tuple4->addIndexedItem ("eseed",        m_nggneu,m_eSeed);
00252         status = m_tuple4->addIndexedItem ("me9",          m_nggneu,m_e3x3); 
00253         status = m_tuple4->addIndexedItem ("me25",         m_nggneu,m_e5x5); 
00254         status = m_tuple4->addIndexedItem ("mlat",         m_nggneu,m_lat);
00255         status = m_tuple4->addIndexedItem ("ma20",         m_nggneu,m_a20);
00256         status = m_tuple4->addIndexedItem ("ma42",         m_nggneu,m_a42);  
00257 
00258       }
00259       else    { 
00260         log << MSG::ERROR << "    Cannot book N-tuple:" << long(m_tuple4) << endmsg;
00261         return StatusCode::FAILURE;
00262       }
00263     }
00264 
00265   if(service("THistSvc", m_thsvc).isFailure()) {
00266     log << MSG::ERROR << "Couldn't get THistSvc" << endreq;
00267     return StatusCode::FAILURE;
00268   }
00269 
00270   // "DQAHist" is fixed
00271   // "Rhopi" is control sample name, just as ntuple case.
00272 
00273   TH1F* mrho0 = new TH1F("mrho0", "mass for #rho^{0}->#pi^{+}#pi^{-}", 160, 0.0, 3.2);
00274   if(m_thsvc->regHist("/DQAHist/Rhopi/mrho0", mrho0).isFailure()) {
00275       log << MSG::ERROR << "Couldn't register mrho0" << endreq;
00276   }
00277 
00278   TH1F* mrhop = new TH1F("mrhop", "mass for #rho^{+}->#pi^{+}#pi^{0}", 160, 0.0,3.2);
00279   if(m_thsvc->regHist("/DQAHist/Rhopi/mrhop", mrhop).isFailure()) {
00280       log << MSG::ERROR << "Couldn't register mrhop" << endreq;
00281   }
00282 
00283   TH1F* mrhom = new TH1F("mrhom", "mass for #rho^{-}->#pi^{-}#pi^{0}", 160, 0.0, 3.2);
00284   if(m_thsvc->regHist("/DQAHist/Rhopi/mrhom", mrhom).isFailure()) {
00285       log << MSG::ERROR << "Couldn't register mrhom" << endreq;
00286   }
00287 
00288 
00289   TH1F* mpi0 = new TH1F("mpi0", "mass for #pi^{0}->#gamma #gamma", 50,0.08, 0.18);
00290   if(m_thsvc->regHist("/DQAHist/Rhopi/mpi0", mpi0).isFailure()) {
00291       log << MSG::ERROR << "Couldn't register mpi0" << endreq;
00292   }
00293 
00294   //
00295   //--------end of book--------
00296   //
00297 
00298   log << MSG::INFO << "successfully return from initialize()" <<endmsg;
00299   return StatusCode::SUCCESS;
00300 
00301 }


Member Data Documentation

NTuple::Item<double> DQARhopi::cosgth1 [private]

Definition at line 109 of file DQARhopi.h.

Referenced by initialize().

NTuple::Item<double> DQARhopi::cosgth2 [private]

Definition at line 110 of file DQARhopi.h.

Referenced by initialize().

NTuple::Item<double> DQARhopi::cosva1 [private]

Definition at line 119 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::cosva2 [private]

Definition at line 120 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::dangsg [private]

Definition at line 106 of file DQARhopi.h.

Referenced by initialize().

NTuple::Item<double> DQARhopi::dphisg [private]

Definition at line 108 of file DQARhopi.h.

Referenced by initialize().

NTuple::Item<double> DQARhopi::dthesg [private]

Definition at line 107 of file DQARhopi.h.

Referenced by initialize().

NTuple::Item<double> DQARhopi::m_2gam [private]

Definition at line 53 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 205 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 206 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_anglepm [private]

Definition at line 125 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 181 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 171 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 174 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 172 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 175 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 173 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 176 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 179 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 177 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 180 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 178 of file DQARhopi.h.

Referenced by execute(), and initialize().

int DQARhopi::m_checkDedx [private]

Definition at line 34 of file DQARhopi.h.

Referenced by DQARhopi().

int DQARhopi::m_checkTof [private]

Definition at line 35 of file DQARhopi.h.

Referenced by DQARhopi().

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

Definition at line 44 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_chi5 [private]

Definition at line 112 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 129 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 132 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 130 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 133 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 131 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 162 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 140 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_cosang [private]

Definition at line 55 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 198 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 188 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_costhem [private]

Definition at line 82 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_costhemin [private]

Definition at line 95 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_costhep [private]

Definition at line 75 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_costhepin [private]

Definition at line 90 of file DQARhopi.h.

Referenced by execute(), and initialize().

double DQARhopi::m_cthcut [private]

Definition at line 23 of file DQARhopi.h.

Referenced by DQARhopi(), and execute().

NTuple::Array<double> DQARhopi::m_dangc [private]

Definition at line 68 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_dcpim [private]

Definition at line 61 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_dcpip [private]

Definition at line 59 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 183 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Array<double> DQARhopi::m_dphic [private]

Definition at line 67 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Array<double> DQARhopi::m_dthec [private]

Definition at line 66 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 202 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 203 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 159 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 149 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 152 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 150 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 153 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 151 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 154 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 157 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 155 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 158 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 156 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 200 of file DQARhopi.h.

Referenced by execute(), and initialize().

double DQARhopi::m_energyThreshold [private]

Definition at line 26 of file DQARhopi.h.

Referenced by DQARhopi(), and execute().

NTuple::Item<double> DQARhopi::m_enpim [private]

Definition at line 60 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_enpip [private]

Definition at line 58 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 201 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 50 of file DQARhopi.h.

Referenced by execute(), and initialize().

double DQARhopi::m_gammaAngCut [private]

Definition at line 27 of file DQARhopi.h.

Referenced by DQARhopi(), and execute().

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

Definition at line 136 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 49 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_hit1 [private]

Definition at line 122 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_hit2 [private]

Definition at line 124 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_kmp0 [private]

Definition at line 116 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_kpi0 [private]

Definition at line 113 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_kpkm [private]

Definition at line 114 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_kpp0 [private]

Definition at line 115 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 204 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_laypi1 [private]

Definition at line 121 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_laypi2 [private]

Definition at line 123 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 45 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_mpx [private]

Definition at line 79 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_mpxkal [private]

Definition at line 83 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_mpy [private]

Definition at line 80 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_mpykal [private]

Definition at line 84 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_mpz [private]

Definition at line 81 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_mpzkal [private]

Definition at line 85 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Array<double> DQARhopi::m_mspippim [private]

Definition at line 69 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<long> DQARhopi::m_nangecc [private]

Definition at line 65 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 42 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 127 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 192 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 43 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 135 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 193 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_outpi0 [private]

Definition at line 54 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_outpim [private]

Definition at line 57 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_outpip [private]

Definition at line 56 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_pgam2pi1 [private]

Definition at line 117 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_pgam2pi2 [private]

Definition at line 118 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 168 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 146 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 199 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_pi0f [private]

Definition at line 64 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 52 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_pimf [private]

Definition at line 63 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 51 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_pipf [private]

Definition at line 62 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_pmax [private]

Definition at line 71 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<long> DQARhopi::m_pnm [private]

Definition at line 190 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<long> DQARhopi::m_pnp [private]

Definition at line 189 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_ppx [private]

Definition at line 72 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_ppxkal [private]

Definition at line 76 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_ppy [private]

Definition at line 73 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_ppykal [private]

Definition at line 77 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_ppz [private]

Definition at line 74 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_ppzkal [private]

Definition at line 78 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_prho0 [private]

Definition at line 46 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_prhom [private]

Definition at line 48 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_prhop [private]

Definition at line 47 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 186 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 134 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 161 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 139 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 128 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 187 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 170 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 148 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 41 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 147 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 40 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 194 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 163 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 141 of file DQARhopi.h.

Referenced by execute(), and initialize().

int DQARhopi::m_test4C [private]

Definition at line 30 of file DQARhopi.h.

Referenced by DQARhopi().

int DQARhopi::m_test5C [private]

Definition at line 31 of file DQARhopi.h.

Referenced by DQARhopi().

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

Definition at line 137 of file DQARhopi.h.

Referenced by execute(), and initialize().

ITHistSvc* DQARhopi::m_thsvc [private]

Definition at line 37 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 166 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 144 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 164 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 142 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 184 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 185 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 167 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 145 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 165 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 143 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 39 of file DQARhopi.h.

Referenced by execute(), and initialize().

double DQARhopi::m_vr0cut [private]

Definition at line 21 of file DQARhopi.h.

Referenced by DQARhopi(), and execute().

NTuple::Item<double> DQARhopi::m_vrm [private]

Definition at line 104 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_vrmin [private]

Definition at line 94 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_vrp [private]

Definition at line 100 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_vrpin [private]

Definition at line 89 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_vxm [private]

Definition at line 101 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_vxmin [private]

Definition at line 91 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_vxp [private]

Definition at line 97 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_vxpin [private]

Definition at line 86 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_vym [private]

Definition at line 102 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_vymin [private]

Definition at line 92 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_vyp [private]

Definition at line 98 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_vypin [private]

Definition at line 87 of file DQARhopi.h.

Referenced by execute(), and initialize().

double DQARhopi::m_vz0cut [private]

Definition at line 22 of file DQARhopi.h.

Referenced by DQARhopi(), and execute().

NTuple::Item<double> DQARhopi::m_vzm [private]

Definition at line 103 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_vzmin [private]

Definition at line 93 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_vzp [private]

Definition at line 99 of file DQARhopi.h.

Referenced by execute(), and initialize().

NTuple::Item<double> DQARhopi::m_vzpin [private]

Definition at line 88 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 195 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 196 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 197 of file DQARhopi.h.

Referenced by execute(), and initialize().

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

Definition at line 169 of file DQARhopi.h.

Referenced by execute(), and initialize().


Generated on Tue Nov 29 23:18:24 2016 for BOSS_7.0.2 by  doxygen 1.4.7