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 
32 
33 #include <vector>
34 
35 class DetLayer;
36 class GeomDet;
38 
39 
40 //FIXME: these typedefs MUST GO inside the scope of MuonDetLayerMeasurements
41 typedef std::vector<TrajectoryMeasurement> MeasurementContainer;
42 typedef std::pair<const GeomDet*,TrajectoryStateOnSurface> DetWithState;
43 
44 
46  public:
48 
50  edm::InputTag csclabel,
51  edm::InputTag rpclabel,
52  edm::InputTag gemlabel,
53  edm::InputTag me0label,
55  bool enableDT = true,
56  bool enableCSC = true,
57  bool enableRPC = true,
58  bool enableGEM = true,
59  bool enableME0 = true);
60 
61  virtual ~MuonDetLayerMeasurements();
62 
63  // for a given det and state. Not clear when the fastMeasurements below
64  // should be used, since it isn't passed a GeomDet
66  measurements( const DetLayer* layer,
67  const GeomDet * det,
68  const TrajectoryStateOnSurface& stateOnDet,
69  const MeasurementEstimator& est,
70  const edm::Event& iEvent);
71 
74  measurements( const DetLayer* layer,
75  const TrajectoryStateOnSurface& startingState,
76  const Propagator& prop,
77  const MeasurementEstimator& est,
78  const edm::Event& iEvent);
79 
82  fastMeasurements( const DetLayer* layer,
83  const TrajectoryStateOnSurface& theStateOnDet,
84  const TrajectoryStateOnSurface& startingState,
85  const Propagator& prop,
86  const MeasurementEstimator& est,
87  const edm::Event& iEvent);
88 
91  measurements( const DetLayer* layer,
92  const TrajectoryStateOnSurface& startingState,
93  const Propagator& prop,
94  const MeasurementEstimator& est);
95 
98  fastMeasurements( const DetLayer* layer,
99  const TrajectoryStateOnSurface& theStateOnDet,
100  const TrajectoryStateOnSurface& startingState,
101  const Propagator& prop,
102  const MeasurementEstimator& est);
103 
104  std::vector<TrajectoryMeasurementGroup>
105  groupedMeasurements( const DetLayer* layer,
106  const TrajectoryStateOnSurface& startingState,
107  const Propagator& prop,
108  const MeasurementEstimator& est,
109  const edm::Event& iEvent);
110 
111  std::vector<TrajectoryMeasurementGroup>
112  groupedMeasurements( const DetLayer* layer,
113  const TrajectoryStateOnSurface& startingState,
114  const Propagator& prop,
115  const MeasurementEstimator& est);
116 
117  void setEvent(const edm::Event &);
118 
120  MuonRecHitContainer recHits(const DetLayer* layer, const edm::Event& iEvent);
121 
123  MuonRecHitContainer recHits(const DetLayer* layer);
124 
125 
126  private:
127 
129  MuonRecHitContainer recHits(const GeomDet*, const edm::Event& iEvent);
130 
132  void checkEvent() const;
133 
134 
140 
141 
147 
148  // caches that should get filled once per event
154 
155  void checkDTRecHits();
156  void checkCSCRecHits();
157  void checkRPCRecHits();
158  void checkGEMRecHits();
159  void checkME0RecHits();
160 
161  // keeps track of which event the cache holds
167 
169 
170 };
171 #endif
172 
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
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)
edm::EDGetTokenT< CSCSegmentCollection > cscToken_
int iEvent
Definition: GenABIO.cc:230
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
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)
void checkEvent() const
check that the event is set, and throw otherwise
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 ...