00001 #ifndef XANAMuonTrack_h
00002 #define XANAMuonTrack_h
00003
00009
00010 class XANAMuonCandidate;
00011 #include <XANADOO/XANATracks/interface/XANATrack.h>
00012 #include <CLHEP/Geometry/Point3D.h>
00013 #include <TObject.h>
00014 #include <TRef.h>
00015 #include <Rtypes.h>
00016
00017 class XANAMuonTrack : public XANATrack {
00018
00019 public:
00020
00021 XANAMuonTrack();
00023 XANAMuonTrack(Short_t charge, Float_t chi2OverDof, Short_t numberOfHits,
00024 Short_t numberOfLostHits, Float_t impactParameter,
00025 Float_t longImpactParameter, Float_t transImpactParameter, HepVector3D
00026 momentumAtVertex, HepPoint3D positionAtFirstPoint, HepVector3D
00027 momentumAtFirstPoint, HepPoint3D positionAtLastPoint,
00028 HepVector3D momentumAtLastPoint, std::string algoName);
00029
00030
00031 XANAMuonTrack(const XANAMuonTrack &right);
00032
00033 virtual ~XANAMuonTrack();
00034
00035
00036 XANAMuonCandidate *getMuonCandidate() const {return (XANAMuonCandidate *)(muon_.GetObject());}
00037 void setMuonCandidate(XANAMuonCandidate *muon);
00038
00039
00040 Bool_t virtual operator<(const XANAMuonTrack &right) const;
00041 const XANAMuonTrack & operator=(const XANAMuonTrack &right);
00042 Bool_t virtual operator==(const XANAMuonTrack&) const;
00043
00044 protected:
00045
00047 TRef muon_;
00048
00049 private:
00050
00051 Bool_t locked_;
00052 void lock() {locked_ = true;}
00053 void unlock() { locked_ = false;}
00054
00055 ClassDef(XANAMuonTrack,1)
00056
00057 };
00058
00059 #endif
00060
00061
00062
00063
00064
00065
00066