#include <Ppjrhopi.h>
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 |
Definition at line 9 of file Ppjrhopi.h.
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 }
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 }
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] |
int Ppjrhopi::m_checkTof [private] |
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] |
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] |
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] |
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] |
int Ppjrhopi::m_test5C [private] |
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] |
double Ppjrhopi::m_vr1cut [private] |
double Ppjrhopi::m_vz0cut [private] |
double Ppjrhopi::m_vz1cut [private] |
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.