CMS 3D CMS Logo

MuonDetLayerMeasurements.h
Go to the documentation of this file.
1 #ifndef MeasurementDet_MuonDetLayerMeasurements_H
2 #define MeasurementDet_MuonDetLayerMeasurements_H
3 
20 //#include "TrackingTools/ementDet/interface/TrajectoryMeasurement.h"
27 
30 
31 #include <vector>
32 
33 class DetLayer;
34 class GeomDet;
36 
37 //FIXME: these typedefs MUST GO inside the scope of MuonDetLayerMeasurements
38 typedef std::vector<TrajectoryMeasurement> MeasurementContainer;
39 typedef std::pair<const GeomDet*, TrajectoryStateOnSurface> DetWithState;
40 
42 public:
44 
46  edm::InputTag csclabel,
47  edm::InputTag rpclabel,
48  edm::InputTag gemlabel,
49  edm::InputTag me0label,
51  bool enableDT = true,
52  bool enableCSC = true,
53  bool enableRPC = true,
54  bool enableGEM = true,
55  bool enableME0 = true);
56 
57  virtual ~MuonDetLayerMeasurements();
58 
59  // for a given det and state. Not clear when the fastMeasurements below
60  // should be used, since it isn't passed a GeomDet
62  const GeomDet* det,
63  const TrajectoryStateOnSurface& stateOnDet,
64  const MeasurementEstimator& est,
65  const edm::Event& iEvent);
66 
69  const TrajectoryStateOnSurface& startingState,
70  const Propagator& prop,
71  const MeasurementEstimator& est,
72  const edm::Event& iEvent);
73 
76  const TrajectoryStateOnSurface& theStateOnDet,
77  const TrajectoryStateOnSurface& startingState,
78  const Propagator& prop,
79  const MeasurementEstimator& est,
80  const edm::Event& iEvent);
81 
84  const TrajectoryStateOnSurface& startingState,
85  const Propagator& prop,
86  const MeasurementEstimator& est);
87 
90  const TrajectoryStateOnSurface& theStateOnDet,
91  const TrajectoryStateOnSurface& startingState,
92  const Propagator& prop,
93  const MeasurementEstimator& est);
94 
95  std::vector<TrajectoryMeasurementGroup> groupedMeasurements(const DetLayer* layer,
96  const TrajectoryStateOnSurface& startingState,
97  const Propagator& prop,
98  const MeasurementEstimator& est,
99  const edm::Event& iEvent);
100 
101  std::vector<TrajectoryMeasurementGroup> groupedMeasurements(const DetLayer* layer,
102  const TrajectoryStateOnSurface& startingState,
103  const Propagator& prop,
104  const MeasurementEstimator& est);
105 
106  void setEvent(const edm::Event&);
107 
110 
113 
114 private:
117 
119  void checkEvent() const;
120 
126 
132 
133  // caches that should get filled once per event
139 
140  void checkDTRecHits();
141  void checkCSCRecHits();
142  void checkRPCRecHits();
143  void checkGEMRecHits();
144  void checkME0RecHits();
145 
146  // keeps track of which event the cache holds
152 
154 };
155 #endif
unsigned long CacheIdentifier_t
Definition: Event.h:117
edm::Event::CacheIdentifier_t theME0EventCacheID
edm::Handle< DTRecSegment4DCollection > theDTRecHits
edm::Event::CacheIdentifier_t theGEMEventCacheID
edm::Event::CacheIdentifier_t theDTEventCacheID
edm::EDGetTokenT< ME0SegmentCollection > me0Token_
edm::EDGetTokenT< DTRecSegment4DCollection > dtToken_
edm::Handle< CSCSegmentCollection > theCSCRecHits
std::vector< TrajectoryMeasurementGroup > groupedMeasurements(const DetLayer *layer, const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, const edm::Event &iEvent)
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
edm::EDGetTokenT< CSCSegmentCollection > cscToken_
constexpr std::array< uint8_t, layerIndexSize< TrackerTraits > > layer
int iEvent
Definition: GenABIO.cc:224
MuonTransientTrackingRecHit::MuonRecHitContainer MuonRecHitContainer
MuonRecHitContainer recHits(const DetLayer *layer, const edm::Event &iEvent)
returns the rechits which are on the layer
edm::Event::CacheIdentifier_t theRPCEventCacheID
void checkEvent() const
check that the event is set, and throw otherwise
edm::Handle< RPCRecHitCollection > theRPCRecHits
MeasurementContainer measurements(const DetLayer *layer, const GeomDet *det, const TrajectoryStateOnSurface &stateOnDet, const MeasurementEstimator &est, const edm::Event &iEvent)
std::vector< TrajectoryMeasurement > MeasurementContainer
std::vector< TrajectoryMeasurement > MeasurementContainer
edm::Handle< ME0SegmentCollection > theME0RecHits
edm::Event::CacheIdentifier_t theCSCEventCacheID
edm::EDGetTokenT< GEMRecHitCollection > gemToken_
void setEvent(const edm::Event &)
set event
edm::EDGetTokenT< RPCRecHitCollection > rpcToken_
MuonDetLayerMeasurements(edm::InputTag dtlabel, edm::InputTag csclabel, edm::InputTag rpclabel, edm::InputTag gemlabel, edm::InputTag me0label, edm::ConsumesCollector &iC, bool enableDT=true, bool enableCSC=true, bool enableRPC=true, bool enableGEM=true, bool enableME0=true)
std::vector< MuonRecHitPointer > MuonRecHitContainer
edm::Handle< GEMRecHitCollection > theGEMRecHits
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 ...