00001 #ifndef STAR_STMCHITI
00002 #define STAR_STMCHITI
00003 #include "StThreeVectorF.hh"
00004
00005
00006 class StMcHitI {
00007 public:
00008 enum EMcHitBits {
00009 kMatched = BIT(23)
00010 };
00011 StMcHitI() {}
00012 virtual ~StMcHitI() {}
00013 virtual StThreeVectorF position() const;
00014 virtual float x() const =0;
00015 virtual float y() const =0;
00016 virtual float z() const =0;
00017 virtual StThreeVectorF localMomentum() const;
00018 virtual float px() const =0;
00019 virtual float py() const =0;
00020 virtual float pz() const =0;
00021 virtual float dE() const =0;
00022 virtual float dS() const =0;
00023 virtual long key() const =0;
00024 virtual long volumeId() const =0;
00025 virtual float tof() const =0;
00026
00027 virtual long parentTrackIndex() const = 0;
00028 };
00029
00030 #define MCHITCLASS(CLASSNAME, TYPE) \
00031 class CLASSNAME : public StMcHitT<TYPE*> { \
00032 protected: \
00033 CLASSNAME(){;} \
00034 public: \
00035 CLASSNAME(TYPE*data) :StMcHitT<TYPE*>(data) {;} \
00036 virtual ~CLASSNAME(){;}
00037
00038 #define ENDMCHITCLASS };
00039
00040 #endif