CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TransientTrackingRecHit.h
Go to the documentation of this file.
1 #ifndef TransientTrackingRecHit_H
2 #define TransientTrackingRecHit_H
3 
9 
11 
12 class GeomDetUnit;
13 
14 #ifdef COUNT_HITS
16 #else
18 #endif
19 
20 
23 public:
24 
27  typedef std::vector<ConstRecHitPointer> RecHitContainer;
28  typedef std::vector<ConstRecHitPointer> ConstRecHitContainer;
29 
30 
33  TrackingRecHit(id, type)
34  {countTTRH(type);}
35 
36  explicit TransientTrackingRecHit(TrackingRecHit const & rh) :
38  {countTTRH(type());}
39 
41 
42 
43  // Extension of the TrackingRecHit interface
44 
46 
47  virtual const GeomDet * det() const =0;
48  virtual const Surface * surface() const {return &(det()->surface());}
49 
53  virtual const GeomDetUnit * detUnit() const;
54 
55  virtual GlobalPoint globalPosition() const =0;
56  virtual GlobalError globalPositionError() const =0;
57 
58  virtual float errorGlobalR() const=0;
59  virtual float errorGlobalZ() const=0;
60  virtual float errorGlobalRPhi() const=0;
61 
66  virtual RecHitPointer clone (const TrajectoryStateOnSurface&) const;
67 
72  virtual bool canImproveWithTrack() const {return false;}
73 
74  virtual const TrackingRecHit * hit() const = 0;
75 
76  // clone the corresponding Persistent Hit
77  virtual TrackingRecHit * cloneHit() const = 0;
78 
80  virtual ConstRecHitContainer transientHits() const;
81 
82 
84  virtual float clusterProbability() const { return 1.f; }
85 
86 private:
87 
88  // hide the clone method for ReferenceCounted. Warning: this method is still
89  // accessible via the bas class TrackingRecHit interface!
90  virtual TransientTrackingRecHit * clone() const = 0;
91 
92 };
93 
94 #endif
95 
ReferenceCountingPointer< TransientTrackingRecHit > RecHitPointer
type
Definition: HCALResponse.h:21
ConstReferenceCountingPointer< TransientTrackingRecHit > ConstRecHitPointer
unsigned int id_type
virtual float errorGlobalR() const =0
virtual TransientTrackingRecHit * clone() const =0
Type type() const
virtual float errorGlobalRPhi() const =0
virtual const TrackingRecHit * hit() const =0
virtual const GeomDet * det() const =0
The GomeDet* can be zero for InvalidTransientRecHits and for TConstraintRecHit2Ds.
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
virtual float errorGlobalZ() const =0
std::vector< ConstRecHitPointer > RecHitContainer
virtual GlobalPoint globalPosition() const =0
TransientTrackingRecHit(TrackingRecHit::id_type id, Type type=valid)
virtual GlobalError globalPositionError() const =0
virtual TrackingRecHit * cloneHit() const =0
virtual float clusterProbability() const
cluster probability, overloaded by pixel rechits.
std::vector< ConstRecHitPointer > ConstRecHitContainer
virtual bool canImproveWithTrack() const
TransientTrackingRecHit(TrackingRecHit const &rh)
void countTTRH(TrackingRecHit::Type)
virtual const Surface * surface() const
virtual const GeomDetUnit * detUnit() const
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
DetId geographicalId() const
virtual ConstRecHitContainer transientHits() const
Composite interface: returns the component hits, if any.