CMS 3D CMS Logo

TrackerSingleRecHit.h
Go to the documentation of this file.
1 #ifndef TrackerSingleRecHit_H
2 #define TrackerSingleRecHit_H
3 
7 
8 /* a Hit composed by a "single" measurement
9  * it has a reference to a cluster and a local position&error
10  */
12 public:
14 
16 
21 
22  // no position (as in persistent)
24 
25  template <typename CluRef>
26  TrackerSingleRecHit(const LocalPoint& p, const LocalError& e, GeomDet const& idet, CluRef const& clus)
27  : Base(p, e, idet, trackerHitRTTI::single), cluster_(clus) {}
28 
29  // for projected or timing...
30  template <typename CluRef>
32  const LocalPoint& p, const LocalError& e, GeomDet const& idet, trackerHitRTTI::RTTI rt, CluRef const& clus)
33  : Base(p, e, idet, rt), cluster_(clus) {}
34 
35  // a single hit is on a detunit
36  const GeomDetUnit* detUnit() const override { return det(); }
37 
38  // used by trackMerger (to be improved)
39  OmniClusterRef const& firstClusterRef() const final { return cluster_; }
40 
41  OmniClusterRef const& omniClusterRef() const { return cluster_; }
42  OmniClusterRef const& omniCluster() const { return cluster_; }
43  // for rekeying...
46 
48 
50 
52 
54 
55  SiStripCluster const& stripCluster() const { return cluster_.stripCluster(); }
56 
57  SiPixelCluster const& pixelCluster() const { return cluster_.pixelCluster(); }
58 
60 
61  FTLCluster const& mtdCluster() const { return cluster_.mtdCluster(); }
62 
63  // void setClusterRef(const & OmniClusterRef ref) { cluster_ =ref;}
68 
69  bool sharesInput(const TrackingRecHit* other, SharedInputType what) const final;
70 
71  bool sharesInput(TrackerSingleRecHit const& other) const { return cluster_ == other.cluster_; }
72 
73  bool sameCluster(OmniClusterRef const& oh) const { return oh == cluster_; }
74 
75  std::vector<const TrackingRecHit*> recHits() const override;
76  std::vector<TrackingRecHit*> recHits() override;
77 
78 private:
79  // new game
81 };
82 
83 #endif
SharedInputType
definition of equality via shared input
TrackerSingleRecHit(const LocalPoint &p, const LocalError &e, GeomDet const &idet, CluRef const &clus)
OmniClusterRef::ClusterMTDRef ClusterMTDRef
void setClusterStripRef(ClusterStripRef const &ref)
bool sharesInput(const TrackingRecHit *other, SharedInputType what) const final
const GeomDetUnit * detUnit() const override
SiPixelCluster const & pixelCluster() const
SiPixelCluster const & pixelCluster() const
bool sameCluster(OmniClusterRef const &oh) const
ClusterMTDRef cluster_mtd() const
OmniClusterRef const & omniClusterRef() const
FTLCluster const & mtdCluster() const
OmniClusterRef & omniCluster()
void setClusterMTDRef(ClusterMTDRef const &ref)
OmniClusterRef::Phase2Cluster1DRef ClusterPhase2Ref
const GeomDet * det() const
ClusterPixelRef cluster_pixel() const
TrackerSingleRecHit(DetId id, OmniClusterRef const &clus)
SiStripCluster const & stripCluster() const
Phase2TrackerCluster1D const & phase2OTCluster() const
ClusterPhase2Ref cluster_phase2OT() const
FTLCluster const & mtdCluster() const
Definition: DetId.h:17
Phase2Cluster1DRef cluster_phase2OT() const
BaseTrackerRecHit Base
ClusterPixelRef cluster_pixel() const
void setClusterPhase2Ref(ClusterPhase2Ref const &ref)
ClusterStripRef cluster_strip() const
Pixel cluster – collection of neighboring pixels above threshold.
bool sharesInput(TrackerSingleRecHit const &other) const
SiStripCluster const & stripCluster() const
ClusterStripRef cluster_strip() const
OmniClusterRef const & firstClusterRef() const final
void setClusterPixelRef(ClusterPixelRef const &ref)
OmniClusterRef & omniClusterRef()
ClusterMTDRef cluster_mtd() const
OmniClusterRef::ClusterPixelRef ClusterPixelRef
std::vector< const TrackingRecHit * > recHits() const override
Access to component RecHits (if any)
OmniClusterRef::ClusterStripRef ClusterStripRef
Phase2TrackerCluster1D const & phase2OTCluster() const
TrackerSingleRecHit(const LocalPoint &p, const LocalError &e, GeomDet const &idet, trackerHitRTTI::RTTI rt, CluRef const &clus)
OmniClusterRef const & omniCluster() const