00001 #ifndef XANATrackHit_h 00002 #define XANATrackHit_h 00003 00011 #include <TObject.h> 00012 #include <TRef.h> 00013 #include <Rtypes.h> 00014 #include <CLHEP/Geometry/Point3D.h> 00015 #include <TRefArray.h> 00016 #include <vector> 00017 00018 using namespace HepGeom; 00019 class XANATrack; 00020 class XANAElectronTrack; 00021 00022 class XANATrackHit : public TObject { 00023 00024 public: 00025 00026 XANATrackHit(); 00028 XANATrackHit( HepPoint3D hitPosition, HepPoint3D updatedPosition, HepVector3D updatedMomentum ); 00029 virtual ~XANATrackHit(); 00030 00031 // data access methods 00032 HepPoint3D getHitPosition() const {return hitPosition_;} 00033 HepPoint3D getUpdatedPosition() const {return updatedPosition_;} 00034 HepVector3D getUpdatedMomentum() const {return updatedMomentum_;} 00035 Bool_t getIsStereo() const {return isStereo_;} 00036 Bool_t getIsBarrel() const {return isBarrel_;} 00037 00038 // set methods 00039 void setHitPosition(HepPoint3D hitPosition){hitPosition_= hitPosition;} 00040 void setUpdatedPosition(HepPoint3D updatedPosition){updatedPosition_= updatedPosition;} 00041 void setUpdatedMomentum(HepVector3D updatedMomentum){updatedMomentum_= updatedMomentum;} 00042 void setIsStereo(Bool_t isStereo){isStereo_= isStereo;} 00043 void setIsBarrel(Bool_t isBarrel){isBarrel_= isBarrel;} 00044 00045 // relationships 00046 XANATrack * getTrack() const {return (XANATrack *)(track_.GetObject());} 00047 XANAElectronTrack * getEleTrack() const {return (XANAElectronTrack *)(eleTrack_.GetObject());} 00048 00050 Bool_t IsUsed() const {return locked_;} 00051 00052 void setTrack(XANATrack *tra); 00053 void setEleTrack(XANAElectronTrack *tra); 00054 00055 Bool_t operator==(const XANATrackHit&) const; 00056 00057 protected: 00058 00059 HepPoint3D hitPosition_; 00060 HepPoint3D updatedPosition_; 00061 HepVector3D updatedMomentum_; 00062 00064 Bool_t isStereo_; 00066 Bool_t isBarrel_; 00067 00069 TRef track_; 00071 TRef eleTrack_; 00072 00073 private: 00074 00075 Bool_t locked_; 00076 void lock() {locked_ = true;} 00077 void unlock() { locked_ = false;} 00078 00079 ClassDef(XANATrackHit,1) 00080 00081 }; 00082 00083 #endif 00084 00085 00086 00087 00088 00089 00090