Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

RecMdcDedx.h

Go to the documentation of this file.
00001 /*
00002  * @class : MdcDedx
00003  *
00004  *  this class models "dE/dx" used in Mdc Reconstruction
00005  * 
00006  * @author: wangdy
00007  * 
00008  * ********************************************************/
00009 
00010 #ifndef RECMDCDEDX_H
00011 #define RECMDCDEDX_H
00012 #include "GaudiKernel/ContainedObject.h"
00013 #include "GaudiKernel/SmartRef.h"
00014 #include "GaudiKernel/SmartRefVector.h"
00015 #include "GaudiKernel/ObjectVector.h"
00016 #include "EventModel/EventModel.h" 
00017 #include "RecMdcTrack.h"
00018 #include "RecMdcDedxHit.h"
00019 
00020 
00021 //#include "Identifier/Identifier.h"
00022 //#include "ExtEvent/ExtTrack.h"
00023 #include "DstEvent/DstMdcDedx.h" 
00024 
00025 extern const CLID& CLID_RecMdcDedx;     
00026 typedef SmartRefVector<RecMdcDedxHit>  DedxHitRefVec;
00027 //class MdcDedx : virtual public ContainedObject {
00028 class RecMdcDedx : virtual public DstMdcDedx {
00029   
00030  public:
00031    virtual const CLID& clID() const   { 
00032       return RecMdcDedx::classID();
00033    }                                                                           
00034                                                                                   
00035    static const CLID& classID()       { 
00036       return CLID_RecMdcDedx;
00037    }                                                                           
00038                                                                      
00039    
00040    //ctor and dector
00041    RecMdcDedx();
00042    RecMdcDedx(const RecMdcDedx& dedxtrk);
00043    RecMdcDedx(const DstMdcDedx& dedxtrk);
00044    RecMdcDedx& operator=(const RecMdcDedx&);
00045    RecMdcDedx& operator=(const DstMdcDedx&);
00046    
00047    ~RecMdcDedx();
00048     //extractors
00049     // int getId(void) const { return m_id;  }
00050     // int getPid(void) const { return m_pid;  }
00051     // int getStat(void) const { return m_stat;   }
00052     // int getNHits(void) const { return m_nhits;   }
00053     // float getDedx(void) const { return m_dedx;  }
00054     // float getDedxStd(void) const { return m_dedx_std;  }
00055     // int getBitrunc(void) const { return m_bitrunc;  }
00056  
00057     double getDedxHit(void)     {return m_dedx_hit;     }
00058     double getDedxEsat(void)    {return m_dedx_esat;    }
00059     double getDedxNoRun(void)   {return m_dedx_norun;   }
00060     double getDedxMoment(void)      {return m_dedx_momentum;     }      
00061                                                    
00062     double getDedxExpect(int pid) const { return m_dedx_exp[pid-1];   }
00063     double getSigmaDedx(int pid) const { return m_sigma_dedx[pid-1];   }
00064     double getPidProb(int pid) const { return m_pid_prob[pid-1];   }
00065     // double getChi(int pid) const { return m_chi[pid-1];   }
00066     SmartRef<RecMdcTrack> getTrack(void)  { return m_trk; }
00067    
00068     //modifiers
00069     void setDedxHit(double dedx_hit)     { m_dedx_hit = dedx_hit;     }
00070     void setDedxEsat(double dedx_esat)   { m_dedx_esat = dedx_esat;   }
00071     void setDedxNoRun(double dedx_norun) { m_dedx_norun = dedx_norun; }
00072     void setDedxMoment(double dedx_momentum){ m_dedx_momentum = dedx_momentum;     } 
00073     // void setId(int id) { m_id = id;   }
00074     // void setPid(int pid) { m_pid = pid;   }
00075     // void setStat(int stat) { m_stat = stat;    }
00076     // void setNHits(int nhits) { m_nhits = nhits;    }
00077     // void setDedx(float dedx) { m_dedx = dedx; }
00078     // void setDedxStd(float dedx_std) { m_dedx_std = dedx_std; }
00079     // void setBitrunc(int bitrunc) { m_bitrunc = bitrunc;   }
00080    
00081     void setDedxExpect(double* dedx_exp) {
00082       for(int i = 0; i < 5; i++)
00083        m_dedx_exp[i] = dedx_exp[i]  ;
00084     }
00085     void setSigmaDedx(double* sigma_dedx) {
00086       for(int i = 0; i < 5; i++)
00087        m_sigma_dedx[i] = sigma_dedx[i] ;
00088     }
00089     void setPidProb(double* pid_prob) {
00090       for(int i = 0; i < 5; i++)
00091        m_pid_prob[i] = pid_prob[i] ;
00092     }
00093     /* void setChi(double* chi) {
00094       for(int i = 0; i < 5; i++)
00095        m_chi[i] = chi[i] ;
00096        }
00097      */
00098     void setTrack(SmartRef<RecMdcTrack> trk) {  m_trk = trk;    }
00099                          
00100 private:
00101     double  m_dedx_hit;   //double trucation mean of hit-level calib
00102     double  m_dedx_esat;  //double trucation mean of hit-level+electron saturation calib
00103     double  m_dedx_norun; //double trucation mean of no run gain calib  
00104     double  m_dedx_momentum;   //dE/dx calib used momentum
00105     //   int m_bitrunc;   //bitrunction rate
00106     //   int m_id;
00107     //   int m_pid;      // partile id results
00108     //   int m_stat;      // status flag                         
00109     //   int m_nhits;      // number of hits used in dE/dx recon
00110     //   float m_dedx;        // measured value of dE/dx
00111     //   float m_dedx_std;     // normalized dE/dx;
00112     double m_dedx_exp[5];    // expected value of dE/dx for 5 particle hypotheses
00113     double m_sigma_dedx[5]; // sigma value of dE/dx for 5 particle hypotheses
00114     double m_pid_prob[5]; // probability for each of  the 5 particle hypotheses
00115     //  double m_chi[5];     // chi of dE/dx for  each of  5 particle hypotheses
00116     SmartRef<RecMdcTrack> m_trk;    // reference to the   track 
00117    
00118 };
00119 
00120 typedef ObjectVector<RecMdcDedx> RecMdcDedxCol; 
00121 
00122 #endif
00123    

Generated on Wed Feb 2 15:42:00 2011 for BOSS6.5.5 by  doxygen 1.3.9.1