CMS 3D CMS Logo

MTDDetLayerMeasurements.h
Go to the documentation of this file.
1 #ifndef RecoMTD_MeasurementDet_MTDDetLayerMeasurements_H
2 #define RecoMTD_MeasurementDet_MTDDetLayerMeasurements_H
3 
20 
23 
24 #include <vector>
25 
26 class DetLayer;
27 class GeomDet;
29 
31 public:
32  typedef std::vector<TrajectoryMeasurement> MeasurementContainer;
33  typedef std::pair<const GeomDet*, TrajectoryStateOnSurface> DetWithState;
34  typedef std::vector<GenericTransientTrackingRecHit::RecHitPointer> MTDRecHitContainer;
35 
37 
38  virtual ~MTDDetLayerMeasurements();
39 
40  // for a given det and state. Not clear when the fastMeasurements below
41  // should be used, since it isn't passed a GeomDet
43  const GeomDet* det,
44  const TrajectoryStateOnSurface& stateOnDet,
45  const MeasurementEstimator& est,
46  const edm::Event& iEvent);
47 
50  const TrajectoryStateOnSurface& startingState,
51  const Propagator& prop,
52  const MeasurementEstimator& est,
53  const edm::Event& iEvent);
54 
57  const TrajectoryStateOnSurface& theStateOnDet,
58  const TrajectoryStateOnSurface& startingState,
59  const Propagator& prop,
60  const MeasurementEstimator& est,
61  const edm::Event& iEvent);
62 
65  const TrajectoryStateOnSurface& startingState,
66  const Propagator& prop,
67  const MeasurementEstimator& est);
68 
71  const TrajectoryStateOnSurface& theStateOnDet,
72  const TrajectoryStateOnSurface& startingState,
73  const Propagator& prop,
74  const MeasurementEstimator& est);
75 
76  std::vector<TrajectoryMeasurementGroup> groupedMeasurements(const DetLayer* layer,
77  const TrajectoryStateOnSurface& startingState,
78  const Propagator& prop,
79  const MeasurementEstimator& est,
80  const edm::Event& iEvent);
81 
82  std::vector<TrajectoryMeasurementGroup> groupedMeasurements(const DetLayer* layer,
83  const TrajectoryStateOnSurface& startingState,
84  const Propagator& prop,
85  const MeasurementEstimator& est);
86 
87  void setEvent(const edm::Event&);
88 
91 
94 
95 private:
98 
100  void checkEvent() const;
101 
102  // sort functions for containers provided by measurements methods
103  template <class T>
104  T sortResult(T&);
105 
107 
108  // caches that should get filled once per event
110 
111  void checkMTDRecHits();
112 
113  // keeps track of which event the cache holds
115 
117 };
118 #endif
unsigned long CacheIdentifier_t
Definition: Event.h:117
MTDRecHitContainer recHits(const DetLayer *layer, const edm::Event &iEvent)
returns the rechits which are on the layer
std::vector< TrajectoryMeasurement > MeasurementContainer
edm::Event::CacheIdentifier_t theMTDEventCacheID
std::vector< TrajectoryMeasurementGroup > groupedMeasurements(const DetLayer *layer, const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, const edm::Event &iEvent)
void setEvent(const edm::Event &)
set event
constexpr std::array< uint8_t, layerIndexSize< TrackerTraits > > layer
MeasurementContainer fastMeasurements(const DetLayer *layer, const TrajectoryStateOnSurface &theStateOnDet, const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, const edm::Event &iEvent)
faster version in case the TrajectoryState on the surface of the GeomDet is already available ...
void checkEvent() const
check that the event is set, and throw otherwise
int iEvent
Definition: GenABIO.cc:224
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
MeasurementContainer measurements(const DetLayer *layer, const GeomDet *det, const TrajectoryStateOnSurface &stateOnDet, const MeasurementEstimator &est, const edm::Event &iEvent)
edm::Handle< edmNew::DetSetVector< MTDTrackingRecHit > > theMTDRecHits
edm::EDGetTokenT< MTDTrackingRecHit > theMTDToken
MTDDetLayerMeasurements(const edm::InputTag &mtdlabel, edm::ConsumesCollector &iC)
std::vector< GenericTransientTrackingRecHit::RecHitPointer > MTDRecHitContainer
long double T