Gam4pikp Class Reference

#include <Gam4pikp.h>

List of all members.

Public Member Functions

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

Private Member Functions

void InitVar ()
void BubbleSort (std::vector< double > &, std::vector< int > &)

Private Attributes

double m_vr0cut
double m_vz0cut
bool m_skim4pi
bool m_skim4k
bool m_skim2pi2pr
bool m_rootput
double m_energyThreshold
double m_gammaPhiCut
double m_gammaThetaCut
double m_ecms
double m_gammadangcut
int m_test4C
int m_test5C
int m_checkDedx
int m_checkTof
NTuple::Tuple * m_tuple0
NTuple::Item< double > m_tnumber
NTuple::Item< double > m_totaltrack
NTuple::Item< double > m_totalcharged
NTuple::Item< double > m_totalgam
NTuple::Item< double > m_massth
NTuple::Tuple * m_tuple1
NTuple::Item< long > m_run
NTuple::Item< long > m_rec
NTuple::Item< double > m_mpprecall
NTuple::Item< double > m_meeall
NTuple::Item< double > m_ncgjs
NTuple::Item< double > m_cla2kpi
NTuple::Array< double > m_comcs2kpi
NTuple::Array< double > m_comcs4pi
NTuple::Item< long > m_idxmc
NTuple::Array< long > m_pdgid
NTuple::Array< long > m_motheridx
NTuple::Item< double > m_mpprec4c
NTuple::Array< double > m_x0js
NTuple::Array< double > m_y0js
NTuple::Array< double > m_z0js
NTuple::Array< double > m_r0js
NTuple::Array< double > m_Rxyjs
NTuple::Array< double > m_Rzjs
NTuple::Array< double > m_Rnxyjs
NTuple::Array< double > m_Rnzjs
NTuple::Array< double > m_phinjs
NTuple::Item< long > m_cy2kpi
NTuple::Item< long > m_cl4pi
NTuple::Item< long > m_clajs
NTuple::Item< long > m_idxmdc
NTuple::Array< double > m_pdg
NTuple::Array< double > m_cbmc
NTuple::Array< double > m_angjs5
NTuple::Array< double > m_nearjs5
NTuple::Array< double > m_angjs6
NTuple::Array< double > m_nearjs6
NTuple::Array< double > m_ang4pi5
NTuple::Array< double > m_near4pi5
NTuple::Array< double > m_ang4pi6
NTuple::Array< double > m_near4pi6
NTuple::Array< double > m_ppmdcjs
NTuple::Array< double > m_pxmdcjs
NTuple::Array< double > m_pymdcjs
NTuple::Array< double > m_pzmdcjs
NTuple::Array< double > m_ptmdcjs
NTuple::Array< double > m_ppkaljs
NTuple::Array< double > m_ptkaljs
NTuple::Array< double > m_ppmdc2kpi
NTuple::Array< double > m_pxmdc2kpi
NTuple::Array< double > m_pymdc2kpi
NTuple::Array< double > m_pzmdc2kpi
NTuple::Array< double > m_ptmdc2kpi
NTuple::Array< double > m_ppkal2kpi
NTuple::Array< double > m_ptkal2kpi
NTuple::Array< double > m_charge2kpi
NTuple::Array< double > m_chie2kpi
NTuple::Array< double > m_chimu2kpi
NTuple::Array< double > m_chipi2kpi
NTuple::Array< double > m_chik2kpi
NTuple::Array< double > m_chip2kpi
NTuple::Array< double > m_ghit2kpi
NTuple::Array< double > m_thit2kpi
NTuple::Array< double > m_probph2kpi
NTuple::Array< double > m_normph2kpi
NTuple::Array< double > m_chiejs
NTuple::Array< double > m_chimujs
NTuple::Array< double > m_chipijs
NTuple::Array< double > m_chikjs
NTuple::Array< double > m_chipjs
NTuple::Array< double > m_ghitjs
NTuple::Array< double > m_thitjs
NTuple::Array< double > m_probphjs
NTuple::Array< double > m_normphjs
NTuple::Array< double > m_bjmucjs
NTuple::Array< double > m_bjmuc2kpi
NTuple::Array< double > m_bjemcjs
NTuple::Array< double > m_bjemc2kpi
NTuple::Array< double > m_bjtofjs
NTuple::Array< double > m_bjtof2kpi
NTuple::Array< double > m_bjtofvaljs
NTuple::Array< double > m_bjtofval2kpi
NTuple::Array< double > m_emcjs
NTuple::Array< double > m_evpjs
NTuple::Array< double > m_timecgjs
NTuple::Array< double > m_depthmucjs
NTuple::Array< double > m_layermucjs
NTuple::Array< double > m_emc2kpi
NTuple::Array< double > m_evp2kpi
NTuple::Array< double > m_timecg2kpi
NTuple::Array< double > m_depthmuc2kpi
NTuple::Array< double > m_layermuc2kpi
NTuple::Array< double > m_cosmdc2kpi
NTuple::Array< double > m_phimdc2kpi
NTuple::Array< double > m_costpid2kpi
NTuple::Array< double > m_dedxpid2kpi
NTuple::Array< double > m_tof1pid2kpi
NTuple::Array< double > m_tof2pid2kpi
NTuple::Array< double > m_probe2kpi
NTuple::Array< double > m_probmu2kpi
NTuple::Array< double > m_probpi2kpi
NTuple::Array< double > m_probk2kpi
NTuple::Array< double > m_probpr2kpi
NTuple::Array< double > m_pidnum2kpi
NTuple::Array< double > m_chipidxpid2kpi
NTuple::Array< double > m_chipitof1pid2kpi
NTuple::Array< double > m_chipitof2pid2kpi
NTuple::Array< double > m_chipitofpid2kpi
NTuple::Array< double > m_chipitofepid2kpi
NTuple::Array< double > m_chipitofqpid2kpi
NTuple::Array< double > m_probpidxpid2kpi
NTuple::Array< double > m_probpitofpid2kpi
NTuple::Array< double > m_chikdxpid2kpi
NTuple::Array< double > m_chiktof1pid2kpi
NTuple::Array< double > m_chiktof2pid2kpi
NTuple::Array< double > m_chiktofpid2kpi
NTuple::Array< double > m_chiktofepid2kpi
NTuple::Array< double > m_chiktofqpid2kpi
NTuple::Array< double > m_probkdxpid2kpi
NTuple::Array< double > m_probktofpid2kpi
NTuple::Array< double > m_chiprdxpid2kpi
NTuple::Array< double > m_chiprtof1pid2kpi
NTuple::Array< double > m_chiprtof2pid2kpi
NTuple::Array< double > m_chiprtofpid2kpi
NTuple::Array< double > m_chiprtofepid2kpi
NTuple::Array< double > m_chiprtofqpid2kpi
NTuple::Array< double > m_probprdxpid2kpi
NTuple::Array< double > m_probprtofpid2kpi
NTuple::Array< double > m_cosmdcjs
NTuple::Array< double > m_phimdcjs
NTuple::Array< double > m_dedxpidjs
NTuple::Array< double > m_tof1pidjs
NTuple::Array< double > m_tof2pidjs
NTuple::Array< double > m_probejs
NTuple::Array< double > m_probmujs
NTuple::Array< double > m_probpijs
NTuple::Array< double > m_probkjs
NTuple::Array< double > m_probprjs
NTuple::Array< double > m_cotof1js
NTuple::Array< double > m_cotof2js
NTuple::Array< double > m_counterjs
NTuple::Array< double > m_barreljs
NTuple::Array< double > m_layertofjs
NTuple::Array< double > m_readoutjs
NTuple::Array< double > m_clusterjs
NTuple::Array< double > m_betajs
NTuple::Array< double > m_tofjs
NTuple::Array< double > m_tofpathjs
NTuple::Array< double > m_zhitjs
NTuple::Array< double > m_tofIDjs
NTuple::Array< double > m_clusterIDjs
NTuple::Array< double > m_texejs
NTuple::Array< double > m_texmujs
NTuple::Array< double > m_texpijs
NTuple::Array< double > m_texkjs
NTuple::Array< double > m_texprjs
NTuple::Array< double > m_dtejs
NTuple::Array< double > m_dtmujs
NTuple::Array< double > m_dtpijs
NTuple::Array< double > m_dtkjs
NTuple::Array< double > m_dtprjs
NTuple::Array< double > m_cotof12kpi
NTuple::Array< double > m_cotof22kpi
NTuple::Array< double > m_counter2kpi
NTuple::Array< double > m_barrel2kpi
NTuple::Array< double > m_layertof2kpi
NTuple::Array< double > m_readout2kpi
NTuple::Array< double > m_cluster2kpi
NTuple::Array< double > m_beta2kpi
NTuple::Array< double > m_tof2kpi
NTuple::Array< double > m_tofpath2kpi
NTuple::Array< double > m_zhit2kpi
NTuple::Array< double > m_tofID2kpi
NTuple::Array< double > m_clusterID2kpi
NTuple::Array< double > m_texe2kpi
NTuple::Array< double > m_texmu2kpi
NTuple::Array< double > m_texpi2kpi
NTuple::Array< double > m_texk2kpi
NTuple::Array< double > m_texpr2kpi
NTuple::Array< double > m_dte2kpi
NTuple::Array< double > m_dtmu2kpi
NTuple::Array< double > m_dtpi2kpi
NTuple::Array< double > m_dtk2kpi
NTuple::Array< double > m_dtpr2kpi
NTuple::Array< double > m_sigmaetof2kpi
NTuple::Array< double > m_sigmamutof2kpi
NTuple::Array< double > m_sigmapitof2kpi
NTuple::Array< double > m_sigmaktof2kpi
NTuple::Array< double > m_sigmaprtof2kpi
NTuple::Array< double > m_t0tof2kpi
NTuple::Array< double > m_errt0tof2kpi
NTuple::Array< double > m_sigmaetofjs
NTuple::Array< double > m_sigmamutofjs
NTuple::Array< double > m_sigmapitofjs
NTuple::Array< double > m_sigmaktofjs
NTuple::Array< double > m_sigmaprtofjs
NTuple::Array< double > m_t0tofjs
NTuple::Array< double > m_errt0tofjs
NTuple::Item< double > m_mchic2kpi
NTuple::Item< long > m_eventtype
NTuple::Item< double > m_mpsip2kpi
NTuple::Item< double > m_chis2kpi
NTuple::Item< double > m_mchic4c2kpi
NTuple::Item< double > m_mpsip4c2kpi
NTuple::Item< double > m_chis4c2kpi
NTuple::Item< double > m_mlplm2kpi
NTuple::Item< double > m_mhphm2kpi
NTuple::Item< double > m_mlphp2kpi
NTuple::Item< double > m_mlmhm2kpi
NTuple::Item< double > m_mlphm2kpi
NTuple::Item< double > m_mlmhp2kpi
NTuple::Item< long > m_ncy20
NTuple::Item< long > m_ncy30
NTuple::Item< long > m_idxemc
NTuple::Array< long > m_numHits
NTuple::Array< double > m_secondmoment
NTuple::Array< double > m_latmoment
NTuple::Array< double > m_timegm
NTuple::Array< double > m_cellId
NTuple::Array< double > m_module
NTuple::Array< double > m_a20Moment
NTuple::Array< double > m_a42Moment
NTuple::Array< double > m_getEAll
NTuple::Array< double > m_getShowerId
NTuple::Array< double > m_getClusterId
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_dang4c
NTuple::Array< double > m_dthe4c
NTuple::Array< double > m_dphi4c
NTuple::Array< double > m_dang4crt
NTuple::Array< double > m_dthe4crt
NTuple::Array< double > m_dphi4crt
NTuple::Matrix< double > m_phgmtof
NTuple::Array< double > m_phgmtof0
NTuple::Array< double > m_phgmtof1
NTuple::Array< double > m_phgmtof2
Algorithmm_subalg1
Algorithmm_subalg2
Algorithmm_subalg3


Detailed Description

Definition at line 9 of file Gam4pikp.h.


Constructor & Destructor Documentation

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

Definition at line 61 of file Gam4pikp.cxx.

References m_ecms, m_energyThreshold, m_gammadangcut, m_gammaPhiCut, m_gammaThetaCut, m_rootput, m_skim2pi2pr, m_skim4k, m_skim4pi, m_vr0cut, and m_vz0cut.

00061                                                                   :
00062    Algorithm(name, pSvcLocator) {
00063 
00064       //Declare the properties
00065       declareProperty("skim4pi", m_skim4pi=false);
00066       declareProperty("skim4k", m_skim4k=false);
00067       declareProperty("skim2pi2pr", m_skim2pi2pr=false);
00068       declareProperty("rootput", m_rootput=false);
00069       declareProperty("Ecms", m_ecms=3.6862); 
00070       declareProperty("Vr0cut", m_vr0cut=1.0);
00071       declareProperty("Vz0cut", m_vz0cut=5.0);
00072       declareProperty("EnergyThreshold", m_energyThreshold=0.05);
00073       declareProperty("GammaPhiCut", m_gammaPhiCut=20.0);
00074       declareProperty("GammaThetaCut", m_gammaThetaCut=20.0);
00075       declareProperty("GammaDangCut", m_gammadangcut=20.0);
00076 //      declareProperty("Test4C", m_test4C = 1);
00077 //      declareProperty("Test5C", m_test5C = 1);
00078 //      declareProperty("CheckDedx", m_checkDedx = 1);
00079 //      declareProperty("CheckTof",  m_checkTof = 1);
00080    }


Member Function Documentation

void Gam4pikp::BubbleSort ( std::vector< double > &  ,
std::vector< int > &   
) [private]

Definition at line 1941 of file Gam4pikp.cxx.

References genRecEmupikp::i, and ganga-rec::j.

Referenced by execute().

01942    {
01943       if ( (int) p.size() != (int) trkid.size() )
01944       {
01945          std::cout << "the two vector have different length!" << std::endl;
01946          std::cout << "the size of p is " << (int) p.size() << std::endl;
01947          std::cout << "the size of trkid is " << (int) trkid.size() << std::endl;
01948          std::cout << "Please check your code!" << std::endl;
01949          exit(1);
01950       }
01951       unsigned int vsize = p.size();
01952       double ptemp;
01953       int idtemp;
01954       for ( unsigned int i=0; i<vsize-1; i++ )
01955       {
01956          for ( unsigned int j=i+1; j<vsize; j++ )
01957          {
01958             if ( p[i] > p[j] )
01959             {
01960                ptemp = p[i]; idtemp = trkid[i];
01961                p[i] = p[j];  trkid[i] = trkid[j];
01962                p[j] = ptemp; trkid[j] = idtemp;
01963             }
01964          } // for j
01965       } // for i
01966 
01967    }      

StatusCode Gam4pikp::execute (  ) 

Definition at line 393 of file Gam4pikp.cxx.

References VFHelix::a(), DstEmcShower::a20Moment(), DstEmcShower::a42Moment(), KalmanKinematicFit::AddFourMomentum(), TrackPool::AddTrack(), VertexFit::AddVertex(), BubbleSort(), DstEmcShower::cellId(), DstMdcKalTrack::charge(), DstMdcTrack::charge(), KalmanKinematicFit::chisq(), cos(), Bes_Common::DEBUG, DstEmcShower::e3x3(), DstEmcShower::e5x5(), ecms, DstMdcKalTrack::electron, DstExtTrack::emcPosition(), DstExtTrack::emcVolumeNumber(), DstEmcShower::energy(), DstMdcTrack::err(), DstEmcShower::eSeed(), EventModel::EvtRec::EvtRecEvent, EventModel::EvtRec::EvtRecTrackCol, VertexFit::Evx(), KalmanKinematicFit::Fit(), VertexFit::Fit(), RecEmcShower::getClusterId(), RecEmcShower::getEAll(), RecEmcShower::getShowerId(), RecMdcKalTrack::getZError(), RecMdcKalTrack::getZHelix(), DstMdcTrack::helix(), genRecEmupikp::i, Bes_Common::INFO, KalmanKinematicFit::init(), VertexFit::init(), InitVar(), KalmanKinematicFit::instance(), VertexFit::instance(), ParticleID::instance(), IVertexDbSvc::isVertexValid(), ganga-rec::j, DstMdcKalTrack::kaon, DstEmcShower::latMoment(), m_a20Moment, m_a42Moment, m_angjs5, m_angjs6, m_barrel2kpi, m_barreljs, m_beta2kpi, m_betajs, m_bjemc2kpi, m_bjemcjs, m_bjmuc2kpi, m_bjmucjs, m_bjtof2kpi, m_bjtofjs, m_bjtofval2kpi, m_bjtofvaljs, m_cbmc, m_cellId, m_charge2kpi, m_chie2kpi, m_chiejs, m_chik2kpi, m_chikjs, m_chimu2kpi, m_chimujs, m_chip2kpi, m_chipi2kpi, m_chipijs, m_chipjs, m_chis2kpi, m_cla2kpi, m_cluster2kpi, m_clusterID2kpi, m_clusterIDjs, m_clusterjs, m_cosemc, m_cosmdc2kpi, m_cosmdcjs, m_costpid2kpi, m_cotof12kpi, m_cotof1js, m_cotof22kpi, m_cotof2js, m_counter2kpi, m_counterjs, m_cy2kpi, m_dang4c, m_dedxpidjs, m_depthmuc2kpi, m_depthmucjs, m_dphi4c, m_dte2kpi, m_dtejs, m_dthe4c, m_dtk2kpi, m_dtkjs, m_dtmu2kpi, m_dtmujs, m_dtpi2kpi, m_dtpijs, m_dtpr2kpi, m_dtprjs, m_e3x3, m_e5x5, m_ecms, m_emc2kpi, m_emcjs, m_energy, m_energyThreshold, m_errt0tof2kpi, m_errt0tofjs, m_eSeed, m_evp2kpi, m_evpjs, m_getClusterId, m_getEAll, m_getShowerId, m_ghit2kpi, m_ghitjs, m_idxemc, m_idxmc, m_idxmdc, m_latmoment, m_layermuc2kpi, m_layermucjs, m_layertof2kpi, m_layertofjs, m_mchic2kpi, m_meeall, m_module, m_motheridx, m_mpprecall, m_mpsip2kpi, m_ncy20, m_ncy30, m_nearjs5, m_nearjs6, m_normph2kpi, m_normphjs, m_numHits, m_pdg, m_pdgid, m_phiemc, m_phimdc2kpi, m_phimdcjs, m_phinjs, m_pidnum2kpi, m_ppkal2kpi, m_ppkaljs, m_ppmdc2kpi, m_ppmdcjs, m_probe2kpi, m_probejs, m_probk2kpi, m_probkjs, m_probmu2kpi, m_probmujs, m_probph2kpi, m_probphjs, m_probpi2kpi, m_probpijs, m_probpr2kpi, m_probprjs, m_ptkaljs, m_ptmdcjs, m_pxmdc2kpi, m_pxmdcjs, m_pymdc2kpi, m_pymdcjs, m_pzmdc2kpi, m_pzmdcjs, m_r0js, m_readout2kpi, m_readoutjs, m_rec, m_Rnxyjs, m_Rnzjs, m_rootput, m_run, m_Rxyjs, m_Rzjs, m_secondmoment, m_sigmaetof2kpi, m_sigmaetofjs, m_sigmaktof2kpi, m_sigmaktofjs, m_sigmamutof2kpi, m_sigmamutofjs, m_sigmapitof2kpi, m_sigmapitofjs, m_sigmaprtof2kpi, m_sigmaprtofjs, m_skim2pi2pr, m_skim4k, m_skim4pi, m_subalg1, m_subalg2, m_subalg3, m_t0tof2kpi, m_t0tofjs, m_texe2kpi, m_texejs, m_texk2kpi, m_texkjs, m_texmu2kpi, m_texmujs, m_texpi2kpi, m_texpijs, m_texpr2kpi, m_texprjs, m_thit2kpi, m_thitjs, m_timecg2kpi, m_timecgjs, m_timegm, m_tof1pidjs, m_tof2kpi, m_tof2pidjs, m_tofID2kpi, m_tofIDjs, m_tofjs, m_tofpath2kpi, m_tofpathjs, m_tuple1, m_x, m_x0js, m_y, m_y0js, m_z, m_z0js, m_zhit2kpi, m_zhitjs, Mcut, mk, DstEmcShower::module(), mpi, mpro, msgSvc(), Ncut, DstEmcShower::numHits(), DstMdcKalTrack::p(), DstMdcTrack::p(), KalmanKinematicFit::pfit(), DstMdcTrack::phi(), DstEmcShower::phi(), phi0, pi, pid, DstMdcKalTrack::pion, VFHelix::pivot(), IVertexDbSvc::PrimaryVertex(), DstMdcKalTrack::proton, DstMdcTrack::px(), DstMdcKalTrack::px(), DstMdcKalTrack::pxy(), DstMdcTrack::pxy(), DstMdcTrack::py(), DstMdcKalTrack::py(), DstMdcTrack::pz(), DstMdcKalTrack::pz(), DstMdcTrack::r(), DstEmcShower::secondMoment(), TrackPool::setBeamPosition(), VertexParameter::setEvx(), DstMdcKalTrack::setPidType(), TrackPool::setVBeamPosition(), VertexParameter::setVx(), IVertexDbSvc::SigmaPrimaryVertex(), sin(), VertexFit::Swim(), DstMdcTrack::theta(), DstEmcShower::theta(), DstEmcShower::time(), v, vec, VertexFit::vx(), VertexFit::wtrk(), DstMdcTrack::x(), DstEmcShower::x(), xmass, DstMdcTrack::y(), DstEmcShower::y(), DstMdcTrack::z(), and DstEmcShower::z().

00393                              {
00394 
00395 //   std::cout << "execute()" << std::endl;
00396  setFilterPassed(false);
00397 
00398    
00399    MsgStream log(msgSvc(), name());
00400    log << MSG::INFO << "in execute()" << endreq;
00401 
00402    SmartDataPtr<Event::EventHeader> eventHeader(eventSvc(),"/Event/EventHeader");
00403    int run=eventHeader->runNumber();
00404    int event=eventHeader->eventNumber();
00405    log << MSG::DEBUG <<"run, evtnum = "
00406       << run << " , "
00407       << event <<endreq;
00408 //   cout<<"run "<<run<<endl;
00409 //   cout<<"event "<<event<<endl;
00410 if(m_rootput)   
00411 {
00412    m_run=run;
00413    m_rec=event;
00414 }   
00415    Ncut[0]++;
00416    SmartDataPtr<EvtRecEvent> evtRecEvent(eventSvc(), EventModel::EvtRec::EvtRecEvent);
00417    log << MSG::DEBUG <<"ncharg, nneu, tottks = " 
00418       << evtRecEvent->totalCharged() << " , "
00419       << evtRecEvent->totalNeutral() << " , "
00420       << evtRecEvent->totalTracks() <<endreq;
00421 
00422    SmartDataPtr<EvtRecTrackCol> evtRecTrkCol(eventSvc(),  EventModel::EvtRec::EvtRecTrackCol);
00423 
00424    if(m_rootput)
00425 {
00426    Gam4pikp::InitVar();
00427 }
00428 
00429    // for MC topo analysis 
00430 if(m_rootput)
00431 {   
00432    if (eventHeader->runNumber()<0)
00433    {
00434       SmartDataPtr<Event::McParticleCol> mcParticleCol(eventSvc(), "/Event/MC/McParticleCol");
00435       int m_numParticle = 0;
00436       if (!mcParticleCol)
00437       {
00438 //       std::cout << "Could not retrieve McParticelCol" << std::endl;
00439          return StatusCode::FAILURE;
00440       }
00441       else
00442       {
00443          bool psipDecay = false;
00444          int rootIndex = -1;
00445          Event::McParticleCol::iterator iter_mc = mcParticleCol->begin();
00446          for (; iter_mc != mcParticleCol->end(); iter_mc++)
00447          {
00448             if ((*iter_mc)->primaryParticle()) continue;
00449             if (!(*iter_mc)->decayFromGenerator()) continue;
00450             if ((*iter_mc)->particleProperty()==100443)
00451             {
00452                psipDecay = true;
00453                rootIndex = (*iter_mc)->trackIndex();
00454             }
00455             if (!psipDecay) continue;
00456             int mcidx = ((*iter_mc)->mother()).trackIndex() - rootIndex;
00457             int pdgid = (*iter_mc)->particleProperty();
00458             m_pdgid[m_numParticle] = pdgid;
00459             m_motheridx[m_numParticle] = mcidx;
00460             m_numParticle += 1;
00461          }
00462       }
00463       m_idxmc = m_numParticle;
00464    } 
00465 }
00466 
00467    Vint iGood, ipip, ipim;
00468    iGood.clear();
00469    ipip.clear();
00470    ipim.clear();
00471    Vp4 ppip, ppim;
00472    ppip.clear();
00473    ppim.clear();
00474    int nCharge = 0;
00475    int ngdcgx=0;
00476    int ncgx=0;
00477    Vdouble pTrkCh;
00478    pTrkCh.clear();
00479    Hep3Vector v(0,0,0);
00480    Hep3Vector vv(0,0,0);
00481 
00482    IVertexDbSvc* vtxsvc;
00483    Gaudi::svcLocator()->service("VertexDbSvc", vtxsvc);
00484    if(vtxsvc->isVertexValid())   
00485    {  
00486       double* vertex = vtxsvc->PrimaryVertex(); 
00487       double* vertexsigma = vtxsvc->SigmaPrimaryVertex();
00488       v.setX(vertex[0]);
00489       v.setY(vertex[1]);
00490       v.setZ(vertex[2]);
00491       vv.setX(vertexsigma[0]);
00492       vv.setY(vertexsigma[1]);
00493       vv.setZ(vertexsigma[2]);
00494    }
00495 
00496 
00497    if(run<0)
00498    {
00499       v[0]=0.;
00500       v[1]=0.;
00501       v[2]=0.;
00502       vv[0]=0.;
00503       vv[1]=0.;
00504       vv[2]=0.;
00505 
00506    }     
00507 
00508 
00509    for(int i = 0; i < evtRecEvent->totalCharged(); i++){
00510       if(i>=evtRecTrkCol->size()) break;
00511       ncgx++;
00512       EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + i;
00513       if(!(*itTrk)->isMdcTrackValid()) continue;
00514       if (!(*itTrk)->isMdcKalTrackValid()) continue;
00515       ngdcgx++;
00516       RecMdcTrack *mdcTrk = (*itTrk)->mdcTrack();
00517 
00518       HepVector a = mdcTrk->helix();
00519       HepSymMatrix Ea = mdcTrk->err();
00520       HepPoint3D pivot(0.,0.,0.);
00521       HepPoint3D IP(v[0],v[1],v[2]);
00522       VFHelix helixp(pivot,a,Ea);  
00523       helixp.pivot(IP);
00524       HepVector vec = helixp.a();
00525       pTrkCh.push_back(mdcTrk->p()*mdcTrk->charge());    
00526       iGood.push_back((*itTrk)->trackId());
00527       nCharge += mdcTrk->charge();
00528    }
00529 
00530 
00531    int nGood = iGood.size();
00532    log << MSG::DEBUG << "ngood, totcharge = " << nGood << " , " << nCharge << endreq;
00533    if((nGood < 4))  
00534    {
00535       return StatusCode::SUCCESS;
00536    }
00537 
00538    Ncut[1]++;
00539    Vint iGam;
00540    int ngamx=0;
00541    int ngdgamx=0;
00542    iGam.clear();
00543    Vint iGamnofit;
00544    iGamnofit.clear();
00545    for(int i = evtRecEvent->totalCharged(); i< evtRecEvent->totalTracks(); i++) {
00546       ngamx++;   
00547       if(i>=evtRecTrkCol->size()) break; 
00548       EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + i;
00549       if(!(*itTrk)->isEmcShowerValid()) continue;
00550       RecEmcShower *emcTrk = (*itTrk)->emcShower();
00551       Hep3Vector emcpos(emcTrk->x(), emcTrk->y(), emcTrk->z());
00552       // find the nearest charged track
00553 //      double dthe = 200.;
00554 //      double dphi = 200.;
00555 //      double dang = 200.;
00556       double dthe = 200.;
00557       double dphi = 200.;
00558       double dang = 200.; 
00559       
00560       ngdgamx++;
00561       for(int j = 0; j < evtRecEvent->totalCharged(); j++) {
00562          if(j>=evtRecTrkCol->size()) break;
00563          EvtRecTrackIterator jtTrk = evtRecTrkCol->begin() + j;
00564          if(!(*jtTrk)->isExtTrackValid()) continue;
00565          RecExtTrack *extTrk = (*jtTrk)->extTrack();
00566          if(extTrk->emcVolumeNumber() == -1) continue;
00567          Hep3Vector extpos = extTrk->emcPosition();
00568          //      double ctht = extpos.cosTheta(emcpos);
00569          double angd = extpos.angle(emcpos);
00570          double thed = extpos.theta() - emcpos.theta();
00571          double phid = extpos.deltaPhi(emcpos);
00572          thed = fmod(thed+CLHEP::twopi+CLHEP::twopi+pi, CLHEP::twopi) - CLHEP::pi;
00573          phid = fmod(phid+CLHEP::twopi+CLHEP::twopi+pi, CLHEP::twopi) - CLHEP::pi;
00574 
00575 //       if(fabs(thed) < fabs(dthe)) dthe = thed;
00576 //       if(fabs(phid) < fabs(dphi)) dphi = phid;
00577 //       if(angd < dang) dang = angd;
00578 
00579          if(angd < dang){ dang=angd;
00580             dthe=thed;
00581             dphi=phid;   
00582          }
00583 
00584       }
00585       //    if(dang>=200) continue;
00586       double eraw = emcTrk->energy();
00587       dthe = dthe * 180 / (CLHEP::pi);
00588       dphi = dphi * 180 / (CLHEP::pi);
00589       dang = dang * 180 / (CLHEP::pi);
00590 //      dthert = dthert * 180 / (CLHEP::pi);
00591 //      dphirt = dphirt * 180 / (CLHEP::pi);
00592 //      dangrt = dangrt * 180 / (CLHEP::pi);    
00593       //    if(eraw < m_energyThreshold) continue;
00594       iGam.push_back((*itTrk)->trackId());
00595       if(eraw < m_energyThreshold) continue;
00596       if(dang < 20.0) continue;
00597       iGamnofit.push_back((*itTrk)->trackId());
00598 
00599    }
00600    // Finish Good Photon Selection
00601    //
00602    int nGam = iGam.size();
00603    int nGamnofit = iGamnofit.size();
00604 
00605    log << MSG::DEBUG << "num Good Photon " << nGam  << " , " <<evtRecEvent->totalNeutral()<<endreq;
00606    if(nGam<1){
00607       return StatusCode::SUCCESS;
00608    }
00609    Ncut[2]++;
00610 
00611    if(nGood>20||nGam>30)   return StatusCode::SUCCESS;  
00612 
00613 if(m_rootput)
00614 {
00615 m_idxmdc = nGood;
00616 m_idxemc=nGam;   
00617 }
00618 //
00619    Vp4 pGam;
00620    pGam.clear();
00621    for(int i = 0; i < nGam; i++) {
00622       EvtRecTrackIterator itTrk = evtRecTrkCol->begin() + iGam[i]; 
00623       RecEmcShower* emcTrk = (*itTrk)->emcShower();
00624       double eraw = emcTrk->energy();
00625       double phi = emcTrk->phi();
00626       double the = emcTrk->theta();
00627       HepLorentzVector ptrk;
00628       ptrk.setPx(eraw*sin(the)*cos(phi));
00629       ptrk.setPy(eraw*sin(the)*sin(phi));
00630       ptrk.setPz(eraw*cos(the));
00631       ptrk.setE(eraw);
00632 
00633       //    ptrk = ptrk.boost(-0.011,0,0);// boost to cms
00634 
00635       pGam.push_back(ptrk);
00636    }
00637    //
00638    // Assign 4-momentum to each charged track
00639    //
00640    ParticleID *pid = ParticleID::instance();
00641 
00642 
00643    for(int i = 0; i < nGood; i++) {
00644       EvtRecTrackIterator itTrk = evtRecTrkCol->begin() + iGood[i]; 
00645       RecMdcTrack* mdcTrk = (*itTrk)->mdcTrack();
00646 
00647       RecMdcKalTrack* mdcKalTrk = (*itTrk)->mdcKalTrack();//After ParticleID, use RecMdcKalTrack substitute RecMdcTrack
00648       RecMdcKalTrack::setPidType  (RecMdcKalTrack::pion);//PID can set to electron, muon, pion, kaon and proton;The default setting is pion
00649 
00650       if(mdcKalTrk->charge() >0) {
00651          ipip.push_back(iGood[i]);
00652          HepLorentzVector ptrk;
00653          ptrk.setPx(mdcKalTrk->px());
00654          ptrk.setPy(mdcKalTrk->py());
00655          ptrk.setPz(mdcKalTrk->pz());
00656          double p3 = ptrk.mag();
00657          ptrk.setE(sqrt(p3*p3+mpi*mpi));
00658 
00659 
00660          ppip.push_back(ptrk);
00661       } else {
00662          ipim.push_back(iGood[i]);
00663          HepLorentzVector ptrk;
00664          ptrk.setPx(mdcKalTrk->px());
00665          ptrk.setPy(mdcKalTrk->py());
00666          ptrk.setPz(mdcKalTrk->pz());
00667          double p3 = ptrk.mag();
00668          ptrk.setE(sqrt(p3*p3+mpi*mpi));
00669 
00670          //      ptrk = ptrk.boost(-0.011,0,0);//boost to cms
00671 
00672          ppim.push_back(ptrk);
00673       }
00674    }
00675    int npip = ipip.size();
00676    int npim = ipim.size();
00677    //  if(npip*npim != 4) return SUCCESS;
00678    if((npip < 2)||(npim < 2)) return SUCCESS;
00679 
00680    Ncut[3]++;
00681 
00682    //
00683    // Loop each gamma pair, check ppi0 and pTot 
00684    //
00685 
00686    int icgp1=-1;
00687    int icgp2=-1;
00688    int icgm1=-1;
00689    int icgm2=-1;
00690    int igam=-1;
00691    double chisqtrk = 9999.;
00692    WTrackParameter wcgp1;
00693    WTrackParameter wcgp2;
00694    WTrackParameter wcgm1;
00695    WTrackParameter wcgm2;
00696    int ipip1js=-1;
00697    int ipip2js=-1;
00698    int ipim1js=-1;
00699    int ipim2js=-1;
00700    double mcompall=9999; 
00701    double mppreclst=9999;
00702    double meelst=9999;;
00703    double mchic2kpilst=9999;
00704    double chis4c2kpilst=9999;
00705    int type2kpilst=0;
00706    double dtpr2kpilst[4]={9999,9999,9999,9999};
00707 
00708    double mc1=mpi,mc2=mpi,mc3=mpi,mc4=mpi;
00709    double mchic01=0.0;
00710    HepLorentzVector pgam=(0,0,0,0);
00711    HepPoint3D xorigin(0.,0.,0.);
00712    xorigin[0]=9999.;
00713    xorigin[1]=9999.;
00714    xorigin[2]=9999.;
00715    HepSymMatrix xem(3,0);
00716 
00717    int cl4pi=0; 
00718    int clajs=0;
00719    HepLorentzVector p4psipjs(0.011*m_ecms, 0.0, 0.0, m_ecms);
00720    double psipBetajs = (p4psipjs.vect()).mag()/(p4psipjs.e());
00721    HepLorentzVector p4psip(0.011*m_ecms, 0.0, 0.0, m_ecms);
00722    double psipBeta = (p4psip.vect()).mag()/(p4psip.e()); // beta = P/E
00723    
00724    for(int ii = 0; ii < npip-1; ii++) {
00725       RecMdcKalTrack *pip1Trk = (*(evtRecTrkCol->begin()+ipip[ii]))->mdcKalTrack();
00726       for(int ij = ii+1; ij < npip; ij++) {
00727          RecMdcKalTrack *pip2Trk = (*(evtRecTrkCol->begin()+ipip[ij]))->mdcKalTrack();
00728          for(int ik = 0; ik < npim-1; ik++) {
00729             RecMdcKalTrack *pim1Trk = (*(evtRecTrkCol->begin()+ipim[ik]))->mdcKalTrack();
00730             for(int il = ik+1; il < npim; il++) {  
00731                RecMdcKalTrack *pim2Trk = (*(evtRecTrkCol->begin()+ipim[il]))->mdcKalTrack();
00732                double squar[3]={9999.,9999.,9999.};
00733                double squarkpi[6]={9999.,9999.,9999.,9999.,9999.,9999.};
00734                WTrackParameter wvpip1Trk, wvpim1Trk, wvpip2Trk, wvpim2Trk;
00735 
00736                Vint iGoodjs;
00737                iGoodjs.clear();
00738                Vdouble pTrkjs;
00739                pTrkjs.clear();
00740 
00741 
00742 
00743                pTrkjs.push_back(pip1Trk->p()*pip1Trk->charge());
00744                pTrkjs.push_back(pip2Trk->p()*pip2Trk->charge());
00745                pTrkjs.push_back(pim1Trk->p()*pim1Trk->charge());
00746                pTrkjs.push_back(pim2Trk->p()*pim2Trk->charge());
00747                iGoodjs.push_back(ipip[ii]);  
00748                iGoodjs.push_back(ipip[ij]);
00749                iGoodjs.push_back(ipim[ik]);
00750                iGoodjs.push_back(ipim[il]);
00751 
00752                Gam4pikp::BubbleSort(pTrkjs, iGoodjs);
00753                Vint jGoodjs;
00754                jGoodjs.clear();
00755                Vp4 p4chTrkjs; 
00756                p4chTrkjs.clear();  
00757                Vint i4cpip1js, i4cpip2js, i4cpim1js, i4cpim2js;
00758                i4cpip1js.clear(); 
00759                i4cpip2js.clear();
00760                i4cpim1js.clear();
00761                i4cpim2js.clear();   
00762                i4cpip1js.push_back(iGoodjs[2]);
00763                i4cpip2js.push_back(iGoodjs[3]);
00764                i4cpim1js.push_back(iGoodjs[1]);
00765                i4cpim2js.push_back(iGoodjs[0]);
00766                jGoodjs.push_back(i4cpip1js[0]);
00767                jGoodjs.push_back(i4cpim1js[0]);
00768                jGoodjs.push_back(i4cpip2js[0]);
00769                jGoodjs.push_back(i4cpim2js[0]);
00770 
00771                for (int i = 0; i < 4; i++)
00772                {
00773                   EvtRecTrackIterator  itTrk = evtRecTrkCol->begin() + jGoodjs[i];
00774                   if (!(*itTrk)->isMdcTrackValid()) continue;
00775                   RecMdcTrack *mdcTrk = (*itTrk)->mdcTrack();
00776                   if (!(*itTrk)->isMdcKalTrackValid()) continue;
00777                   RecMdcKalTrack *mdcKalTrk = (*itTrk)->mdcKalTrack();
00778                   double ptrk;
00779                   HepLorentzVector p4trk;
00780                   if (i<2)
00781                   {
00782                      mdcKalTrk->setPidType(RecMdcKalTrack::pion);
00783                      ptrk = mdcKalTrk->p();
00784                      p4trk.setPx(mdcKalTrk->px());
00785                      p4trk.setPy(mdcKalTrk->py());
00786                      p4trk.setPz(mdcKalTrk->pz());
00787                      p4trk.setE(sqrt(ptrk*ptrk+mpi*mpi));
00788                   }
00789                   else{
00790                      mdcKalTrk->setPidType(RecMdcKalTrack::electron);
00791                      ptrk = mdcKalTrk->p();
00792                      p4trk.setPx(mdcKalTrk->px());
00793                      p4trk.setPy(mdcKalTrk->py());
00794                      p4trk.setPz(mdcKalTrk->pz());
00795                      p4trk.setE(sqrt(ptrk*ptrk+xmass[0]*xmass[0]));
00796                   }
00797                   p4trk.boost(-1.0*psipBetajs, 0.0, 0.0);
00798                   p4chTrkjs.push_back(p4trk);
00799                }
00800                p4psipjs.boost(-1.0*psipBetajs, 0.0, 0.0);
00801 
00802                HepLorentzVector p4pipijs = p4chTrkjs[0] + p4chTrkjs[1];
00803                HepLorentzVector p4eejs   = p4chTrkjs[2] + p4chTrkjs[3];
00804                HepLorentzVector p4pipirecjs = p4psipjs - p4pipijs;
00805                double mpprecjs=p4pipirecjs.m();
00806                double mpipijs=p4pipijs.m();
00807                double meejs=p4eejs.m();
00808                double mcomp=sqrt((mpprecjs-3.097)*(mpprecjs-3.097)+(meejs-3.097)*(meejs-3.097));
00809                if(mcomp<mcompall)
00810                {
00811                   mcompall=mcomp;                       
00812                   ipip1js=i4cpip1js[0];
00813                   ipim1js=i4cpim1js[0];
00814                   ipip2js=i4cpip2js[0];
00815                   ipim2js=i4cpim2js[0];
00816                   mppreclst=mpprecjs;
00817                   meelst=meejs;
00818                }
00819 
00820 if(m_rootput)
00821 {
00822                m_mpprecall=mppreclst;
00823                m_meeall=meelst;
00824 }
00825             }
00826 
00827          }
00828       }
00829    }
00830 
00831    //{  
00832 //   HepLorentzVector p4psip(0.011*m_ecms, 0.0, 0.0, m_ecms);
00833 //   double psipBeta = (p4psip.vect()).mag()/(p4psip.e()); // beta = P/E
00834    Vint iGood4c;
00835    iGood4c.clear();
00836    Vdouble pTrk4c;
00837    pTrk4c.clear();
00838    Vint jGood;
00839    jGood.clear();
00840    Vint jsGood;
00841    jsGood.clear(); 
00842 
00843    if(mcompall>9997)
00844       return StatusCode::SUCCESS;
00845 
00846    jsGood.push_back(ipip1js);
00847    jsGood.push_back(ipim1js);
00848    jsGood.push_back(ipip2js);
00849    jsGood.push_back(ipim2js);  
00850 
00851    for(int i = 0; i < evtRecEvent->totalCharged(); i++)
00852    {
00853       if(i>=evtRecTrkCol->size()) break;
00854       EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + i;
00855       if(!(*itTrk)->isMdcTrackValid()) continue;
00856       if (!(*itTrk)->isMdcKalTrackValid()) continue;
00857       RecMdcTrack *mdcTrk = (*itTrk)->mdcTrack();
00858       if((i!=ipip1js)&&(i!=ipim1js)&&(i!=ipip2js)&&(i!=ipim2js))
00859       {
00860          jsGood.push_back(i);
00861       }
00862    }     
00863 
00864    int njsGood=jsGood.size();
00865    //ParticleID *pid = ParticleID::instance();
00866 if(m_rootput)   
00867 {
00868    for (int i = 0; i < njsGood; i++)
00869    {
00870       EvtRecTrackIterator  itTrk = evtRecTrkCol->begin() + jsGood[i];
00871       if (!(*itTrk)->isMdcTrackValid()) continue;
00872       RecMdcTrack *mdcTrk = (*itTrk)->mdcTrack();
00873       if (!(*itTrk)->isMdcKalTrackValid()) continue;
00874       RecMdcKalTrack *mdcKalTrk = (*itTrk)->mdcKalTrack();
00875       double ptrk;
00876       ptrk = mdcKalTrk->p();
00877       m_x0js[i] = mdcTrk->x();
00878       m_y0js[i] = mdcTrk->y();
00879       m_z0js[i] = mdcTrk->z();
00880       m_r0js[i] = mdcTrk->r();
00881       m_ppmdcjs[i] = mdcTrk->p();
00882       m_pxmdcjs[i] = mdcTrk->px();
00883       m_pymdcjs[i] = mdcTrk->py();
00884       m_pzmdcjs[i] = mdcTrk->pz();
00885       m_ppkaljs[i] = mdcKalTrk->p();
00886       Hep3Vector p3jsi(mdcTrk->px(),mdcTrk->py(),mdcTrk->pz());    
00887       if(njsGood>4){
00888          EvtRecTrackIterator  itTrk5 = evtRecTrkCol->begin() + jsGood[4];
00889          RecMdcTrack *mdcTrk5 = (*itTrk5)->mdcTrack();
00890          Hep3Vector p3js5(mdcTrk5->px(),mdcTrk5->py(),mdcTrk5->pz());
00891          m_angjs5[i]=p3jsi.angle(p3js5);
00892          m_nearjs5[i]=p3jsi.howNear(p3js5);
00893       }
00894       if(njsGood>5){
00895          EvtRecTrackIterator  itTrk6 = evtRecTrkCol->begin() + jsGood[5];
00896          RecMdcTrack *mdcTrk6 = (*itTrk6)->mdcTrack();
00897          Hep3Vector p3js6(mdcTrk6->px(),mdcTrk6->py(),mdcTrk6->pz());
00898          m_angjs6[i]=p3jsi.angle(p3js6);
00899          m_nearjs6[i]=p3jsi.howNear(p3js6);
00900       }
00901 
00902 
00903       m_ptmdcjs[i] = mdcTrk->pxy();
00904       m_ptkaljs[i] = mdcKalTrk->pxy();
00905       double x0=mdcTrk->x();
00906       double y0=mdcTrk->y();
00907       double z0=mdcTrk->z();
00908       double phi0=mdcTrk->helix(1);
00909       double xv=v[0];
00910       double yv=v[1];
00911       double zv=v[2];
00912       double Rxy=(x0-xv)*cos(phi0)+(y0-yv)*sin(phi0);
00913       double Rz=z0-zv;
00914       m_Rxyjs[i]=Rxy;
00915       m_Rzjs[i]=Rz;
00916       HepVector a = mdcTrk->helix();
00917       HepSymMatrix Ea = mdcTrk->err();
00918       HepPoint3D pivot(0.,0.,0.);
00919       HepPoint3D IP(v[0],v[1],v[2]);
00920       VFHelix helixp(pivot,a,Ea);
00921       helixp.pivot(IP);
00922       HepVector vec = helixp.a();
00923       m_Rnxyjs[i]=vec[0];
00924       m_Rnzjs[i]=vec[3];
00925       m_phinjs[i]=vec[1];   
00926       //tof
00927       if ((*itTrk)->isTofTrackValid())
00928       {    m_bjtofvaljs[i]=1;
00929          m_cotof1js[i]=1;  
00930          SmartRefVector<RecTofTrack> tofTrkCol = (*itTrk)->tofTrack();
00931          SmartRefVector<RecTofTrack>::iterator iter_tof=tofTrkCol.begin();
00932          for (;iter_tof != tofTrkCol.end(); iter_tof++ ){
00933             TofHitStatus *status = new TofHitStatus;
00934             status->setStatus((*iter_tof)->status());
00935             if(status->is_cluster()){
00936                m_bjtofjs[i]=1;              
00937                m_counterjs[i] = status->is_counter();
00938                m_barreljs[i]  = status->is_barrel();
00939                m_layertofjs[i]   = status->layer();
00940                m_readoutjs[i] = status->is_readout();
00941                m_clusterjs[i] = status->is_cluster();       
00942                m_cotof2js[i]=2;    
00943                m_betajs[i]= (*iter_tof)->beta();
00944                m_tofjs[i] = (*iter_tof)->tof();
00945                m_tofpathjs[i] = (*iter_tof)->path();
00946                m_zhitjs[i]= (*iter_tof)->zrhit();
00947                m_texejs[i] = (*iter_tof)->texpElectron();
00948                m_texmujs[i] = (*iter_tof)->texpMuon();
00949                m_texpijs[i] = (*iter_tof)->texpPion();
00950                m_texkjs[i] = (*iter_tof)->texpKaon();
00951                m_texprjs[i] = (*iter_tof)->texpProton();
00952                m_dtejs[i]  = m_tofjs[i] - m_texejs[i];
00953                m_dtmujs[i]  = m_tofjs[i] - m_texmujs[i];
00954                m_dtpijs[i]  = m_tofjs[i] - m_texpijs[i];
00955                m_dtkjs[i]  = m_tofjs[i] - m_texkjs[i];
00956                m_dtprjs[i]  = m_tofjs[i] - m_texprjs[i];
00957 
00958                m_sigmaetofjs[i]=(*iter_tof)->sigma(0);
00959                m_sigmamutofjs[i]=(*iter_tof)->sigma(1);
00960                m_sigmapitofjs[i]=(*iter_tof)->sigma(2);
00961                m_sigmaktofjs[i]=(*iter_tof)->sigma(3);
00962                m_sigmaprtofjs[i]=(*iter_tof)->sigma(4);
00963                m_t0tofjs[i]=(*iter_tof)->t0();
00964                m_errt0tofjs[i]=(*iter_tof)->errt0();   
00965 
00966                m_tofIDjs[i]=(*iter_tof)->tofID();
00967                m_clusterIDjs[i]=(*iter_tof)->tofTrackID();
00968             }
00969             delete status;
00970          }
00971       } 
00972       //dedx
00973       if ((*itTrk)->isMdcDedxValid())
00974       {
00975 
00976          RecMdcDedx* dedxTrk = (*itTrk)->mdcDedx();
00977          m_chiejs[i] = dedxTrk->chiE();
00978          m_chimujs[i] = dedxTrk->chiMu();
00979          m_chipijs[i] = dedxTrk->chiPi();
00980          m_chikjs[i] = dedxTrk->chiK();
00981          m_chipjs[i] = dedxTrk->chiP();
00982          m_ghitjs[i] = dedxTrk->numGoodHits();
00983          m_thitjs[i] = dedxTrk->numTotalHits();
00984          m_probphjs[i] = dedxTrk->probPH();
00985          m_normphjs[i] = dedxTrk->normPH();
00986       }   
00987 
00988 
00989 
00990       //emc      
00991       if ( (*itTrk)->isEmcShowerValid() )
00992       {
00993          RecEmcShower* emcTrk = (*itTrk)->emcShower();
00994          m_bjemcjs[i]=1;
00995          m_emcjs[i] = emcTrk->energy();
00996          m_evpjs[i] = emcTrk->energy()/ptrk;
00997          m_timecgjs[i] = emcTrk->time();
00998          //            totalEnergy += emcTrk->energy();
00999       }
01000 
01001       //muc
01002       if ( (*itTrk)->isMucTrackValid() )
01003       {
01004          RecMucTrack* mucTrk = (*itTrk)->mucTrack();
01005          double dpthp = mucTrk->depth()/25.0;//why?
01006          //           m_depthmucjs[i] = dpthp<10.0 ? dpthp : 10.0;
01007          m_bjmucjs[i]=1;
01008          m_depthmucjs[i]=mucTrk->depth();          
01009          m_layermucjs[i] = mucTrk->numLayers();
01010       }
01011 
01012       m_cosmdcjs[i] = cos(mdcTrk->theta());
01013       m_phimdcjs[i] = mdcTrk->phi();
01014       //pid
01015       pid->init();
01016       pid->setMethod(pid->methodProbability());
01017       pid->setChiMinCut(4);
01018       pid->setRecTrack(*itTrk);
01019       pid->usePidSys(pid->useDedx() | pid->useTof1() | pid->useTof2());
01020       pid->identify(pid->onlyPion() | pid->onlyKaon() | pid->onlyProton());
01021       pid->identify(pid->onlyElectron() | pid->onlyMuon());
01022       pid->calculate();
01023       if(!(pid->IsPidInfoValid())) continue;
01024       //      m_costpidjs[i] = cos(mdcTrk->theta());
01025       m_dedxpidjs[i] = pid->chiDedx(2);
01026       m_tof1pidjs[i] = pid->chiTof1(2);
01027       m_tof2pidjs[i] = pid->chiTof2(2);
01028       m_probejs[i] = pid->probElectron();
01029       m_probmujs[i] = pid->probMuon();
01030       m_probpijs[i] = pid->probPion();
01031       m_probkjs[i] = pid->probKaon();
01032       m_probprjs[i] = pid->probProton();      
01033 
01034 
01035 
01036    }
01037 
01038 }
01039 
01040     Vint jGam2kpi;
01041     jGam2kpi.clear();
01042    
01043    Vint iGood2kpi, ipip2kpi, ipim2kpi;
01044    iGood2kpi.clear();
01045    ipip2kpi.clear();
01046    ipim2kpi.clear();
01047    Vp4 ppip2kpi, ppim2kpi;
01048    ppip2kpi.clear();
01049    ppim2kpi.clear();
01050 
01051    Vint ipipnofit, ipimnofit, ikpnofit, ikmnofit, ipropnofit, ipromnofit;
01052    ipipnofit.clear();
01053    ipimnofit.clear(); 
01054    ikpnofit.clear();
01055    ikmnofit.clear(); 
01056    ipropnofit.clear();
01057    ipromnofit.clear();
01058    Vp4 ppipnofit, ppimnofit, pkpnofit, pkmnofit, ppropnofit, ppromnofit;
01059    ppipnofit.clear();
01060    ppimnofit.clear();
01061    pkpnofit.clear();
01062    pkmnofit.clear();
01063    ppropnofit.clear();
01064    ppromnofit.clear();
01065 
01066    Vdouble p3pip2kpi;
01067    p3pip2kpi.clear();
01068    Vdouble p3pim2kpi;
01069    p3pim2kpi.clear();
01070 
01071    Vint itrak2kpi;
01072    itrak2kpi.clear();
01073    int cls2kpi;
01074    double chis2kpi=9999.;
01075    double m4piall=9999.;
01076    double m4kall=9999.;
01077    double mgam4piall=9999.;
01078    double mgam4kall=9999.;
01079    for(int i = 0; i < evtRecEvent->totalCharged(); i++){
01080       if(i>=evtRecTrkCol->size()) break;
01081       EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + i;
01082       if(!(*itTrk)->isMdcTrackValid()) continue;
01083       if (!(*itTrk)->isMdcKalTrackValid()) continue;
01084       RecMdcTrack *mdcTrk = (*itTrk)->mdcTrack();
01085       double    z02kpi = mdcTrk->z();
01086       double    r02kpi = mdcTrk->r();   
01087       HepVector a = mdcTrk->helix();
01088       HepSymMatrix Ea = mdcTrk->err();
01089       HepPoint3D pivot(0.,0.,0.);
01090       HepPoint3D IP(v[0],v[1],v[2]);
01091       VFHelix helixp(pivot,a,Ea);
01092       helixp.pivot(IP);
01093       HepVector vec = helixp.a();
01094       double    Rnxy02kpi=vec[0];
01095       double    Rnz02kpi=vec[3];    
01096       //  if(fabs(Rnxy02kpi>1.0)) continue;
01097       //  if(fabs(Rnz02kpi>10.0)) continue;
01098       iGood2kpi.push_back((*itTrk)->trackId());
01099    }
01100    int nGood2kpi = iGood2kpi.size();
01101    if(nGood2kpi==4)
01102    {
01103       for(int i = 0; i < nGood2kpi; i++) {
01104          EvtRecTrackIterator itTrk = evtRecTrkCol->begin() + iGood2kpi[i];
01105          RecMdcTrack* mdcTrk = (*itTrk)->mdcTrack();
01106          RecMdcKalTrack* mdcKalTrk = (*itTrk)->mdcKalTrack();
01107          if(mdcKalTrk->charge() >0) {
01108             ipip2kpi.push_back(iGood2kpi[i]);
01109             p3pip2kpi.push_back(mdcKalTrk->p());
01110             HepLorentzVector ptrk;
01111             ptrk.setPx(mdcKalTrk->px());
01112             ptrk.setPy(mdcKalTrk->py());
01113             ptrk.setPz(mdcKalTrk->pz());
01114             double p3 = ptrk.mag();
01115             ptrk.setE(sqrt(p3*p3+mpi*mpi));
01116             ppip2kpi.push_back(ptrk);
01117          } else {
01118             ipim2kpi.push_back(iGood2kpi[i]);
01119             p3pim2kpi.push_back(mdcKalTrk->p());
01120             HepLorentzVector ptrk;
01121             ptrk.setPx(mdcKalTrk->px());
01122             ptrk.setPy(mdcKalTrk->py());
01123             ptrk.setPz(mdcKalTrk->pz());
01124             double p3 = ptrk.mag();
01125             ptrk.setE(sqrt(p3*p3+mpi*mpi));
01126             ppim2kpi.push_back(ptrk);
01127          }
01128       }    
01129       int npip2kpi = ipip2kpi.size();
01130       int npim2kpi = ipim2kpi.size();
01131 
01132 
01133 
01134       ParticleID *pid = ParticleID::instance();
01135 
01136 if(m_rootput)
01137 {
01138       m_cy2kpi=6;
01139 }
01140 
01141       if((npip2kpi == 2)&&(npim2kpi == 2))
01142       {
01143          //if(nGamnofit>=1)
01144          
01145 
01146 Ncut[4]++;
01147 
01148          HepPoint3D xorigin2kpi(0.,0.,0.);
01149          xorigin2kpi[0]=9999.;
01150          xorigin2kpi[1]=9999.;
01151          xorigin2kpi[2]=9999.;
01152          HepSymMatrix xem2kpi(3,0);
01153 
01154          Gam4pikp::BubbleSort(p3pip2kpi, ipip2kpi);
01155          Gam4pikp::BubbleSort(p3pim2kpi, ipim2kpi);
01156 
01157          Mcut[1]++;     
01158  RecMdcKalTrack *pip12kpiTrk = (*(evtRecTrkCol->begin()+ipip2kpi[0]))->mdcKalTrack();
01159  RecMdcKalTrack *pip22kpiTrk = (*(evtRecTrkCol->begin()+ipip2kpi[1]))->mdcKalTrack();
01160  RecMdcKalTrack *pim12kpiTrk = (*(evtRecTrkCol->begin()+ipim2kpi[0]))->mdcKalTrack();
01161  RecMdcKalTrack *pim22kpiTrk = (*(evtRecTrkCol->begin()+ipim2kpi[1]))->mdcKalTrack();
01162  double squar2kpi[10]={9999.,9999.,9999.,9999.,9999.,9999.,9999.,9999.,9999.,9999.};
01163          double mc12kpi,mc22kpi,mc32kpi,mc42kpi;
01164          // double chis2kpi=9999.; 
01165          WTrackParameter wcgp12kpi;
01166          WTrackParameter wcgp22kpi;
01167          WTrackParameter wcgm12kpi;
01168          WTrackParameter wcgm22kpi;
01169          int icgp12kpi=-1;
01170          int icgp22kpi=-1;
01171          int icgm12kpi=-1;
01172          int icgm22kpi=-1;
01173          int igam2kpi=-1;
01174          double m2kpi=9999;
01175 
01176          int n20=0;
01177          int n30=0;
01178          WTrackParameter wvpip12kpiTrk, wvpim12kpiTrk, wvpip22kpiTrk, wvpim22kpiTrk; 
01179          for(int k=0;k<6;k++)
01180          {
01181             if(k==0){mc12kpi=mpi;mc22kpi=mpi;mc32kpi=mpi;mc42kpi=mpi;}
01182             if(k==1){mc12kpi=mk;mc22kpi=mk;mc32kpi=mk;mc42kpi=mk;}     
01183             if(k==2){mc12kpi=mpi;mc22kpi=mpro;mc32kpi=mpi;mc42kpi=mpro;}
01184             if(k==3){mc12kpi=mpro;mc22kpi=mpi;mc32kpi=mpro;mc42kpi=mpi;}
01185             if(k==4){mc12kpi=mpi;mc22kpi=mpro;mc32kpi=mpro;mc42kpi=mpi; }
01186             if(k==5){mc12kpi=mpro;mc22kpi=mpi;mc32kpi=mpi;mc42kpi=mpro;}
01187 
01188 
01189 
01190     wvpip12kpiTrk = WTrackParameter(mc12kpi, pip12kpiTrk->getZHelix(), pip12kpiTrk->getZError());
01191     wvpip22kpiTrk = WTrackParameter(mc22kpi, pip22kpiTrk->getZHelix(), pip22kpiTrk->getZError());
01192     wvpim12kpiTrk = WTrackParameter(mc32kpi, pim12kpiTrk->getZHelix(), pim12kpiTrk->getZError());
01193     wvpim22kpiTrk = WTrackParameter(mc42kpi, pim22kpiTrk->getZHelix(), pim22kpiTrk->getZError());
01194             HepPoint3D vx(0., 0., 0.);
01195             HepSymMatrix Evx(3, 0);
01196             double bx = 1E+6;
01197             double by = 1E+6;
01198             double bz = 1E+6;
01199             Evx[0][0] = bx*bx;
01200             Evx[1][1] = by*by;
01201             Evx[2][2] = bz*bz;
01202             VertexParameter vxpar;
01203             vxpar.setVx(vx);
01204             vxpar.setEvx(Evx);
01205             VertexFit* vtxfit = VertexFit::instance();
01206             vtxfit->init();
01207             vtxfit->AddTrack(0,  wvpip12kpiTrk);
01208             vtxfit->AddTrack(1,  wvpim12kpiTrk);
01209             vtxfit->AddTrack(2,  wvpip22kpiTrk);
01210             vtxfit->AddTrack(3,  wvpim22kpiTrk);
01211             vtxfit->AddVertex(0, vxpar,0, 1, 2, 3);
01212             if(!vtxfit->Fit(0)) continue;
01213             vtxfit->Swim(0);  
01214             WTrackParameter wpip12kpi = vtxfit->wtrk(0);
01215             WTrackParameter wpim12kpi = vtxfit->wtrk(1);
01216             WTrackParameter wpip22kpi = vtxfit->wtrk(2);
01217             WTrackParameter wpim22kpi = vtxfit->wtrk(3);  
01218             WTrackParameter wpip12kpiys = vtxfit->wtrk(0);
01219             WTrackParameter wpim12kpiys = vtxfit->wtrk(1);
01220             WTrackParameter wpip22kpiys = vtxfit->wtrk(2);
01221             WTrackParameter wpim22kpiys = vtxfit->wtrk(3);  
01222             xorigin2kpi = vtxfit->vx(0);
01223             xem2kpi = vtxfit->Evx(0);  
01224             KalmanKinematicFit * kmfit = KalmanKinematicFit::instance();
01225 
01226             HepLorentzVector ecms(0.040547,0,0,3.68632);
01227 
01228             double chisq = 9999.;
01229             int ig1 = -1;
01230             for(int i = 0; i < nGam; i++) {
01231                RecEmcShower *g1Trk = (*(evtRecTrkCol->begin()+iGam[i]))->emcShower();
01232                kmfit->init();
01233                kmfit->setBeamPosition(xorigin2kpi);
01234                kmfit->setVBeamPosition(xem2kpi);      
01235                kmfit->AddTrack(0, wpip12kpi);
01236                kmfit->AddTrack(1, wpim12kpi);
01237                kmfit->AddTrack(2, wpip22kpi);
01238                kmfit->AddTrack(3, wpim22kpi);   
01239                kmfit->AddTrack(4, 0.0, g1Trk);
01240                kmfit->AddFourMomentum(0, p4psip);
01241                //        if(!kmfit->Fit(0)) continue;
01242                bool oksq = kmfit->Fit();
01243                if(oksq) {
01244                   double chi2 = kmfit->chisq();
01245                   if(chi2 < chisq) {
01246                      chisq = chi2;
01247                      squar2kpi[k]=chi2;
01248                      ig1 = iGam[i];
01249 
01250                   }
01251                }
01252             }
01253             if(squar2kpi[k]<200&&squar2kpi[k]<chis2kpi)
01254             {    
01255 //             m_comcs2kpi[k]=squar2kpi[k]; 
01256                chis2kpi=squar2kpi[k];
01257                if(squar2kpi[k]<20) n20=n20+1;
01258                if(squar2kpi[k]<30) n30=n30+1;
01259 
01260                icgp12kpi=ipip2kpi[0];
01261                icgp22kpi=ipip2kpi[1];
01262                icgm12kpi=ipim2kpi[0];
01263                icgm22kpi=ipim2kpi[1];
01264                igam2kpi=ig1;
01265                wcgp12kpi=wpip12kpiys;
01266                wcgp22kpi=wpip22kpiys;
01267                wcgm12kpi=wpim12kpiys;
01268                wcgm22kpi=wpim22kpiys;   
01269                cls2kpi=k;
01270 
01271                if(k==0){
01272                   itrak2kpi.push_back(ipip2kpi[0]); itrak2kpi.push_back(ipim2kpi[0]);
01273                   itrak2kpi.push_back(ipip2kpi[1]); itrak2kpi.push_back(ipim2kpi[1]);
01274                }
01275 
01276                if(k==1){
01277                   itrak2kpi.push_back(ipip2kpi[0]); itrak2kpi.push_back(ipim2kpi[0]);
01278                   itrak2kpi.push_back(ipip2kpi[1]); itrak2kpi.push_back(ipim2kpi[1]);
01279                }
01280 
01281 
01282                if(k==2){
01283                   itrak2kpi.push_back(ipip2kpi[0]); itrak2kpi.push_back(ipim2kpi[0]);
01284                   itrak2kpi.push_back(ipip2kpi[1]); itrak2kpi.push_back(ipim2kpi[1]);
01285                }
01286 
01287                if(k==3){
01288                   itrak2kpi.push_back(ipip2kpi[1]); itrak2kpi.push_back(ipim2kpi[1]);
01289                   itrak2kpi.push_back(ipip2kpi[0]); itrak2kpi.push_back(ipim2kpi[0]);
01290                }
01291 
01292                if(k==4){
01293                   itrak2kpi.push_back(ipip2kpi[0]); itrak2kpi.push_back(ipim2kpi[1]);
01294                   itrak2kpi.push_back(ipip2kpi[1]); itrak2kpi.push_back(ipim2kpi[0]);
01295                }
01296 
01297                if(k==5){
01298                   itrak2kpi.push_back(ipip2kpi[1]); itrak2kpi.push_back(ipim2kpi[0]);
01299                   itrak2kpi.push_back(ipip2kpi[0]); itrak2kpi.push_back(ipim2kpi[1]);
01300                }              
01301 
01302 
01303 
01304 
01305 
01306                RecEmcShower *g1Trk = (*(evtRecTrkCol->begin()+igam2kpi))->emcShower();
01307                kmfit->init();
01308                kmfit->setBeamPosition(xorigin2kpi);
01309                kmfit->setVBeamPosition(xem2kpi);
01310                kmfit->AddTrack(0, wpip12kpi);
01311                kmfit->AddTrack(1, wpim12kpi);
01312                kmfit->AddTrack(2, wpip22kpi);
01313                kmfit->AddTrack(3, wpim22kpi);
01314                kmfit->AddTrack(4, 0.0, g1Trk);
01315                kmfit->AddFourMomentum(0, p4psip);
01316                bool oksq = kmfit->Fit();
01317                if(oksq){
01318                   HepLorentzVector pchic2kpi = kmfit->pfit(0) + kmfit->pfit(1)+kmfit->pfit(2) + kmfit->pfit(3);
01319                   HepLorentzVector ppsip2kpi = kmfit->pfit(0) + kmfit->pfit(1)+kmfit->pfit(2) + kmfit->pfit(3) + kmfit->pfit(4);
01320                   mchic2kpilst=pchic2kpi.m();
01321                   chis4c2kpilst=kmfit->chisq();
01322 if(m_rootput)
01323 {         
01324                   m_mchic2kpi = pchic2kpi.m();
01325                   m_chis2kpi = kmfit->chisq();
01326                   m_mpsip2kpi=ppsip2kpi.m();
01327 }                 
01328 
01329 
01330 
01331                }      
01332 
01333 
01334             }
01335          }
01336 
01337 
01338          if(chis2kpi<200)
01339          {
01340 Ncut[5]++;
01341          if(m_rootput)
01342          {
01343             m_ncy20=n20;
01344             m_ncy30=n30; 
01345             m_cla2kpi=cls2kpi;
01346          }
01347             type2kpilst=cls2kpi;
01348             
01349             Vp4 p2kpi;
01350             p2kpi.clear();
01351 
01352             for (int i = 0; i < 4; i++)
01353             {         
01354                EvtRecTrackIterator  itTrk = evtRecTrkCol->begin() + itrak2kpi[i];
01355                if (!(*itTrk)->isMdcTrackValid()) continue;
01356                RecMdcTrack *mdcTrk = (*itTrk)->mdcTrack();
01357                if (!(*itTrk)->isMdcKalTrackValid()) continue;
01358                RecMdcKalTrack *mdcKalTrk = (*itTrk)->mdcKalTrack();
01359                double ptrk2kpi;
01360                HepLorentzVector p4trk2kpi;
01361                if(cls2kpi==1)
01362                {
01363                   mdcKalTrk->setPidType(RecMdcKalTrack::kaon);
01364                   ptrk2kpi = mdcKalTrk->p();
01365                   p4trk2kpi.setPx(mdcKalTrk->px());
01366                   p4trk2kpi.setPy(mdcKalTrk->py());
01367                   p4trk2kpi.setPz(mdcKalTrk->pz());
01368                   p4trk2kpi.setE(sqrt(ptrk2kpi*ptrk2kpi+mk*mk));    
01369                   p2kpi.push_back(p4trk2kpi);
01370                }         
01371 
01372                if(cls2kpi==2)
01373                {
01374                   if (i<2)
01375                   {
01376                      mdcKalTrk->setPidType(RecMdcKalTrack::pion);
01377                      ptrk2kpi = mdcKalTrk->p();
01378                      p4trk2kpi.setPx(mdcKalTrk->px());
01379                      p4trk2kpi.setPy(mdcKalTrk->py());
01380                      p4trk2kpi.setPz(mdcKalTrk->pz());
01381                      p4trk2kpi.setE(sqrt(ptrk2kpi*ptrk2kpi+mpi*mpi));
01382                      p2kpi.push_back(p4trk2kpi);          
01383 
01384                   }                                      
01385                   else{
01386                      mdcKalTrk->setPidType(RecMdcKalTrack::proton);
01387                      ptrk2kpi = mdcKalTrk->p();
01388                      p4trk2kpi.setPx(mdcKalTrk->px());
01389                      p4trk2kpi.setPy(mdcKalTrk->py());
01390                      p4trk2kpi.setPz(mdcKalTrk->pz());
01391                      p4trk2kpi.setE(sqrt(ptrk2kpi*ptrk2kpi+mpro*mpro));
01392                      p2kpi.push_back(p4trk2kpi);          
01393 
01394                   }    
01395 
01396                }        
01397                if(cls2kpi!=1&&cls2kpi!=2)
01398                {
01399                   mdcKalTrk->setPidType(RecMdcKalTrack::pion);
01400                   ptrk2kpi = mdcKalTrk->p();
01401                   p4trk2kpi.setPx(mdcKalTrk->px());
01402                   p4trk2kpi.setPy(mdcKalTrk->py());
01403                   p4trk2kpi.setPz(mdcKalTrk->pz());
01404                   p4trk2kpi.setE(sqrt(ptrk2kpi*ptrk2kpi+mpi*mpi));
01405                   p2kpi.push_back(p4trk2kpi);
01406                }
01407 
01408 
01409 
01410 
01411             }            
01412 
01413             for (int i = 0; i < 4; i++)
01414                   {
01415             EvtRecTrackIterator  itTrk = evtRecTrkCol->begin() + itrak2kpi[i];
01416                 if (!(*itTrk)->isMdcTrackValid()) continue;
01417                 RecMdcTrack *mdcTrk = (*itTrk)->mdcTrack();
01418                 if (!(*itTrk)->isMdcKalTrackValid()) continue;
01419                 RecMdcKalTrack *mdcKalTrk = (*itTrk)->mdcKalTrack();
01420                if ((*itTrk)->isTofTrackValid())
01421                 { 
01422                  SmartRefVector<RecTofTrack> tofTrkCol = (*itTrk)->tofTrack();
01423                  SmartRefVector<RecTofTrack>::iterator iter_tof=tofTrkCol.begin();
01424                   for (;iter_tof != tofTrkCol.end(); iter_tof++ ){
01425                  TofHitStatus *status = new TofHitStatus;
01426                  status->setStatus((*iter_tof)->status());
01427                    if(status->is_cluster()){                                                     dtpr2kpilst[i]=((*iter_tof)->tof()-(*iter_tof)->texpProton());
01428                    }
01429                    delete status;
01430                   }
01431                 }
01432                   }
01433 
01434                 
01435             /*      
01436             HepLorentzVector ecmsb(0.040547,0,0,3.68632);
01437             double chisq = 9999.;
01438             RecEmcShower *g1Trk = (*(evtRecTrkCol->begin()+igam2kpi))->emcShower();
01439             KalmanKinematicFit * kmfit = KalmanKinematicFit::instance();
01440             kmfit->init();
01441             kmfit->setBeamPosition(xorigin2kpi);
01442             kmfit->setVBeamPosition(xem2kpi);
01443             kmfit->AddTrack(0, wcgp12kpi);
01444             kmfit->AddTrack(1, wcgp22kpi);
01445             kmfit->AddTrack(2, wcgm12kpi);
01446             kmfit->AddTrack(3, wcgm22kpi);
01447             kmfit->AddTrack(4, 0.0, g1Trk);
01448             kmfit->AddFourMomentum(0, p4psip);
01449             bool oksq = kmfit->Fit();
01450             if(oksq) {
01451                Mcut[3]++;
01452                HepLorentzVector pchic4c2kpi = kmfit->pfit(0) + kmfit->pfit(1)+kmfit->pfit(2) + kmfit->pfit(3);
01453                HepLorentzVector ppsip4c2kpi = kmfit->pfit(0) + kmfit->pfit(1)+kmfit->pfit(2) + kmfit->pfit(3) + kmfit->pfit(4);
01454 
01455                m_mchic4c2kpi = pchic4c2kpi.m();
01456 //             m2kpi=m_mchic4c2kpi;
01457                m_chis4c2kpi = kmfit->chisq();
01458                m_mpsip4c2kpi=ppsip4c2kpi.m();
01459 
01460 
01461 
01462 
01463             }      
01464 
01465 */
01466             Mcut[2]++;  
01467 if(m_rootput)
01468 {
01469             for (int i = 0; i < 4; i++)
01470             {                 
01471                EvtRecTrackIterator  itTrk = evtRecTrkCol->begin() + itrak2kpi[i];
01472                if (!(*itTrk)->isMdcTrackValid()) continue;
01473                RecMdcTrack *mdcTrk = (*itTrk)->mdcTrack();
01474                if (!(*itTrk)->isMdcKalTrackValid()) continue;
01475                RecMdcKalTrack *mdcKalTrk = (*itTrk)->mdcKalTrack();
01476                m_ppmdc2kpi[i]=mdcTrk->p();
01477                m_pxmdc2kpi[i]=mdcTrk->px();
01478                m_pymdc2kpi[i]=mdcTrk->py();
01479                m_pzmdc2kpi[i]=mdcTrk->pz();
01480                m_ppkal2kpi[i]=mdcKalTrk->p();
01481                m_charge2kpi[i]=mdcKalTrk->charge();           
01482                double ptrk;
01483                ptrk=mdcKalTrk->p();
01484 
01485                if (eventHeader->runNumber()<0)
01486                {double mcall=9999;
01487                   SmartDataPtr<Event::McParticleCol> mcParticleCol(eventSvc(), "/Event/MC/McParticleCol");
01488                   int m_numParticle = 0;
01489                   if (!mcParticleCol)
01490                   {
01491 //                   std::cout << "Could not retrieve McParticelCol" << std::endl;
01492                      return StatusCode::FAILURE;
01493                   }
01494                   else
01495                   {
01496                      Event::McParticleCol::iterator iter_mc = mcParticleCol->begin();
01497                      for (; iter_mc != mcParticleCol->end(); iter_mc++)
01498                      {   double commc;
01499                         int  pdgcode = (*iter_mc)->particleProperty();
01500                         float px,py,pz;
01501                         px=(*iter_mc)->initialFourMomentum().x();
01502                         py=(*iter_mc)->initialFourMomentum().y();
01503                         pz=(*iter_mc)->initialFourMomentum().z();
01504 
01505                         commc=ptrk*ptrk-px*px-py*py-pz*pz;
01506                         if(fabs(commc)<fabs(mcall))
01507                         {
01508                            mcall=commc; 
01509                            m_pdg[i]=pdgcode;
01510                            m_cbmc[i]=commc;
01511                         }       
01512 
01513                      }
01514 
01515                   }
01516 
01517                }
01518 
01519                if ((*itTrk)->isTofTrackValid())
01520                { m_bjtofval2kpi[i]=1;
01521                   m_cotof12kpi[i]=1;
01522                   SmartRefVector<RecTofTrack> tofTrkCol = (*itTrk)->tofTrack();
01523                   SmartRefVector<RecTofTrack>::iterator iter_tof=tofTrkCol.begin();
01524                   for (;iter_tof != tofTrkCol.end(); iter_tof++ ){
01525                      TofHitStatus *status = new TofHitStatus;
01526                      status->setStatus((*iter_tof)->status());
01527 
01528                      if(status->is_cluster()){
01529                         
01530                         
01531                         m_bjtof2kpi[i]=1;                   
01532                         m_counter2kpi[i] = status->is_counter();
01533                         m_barrel2kpi[i]  = status->is_barrel();
01534                         m_layertof2kpi[i]   = status->layer();
01535                         m_readout2kpi[i] = status->is_readout();
01536                         m_cluster2kpi[i] = status->is_cluster();            
01537                         m_cotof22kpi[i]=2;
01538                         m_beta2kpi[i]= (*iter_tof)->beta();
01539                         m_tof2kpi[i] = (*iter_tof)->tof();
01540                         m_tofpath2kpi[i] = (*iter_tof)->path();
01541                         m_zhit2kpi[i]= (*iter_tof)->zrhit();
01542                         m_texe2kpi[i] = (*iter_tof)->texpElectron();
01543                         m_texmu2kpi[i] = (*iter_tof)->texpMuon();
01544                         m_texpi2kpi[i] = (*iter_tof)->texpPion();
01545                         m_texk2kpi[i] = (*iter_tof)->texpKaon();
01546                         m_texpr2kpi[i] = (*iter_tof)->texpProton();
01547                         m_dte2kpi[i]  = m_tof2kpi[i] - m_texe2kpi[i];
01548                         m_dtmu2kpi[i]  = m_tof2kpi[i] - m_texmu2kpi[i];
01549                         m_dtpi2kpi[i]  = m_tof2kpi[i] - m_texpi2kpi[i];
01550                         m_dtk2kpi[i]  = m_tof2kpi[i] - m_texk2kpi[i];
01551                         m_dtpr2kpi[i]  = m_tof2kpi[i] - m_texpr2kpi[i];
01552                         m_tofID2kpi[i]=(*iter_tof)->tofID();
01553                         m_clusterID2kpi[i]=(*iter_tof)->tofTrackID();
01554                         m_sigmaetof2kpi[i]=(*iter_tof)->sigma(0);
01555                         m_sigmamutof2kpi[i]=(*iter_tof)->sigma(1);
01556                         m_sigmapitof2kpi[i]=(*iter_tof)->sigma(2);
01557                         m_sigmaktof2kpi[i]=(*iter_tof)->sigma(3);
01558                         m_sigmaprtof2kpi[i]=(*iter_tof)->sigma(4);
01559                         m_t0tof2kpi[i]=(*iter_tof)->t0();
01560                         m_errt0tof2kpi[i]=(*iter_tof)->errt0();
01561 
01562                      }
01563                      delete status;
01564                   }
01565                }                  
01566 
01567 
01568 
01569 
01570 
01571 
01572                if ((*itTrk)->isMdcDedxValid())
01573                { 
01574                   RecMdcDedx* dedxTrk = (*itTrk)->mdcDedx();
01575                   m_chie2kpi[i] = dedxTrk->chiE();
01576                   m_chimu2kpi[i] = dedxTrk->chiMu();
01577                   m_chipi2kpi[i] = dedxTrk->chiPi();
01578                   m_chik2kpi[i] = dedxTrk->chiK();
01579                   m_chip2kpi[i] = dedxTrk->chiP();
01580                   m_ghit2kpi[i] = dedxTrk->numGoodHits();
01581                   m_thit2kpi[i] = dedxTrk->numTotalHits();                    
01582                   m_probph2kpi[i] = dedxTrk->probPH();
01583                   m_normph2kpi[i] = dedxTrk->normPH();
01584                }
01585 
01586                //emc 
01587                if ( (*itTrk)->isEmcShowerValid() )
01588                {
01589                   RecEmcShower* emcTrk = (*itTrk)->emcShower();
01590                   m_bjemc2kpi[i]=1; 
01591                   m_emc2kpi[i] = emcTrk->energy();
01592                   m_evp2kpi[i] = emcTrk->energy()/ptrk;
01593                   m_timecg2kpi[i] = emcTrk->time();
01594                }
01595 
01596 
01597                //muc
01598                if ( (*itTrk)->isMucTrackValid() )
01599                {
01600                   RecMucTrack* mucTrk = (*itTrk)->mucTrack();
01601                   double dpthp = mucTrk->depth()/25.0;//why?
01602                   m_bjmuc2kpi[i]=1;  
01603                   m_depthmuc2kpi[i]=mucTrk->depth();
01604                   m_layermuc2kpi[i] = mucTrk->numLayers();
01605                }   
01606 
01607                m_cosmdc2kpi[i] = cos(mdcTrk->theta());
01608                m_phimdc2kpi[i] = mdcTrk->phi();
01609 
01610                m_pidnum2kpi[i]=(*itTrk)->partId();
01611 
01612                if(m_skim4pi)
01613                {
01614  if(mppreclst<3.06&&chis4c2kpilst<20&&((mchic2kpilst>3.39&&mchic2kpilst<3.44)||(mchic2kpilst>3.5&&mchic2kpilst<3.57))&&type2kpilst==0)            
01615                   {
01616                      if(i<4) (*itTrk)->setPartId(3);
01617                   }
01618 
01619 if(mppreclst<3.06&&chis4c2kpilst<20&&((mchic2kpilst>3.39&&mchic2kpilst<3.44)||(mchic2kpilst>3.5&&mchic2kpilst<3.57))&&type2kpilst==1&&dtpr2kpilst[0]<-0.4&&dtpr2kpilst[1]<-0.4&&dtpr2kpilst[2]<-0.4&&dtpr2kpilst[3]<-0.4) 
01620                   {
01621                      if(i<4) (*itTrk)->setPartId(4);
01622                   }
01623 
01624 
01625 if(mppreclst<3.06&&chis4c2kpilst<20&&((mchic2kpilst>3.39&&mchic2kpilst<3.44)||(mchic2kpilst>3.5&&mchic2kpilst<3.57))&&type2kpilst==2)
01626                   {
01627                      if(i==0||i==1) (*itTrk)->setPartId(3);
01628                      if(i==2||i==3) (*itTrk)->setPartId(5);
01629                   }
01630 
01631                }
01632                //pid
01633                ParticleID *pid = ParticleID::instance();
01634                pid->init();
01635                pid->setMethod(pid->methodProbability());
01636                pid->setChiMinCut(4);
01637                pid->setRecTrack(*itTrk);
01638                pid->usePidSys(pid->useDedx() | pid->useTof1() | pid->useTof2()); 
01639                pid->identify(pid->onlyPion() | pid->onlyKaon() | pid->onlyProton());
01640                pid->identify(pid->onlyElectron() | pid->onlyMuon());
01641                pid->calculate();
01642                if(!(pid->IsPidInfoValid())) continue;
01643                m_costpid2kpi[i] = cos(mdcTrk->theta());
01644 
01645 
01646                m_probe2kpi[i] = pid->probElectron();
01647                m_probmu2kpi[i] = pid->probMuon();
01648                m_probpi2kpi[i] = pid->probPion();
01649                m_probk2kpi[i] = pid->probKaon();
01650                m_probpr2kpi[i] = pid->probProton();
01651 
01652 
01653 
01654 
01655 
01656 
01657             }
01658 }  
01659 
01660          }
01661 //       Ncut[10]++;
01662 
01663 if(mppreclst<3.06&&chis4c2kpilst<20&&((mchic2kpilst>3.39&&mchic2kpilst<3.44)||(mchic2kpilst>3.5&&mchic2kpilst<3.57))&&type2kpilst==0)
01664 {
01665     jGam2kpi.push_back(igam2kpi);
01666 }
01667 
01668   for(int i = evtRecEvent->totalCharged(); i< evtRecEvent->totalTracks(); i++) {
01669     if(i>=evtRecTrkCol->size()) break;
01670       EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + i;
01671       if(!(*itTrk)->isEmcShowerValid()) continue;
01672 if(mppreclst<3.06&&chis4c2kpilst<20&&((mchic2kpilst>3.39&&mchic2kpilst<3.44)||(mchic2kpilst>3.5&&mchic2kpilst<3.57))&&type2kpilst==0)     
01673         {
01674            if(i!=igam2kpi) jGam2kpi.push_back((*itTrk)->trackId());
01675           }
01676         else{
01677           jGam2kpi.push_back((*itTrk)->trackId());
01678              }
01679                                          
01680         }
01681 
01682 int ngam2kpi=jGam2kpi.size();
01683 
01684 if(m_rootput)
01685 {
01686 for(int i = 0; i< ngam2kpi; i++) {
01687        if(i>=evtRecTrkCol->size()) break;
01688        EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + jGam2kpi[i];
01689         if(!(*itTrk)->isEmcShowerValid()) continue;
01690         RecEmcShower *emcTrk = (*(evtRecTrkCol->begin()+jGam2kpi[i]))->emcShower();
01691         Hep3Vector emcpos(emcTrk->x(), emcTrk->y(), emcTrk->z());
01692         double dthe = 200.;
01693         double dphi = 200.;
01694         double dang = 200.;
01695 //      double dthert = 200.;
01696 //      double dphirt = 200.;
01697 //      double dangrt = 200.;
01698         for(int j = 0; j < evtRecEvent->totalCharged(); j++) {
01699            if(j>=evtRecTrkCol->size()) break;
01700            EvtRecTrackIterator jtTrk = evtRecTrkCol->begin() + j;
01701            if(!(*jtTrk)->isExtTrackValid()) continue;
01702            RecExtTrack *extTrk = (*jtTrk)->extTrack();
01703            if(extTrk->emcVolumeNumber() == -1) continue;
01704            Hep3Vector extpos = extTrk->emcPosition();
01705            double angd = extpos.angle(emcpos);
01706            double thed = extpos.theta() - emcpos.theta();
01707            double phid = extpos.deltaPhi(emcpos);
01708            thed = fmod(thed+CLHEP::twopi+CLHEP::twopi+pi, CLHEP::twopi) - CLHEP::pi;
01709            phid = fmod(phid+CLHEP::twopi+CLHEP::twopi+pi, CLHEP::twopi) - CLHEP::pi;
01710 //         if(fabs(thed) < fabs(dthe)) dthe = thed;
01711 //         if(fabs(phid) < fabs(dphi)) dphi = phid;
01712 //         if(angd < dang) dang = angd;
01713            if(angd < dang) { dang = angd;
01714               dthe = thed;
01715               dphi = phid;
01716            }
01717 
01718         }
01719         if(dang>=200) continue;
01720         double eraw = emcTrk->energy();
01721         dthe = dthe * 180 / (CLHEP::pi);
01722         dphi = dphi * 180 / (CLHEP::pi);
01723         dang = dang * 180 / (CLHEP::pi);
01724 //      dthert = dthert * 180 / (CLHEP::pi);
01725 //      dphirt = dphirt * 180 / (CLHEP::pi);
01726 //      dangrt = dangrt * 180 / (CLHEP::pi);
01727         m_numHits[i]= emcTrk->numHits();
01728         m_secondmoment[i] = emcTrk->secondMoment();
01729         m_latmoment[i] = emcTrk->latMoment();
01730         m_timegm[i] = emcTrk->time();
01731         m_cellId[i]=emcTrk->cellId();
01732         m_module[i]=emcTrk->module();
01733         m_a20Moment[i]=emcTrk->a20Moment();
01734         m_a42Moment[i]=emcTrk->a42Moment();
01735         m_getShowerId[i]=emcTrk->getShowerId();
01736         m_getClusterId[i]=emcTrk->getClusterId();
01737         m_getEAll[i]=emcTrk->getEAll();
01738         m_x[i]= emcTrk->x();
01739         m_y[i]= emcTrk->y();
01740         m_z[i]= emcTrk->z();
01741         m_cosemc[i]   = cos(emcTrk->theta());
01742         m_phiemc[i]   = emcTrk->phi();
01743         m_energy[i]   = emcTrk->energy();
01744         m_eSeed[i]    = emcTrk->eSeed();
01745         m_e3x3[i]     = emcTrk->e3x3();
01746         m_e5x5[i]     = emcTrk->e5x5();
01747         m_dang4c[i]   = dang;
01748         m_dthe4c[i]   = dthe;
01749         m_dphi4c[i]   = dphi;
01750 //      m_dang4crt[i]   = dangrt;
01751 //      m_dthe4crt[i]   = dthert;
01752 //      m_dphi4crt[i]   = dphirt;
01753 
01754 }
01755 }       
01756 }       
01757 
01758 }
01759 
01760    
01761 
01762    
01763 
01764       //4pi
01765       if(m_skim4pi)
01766       {
01767 
01768 if(mppreclst<3.06&&chis4c2kpilst<20&&((mchic2kpilst>3.39&&mchic2kpilst<3.44)||(mchic2kpilst>3.5&&mchic2kpilst<3.57))&&type2kpilst==0)    
01769          {m_subalg1->execute();    //  save gam4pi data 
01770             Ncut[6]++;
01771          }
01772       }
01773          
01774          //4k
01775       if(m_skim4k)
01776          {
01777 
01778 if(mppreclst<3.06&&chis4c2kpilst<20&&((mchic2kpilst>3.39&&mchic2kpilst<3.44)||(mchic2kpilst>3.5&&mchic2kpilst<3.57))&&type2kpilst==1&&dtpr2kpilst[0]<-0.4&&dtpr2kpilst[1]<-0.4&&dtpr2kpilst[2]<-0.4&&dtpr2kpilst[3]<-0.4)           
01779          {m_subalg2->execute();    //   save gam4k data
01780             Ncut[7]++;  
01781          }
01782          }
01783 
01784       if(m_skim2pi2pr)
01785          {
01786 if(mppreclst<3.06&&chis4c2kpilst<20&&((mchic2kpilst>3.39&&mchic2kpilst<3.44)||(mchic2kpilst>3.5&&mchic2kpilst<3.57))&&type2kpilst==2)       
01787          {m_subalg3->execute();    //   save gam 2(pi p) data
01788             // pi+ pi-  with low momentum and p pbar with high momentum.        
01789             Ncut[8]++;
01790          }
01791          }
01792 
01793 
01794       
01795 //cout<<"chis4c2kpilst="<<chis4c2kpilst<<endl;
01796 if(m_rootput)
01797 {
01798 
01799 if((mppreclst<3.06&&chis4c2kpilst<40)||((meelst>3.06&&meelst<3.12)&&(fabs(mppreclst-3.097)<0.01)))   
01800       {      Ncut[9]++;
01801          m_tuple1->write();
01802 
01803       }
01804 }
01805 
01806       return StatusCode::SUCCESS;
01807    }

StatusCode Gam4pikp::finalize (  ) 

Definition at line 1811 of file Gam4pikp.cxx.

References Bes_Common::INFO, and msgSvc().

01811                                  {
01812 //      cout<<"total number:                "<<Ncut[0]<<endl;   
01813 //      cout<<"nGood>=4, nCharge==0:        "<<Ncut[1]<<endl;
01814 //      cout<<"nGam>=1:                     "<<Ncut[2]<<endl;
01815 //      cout<<"cgp>2 cgm>2:                 "<<Ncut[3]<<endl;
01816 //      cout<<"2+ 2-:                       "<<Ncut[4]<<endl;
01817 //      cout<<"all cg cycle, chisq<200:     "<<Ncut[5]<<endl;
01818 //      cout<<"4pi ok:                      "<<Ncut[6]<<endl;
01819 //      cout<<"4k ok:                       "<<Ncut[7]<<endl;
01820 //      cout<<"2pi 2p ok:                   "<<Ncut[8]<<endl;
01821 //      cout<<"ntuple write:                "<<Ncut[9]<<endl;
01822       MsgStream log(msgSvc(), name());
01823       log << MSG::INFO << "in finalize()" << endmsg;
01824       return StatusCode::SUCCESS;
01825    }

StatusCode Gam4pikp::initialize (  ) 

Definition at line 83 of file Gam4pikp.cxx.

References calibUtil::ERROR, Bes_Common::INFO, m_a20Moment, m_a42Moment, m_ang4pi5, m_ang4pi6, m_angjs5, m_angjs6, m_barrel2kpi, m_barreljs, m_beta2kpi, m_betajs, m_bjemc2kpi, m_bjemcjs, m_bjmuc2kpi, m_bjmucjs, m_bjtof2kpi, m_bjtofjs, m_bjtofval2kpi, m_bjtofvaljs, m_cbmc, m_cellId, m_charge2kpi, m_chie2kpi, m_chiejs, m_chik2kpi, m_chikdxpid2kpi, m_chikjs, m_chiktof1pid2kpi, m_chiktof2pid2kpi, m_chiktofepid2kpi, m_chiktofpid2kpi, m_chiktofqpid2kpi, m_chimu2kpi, m_chimujs, m_chip2kpi, m_chipi2kpi, m_chipidxpid2kpi, m_chipijs, m_chipitof1pid2kpi, m_chipitof2pid2kpi, m_chipitofepid2kpi, m_chipitofpid2kpi, m_chipitofqpid2kpi, m_chipjs, m_chiprdxpid2kpi, m_chiprtof1pid2kpi, m_chiprtof2pid2kpi, m_chiprtofepid2kpi, m_chiprtofpid2kpi, m_chiprtofqpid2kpi, m_chis2kpi, m_chis4c2kpi, m_cla2kpi, m_cluster2kpi, m_clusterID2kpi, m_clusterIDjs, m_clusterjs, m_comcs2kpi, m_cosemc, m_cosmdc2kpi, m_cosmdcjs, m_costpid2kpi, m_cotof12kpi, m_cotof1js, m_cotof22kpi, m_cotof2js, m_counter2kpi, m_counterjs, m_cy2kpi, m_dang4c, m_dang4crt, m_dedxpid2kpi, m_dedxpidjs, m_depthmuc2kpi, m_depthmucjs, m_dphi4c, m_dphi4crt, m_dte2kpi, m_dtejs, m_dthe4c, m_dthe4crt, m_dtk2kpi, m_dtkjs, m_dtmu2kpi, m_dtmujs, m_dtpi2kpi, m_dtpijs, m_dtpr2kpi, m_dtprjs, m_e3x3, m_e5x5, m_emc2kpi, m_emcjs, m_energy, m_errt0tof2kpi, m_errt0tofjs, m_eSeed, m_evp2kpi, m_evpjs, m_getClusterId, m_getEAll, m_getShowerId, m_ghit2kpi, m_ghitjs, m_idxemc, m_idxmc, m_idxmdc, m_latmoment, m_layermuc2kpi, m_layermucjs, m_layertof2kpi, m_layertofjs, m_mchic2kpi, m_mchic4c2kpi, m_meeall, m_module, m_motheridx, m_mpprecall, m_mpsip2kpi, m_mpsip4c2kpi, m_ncgjs, m_ncy20, m_ncy30, m_near4pi5, m_near4pi6, m_nearjs5, m_nearjs6, m_normph2kpi, m_normphjs, m_numHits, m_pdg, m_pdgid, m_phgmtof, m_phgmtof0, m_phgmtof1, m_phgmtof2, m_phiemc, m_phimdc2kpi, m_phimdcjs, m_phinjs, m_pidnum2kpi, m_ppkal2kpi, m_ppkaljs, m_ppmdc2kpi, m_ppmdcjs, m_probe2kpi, m_probejs, m_probk2kpi, m_probkdxpid2kpi, m_probkjs, m_probktofpid2kpi, m_probmu2kpi, m_probmujs, m_probph2kpi, m_probphjs, m_probpi2kpi, m_probpidxpid2kpi, m_probpijs, m_probpitofpid2kpi, m_probpr2kpi, m_probprdxpid2kpi, m_probprjs, m_probprtofpid2kpi, m_ptkal2kpi, m_ptkaljs, m_ptmdc2kpi, m_ptmdcjs, m_pxmdc2kpi, m_pxmdcjs, m_pymdc2kpi, m_pymdcjs, m_pzmdc2kpi, m_pzmdcjs, m_r0js, m_readout2kpi, m_readoutjs, m_rec, m_Rnxyjs, m_Rnzjs, m_rootput, m_run, m_Rxyjs, m_Rzjs, m_secondmoment, m_sigmaetof2kpi, m_sigmaetofjs, m_sigmaktof2kpi, m_sigmaktofjs, m_sigmamutof2kpi, m_sigmamutofjs, m_sigmapitof2kpi, m_sigmapitofjs, m_sigmaprtof2kpi, m_sigmaprtofjs, m_skim2pi2pr, m_skim4k, m_skim4pi, m_subalg1, m_subalg2, m_subalg3, m_t0tof2kpi, m_t0tofjs, m_texe2kpi, m_texejs, m_texk2kpi, m_texkjs, m_texmu2kpi, m_texmujs, m_texpi2kpi, m_texpijs, m_texpr2kpi, m_texprjs, m_thit2kpi, m_thitjs, m_timecg2kpi, m_timecgjs, m_timegm, m_tof1pid2kpi, m_tof1pidjs, m_tof2kpi, m_tof2pid2kpi, m_tof2pidjs, m_tofID2kpi, m_tofIDjs, m_tofjs, m_tofpath2kpi, m_tofpathjs, m_tuple1, m_x, m_x0js, m_y, m_y0js, m_z, m_z0js, m_zhit2kpi, m_zhitjs, msgSvc(), and ntupleSvc().

00083                                {
00084    MsgStream log(msgSvc(), name());
00085 
00086    log << MSG::INFO << "in initialize()" << endmsg;
00087 //   setFilterPassed(false);  
00088    StatusCode status;
00089 
00090 if(m_rootput)
00091 {
00092    NTuplePtr nt1(ntupleSvc(), "FILE1/total4c");
00093    if ( nt1 ) m_tuple1 = nt1;
00094    else {
00095  m_tuple1 = ntupleSvc()->book ("FILE1/total4c", CLID_ColumnWiseTuple, "ks N-Tuple example");
00096       if ( m_tuple1 )    {
00097 
00098          status = m_tuple1->addItem ("run",  m_run );
00099          status = m_tuple1->addItem ("rec",  m_rec );
00100          status = m_tuple1->addItem ("mpprecall",  m_mpprecall );
00101          status = m_tuple1->addItem ("meeall",  m_meeall );
00102          status = m_tuple1->addItem ("ncgjs",  m_ncgjs );  
00103          status = m_tuple1->addItem ("cla2kpi",  m_cla2kpi );
00104          status = m_tuple1->addItem("indexmc",          m_idxmc, 0, 100);
00105          status = m_tuple1->addIndexedItem("pdgid",     m_idxmc, m_pdgid);
00106 
00107          status = m_tuple1->addIndexedItem("motheridx", m_idxmc, m_motheridx);
00108          status = m_tuple1->addItem("indexmdc",       m_idxmdc, 0, 5000);
00109          status = m_tuple1->addIndexedItem ("x0js", m_idxmdc,  m_x0js);
00110          status = m_tuple1->addIndexedItem ("y0js", m_idxmdc, m_y0js);
00111          status = m_tuple1->addIndexedItem ("z0js",m_idxmdc, m_z0js);
00112          status = m_tuple1->addIndexedItem ("r0js",m_idxmdc, m_r0js);
00113          status = m_tuple1->addIndexedItem ("Rxyjs",m_idxmdc, m_Rxyjs);
00114          status = m_tuple1->addIndexedItem ("Rzjs",m_idxmdc, m_Rzjs);
00115          status = m_tuple1->addIndexedItem ("Rnxyjs",m_idxmdc, m_Rnxyjs);
00116          status = m_tuple1->addIndexedItem ("phinjs",m_idxmdc, m_phinjs);
00117          status = m_tuple1->addIndexedItem ("Rnzjs",m_idxmdc, m_Rnzjs);
00118          status = m_tuple1->addItem ("ncy20",  m_ncy20);
00119          status = m_tuple1->addItem ("ncy30",  m_ncy30);
00120          status = m_tuple1->addIndexedItem("angjs5",      m_idxmdc, m_angjs5);
00121          status = m_tuple1->addIndexedItem("nearjs5",      m_idxmdc, m_nearjs5);
00122          status = m_tuple1->addIndexedItem("angjs6",      m_idxmdc, m_angjs6);
00123          status = m_tuple1->addIndexedItem("nearjs6",      m_idxmdc, m_nearjs6);
00124          status = m_tuple1->addIndexedItem("ang4pi5",      m_idxmdc, m_ang4pi5);
00125          status = m_tuple1->addIndexedItem("near4pi5",      m_idxmdc, m_near4pi5);
00126          status = m_tuple1->addIndexedItem("ang4pi6",      m_idxmdc, m_ang4pi6);
00127          status = m_tuple1->addIndexedItem("near4pi6",      m_idxmdc, m_near4pi6);
00128          status = m_tuple1->addIndexedItem("ppmdcjs",      m_idxmdc, m_ppmdcjs);
00129          status = m_tuple1->addIndexedItem("pxmdcjs",      m_idxmdc, m_pxmdcjs);
00130          status = m_tuple1->addIndexedItem("pymdcjs",      m_idxmdc, m_pymdcjs);
00131          status = m_tuple1->addIndexedItem("pzmdcjs",      m_idxmdc, m_pzmdcjs);
00132          status = m_tuple1->addIndexedItem("ppkaljs",      m_idxmdc, m_ppkaljs);
00133          status = m_tuple1->addIndexedItem("ptmdcjs",      m_idxmdc, m_ptmdcjs);
00134          status = m_tuple1->addIndexedItem("ptkaljs",      m_idxmdc, m_ptkaljs);
00135          status = m_tuple1->addIndexedItem("ppmdc2kpi",      m_idxmdc, m_ppmdc2kpi);
00136          status = m_tuple1->addIndexedItem("pxmdc2kpi",      m_idxmdc, m_pxmdc2kpi);
00137          status = m_tuple1->addIndexedItem("pymdc2kpi",      m_idxmdc, m_pymdc2kpi);
00138          status = m_tuple1->addIndexedItem("pzmdc2kpi",      m_idxmdc, m_pzmdc2kpi);
00139          status = m_tuple1->addIndexedItem("ppkal2kpi",      m_idxmdc, m_ppkal2kpi);
00140          status = m_tuple1->addIndexedItem("ptmdc2kpi",      m_idxmdc, m_ptmdc2kpi);
00141          status = m_tuple1->addIndexedItem("charge2kpi",      m_idxmdc, m_charge2kpi);
00142          status = m_tuple1->addIndexedItem("ptkal2kpi",      m_idxmdc, m_ptkal2kpi);
00143          status = m_tuple1->addItem ("cy2pi", m_cy2kpi, 0, 100 );
00144          status = m_tuple1->addIndexedItem("comcs2kpi",      m_cy2kpi, m_comcs2kpi);
00145          status = m_tuple1->addItem ("chiejs", m_idxmdc,  m_chiejs);
00146          status = m_tuple1->addItem ("chimujs", m_idxmdc,  m_chimujs);
00147          status = m_tuple1->addItem ("chipijs", m_idxmdc,  m_chipijs);
00148          status = m_tuple1->addItem ("chikjs", m_idxmdc,  m_chikjs);
00149          status = m_tuple1->addItem ("chipjs", m_idxmdc,  m_chipjs);
00150          status = m_tuple1->addItem ("ghitjs", m_idxmdc,  m_ghitjs);
00151          status = m_tuple1->addItem ("thitjs", m_idxmdc,  m_thitjs);
00152          status = m_tuple1->addIndexedItem("probphjs",  m_idxmdc, m_probphjs);
00153          status = m_tuple1->addIndexedItem("normphjs",  m_idxmdc, m_normphjs);
00154          status = m_tuple1->addItem ("pdg", m_idxmdc,  m_pdg);
00155          status = m_tuple1->addItem ("cbmc", m_idxmdc,  m_cbmc);
00156          status = m_tuple1->addIndexedItem("sigmaetof2kpi",   m_idxmdc, m_sigmaetof2kpi);
00157  status = m_tuple1->addIndexedItem("sigmamutof2kpi",   m_idxmdc, m_sigmamutof2kpi);
00158  status = m_tuple1->addIndexedItem("sigmapitof2kpi",   m_idxmdc, m_sigmapitof2kpi);
00159  status = m_tuple1->addIndexedItem("sigmaktof2kpi",   m_idxmdc, m_sigmaktof2kpi);
00160  status = m_tuple1->addIndexedItem("sigmaprtof2kpi",   m_idxmdc, m_sigmaprtof2kpi);
00161          status = m_tuple1->addIndexedItem("t0tof2kpi",   m_idxmdc, m_t0tof2kpi);
00162          status = m_tuple1->addIndexedItem("errt0tof2kpi",   m_idxmdc, m_errt0tof2kpi);
00163 
00164          status = m_tuple1->addItem ("chie2kpi", m_idxmdc,  m_chie2kpi);
00165          status = m_tuple1->addItem ("chimu2kpi", m_idxmdc,  m_chimu2kpi);
00166          status = m_tuple1->addItem ("chipi2kpi", m_idxmdc,  m_chipi2kpi);
00167          status = m_tuple1->addItem ("chik2kpi", m_idxmdc,  m_chik2kpi);
00168          status = m_tuple1->addItem ("chip2kpi", m_idxmdc,  m_chip2kpi);
00169          status = m_tuple1->addItem ("ghit2kpi", m_idxmdc,  m_ghit2kpi);
00170          status = m_tuple1->addItem ("thit2kpi", m_idxmdc,  m_thit2kpi);
00171          status = m_tuple1->addIndexedItem("probph2kpi",  m_idxmdc, m_probph2kpi);
00172          status = m_tuple1->addIndexedItem("normph2kpi",  m_idxmdc, m_normph2kpi);
00173          status = m_tuple1->addIndexedItem("pidnum2kpi",  m_idxmdc, m_pidnum2kpi);
00174          status = m_tuple1->addIndexedItem("bjmucjs",   m_idxmdc, m_bjmucjs);
00175          status = m_tuple1->addIndexedItem("bjmuc2kpi",   m_idxmdc, m_bjmuc2kpi);
00176          status = m_tuple1->addIndexedItem("bjemcjs",     m_idxmdc, m_bjemcjs);
00177          status = m_tuple1->addIndexedItem("bjemc2kpi",     m_idxmdc, m_bjemc2kpi);
00178          status = m_tuple1->addIndexedItem("bjtofjs",     m_idxmdc, m_bjtofjs);
00179          status = m_tuple1->addIndexedItem("bjtof2kpi",     m_idxmdc, m_bjtof2kpi);
00180          status = m_tuple1->addIndexedItem("bjtofvaljs",     m_idxmdc, m_bjtofvaljs);
00181          status = m_tuple1->addIndexedItem("bjtofval2kpi",     m_idxmdc, m_bjtofval2kpi);
00182 
00183          status = m_tuple1->addIndexedItem("emcjs",     m_idxmdc, m_emcjs);
00184          status = m_tuple1->addIndexedItem("evpjs",     m_idxmdc, m_evpjs);
00185          status = m_tuple1->addIndexedItem("timecgjs",     m_idxmdc, m_timecgjs);
00186          status = m_tuple1->addIndexedItem("depthjs",   m_idxmdc, m_depthmucjs);
00187          status = m_tuple1->addIndexedItem("layermucjs",   m_idxmdc, m_layermucjs);
00188 
00189          status = m_tuple1->addIndexedItem("emc2kpi",     m_idxmdc, m_emc2kpi);
00190          status = m_tuple1->addIndexedItem("evp2kpi",     m_idxmdc, m_evp2kpi);
00191          status = m_tuple1->addIndexedItem("timecg2kpi",     m_idxmdc, m_timecg2kpi);
00192          status = m_tuple1->addIndexedItem("depth2kpi",   m_idxmdc, m_depthmuc2kpi);
00193          status = m_tuple1->addIndexedItem("layermuc2kpi",   m_idxmdc, m_layermuc2kpi);
00194 
00195          status = m_tuple1->addIndexedItem("cotof1js",    m_idxmdc, m_cotof1js);
00196          status = m_tuple1->addIndexedItem("cotof2js",    m_idxmdc, m_cotof2js);
00197          status = m_tuple1->addIndexedItem("counterjs",   m_idxmdc, m_counterjs);
00198          status = m_tuple1->addIndexedItem("barreljs",   m_idxmdc, m_barreljs);
00199          status = m_tuple1->addIndexedItem("layertofjs",   m_idxmdc, m_layertofjs);
00200          status = m_tuple1->addIndexedItem("readoutjs",   m_idxmdc, m_readoutjs);
00201          status = m_tuple1->addIndexedItem("clusterjs",    m_idxmdc, m_clusterjs);
00202          status = m_tuple1->addIndexedItem("betajs",   m_idxmdc, m_betajs);
00203          status = m_tuple1->addIndexedItem("tofjs",   m_idxmdc, m_tofjs);
00204          status = m_tuple1->addIndexedItem("tofpathjs",   m_idxmdc, m_tofpathjs);
00205          status = m_tuple1->addIndexedItem("zhitjs",   m_idxmdc, m_zhitjs);
00206          status = m_tuple1->addIndexedItem("tofIDjs",   m_idxmdc, m_tofIDjs);
00207          status = m_tuple1->addIndexedItem("clusterIDjs",   m_idxmdc, m_clusterIDjs);
00208          status = m_tuple1->addIndexedItem("texejs",   m_idxmdc, m_texejs);
00209          status = m_tuple1->addIndexedItem("texmujs",   m_idxmdc, m_texmujs);
00210          status = m_tuple1->addIndexedItem("texpijs",   m_idxmdc, m_texpijs);
00211          status = m_tuple1->addIndexedItem("texkjs",   m_idxmdc, m_texkjs);
00212          status = m_tuple1->addIndexedItem("texprjs",   m_idxmdc, m_texprjs);
00213          status = m_tuple1->addIndexedItem("dtejs",   m_idxmdc, m_dtejs);
00214          status = m_tuple1->addIndexedItem("dtmujs",   m_idxmdc, m_dtmujs);
00215          status = m_tuple1->addIndexedItem("dtpijs",   m_idxmdc, m_dtpijs);
00216          status = m_tuple1->addIndexedItem("dtkjs",   m_idxmdc, m_dtkjs);
00217          status = m_tuple1->addIndexedItem("dtprjs",   m_idxmdc, m_dtprjs);
00218          status = m_tuple1->addIndexedItem("sigmaetofjs",   m_idxmdc, m_sigmaetofjs);
00219          status = m_tuple1->addIndexedItem("sigmamutofjs",   m_idxmdc, m_sigmamutofjs);
00220          status = m_tuple1->addIndexedItem("sigmapitofjs",   m_idxmdc, m_sigmapitofjs);
00221          status = m_tuple1->addIndexedItem("sigmaktofjs",   m_idxmdc, m_sigmaktofjs);
00222          status = m_tuple1->addIndexedItem("sigmaprtofjs",   m_idxmdc, m_sigmaprtofjs);
00223          status = m_tuple1->addIndexedItem("t0tofjs",   m_idxmdc,m_t0tofjs);
00224          status = m_tuple1->addIndexedItem("errt0tofjs",   m_idxmdc,m_errt0tofjs);
00225          status = m_tuple1->addIndexedItem("cotof12kpi",    m_idxmdc, m_cotof12kpi);
00226          status = m_tuple1->addIndexedItem("cotof22kpi",    m_idxmdc, m_cotof22kpi);
00227          status = m_tuple1->addIndexedItem("counter2kpi",   m_idxmdc, m_counter2kpi);
00228          status = m_tuple1->addIndexedItem("barrel2kpi",   m_idxmdc, m_barrel2kpi);
00229          status = m_tuple1->addIndexedItem("layertof2kpi",   m_idxmdc, m_layertof2kpi);
00230          status = m_tuple1->addIndexedItem("readout2kpi",   m_idxmdc, m_readout2kpi);
00231          status = m_tuple1->addIndexedItem("cluster2kpi",    m_idxmdc, m_cluster2kpi);
00232          status = m_tuple1->addIndexedItem("beta2kpi",   m_idxmdc, m_beta2kpi);
00233          status = m_tuple1->addIndexedItem("tof2kpi",   m_idxmdc, m_tof2kpi);
00234          status = m_tuple1->addIndexedItem("tofpath2kpi",   m_idxmdc, m_tofpath2kpi);
00235          status = m_tuple1->addIndexedItem("zhit2kpi",   m_idxmdc, m_zhit2kpi);
00236          status = m_tuple1->addIndexedItem("tofID2kpi",   m_idxmdc, m_tofID2kpi);
00237          status = m_tuple1->addIndexedItem("clusterID2kpi",   m_idxmdc, m_clusterID2kpi);
00238          status = m_tuple1->addIndexedItem("texe2kpi",   m_idxmdc, m_texe2kpi);
00239          status = m_tuple1->addIndexedItem("texmu2kpi",   m_idxmdc, m_texmu2kpi);
00240          status = m_tuple1->addIndexedItem("texpi2kpi",   m_idxmdc, m_texpi2kpi);
00241          status = m_tuple1->addIndexedItem("texk2kpi",   m_idxmdc, m_texk2kpi);
00242          status = m_tuple1->addIndexedItem("texpr2kpi",   m_idxmdc, m_texpr2kpi);
00243          status = m_tuple1->addIndexedItem("dte2kpi",   m_idxmdc, m_dte2kpi);
00244          status = m_tuple1->addIndexedItem("dtmu2kpi",   m_idxmdc, m_dtmu2kpi);
00245          status = m_tuple1->addIndexedItem("dtpi2kpi",   m_idxmdc, m_dtpi2kpi);
00246          status = m_tuple1->addIndexedItem("dtk2kpi",   m_idxmdc, m_dtk2kpi);
00247          status = m_tuple1->addIndexedItem("dtpr2kpi",   m_idxmdc, m_dtpr2kpi);
00248          status = m_tuple1->addIndexedItem("costpid2kpi",   m_idxmdc, m_costpid2kpi);
00249          status = m_tuple1->addIndexedItem("dedxpid2kpi",   m_idxmdc, m_dedxpid2kpi);
00250          status = m_tuple1->addIndexedItem("tof1pid2kpi",   m_idxmdc, m_tof1pid2kpi);
00251          status = m_tuple1->addIndexedItem("tof2pid2kpi",   m_idxmdc, m_tof2pid2kpi);
00252          status = m_tuple1->addIndexedItem("probe2kpi",   m_idxmdc, m_probe2kpi);
00253          status = m_tuple1->addIndexedItem("probmu2kpi",   m_idxmdc, m_probmu2kpi);
00254          status = m_tuple1->addIndexedItem("probpi2kpi",   m_idxmdc, m_probpi2kpi);
00255          status = m_tuple1->addIndexedItem("probk2kpi",   m_idxmdc, m_probk2kpi);
00256          status = m_tuple1->addIndexedItem("probpr2kpi",   m_idxmdc, m_probpr2kpi);
00257 
00258  status = m_tuple1->addIndexedItem("chipidxpid2kpi",   m_idxmdc, m_chipidxpid2kpi);
00259  status = m_tuple1->addIndexedItem("chipitof1pid2kpi",   m_idxmdc, m_chipitof1pid2kpi);
00260  status = m_tuple1->addIndexedItem("chipitof2pid2kpi",   m_idxmdc, m_chipitof2pid2kpi);
00261  status = m_tuple1->addIndexedItem("chipitofpid2kpi",   m_idxmdc, m_chipitofpid2kpi);
00262  status = m_tuple1->addIndexedItem("chipitofepid2kpi",   m_idxmdc, m_chipitofepid2kpi);
00263  status = m_tuple1->addIndexedItem("chipitofqpid2kpi",   m_idxmdc, m_chipitofqpid2kpi);
00264  status = m_tuple1->addIndexedItem("probpidxpid2kpi",   m_idxmdc, m_probpidxpid2kpi);
00265  status = m_tuple1->addIndexedItem("probpitofpid2kpi",   m_idxmdc, m_probpitofpid2kpi);
00266          status = m_tuple1->addIndexedItem("chikdxpid2kpi",   m_idxmdc, m_chikdxpid2kpi);
00267  status = m_tuple1->addIndexedItem("chiktof1pid2kpi",   m_idxmdc, m_chiktof1pid2kpi);
00268  status = m_tuple1->addIndexedItem("chiktof2pid2kpi",   m_idxmdc, m_chiktof2pid2kpi);
00269  status = m_tuple1->addIndexedItem("chiktofpid2kpi",   m_idxmdc, m_chiktofpid2kpi);
00270  status = m_tuple1->addIndexedItem("chiktofepid2kpi",   m_idxmdc, m_chiktofepid2kpi);
00271  status = m_tuple1->addIndexedItem("chiktofqpid2kpi",   m_idxmdc, m_chiktofqpid2kpi);
00272  status = m_tuple1->addIndexedItem("probkdxpid2kpi",   m_idxmdc, m_probkdxpid2kpi);
00273  status = m_tuple1->addIndexedItem("probktofpid2kpi",   m_idxmdc, m_probktofpid2kpi);
00274 
00275  status = m_tuple1->addIndexedItem("chiprdxpid2kpi",   m_idxmdc, m_chiprdxpid2kpi);
00276  status = m_tuple1->addIndexedItem("chiprtof1pid2kpi",   m_idxmdc, m_chiprtof1pid2kpi);
00277  status = m_tuple1->addIndexedItem("chiprtof2pid2kpi",   m_idxmdc, m_chiprtof2pid2kpi);
00278  status = m_tuple1->addIndexedItem("chiprtofpid2kpi",   m_idxmdc, m_chiprtofpid2kpi);
00279  status = m_tuple1->addIndexedItem("chiprtofepid2kpi",   m_idxmdc, m_chiprtofepid2kpi);
00280  status = m_tuple1->addIndexedItem("chiprtofqpid2kpi",   m_idxmdc, m_chiprtofqpid2kpi);
00281  status = m_tuple1->addIndexedItem("probprdxpid2kpi",   m_idxmdc, m_probprdxpid2kpi);
00282  status = m_tuple1->addIndexedItem("probprtofpid2kpi",   m_idxmdc, m_probprtofpid2kpi);
00283 
00284          status = m_tuple1->addIndexedItem("cosmdcjs",   m_idxmdc, m_cosmdcjs);
00285          status = m_tuple1->addIndexedItem("phimdcjs",   m_idxmdc, m_phimdcjs);
00286          status = m_tuple1->addIndexedItem("cosmdc2kpi",   m_idxmdc, m_cosmdc2kpi);
00287          status = m_tuple1->addIndexedItem("phimdc2kpi",   m_idxmdc, m_phimdc2kpi);
00288 
00289          status = m_tuple1->addIndexedItem("dedxpidjs",   m_idxmdc, m_dedxpidjs);
00290          status = m_tuple1->addIndexedItem("tof1pidjs",   m_idxmdc, m_tof1pidjs);
00291          status = m_tuple1->addIndexedItem("tof2pidjs",   m_idxmdc, m_tof2pidjs);
00292          status = m_tuple1->addIndexedItem("probejs",   m_idxmdc, m_probejs);
00293          status = m_tuple1->addIndexedItem("probmujs",   m_idxmdc, m_probmujs);
00294          status = m_tuple1->addIndexedItem("probpijs",   m_idxmdc, m_probpijs);
00295          status = m_tuple1->addIndexedItem("probkjs",   m_idxmdc, m_probkjs);
00296          status = m_tuple1->addIndexedItem("probprjs",   m_idxmdc, m_probprjs);
00297          status = m_tuple1->addItem ("mchic2kpi",   m_mchic2kpi);
00298          status = m_tuple1->addItem ("mpsip2kpi",   m_mpsip2kpi);
00299          status = m_tuple1->addItem ("chis2kpi",   m_chis2kpi);
00300          status = m_tuple1->addItem ("mchic4c2kpi",   m_mchic4c2kpi);
00301          status = m_tuple1->addItem ("mpsip4c2kpi",   m_mpsip4c2kpi);
00302          status = m_tuple1->addItem ("chis4c2kpi",   m_chis4c2kpi);
00303          
00304          status = m_tuple1->addItem("indexemc", m_idxemc, 0, 5000);
00305          status = m_tuple1->addIndexedItem("numHits", m_idxemc, m_numHits);
00306          status = m_tuple1->addIndexedItem("secmom",  m_idxemc, m_secondmoment);
00307          status = m_tuple1->addIndexedItem("latmom",  m_idxemc, m_latmoment);
00308          status = m_tuple1->addIndexedItem("timegm",  m_idxemc, m_timegm);
00309          status = m_tuple1->addIndexedItem("cellId",  m_idxemc, m_cellId);
00310          status = m_tuple1->addIndexedItem("module",  m_idxemc, m_module);
00311          status = m_tuple1->addIndexedItem("a20Moment",  m_idxemc, m_a20Moment);
00312          status = m_tuple1->addIndexedItem("a42Moment",  m_idxemc, m_a42Moment);
00313          status = m_tuple1->addIndexedItem("getEAll",  m_idxemc, m_getEAll);
00314          status = m_tuple1->addIndexedItem("getShowerId",  m_idxemc, m_getShowerId);
00315          status = m_tuple1->addIndexedItem("getClusterId",  m_idxemc, m_getClusterId);
00316          status = m_tuple1->addIndexedItem("x", m_idxemc, m_x);
00317          status = m_tuple1->addIndexedItem("y", m_idxemc, m_y);
00318          status = m_tuple1->addIndexedItem("z", m_idxemc, m_z);
00319          status = m_tuple1->addIndexedItem("cosemc", m_idxemc, m_cosemc);
00320          status = m_tuple1->addIndexedItem("phiemc", m_idxemc, m_phiemc);
00321          status = m_tuple1->addIndexedItem("energy", m_idxemc, m_energy);
00322          status = m_tuple1->addIndexedItem("e1", m_idxemc, m_eSeed);
00323          status = m_tuple1->addIndexedItem("e9", m_idxemc, m_e3x3);
00324          status = m_tuple1->addIndexedItem("e25", m_idxemc, m_e5x5);
00325          status = m_tuple1->addIndexedItem("dang4c", m_idxemc, m_dang4c);
00326          status = m_tuple1->addIndexedItem("dthe4c", m_idxemc, m_dthe4c);
00327          status = m_tuple1->addIndexedItem("dphi4c", m_idxemc, m_dphi4c);
00328          status = m_tuple1->addIndexedItem("dang4crt", m_idxemc, m_dang4crt);
00329          status = m_tuple1->addIndexedItem("dthe4crt", m_idxemc, m_dthe4crt);
00330          status = m_tuple1->addIndexedItem("dphi4crt", m_idxemc, m_dphi4crt);
00331          status = m_tuple1->addIndexedItem("phtof", m_idxemc, 3, m_phgmtof,0.0,10000.0);
00332          status = m_tuple1->addIndexedItem("phgmtof0", m_idxemc, m_phgmtof0);
00333          status = m_tuple1->addIndexedItem("phgmtof1", m_idxemc, m_phgmtof1);
00334          status = m_tuple1->addIndexedItem("phgmtof2", m_idxemc, m_phgmtof2);
00335 
00336       }
00337       else    {
00338          log << MSG::ERROR << "    Cannot book N-tuple:" << long(m_tuple1) << endmsg;
00339          return StatusCode::FAILURE;
00340       }
00341    }   
00342 }
00343    
00344 StatusCode sc;
00345    
00346    if(m_skim4pi) 
00347    {            
00348        sc =  createSubAlgorithm( "EventWriter", "Selectgam4pi", m_subalg1);
00349       if( sc.isFailure() ) {
00350          log << MSG::ERROR << "Error creating Sub-Algorithm Selectgam4pi" <<endreq;
00351          return sc;
00352       } else {
00353          log << MSG::INFO << "Success creating Sub-Algorithm Selectgam4pi" <<endreq;
00354       }
00355    }
00356 
00357 
00358   if(m_skim4k)
00359       {
00360          sc =  createSubAlgorithm( "EventWriter", "Selectgam4k", m_subalg2);
00361       if( sc.isFailure() ) {
00362          log << MSG::ERROR << "Error creating Sub-Algorithm Selectgam4k" <<endreq;
00363          return sc;
00364       } else {
00365          log << MSG::INFO << "Success creating Sub-Algorithm Selectgam4k" <<endreq;
00366       }
00367       }
00368 
00369    if(m_skim2pi2pr)
00370       {
00371       sc =  createSubAlgorithm( "EventWriter", "Selectgam2pi2pr", m_subalg3);
00372       if( sc.isFailure() ) {
00373          log << MSG::ERROR << "Error creating Sub-Algorithm Selectgam2pi2pr" <<endreq;
00374          return sc;
00375       } else {
00376          log << MSG::INFO << "Success creating Sub-Algorithm Selectgam2pi2pr" <<endreq;
00377       }
00378       }
00379 
00380 
00381     
00382 
00383    //
00384    //--------end of book--------
00385    //
00386 
00387    log << MSG::INFO << "successfully return from initialize()" <<endmsg;
00388    return StatusCode::SUCCESS;
00389 
00390 }

void Gam4pikp::InitVar (  )  [private]

Definition at line 1827 of file Gam4pikp.cxx.

References genRecEmupikp::i, m_ang4pi5, m_ang4pi6, m_angjs5, m_angjs6, m_barrel2kpi, m_barreljs, m_bjemc2kpi, m_bjemcjs, m_bjmuc2kpi, m_bjmucjs, m_bjtof2kpi, m_bjtofjs, m_cbmc, m_charge2kpi, m_chie2kpi, m_chiejs, m_chik2kpi, m_chikjs, m_chimu2kpi, m_chimujs, m_chip2kpi, m_chipi2kpi, m_chipijs, m_chipjs, m_chis2kpi, m_chis4c2kpi, m_cla2kpi, m_cluster2kpi, m_clusterjs, m_comcs2kpi, m_counter2kpi, m_counterjs, m_dte2kpi, m_dtejs, m_dtk2kpi, m_dtkjs, m_dtmu2kpi, m_dtmujs, m_dtpi2kpi, m_dtpijs, m_dtpr2kpi, m_dtprjs, m_errt0tof2kpi, m_errt0tofjs, m_ghit2kpi, m_ghitjs, m_layertof2kpi, m_layertofjs, m_meeall, m_mpprecall, m_ncy20, m_ncy30, m_near4pi5, m_near4pi6, m_nearjs5, m_nearjs6, m_normph2kpi, m_normphjs, m_pidnum2kpi, m_probe2kpi, m_probejs, m_probk2kpi, m_probkjs, m_probmu2kpi, m_probmujs, m_probph2kpi, m_probphjs, m_probpi2kpi, m_probpijs, m_probpr2kpi, m_probprjs, m_readout2kpi, m_readoutjs, m_sigmaetof2kpi, m_sigmaetofjs, m_sigmaktof2kpi, m_sigmaktofjs, m_sigmamutof2kpi, m_sigmamutofjs, m_sigmapitof2kpi, m_sigmapitofjs, m_sigmaprtof2kpi, m_sigmaprtofjs, m_t0tof2kpi, m_t0tofjs, m_thit2kpi, and m_thitjs.

Referenced by execute().

01828    {
01829 
01830 
01831       m_chis4c2kpi=9999.;
01832       m_chis2kpi=9999.;
01833       m_cla2kpi=9999.;
01834       m_ncy20=9999;
01835       m_ncy30=9999;
01836       m_meeall=9999;
01837       m_mpprecall=9999;
01838       for (int i=0; i<100; i++)
01839       {    
01840 
01841          m_angjs5[i]=9999;
01842          m_nearjs5[i]=9999;
01843          m_angjs6[i]=9999;
01844          m_nearjs6[i]=9999;
01845          m_ang4pi5[i]=9999;
01846          m_near4pi5[i]=9999;
01847          m_ang4pi6[i]=9999;
01848          m_near4pi6[i]=9999;
01849          m_probe2kpi[i]=-1;
01850          m_probmu2kpi[i]=-1;
01851          m_probpi2kpi[i]=-1;
01852          m_probk2kpi[i]=-1;
01853          m_probpr2kpi[i]=-1;
01854 
01855          m_probejs[i]=-1;
01856          m_probmujs[i]=-1;
01857          m_probpijs[i]=-1;
01858          m_probkjs[i]=-1;
01859          m_probprjs[i]=-1;
01860 
01861          m_cbmc[i]=9999;  
01862          m_bjemcjs[i]=0;
01863          m_bjemc2kpi[i]=0;
01864          m_bjtofjs[i]=0;
01865          m_bjtof2kpi[i]=0;
01866          m_bjmucjs[i]=0;
01867          m_bjmuc2kpi[i]=0;
01868          m_charge2kpi[i]=9999;
01869          m_ghitjs[i] = 9999;
01870          m_thitjs[i] = 9999;
01871          m_probphjs[i] = 99999;
01872          m_normphjs[i] = 99999;
01873 
01874          m_ghit2kpi[i] = 9999;
01875          m_thit2kpi[i] = 9999;
01876          m_probph2kpi[i] = 99999;
01877          m_normph2kpi[i] = 99999;
01878 
01879 
01880 
01881          m_counterjs[i] = 9999;
01882          m_barreljs[i]  = 9999;
01883          m_layertofjs[i] = 9999;
01884          m_readoutjs[i] = 9999;
01885          m_clusterjs[i] = 9999;
01886 
01887          m_counter2kpi[i] = 9999;
01888          m_barrel2kpi[i]  = 9999;
01889          m_layertof2kpi[i] = 9999;
01890          m_readout2kpi[i] = 9999;
01891          m_cluster2kpi[i] = 9999;    
01892 
01893          m_comcs2kpi[i]=9999;    
01894          m_dte2kpi[i]=9999;
01895          m_dtmu2kpi[i]=9999;
01896          m_dtpi2kpi[i]=9999;
01897          m_dtk2kpi[i]=9999;
01898          m_dtpr2kpi[i]=9999;
01899          m_sigmaetof2kpi[i]=9999;
01900          m_sigmamutof2kpi[i]=9999;
01901          m_sigmapitof2kpi[i]=9999;
01902          m_sigmaktof2kpi[i]=9999;
01903          m_sigmaprtof2kpi[i]=9999;
01904          m_t0tof2kpi[i]=9999;
01905          m_errt0tof2kpi[i]=9999;
01906 
01907          m_sigmaetofjs[i]=9999;
01908          m_sigmamutofjs[i]=9999;
01909          m_sigmapitofjs[i]=9999;
01910          m_sigmaktofjs[i]=9999;
01911          m_sigmaprtofjs[i]=9999;
01912          m_t0tofjs[i]=9999;
01913          m_errt0tofjs[i]=9999;
01914 
01915          m_dtejs[i]=9999;
01916          m_dtmujs[i]=9999;
01917          m_dtpijs[i]=9999;
01918          m_dtkjs[i]=9999;
01919          m_dtprjs[i]=9999;
01920 
01921          m_chie2kpi[i]=9999;
01922          m_chimu2kpi[i]=9999;
01923          m_chipi2kpi[i]=9999;
01924          m_chik2kpi[i]=9999;
01925          m_chip2kpi[i]=9999;  
01926          m_pidnum2kpi[i]=9999;
01927          m_chiejs[i]=9999;
01928          m_chimujs[i]=9999;
01929          m_chipijs[i]=9999;
01930          m_chikjs[i]=9999;
01931          m_chipjs[i]=9999;  
01932 
01933 
01934 
01935 
01936       }
01937 
01938       
01939    }


Member Data Documentation

NTuple::Array<double> Gam4pikp::m_a20Moment [private]

Definition at line 279 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_a42Moment [private]

Definition at line 280 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_ang4pi5 [private]

Definition at line 83 of file Gam4pikp.h.

Referenced by initialize(), and InitVar().

NTuple::Array<double> Gam4pikp::m_ang4pi6 [private]

Definition at line 85 of file Gam4pikp.h.

Referenced by initialize(), and InitVar().

NTuple::Array<double> Gam4pikp::m_angjs5 [private]

Definition at line 79 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_angjs6 [private]

Definition at line 81 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_barrel2kpi [private]

Definition at line 220 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_barreljs [private]

Definition at line 196 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_beta2kpi [private]

Definition at line 224 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_betajs [private]

Definition at line 200 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_bjemc2kpi [private]

Definition at line 126 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_bjemcjs [private]

Definition at line 125 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_bjmuc2kpi [private]

Definition at line 124 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_bjmucjs [private]

Definition at line 123 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_bjtof2kpi [private]

Definition at line 128 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_bjtofjs [private]

Definition at line 127 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_bjtofval2kpi [private]

Definition at line 130 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_bjtofvaljs [private]

Definition at line 129 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_cbmc [private]

Definition at line 77 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_cellId [private]

Definition at line 277 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_charge2kpi [private]

Definition at line 102 of file Gam4pikp.h.

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

int Gam4pikp::m_checkDedx [private]

Definition at line 41 of file Gam4pikp.h.

int Gam4pikp::m_checkTof [private]

Definition at line 42 of file Gam4pikp.h.

NTuple::Array<double> Gam4pikp::m_chie2kpi [private]

Definition at line 103 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_chiejs [private]

Definition at line 113 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_chik2kpi [private]

Definition at line 106 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_chikdxpid2kpi [private]

Definition at line 164 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_chikjs [private]

Definition at line 116 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_chiktof1pid2kpi [private]

Definition at line 165 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_chiktof2pid2kpi [private]

Definition at line 166 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_chiktofepid2kpi [private]

Definition at line 168 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_chiktofpid2kpi [private]

Definition at line 167 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_chiktofqpid2kpi [private]

Definition at line 169 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_chimu2kpi [private]

Definition at line 104 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_chimujs [private]

Definition at line 114 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_chip2kpi [private]

Definition at line 107 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_chipi2kpi [private]

Definition at line 105 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_chipidxpid2kpi [private]

Definition at line 155 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_chipijs [private]

Definition at line 115 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_chipitof1pid2kpi [private]

Definition at line 156 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_chipitof2pid2kpi [private]

Definition at line 157 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_chipitofepid2kpi [private]

Definition at line 159 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_chipitofpid2kpi [private]

Definition at line 158 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_chipitofqpid2kpi [private]

Definition at line 160 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_chipjs [private]

Definition at line 117 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_chiprdxpid2kpi [private]

Definition at line 173 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_chiprtof1pid2kpi [private]

Definition at line 174 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_chiprtof2pid2kpi [private]

Definition at line 175 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_chiprtofepid2kpi [private]

Definition at line 177 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_chiprtofpid2kpi [private]

Definition at line 176 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_chiprtofqpid2kpi [private]

Definition at line 178 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Item<double> Gam4pikp::m_chis2kpi [private]

Definition at line 258 of file Gam4pikp.h.

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

NTuple::Item<double> Gam4pikp::m_chis4c2kpi [private]

Definition at line 261 of file Gam4pikp.h.

Referenced by initialize(), and InitVar().

NTuple::Item<long> Gam4pikp::m_cl4pi [private]

Definition at line 73 of file Gam4pikp.h.

NTuple::Item<double> Gam4pikp::m_cla2kpi [private]

Definition at line 61 of file Gam4pikp.h.

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

NTuple::Item<long> Gam4pikp::m_clajs [private]

Definition at line 74 of file Gam4pikp.h.

NTuple::Array<double> Gam4pikp::m_cluster2kpi [private]

Definition at line 223 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_clusterID2kpi [private]

Definition at line 229 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_clusterIDjs [private]

Definition at line 205 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_clusterjs [private]

Definition at line 199 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_comcs2kpi [private]

Definition at line 62 of file Gam4pikp.h.

Referenced by initialize(), and InitVar().

NTuple::Array<double> Gam4pikp::m_comcs4pi [private]

Definition at line 63 of file Gam4pikp.h.

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

Definition at line 287 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_cosmdc2kpi [private]

Definition at line 141 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_cosmdcjs [private]

Definition at line 182 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_costpid2kpi [private]

Definition at line 144 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_cotof12kpi [private]

Definition at line 217 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_cotof1js [private]

Definition at line 193 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_cotof22kpi [private]

Definition at line 218 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_cotof2js [private]

Definition at line 194 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_counter2kpi [private]

Definition at line 219 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_counterjs [private]

Definition at line 195 of file Gam4pikp.h.

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

NTuple::Item<long> Gam4pikp::m_cy2kpi [private]

Definition at line 72 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_dang4c [private]

Definition at line 293 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_dang4crt [private]

Definition at line 296 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_dedxpid2kpi [private]

Definition at line 145 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_dedxpidjs [private]

Definition at line 184 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_depthmuc2kpi [private]

Definition at line 139 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_depthmucjs [private]

Definition at line 134 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_dphi4c [private]

Definition at line 295 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_dphi4crt [private]

Definition at line 298 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_dte2kpi [private]

Definition at line 235 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_dtejs [private]

Definition at line 211 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_dthe4c [private]

Definition at line 294 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_dthe4crt [private]

Definition at line 297 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_dtk2kpi [private]

Definition at line 238 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_dtkjs [private]

Definition at line 214 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_dtmu2kpi [private]

Definition at line 236 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_dtmujs [private]

Definition at line 212 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_dtpi2kpi [private]

Definition at line 237 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_dtpijs [private]

Definition at line 213 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_dtpr2kpi [private]

Definition at line 239 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_dtprjs [private]

Definition at line 215 of file Gam4pikp.h.

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

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

Definition at line 291 of file Gam4pikp.h.

Referenced by execute(), and initialize().

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

Definition at line 292 of file Gam4pikp.h.

Referenced by execute(), and initialize().

double Gam4pikp::m_ecms [private]

Definition at line 34 of file Gam4pikp.h.

Referenced by execute(), and Gam4pikp().

NTuple::Array<double> Gam4pikp::m_emc2kpi [private]

Definition at line 136 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_emcjs [private]

Definition at line 131 of file Gam4pikp.h.

Referenced by execute(), and initialize().

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

Definition at line 289 of file Gam4pikp.h.

Referenced by execute(), and initialize().

double Gam4pikp::m_energyThreshold [private]

Definition at line 31 of file Gam4pikp.h.

Referenced by execute(), and Gam4pikp().

NTuple::Array<double> Gam4pikp::m_errt0tof2kpi [private]

Definition at line 246 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_errt0tofjs [private]

Definition at line 254 of file Gam4pikp.h.

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

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

Definition at line 290 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Item<long> Gam4pikp::m_eventtype [private]

Definition at line 256 of file Gam4pikp.h.

NTuple::Array<double> Gam4pikp::m_evp2kpi [private]

Definition at line 137 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_evpjs [private]

Definition at line 132 of file Gam4pikp.h.

Referenced by execute(), and initialize().

double Gam4pikp::m_gammadangcut [private]

Definition at line 35 of file Gam4pikp.h.

Referenced by Gam4pikp().

double Gam4pikp::m_gammaPhiCut [private]

Definition at line 32 of file Gam4pikp.h.

Referenced by Gam4pikp().

double Gam4pikp::m_gammaThetaCut [private]

Definition at line 33 of file Gam4pikp.h.

Referenced by Gam4pikp().

NTuple::Array<double> Gam4pikp::m_getClusterId [private]

Definition at line 283 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_getEAll [private]

Definition at line 281 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_getShowerId [private]

Definition at line 282 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_ghit2kpi [private]

Definition at line 108 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_ghitjs [private]

Definition at line 118 of file Gam4pikp.h.

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

NTuple::Item<long> Gam4pikp::m_idxemc [private]

Definition at line 272 of file Gam4pikp.h.

Referenced by execute(), and initialize().

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

Definition at line 64 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Item<long> Gam4pikp::m_idxmdc [private]

Definition at line 75 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_latmoment [private]

Definition at line 275 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_layermuc2kpi [private]

Definition at line 140 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_layermucjs [private]

Definition at line 135 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_layertof2kpi [private]

Definition at line 221 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_layertofjs [private]

Definition at line 197 of file Gam4pikp.h.

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

NTuple::Item<double> Gam4pikp::m_massth [private]

Definition at line 50 of file Gam4pikp.h.

NTuple::Item<double> Gam4pikp::m_mchic2kpi [private]

Definition at line 255 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Item<double> Gam4pikp::m_mchic4c2kpi [private]

Definition at line 259 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Item<double> Gam4pikp::m_meeall [private]

Definition at line 59 of file Gam4pikp.h.

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

NTuple::Item<double> Gam4pikp::m_mhphm2kpi [private]

Definition at line 263 of file Gam4pikp.h.

NTuple::Item<double> Gam4pikp::m_mlmhm2kpi [private]

Definition at line 265 of file Gam4pikp.h.

NTuple::Item<double> Gam4pikp::m_mlmhp2kpi [private]

Definition at line 267 of file Gam4pikp.h.

NTuple::Item<double> Gam4pikp::m_mlphm2kpi [private]

Definition at line 266 of file Gam4pikp.h.

NTuple::Item<double> Gam4pikp::m_mlphp2kpi [private]

Definition at line 264 of file Gam4pikp.h.

NTuple::Item<double> Gam4pikp::m_mlplm2kpi [private]

Definition at line 262 of file Gam4pikp.h.

NTuple::Array<double> Gam4pikp::m_module [private]

Definition at line 278 of file Gam4pikp.h.

Referenced by execute(), and initialize().

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

Definition at line 66 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Item<double> Gam4pikp::m_mpprec4c [private]

Definition at line 67 of file Gam4pikp.h.

NTuple::Item<double> Gam4pikp::m_mpprecall [private]

Definition at line 58 of file Gam4pikp.h.

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

NTuple::Item<double> Gam4pikp::m_mpsip2kpi [private]

Definition at line 257 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Item<double> Gam4pikp::m_mpsip4c2kpi [private]

Definition at line 260 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Item<double> Gam4pikp::m_ncgjs [private]

Definition at line 60 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Item<long> Gam4pikp::m_ncy20 [private]

Definition at line 269 of file Gam4pikp.h.

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

NTuple::Item<long> Gam4pikp::m_ncy30 [private]

Definition at line 270 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_near4pi5 [private]

Definition at line 84 of file Gam4pikp.h.

Referenced by initialize(), and InitVar().

NTuple::Array<double> Gam4pikp::m_near4pi6 [private]

Definition at line 86 of file Gam4pikp.h.

Referenced by initialize(), and InitVar().

NTuple::Array<double> Gam4pikp::m_nearjs5 [private]

Definition at line 80 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_nearjs6 [private]

Definition at line 82 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_normph2kpi [private]

Definition at line 111 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_normphjs [private]

Definition at line 121 of file Gam4pikp.h.

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

NTuple::Array<long> Gam4pikp::m_numHits [private]

Definition at line 273 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_pdg [private]

Definition at line 76 of file Gam4pikp.h.

Referenced by execute(), and initialize().

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

Definition at line 65 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Matrix<double> Gam4pikp::m_phgmtof [private]

Definition at line 299 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_phgmtof0 [private]

Definition at line 300 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_phgmtof1 [private]

Definition at line 301 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_phgmtof2 [private]

Definition at line 302 of file Gam4pikp.h.

Referenced by initialize().

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

Definition at line 288 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_phimdc2kpi [private]

Definition at line 142 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_phimdcjs [private]

Definition at line 183 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_phinjs [private]

Definition at line 71 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_pidnum2kpi [private]

Definition at line 153 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_ppkal2kpi [private]

Definition at line 100 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_ppkaljs [private]

Definition at line 93 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_ppmdc2kpi [private]

Definition at line 95 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_ppmdcjs [private]

Definition at line 88 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_probe2kpi [private]

Definition at line 148 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_probejs [private]

Definition at line 187 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_probk2kpi [private]

Definition at line 151 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_probkdxpid2kpi [private]

Definition at line 170 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_probkjs [private]

Definition at line 190 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_probktofpid2kpi [private]

Definition at line 171 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_probmu2kpi [private]

Definition at line 149 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_probmujs [private]

Definition at line 188 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_probph2kpi [private]

Definition at line 110 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_probphjs [private]

Definition at line 120 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_probpi2kpi [private]

Definition at line 150 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_probpidxpid2kpi [private]

Definition at line 161 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_probpijs [private]

Definition at line 189 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_probpitofpid2kpi [private]

Definition at line 162 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_probpr2kpi [private]

Definition at line 152 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_probprdxpid2kpi [private]

Definition at line 179 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_probprjs [private]

Definition at line 191 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_probprtofpid2kpi [private]

Definition at line 180 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_ptkal2kpi [private]

Definition at line 101 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_ptkaljs [private]

Definition at line 94 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_ptmdc2kpi [private]

Definition at line 99 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_ptmdcjs [private]

Definition at line 92 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_pxmdc2kpi [private]

Definition at line 96 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_pxmdcjs [private]

Definition at line 89 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_pymdc2kpi [private]

Definition at line 97 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_pymdcjs [private]

Definition at line 90 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_pzmdc2kpi [private]

Definition at line 98 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_pzmdcjs [private]

Definition at line 91 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_r0js [private]

Definition at line 68 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_readout2kpi [private]

Definition at line 222 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_readoutjs [private]

Definition at line 198 of file Gam4pikp.h.

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

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

Definition at line 57 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_Rnxyjs [private]

Definition at line 69 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_Rnzjs [private]

Definition at line 70 of file Gam4pikp.h.

Referenced by execute(), and initialize().

bool Gam4pikp::m_rootput [private]

Definition at line 28 of file Gam4pikp.h.

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

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

Definition at line 56 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_Rxyjs [private]

Definition at line 68 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_Rzjs [private]

Definition at line 68 of file Gam4pikp.h.

Referenced by execute(), and initialize().

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

Definition at line 274 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_sigmaetof2kpi [private]

Definition at line 240 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_sigmaetofjs [private]

Definition at line 248 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_sigmaktof2kpi [private]

Definition at line 243 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_sigmaktofjs [private]

Definition at line 251 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_sigmamutof2kpi [private]

Definition at line 241 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_sigmamutofjs [private]

Definition at line 249 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_sigmapitof2kpi [private]

Definition at line 242 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_sigmapitofjs [private]

Definition at line 250 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_sigmaprtof2kpi [private]

Definition at line 244 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_sigmaprtofjs [private]

Definition at line 252 of file Gam4pikp.h.

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

bool Gam4pikp::m_skim2pi2pr [private]

Definition at line 27 of file Gam4pikp.h.

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

bool Gam4pikp::m_skim4k [private]

Definition at line 26 of file Gam4pikp.h.

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

bool Gam4pikp::m_skim4pi [private]

Definition at line 25 of file Gam4pikp.h.

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

Algorithm* Gam4pikp::m_subalg1 [private]

Definition at line 305 of file Gam4pikp.h.

Referenced by execute(), and initialize().

Algorithm* Gam4pikp::m_subalg2 [private]

Definition at line 306 of file Gam4pikp.h.

Referenced by execute(), and initialize().

Algorithm* Gam4pikp::m_subalg3 [private]

Definition at line 307 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_t0tof2kpi [private]

Definition at line 245 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_t0tofjs [private]

Definition at line 253 of file Gam4pikp.h.

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

int Gam4pikp::m_test4C [private]

Definition at line 37 of file Gam4pikp.h.

int Gam4pikp::m_test5C [private]

Definition at line 38 of file Gam4pikp.h.

NTuple::Array<double> Gam4pikp::m_texe2kpi [private]

Definition at line 230 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_texejs [private]

Definition at line 206 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_texk2kpi [private]

Definition at line 233 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_texkjs [private]

Definition at line 209 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_texmu2kpi [private]

Definition at line 231 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_texmujs [private]

Definition at line 207 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_texpi2kpi [private]

Definition at line 232 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_texpijs [private]

Definition at line 208 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_texpr2kpi [private]

Definition at line 234 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_texprjs [private]

Definition at line 210 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_thit2kpi [private]

Definition at line 109 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_thitjs [private]

Definition at line 119 of file Gam4pikp.h.

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

NTuple::Array<double> Gam4pikp::m_timecg2kpi [private]

Definition at line 138 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_timecgjs [private]

Definition at line 133 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_timegm [private]

Definition at line 276 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Item<double> Gam4pikp::m_tnumber [private]

Definition at line 46 of file Gam4pikp.h.

NTuple::Array<double> Gam4pikp::m_tof1pid2kpi [private]

Definition at line 146 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_tof1pidjs [private]

Definition at line 185 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_tof2kpi [private]

Definition at line 225 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_tof2pid2kpi [private]

Definition at line 147 of file Gam4pikp.h.

Referenced by initialize().

NTuple::Array<double> Gam4pikp::m_tof2pidjs [private]

Definition at line 186 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_tofID2kpi [private]

Definition at line 228 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_tofIDjs [private]

Definition at line 204 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_tofjs [private]

Definition at line 201 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_tofpath2kpi [private]

Definition at line 226 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_tofpathjs [private]

Definition at line 202 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Item<double> Gam4pikp::m_totalcharged [private]

Definition at line 48 of file Gam4pikp.h.

NTuple::Item<double> Gam4pikp::m_totalgam [private]

Definition at line 49 of file Gam4pikp.h.

NTuple::Item<double> Gam4pikp::m_totaltrack [private]

Definition at line 47 of file Gam4pikp.h.

NTuple::Tuple* Gam4pikp::m_tuple0 [private]

Definition at line 45 of file Gam4pikp.h.

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

Definition at line 55 of file Gam4pikp.h.

Referenced by execute(), and initialize().

double Gam4pikp::m_vr0cut [private]

Definition at line 23 of file Gam4pikp.h.

Referenced by Gam4pikp().

double Gam4pikp::m_vz0cut [private]

Definition at line 24 of file Gam4pikp.h.

Referenced by Gam4pikp().

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

Definition at line 284 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_x0js [private]

Definition at line 68 of file Gam4pikp.h.

Referenced by execute(), and initialize().

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

Definition at line 285 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_y0js [private]

Definition at line 68 of file Gam4pikp.h.

Referenced by execute(), and initialize().

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

Definition at line 286 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_z0js [private]

Definition at line 68 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_zhit2kpi [private]

Definition at line 227 of file Gam4pikp.h.

Referenced by execute(), and initialize().

NTuple::Array<double> Gam4pikp::m_zhitjs [private]

Definition at line 203 of file Gam4pikp.h.

Referenced by execute(), and initialize().


Generated on Tue Nov 29 23:19:38 2016 for BOSS_7.0.2 by  doxygen 1.4.7