/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Event/DstEvent/DstEvent-00-02-51/DstEvent/DstMdcDedx.h

Go to the documentation of this file.
00001 #ifndef DST_DSTMDCDEDX_H
00002 #define DST_DSTMDCDEDX_H
00003 #include "GaudiKernel/ObjectVector.h"
00004 #include "GaudiKernel/ContainedObject.h"
00005 #include "EventModel/EventModel.h"
00006 
00007 using namespace EventModel;
00008 extern const  CLID  &CLID_DstMdcDedx;
00009 enum pid_dedx{electron, muon, kaon, pion, proton};
00010 
00011 class  DstMdcDedx : virtual public ContainedObject {
00012 public:
00013 
00014 // ctor and dector  
00015   DstMdcDedx() {}
00016   virtual ~DstMdcDedx() {}
00017 
00018   virtual const CLID& clID()  const { return  DstMdcDedx::classID(); }
00019   static  const CLID& classID() { return CLID_DstMdcDedx; }
00020 
00021 // extractors 
00022   //int          getTrackId()    const {return m_trackId ;}
00023   //int    getParticleId()      const { return m_particleId; }
00024   //int    getStatus()     const { return m_status; }
00025   //int    geTruncAlg() const { return m_trunc_alg;  }  
00026   //double getNumChidedx(int i)        const { return m_numChidedx[i]; }
00027   //int    getNumGoodHits()      const { return m_numGoodHits; }
00028   //int    getNumTotalHits()     const { return m_numTotalHits; }
00029   //double getProbPH()           const { return m_probPH; }
00030   //double getNormPH()        const { return m_normPH; }
00031 // extractors 
00032   int    trackId()    const {return m_trackId ;}
00033   int    particleId()      const { return m_particleId; } // will converge to particleType() later
00034   pid_dedx particleType() const{
00035     switch(particleId()){
00036     case 0:
00037       return electron;
00038       break;
00039     case 1:
00040       return muon;
00041       break;
00042     case 2:
00043       return kaon;
00044       break;
00045     case 3:
00046       return pion;
00047       break;
00048     case 4:
00049       return proton;
00050       break;
00051     default:
00052       std::cerr << "the particleType receive an incorrect input!" << std::endl;
00053       exit(1);
00054     }
00055   }
00056   int    status()     const { return m_status; }
00057   int    truncAlg() const { return m_trunc_alg;  }  
00058   double chi(int i)        const { return m_chi[i]; }
00059   double chiE()        const { return m_chi[0]; }
00060   double chiMu()        const { return m_chi[1]; }
00061   double chiPi()        const { return m_chi[2]; }
00062   double chiK()        const { return m_chi[3]; }
00063   double chiP()        const { return m_chi[4]; }
00064   int    numGoodHits()      const { return m_numGoodHits; }
00065   int    numTotalHits()     const { return m_numTotalHits; }
00066   double probPH()           const { return m_probPH; }
00067   double normPH()        const { return m_normPH; }
00068   double errorPH()       const { return m_errorPH; }                   
00069   double twentyPH()           const { return m_twentyPH; }
00070   
00071 // modifiers 
00072   void   setTrackId(int trackId) {m_trackId = trackId ;} 
00073   void   setParticleId(int particleId)  { m_particleId = particleId; }
00074   void   setStatus (int status) { m_status=status; }
00075   void   setTruncAlg(int trunc_alg) { m_trunc_alg = trunc_alg;   }
00076   
00077   void   setChi( double* chi)  {
00078     for(int i =0; i<5 ; i++) m_chi[i]= chi[i];
00079   }
00080   
00081   void   setNumGoodHits(int  numGoodHits)      { m_numGoodHits = numGoodHits; } 
00082   void   setNumTotalHits(int    numTotalHits)  { m_numTotalHits = numTotalHits; } 
00083   void   setProbPH(double probPH)              { m_probPH = probPH; }
00084   void   setNormPH(double normPH)        { m_normPH = normPH; } 
00085   void   setErrorPH(double errorPH)      { m_errorPH = errorPH; }
00086   void   setTwentyPH(double twentyPH)    { m_twentyPH = twentyPH; }
00087  protected:     
00088   int    m_trackId ; //Track ID Add 2005-10-18
00089   int    m_particleId;    //Particle ID from De/Dx 
00090   int    m_status;        //Status
00091   int    m_trunc_alg;    //truncate method
00092   double m_chi[5]; //Number of Chi_dEdx for different particles
00093                           //0: e  1: mu   2: pi  3: K  4:p
00094   int    m_numGoodHits;   //No. of good de/dx hits(exclude overflow) 
00095   int    m_numTotalHits;  //No. of good de/dx hits(include overflow) 
00096   double m_probPH;        //Most probable pulse height from truncated mean
00097   double m_normPH;     //normalized pulse height
00098   double m_errorPH;      //resolution of truncated mean 
00099   double m_twentyPH;    //de/dx value of bitrunction rate equal to 20% 
00100 };
00101 
00102 typedef ObjectVector<DstMdcDedx> DstMdcDedxCol;
00103 
00104 #endif //DST_DEDX_H
00105 

Generated on Tue Nov 29 22:58:23 2016 for BOSS_7.0.2 by  doxygen 1.4.7