CMS 3D CMS Logo

MuonTransientTrackingRecHit.h
Go to the documentation of this file.
1 #ifndef MuonTransientTrackingRecHit_h
2 #define MuonTransientTrackingRecHit_h
3 
17 
19 
20 
22 public:
23  using MuonRecHitPointer = std::shared_ptr<MuonTransientTrackingRecHit>;
24  using ConstMuonRecHitPointer = std::shared_ptr<MuonTransientTrackingRecHit const>;
25 
26 // typedef ReferenceCountingPointer<MuonTransientTrackingRecHit> MuonRecHitPointer;
27 // typedef ConstReferenceCountingPointer<MuonTransientTrackingRecHit> ConstMuonRecHitPointer;
28  typedef std::vector<MuonRecHitPointer> MuonRecHitContainer;
29  typedef std::vector<ConstMuonRecHitPointer> ConstMuonRecHitContainer;
30 
32 
34  virtual LocalVector localDirection() const;
35 
37  virtual GlobalVector globalDirection() const;
38 
40  virtual LocalError localDirectionError() const;
41 
43  virtual GlobalError globalDirectionError() const;
44 
45  AlgebraicSymMatrix parametersError() const override;
46 
48  virtual double chi2() const;
49 
51  virtual int degreesOfFreedom() const;
52 
54  bool isDT() const;
55 
57  bool isCSC() const;
58 
60  bool isGEM() const;
61 
63  bool isME0() const;
64 
66  bool isRPC() const;
67 
69  ConstRecHitContainer transientHits() const override;
70 
72 
73  static RecHitPointer build( const GeomDet * geom, const TrackingRecHit* rh) {
74  return RecHitPointer( new MuonTransientTrackingRecHit(geom, rh));
75  }
76 
78  LogDebug("Muon|RecoMuon|MuonDetLayerMeasurements") << "Getting specificBuild"<<std::endl;
79  return MuonRecHitPointer(new MuonTransientTrackingRecHit(geom, rh));
80  }
81 
82  void invalidateHit();
83 
84  private:
85 
86  friend class kkkwwwxxxyyyzzz; //just to avoid the compiler warning...
87 
90 
93 
94  MuonTransientTrackingRecHit* clone() const override {
95  return new MuonTransientTrackingRecHit(*this);
96  }
97 
98 };
99 #endif
100 
virtual int degreesOfFreedom() const
Degrees of freedom for segments, else 0.
#define LogDebug(id)
bool isCSC() const
if this rec hit is a CSC rec hit
virtual double chi2() const
Chi square of the fit for segments, else 0.
virtual GlobalVector globalDirection() const
Direction in 3D for segments, otherwise (0,0,0)
ConstRecHitContainer transientHits() const override
return the sub components of this transient rechit
bool isGEM() const
if this rec hit is a GEM rec hit
virtual GlobalError globalDirectionError() const
Error on the global direction.
bool isRPC() const
if this rec hit is a RPC rec hit
bool isDT() const
if this rec hit is a DT rec hit
virtual LocalVector localDirection() const
Direction in 3D for segments, otherwise (0,0,0)
MuonTransientTrackingRecHit(const GeomDet *geom, const TrackingRecHit *rh)
Construct from a TrackingRecHit and its GeomDet.
MuonTransientTrackingRecHit * clone() const override
std::shared_ptr< MuonTransientTrackingRecHit > MuonRecHitPointer
std::shared_ptr< TrackingRecHit const > RecHitPointer
std::vector< ConstMuonRecHitPointer > ConstMuonRecHitContainer
std::vector< ConstRecHitPointer > ConstRecHitContainer
virtual LocalError localDirectionError() const
Error on the local direction.
bool isME0() const
if this rec hit is a ME0 rec hit
AlgebraicSymMatrix parametersError() const override
CLHEP::HepSymMatrix AlgebraicSymMatrix
std::shared_ptr< MuonTransientTrackingRecHit const > ConstMuonRecHitPointer
static MuonRecHitPointer specificBuild(const GeomDet *geom, const TrackingRecHit *rh)
std::vector< MuonRecHitPointer > MuonRecHitContainer
static RecHitPointer build(const GeomDet *geom, const TrackingRecHit *rh)
FIXME virtual ConstMuonRecHitContainer specificTransientHits() const;.