CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
TrackEfficiencyMonitor.h
Go to the documentation of this file.
1 #ifndef TrackEfficiencyMonitor_H
2 #define TrackEfficiencyMonitor_H
3 // -*- C++ -*-
4 //
5 // Package: TrackEfficiencyMonitor
6 // Class: TrackEfficiencyMonitor
7 //
11 // Original Author: Jeremy Andrea
12 // Insertion in DQM: Anne-Catherine Le Bihan
13 // Created: Thu 28 22:45:30 CEST 2008
14 
15 #include <memory>
16 #include <fstream>
35 
36 namespace reco {
37  class TransientTrack;
38 }
39 class NavigationSchool;
40 
42 public:
43  typedef reco::Track Track;
46  ~TrackEfficiencyMonitor() override;
47  void analyze(const edm::Event&, const edm::EventSetup&) override;
48 
49  void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
50 
51  enum SemiCylinder { Up, Down };
52  std::pair<TrajectoryStateOnSurface, const DetLayer*> findNextLayer(
53  TrajectoryStateOnSurface startTSOS, const std::vector<const DetLayer*>& trackCompatibleLayers, bool isUpMuon);
57  const NavigationSchool& navigationSchool);
59  bool trackerAcceptance(TrajectoryStateOnSurface theTSOS, double theRadius, double theMaxZ);
60  int compatibleLayers(const NavigationSchool& navigationSchool, TrajectoryStateOnSurface theTSOS);
61 
62 private:
63  // ----------member data ---------------------------
64 
65  std::string histname; //for naming the histograms
66 
69 
70  double theRadius_;
71  double theMaxZ_;
73  bool trackEfficiency_; //1 if one wants to measure the tracking efficiency
74  //0 if one wants to measure the muon reco efficiency
75 
80 
84 
92 
100 
111 
118 
120 
126 };
127 #endif
const MagneticField * bField
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
const edm::ESGetToken< NavigationSchool, NavigationSchoolRecord > navToken_
MonitorElement * GlobalMuonPtEtaPhiHighPt
reco::TrackCollection TrackCollection
void testTrackerTracks(edm::Handle< TrackCollection > tkTracks, edm::Handle< TrackCollection > staTracks, const NavigationSchool &navigationSchool)
MonitorElement * GlobalMuonPtEtaPhiLowPt
const edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > ttbToken_
const edm::ESGetToken< GeometricSearchTracker, TrackerRecoGeometryRecord > gstToken_
edm::EDGetTokenT< edm::View< reco::Muon > > muonToken_
const edm::ESGetToken< MeasurementTracker, CkfComponentsRecord > mtToken_
MonitorElement * muonCompatibleLayers
const GeometricSearchTracker * theTracker
MonitorElement * StandaloneMuonPtEtaPhiLowPt
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
const TransientTrackBuilder * theTTrackBuilder
MuonServiceProxy * theMuonServiceProxy
edm::EDGetTokenT< reco::TrackCollection > theTKTracksToken_
std::pair< TrajectoryStateOnSurface, const DetLayer * > findNextLayer(TrajectoryStateOnSurface startTSOS, const std::vector< const DetLayer * > &trackCompatibleLayers, bool isUpMuon)
MonitorElement * StandaloneMuonPtEtaPhiHighPt
const Propagator * thePropagator
const DirectTrackerNavigation * theNavigation
void analyze(const edm::Event &, const edm::EventSetup &) override
bool trackerAcceptance(TrajectoryStateOnSurface theTSOS, double theRadius, double theMaxZ)
int compatibleLayers(const NavigationSchool &navigationSchool, TrajectoryStateOnSurface theTSOS)
TrackEfficiencyMonitor(const edm::ParameterSet &)
const MeasurementTracker * measurementTracker
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > mfToken_
SemiCylinder checkSemiCylinder(const Track &)
MonitorElement * trackCompatibleLayers
const edm::ESGetToken< Propagator, TrackingComponentsRecord > propToken_
void testSTATracks(edm::Handle< TrackCollection > tkTracks, edm::Handle< TrackCollection > staTracks)
edm::EDGetTokenT< reco::TrackCollection > theSTATracksToken_
Definition: Run.h:45