00001 #ifndef MdcMcHit_H 00002 #define MdcMcHit_H 00003 #include <algorithm> 00004 #include "GaudiKernel/ContainedObject.h" 00005 #include "Identifier/Identifier.h" 00006 #include "GaudiKernel/ObjectVector.h" 00007 #include "EventModel/EventModel.h" 00008 00009 using namespace EventModel; 00010 extern const CLID& CLID_MdcMcHit; 00011 00012 namespace Event { // NameSpace 00013 00014 class MdcMcHit : virtual public ContainedObject { 00015 public: 00016 virtual const CLID& clID() const 00017 { 00018 return MdcMcHit::classID(); 00019 } 00020 00021 static const CLID& classID() 00022 { 00023 return CLID_MdcMcHit; 00024 } 00025 // Constructor 00026 MdcMcHit(){}; 00027 MdcMcHit(const Identifier& id, unsigned int trackIndex, double xPosition, 00028 double yPosition, double zPosition, double driftDistance, 00029 double depositEnergy, int posFlag = -1); 00030 00031 // Get associated id 00032 Identifier identify() const; 00033 00034 // Get the associated track id 00035 unsigned int getTrackIndex() const; 00036 00037 // Get the position x 00038 double getPositionX() const; 00039 00040 // Get the position y 00041 double getPositionY() const; 00042 00043 // Get the position z 00044 double getPositionZ() const; 00045 00046 // Get Drift Distance 00047 double getDriftDistance() const; 00048 00049 // Get deposited energy 00050 double getDepositEnergy() const; 00051 00052 // Get the position flag 00053 int getPositionFlag() const; 00054 00055 //Set 00056 void setIdentifier(unsigned int id) {m_id = id ;} 00057 void setTrackIndex(unsigned int trackIndex) {m_trackIndex = trackIndex;} 00058 void setPositionX(double positionX) {m_xPosition = positionX;} 00059 void setPositionY(double positionY) {m_yPosition = positionY;} 00060 void setPositionZ(double positionZ) {m_zPosition = positionZ;} 00061 void setDriftDistance(double driftDistance){m_driftDistance = driftDistance;} 00062 void setDepositEnergy(double depositEnergy) {m_depositEnergy = depositEnergy;} 00063 void setPositionFlag(int posFlag) { m_posFlag = posFlag; } 00064 00065 private: 00066 MdcMcHit(const MdcMcHit &); 00067 00068 MdcMcHit &operator=(const MdcMcHit &); 00069 00070 // const Identifier m_id; 00071 Identifier m_id; 00072 00073 unsigned int m_trackIndex; 00074 00075 double m_xPosition; 00076 00077 double m_yPosition; 00078 00079 double m_zPosition; 00080 00081 double m_driftDistance; 00082 00083 double m_depositEnergy; 00084 00085 int m_posFlag; 00086 }; 00087 00088 typedef ObjectVector<MdcMcHit> MdcMcHitCol; 00089 00090 } // NameSpace Event 00091 00092 #endif