/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Mdc/MdcRecEvent/MdcRecEvent-00-05-14/MdcRecEvent/RecMdcDedxHit.h

Go to the documentation of this file.
00001 /*
00002  * @class : MdcDedx
00003  *
00004  *  this class models "dE/dx hit" used in Mdc Reconstruction
00005  * 
00006  * @author: xcao
00007  * 
00008  * ********************************************************/
00009 
00010 #ifndef RECMDCDEDXHIT_H
00011 #define RECMDCDEDXHIT_H
00012 #include "GaudiKernel/ContainedObject.h"
00013 #include "GaudiKernel/SmartRef.h"
00014 #include "GaudiKernel/ObjectVector.h"
00015 #include "EventModel/EventModel.h" 
00016 #include "Identifier/Identifier.h"
00017 
00018 #include "RecMdcKalHelixSeg.h"
00019 #include "RecMdcHit.h"
00020 
00021 extern const CLID& CLID_RecMdcDedxHit;     
00022 class RecMdcDedx;
00023 
00024 class RecMdcDedxHit : virtual public ContainedObject {
00025   
00026  public:
00027    virtual const CLID& clID() const   { 
00028       return RecMdcDedxHit::classID();
00029    }                                                                           
00030                                                                                   
00031    static const CLID& classID()       { 
00032       return CLID_RecMdcDedxHit;
00033    }                                                                           
00034                                                                      
00035    
00036    //ctor and dector
00037    RecMdcDedxHit(); 
00038    RecMdcDedxHit(const RecMdcDedxHit& recdedxhit );
00039    ~RecMdcDedxHit();
00040   // is this hit grouped to any track?  
00041    bool isGrouped(void);
00042    bool isMdcHitValid() {return (m_mdcHit!=0);}
00043    bool isMdcKalHelixSegValid() {return (m_mdcKalHelixSeg!=0);} 
00044    
00045   //extractors
00046   
00047    RecMdcKalHelixSeg*  getMdcKalHelixSeg() { return m_mdcKalHelixSeg; } 
00048    RecMdcHit* getMdcHit() {return m_mdcHit;}
00049    
00050    const int getTrkId(void) const { return m_trkid; }
00051    const int getFlagLR(void) const { return m_lr;    }
00052    const double getDedx(void) const {return m_dedx; }
00053    double getPathLength(void) const { return m_pathlength;  }
00054    const Identifier getMdcId(void)         const { return m_mdcid; }
00055 
00056    //modifiers 
00057    void setMdcKalHelixSeg(const RecMdcKalHelixSeg* mdcKalHelixSeg) {m_mdcKalHelixSeg  =  mdcKalHelixSeg;}
00058    void setMdcHit(const RecMdcHit* mdcHit) {m_mdcHit = mdcHit;}
00059    
00060    void setTrkId(int trkid) { m_trkid = trkid;  }
00061    void setFlagLR(int lr) { m_lr = lr;   }
00062    void setDedx(double dedx ) {m_dedx = dedx; }
00063    void setPathLength(double pathlength) { m_pathlength = pathlength;   }
00064    void setMdcId( Identifier mdcid )       { m_mdcid = mdcid;  }  
00065 
00066     private:
00067    //RecMdcKalHelixSeg m_kalHelixSeg; 
00068    int m_trkid;      // id of track containing this hit,if this hit belongs to no track, set as -1; 
00069    int m_lr;           // flag indicating left or right 0:left 1:right 2:ambig
00070    double m_pathlength;  //path length of track cross a cell
00071    double m_dedx;
00072    Identifier m_mdcid; // MDC identifier   
00073 
00074    SmartRef<RecMdcKalHelixSeg> m_mdcKalHelixSeg;
00075    SmartRef<RecMdcHit> m_mdcHit;
00076 };
00077 
00078 typedef ObjectVector<RecMdcDedxHit> RecMdcDedxHitCol; 
00079 
00080 #endif
00081 

Generated on Tue Nov 29 23:12:54 2016 for BOSS_7.0.2 by  doxygen 1.4.7