CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/RecoMuon/TransientTrackingRecHit/interface/MuonTransientTrackingRecHit.h

Go to the documentation of this file.
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   inline void invalidateHit() { setType(bad); trackingRecHit_->setType(bad); }
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