00001
00002
00003
00004
00005
00006
00007 #ifndef THIT_H
00008 #define THIT_H
00009
00010 #include <TVector3.h>
00011 #include <TString.h>
00012
00013 class THit {
00014 public:
00015 THit(const Char_t * = "", Float_t = 0.0, Float_t = 0.0);
00016 virtual ~THit();
00017 virtual void Print(const Char_t * = "") const;
00018 void SetDetector(const Char_t *);
00019 void SetEnergy(Float_t);
00020 void SetTime(Float_t);
00021 void SetPosition(Float_t, Float_t, Float_t);
00022 const Char_t * GetDetector() const;
00023 Float_t GetEnergy() const;
00024 Float_t GetTime() const;
00025 TVector3 GetMomentum() const;
00026 const TVector3 & GetPosition() const;
00027 Double_t DopplerCorrect(Float_t, Float_t) const;
00028
00029 private:
00032 TString fDetector;
00035 TVector3 fPosition;
00038 Float_t fEnergy;
00041 Float_t fTime;
00042
00043
00044
00045 ClassDef(THit, 1)
00046 };
00047
00048 inline void THit::SetDetector(const Char_t *detector)
00049 {
00053 fDetector = detector;
00054 }
00055
00056 inline void THit::SetEnergy(Float_t energy)
00057 {
00061 fEnergy = energy;
00062 }
00063
00064 inline void THit::SetTime(Float_t time)
00065 {
00069 fTime = time;
00070 }
00071
00072 inline const Char_t * THit::GetDetector() const
00073 {
00077 return fDetector.Data();
00078 }
00079
00080 inline Float_t THit::GetEnergy() const
00081 {
00085 return fEnergy;
00086 }
00087
00088 inline Float_t THit::GetTime() const
00089 {
00093 return fTime;
00094 }
00095
00096 inline const TVector3 & THit::GetPosition() const
00097 {
00107 return fPosition;
00108 }
00109
00119 class GreaterHitE {
00120 public:
00121 Bool_t operator()(const THit &, const THit &) const;
00122 };
00123
00124 inline Bool_t GreaterHitE::operator()(const THit &a, const THit &b) const
00125 {
00131 return a.GetEnergy() > b.GetEnergy();
00132 }
00133
00134 #endif // THit.h