CMS 3D CMS Logo

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 // system includes
16 #include <memory>
17 #include <fstream>
18 
19 // user includes
37 
38 namespace reco {
39  class TransientTrack;
40 }
41 class NavigationSchool;
42 
44 public:
45  typedef reco::Track Track;
48  ~TrackEfficiencyMonitor() override;
49  void analyze(const edm::Event&, const edm::EventSetup&) override;
50 
51  void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
52 
53  enum SemiCylinder { Up, Down };
54  std::pair<TrajectoryStateOnSurface, const DetLayer*> findNextLayer(
55  TrajectoryStateOnSurface startTSOS, const std::vector<const DetLayer*>& trackCompatibleLayers, bool isUpMuon);
59  const NavigationSchool& navigationSchool);
61  bool trackerAcceptance(TrajectoryStateOnSurface theTSOS, double theRadius, double theMaxZ);
62  int compatibleLayers(const NavigationSchool& navigationSchool, TrajectoryStateOnSurface theTSOS);
63 
64 private:
65  // ----------member data ---------------------------
66 
67  std::string histname; //for naming the histograms
68 
71 
72  double theRadius_;
73  double theMaxZ_;
75  bool trackEfficiency_; //1 if one wants to measure the tracking efficiency
76  //0 if one wants to measure the muon reco efficiency
77 
82 
86 
94 
102 
113 
120 
122 
128 };
129 #endif
std::pair< TrajectoryStateOnSurface, const DetLayer * > findNextLayer(TrajectoryStateOnSurface startTSOS, const std::vector< const DetLayer *> &trackCompatibleLayers, bool isUpMuon)
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_
MonitorElement * StandaloneMuonPtEtaPhiHighPt
const Propagator * thePropagator
const DirectTrackerNavigation * theNavigation
void analyze(const edm::Event &, const edm::EventSetup &) override
fixed size matrix
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