00001
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059 #ifndef StFtpcHit_hh
00060 #define StFtpcHit_hh
00061
00062 #include "StHit.h"
00063 #include "StMemoryPool.hh"
00064
00065 class StFtpcPoint;
00066
00067 class StFtpcHit : public StHit {
00068 public:
00069 StFtpcHit();
00070 StFtpcHit(const StThreeVectorF&,
00071 const StThreeVectorF&,
00072 unsigned int, float, unsigned char = 0);
00073 StFtpcHit(const StFtpcPoint&);
00074
00075
00076 ~StFtpcHit();
00077
00078 void* operator new(size_t sz,void *p) { return p;}
00079 void* operator new(size_t) { return mPool.alloc(); }
00080 void operator delete(void* p) { mPool.free(p); }
00081
00082 unsigned int sector() const;
00083 unsigned int plane() const;
00084 unsigned int padsInHit() const;
00085 unsigned int timebinsInHit() const;
00086
00087 void update(const StFtpcPoint&);
00088
00089 double padPosition() const;
00090 double timePosition() const;
00091 double sigmaPadPosition() const;
00092 double sigmaTimePosition() const;
00093
00094 void setPadPosition(float);
00095 void setTimePosition(float);
00096 void setSigmaPadPosition(float);
00097 void setSigmaTimePosition(float);
00098
00099 protected:
00100 static StMemoryPool mPool;
00101
00102 Float_t mPadPos;
00103 Float_t mTimePos;
00104 Float_t mPadPosSigma;
00105 Float_t mTimePosSigma;
00106
00107 ClassDef(StFtpcHit,2)
00108 };
00109
00110 inline double StFtpcHit::padPosition() const {return mPadPos;}
00111 inline double StFtpcHit::timePosition() const {return mTimePos;}
00112 inline double StFtpcHit::sigmaPadPosition() const {return mPadPosSigma;}
00113 inline double StFtpcHit::sigmaTimePosition() const {return mTimePosSigma;}
00114 inline void StFtpcHit::setPadPosition(float val) {mPadPos = val;}
00115 inline void StFtpcHit::setTimePosition(float val) {mTimePos = val;}
00116 inline void StFtpcHit::setSigmaPadPosition(float val) {mPadPosSigma = val;}
00117 inline void StFtpcHit::setSigmaTimePosition(float val) {mTimePosSigma = val;}
00118
00119 #endif