00001
00002 #ifndef StMcBTofHit_hh
00003 #define StMcBTofHit_hh
00004
00005 #include "StObject.h"
00006 #include "Stiostream.h"
00007 #include "StThreeVectorF.hh"
00008
00009
00010
00011 class StMcTrack;
00012
00013 class StMcBTofHit : public StObject {
00014 public:
00015 StMcBTofHit();
00016 StMcBTofHit(int, int, int, float, float, float, float, float);
00017 StMcBTofHit(int, int, int, float, float, float, float, float, StThreeVectorF&, StMcTrack*);
00018 virtual ~StMcBTofHit();
00019
00020 int operator==(const StMcBTofHit&) const;
00021 int operator!=(const StMcBTofHit&) const;
00022 void operator+=(const StMcBTofHit&);
00023
00024 bool sameCell(const StMcBTofHit&) const;
00025
00026
00027 virtual int tray() const;
00028 virtual int module() const;
00029 virtual int cell() const;
00030 virtual float dE() const;
00031 virtual float pathLength() const;
00032 virtual float time() const;
00033 virtual float tof() const;
00034 virtual float charge() const;
00035 virtual StThreeVectorF position() const;
00036 virtual StMcTrack* parentTrack() const;
00037 virtual int parentTrackId() const;
00038
00039
00040
00041 virtual void setTray(int);
00042 virtual void setModule(int);
00043 virtual void setCell(int);
00044 virtual void setdE(float);
00045 virtual void setPathLength(float);
00046 virtual void setTime(float);
00047 virtual void setTof(float);
00048 virtual void setCharge(float);
00049 virtual void setPosition(StThreeVectorF&);
00050 virtual void setParentTrack(StMcTrack*);
00051 virtual void setParentTrackId(int);
00052
00053
00054
00055
00056 protected:
00057 int mTray;
00058 int mModule;
00059 int mCell;
00060 float mdE;
00061 float mPathLength;
00062 float mTime;
00063 float mTof;
00064 float mCharge;
00065 StThreeVectorF mPosition;
00066 StMcTrack* mParentTrack;
00067 int mParentTrackId;
00068
00069
00070
00071 ClassDef(StMcBTofHit,1)
00072 };
00073
00074 ostream& operator<<(ostream& os, const StMcBTofHit&);
00075
00076 inline int StMcBTofHit::tray() const {return mTray; }
00077 inline int StMcBTofHit::module() const {return mModule; }
00078 inline int StMcBTofHit::cell() const {return mCell; }
00079 inline float StMcBTofHit::dE() const {return mdE; }
00080 inline float StMcBTofHit::pathLength() const {return mPathLength; }
00081 inline float StMcBTofHit::time() const {return mTime; }
00082 inline float StMcBTofHit::tof() const {return mTof; }
00083 inline float StMcBTofHit::charge() const {return mCharge; }
00084 inline StThreeVectorF StMcBTofHit::position() const {return mPosition; }
00085 inline StMcTrack* StMcBTofHit::parentTrack() const {return mParentTrack; }
00086 inline int StMcBTofHit::parentTrackId() const {return mParentTrackId; }
00087
00088 #endif
00089