#include <DQASelDimu.h>
Public Member Functions | |
DQASelDimu (const std::string &name, ISvcLocator *pSvcLocator) | |
StatusCode | initialize () |
StatusCode | execute () |
StatusCode | finalize () |
Private Attributes | |
ITHistSvc * | m_thistsvc |
TH1F * | m_mumu_mass |
TH1F * | m_mumu_acoll |
TH1F * | m_mumu_eop_mup |
TH1F * | m_mumu_eop_mum |
TH1F * | m_mumu_costheta_mup |
TH1F * | m_mumu_costheta_mum |
TH1F * | m_mumu_phi_mup |
TH1F * | m_mumu_phi_mum |
TH1F * | m_mumu_nneu |
TH1F * | m_mumu_nlay |
TH1F * | m_mumu_nhit |
TH1F * | m_mumu_eemc_mup |
TH1F * | m_mumu_eemc_mum |
TH1F * | m_mumu_x_mup |
TH1F * | m_mumu_y_mup |
TH1F * | m_mumu_z_mup |
TH1F * | m_mumu_x_mum |
TH1F * | m_mumu_y_mum |
TH1F * | m_mumu_z_mum |
TH1F * | m_mumu_px_mup |
TH1F * | m_mumu_py_mup |
TH1F * | m_mumu_pz_mup |
TH1F * | m_mumu_p_mup |
TH1F * | m_mumu_px_mum |
TH1F * | m_mumu_py_mum |
TH1F * | m_mumu_pz_mum |
TH1F * | m_mumu_p_mum |
TH1F * | m_mumu_deltatof |
TH1F * | m_mumu_pidchidedx_mup |
TH1F * | m_mumu_pidchidedx_mum |
TH1F * | m_mumu_pidchitof1_mup |
TH1F * | m_mumu_pidchitof1_mum |
TH1F * | m_mumu_pidchitof2_mup |
TH1F * | m_mumu_pidchitof2_mum |
bool | m_writentuple |
double | m_ecms |
double | m_beamangle |
double | m_vr0cut |
double | m_vz0cut |
double | m_coscut |
bool | m_useTOF |
bool | m_usePID |
bool | m_useEMC |
bool | m_useMUC |
bool | m_useMDC |
bool | m_useDEDX |
bool | m_useEMConly |
double | m_energyThreshold |
double | m_gammaPhiCut |
double | m_gammaThetaCut |
double | m_gammaTrkCut |
double | m_gammathCut |
double | m_gammatlCut |
double | m_acoll_mu_cut |
double | m_acopl_mu_cut |
double | m_poeb_mu_cut |
double | m_dtof_mu_cut |
double | m_eoeb_mu_cut |
double | m_etotal_mu_cut |
double | m_tpoebh_mu_cut |
double | m_tpoebl_mu_cut |
double | m_tptotal_mu_cut |
NTuple::Tuple * | m_tuple1 |
NTuple::Item< long > | m_run |
NTuple::Item< long > | m_rec |
NTuple::Item< long > | m_ncharg |
NTuple::Item< long > | m_nneu |
NTuple::Item< long > | m_ngch |
NTuple::Item< long > | m_nGam |
NTuple::Item< long > | m_dimutag |
NTuple::Item< double > | m_acoll |
NTuple::Item< double > | m_acopl |
NTuple::Item< double > | m_deltatof |
NTuple::Item< double > | m_eop1 |
NTuple::Item< double > | m_eop2 |
NTuple::Item< double > | m_eoeb1 |
NTuple::Item< double > | m_eoeb2 |
NTuple::Item< double > | m_poeb1 |
NTuple::Item< double > | m_poeb2 |
NTuple::Item< double > | m_etoeb1 |
NTuple::Item< double > | m_etoeb2 |
NTuple::Item< long > | m_mucinfo1 |
NTuple::Item< long > | m_mucinfo2 |
NTuple::Array< double > | m_delang |
NTuple::Array< double > | m_delphi |
NTuple::Array< double > | m_delthe |
NTuple::Array< long > | m_nSeed |
NTuple::Array< long > | m_npart |
NTuple::Array< long > | m_module |
NTuple::Array< long > | m_nemchits |
NTuple::Array< double > | m_x |
NTuple::Array< double > | m_y |
NTuple::Array< double > | m_z |
NTuple::Array< double > | m_dx |
NTuple::Array< double > | m_dy |
NTuple::Array< double > | m_dz |
NTuple::Array< double > | m_dtheta |
NTuple::Array< double > | m_dphi |
NTuple::Array< double > | m_theta |
NTuple::Array< double > | m_phi |
NTuple::Array< double > | m_energy |
NTuple::Array< double > | m_dE |
NTuple::Array< double > | m_eSeed |
NTuple::Array< double > | m_e3x3 |
NTuple::Array< double > | m_e5x5 |
NTuple::Array< double > | m_secondMoment |
NTuple::Array< double > | m_latMoment |
NTuple::Array< double > | m_a20Moment |
NTuple::Array< double > | m_a42Moment |
NTuple::Array< double > | m_getTime |
NTuple::Array< double > | m_getEAll |
NTuple::Array< long > | m_charge |
NTuple::Array< double > | m_vx0 |
NTuple::Array< double > | m_vy0 |
NTuple::Array< double > | m_vz0 |
NTuple::Array< double > | m_px |
NTuple::Array< double > | m_py |
NTuple::Array< double > | m_pz |
NTuple::Array< double > | m_p |
NTuple::Array< double > | m_kal_vx0 |
NTuple::Array< double > | m_kal_vy0 |
NTuple::Array< double > | m_kal_vz0 |
NTuple::Array< double > | m_kal_px |
NTuple::Array< double > | m_kal_py |
NTuple::Array< double > | m_kal_pz |
NTuple::Array< double > | m_kal_p |
NTuple::Array< float > | m_probPH |
NTuple::Array< float > | m_normPH |
NTuple::Array< float > | m_chie |
NTuple::Array< float > | m_chimu |
NTuple::Array< float > | m_chipi |
NTuple::Array< float > | m_chik |
NTuple::Array< float > | m_chip |
NTuple::Array< float > | m_ghit |
NTuple::Array< float > | m_thit |
NTuple::Array< float > | m_e_emc |
NTuple::Array< float > | m_theta_emc |
NTuple::Array< float > | m_phi_emc |
NTuple::Array< float > | m_nhit_muc |
NTuple::Array< float > | m_nlay_muc |
NTuple::Array< double > | m_qual_etof |
NTuple::Array< double > | m_tof_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_qual_btof1 |
NTuple::Array< double > | m_tof_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_t_btof |
NTuple::Array< double > | m_t_etof |
NTuple::Array< double > | m_qual_btof2 |
NTuple::Array< double > | m_tof_btof2 |
NTuple::Array< double > | m_te_btof2 |
NTuple::Array< double > | m_tmu_btof2 |
NTuple::Array< double > | m_tpi_btof2 |
NTuple::Array< double > | m_tk_btof2 |
NTuple::Array< double > | m_tp_btof2 |
NTuple::Array< long > | m_pidcode |
NTuple::Array< double > | m_pidprob |
NTuple::Array< double > | m_pidchiDedx |
NTuple::Array< double > | m_pidchiTof1 |
NTuple::Array< double > | m_pidchiTof2 |
NTuple::Item< double > | m_px_cms_ep |
NTuple::Item< double > | m_py_cms_ep |
NTuple::Item< double > | m_pz_cms_ep |
NTuple::Item< double > | m_e_cms_ep |
NTuple::Item< double > | m_cos_ep |
NTuple::Item< double > | m_px_cms_em |
NTuple::Item< double > | m_py_cms_em |
NTuple::Item< double > | m_pz_cms_em |
NTuple::Item< double > | m_e_cms_em |
NTuple::Item< double > | m_cos_em |
NTuple::Item< double > | m_mass_ee |
NTuple::Item< double > | m_emax |
NTuple::Item< double > | m_esum |
NTuple::Item< long > | m_npip |
NTuple::Item< long > | m_npim |
NTuple::Item< long > | m_nkp |
NTuple::Item< long > | m_nkm |
NTuple::Item< long > | m_np |
NTuple::Item< long > | m_npb |
NTuple::Item< long > | m_nep |
NTuple::Item< long > | m_nem |
NTuple::Item< long > | m_nmup |
NTuple::Item< long > | m_nmum |
Definition at line 24 of file DQASelDimu.h.
DQASelDimu::DQASelDimu | ( | const std::string & | name, | |
ISvcLocator * | pSvcLocator | |||
) |
Definition at line 59 of file DQASelDimu.cxx.
References m_acoll_mu_cut, m_acopl_mu_cut, m_beamangle, m_coscut, m_dtof_mu_cut, m_ecms, m_energyThreshold, m_eoeb_mu_cut, m_etotal_mu_cut, m_gammaPhiCut, m_gammathCut, m_gammaThetaCut, m_gammatlCut, m_gammaTrkCut, m_poeb_mu_cut, m_tpoebh_mu_cut, m_tpoebl_mu_cut, m_tptotal_mu_cut, m_useDEDX, m_useEMC, m_useEMConly, m_useMDC, m_useMUC, m_usePID, m_useTOF, m_vr0cut, m_vz0cut, and m_writentuple.
00059 : 00060 Algorithm(name, pSvcLocator) { 00061 00062 //Declare the properties 00063 declareProperty("writentuple",m_writentuple = false); 00064 declareProperty("ecms",m_ecms = 3.097); 00065 declareProperty("beamangle",m_beamangle = 0.022); 00066 declareProperty("Vr0cut", m_vr0cut=1.0); 00067 declareProperty("Vz0cut", m_vz0cut=8.0); 00068 declareProperty("Coscut", m_coscut=0.93); 00069 00070 declareProperty("EnergyThreshold", m_energyThreshold=0.04); 00071 declareProperty("GammaPhiCut", m_gammaPhiCut=20.0); 00072 declareProperty("GammaThetaCut", m_gammaThetaCut=20.0); 00073 declareProperty("GammaTrkCut", m_gammaTrkCut=20.0); 00074 declareProperty("GammaTLCut", m_gammatlCut=0); 00075 declareProperty("GammaTHCut", m_gammathCut=60); 00076 00077 declareProperty ("acoll_mu_cut", m_acoll_mu_cut=6.); 00078 declareProperty ("acopl_mu_cut", m_acopl_mu_cut=6.); 00079 declareProperty ("poeb_mu_cut", m_poeb_mu_cut=0.3); 00080 declareProperty ("dtof_mu_cut", m_dtof_mu_cut=4.); 00081 declareProperty ("eoeb_mu_cut", m_eoeb_mu_cut=0.35); 00082 declareProperty ("etotal_mu_cut", m_etotal_mu_cut=0.6); 00083 declareProperty ("tpoebh_mu_cut", m_tpoebh_mu_cut=0.9); 00084 declareProperty ("tpoebl_mu_cut", m_tpoebl_mu_cut=0.7); 00085 declareProperty ("tptotal_mu_cut", m_tptotal_mu_cut=1.0); 00086 00087 00088 00089 //normally, MDC+EMC, otherwise EMC only 00090 declareProperty ("m_useEMConly", m_useEMConly= false); 00091 declareProperty ("m_usePID", m_usePID= false);// sub-system is under study 00092 declareProperty ("m_useMDC", m_useMDC= true); 00093 declareProperty ("m_useDEDX", m_useDEDX= false);// not used 00094 declareProperty ("m_useTOF", m_useTOF= false);//sub-system is under study 00095 declareProperty ("m_useEMC", m_useEMC= true); 00096 declareProperty ("m_useMUC", m_useMUC= false);// efficiency 00097 00098 }
StatusCode DQASelDimu::execute | ( | ) |
Definition at line 374 of file DQASelDimu.cxx.
References DstEmcShower::a20Moment(), DstEmcShower::a42Moment(), EmcID::barrel_ec(), DstMdcTrack::charge(), cos(), counter, DstEmcShower::dE(), Bes_Common::DEBUG, DstEmcShower::dphi(), DstEmcShower::dtheta(), DstEmcShower::dx(), DstEmcShower::dy(), DstEmcShower::dz(), DstEmcShower::e3x3(), DstEmcShower::e5x5(), DstExtTrack::emcPosition(), DstExtTrack::emcVolumeNumber(), DstEmcShower::energy(), energy, DstEmcShower::eSeed(), EventModel::EvtRec::EvtRecEvent, EventModel::EvtRec::EvtRecTrackCol, Bes_Common::FATAL, RecEmcShower::getEAll(), RecEmcShower::getShowerId(), RecMdcKalTrack::getZErrorMu(), RecMdcKalTrack::getZHelixMu(), DstMdcTrack::helix(), genRecEmupikp::i, Bes_Common::INFO, ParticleID::instance(), IVertexDbSvc::isVertexValid(), ganga-rec::j, DstEmcShower::latMoment(), m_a20Moment, m_a42Moment, m_acoll, m_acoll_mu_cut, m_acopl, m_acopl_mu_cut, m_beamangle, m_charge, m_chie, m_chik, m_chimu, m_chip, m_chipi, m_cos_em, m_cos_ep, m_dE, m_delang, m_delphi, m_deltatof, m_delthe, m_dimutag, m_dphi, m_dtheta, m_dtof_mu_cut, m_dx, m_dy, m_dz, m_e3x3, m_e5x5, m_e_cms_em, m_e_cms_ep, m_e_emc, m_ecms, m_energy, m_energyThreshold, m_eoeb1, m_eoeb2, m_eoeb_mu_cut, m_eop1, m_eop2, m_eSeed, m_etoeb1, m_etoeb2, m_etotal_mu_cut, m_gammathCut, m_gammatlCut, m_gammaTrkCut, m_getEAll, m_getTime, m_ghit, m_kal_p, m_kal_px, m_kal_py, m_kal_pz, m_kal_vx0, m_kal_vy0, m_kal_vz0, m_latMoment, m_mass_ee, m_module, m_mucinfo1, m_mucinfo2, m_mumu_acoll, m_mumu_costheta_mum, m_mumu_costheta_mup, m_mumu_deltatof, m_mumu_eemc_mum, m_mumu_eemc_mup, m_mumu_eop_mum, m_mumu_eop_mup, m_mumu_mass, m_mumu_nhit, m_mumu_nlay, m_mumu_nneu, m_mumu_p_mum, m_mumu_p_mup, m_mumu_phi_mum, m_mumu_phi_mup, m_mumu_pidchidedx_mum, m_mumu_pidchidedx_mup, m_mumu_pidchitof1_mum, m_mumu_pidchitof1_mup, m_mumu_pidchitof2_mum, m_mumu_pidchitof2_mup, m_mumu_px_mum, m_mumu_px_mup, m_mumu_py_mum, m_mumu_py_mup, m_mumu_pz_mum, m_mumu_pz_mup, m_mumu_x_mum, m_mumu_x_mup, m_mumu_y_mum, m_mumu_y_mup, m_mumu_z_mum, m_mumu_z_mup, m_ncharg, m_nem, m_nemchits, m_nep, m_nGam, m_ngch, m_nhit_muc, m_nlay_muc, m_nmum, m_nmup, m_nneu, m_normPH, m_npart, m_nSeed, m_p, m_phi, m_phi_emc, m_pidchiDedx, m_pidchiTof1, m_pidchiTof2, m_pidcode, m_pidprob, m_poeb1, m_poeb2, m_poeb_mu_cut, m_probPH, m_px, m_px_cms_em, m_px_cms_ep, m_py, m_py_cms_em, m_py_cms_ep, m_pz, m_pz_cms_em, m_pz_cms_ep, m_qual_btof1, m_qual_btof2, m_qual_etof, m_rec, m_run, m_secondMoment, m_t_btof, m_t_etof, m_theta, m_theta_emc, m_thit, m_tof_btof1, m_tof_btof2, m_tof_etof, m_tpoebh_mu_cut, m_tpoebl_mu_cut, m_tptotal_mu_cut, m_tuple1, m_useMUC, m_usePID, m_useTOF, m_vr0cut, m_vx0, m_vy0, m_vz0, m_vz0cut, m_writentuple, m_x, m_y, m_z, DstMdcKalTrack::mass(), DstEmcShower::module(), mpsi2s, msgSvc(), DstMdcKalTrack::muon, ndimu, DstEmcShower::numHits(), WTrackParameter::p(), DstMdcKalTrack::p(), DstMdcTrack::p(), p_cms(), DstEmcShower::phi(), phi0, pi, pid, IVertexDbSvc::PrimaryVertex(), DstMdcKalTrack::px(), DstMdcTrack::px(), DstMdcKalTrack::pxy(), DstMdcKalTrack::py(), DstMdcTrack::py(), DstMdcKalTrack::pz(), DstMdcTrack::pz(), DstEmcShower::secondMoment(), DstMdcKalTrack::setPidType(), IVertexDbSvc::SigmaPrimaryVertex(), sin(), DstEmcShower::theta(), DstEmcShower::time(), u_cms, velc, DstMdcKalTrack::x(), x, DstEmcShower::x(), DstMdcTrack::x(), xmass, DstMdcKalTrack::y(), DstEmcShower::y(), DstMdcTrack::y(), DstMdcKalTrack::z(), DstEmcShower::z(), and DstMdcTrack::z().
00374 { 00375 setFilterPassed(false); 00376 const double beamEnergy = m_ecms/2.; 00377 const HepLorentzVector p_cms(m_ecms*sin(m_beamangle*0.5),0.0,0.0,m_ecms); 00378 const Hep3Vector u_cms = -p_cms.boostVector(); 00379 MsgStream log(msgSvc(), name()); 00380 log << MSG::INFO << "in execute()" << endreq; 00381 00382 00383 SmartDataPtr<Event::EventHeader> eventHeader(eventSvc(),"/Event/EventHeader"); 00384 if (!eventHeader) 00385 { 00386 log << MSG::FATAL << "Could not find Event Header" << endreq; 00387 return StatusCode::SUCCESS; 00388 } 00389 00390 m_run = eventHeader->runNumber(); 00391 m_rec = eventHeader->eventNumber(); 00392 00393 00394 00395 00396 SmartDataPtr<EvtRecEvent> evtRecEvent(eventSvc(), EventModel::EvtRec::EvtRecEvent); 00397 if (!evtRecEvent) 00398 { 00399 log << MSG::FATAL << "Could not find EvtRecEvent" << endreq; 00400 return StatusCode::SUCCESS; 00401 } 00402 log << MSG::INFO <<"ncharg, nneu, tottks = " 00403 << evtRecEvent->totalCharged() << " , " 00404 << evtRecEvent->totalNeutral() << " , " 00405 << evtRecEvent->totalTracks() <<endreq; 00406 // if(evtRecEvent->totalNeutral()>30)return sc; 00407 m_ncharg = evtRecEvent->totalCharged(); 00408 00409 m_nneu = evtRecEvent->totalNeutral(); 00410 00411 00412 00413 HepPoint3D vx(0., 0., 0.); 00414 HepSymMatrix Evx(3, 0); 00415 IVertexDbSvc* vtxsvc; 00416 Gaudi::svcLocator()->service("VertexDbSvc", vtxsvc); 00417 if(vtxsvc->isVertexValid()){ 00418 double* dbv = vtxsvc->PrimaryVertex(); 00419 double* vv = vtxsvc->SigmaPrimaryVertex(); 00420 // if (m_reader.isRunNumberValid( m_run)) { 00421 // HepVector dbv = m_reader.PrimaryVertex( m_run); 00422 // HepVector vv = m_reader.SigmaPrimaryVertex( m_run); 00423 vx.setX(dbv[0]); 00424 vx.setY(dbv[1]); 00425 vx.setZ(dbv[2]); 00426 Evx[0][0]=vv[0]*vv[0]; 00427 Evx[0][1]=vv[0]*vv[1]; 00428 Evx[1][1]=vv[1]*vv[1]; 00429 Evx[1][2]=vv[1]*vv[2]; 00430 Evx[2][2]=vv[2]*vv[2]; 00431 } 00432 00433 SmartDataPtr<EvtRecTrackCol> evtRecTrkCol(eventSvc(), EventModel::EvtRec::EvtRecTrackCol); 00434 if (!evtRecTrkCol) 00435 { 00436 log << MSG::FATAL << "Could not find EvtRecTrackCol" << endreq; 00437 return StatusCode::SUCCESS; 00438 } 00439 Vint iGood; 00440 iGood.clear(); 00441 00442 int nCharge = 0; 00443 00444 for(int i = 0; i < evtRecEvent->totalCharged(); i++){ 00445 EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + i; 00446 if(!(*itTrk)->isMdcTrackValid()) continue; 00447 if(!(*itTrk)->isMdcKalTrackValid()) continue; 00448 00449 RecMdcTrack *mdcTrk = (*itTrk)->mdcTrack(); 00450 double pch=mdcTrk->p(); 00451 double x0=mdcTrk->x(); 00452 double y0=mdcTrk->y(); 00453 double z0=mdcTrk->z(); 00454 double phi0=mdcTrk->helix(1); 00455 double xv=vx.x(); 00456 double yv=vx.y(); 00457 double zv=vx.z(); 00458 double Rxy=(x0-xv)*cos(phi0)+(y0-yv)*sin(phi0); 00459 double m_vx0 = x0; 00460 double m_vy0 = y0; 00461 double m_vz0 = z0; 00462 double m_vr0 = Rxy; 00463 if(fabs(z0) >= m_vz0cut) continue; 00464 if(fabs(Rxy) >= m_vr0cut) continue; 00465 00466 00467 if(fabs(m_vz0) >= m_vz0cut) continue; 00468 if(m_vr0 >= m_vr0cut) continue; 00469 00470 // double cost = cos(mdcTrk->theta()); 00471 // if(fabs(cost) >= m_coscut ) continue; 00472 // iGood.push_back((*itTrk)->trackId()); 00473 iGood.push_back(i); 00474 nCharge += mdcTrk->charge(); 00475 00476 } 00477 00478 00479 00480 00481 00482 // 00483 // Finish Good Charged Track Selection 00484 // 00485 int nGood = iGood.size(); 00486 m_ngch=nGood; 00487 log << MSG::DEBUG << "ngood, totcharge = " << nGood << " , " << nCharge << endreq; 00488 00489 if((nGood != 2)||(nCharge!=0)){ 00490 return StatusCode::SUCCESS; 00491 } 00492 00493 counter[1]++; 00494 00495 // 00496 // Particle ID 00497 // 00498 Vint ipip, ipim, iep,iem,imup,imum; 00499 ipip.clear(); 00500 ipim.clear(); 00501 iep.clear(); 00502 iem.clear(); 00503 imup.clear(); 00504 imum.clear(); 00505 00506 00507 ParticleID *pid = ParticleID::instance(); 00508 for(int i = 0; i < m_ngch; i++) { 00509 EvtRecTrackIterator itTrk = evtRecTrkCol->begin() + iGood[i]; 00510 // if(pid) delete pid; 00511 pid->init(); 00512 pid->setMethod(pid->methodProbability()); 00513 pid->setChiMinCut(4); 00514 pid->setRecTrack(*itTrk); 00515 pid->usePidSys(pid->useDedx() | pid->useTof1() | pid->useTof2());//|pid->useEmc()|pid->useMuc()); // use PID sub-system 00516 pid->identify(pid->onlyElectron()|pid->onlyMuon()|pid->onlyPion()); // seperater Pion/Kaon/Proton 00517 pid->calculate(); 00518 if(!(pid->IsPidInfoValid())) continue; 00519 RecMdcTrack* mdcTrk = (*itTrk)->mdcTrack(); 00522 double prob_pi = pid->probPion(); 00523 double prob_K = pid->probKaon(); 00524 double prob_p = pid->probProton(); 00525 double prob_e = pid->probElectron(); 00526 double prob_mu = pid->probMuon(); 00527 // std::cout << "prob "<< prob_pi << ", "<< prob_K << ", "<< prob_p << std::endl; 00528 HepLorentzVector ptrk; 00529 ptrk.setPx(mdcTrk->px()) ; 00530 ptrk.setPy(mdcTrk->py()) ; 00531 ptrk.setPz(mdcTrk->pz()) ; 00532 double p3 = ptrk.mag() ; 00533 00534 00535 00536 m_pidcode[i]=1; 00537 m_pidprob[i]=pid->prob(1); 00538 m_pidchiDedx[i]=pid->chiDedx(1); 00539 m_pidchiTof1[i]=pid->chiTof1(1); 00540 m_pidchiTof2[i]=pid->chiTof2(1); 00541 if(mdcTrk->charge() > 0) { 00542 imup.push_back(iGood[i]); 00543 00544 } 00545 if (mdcTrk->charge() < 0) { 00546 imum.push_back(iGood[i]); 00547 00548 } 00549 00550 00551 } 00552 00553 m_nep = iep.size() ; 00554 m_nem = iem.size() ; 00555 m_nmup = imup.size() ; 00556 m_nmum = imum.size() ; 00557 00558 counter[2]++; 00559 00560 // 00561 // Good neutral track selection 00562 // 00563 Vint iGam; 00564 iGam.clear(); 00565 int iphoton=0; 00566 for(int i = evtRecEvent->totalCharged(); i< evtRecEvent->totalTracks(); i++) { 00567 if(i>=evtRecTrkCol->size())break; 00568 EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + i; 00569 if(!(*itTrk)->isEmcShowerValid()) continue; 00570 RecEmcShower *emcTrk = (*itTrk)->emcShower(); 00571 Hep3Vector emcpos(emcTrk->x(), emcTrk->y(), emcTrk->z()); 00572 00573 RecEmcID showerId = emcTrk->getShowerId(); 00574 unsigned int npart = EmcID::barrel_ec(showerId); 00575 int n = emcTrk->numHits(); 00576 int module=emcTrk->module(); 00577 double x = emcTrk->x(); 00578 double y = emcTrk->y(); 00579 double z = emcTrk->z(); 00580 double dx = emcTrk->dx(); 00581 double dy = emcTrk->dy(); 00582 double dth = emcTrk->dtheta(); 00583 double dph = emcTrk->dphi(); 00584 double dz = emcTrk->dz(); 00585 double energy = emcTrk->energy(); 00586 double dE = emcTrk->dE(); 00587 double eSeed = emcTrk->eSeed(); 00588 double e3x3 = emcTrk->e3x3(); 00589 double e5x5 = emcTrk->e5x5(); 00590 double secondMoment = emcTrk->secondMoment(); 00591 double latMoment = emcTrk->latMoment(); 00592 double getTime = emcTrk->time(); 00593 double getEAll = emcTrk->getEAll(); 00594 double a20Moment = emcTrk->a20Moment(); 00595 double a42Moment = emcTrk->a42Moment(); 00596 // int phigap=emcTrk->PhiGap(); 00597 // int thetagap=emcTrk->ThetaGap(); 00598 // double getETof2x1 = emcTrk->getETof2x1(); 00599 // double getETof2x3 = emcTrk->getETof2x3(); 00600 // double getELepton = emcTrk->getELepton(); 00601 double nseed=0;//(emcTrk->getCluster() )->getSeedSize() ; 00602 HepPoint3D EmcPos(x,y,z); 00603 m_nemchits[iphoton]=n; 00604 m_npart[iphoton]=npart; 00605 m_module[iphoton]=module; 00606 m_theta[iphoton]=EmcPos.theta(); 00607 m_phi[iphoton]=EmcPos.phi(); 00608 m_x[iphoton]=x; 00609 m_y[iphoton]=y; 00610 m_z[iphoton]=z; 00611 m_dx[iphoton]=dx; 00612 m_dy[iphoton]=dy; 00613 m_dz[iphoton]=dz; 00614 m_dtheta[iphoton]=dth; 00615 m_dphi[iphoton]=dph; 00616 m_energy[iphoton]=energy; 00617 m_dE[iphoton]=dE; 00618 m_eSeed[iphoton]=eSeed; 00619 m_nSeed[iphoton]=nseed; 00620 m_e3x3[iphoton]=e3x3; 00621 m_e5x5[iphoton]=e5x5; 00622 m_secondMoment[iphoton]=secondMoment; 00623 m_latMoment[iphoton]=latMoment; 00624 m_getTime[iphoton]=getTime; 00625 m_getEAll[iphoton]=getEAll; 00626 m_a20Moment[iphoton]=a20Moment; 00627 m_a42Moment[iphoton]=a42Moment; 00628 00629 // m_getELepton[iphoton]=getELepton; 00630 // m_getETof2x1[iphoton]=getETof2x1; 00631 // m_getETof2x3[iphoton]=getETof2x3; 00632 // m_PhiGap[iphoton]=phigap; 00633 // m_ThetaGap[iphoton]=thetagap; 00634 double dthe = 200.; 00635 double dphi = 200.; 00636 double dang = 200.; 00637 00638 // find the nearest charged track 00639 for(int j = 0; j < nGood; j++) { 00640 00641 00642 EvtRecTrackIterator jtTrk = evtRecTrkCol->begin() +iGood[j]; 00643 if (!(*jtTrk)->isMdcTrackValid()) continue; 00644 RecMdcTrack *jtmdcTrk = (*jtTrk)->mdcTrack(); 00645 double jtcharge = jtmdcTrk->charge(); 00646 if(!(*jtTrk)->isExtTrackValid()) continue; 00647 RecExtTrack *extTrk = (*jtTrk)->extTrack(); 00648 if(extTrk->emcVolumeNumber() == -1) continue; 00649 Hep3Vector extpos = extTrk->emcPosition(); 00650 // double ctht = extpos.cosTheta(emcpos); 00651 double angd = extpos.angle(emcpos); 00652 double thed = extpos.theta() - emcpos.theta(); 00653 double phid = extpos.deltaPhi(emcpos); 00654 thed = fmod(thed+CLHEP::twopi+CLHEP::twopi+pi, CLHEP::twopi) - CLHEP::pi; 00655 phid = fmod(phid+CLHEP::twopi+CLHEP::twopi+pi, CLHEP::twopi) - CLHEP::pi; 00656 00657 if(fabs(thed) < fabs(dthe)) dthe = thed; 00658 if(fabs(phid) < fabs(dphi)) dphi = phid; 00659 if(angd < dang) dang = angd; 00660 00661 } 00662 00663 00664 00665 // 00666 // good photon cut will be set here 00667 // 00668 00669 dthe = dthe * 180 / (CLHEP::pi); 00670 dphi = dphi * 180 / (CLHEP::pi); 00671 dang = dang * 180 / (CLHEP::pi); 00672 double eraw = emcTrk->energy(); 00673 double phi = emcTrk->phi(); 00674 double the = emcTrk->theta(); 00675 00676 m_delphi[iphoton]=dphi; 00677 m_delthe[iphoton]=dthe; 00678 m_delang[iphoton]=dang; 00679 if(energy < m_energyThreshold) continue; 00680 if(getTime>m_gammathCut||getTime<m_gammatlCut)continue; 00681 // if((fabs(dthe) < m_gammaThetaCut) && (fabs(dphi)<m_gammaPhiCut) ) continue; 00682 if(dang< m_gammaTrkCut) continue; 00683 iphoton++; 00684 iGam.push_back(i); 00685 if(iphoton>=40)return StatusCode::SUCCESS; 00686 } 00687 00688 int nGam = iGam.size(); 00689 m_nGam=nGam; 00690 // std::cout << "num Good Photon " << m_nGam << " , " <<evtRecEvent->totalNeutral()<<std::endl; 00691 //std::cout<<"dbg_4"<<std::endl; 00692 counter[3]++; 00693 00694 double egam_ext=0; 00695 double ex_gam=0; 00696 double ey_gam=0; 00697 double ez_gam=0; 00698 double et_gam=0; 00699 double e_gam=0; 00700 for(int i = 0; i < m_nGam; i++) { 00701 EvtRecTrackIterator itTrk = evtRecTrkCol->begin()+ iGam[i]; 00702 if(!(*itTrk)->isEmcShowerValid()) continue; 00703 RecEmcShower* emcTrk = (*itTrk)->emcShower(); 00704 double eraw = emcTrk->energy(); 00705 double phi = emcTrk->phi(); 00706 double the = emcTrk->theta(); 00707 HepLorentzVector ptrk; 00708 ex_gam+=eraw*sin(the)*cos(phi); 00709 ey_gam+=eraw*sin(the)*sin(phi); 00710 ez_gam+=eraw*cos(the); 00711 et_gam+=eraw*sin(the); 00712 e_gam+=eraw ; 00713 if(eraw>=egam_ext) 00714 { 00715 egam_ext=eraw; 00716 } 00717 00718 } 00719 00720 00721 00722 00723 00724 double px_had=0; 00725 double py_had=0; 00726 double pz_had=0; 00727 double pt_had=0; 00728 double p_had=0; 00729 double e_had=0; 00730 // 00731 // check good charged track's infomation 00732 // 00733 int ii ; 00734 m_e_emc[0]=-0.1; 00735 m_e_emc[1]=-0.1; 00736 for(int i = 0; i < m_ngch; i++ ){ 00737 00738 EvtRecTrackIterator itTrk = evtRecTrkCol->begin() + iGood[i]; 00739 00740 if(!(*itTrk)->isMdcTrackValid()) continue; // MDC information 00741 if(!(*itTrk)->isMdcKalTrackValid()) continue; 00742 // if(!(*itTrk)->isEmcShowerValid()) return StatusCode::SUCCESS;///dbg 00743 RecMdcTrack* mdcTrk = (*itTrk)->mdcTrack(); 00744 RecMdcKalTrack *mdcKalTrk = (*itTrk)->mdcKalTrack(); 00745 ii=i; 00746 00747 00748 m_charge[ii] = mdcTrk->charge(); 00749 m_vx0[ii] = mdcTrk->x(); 00750 m_vy0[ii] = mdcTrk->y(); 00751 m_vz0[ii] = mdcTrk->z(); 00752 00753 00754 m_px[ii] = mdcTrk->px(); 00755 m_py[ii] = mdcTrk->py(); 00756 m_pz[ii] = mdcTrk->pz(); 00757 m_p[ii] = mdcTrk->p(); 00758 00759 00760 mdcKalTrk->setPidType(RecMdcKalTrack::muon); 00761 00762 00765 m_kal_vx0[ii] = mdcKalTrk->x(); 00766 m_kal_vy0[ii] = mdcKalTrk->y(); 00767 m_kal_vz0[ii] = mdcKalTrk->z(); 00768 00769 00770 m_kal_px[ii] = mdcKalTrk->px(); 00771 m_kal_py[ii] = mdcKalTrk->py(); 00772 m_kal_pz[ii] = mdcKalTrk->pz(); 00773 m_kal_p[ii] = mdcKalTrk->p(); 00774 00775 00776 px_had+=mdcKalTrk->px(); 00777 py_had+=mdcKalTrk->py(); 00778 pz_had+=mdcKalTrk->pz(); 00779 pt_had+=mdcKalTrk->pxy(); 00780 p_had+=mdcKalTrk->p(); 00781 e_had+=sqrt(mdcKalTrk->p()*mdcKalTrk->p()+mdcKalTrk->mass()*mdcKalTrk->mass()); 00782 00783 double ptrk = mdcKalTrk->p() ; 00784 00785 00786 if((*itTrk)->isMdcDedxValid()) { // DEDX information 00787 00788 RecMdcDedx* dedxTrk = (*itTrk)->mdcDedx(); 00789 m_probPH[ii]= dedxTrk->probPH(); 00790 m_normPH[ii]= dedxTrk->normPH(); 00791 00792 m_chie[ii] = dedxTrk->chiE(); 00793 m_chimu[ii] = dedxTrk->chiMu(); 00794 m_chipi[ii] = dedxTrk->chiPi(); 00795 m_chik[ii] = dedxTrk->chiK(); 00796 m_chip[ii] = dedxTrk->chiP(); 00797 m_ghit[ii] = dedxTrk->numGoodHits(); 00798 m_thit[ii] = dedxTrk->numTotalHits(); 00799 } 00800 00801 if((*itTrk)->isEmcShowerValid()) { 00802 00803 RecEmcShower *emcTrk = (*itTrk)->emcShower(); 00804 m_e_emc[ii] = emcTrk->energy(); 00805 m_phi_emc[ii] = emcTrk->phi(); 00806 m_theta_emc[ii] = emcTrk->theta(); 00807 } 00808 00809 00810 if((*itTrk)->isMucTrackValid()){ 00811 00812 RecMucTrack* mucTrk = (*itTrk)->mucTrack() ; 00813 m_nhit_muc[ii] = mucTrk->numHits() ; 00814 m_nlay_muc[ii] = mucTrk->numLayers() ; 00815 00816 } 00817 00818 if((*itTrk)->isTofTrackValid()) { //TOF information 00819 00820 SmartRefVector<RecTofTrack> tofTrkCol = (*itTrk)->tofTrack(); 00821 00822 SmartRefVector<RecTofTrack>::iterator iter_tof = tofTrkCol.begin(); 00823 00824 for(;iter_tof != tofTrkCol.end(); iter_tof++ ) { 00825 TofHitStatus *status = new TofHitStatus; 00826 status->setStatus((*iter_tof)->status()); 00827 00828 if(!(status->is_barrel())){//endcap 00829 if( (status->is_cluster()) ) m_t_etof[ii] = (*iter_tof)->tof(); 00830 if( !(status->is_counter()) ){ if(status) delete status; continue;} // ? 00831 if( status->layer()!=0 ) { if(status) delete status;continue;}//layer1 00832 double path=(*iter_tof)->path(); // ? 00833 double tof = (*iter_tof)->tof(); 00834 double ph = (*iter_tof)->ph(); 00835 double rhit = (*iter_tof)->zrhit(); 00836 double qual = 0.0 + (*iter_tof)->quality(); 00837 double cntr = 0.0 + (*iter_tof)->tofID(); 00838 double texp[5]; 00839 for(int j = 0; j < 5; j++) { 00840 double gb = ptrk/xmass[j]; 00841 double beta = gb/sqrt(1+gb*gb); 00842 texp[j] = path /beta/velc; 00843 } 00844 00845 m_qual_etof[ii] = qual; 00846 m_tof_etof[ii] = tof ; 00847 } 00848 else {//barrel 00849 if( (status->is_cluster()) ) m_t_btof[ii] = (*iter_tof)->tof(); 00850 if( !(status->is_counter()) ){ if(status) delete status; continue;} // ? 00851 if(status->layer()==1){ //layer1 00852 double path=(*iter_tof)->path(); // ? 00853 double tof = (*iter_tof)->tof(); 00854 double ph = (*iter_tof)->ph(); 00855 double rhit = (*iter_tof)->zrhit(); 00856 double qual = 0.0 + (*iter_tof)->quality(); 00857 double cntr = 0.0 + (*iter_tof)->tofID(); 00858 double texp[5]; 00859 for(int j = 0; j < 5; j++) { 00860 double gb = ptrk/xmass[j]; 00861 double beta = gb/sqrt(1+gb*gb); 00862 texp[j] = path /beta/velc; 00863 } 00864 00865 m_qual_btof1[ii] = qual; 00866 m_tof_btof1[ii] = tof ; 00867 } 00868 00869 if(status->layer()==2){//layer2 00870 double path=(*iter_tof)->path(); // ? 00871 double tof = (*iter_tof)->tof(); 00872 double ph = (*iter_tof)->ph(); 00873 double rhit = (*iter_tof)->zrhit(); 00874 double qual = 0.0 + (*iter_tof)->quality(); 00875 double cntr = 0.0 + (*iter_tof)->tofID(); 00876 double texp[5]; 00877 for(int j = 0; j < 5; j++) { 00878 double gb = ptrk/xmass[j]; 00879 double beta = gb/sqrt(1+gb*gb); 00880 texp[j] = path /beta/velc; 00881 } 00882 00883 m_qual_btof2[ii] = qual; 00884 m_tof_btof2[ii] = tof ; 00885 } 00886 } 00887 if(status) delete status; 00888 } 00889 } 00890 00891 } 00892 counter[4]++; 00893 00894 //std::cout<<"dbg_5"<<std::endl; 00895 //tag 00896 00897 00898 m_dimutag=0; 00899 if(m_ngch != 2 || nCharge != 0 ) return StatusCode::SUCCESS; 00900 00901 EvtRecTrackIterator itTrk1; 00902 00903 EvtRecTrackIterator itTrk2; 00904 00905 RecMdcKalTrack *mdcKalTrk1; 00906 00907 RecMdcKalTrack *mdcKalTrk2; 00908 00909 HepLorentzVector p41e,p42e,p4le; 00910 Hep3Vector p31e,p32e,p3le; 00911 HepLorentzVector p41m,p42m,p4lm; 00912 Hep3Vector p31m,p32m,p3lm; 00913 HepLorentzVector p41h,p42h,p4lh; 00914 Hep3Vector p31h,p32h,p3lh; 00915 WTrackParameter w1_ini; 00916 WTrackParameter w2_ini; 00917 int iip=-1; 00918 int iim=-1; 00919 for(int i = 0; i < m_ngch; i++ ){ 00920 if(m_charge[i]>0)itTrk1= evtRecTrkCol->begin() + iGood[i]; 00921 if(m_charge[i]<0) itTrk2= evtRecTrkCol->begin() + iGood[i]; 00922 if(m_charge[i]>0) mdcKalTrk1 = (*itTrk1)->mdcKalTrack(); 00923 if(m_charge[i]<0) mdcKalTrk2 = (*itTrk2)->mdcKalTrack(); 00924 if(m_charge[i]>0)iip=i; 00925 if(m_charge[i]<0)iim=i; 00926 00927 00928 if(m_charge[i]>0) w1_ini=WTrackParameter (xmass[1],mdcKalTrk1->getZHelixMu(),mdcKalTrk1->getZErrorMu()); 00929 if(m_charge[i]<0) w2_ini=WTrackParameter (xmass[1],mdcKalTrk2 ->getZHelixMu(),mdcKalTrk2 ->getZErrorMu()); 00930 00931 00932 if(m_charge[i]>0) p41m =w1_ini.p(); 00933 if(m_charge[i]<0) p42m =w2_ini.p(); 00934 if(m_charge[i]>0) p41m.boost(u_cms); 00935 if(m_charge[i]<0) p42m.boost(u_cms); 00936 if(m_charge[i]>0) p31m = p41m.vect(); 00937 if(m_charge[i]<0) p32m = p42m.vect(); 00938 00939 00940 if(m_charge[i]>0){ 00941 m_px_cms_ep=p41m.px(); 00942 m_py_cms_ep=p41m.py(); 00943 m_pz_cms_ep=p41m.pz(); 00944 m_e_cms_ep=p41m.e(); 00945 } 00946 if(m_charge[i]<0){ 00947 m_px_cms_em=p42m.px(); 00948 m_py_cms_em=p42m.py(); 00949 m_pz_cms_em=p42m.pz(); 00950 m_e_cms_em=p42m.e(); 00951 } 00952 00953 00954 } 00955 00956 double e01=(iip!=-1)?m_e_emc[iip]:0;//m_e_cms_ep; 00957 double e02=(iim!=-1)?m_e_emc[iim]:0;//m_e_cms_em; 00958 int ilarge=( e01 > e02 ) ?iip:iim; 00959 00960 p4lm=( e01 > e02 ) ?p41m:p42m; 00961 00962 00963 p3lm=( e01 > e02 ) ?p31m:p32m; 00964 00965 00966 double acollm= 180.-p31m.angle(p32m)* 180.0 / CLHEP::pi; 00967 double acoplm= 180.- (p31m.perpPart()).angle(p32m.perpPart ())* 180.0 / CLHEP::pi; 00968 double poeb1m=p41m.rho()/beamEnergy; 00969 double poeb2m=p42m.rho()/beamEnergy; 00970 double poeblm=p4lm.rho()/beamEnergy; 00971 00972 double eemc1=m_e_emc[iip]; 00973 double eemc2=m_e_emc[iim]; 00974 00975 00976 double ex1=m_kal_vx0[iip]; 00977 double ey1=m_kal_vy0[iip]; 00978 double ez1=m_kal_vz0[iip]; 00979 double epx1=m_kal_px[iip]; 00980 double epy1=m_kal_py[iip]; 00981 double epz1=m_kal_pz[iip]; 00982 double epp1=m_kal_p[iip]; 00983 double ex2=m_kal_vx0[iim]; 00984 double ey2=m_kal_vy0[iim]; 00985 double ez2=m_kal_vz0[iim]; 00986 double epx2=m_kal_px[iim]; 00987 double epy2=m_kal_py[iim]; 00988 double epz2=m_kal_pz[iim]; 00989 double epp2=m_kal_p[iim]; 00990 00991 double pidchidedx1=m_pidchiDedx[iip]; 00992 double pidchitof11= m_pidchiTof1[iip]; 00993 double pidchitof21= m_pidchiTof2[iip]; 00994 double pidchidedx2=m_pidchiDedx[iim]; 00995 double pidchitof12= m_pidchiTof1[iim]; 00996 double pidchitof22= m_pidchiTof2[iim]; 00997 00998 double eoeb1=m_e_emc[iip]/beamEnergy; 00999 double eoeb2=m_e_emc[iim]/beamEnergy; 01000 01001 01002 double eopm1=0; 01003 if(p41m.rho()>0)eopm1=m_e_emc[iip]/p41m.rho(); 01004 double eopm2=0; 01005 if(p42m.rho()>0)eopm2=m_e_emc[iim]/p42m.rho(); 01006 01007 01008 double exoeb1= m_e_emc[iip]*sin(m_theta_emc[iip])*cos(m_phi_emc[iip])/beamEnergy; 01009 double eyoeb1= m_e_emc[iip]*sin(m_theta_emc[iip])*sin(m_phi_emc[iip])/beamEnergy; 01010 double ezoeb1=m_e_emc[iip]*cos(m_theta_emc[iip])/beamEnergy; 01011 double etoeb1=m_e_emc[iip]*sin(m_theta_emc[iip])/beamEnergy; 01012 01013 double exoeb2= m_e_emc[iim]*sin(m_theta_emc[iim])*cos(m_phi_emc[iim])/beamEnergy; 01014 double eyoeb2= m_e_emc[iim]*sin(m_theta_emc[iim])*sin(m_phi_emc[iim])/beamEnergy; 01015 double ezoeb2=m_e_emc[iim]*cos(m_theta_emc[iim])/beamEnergy; 01016 double etoeb2=m_e_emc[iim]*sin(m_theta_emc[iim])/beamEnergy; 01017 01018 double eoebl=m_e_emc[ilarge]/beamEnergy; 01019 01020 double eopl=0; 01021 if(p4lm.rho()>0)eopl=m_e_emc[ilarge]/p4lh.rho(); 01022 01023 double exoebl= m_e_emc[ilarge]*sin(m_theta_emc[ilarge])*cos(m_phi_emc[ilarge])/beamEnergy; 01024 double eyoebl= m_e_emc[ilarge]*sin(m_theta_emc[ilarge])*sin(m_phi_emc[ilarge])/beamEnergy; 01025 double ezoebl=m_e_emc[ilarge]*cos(m_theta_emc[ilarge])/beamEnergy; 01026 double etoebl=m_e_emc[ilarge]*sin(m_theta_emc[ilarge])/beamEnergy; 01027 01028 int mucinfo1=(m_nhit_muc[iip]>=2&&m_nlay_muc[iip]>=2 ) ? 1 : 0; 01029 int mucinfo2=(m_nhit_muc[iim]>=2&&m_nlay_muc[iim]>=2) ? 1 : 0; 01030 int mucinfol=(m_nhit_muc[ilarge]>=2&&m_nlay_muc[ilarge]>=2) ? 1 : 0; 01031 int pidel=( e01 > e02 ) ? m_nep : m_nem; 01032 int pidmul=( e01 > e02 ) ? m_nmup : m_nmum; 01033 double deltatof=0; 01034 01035 if(m_t_btof[iip]*m_t_btof[iim]!=0) deltatof+=fabs(m_t_btof[iip]-m_t_btof[iim]); 01036 if(m_t_etof[iip]*m_t_etof[iim]!=0) deltatof+=fabs(m_t_etof[iip]-m_t_etof[iim]); 01037 01038 01039 if(acollm<m_acoll_mu_cut)m_dimutag+=1; 01040 if (acoplm<m_acopl_mu_cut)m_dimutag+=10; 01041 if (fabs(m_ecms-mpsi2s)<0.001){ 01042 if((sqrt(((poeb1m-poeb2m)/0.35)*((poeb1m-poeb2m)/0.35)+((poeb1m+poeb2m-1.68)/0.125)*((poeb1m+poeb2m-1.68)/0.125))>m_tptotal_mu_cut) 01043 &&(((poeb1m>=m_tpoebh_mu_cut)&&(poeb2m>=m_tpoebl_mu_cut)) 01044 ||((poeb2m>=m_tpoebh_mu_cut)&&(poeb1m>=m_tpoebl_mu_cut))))m_dimutag+=100; 01045 } 01046 else{ 01047 if((fabs(poeb1m-1)<m_poeb_mu_cut)&&(fabs(poeb2m-1)<m_poeb_mu_cut))m_dimutag+=100; 01048 } 01049 if(!m_useTOF||(deltatof<m_dtof_mu_cut))m_dimutag+=1000; 01050 if(!m_useMUC||(mucinfo1==1&&mucinfo2==1))m_dimutag+=10000; 01051 if(etoeb1<m_eoeb_mu_cut&&eoeb2<m_eoeb_mu_cut)m_dimutag+=100000; 01052 if(etoeb1+etoeb2<m_etotal_mu_cut)m_dimutag+=1000000; 01053 if(!m_usePID||(m_nmup==1&&m_nmum==1))m_dimutag+=10000000; 01054 01055 01056 01057 01058 01059 01060 01061 m_acoll=acollm; 01062 m_acopl=acoplm; 01063 m_poeb1=poeb1m; 01064 m_poeb2=poeb2m; 01065 m_eop1=eopm1; 01066 m_eop2=eopm2; 01067 m_cos_ep=p41m.cosTheta (); 01068 m_cos_em=p42m.cosTheta (); 01069 m_mass_ee=(p41m+p42m).m(); 01070 01071 m_deltatof=deltatof; 01072 01073 m_eoeb1=eoeb1; 01074 m_eoeb2=eoeb2; 01075 01076 m_etoeb1=etoeb1; 01077 m_etoeb2=etoeb2; 01078 m_mucinfo1=mucinfo1; 01079 m_mucinfo2=mucinfo2; 01080 01081 if(m_dimutag==11111111){ 01082 ndimu++; 01083 if(m_writentuple)m_tuple1 -> write(); 01085 // DQA 01086 // set tag and quality 01087 01088 // Pid: 1 - electron, 2 - muon, 3 - pion, 4 - kaon, 5 - proton 01089 (*itTrk1)->setPartId(2); 01090 (*itTrk2)->setPartId(2); 01091 01092 // Quality: defined by whether dE/dx or TOF is used to identify particle 01093 // 0 - no dE/dx, no TOF (can be used for dE/dx and TOF calibration) 01094 // 1 - only dE/dx (can be used for TOF calibration) 01095 // 2 - only TOF (can be used for dE/dx calibration) 01096 // 3 - Both dE/dx and TOF 01097 01098 (*itTrk1)->setQuality(0); 01099 (*itTrk2)->setQuality(0); 01100 // DQA 01101 // Add the line below at the end of execute(), (before return) 01102 // 01103 setFilterPassed(true); 01105 01106 01107 01108 m_mumu_mass->Fill((p41m+p42m).m()); 01109 m_mumu_acoll->Fill(acollm); 01110 m_mumu_eop_mup->Fill(eopm1); 01111 m_mumu_eop_mum->Fill(eopm2); 01112 m_mumu_costheta_mup->Fill(p41m.cosTheta ()); 01113 m_mumu_costheta_mum->Fill(p42m.cosTheta ()); 01114 m_mumu_phi_mup->Fill(p41m.phi ()); 01115 m_mumu_phi_mum->Fill(p42m.phi ()); 01116 m_mumu_nneu->Fill(m_nGam); 01117 m_mumu_nhit->Fill(m_nhit_muc[ilarge]); 01118 m_mumu_nlay->Fill(m_nlay_muc[ilarge]); 01119 01120 01121 m_mumu_eemc_mup->Fill(eemc1); 01122 m_mumu_eemc_mum->Fill(eemc2); 01123 01124 m_mumu_x_mup->Fill(ex1); 01125 m_mumu_y_mup->Fill(ey1); 01126 m_mumu_z_mup->Fill(ez1); 01127 01128 m_mumu_x_mum->Fill(ex2); 01129 m_mumu_y_mum->Fill(ey2); 01130 m_mumu_z_mum->Fill(ez2); 01131 01132 01133 m_mumu_px_mup->Fill(epx1); 01134 m_mumu_py_mup->Fill(epy1); 01135 m_mumu_pz_mup->Fill(epz1); 01136 m_mumu_p_mup->Fill(epp1); 01137 01138 m_mumu_px_mum->Fill(epx2); 01139 m_mumu_py_mum->Fill(epy2); 01140 m_mumu_pz_mum->Fill(epz2); 01141 m_mumu_p_mum->Fill(epp2); 01142 01143 m_mumu_deltatof->Fill(deltatof); 01144 01145 m_mumu_pidchidedx_mup->Fill(pidchidedx1); 01146 m_mumu_pidchidedx_mum->Fill(pidchidedx2); 01147 m_mumu_pidchitof1_mup->Fill(pidchitof11); 01148 m_mumu_pidchitof1_mum->Fill(pidchitof12); 01149 m_mumu_pidchitof2_mup->Fill(pidchitof21); 01150 m_mumu_pidchitof2_mum->Fill(pidchitof22); 01151 01152 01153 01154 } 01155 01156 01157 01158 01159 01160 01161 01162 01163 return StatusCode::SUCCESS; 01164 01165 01166 01167 01168 01169 01170 }
StatusCode DQASelDimu::finalize | ( | ) |
Definition at line 1173 of file DQASelDimu.cxx.
References Bes_Common::INFO, and msgSvc().
01173 { 01174 01175 MsgStream log(msgSvc(), name()); 01176 log << MSG::INFO << "in finalize()" << endmsg; 01177 return StatusCode::SUCCESS; 01178 }
StatusCode DQASelDimu::initialize | ( | ) |
Definition at line 102 of file DQASelDimu.cxx.
References calibUtil::ERROR, Bes_Common::INFO, m_a20Moment, m_a42Moment, m_acoll, m_acopl, m_charge, m_chie, m_chik, m_chimu, m_chip, m_chipi, m_cos_em, m_cos_ep, m_dE, m_delang, m_delphi, m_deltatof, m_delthe, m_dimutag, m_dphi, m_dtheta, m_dx, m_dy, m_dz, m_e3x3, m_e5x5, m_e_cms_em, m_e_cms_ep, m_e_emc, m_ecms, m_emax, m_energy, m_eoeb1, m_eoeb2, m_eop1, m_eop2, m_eSeed, m_esum, m_etoeb1, m_etoeb2, m_getEAll, m_getTime, m_ghit, m_kal_p, m_kal_px, m_kal_py, m_kal_pz, m_kal_vx0, m_kal_vy0, m_kal_vz0, m_latMoment, m_mass_ee, m_module, m_mucinfo1, m_mucinfo2, m_mumu_acoll, m_mumu_costheta_mum, m_mumu_costheta_mup, m_mumu_deltatof, m_mumu_eemc_mum, m_mumu_eemc_mup, m_mumu_eop_mum, m_mumu_eop_mup, m_mumu_mass, m_mumu_nhit, m_mumu_nlay, m_mumu_nneu, m_mumu_p_mum, m_mumu_p_mup, m_mumu_phi_mum, m_mumu_phi_mup, m_mumu_pidchidedx_mum, m_mumu_pidchidedx_mup, m_mumu_pidchitof1_mum, m_mumu_pidchitof1_mup, m_mumu_pidchitof2_mum, m_mumu_pidchitof2_mup, m_mumu_px_mum, m_mumu_px_mup, m_mumu_py_mum, m_mumu_py_mup, m_mumu_pz_mum, m_mumu_pz_mup, m_mumu_x_mum, m_mumu_x_mup, m_mumu_y_mum, m_mumu_y_mup, m_mumu_z_mum, m_mumu_z_mup, m_ncharg, m_nem, m_nemchits, m_nep, m_nGam, m_ngch, m_nhit_muc, m_nkm, m_nkp, m_nlay_muc, m_nmum, m_nmup, m_nneu, m_normPH, m_np, m_npart, m_npb, m_npim, m_npip, m_nSeed, m_p, m_phi, m_phi_emc, m_pidchiDedx, m_pidchiTof1, m_pidchiTof2, m_pidcode, m_pidprob, m_poeb1, m_poeb2, m_probPH, m_px, m_px_cms_em, m_px_cms_ep, m_py, m_py_cms_em, m_py_cms_ep, m_pz, m_pz_cms_em, m_pz_cms_ep, m_qual_btof1, m_qual_btof2, m_qual_etof, m_rec, m_run, m_secondMoment, m_t_btof, m_t_etof, m_te_btof1, m_te_btof2, m_te_etof, m_theta, m_theta_emc, m_thistsvc, m_thit, m_tk_btof1, m_tk_btof2, m_tk_etof, m_tmu_btof1, m_tmu_btof2, m_tmu_etof, m_tof_btof1, m_tof_btof2, m_tof_etof, m_tp_btof1, m_tp_btof2, m_tp_etof, m_tpi_btof1, m_tpi_btof2, m_tpi_etof, m_tuple1, m_vx0, m_vy0, m_vz0, m_x, m_y, m_z, msgSvc(), and ntupleSvc().
00102 { 00103 MsgStream log(msgSvc(), name()); 00104 00105 log << MSG::INFO << "in initialize()" << endmsg; 00106 StatusCode status; 00107 status = service("THistSvc", m_thistsvc); 00108 if(status.isFailure() ){ 00109 log << MSG::INFO << "Unable to retrieve pointer to THistSvc" << endreq; 00110 return status; 00111 } 00112 00113 00114 00115 00116 m_mumu_mass = new TH1F( "mumu_mass", "mumu_mass", 80, m_ecms-0.3, m_ecms+0.5); 00117 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_mass", m_mumu_mass); 00118 m_mumu_acoll = new TH1F( "mumu_acoll", "mumu_acoll", 60, 0, 6 ); 00119 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_acoll", m_mumu_acoll); 00120 m_mumu_eop_mup = new TH1F( "mumu_eop_mup", "mumu_eop_mup", 100,0.,0.5 ); 00121 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_eop_mup", m_mumu_eop_mup); 00122 m_mumu_eop_mum = new TH1F( "mumu_eop_mum", "mumu_eop_mum", 100,0.,0.5 ); 00123 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_eop_mum", m_mumu_eop_mum); 00124 m_mumu_costheta_mup = new TH1F( "mumu_costheta_mup", "mumu_costheta_mup", 100,-1,1 ); 00125 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_costheta_mup", m_mumu_costheta_mup); 00126 m_mumu_costheta_mum = new TH1F( "mumu_costheta_mum", "mumu_costheta_mum", 100,-1,1 ); 00127 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_costheta_mum", m_mumu_costheta_mum); 00128 00129 m_mumu_phi_mup = new TH1F( "mumu_phi_mup", "mumu_phi_mup", 120,-3.2,3.2 ); 00130 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_phi_mup", m_mumu_phi_mup); 00131 m_mumu_phi_mum = new TH1F( "mumu_phi_mum", "mumu_phi_mum", 120,-3.2,3.2 ); 00132 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_phi_mum", m_mumu_phi_mum); 00133 00134 m_mumu_nneu = new TH1F( "mumu_nneu", "mumu_nneu", 5,0,5 ); 00135 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_nneu", m_mumu_nneu); 00136 m_mumu_nlay = new TH1F( "mumu_nlay", "mumu_nlay", 9,0,10 ); 00137 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_nlay", m_mumu_nlay); 00138 m_mumu_nhit = new TH1F( "mumu_nhit", "mumu_nhit", 19,0,20 ); 00139 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_nhit", m_mumu_nhit); 00140 00141 m_mumu_eemc_mup=new TH1F("mumu_eemc_mup","mumu_eemc_mup",100,0.0,1.0); 00142 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_eemc_mup", m_mumu_eemc_mup); 00143 m_mumu_eemc_mum=new TH1F("mumu_eemc_mum","mumu_eemc_mum",100,0.0,1.0); 00144 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_eemc_mum", m_mumu_eemc_mum); 00145 m_mumu_x_mup=new TH1F("mumu_x_mup","mumu_x_mup",100,-1.0,1.0); 00146 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_x_mup", m_mumu_x_mup); 00147 m_mumu_y_mup=new TH1F("mumu_y_mup","mumu_y_mup",100,-1.0,1.0); 00148 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_y_mup", m_mumu_y_mup); 00149 m_mumu_z_mup=new TH1F("mumu_z_mup","mumu_z_mup",100,-10.0,10.0); 00150 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_z_mup", m_mumu_z_mup); 00151 m_mumu_x_mum=new TH1F("mumu_x_mum","mumu_x_mum",100,-1.0,1.0); 00152 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_x_mum", m_mumu_x_mum); 00153 m_mumu_y_mum=new TH1F("mumu_y_mum","mumu_y_mum",100,-1.0,1.0); 00154 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_y_mum", m_mumu_y_mum); 00155 m_mumu_z_mum=new TH1F("mumu_z_mum","mumu_z_mum",100,-10.0,10.0); 00156 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_z_mum", m_mumu_z_mum); 00157 00158 m_mumu_px_mup=new TH1F("mumu_px_mup","mumu_px_mup",200,-2.0,2.0); 00159 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_px_mup", m_mumu_px_mup); 00160 m_mumu_py_mup=new TH1F("mumu_py_mup","mumu_py_mup",200,-2.0,2.0); 00161 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_py_mup", m_mumu_py_mup); 00162 m_mumu_pz_mup=new TH1F("mumu_pz_mup","mumu_pz_mup",200,-2.0,2.0); 00163 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_pz_mup", m_mumu_pz_mup); 00164 m_mumu_p_mup=new TH1F("mumu_p_mup","mumu_p_mup",100,1.0,2.0); 00165 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_p_mup", m_mumu_p_mup); 00166 m_mumu_px_mum=new TH1F("mumu_px_mum","mumu_px_mum",100,-2.0,2.0); 00167 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_px_mum", m_mumu_px_mum); 00168 m_mumu_py_mum=new TH1F("mumu_py_mum","mumu_py_mum",100,-2.0,2.0); 00169 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_py_mum", m_mumu_py_mum); 00170 m_mumu_pz_mum=new TH1F("mumu_pz_mum","mumu_pz_mum",100,-2.0,2.0); 00171 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_pz_mum", m_mumu_pz_mum); 00172 m_mumu_p_mum=new TH1F("mumu_p_mum","mumu_p_mum",100,1.0,2.0); 00173 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_p_mum", m_mumu_p_mum); 00174 m_mumu_deltatof=new TH1F("mumu_deltatof","mumu_deltatof",50,0.0,10.0); 00175 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_deltatof", m_mumu_deltatof); 00176 00177 m_mumu_pidchidedx_mup=new TH1F("mumu_pidchidedx_mup","mumu_pidchidedx_mup",160,-4,4); 00178 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_pidchidedx_mup", m_mumu_pidchidedx_mup); 00179 m_mumu_pidchidedx_mum=new TH1F("mumu_pidchidedx_mum","mumu_pidchidedx_mum",160,-4,4); 00180 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_pidchidedx_mum", m_mumu_pidchidedx_mum); 00181 m_mumu_pidchitof1_mup=new TH1F("mumu_pidchitof1_mup","mumu_pidchitof1_mup",160,-4,4); 00182 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_pidchitof1_mup", m_mumu_pidchitof1_mup); 00183 m_mumu_pidchitof1_mum=new TH1F("mumu_pidchitof1_mum","mumu_pidchitof1_mum",160,-4,4); 00184 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_pidchitof1_mum", m_mumu_pidchitof1_mum); 00185 m_mumu_pidchitof2_mup=new TH1F("mumu_pidchitof2_mup","mumu_pidchitof2_mup",160,-4,4); 00186 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_pidchitof2_mup", m_mumu_pidchitof2_mup); 00187 m_mumu_pidchitof2_mum=new TH1F("mumu_pidchitof2_mum","mumu_pidchitof2_mum",160,-4,4); 00188 status = m_thistsvc->regHist("/DQAHist/Dimu/mumu_pidchitof2_mum", m_mumu_pidchitof2_mum); 00189 00190 00191 00192 00193 00194 NTuplePtr nt1(ntupleSvc(), "DQAFILE/Dimu"); 00195 if ( nt1 ) m_tuple1 = nt1; 00196 else { 00197 m_tuple1 = ntupleSvc()->book ("DQAFILE/Dimu", CLID_ColumnWiseTuple, "N-Tuple"); 00198 if ( m_tuple1 ) { 00199 status = m_tuple1->addItem ("run", m_run); 00200 status = m_tuple1->addItem ("rec", m_rec); 00201 status = m_tuple1->addItem ("Nchrg", m_ncharg); 00202 status = m_tuple1->addItem ("Nneu", m_nneu,0,40); 00203 status = m_tuple1->addItem ("NGch", m_ngch, 0, 40); 00204 status = m_tuple1->addItem ("NGam", m_nGam); 00205 00206 00207 status = m_tuple1->addItem ("dimutag", m_dimutag); 00208 00209 status = m_tuple1->addItem ("acoll", m_acoll); 00210 status = m_tuple1->addItem ("acopl", m_acopl); 00211 status = m_tuple1->addItem ("deltatof", m_deltatof); 00212 status = m_tuple1->addItem ("eop1", m_eop1); 00213 status = m_tuple1->addItem ("eop2", m_eop2); 00214 status = m_tuple1->addItem ("eoeb1", m_eoeb1); 00215 status = m_tuple1->addItem ("eoeb2", m_eoeb2); 00216 status = m_tuple1->addItem ("poeb1", m_poeb1); 00217 status = m_tuple1->addItem ("poeb2", m_poeb2); 00218 status = m_tuple1->addItem ("etoeb1", m_etoeb1); 00219 status = m_tuple1->addItem ("etoeb2", m_etoeb2); 00220 status = m_tuple1->addItem ("mucinfo1", m_mucinfo1); 00221 status = m_tuple1->addItem ("mucinfo2", m_mucinfo2); 00222 00223 00224 status = m_tuple1->addIndexedItem ("delang",m_nneu, m_delang); 00225 status = m_tuple1->addIndexedItem ("delphi",m_nneu, m_delphi); 00226 status = m_tuple1->addIndexedItem ("delthe",m_nneu, m_delthe); 00227 status = m_tuple1->addIndexedItem ("npart",m_nneu, m_npart); 00228 status = m_tuple1->addIndexedItem ("nemchits",m_nneu, m_nemchits); 00229 status = m_tuple1->addIndexedItem ("module",m_nneu, m_module); 00230 status = m_tuple1->addIndexedItem ("x",m_nneu, m_x); 00231 status = m_tuple1->addIndexedItem ("y",m_nneu, m_y); 00232 status = m_tuple1->addIndexedItem ("z",m_nneu, m_z); 00233 status = m_tuple1->addIndexedItem ("px",m_nneu, m_px); 00234 status = m_tuple1->addIndexedItem ("py",m_nneu, m_py); 00235 status = m_tuple1->addIndexedItem ("pz",m_nneu, m_pz); 00236 status = m_tuple1->addIndexedItem ("theta",m_nneu, m_theta); 00237 status = m_tuple1->addIndexedItem ("phi",m_nneu, m_phi); 00238 status = m_tuple1->addIndexedItem ("dx",m_nneu, m_dx); 00239 status = m_tuple1->addIndexedItem ("dy",m_nneu, m_dy); 00240 status = m_tuple1->addIndexedItem ("dz",m_nneu, m_dz); 00241 status = m_tuple1->addIndexedItem ("dtheta",m_nneu, m_dtheta); 00242 status = m_tuple1->addIndexedItem ("dphi",m_nneu, m_dphi); 00243 status = m_tuple1->addIndexedItem ("energy",m_nneu, m_energy); 00244 status = m_tuple1->addIndexedItem ("dE",m_nneu, m_dE); 00245 status = m_tuple1->addIndexedItem ("eSeed",m_nneu, m_eSeed); 00246 status = m_tuple1->addIndexedItem ("nSeed",m_nneu, m_nSeed); 00247 status = m_tuple1->addIndexedItem ("e3x3",m_nneu, m_e3x3); 00248 status = m_tuple1->addIndexedItem ("e5x5",m_nneu, m_e5x5); 00249 status = m_tuple1->addIndexedItem ("secondMoment",m_nneu, m_secondMoment); 00250 status = m_tuple1->addIndexedItem ("latMoment",m_nneu, m_latMoment); 00251 status = m_tuple1->addIndexedItem ("a20Moment",m_nneu, m_a20Moment); 00252 status = m_tuple1->addIndexedItem ("a42Moment",m_nneu, m_a42Moment); 00253 status = m_tuple1->addIndexedItem ("getTime",m_nneu, m_getTime); 00254 status = m_tuple1->addIndexedItem ("getEAll",m_nneu, m_getEAll); 00255 00256 00257 00258 status = m_tuple1->addIndexedItem("charge", m_ngch, m_charge); 00259 status = m_tuple1->addIndexedItem ("vx", m_ngch, m_vx0); 00260 status = m_tuple1->addIndexedItem ("vy", m_ngch, m_vy0); 00261 status = m_tuple1->addIndexedItem ("vz", m_ngch, m_vz0); 00262 00263 00264 status = m_tuple1->addIndexedItem ("px", m_ngch, m_px) ; 00265 status = m_tuple1->addIndexedItem ("py", m_ngch, m_py) ; 00266 status = m_tuple1->addIndexedItem ("pz", m_ngch, m_pz) ; 00267 status = m_tuple1->addIndexedItem ("p", m_ngch, m_p) ; 00268 00269 00270 00271 status = m_tuple1->addIndexedItem ("kal_vx", m_ngch, m_kal_vx0); 00272 status = m_tuple1->addIndexedItem ("kal_vy", m_ngch, m_kal_vy0); 00273 status = m_tuple1->addIndexedItem ("kal_vz", m_ngch, m_kal_vz0); 00274 00275 00276 status = m_tuple1->addIndexedItem ("kal_px", m_ngch, m_kal_px) ; 00277 status = m_tuple1->addIndexedItem ("kal_py", m_ngch, m_kal_py) ; 00278 status = m_tuple1->addIndexedItem ("kal_pz", m_ngch, m_kal_pz) ; 00279 status = m_tuple1->addIndexedItem ("kal_p", m_ngch, m_kal_p) ; 00280 00281 00282 status = m_tuple1->addIndexedItem ("probPH" , m_ngch, m_probPH) ; 00283 status = m_tuple1->addIndexedItem ("normPH" , m_ngch, m_normPH) ; 00284 status = m_tuple1->addIndexedItem ("chie" , m_ngch, m_chie) ; 00285 status = m_tuple1->addIndexedItem ("chimu" , m_ngch, m_chimu) ; 00286 status = m_tuple1->addIndexedItem ("chipi" , m_ngch, m_chipi) ; 00287 status = m_tuple1->addIndexedItem ("chik" , m_ngch, m_chik) ; 00288 status = m_tuple1->addIndexedItem ("chip" , m_ngch, m_chip) ; 00289 status = m_tuple1->addIndexedItem ("ghit" , m_ngch, m_ghit) ; 00290 status = m_tuple1->addIndexedItem ("thit" , m_ngch, m_thit) ; 00291 00292 status = m_tuple1->addIndexedItem ("e_emc" , m_ngch, m_e_emc) ; 00293 status = m_tuple1->addIndexedItem ("phi_emc" , m_ngch, m_phi_emc) ; 00294 status = m_tuple1->addIndexedItem ("theta_emc" , m_ngch, m_theta_emc) ; 00295 00296 status = m_tuple1->addIndexedItem ("nhit_muc" , m_ngch, m_nhit_muc) ; 00297 status = m_tuple1->addIndexedItem ("nlay_muc" , m_ngch, m_nlay_muc) ; 00298 status = m_tuple1->addIndexedItem ("t_btof" , m_ngch, m_t_btof ); 00299 status = m_tuple1->addIndexedItem ("t_etof" , m_ngch, m_t_etof ); 00300 status = m_tuple1->addIndexedItem ("qual_etof" , m_ngch, m_qual_etof ); 00301 status = m_tuple1->addIndexedItem ("tof_etof" , m_ngch, m_tof_etof ); 00302 status = m_tuple1->addIndexedItem ("te_etof" , m_ngch, m_te_etof ); 00303 status = m_tuple1->addIndexedItem ("tmu_etof" , m_ngch, m_tmu_etof ); 00304 status = m_tuple1->addIndexedItem ("tpi_etof" , m_ngch, m_tpi_etof ); 00305 status = m_tuple1->addIndexedItem ("tk_etof" , m_ngch, m_tk_etof ); 00306 status = m_tuple1->addIndexedItem ("tp_etof" , m_ngch, m_tp_etof ); 00307 00308 status = m_tuple1->addIndexedItem ("qual_btof1", m_ngch, m_qual_btof1 ); 00309 status = m_tuple1->addIndexedItem ("tof_btof1" , m_ngch, m_tof_btof1 ); 00310 status = m_tuple1->addIndexedItem ("te_btof1" , m_ngch, m_te_btof1 ); 00311 status = m_tuple1->addIndexedItem ("tmu_btof1" , m_ngch, m_tmu_btof1 ); 00312 status = m_tuple1->addIndexedItem ("tpi_btof1" , m_ngch, m_tpi_btof1 ); 00313 status = m_tuple1->addIndexedItem ("tk_btof1" , m_ngch, m_tk_btof1 ); 00314 status = m_tuple1->addIndexedItem ("tp_btof1" , m_ngch, m_tp_btof1 ); 00315 00316 status = m_tuple1->addIndexedItem ("qual_btof2", m_ngch, m_qual_btof2 ); 00317 status = m_tuple1->addIndexedItem ("tof_btof2" , m_ngch, m_tof_btof2 ); 00318 status = m_tuple1->addIndexedItem ("te_btof2" , m_ngch, m_te_btof2 ); 00319 status = m_tuple1->addIndexedItem ("tmu_btof2" , m_ngch, m_tmu_btof2 ); 00320 status = m_tuple1->addIndexedItem ("tpi_btof2" , m_ngch, m_tpi_btof2 ); 00321 status = m_tuple1->addIndexedItem ("tk_btof2" , m_ngch, m_tk_btof2 ); 00322 status = m_tuple1->addIndexedItem ("tp_btof2" , m_ngch, m_tp_btof2 ); 00323 status = m_tuple1->addIndexedItem ("pidcode" , m_ngch, m_pidcode); 00324 status = m_tuple1->addIndexedItem ("pidprob" , m_ngch, m_pidprob); 00325 status = m_tuple1->addIndexedItem ("pidchiDedx" , m_ngch, m_pidchiDedx); 00326 status = m_tuple1->addIndexedItem ("pidchiTof1" , m_ngch, m_pidchiTof1); 00327 status = m_tuple1->addIndexedItem ("pidchiTof2" , m_ngch, m_pidchiTof2); 00328 00329 status = m_tuple1->addItem ("px_cms_ep", m_px_cms_ep); //momentum of electron+ 00330 status = m_tuple1->addItem ("py_cms_ep", m_py_cms_ep); //momentum of electron+ 00331 status = m_tuple1->addItem ("pz_cms_ep", m_pz_cms_ep); //momentum of electron+ 00332 status = m_tuple1->addItem ("e_cms_ep", m_e_cms_ep); //momentum of electron+ 00333 status = m_tuple1->addItem ("cos_ep", m_cos_ep); //momentum of electron+ 00334 status = m_tuple1->addItem ("px_cms_em", m_px_cms_em); //momentum of electron- 00335 status = m_tuple1->addItem ("py_cms_em", m_py_cms_em); //momentum of electron- 00336 status = m_tuple1->addItem ("pz_cms_em", m_pz_cms_em); //momentum of electron- 00337 status = m_tuple1->addItem ("e_cms_em", m_e_cms_em); //momentum of electron- 00338 status = m_tuple1->addItem ("cos_em", m_cos_em); //momentum of electron- 00339 status = m_tuple1->addItem ("mass_ee", m_mass_ee); // 00340 status = m_tuple1->addItem ("emax", m_emax); // 00341 status = m_tuple1->addItem ("esum", m_esum); // 00342 status = m_tuple1->addItem ( "npip", m_npip ); 00343 status = m_tuple1->addItem ( "npim", m_npim ); 00344 status = m_tuple1->addItem ( "nkp", m_nkp ); 00345 status = m_tuple1->addItem ( "nkm", m_nkm ); 00346 status = m_tuple1->addItem ( "np", m_np ); 00347 status = m_tuple1->addItem ( "npb", m_npb ); 00348 00349 status = m_tuple1->addItem ( "nep", m_nep ); 00350 status = m_tuple1->addItem ( "nem", m_nem ); 00351 status = m_tuple1->addItem ( "nmup", m_nmup ); 00352 status = m_tuple1->addItem ( "nmum", m_nmum ); 00353 00354 } 00355 else { 00356 log << MSG::ERROR << " Cannot book N-tuple:" << long(m_tuple1) << endmsg; 00357 return StatusCode::FAILURE; 00358 } 00359 } 00360 00361 // 00362 //--------end of book-------- 00363 // 00364 00365 log << MSG::INFO << "successfully return from initialize()" <<endmsg; 00366 return StatusCode::SUCCESS; 00367 00368 00369 00370 00371 }
NTuple::Array<double> DQASelDimu::m_a20Moment [private] |
NTuple::Array<double> DQASelDimu::m_a42Moment [private] |
NTuple::Item<double> DQASelDimu::m_acoll [private] |
double DQASelDimu::m_acoll_mu_cut [private] |
NTuple::Item<double> DQASelDimu::m_acopl [private] |
double DQASelDimu::m_acopl_mu_cut [private] |
double DQASelDimu::m_beamangle [private] |
NTuple::Array<long> DQASelDimu::m_charge [private] |
NTuple::Array<float> DQASelDimu::m_chie [private] |
NTuple::Array<float> DQASelDimu::m_chik [private] |
NTuple::Array<float> DQASelDimu::m_chimu [private] |
NTuple::Array<float> DQASelDimu::m_chip [private] |
NTuple::Array<float> DQASelDimu::m_chipi [private] |
NTuple::Item<double> DQASelDimu::m_cos_em [private] |
NTuple::Item<double> DQASelDimu::m_cos_ep [private] |
double DQASelDimu::m_coscut [private] |
NTuple::Array<double> DQASelDimu::m_dE [private] |
NTuple::Array<double> DQASelDimu::m_delang [private] |
NTuple::Array<double> DQASelDimu::m_delphi [private] |
NTuple::Item<double> DQASelDimu::m_deltatof [private] |
NTuple::Array<double> DQASelDimu::m_delthe [private] |
NTuple::Item<long> DQASelDimu::m_dimutag [private] |
NTuple::Array<double> DQASelDimu::m_dphi [private] |
NTuple::Array<double> DQASelDimu::m_dtheta [private] |
double DQASelDimu::m_dtof_mu_cut [private] |
NTuple::Array<double> DQASelDimu::m_dx [private] |
NTuple::Array<double> DQASelDimu::m_dy [private] |
NTuple::Array<double> DQASelDimu::m_dz [private] |
NTuple::Array<double> DQASelDimu::m_e3x3 [private] |
NTuple::Array<double> DQASelDimu::m_e5x5 [private] |
NTuple::Item<double> DQASelDimu::m_e_cms_em [private] |
NTuple::Item<double> DQASelDimu::m_e_cms_ep [private] |
NTuple::Array<float> DQASelDimu::m_e_emc [private] |
double DQASelDimu::m_ecms [private] |
Definition at line 76 of file DQASelDimu.h.
Referenced by DQASelDimu(), execute(), and initialize().
NTuple::Item<double> DQASelDimu::m_emax [private] |
NTuple::Array<double> DQASelDimu::m_energy [private] |
double DQASelDimu::m_energyThreshold [private] |
NTuple::Item<double> DQASelDimu::m_eoeb1 [private] |
NTuple::Item<double> DQASelDimu::m_eoeb2 [private] |
double DQASelDimu::m_eoeb_mu_cut [private] |
NTuple::Item<double> DQASelDimu::m_eop1 [private] |
NTuple::Item<double> DQASelDimu::m_eop2 [private] |
NTuple::Array<double> DQASelDimu::m_eSeed [private] |
NTuple::Item<double> DQASelDimu::m_esum [private] |
NTuple::Item<double> DQASelDimu::m_etoeb1 [private] |
NTuple::Item<double> DQASelDimu::m_etoeb2 [private] |
double DQASelDimu::m_etotal_mu_cut [private] |
double DQASelDimu::m_gammaPhiCut [private] |
double DQASelDimu::m_gammathCut [private] |
double DQASelDimu::m_gammaThetaCut [private] |
double DQASelDimu::m_gammatlCut [private] |
double DQASelDimu::m_gammaTrkCut [private] |
NTuple::Array<double> DQASelDimu::m_getEAll [private] |
NTuple::Array<double> DQASelDimu::m_getTime [private] |
NTuple::Array<float> DQASelDimu::m_ghit [private] |
NTuple::Array<double> DQASelDimu::m_kal_p [private] |
NTuple::Array<double> DQASelDimu::m_kal_px [private] |
NTuple::Array<double> DQASelDimu::m_kal_py [private] |
NTuple::Array<double> DQASelDimu::m_kal_pz [private] |
NTuple::Array<double> DQASelDimu::m_kal_vx0 [private] |
NTuple::Array<double> DQASelDimu::m_kal_vy0 [private] |
NTuple::Array<double> DQASelDimu::m_kal_vz0 [private] |
NTuple::Array<double> DQASelDimu::m_latMoment [private] |
NTuple::Item<double> DQASelDimu::m_mass_ee [private] |
NTuple::Array<long> DQASelDimu::m_module [private] |
NTuple::Item<long> DQASelDimu::m_mucinfo1 [private] |
NTuple::Item<long> DQASelDimu::m_mucinfo2 [private] |
TH1F* DQASelDimu::m_mumu_acoll [private] |
TH1F* DQASelDimu::m_mumu_costheta_mum [private] |
TH1F* DQASelDimu::m_mumu_costheta_mup [private] |
TH1F* DQASelDimu::m_mumu_deltatof [private] |
TH1F* DQASelDimu::m_mumu_eemc_mum [private] |
TH1F* DQASelDimu::m_mumu_eemc_mup [private] |
TH1F* DQASelDimu::m_mumu_eop_mum [private] |
TH1F* DQASelDimu::m_mumu_eop_mup [private] |
TH1F* DQASelDimu::m_mumu_mass [private] |
TH1F* DQASelDimu::m_mumu_nhit [private] |
TH1F* DQASelDimu::m_mumu_nlay [private] |
TH1F* DQASelDimu::m_mumu_nneu [private] |
TH1F* DQASelDimu::m_mumu_p_mum [private] |
TH1F* DQASelDimu::m_mumu_p_mup [private] |
TH1F* DQASelDimu::m_mumu_phi_mum [private] |
TH1F* DQASelDimu::m_mumu_phi_mup [private] |
TH1F* DQASelDimu::m_mumu_pidchidedx_mum [private] |
TH1F* DQASelDimu::m_mumu_pidchidedx_mup [private] |
TH1F* DQASelDimu::m_mumu_pidchitof1_mum [private] |
TH1F* DQASelDimu::m_mumu_pidchitof1_mup [private] |
TH1F* DQASelDimu::m_mumu_pidchitof2_mum [private] |
TH1F* DQASelDimu::m_mumu_pidchitof2_mup [private] |
TH1F* DQASelDimu::m_mumu_px_mum [private] |
TH1F* DQASelDimu::m_mumu_px_mup [private] |
TH1F* DQASelDimu::m_mumu_py_mum [private] |
TH1F* DQASelDimu::m_mumu_py_mup [private] |
TH1F* DQASelDimu::m_mumu_pz_mum [private] |
TH1F* DQASelDimu::m_mumu_pz_mup [private] |
TH1F* DQASelDimu::m_mumu_x_mum [private] |
TH1F* DQASelDimu::m_mumu_x_mup [private] |
TH1F* DQASelDimu::m_mumu_y_mum [private] |
TH1F* DQASelDimu::m_mumu_y_mup [private] |
TH1F* DQASelDimu::m_mumu_z_mum [private] |
TH1F* DQASelDimu::m_mumu_z_mup [private] |
NTuple::Item<long> DQASelDimu::m_ncharg [private] |
NTuple::Item<long> DQASelDimu::m_nem [private] |
NTuple::Array<long> DQASelDimu::m_nemchits [private] |
NTuple::Item<long> DQASelDimu::m_nep [private] |
NTuple::Item<long> DQASelDimu::m_nGam [private] |
NTuple::Item<long> DQASelDimu::m_ngch [private] |
NTuple::Array<float> DQASelDimu::m_nhit_muc [private] |
NTuple::Item<long> DQASelDimu::m_nkm [private] |
NTuple::Item<long> DQASelDimu::m_nkp [private] |
NTuple::Array<float> DQASelDimu::m_nlay_muc [private] |
NTuple::Item<long> DQASelDimu::m_nmum [private] |
NTuple::Item<long> DQASelDimu::m_nmup [private] |
NTuple::Item<long> DQASelDimu::m_nneu [private] |
NTuple::Array<float> DQASelDimu::m_normPH [private] |
NTuple::Item<long> DQASelDimu::m_np [private] |
NTuple::Array<long> DQASelDimu::m_npart [private] |
NTuple::Item<long> DQASelDimu::m_npb [private] |
NTuple::Item<long> DQASelDimu::m_npim [private] |
NTuple::Item<long> DQASelDimu::m_npip [private] |
NTuple::Array<long> DQASelDimu::m_nSeed [private] |
NTuple::Array<double> DQASelDimu::m_p [private] |
NTuple::Array<double> DQASelDimu::m_phi [private] |
NTuple::Array<float> DQASelDimu::m_phi_emc [private] |
NTuple::Array<double> DQASelDimu::m_pidchiDedx [private] |
NTuple::Array<double> DQASelDimu::m_pidchiTof1 [private] |
NTuple::Array<double> DQASelDimu::m_pidchiTof2 [private] |
NTuple::Array<long> DQASelDimu::m_pidcode [private] |
NTuple::Array<double> DQASelDimu::m_pidprob [private] |
NTuple::Item<double> DQASelDimu::m_poeb1 [private] |
NTuple::Item<double> DQASelDimu::m_poeb2 [private] |
double DQASelDimu::m_poeb_mu_cut [private] |
NTuple::Array<float> DQASelDimu::m_probPH [private] |
NTuple::Array<double> DQASelDimu::m_px [private] |
NTuple::Item<double> DQASelDimu::m_px_cms_em [private] |
NTuple::Item<double> DQASelDimu::m_px_cms_ep [private] |
NTuple::Array<double> DQASelDimu::m_py [private] |
NTuple::Item<double> DQASelDimu::m_py_cms_em [private] |
NTuple::Item<double> DQASelDimu::m_py_cms_ep [private] |
NTuple::Array<double> DQASelDimu::m_pz [private] |
NTuple::Item<double> DQASelDimu::m_pz_cms_em [private] |
NTuple::Item<double> DQASelDimu::m_pz_cms_ep [private] |
NTuple::Array<double> DQASelDimu::m_qual_btof1 [private] |
NTuple::Array<double> DQASelDimu::m_qual_btof2 [private] |
NTuple::Array<double> DQASelDimu::m_qual_etof [private] |
NTuple::Item<long> DQASelDimu::m_rec [private] |
NTuple::Item<long> DQASelDimu::m_run [private] |
NTuple::Array<double> DQASelDimu::m_secondMoment [private] |
NTuple::Array<double> DQASelDimu::m_t_btof [private] |
NTuple::Array<double> DQASelDimu::m_t_etof [private] |
NTuple::Array<double> DQASelDimu::m_te_btof1 [private] |
NTuple::Array<double> DQASelDimu::m_te_btof2 [private] |
NTuple::Array<double> DQASelDimu::m_te_etof [private] |
NTuple::Array<double> DQASelDimu::m_theta [private] |
NTuple::Array<float> DQASelDimu::m_theta_emc [private] |
ITHistSvc* DQASelDimu::m_thistsvc [private] |
NTuple::Array<float> DQASelDimu::m_thit [private] |
NTuple::Array<double> DQASelDimu::m_tk_btof1 [private] |
NTuple::Array<double> DQASelDimu::m_tk_btof2 [private] |
NTuple::Array<double> DQASelDimu::m_tk_etof [private] |
NTuple::Array<double> DQASelDimu::m_tmu_btof1 [private] |
NTuple::Array<double> DQASelDimu::m_tmu_btof2 [private] |
NTuple::Array<double> DQASelDimu::m_tmu_etof [private] |
NTuple::Array<double> DQASelDimu::m_tof_btof1 [private] |
NTuple::Array<double> DQASelDimu::m_tof_btof2 [private] |
NTuple::Array<double> DQASelDimu::m_tof_etof [private] |
NTuple::Array<double> DQASelDimu::m_tp_btof1 [private] |
NTuple::Array<double> DQASelDimu::m_tp_btof2 [private] |
NTuple::Array<double> DQASelDimu::m_tp_etof [private] |
NTuple::Array<double> DQASelDimu::m_tpi_btof1 [private] |
NTuple::Array<double> DQASelDimu::m_tpi_btof2 [private] |
NTuple::Array<double> DQASelDimu::m_tpi_etof [private] |
double DQASelDimu::m_tpoebh_mu_cut [private] |
double DQASelDimu::m_tpoebl_mu_cut [private] |
double DQASelDimu::m_tptotal_mu_cut [private] |
NTuple::Tuple* DQASelDimu::m_tuple1 [private] |
bool DQASelDimu::m_useDEDX [private] |
bool DQASelDimu::m_useEMC [private] |
bool DQASelDimu::m_useEMConly [private] |
bool DQASelDimu::m_useMDC [private] |
bool DQASelDimu::m_useMUC [private] |
bool DQASelDimu::m_usePID [private] |
bool DQASelDimu::m_useTOF [private] |
double DQASelDimu::m_vr0cut [private] |
NTuple::Array<double> DQASelDimu::m_vx0 [private] |
NTuple::Array<double> DQASelDimu::m_vy0 [private] |
NTuple::Array<double> DQASelDimu::m_vz0 [private] |
double DQASelDimu::m_vz0cut [private] |
bool DQASelDimu::m_writentuple [private] |
NTuple::Array<double> DQASelDimu::m_x [private] |
NTuple::Array<double> DQASelDimu::m_y [private] |
NTuple::Array<double> DQASelDimu::m_z [private] |