00001 #ifndef XANAElectronTrack_h
00002 #define XANAElectronTrack_h
00003
00011
00012 class XANAElectronCandidate;
00013 class XANAElectronSeed;
00014 class XANASuperCluster;
00015 #include <XANADOO/XANATracks/interface/XANATrack.h>
00016 #include <CLHEP/Geometry/Point3D.h>
00017 #include <TObject.h>
00018 #include <TRef.h>
00019 #include <Rtypes.h>
00020
00021 class XANAElectronTrack : public XANATrack {
00022
00023 public:
00024
00025 XANAElectronTrack();
00027 XANAElectronTrack(Short_t charge, Float_t chi2OverDof, Short_t numberOfTrackHits,
00028 Short_t numberOfLostHits, Float_t impactParameter,
00029 Float_t longImpactParameter, Float_t transImpactParameter, HepVector3D
00030 momentumAtVertex, HepPoint3D positionAtFirstPoint, HepVector3D
00031 momentumAtFirstPoint, HepPoint3D positionAtLastPoint,
00032 HepVector3D momentumAtLastPoint, std::string algoName);
00033
00034
00035 XANAElectronTrack(const XANAElectronTrack &right);
00036
00037 virtual ~XANAElectronTrack();
00038
00039
00040 XANAElectronCandidate *getElectronCandidate() const {return (XANAElectronCandidate *)(electron_.GetObject());}
00041 void setElectronCandidate(XANAElectronCandidate *electron);
00042 XANASuperCluster *getSuperCluster() const {return (XANASuperCluster *)(cluster_.GetObject());}
00043 void setSuperCluster(XANASuperCluster *super);
00044 XANAElectronSeed *getElectronSeed() const {return (XANAElectronSeed *)(seed_.GetObject());}
00045 void setElectronSeed(XANAElectronSeed *seed);
00046
00048 Bool_t IsUsed() const {return locked_;}
00049
00050 Bool_t operator==(const XANAElectronTrack&) const;
00051 const XANAElectronTrack & operator=(const XANAElectronTrack &right);
00052 Bool_t operator<(const XANAElectronTrack&) const;
00053
00054
00055 protected:
00056
00058 TRef electron_;
00060 TRef cluster_;
00062 TRef seed_;
00063
00064 Bool_t locked_;
00065 void lock() {locked_ = true;}
00066 void unlock() { locked_ = false;}
00067
00068 ClassDef(XANAElectronTrack,1)
00069
00070 };
00071
00072 #endif
00073
00074
00075
00076
00077
00078
00079