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 
18 //#include "TrackingTools/ementDet/interface/TrajectoryMeasurement.h"
26 
27 
28 
29 #include <vector>
30 
31 class DetLayer;
32 class GeomDet;
34 
35 
36 //FIXME: these typedefs MUST GO inside the scope of MuonDetLayerMeasurements
37 typedef std::vector<TrajectoryMeasurement> MeasurementContainer;
38 typedef std::pair<const GeomDet*,TrajectoryStateOnSurface> DetWithState;
39 
40 
42  public:
44 
46  edm::InputTag csclabel,
47  edm::InputTag rpclabel,
48  edm::InputTag gemlabel,
50  bool enableDT = true,
51  bool enableCSC = true,
52  bool enableRPC = true,
53  bool enableGEM = true
54  );
55 
56  virtual ~MuonDetLayerMeasurements();
57 
58  // for a given det and state. Not clear when the fastMeasurements below
59  // should be used, since it isn't passed a GeomDet
61  measurements( const DetLayer* layer,
62  const GeomDet * det,
63  const TrajectoryStateOnSurface& stateOnDet,
64  const MeasurementEstimator& est,
65  const edm::Event& iEvent);
66 
69  measurements( const DetLayer* layer,
70  const TrajectoryStateOnSurface& startingState,
71  const Propagator& prop,
72  const MeasurementEstimator& est,
73  const edm::Event& iEvent);
74 
77  fastMeasurements( const DetLayer* layer,
78  const TrajectoryStateOnSurface& theStateOnDet,
79  const TrajectoryStateOnSurface& startingState,
80  const Propagator& prop,
81  const MeasurementEstimator& est,
82  const edm::Event& iEvent);
83 
86  measurements( const DetLayer* layer,
87  const TrajectoryStateOnSurface& startingState,
88  const Propagator& prop,
89  const MeasurementEstimator& est);
90 
93  fastMeasurements( const DetLayer* layer,
94  const TrajectoryStateOnSurface& theStateOnDet,
95  const TrajectoryStateOnSurface& startingState,
96  const Propagator& prop,
97  const MeasurementEstimator& est);
98 
99  std::vector<TrajectoryMeasurementGroup>
100  groupedMeasurements( const DetLayer* layer,
101  const TrajectoryStateOnSurface& startingState,
102  const Propagator& prop,
103  const MeasurementEstimator& est,
104  const edm::Event& iEvent);
105 
106  std::vector<TrajectoryMeasurementGroup>
107  groupedMeasurements( const DetLayer* layer,
108  const TrajectoryStateOnSurface& startingState,
109  const Propagator& prop,
110  const MeasurementEstimator& est);
111 
112  void setEvent(const edm::Event &);
113 
115  MuonRecHitContainer recHits(const DetLayer* layer, const edm::Event& iEvent);
116 
118  MuonRecHitContainer recHits(const DetLayer* layer);
119 
120 
121  private:
122 
125 
127  void checkEvent() const;
128 
129 
134 
135 
140 
141  // caches that should get filled once per event
146 
147  void checkDTRecHits();
148  void checkCSCRecHits();
149  void checkRPCRecHits();
150  void checkGEMRecHits();
151 
152  // keeps track of which event the cache holds
157 
159 
160 };
161 #endif
162 
unsigned long CacheIdentifier_t
Definition: Event.h:100
MuonDetLayerMeasurements(edm::InputTag dtlabel, edm::InputTag csclabel, edm::InputTag rpclabel, edm::InputTag gemlabel, edm::ConsumesCollector &iC, bool enableDT=true, bool enableCSC=true, bool enableRPC=true, bool enableGEM=true)
edm::Handle< DTRecSegment4DCollection > theDTRecHits
edm::Event::CacheIdentifier_t theGEMEventCacheID
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
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
edm::EDGetTokenT< GEMRecHitCollection > gemToken_
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
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 ...