CMS 3D CMS Logo

TrackBuildingAnalyzer.h
Go to the documentation of this file.
1 #ifndef TrackBuildingAnalyzer_H
2 #define TrackBuildingAnalyzer_H
3 // -*- C++ -*-
4 //
5 //
9 // Original Author: Ryan Kelley
10 // Created: Sat 28 13;30:00 CEST 2009
11 //
12 
13 #include <memory>
14 #include <fstream>
22 
33 
35 
37 public:
40  using MVACollection = std::vector<float>;
41  using QualityMaskCollection = std::vector<unsigned char>;
42 
44  ~TrackBuildingAnalyzer() = default;
45  void initHisto(DQMStore::IBooker& ibooker, const edm::ParameterSet&);
46  void analyze(const edm::Event& iEvent,
47  const edm::EventSetup& iSetup,
48  const TrajectorySeed& seed,
49  const SeedStopInfo& stopInfo,
50  const reco::BeamSpot& bs,
51  const edm::ESHandle<MagneticField>& theMF,
52  const edm::ESHandle<TransientTrackingRecHitBuilder>& theTTRHBuilder);
53  void analyze(const edm::Event& iEvent,
54  const edm::EventSetup& iSetup,
55  const TrackCandidate& candidate,
56  const reco::BeamSpot& bs,
57  const edm::ESHandle<MagneticField>& theMF,
58  const edm::ESHandle<TransientTrackingRecHitBuilder>& theTTRHBuilder);
60  const std::vector<const MVACollection*>& mvaCollections,
61  const std::vector<const QualityMaskCollection*>& qualityMaskCollections);
62  void analyze(const reco::CandidateView& regionCandidates);
65 
66 private:
67  void fillHistos(const edm::EventSetup& iSetup, const reco::Track& track, std::string sname);
68  void bookHistos(std::string sname, DQMStore::IBooker& ibooker);
69 
70  template <typename T>
71  void analyzeRegions(const T& regions);
72 
73  // ----------member data ---------------------------
74 
75  // Regions covered by tracking regions
76  MonitorElement* TrackingRegionEta = nullptr;
77  MonitorElement* TrackingRegionPhi = nullptr;
78  MonitorElement* TrackingRegionPhiVsEta = nullptr;
79  double etaBinWidth = 0.;
80  double phiBinWidth = 0.;
81  // Candidates used for tracking regions
82  MonitorElement* TrackingRegionCandidatePt = nullptr;
83  MonitorElement* TrackingRegionCandidateEta = nullptr;
84  MonitorElement* TrackingRegionCandidatePhi = nullptr;
85  MonitorElement* TrackingRegionCandidatePhiVsEta = nullptr;
86 
87  // Track Seeds
88  MonitorElement* SeedPt = nullptr;
89  MonitorElement* SeedEta = nullptr;
90  MonitorElement* SeedPhi = nullptr;
91  MonitorElement* SeedPhiVsEta = nullptr;
92  MonitorElement* SeedTheta = nullptr;
93  MonitorElement* SeedQ = nullptr;
94  MonitorElement* SeedDxy = nullptr;
95  MonitorElement* SeedDz = nullptr;
96  MonitorElement* NumberOfRecHitsPerSeed = nullptr;
97  MonitorElement* NumberOfRecHitsPerSeedVsPhiProfile = nullptr;
98  MonitorElement* NumberOfRecHitsPerSeedVsEtaProfile = nullptr;
99 
100  MonitorElement* seedStoppingSource = nullptr;
101  MonitorElement* seedStoppingSourceVsPhi = nullptr;
102  MonitorElement* seedStoppingSourceVsEta = nullptr;
103 
104  MonitorElement* numberOfTrajCandsPerSeed = nullptr;
105  MonitorElement* numberOfTrajCandsPerSeedVsPhi = nullptr;
106  MonitorElement* numberOfTrajCandsPerSeedVsEta = nullptr;
107 
109 
110  // Track Candidate
111  MonitorElement* TrackCandPt = nullptr;
112  MonitorElement* TrackCandEta = nullptr;
113  MonitorElement* TrackCandPhi = nullptr;
114  MonitorElement* TrackCandPhiVsEta = nullptr;
115  MonitorElement* TrackCandTheta = nullptr;
116  MonitorElement* TrackCandQ = nullptr;
117  MonitorElement* TrackCandDxy = nullptr;
118  MonitorElement* TrackCandDz = nullptr;
119  MonitorElement* NumberOfRecHitsPerTrackCand = nullptr;
120  MonitorElement* NumberOfRecHitsPerTrackCandVsPhiProfile = nullptr;
121  MonitorElement* NumberOfRecHitsPerTrackCandVsEtaProfile = nullptr;
122 
123  MonitorElement* stoppingSource = nullptr;
124  MonitorElement* stoppingSourceVSeta = nullptr;
125  MonitorElement* stoppingSourceVSphi = nullptr;
126 
127  std::vector<MonitorElement*> trackMVAs;
128  std::vector<MonitorElement*> trackMVAsHP;
129  std::vector<MonitorElement*> trackMVAsVsPtProfile;
130  std::vector<MonitorElement*> trackMVAsHPVsPtProfile;
131  std::vector<MonitorElement*> trackMVAsVsEtaProfile;
132  std::vector<MonitorElement*> trackMVAsHPVsEtaProfile;
133 
134  std::string histname; //for naming the histograms according to algorithm used
135 
136  //to disable some plots
137  const bool doAllPlots;
138  const bool doAllSeedPlots;
139  const bool doTCPlots;
140  const bool doAllTCPlots;
141  const bool doPT;
142  const bool doETA;
143  const bool doPHI;
144  const bool doPHIVsETA;
145  const bool doTheta;
146  const bool doQ;
147  const bool doDxy;
148  const bool doDz;
149  const bool doNRecHits;
150  const bool doProfPHI;
151  const bool doProfETA;
152  const bool doStopSource;
153  const bool doMVAPlots;
154  const bool doRegionPlots;
156 };
157 #endif
MonitorElement * NumberOfRecHitsPerTrackCandVsPhiProfile
MonitorElement * seedStoppingSourceVsPhi
MonitorElement * numberOfTrajCandsPerSeed
std::vector< unsigned char > QualityMaskCollection
MonitorElement * TrackingRegionCandidatePhiVsEta
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup, const TrajectorySeed &seed, const SeedStopInfo &stopInfo, const reco::BeamSpot &bs, const edm::ESHandle< MagneticField > &theMF, const edm::ESHandle< TransientTrackingRecHitBuilder > &theTTRHBuilder)
std::vector< MonitorElement * > trackMVAsVsPtProfile
MonitorElement * stoppingSourceVSphi
void initHisto(DQMStore::IBooker &ibooker, const edm::ParameterSet &)
std::vector< MonitorElement * > trackMVAs
MonitorElement * TrackCandPhiVsEta
MonitorElement * TrackingRegionCandidatePt
dqm::legacy::DQMStore DQMStore
MonitorElement * NumberOfRecHitsPerTrackCandVsEtaProfile
MonitorElement * stoppingSource
MonitorElement * NumberOfRecHitsPerSeed
int iEvent
Definition: GenABIO.cc:224
MonitorElement * NumberOfRecHitsPerSeedVsPhiProfile
void analyzeRegions(const T &regions)
std::vector< MonitorElement * > trackMVAsHP
MonitorElement * numberOfTrajCandsPerSeedVsPhi
MonitorElement * TrackingRegionPhi
TrackBuildingAnalyzer(const edm::ParameterSet &)
std::vector< MonitorElement * > trackMVAsVsEtaProfile
MonitorElement * numberOfTrajCandsPerSeedVsEta
std::vector< MonitorElement * > trackMVAsHPVsEtaProfile
MonitorElement * TrackingRegionPhiVsEta
MonitorElement * stoppingSourceVSeta
MonitorElement * TrackingRegionEta
void bookHistos(std::string sname, DQMStore::IBooker &ibooker)
std::vector< MonitorElement * > trackMVAsHPVsPtProfile
std::vector< float > MVACollection
MonitorElement * TrackCandTheta
MonitorElement * SeedPhiVsEta
MonitorElement * TrackingRegionCandidateEta
MonitorElement * seedStoppingSourceVsEta
void fillHistos(const edm::EventSetup &iSetup, const reco::Track &track, std::string sname)
MonitorElement * TrackingRegionCandidatePhi
MonitorElement * seedStoppingSourceVsNumberOfTrajCandsPerSeed
MonitorElement * NumberOfRecHitsPerSeedVsEtaProfile
long double T
MonitorElement * NumberOfRecHitsPerTrackCand
~TrackBuildingAnalyzer()=default
dqm::legacy::MonitorElement MonitorElement
MonitorElement * seedStoppingSource