CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MuonDetLayerMeasurements.h
Go to the documentation of this file.
1 #ifndef MeasurementDet_MuonDetLayerMeasurements_H
2 #define MeasurementDet_MuonDetLayerMeasurements_H
3 
16 //#include "TrackingTools/ementDet/interface/TrajectoryMeasurement.h"
24 
25 
26 
27 #include <vector>
28 
29 class DetLayer;
30 class GeomDet;
32 
33 
34 //FIXME: these typedefs MUST GO inside the scope of MuonDetLayerMeasurements
35 typedef std::vector<TrajectoryMeasurement> MeasurementContainer;
36 typedef std::pair<const GeomDet*,TrajectoryStateOnSurface> DetWithState;
37 
38 
40  public:
42 
44  edm::InputTag csclabel,
45  edm::InputTag rpclabel,
47  bool enableDT = true,
48  bool enableCSC = true,
49  bool enableRPC = true
50  );
51 
52  virtual ~MuonDetLayerMeasurements();
53 
54  // for a given det and state. Not clear when the fastMeasurements below
55  // should be used, since it isn't passed a GeomDet
57  measurements( const DetLayer* layer,
58  const GeomDet * det,
59  const TrajectoryStateOnSurface& stateOnDet,
60  const MeasurementEstimator& est,
61  const edm::Event& iEvent);
62 
65  measurements( const DetLayer* layer,
66  const TrajectoryStateOnSurface& startingState,
67  const Propagator& prop,
68  const MeasurementEstimator& est,
69  const edm::Event& iEvent);
70 
73  fastMeasurements( const DetLayer* layer,
74  const TrajectoryStateOnSurface& theStateOnDet,
75  const TrajectoryStateOnSurface& startingState,
76  const Propagator& prop,
77  const MeasurementEstimator& est,
78  const edm::Event& iEvent);
79 
82  measurements( const DetLayer* layer,
83  const TrajectoryStateOnSurface& startingState,
84  const Propagator& prop,
85  const MeasurementEstimator& est);
86 
89  fastMeasurements( const DetLayer* layer,
90  const TrajectoryStateOnSurface& theStateOnDet,
91  const TrajectoryStateOnSurface& startingState,
92  const Propagator& prop,
93  const MeasurementEstimator& est);
94 
95  std::vector<TrajectoryMeasurementGroup>
96  groupedMeasurements( const DetLayer* layer,
97  const TrajectoryStateOnSurface& startingState,
98  const Propagator& prop,
99  const MeasurementEstimator& est,
100  const edm::Event& iEvent);
101 
102  std::vector<TrajectoryMeasurementGroup>
103  groupedMeasurements( const DetLayer* layer,
104  const TrajectoryStateOnSurface& startingState,
105  const Propagator& prop,
106  const MeasurementEstimator& est);
107 
108  void setEvent(const edm::Event &);
109 
111  MuonRecHitContainer recHits(const DetLayer* layer, const edm::Event& iEvent);
112 
114  MuonRecHitContainer recHits(const DetLayer* layer);
115 
116 
117  private:
118 
121 
123  void checkEvent() const;
124 
125 
129 
130 
134 
135  // caches that should get filled once per event
139 
140  void checkDTRecHits();
141  void checkCSCRecHits();
142  void checkRPCRecHits();
143 
144  // keeps track of which event the cache holds
148 
150 
151 };
152 #endif
153 
unsigned long CacheIdentifier_t
Definition: Event.h:96
edm::Handle< DTRecSegment4DCollection > theDTRecHits
edm::Event::CacheIdentifier_t theDTEventCacheID
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
MuonDetLayerMeasurements(edm::InputTag dtlabel, edm::InputTag csclabel, edm::InputTag rpclabel, edm::ConsumesCollector &iC, bool enableDT=true, bool enableCSC=true, bool enableRPC=true)
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
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
edm::Event::CacheIdentifier_t theCSCEventCacheID
void setEvent(const edm::Event &)
set event
edm::EDGetTokenT< RPCRecHitCollection > rpcToken_
void checkEvent() const
check that the event is set, and throw otherwise
std::vector< MuonRecHitPointer > MuonRecHitContainer
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 ...