00001 #ifndef _MANTREE_MEFTRACK_H__
00002 #define _MANTREE_MEFTRACK_H__
00003
00004 #include "manTree/MParticle.h"
00005 #include "TRef.h"
00006
00007
00008 #ifdef _ATHENA_CLASSES__
00009 #include "Particle/TrackParticle.h"
00010 class TrigInDetTrack;
00011 #endif
00012
00013 namespace manchester {
00014
00020 class MEFTrack : public MParticle {
00021 public:
00023 MEFTrack();
00024
00026 MEFTrack(const MEFTrack& trk);
00027
00028 #ifdef _ATHENA_CLASSES__
00029 MEFTrack(const Rec::TrackParticle& trk);
00030 MEFTrack(const Rec::TrackParticle& trk, const double z0, const double d0);
00031 MEFTrack(const TrigInDetTrack& trk);
00032 #endif
00033
00035 void SetHits(unsigned short npix, unsigned short nsct, unsigned short ntrt);
00036
00038 inline Bool_t HasOppDphiMatch() const {return m_hasOppDphiMatch;}
00039 inline Bool_t HasOppDalphaMatch() const {return m_hasOppDalphaMatch;}
00040
00042 inline Double_t Z0() const {return m_z0;}
00043
00045 inline Double_t D0() const {return m_d0;}
00046
00048 Double_t DetectorEta(double r) const;
00049
00051 inline UShort_t NSCTHits() const {return m_nscthits;}
00052
00054 inline UShort_t NPixHits() const {return m_npixhits;}
00055
00057 inline UShort_t NTRTHits() const {return m_ntrthits;}
00058
00060 void SetTrackMatch(MEFTrack* trk, bool dphi, bool dalpha);
00061
00063 const MEFTrack* GetTrackMatch() const;
00064
00065 protected:
00066 virtual void Reset();
00067
00068 private:
00070 bool m_hasOppDphiMatch;
00071 bool m_hasOppDalphaMatch;
00072
00074 Double_t m_d0;
00075 Double_t m_z0;
00076
00077 UShort_t m_nscthits;
00078 UShort_t m_ntrthits;
00079 UShort_t m_npixhits;
00080
00082 TRef m_matchTrack;
00083
00084 #ifndef DOXYGEN_IGNORE
00085 ClassDef(MEFTrack, 2);
00086 #endif
00087
00088 };
00089
00090 }
00091
00092 #endif