00001 #ifndef MuonTransientTrackingRecHit_h 00002 #define MuonTransientTrackingRecHit_h 00003 00015 #include "TrackingTools/TransientTrackingRecHit/interface/GenericTransientTrackingRecHit.h" 00016 #include "DataFormats/TrackingRecHit/interface/RecSegment.h" 00017 00018 00019 class MuonTransientTrackingRecHit: public GenericTransientTrackingRecHit{ 00020 public: 00021 typedef ReferenceCountingPointer<MuonTransientTrackingRecHit> MuonRecHitPointer; 00022 typedef ConstReferenceCountingPointer<MuonTransientTrackingRecHit> ConstMuonRecHitPointer; 00023 typedef std::vector<MuonRecHitPointer> MuonRecHitContainer; 00024 typedef std::vector<ConstMuonRecHitPointer> ConstMuonRecHitContainer; 00025 00026 virtual ~MuonTransientTrackingRecHit(){} 00027 00029 virtual LocalVector localDirection() const; 00030 00032 virtual GlobalVector globalDirection() const; 00033 00035 virtual LocalError localDirectionError() const; 00036 00038 virtual GlobalError globalDirectionError() const; 00039 00040 virtual AlgebraicSymMatrix parametersError() const; 00041 00043 virtual double chi2() const; 00044 00046 virtual int degreesOfFreedom() const; 00047 00049 bool isDT() const; 00050 00052 bool isCSC() const; 00053 00055 bool isRPC() const; 00056 00058 virtual ConstRecHitContainer transientHits() const; 00059 00061 00062 static RecHitPointer build( const GeomDet * geom, const TrackingRecHit* rh) { 00063 return RecHitPointer( new MuonTransientTrackingRecHit(geom, rh)); 00064 } 00065 00066 static MuonRecHitPointer specificBuild(const GeomDet * geom, const TrackingRecHit* rh) { 00067 return MuonRecHitPointer(new MuonTransientTrackingRecHit(geom, rh)); 00068 } 00069 00070 void invalidateHit(); 00071 00072 private: 00073 00074 friend class kkkwwwxxxyyyzzz; //just to avoid the compiler warning... 00075 00077 MuonTransientTrackingRecHit(const GeomDet * geom, const TrackingRecHit * rh); 00078 00080 MuonTransientTrackingRecHit(const MuonTransientTrackingRecHit & other ); 00081 00082 virtual MuonTransientTrackingRecHit* clone() const { 00083 return new MuonTransientTrackingRecHit(*this); 00084 } 00085 00086 }; 00087 #endif 00088