00001 #ifndef TofMcHit_H 00002 #define TofMcHit_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_TofMcHit; 00011 00012 namespace Event { // NameSpace 00013 class TofMcHit : virtual public ContainedObject { 00014 public: 00015 virtual const CLID& clID() const 00016 { 00017 return TofMcHit::classID(); 00018 } 00019 00020 static const CLID& classID() 00021 { 00022 return CLID_TofMcHit; 00023 } 00024 // Constructor 00025 TofMcHit(){}; 00026 TofMcHit(const Identifier& id, unsigned int trackIndex, double xPosition, 00027 double yPosition, double zPosition, double px, double py, 00028 double pz, double trackLength, double flightTime); 00029 00030 // Get associated id 00031 Identifier identify() const; 00032 00033 // Get the associated track id 00034 unsigned int getTrackIndex() const; 00035 00036 // Get the position x 00037 double getPositionX() const; 00038 00039 // Get the position y 00040 double getPositionY() const; 00041 00042 // Get the position z 00043 double getPositionZ() const; 00044 00045 // Get momentum Px 00046 double getPx() const; 00047 00048 // Get momentum Py 00049 double getPy() const; 00050 00051 // Get momentum Pz 00052 double getPz() const; 00053 00054 // Get the trajectory length 00055 double getTrackLength() const; 00056 00057 // Get the flight time 00058 double getFlightTime() const; 00059 //Set 00060 void setIdentifier(unsigned int id) {m_id = id;} 00061 void setTrackIndex(unsigned int trackIndex){ m_trackIndex = trackIndex;} 00062 void setPositionX(double positionX) {m_xPosition = positionX;} 00063 void setPositionY(double positionY) {m_yPosition = positionY;} 00064 void setPositionZ(double positionZ) {m_zPosition = positionZ;} 00065 void setPx(double px) {m_px = px;} 00066 void setPy(double py) {m_py = py;} 00067 void setPz(double pz) {m_pz = pz;} 00068 void setTrackLength(double trackLength) {m_trackLength = trackLength; } 00069 void setFlightTime(double flightTime ) {m_flightTime = flightTime; } 00070 00071 00072 private: 00073 TofMcHit(const TofMcHit &); 00074 00075 TofMcHit &operator=(const TofMcHit &); 00076 00077 // const Identifier m_id; //2005/12/29 wensp modified 00078 00079 Identifier m_id; 00080 00081 unsigned int m_trackIndex; 00082 00083 double m_xPosition; 00084 00085 double m_yPosition; 00086 00087 double m_zPosition; 00088 00089 double m_px; 00090 00091 double m_py; 00092 00093 double m_pz; 00094 00095 double m_trackLength; 00096 00097 double m_flightTime; 00098 }; 00099 00100 typedef ObjectVector<TofMcHit> TofMcHitCol; 00101 00102 } // NameSpace Event 00103 #endif