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"
25 
26 #include <vector>
27 
28 class DetLayer;
29 class GeomDet;
31 
32 
33 //FIXME: these typedefs MUST GO inside the scope of MuonDetLayerMeasurements
34 typedef std::vector<TrajectoryMeasurement> MeasurementContainer;
35 typedef std::pair<const GeomDet*,TrajectoryStateOnSurface> DetWithState;
36 
37 
39  public:
41 
43  edm::InputTag csclabel,
44  edm::InputTag rpclabel,
45  bool enableDT = true,
46  bool enableCSC = true,
47  bool enableRPC = true);
48 
49  virtual ~MuonDetLayerMeasurements();
50 
51  // for a given det and state. Not clear when the fastMeasurements below
52  // should be used, since it isn't passed a GeomDet
54  measurements( const DetLayer* layer,
55  const GeomDet * det,
56  const TrajectoryStateOnSurface& stateOnDet,
57  const MeasurementEstimator& est,
58  const edm::Event& iEvent);
59 
62  measurements( const DetLayer* layer,
63  const TrajectoryStateOnSurface& startingState,
64  const Propagator& prop,
65  const MeasurementEstimator& est,
66  const edm::Event& iEvent);
67 
70  fastMeasurements( const DetLayer* layer,
71  const TrajectoryStateOnSurface& theStateOnDet,
72  const TrajectoryStateOnSurface& startingState,
73  const Propagator& prop,
74  const MeasurementEstimator& est,
75  const edm::Event& iEvent);
76 
79  measurements( const DetLayer* layer,
80  const TrajectoryStateOnSurface& startingState,
81  const Propagator& prop,
82  const MeasurementEstimator& est);
83 
86  fastMeasurements( const DetLayer* layer,
87  const TrajectoryStateOnSurface& theStateOnDet,
88  const TrajectoryStateOnSurface& startingState,
89  const Propagator& prop,
90  const MeasurementEstimator& est);
91 
92  std::vector<TrajectoryMeasurementGroup>
93  groupedMeasurements( const DetLayer* layer,
94  const TrajectoryStateOnSurface& startingState,
95  const Propagator& prop,
96  const MeasurementEstimator& est,
97  const edm::Event& iEvent);
98 
99  std::vector<TrajectoryMeasurementGroup>
100  groupedMeasurements( const DetLayer* layer,
101  const TrajectoryStateOnSurface& startingState,
102  const Propagator& prop,
103  const MeasurementEstimator& est);
104 
105  void setEvent(const edm::Event &);
106 
108  MuonRecHitContainer recHits(const DetLayer* layer, const edm::Event& iEvent);
109 
111  MuonRecHitContainer recHits(const DetLayer* layer);
112 
113 
114  private:
115 
118 
120  void checkEvent() const;
121 
125 
129 
130  // caches that should get filled once per event
134 
135  void checkDTRecHits();
136  void checkCSCRecHits();
137  void checkRPCRecHits();
138 
139  // keeps track of which event the cache holds
143 
145 
146  // strings to uniquely identify current process
147  std::string theDTCheckName;
148  std::string theRPCCheckName;
149  std::string theCSCCheckName;
150 };
151 #endif
152 
MuonDetLayerMeasurements(edm::InputTag dtlabel, edm::InputTag csclabel, edm::InputTag rpclabel, bool enableDT=true, bool enableCSC=true, bool enableRPC=true)
edm::Handle< DTRecSegment4DCollection > theDTRecHits
edm::Handle< CSCSegmentCollection > theCSCRecHits
std::vector< TrajectoryMeasurementGroup > groupedMeasurements(const DetLayer *layer, const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, const edm::Event &iEvent)
int iEvent
Definition: GenABIO.cc:243
MuonTransientTrackingRecHit::MuonRecHitContainer MuonRecHitContainer
MuonRecHitContainer recHits(const DetLayer *layer, const edm::Event &iEvent)
returns the rechits which are on the layer
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
void setEvent(const edm::Event &)
set event
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 ...