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 {
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
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
00032 Identifier identify() const;
00033
00034
00035 unsigned int getTrackIndex() const;
00036
00037
00038 double getPositionX() const;
00039
00040
00041 double getPositionY() const;
00042
00043
00044 double getPositionZ() const;
00045
00046
00047 double getDriftDistance() const;
00048
00049
00050 double getDepositEnergy() const;
00051
00052
00053 int getPositionFlag() const;
00054
00055
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
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 }
00091
00092 #endif