CMS 3D CMS Logo

TrackBuildingAnalyzer.cc
Go to the documentation of this file.
12 
15 
20 #include <string>
21 #include "TMath.h"
22 
24  : doAllPlots(iConfig.getParameter<bool>("doAllPlots")),
25  doAllSeedPlots(iConfig.getParameter<bool>("doSeedParameterHistos")),
26  doTCPlots(iConfig.getParameter<bool>("doTrackCandHistos")),
27  doAllTCPlots(iConfig.getParameter<bool>("doAllTrackCandHistos")),
28  doPT(iConfig.getParameter<bool>("doSeedPTHisto")),
29  doETA(iConfig.getParameter<bool>("doSeedETAHisto")),
30  doPHI(iConfig.getParameter<bool>("doSeedPHIHisto")),
31  doPHIVsETA(iConfig.getParameter<bool>("doSeedPHIVsETAHisto")),
32  doTheta(iConfig.getParameter<bool>("doSeedThetaHisto")),
33  doQ(iConfig.getParameter<bool>("doSeedQHisto")),
34  doDxy(iConfig.getParameter<bool>("doSeedDxyHisto")),
35  doDz(iConfig.getParameter<bool>("doSeedDzHisto")),
36  doNRecHits(iConfig.getParameter<bool>("doSeedNRecHitsHisto")),
37  doProfPHI(iConfig.getParameter<bool>("doSeedNVsPhiProf")),
38  doProfETA(iConfig.getParameter<bool>("doSeedNVsEtaProf")),
39  doStopSource(iConfig.getParameter<bool>("doStopSource")),
40  doMVAPlots(iConfig.getParameter<bool>("doMVAPlots")),
41  doRegionPlots(iConfig.getParameter<bool>("doRegionPlots")),
42  doRegionCandidatePlots(iConfig.getParameter<bool>("doRegionCandidatePlots")) {}
43 
45  // parameters from the configuration
46  std::string AlgoName = iConfig.getParameter<std::string>("AlgoName");
47  std::string MEFolderName = iConfig.getParameter<std::string>("FolderName");
48 
49  // std::cout << "[TrackBuildingAnalyzer::beginRun] AlgoName: " << AlgoName << std::endl;
50 
51  // use the AlgoName and Quality Name
52  const std::string& CatagoryName = AlgoName;
53 
54  // get binning from the configuration
55  int TrackPtBin = iConfig.getParameter<int>("TrackPtBin");
56  double TrackPtMin = iConfig.getParameter<double>("TrackPtMin");
57  double TrackPtMax = iConfig.getParameter<double>("TrackPtMax");
58 
59  int PhiBin = iConfig.getParameter<int>("PhiBin");
60  double PhiMin = iConfig.getParameter<double>("PhiMin");
61  double PhiMax = iConfig.getParameter<double>("PhiMax");
62  phiBinWidth = PhiBin > 0 ? (PhiMax - PhiMin) / PhiBin : 0.;
63 
64  int EtaBin = iConfig.getParameter<int>("EtaBin");
65  double EtaMin = iConfig.getParameter<double>("EtaMin");
66  double EtaMax = iConfig.getParameter<double>("EtaMax");
67  etaBinWidth = EtaBin > 0 ? (EtaMax - EtaMin) / EtaBin : 0.;
68 
69  int ThetaBin = iConfig.getParameter<int>("ThetaBin");
70  double ThetaMin = iConfig.getParameter<double>("ThetaMin");
71  double ThetaMax = iConfig.getParameter<double>("ThetaMax");
72 
73  int TrackQBin = iConfig.getParameter<int>("TrackQBin");
74  double TrackQMin = iConfig.getParameter<double>("TrackQMin");
75  double TrackQMax = iConfig.getParameter<double>("TrackQMax");
76 
77  int SeedDxyBin = iConfig.getParameter<int>("SeedDxyBin");
78  double SeedDxyMin = iConfig.getParameter<double>("SeedDxyMin");
79  double SeedDxyMax = iConfig.getParameter<double>("SeedDxyMax");
80 
81  int SeedDzBin = iConfig.getParameter<int>("SeedDzBin");
82  double SeedDzMin = iConfig.getParameter<double>("SeedDzMin");
83  double SeedDzMax = iConfig.getParameter<double>("SeedDzMax");
84 
85  int SeedHitBin = iConfig.getParameter<int>("SeedHitBin");
86  double SeedHitMin = iConfig.getParameter<double>("SeedHitMin");
87  double SeedHitMax = iConfig.getParameter<double>("SeedHitMax");
88 
89  int TCDxyBin = iConfig.getParameter<int>("TCDxyBin");
90  double TCDxyMin = iConfig.getParameter<double>("TCDxyMin");
91  double TCDxyMax = iConfig.getParameter<double>("TCDxyMax");
92 
93  int TCDzBin = iConfig.getParameter<int>("TCDzBin");
94  double TCDzMin = iConfig.getParameter<double>("TCDzMin");
95  double TCDzMax = iConfig.getParameter<double>("TCDzMax");
96 
97  int TCHitBin = iConfig.getParameter<int>("TCHitBin");
98  double TCHitMin = iConfig.getParameter<double>("TCHitMin");
99  double TCHitMax = iConfig.getParameter<double>("TCHitMax");
100 
101  int MVABin = iConfig.getParameter<int>("MVABin");
102  double MVAMin = iConfig.getParameter<double>("MVAMin");
103  double MVAMax = iConfig.getParameter<double>("MVAMax");
104 
105  edm::InputTag seedProducer = iConfig.getParameter<edm::InputTag>("SeedProducer");
106  edm::InputTag tcProducer = iConfig.getParameter<edm::InputTag>("TCProducer");
107  std::vector<std::string> mvaProducers = iConfig.getParameter<std::vector<std::string> >("MVAProducers");
108  edm::InputTag regionProducer = iConfig.getParameter<edm::InputTag>("RegionProducer");
109 
110  // if (doAllPlots){doAllSeedPlots=true; doTCPlots=true;}
111 
112  ibooker.setCurrentFolder(MEFolderName);
113 
114  // book the Seed histograms
115  // ---------------------------------------------------------------------------------//
116  // std::cout << "[TrackBuildingAnalyzer::beginRun] MEFolderName: " << MEFolderName << std::endl;
117  ibooker.setCurrentFolder(MEFolderName + "/TrackBuilding");
118 
119  if (doAllSeedPlots || doPT) {
120  histname = "SeedPt_" + seedProducer.label() + "_";
121  SeedPt = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, TrackPtBin, TrackPtMin, TrackPtMax);
122  SeedPt->setAxisTitle("Seed p_{T} (GeV/c)", 1);
123  SeedPt->setAxisTitle("Number of Seeds", 2);
124  }
125 
126  if (doAllSeedPlots || doETA) {
127  histname = "SeedEta_" + seedProducer.label() + "_";
128  SeedEta = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax);
129  SeedEta->setAxisTitle("Seed #eta", 1);
130  SeedEta->setAxisTitle("Number of Seeds", 2);
131  }
132 
133  if (doAllSeedPlots || doPHI) {
134  histname = "SeedPhi_" + seedProducer.label() + "_";
135  SeedPhi = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, PhiBin, PhiMin, PhiMax);
136  SeedPhi->setAxisTitle("Seed #phi", 1);
137  SeedPhi->setAxisTitle("Number of Seed", 2);
138  }
139 
140  if (doAllSeedPlots || doPHIVsETA) {
141  histname = "SeedPhiVsEta_" + seedProducer.label() + "_";
142  SeedPhiVsEta = ibooker.book2D(
143  histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax);
144  SeedPhiVsEta->setAxisTitle("Seed #eta", 1);
145  SeedPhiVsEta->setAxisTitle("Seed #phi", 2);
146  }
147 
148  if (doAllSeedPlots || doTheta) {
149  histname = "SeedTheta_" + seedProducer.label() + "_";
150  SeedTheta = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, ThetaBin, ThetaMin, ThetaMax);
151  SeedTheta->setAxisTitle("Seed #theta", 1);
152  SeedTheta->setAxisTitle("Number of Seeds", 2);
153  }
154 
155  if (doAllSeedPlots || doQ) {
156  histname = "SeedQ_" + seedProducer.label() + "_";
157  SeedQ = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, TrackQBin, TrackQMin, TrackQMax);
158  SeedQ->setAxisTitle("Seed Charge", 1);
159  SeedQ->setAxisTitle("Number of Seeds", 2);
160  }
161 
162  if (doAllSeedPlots || doDxy) {
163  histname = "SeedDxy_" + seedProducer.label() + "_";
164  SeedDxy = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, SeedDxyBin, SeedDxyMin, SeedDxyMax);
165  SeedDxy->setAxisTitle("Seed d_{xy} (cm)", 1);
166  SeedDxy->setAxisTitle("Number of Seeds", 2);
167  }
168 
169  if (doAllSeedPlots || doDz) {
170  histname = "SeedDz_" + seedProducer.label() + "_";
171  SeedDz = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, SeedDzBin, SeedDzMin, SeedDzMax);
172  SeedDz->setAxisTitle("Seed d_{z} (cm)", 1);
173  SeedDz->setAxisTitle("Number of Seeds", 2);
174  }
175 
176  if (doAllSeedPlots || doNRecHits) {
177  histname = "NumberOfRecHitsPerSeed_" + seedProducer.label() + "_";
179  ibooker.book1D(histname + CatagoryName, histname + CatagoryName, SeedHitBin, SeedHitMin, SeedHitMax);
180  NumberOfRecHitsPerSeed->setAxisTitle("Number of RecHits per Seed", 1);
181  NumberOfRecHitsPerSeed->setAxisTitle("Number of Seeds", 2);
182  }
183 
184  if (doAllSeedPlots || doProfPHI) {
185  histname = "NumberOfRecHitsPerSeedVsPhiProfile_" + seedProducer.label() + "_";
187  histname + CatagoryName,
188  PhiBin,
189  PhiMin,
190  PhiMax,
191  SeedHitBin,
192  SeedHitMin,
193  SeedHitMax,
194  "s");
196  NumberOfRecHitsPerSeedVsPhiProfile->setAxisTitle("Number of RecHits of each Seed", 2);
197  }
198 
199  if (doAllSeedPlots || doProfETA) {
200  histname = "NumberOfRecHitsPerSeedVsEtaProfile_" + seedProducer.label() + "_";
202  histname + CatagoryName,
203  EtaBin,
204  EtaMin,
205  EtaMax,
206  SeedHitBin,
207  SeedHitMin,
208  SeedHitMax,
209  "s");
211  NumberOfRecHitsPerSeedVsEtaProfile->setAxisTitle("Number of RecHits of each Seed", 2);
212  }
213 
214  if (doRegionPlots) {
215  if (doAllSeedPlots || doETA) {
216  histname = "TrackingRegionEta_" + seedProducer.label() + "_";
217  TrackingRegionEta = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax);
218  TrackingRegionEta->setAxisTitle("TrackingRegion-covered #eta", 1);
219  TrackingRegionEta->setAxisTitle("Number of TrackingRegions", 2);
220  }
221 
222  if (doAllSeedPlots || doPHI) {
223  histname = "TrackingRegionPhi_" + seedProducer.label() + "_";
224  TrackingRegionPhi = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, PhiBin, PhiMin, PhiMax);
225  TrackingRegionPhi->setAxisTitle("TrackingRegion-covered #phi", 1);
226  TrackingRegionPhi->setAxisTitle("Number of TrackingRegions", 2);
227  }
228 
229  if (doAllSeedPlots || doPHIVsETA) {
230  histname = "TrackingRegionPhiVsEta_" + seedProducer.label() + "_";
231  TrackingRegionPhiVsEta = ibooker.book2D(
232  histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax);
233  TrackingRegionPhiVsEta->setAxisTitle("TrackingRegion-covered #eta", 1);
234  TrackingRegionPhiVsEta->setAxisTitle("TrackingRegion-covered #phi", 2);
235  }
236 
238  if (doAllSeedPlots || doPT) {
239  auto ptBin = iConfig.getParameter<int>("RegionCandidatePtBin");
240  auto ptMin = iConfig.getParameter<double>("RegionCandidatePtMin");
241  auto ptMax = iConfig.getParameter<double>("RegionCandidatePtMax");
242 
243  histname = "TrackingRegionCandidatePt_" + seedProducer.label() + "_";
245  ibooker.book1D(histname + CatagoryName, histname + CatagoryName, ptBin, ptMin, ptMax);
246  TrackingRegionCandidatePt->setAxisTitle("TrackingRegion Candidate p_{T} (GeV/c)", 1);
247  TrackingRegionCandidatePt->setAxisTitle("Number of TrackingRegion Candidates", 2);
248  }
249 
250  if (doAllSeedPlots || doETA) {
251  histname = "TrackingRegionCandidateEta_" + seedProducer.label() + "_";
253  ibooker.book1D(histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax);
254  TrackingRegionCandidateEta->setAxisTitle("TrackingRegion Candidate #eta", 1);
255  TrackingRegionCandidateEta->setAxisTitle("Number of TrackingRegion Candidates", 2);
256  }
257 
258  if (doAllSeedPlots || doPHI) {
259  histname = "TrackingRegionCandidatePhi_" + seedProducer.label() + "_";
261  ibooker.book1D(histname + CatagoryName, histname + CatagoryName, PhiBin, PhiMin, PhiMax);
262  TrackingRegionCandidatePhi->setAxisTitle("TrackingRegion Candidate #phi", 1);
263  TrackingRegionCandidatePhi->setAxisTitle("Number of TrackingRegion Candidates", 2);
264  }
265 
266  if (doAllSeedPlots || doPHIVsETA) {
267  histname = "TrackingRegionCandidatePhiVsEta_" + seedProducer.label() + "_";
269  histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax);
270  TrackingRegionCandidatePhiVsEta->setAxisTitle("TrackingRegion Candidate #eta", 1);
271  TrackingRegionCandidatePhiVsEta->setAxisTitle("TrackingRegion Candidate #phi", 2);
272  }
273  }
274  }
275 
276  if (doAllSeedPlots || doStopSource) {
277  const auto stopReasonSize = static_cast<unsigned int>(SeedStopReason::SIZE);
278 
279  const auto candsBin = iConfig.getParameter<int>("SeedCandBin");
280  const auto candsMin = iConfig.getParameter<double>("SeedCandMin");
281  const auto candsMax = iConfig.getParameter<double>("SeedCandMax");
282 
283  histname = "SeedStoppingSource_" + seedProducer.label() + "_";
285  ibooker.book1D(histname + CatagoryName, histname + CatagoryName, stopReasonSize, 0., stopReasonSize);
286  seedStoppingSource->setAxisTitle("Stopping reason", 1);
287  seedStoppingSource->setAxisTitle("Number of seeds", 2);
288 
289  histname = "SeedStoppingSourceVsPhi_" + seedProducer.label() + "_";
291  ibooker.bookProfile(histname + CatagoryName, histname + CatagoryName, PhiBin, PhiMin, PhiMax, 2, 0., 2.);
292  seedStoppingSourceVsPhi->setAxisTitle("seed #phi", 1);
293  seedStoppingSourceVsPhi->setAxisTitle("fraction stopped", 2);
294 
295  histname = "SeedStoppingSourceVsEta_" + seedProducer.label() + "_";
297  ibooker.bookProfile(histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax, 2, 0., 2.);
298  seedStoppingSourceVsEta->setAxisTitle("seed #eta", 1);
299  seedStoppingSourceVsEta->setAxisTitle("fraction stopped", 2);
300 
301  histname = "NumberOfTrajCandsPerSeed_" + seedProducer.label() + "_";
303  ibooker.book1D(histname + CatagoryName, histname + CatagoryName, candsBin, candsMin, candsMax);
304  numberOfTrajCandsPerSeed->setAxisTitle("Number of Trajectory Candidate for each Seed", 1);
305  numberOfTrajCandsPerSeed->setAxisTitle("Number of Seeds", 2);
306 
307  histname = "NumberOfTrajCandsPerSeedVsPhi_" + seedProducer.label() + "_";
309  histname + CatagoryName, histname + CatagoryName, PhiBin, PhiMin, PhiMax, candsBin, candsMin, candsMax);
311  numberOfTrajCandsPerSeedVsPhi->setAxisTitle("Number of Trajectory Candidates for each Seed", 2);
312 
313  histname = "NumberOfTrajCandsPerSeedVsEta_" + seedProducer.label() + "_";
315  histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax, candsBin, candsMin, candsMax);
317  numberOfTrajCandsPerSeedVsEta->setAxisTitle("Number of Trajectory Candidates for each Seed", 2);
318 
319  histname = "SeedStoppingSourceVsNumberOfTrajCandsPerSeed_" + seedProducer.label() + "_";
321  ibooker.bookProfile(histname + CatagoryName, histname + CatagoryName, candsBin, candsMin, candsMax, 2, 0., 2.);
322  seedStoppingSourceVsNumberOfTrajCandsPerSeed->setAxisTitle("Number of Trajectory Candidates for each Seed", 1);
324 
325  for (unsigned int i = 0; i < stopReasonSize; ++i) {
327  }
328  }
329 
330  if (doAllTCPlots || doStopSource) {
331  // DataFormats/TrackReco/interface/TrajectoryStopReasons.h
332  size_t StopReasonNameSize = sizeof(StopReasonName::StopReasonName) / sizeof(std::string);
333 
334  histname = "StoppingSource_" + seedProducer.label() + "_";
335  stoppingSource = ibooker.book1D(
336  histname + CatagoryName, histname + CatagoryName, StopReasonNameSize, 0., double(StopReasonNameSize));
337  stoppingSource->setAxisTitle("stopping reason", 1);
338  stoppingSource->setAxisTitle("Number of Tracks", 2);
339 
340  histname = "StoppingSourceVSeta_" + seedProducer.label() + "_";
342  ibooker.bookProfile(histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax, 2, 0., 2.);
343  stoppingSourceVSeta->setAxisTitle("track #eta", 1);
344  stoppingSourceVSeta->setAxisTitle("fraction stopped", 2);
345 
346  histname = "StoppingSourceVSphi_" + seedProducer.label() + "_";
348  ibooker.bookProfile(histname + CatagoryName, histname + CatagoryName, PhiBin, PhiMin, PhiMax, 2, 0., 2.);
349  stoppingSourceVSphi->setAxisTitle("track #phi", 1);
350  stoppingSourceVSphi->setAxisTitle("fraction stopped", 2);
351 
352  for (size_t ibin = 0; ibin < StopReasonNameSize; ibin++) {
354  }
355  }
356 
357  // book the TrackCandidate histograms
358  // ---------------------------------------------------------------------------------//
359 
360  if (doTCPlots) {
361  ibooker.setCurrentFolder(MEFolderName + "/TrackBuilding");
362 
363  histname = "TrackCandPt_" + tcProducer.label() + "_";
364  TrackCandPt = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, TrackPtBin, TrackPtMin, TrackPtMax);
365  TrackCandPt->setAxisTitle("Track Candidate p_{T} (GeV/c)", 1);
366  TrackCandPt->setAxisTitle("Number of Track Candidates", 2);
367 
368  histname = "TrackCandEta_" + tcProducer.label() + "_";
369  TrackCandEta = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax);
370  TrackCandEta->setAxisTitle("Track Candidate #eta", 1);
371  TrackCandEta->setAxisTitle("Number of Track Candidates", 2);
372 
373  histname = "TrackCandPhi_" + tcProducer.label() + "_";
374  TrackCandPhi = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, PhiBin, PhiMin, PhiMax);
375  TrackCandPhi->setAxisTitle("Track Candidate #phi", 1);
376  TrackCandPhi->setAxisTitle("Number of Track Candidates", 2);
377 
378  if (doTheta) {
379  histname = "TrackCandTheta_" + tcProducer.label() + "_";
380  TrackCandTheta = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, ThetaBin, ThetaMin, ThetaMax);
381  TrackCandTheta->setAxisTitle("Track Candidate #theta", 1);
382  TrackCandTheta->setAxisTitle("Number of Track Candidates", 2);
383  }
384 
385  if (doAllTCPlots) {
386  histname = "TrackCandQ_" + tcProducer.label() + "_";
387  TrackCandQ = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, TrackQBin, TrackQMin, TrackQMax);
388  TrackCandQ->setAxisTitle("Track Candidate Charge", 1);
389  TrackCandQ->setAxisTitle("Number of Track Candidates", 2);
390 
391  histname = "TrackCandDxy_" + tcProducer.label() + "_";
392  TrackCandDxy = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, TCDxyBin, TCDxyMin, TCDxyMax);
393  TrackCandDxy->setAxisTitle("Track Candidate d_{xy} (cm)", 1);
394  TrackCandDxy->setAxisTitle("Number of Track Candidates", 2);
395 
396  histname = "TrackCandDz_" + tcProducer.label() + "_";
397  TrackCandDz = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, TCDzBin, TCDzMin, TCDzMax);
398  TrackCandDz->setAxisTitle("Track Candidate d_{z} (cm)", 1);
399  TrackCandDz->setAxisTitle("Number of Track Candidates", 2);
400 
401  histname = "NumberOfRecHitsPerTrackCand_" + tcProducer.label() + "_";
403  ibooker.book1D(histname + CatagoryName, histname + CatagoryName, TCHitBin, TCHitMin, TCHitMax);
404  NumberOfRecHitsPerTrackCand->setAxisTitle("Number of RecHits per Track Candidate", 1);
405  NumberOfRecHitsPerTrackCand->setAxisTitle("Number of Track Candidates", 2);
406 
407  histname = "NumberOfRecHitsPerTrackCandVsPhiProfile_" + tcProducer.label() + "_";
409  histname + CatagoryName, histname + CatagoryName, PhiBin, PhiMin, PhiMax, TCHitBin, TCHitMin, TCHitMax, "s");
410  NumberOfRecHitsPerTrackCandVsPhiProfile->setAxisTitle("Track Candidate #phi", 1);
411  NumberOfRecHitsPerTrackCandVsPhiProfile->setAxisTitle("Number of RecHits of each Track Candidate", 2);
412 
413  histname = "NumberOfRecHitsPerTrackCandVsEtaProfile_" + tcProducer.label() + "_";
415  histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax, TCHitBin, TCHitMin, TCHitMax, "s");
416  NumberOfRecHitsPerTrackCandVsEtaProfile->setAxisTitle("Track Candidate #eta", 1);
417  NumberOfRecHitsPerTrackCandVsEtaProfile->setAxisTitle("Number of RecHits of each Track Candidate", 2);
418  }
419 
420  histname = "TrackCandPhiVsEta_" + tcProducer.label() + "_";
421  TrackCandPhiVsEta = ibooker.book2D(
422  histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax);
423  TrackCandPhiVsEta->setAxisTitle("Track Candidate #eta", 1);
424  TrackCandPhiVsEta->setAxisTitle("Track Candidate #phi", 2);
425 
426  if (doAllTCPlots || doMVAPlots) {
427  for (size_t i = 1, end = mvaProducers.size(); i <= end; ++i) {
428  auto num = std::to_string(i);
429  std::string pfix;
430 
431  if (i == 1) {
432  trackMVAsHP.push_back(nullptr);
433  trackMVAsHPVsPtProfile.push_back(nullptr);
434  trackMVAsHPVsEtaProfile.push_back(nullptr);
435  } else {
436  pfix = " (not loose-selected)";
437  std::string pfix2 = " (not HP-selected)";
438  histname = "TrackMVA" + num + "HP_" + tcProducer.label() + "_";
439  trackMVAsHP.push_back(
440  ibooker.book1D(histname + CatagoryName, histname + CatagoryName + pfix2, MVABin, MVAMin, MVAMax));
441  trackMVAsHP.back()->setAxisTitle("Track selection MVA" + num, 1);
442  trackMVAsHP.back()->setAxisTitle("Number of tracks", 2);
443 
444  histname = "TrackMVA" + num + "HPVsPtProfile_" + tcProducer.label() + "_";
445  trackMVAsHPVsPtProfile.push_back(ibooker.bookProfile(histname + CatagoryName,
446  histname + CatagoryName + pfix2,
447  TrackPtBin,
448  TrackPtMin,
449  TrackPtMax,
450  MVABin,
451  MVAMin,
452  MVAMax));
453  trackMVAsHPVsPtProfile.back()->setAxisTitle("Track p_{T} (GeV/c)", 1);
454  trackMVAsHPVsPtProfile.back()->setAxisTitle("Track selection MVA" + num, 2);
455 
456  histname = "TrackMVA" + num + "HPVsEtaProfile_" + tcProducer.label() + "_";
457  trackMVAsHPVsEtaProfile.push_back(ibooker.bookProfile(
458  histname + CatagoryName, histname + CatagoryName + pfix2, EtaBin, EtaMin, EtaMax, MVABin, MVAMin, MVAMax));
459  trackMVAsHPVsEtaProfile.back()->setAxisTitle("Track #eta", 1);
460  trackMVAsHPVsEtaProfile.back()->setAxisTitle("Track selection MVA" + num, 2);
461  }
462 
463  histname = "TrackMVA" + num + "_" + tcProducer.label() + "_";
464  trackMVAs.push_back(
465  ibooker.book1D(histname + CatagoryName, histname + CatagoryName + pfix, MVABin, MVAMin, MVAMax));
466  trackMVAs.back()->setAxisTitle("Track selection MVA" + num, 1);
467  trackMVAs.back()->setAxisTitle("Number of tracks", 2);
468 
469  histname = "TrackMVA" + num + "VsPtProfile_" + tcProducer.label() + "_";
470  trackMVAsVsPtProfile.push_back(ibooker.bookProfile(histname + CatagoryName,
471  histname + CatagoryName + pfix,
472  TrackPtBin,
473  TrackPtMin,
474  TrackPtMax,
475  MVABin,
476  MVAMin,
477  MVAMax));
478  trackMVAsVsPtProfile.back()->setAxisTitle("Track p_{T} (GeV/c)", 1);
479  trackMVAsVsPtProfile.back()->setAxisTitle("Track selection MVA" + num, 2);
480 
481  histname = "TrackMVA" + num + "VsEtaProfile_" + tcProducer.label() + "_";
482  trackMVAsVsEtaProfile.push_back(ibooker.bookProfile(
483  histname + CatagoryName, histname + CatagoryName + pfix, EtaBin, EtaMin, EtaMax, MVABin, MVAMin, MVAMax));
484  trackMVAsVsEtaProfile.back()->setAxisTitle("Track #eta", 1);
485  trackMVAsVsEtaProfile.back()->setAxisTitle("Track selection MVA" + num, 2);
486  }
487  }
488  }
489 }
490 
491 // -- Analyse
492 // ---------------------------------------------------------------------------------//
494  const edm::EventSetup& iSetup,
495  const TrajectorySeed& candidate,
496  const SeedStopInfo& stopInfo,
497  const reco::BeamSpot& bs,
498  const MagneticField& theMF,
499  const TransientTrackingRecHitBuilder& theTTRHBuilder) {
500  TSCBLBuilderNoMaterial tscblBuilder;
501 
502  //get parameters and errors from the candidate state
503  auto const& theG = ((TkTransientTrackingRecHitBuilder const*)(&theTTRHBuilder))->geometry();
504  auto const& candSS = candidate.startingState();
506  trajectoryStateTransform::transientState(candSS, &(theG->idToDet(candSS.detId())->surface()), &theMF);
507  TrajectoryStateClosestToBeamLine tsAtClosestApproachSeed =
508  tscblBuilder(*state.freeState(), bs); //as in TrackProducerAlgorithm
509  if (!(tsAtClosestApproachSeed.isValid())) {
510  edm::LogVerbatim("TrackBuilding") << "TrajectoryStateClosestToBeamLine not valid";
511  return;
512  }
513  GlobalPoint v0 = tsAtClosestApproachSeed.trackStateAtPCA().position();
514  GlobalVector p = tsAtClosestApproachSeed.trackStateAtPCA().momentum();
515  GlobalPoint v(v0.x() - bs.x0(), v0.y() - bs.y0(), v0.z() - bs.z0());
516 
517  double pt = sqrt(state.globalMomentum().perp2());
518  double eta = state.globalPosition().eta();
519  double phi = state.globalPosition().phi();
520  double theta = state.globalPosition().theta();
521  //double pm = sqrt(state.globalMomentum().mag2());
522  //double pz = state.globalMomentum().z();
523  //double qoverp = tsAtClosestApproachSeed.trackStateAtPCA().charge()/p.mag();
524  //double theta = p.theta();
525  //double lambda = M_PI/2-p.theta();
526  double numberOfHits = candidate.nHits();
527  double dxy = (-v.x() * sin(p.phi()) + v.y() * cos(p.phi()));
528  double dz = v.z() - (v.x() * p.x() + v.y() * p.y()) / p.perp() * p.z() / p.perp();
529 
530  // fill the ME's
531  if (doAllSeedPlots || doQ)
532  SeedQ->Fill(state.charge());
533  if (doAllSeedPlots || doPT)
534  SeedPt->Fill(pt);
535  if (doAllSeedPlots || doETA)
536  SeedEta->Fill(eta);
537  if (doAllSeedPlots || doPHI)
538  SeedPhi->Fill(phi);
539  if (doAllSeedPlots || doPHIVsETA)
541  if (doAllSeedPlots || doTheta)
542  SeedTheta->Fill(theta);
543  if (doAllSeedPlots || doDxy)
544  SeedDxy->Fill(dxy);
545  if (doAllSeedPlots || doDz)
546  SeedDz->Fill(dz);
547  if (doAllSeedPlots || doNRecHits)
548  NumberOfRecHitsPerSeed->Fill(numberOfHits);
549  if (doAllSeedPlots || doProfETA)
551  if (doAllSeedPlots || doProfPHI)
553  if (doAllSeedPlots || doStopSource) {
554  const double stopped = stopInfo.stopReason() == SeedStopReason::NOT_STOPPED ? 0. : 1.;
555  seedStoppingSource->Fill(stopInfo.stopReasonUC());
556  seedStoppingSourceVsPhi->Fill(phi, stopped);
557  seedStoppingSourceVsEta->Fill(eta, stopped);
558 
559  const auto ncands = stopInfo.candidatesPerSeed();
563 
565  }
566 }
567 
568 // -- Analyse
569 // ---------------------------------------------------------------------------------//
571  const edm::EventSetup& iSetup,
572  const TrackCandidate& candidate,
573  const reco::BeamSpot& bs,
574  const MagneticField& theMF,
575  const TransientTrackingRecHitBuilder& theTTRHBuilder) {
576  TSCBLBuilderNoMaterial tscblBuilder;
577 
578  //get parameters and errors from the candidate state
579  auto const& theG = ((TkTransientTrackingRecHitBuilder const*)(&theTTRHBuilder))->geometry();
580  auto const& candSS = candidate.trajectoryStateOnDet();
582  trajectoryStateTransform::transientState(candSS, &(theG->idToDet(candSS.detId())->surface()), &theMF);
583  TrajectoryStateClosestToBeamLine tsAtClosestApproachTrackCand =
584  tscblBuilder(*state.freeState(), bs); //as in TrackProducerAlgorithm
585  if (!(tsAtClosestApproachTrackCand.isValid())) {
586  edm::LogVerbatim("TrackBuilding") << "TrajectoryStateClosestToBeamLine not valid";
587  return;
588  }
589  GlobalPoint v0 = tsAtClosestApproachTrackCand.trackStateAtPCA().position();
590  GlobalVector p = tsAtClosestApproachTrackCand.trackStateAtPCA().momentum();
591  GlobalPoint v(v0.x() - bs.x0(), v0.y() - bs.y0(), v0.z() - bs.z0());
592 
593  double pt = sqrt(state.globalMomentum().perp2());
594  double eta = state.globalPosition().eta();
595  double phi = state.globalPosition().phi();
596  double theta = state.globalPosition().theta();
597  //double pm = sqrt(state.globalMomentum().mag2());
598  //double pz = state.globalMomentum().z();
599  //double qoverp = tsAtClosestApproachTrackCand.trackStateAtPCA().charge()/p.mag();
600  //double theta = p.theta();
601  //double lambda = M_PI/2-p.theta();
602  double numberOfHits = candidate.nRecHits();
603  double dxy = (-v.x() * sin(p.phi()) + v.y() * cos(p.phi()));
604 
605  double dz = v.z() - (v.x() * p.x() + v.y() * p.y()) / p.perp() * p.z() / p.perp();
606 
607  if (doAllTCPlots || doStopSource) {
608  // stopping source
609  int max = stoppingSource->getNbinsX();
610  double stop = candidate.stopReason() > max ? double(max - 1) : static_cast<double>(candidate.stopReason());
611  double stopped = int(StopReason::NOT_STOPPED) == candidate.stopReason() ? 0. : 1.;
612  stoppingSource->Fill(stop);
613  stoppingSourceVSeta->Fill(eta, stopped);
614  stoppingSourceVSphi->Fill(phi, stopped);
615  }
616 
617  if (doTCPlots) {
618  // fill the ME's
619  if (doAllTCPlots)
620  TrackCandQ->Fill(state.charge());
621  TrackCandPt->Fill(pt);
625  if (doTheta)
627  if (doAllTCPlots)
629  if (doAllTCPlots)
630  TrackCandDz->Fill(dz);
631  if (doAllTCPlots)
632  NumberOfRecHitsPerTrackCand->Fill(numberOfHits);
633  if (doAllTCPlots)
635  if (doAllTCPlots)
637  }
638 }
639 
640 namespace {
641  bool trackSelected(unsigned char mask, unsigned char qual) { return mask & 1 << qual; }
642 } // namespace
644  const std::vector<const MVACollection*>& mvaCollections,
645  const std::vector<const QualityMaskCollection*>& qualityMaskCollections) {
646  if (!(doAllTCPlots || doMVAPlots))
647  return;
648  if (trackCollection.empty())
649  return;
650 
651  const auto ntracks = trackCollection.size();
652  const auto nmva = mvaCollections.size();
653  for (const auto mva : mvaCollections) {
654  if (mva->size() != ntracks) {
655  edm::LogError("LogicError") << "TrackBuildingAnalyzer: Incompatible size of MVACollection, " << mva->size()
656  << " differs from the size of the track collection " << ntracks;
657  return;
658  }
659  }
660  for (const auto qual : qualityMaskCollections) {
661  if (qual->size() != ntracks) {
662  edm::LogError("LogicError") << "TrackBuildingAnalyzer: Incompatible size of QualityMaskCollection, "
663  << qual->size() << " differs from the size of the track collection " << ntracks;
664  return;
665  }
666  }
667 
668  for (size_t iTrack = 0; iTrack < ntracks; ++iTrack) {
669  // Fill MVA1 histos with all tracks, MVA2 histos only with tracks
670  // not selected by MVA1 etc
671  bool selectedLoose = false;
672  bool selectedHP = false;
673 
674  const auto pt = trackCollection[iTrack].pt();
675  const auto eta = trackCollection[iTrack].eta();
676 
677  for (size_t iMVA = 0; iMVA < nmva; ++iMVA) {
678  const auto mva = (*(mvaCollections[iMVA]))[iTrack];
679  if (!selectedLoose) {
680  trackMVAs[iMVA]->Fill(mva);
681  trackMVAsVsPtProfile[iMVA]->Fill(pt, mva);
682  trackMVAsVsEtaProfile[iMVA]->Fill(eta, mva);
683  }
684  if (iMVA >= 1 && !selectedHP) {
685  trackMVAsHP[iMVA]->Fill(mva);
686  trackMVAsHPVsPtProfile[iMVA]->Fill(pt, mva);
687  trackMVAsHPVsEtaProfile[iMVA]->Fill(eta, mva);
688  }
689 
690  const auto qual = (*(qualityMaskCollections)[iMVA])[iTrack];
691  selectedLoose |= trackSelected(qual, reco::TrackBase::loose);
692  selectedHP |= trackSelected(qual, reco::TrackBase::highPurity);
693 
694  if (selectedLoose && selectedHP)
695  break;
696  }
697  }
698 }
699 
702  return;
703 
704  for (const auto& candidate : regionCandidates) {
705  const auto eta = candidate.eta();
706  const auto phi = candidate.phi();
707  if (doAllSeedPlots || doPT)
708  TrackingRegionCandidatePt->Fill(candidate.pt());
709  if (doAllSeedPlots || doETA)
711  if (doAllSeedPlots || doPHI)
713  if (doAllSeedPlots || doPHIVsETA)
715  }
716 }
717 
720 
721 namespace {
722  const TrackingRegion* regionPtr(const TrackingRegion& region) { return &region; }
723  const TrackingRegion* regionPtr(const TrackingRegionsSeedingLayerSets::RegionLayers& regionLayers) {
724  return &(regionLayers.region());
725  }
726 } // namespace
727 
728 template <typename T>
730  if (!doRegionPlots && etaBinWidth <= 0. && phiBinWidth <= 0.)
731  return;
732 
733  for (const auto& tmp : regions) {
734  if (const auto* etaPhiRegion = dynamic_cast<const RectangularEtaPhiTrackingRegion*>(regionPtr(tmp))) {
735  const auto& etaRange = etaPhiRegion->etaRange();
736  const auto& phiMargin = etaPhiRegion->phiMargin();
737 
738  const auto etaMin = etaRange.min();
739  const auto etaMax = etaRange.max();
740 
741  const auto phiMin = etaPhiRegion->phiDirection() - phiMargin.left();
742  const auto phiMax = etaPhiRegion->phiDirection() + phiMargin.right();
743 
744  if (doAllSeedPlots || doETA) {
745  for (auto eta = etaMin; eta < etaMax; eta += etaBinWidth) {
747  }
748  }
749  if (doAllSeedPlots || doPHI) {
750  for (auto phi = phiMin; phi < phiMax; phi += phiBinWidth) {
752  }
753  }
754  if (doAllSeedPlots || doPHIVsETA) {
755  for (auto phi = phiMin; phi < phiMax; phi += phiBinWidth) {
756  const auto reducedPhi = reco::reduceRange(phi);
757  for (auto eta = etaMin; eta < etaMax; eta += etaBinWidth) {
758  TrackingRegionPhiVsEta->Fill(eta, reducedPhi);
759  }
760  }
761  }
762  }
763  }
764 }
Vector3DBase
Definition: Vector3DBase.h:8
TrackCandidate::trajectoryStateOnDet
PTrajectoryStateOnDet const & trajectoryStateOnDet() const
Definition: TrackCandidate.h:55
TrackBuildingAnalyzer::SeedPhi
MonitorElement * SeedPhi
Definition: TrackBuildingAnalyzer.h:90
TSCBLBuilderNoMaterial.h
FreeTrajectoryState::momentum
GlobalVector momentum() const
Definition: FreeTrajectoryState.h:68
TrajectoryStateClosestToBeamLine
Definition: TrajectoryStateClosestToBeamLine.h:15
electrons_cff.bool
bool
Definition: electrons_cff.py:366
V0Monitor_cff.v0
v0
Definition: V0Monitor_cff.py:7
ALCARECOTkAlBeamHalo_cff.etaMin
etaMin
GeV.
Definition: ALCARECOTkAlBeamHalo_cff.py:32
mps_fire.i
i
Definition: mps_fire.py:428
TrackBuildingAnalyzer::TrackingRegionCandidateEta
MonitorElement * TrackingRegionCandidateEta
Definition: TrackBuildingAnalyzer.h:83
MessageLogger.h
MonitorTrackSTAMuons_cfi.TCDxyBin
TCDxyBin
Definition: MonitorTrackSTAMuons_cfi.py:314
reco::TrackBase::loose
Definition: TrackBase.h:152
TrackBuildingAnalyzer::doDxy
const bool doDxy
Definition: TrackBuildingAnalyzer.h:147
TrackBuildingAnalyzer::TrackCandPt
MonitorElement * TrackCandPt
Definition: TrackBuildingAnalyzer.h:111
MonitorTrackSTAMuons_cfi.SeedHitMin
SeedHitMin
Definition: MonitorTrackSTAMuons_cfi.py:101
generateTowerEtThresholdLUT.etaRange
etaRange
Definition: generateTowerEtThresholdLUT.py:55
TrackBuildingAnalyzer::TrackCandDxy
MonitorElement * TrackCandDxy
Definition: TrackBuildingAnalyzer.h:117
TrackBuildingAnalyzer::NumberOfRecHitsPerTrackCand
MonitorElement * NumberOfRecHitsPerTrackCand
Definition: TrackBuildingAnalyzer.h:119
TrackingRegionsSeedingLayerSets
Definition: TrackingRegionsSeedingLayerSets.h:10
MonitorTrackSTAMuons_cfi.TrackQMin
TrackQMin
Definition: MonitorTrackSTAMuons_cfi.py:96
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
TrackBuildingAnalyzer::seedStoppingSourceVsEta
MonitorElement * seedStoppingSourceVsEta
Definition: TrackBuildingAnalyzer.h:102
TrajectorySeed::nHits
unsigned int nHits() const
Definition: TrajectorySeed.h:53
deltaPhi.h
TrackBuildingAnalyzer.h
MonitorTrackSTAMuons_cfi.SeedDzBin
SeedDzBin
Definition: MonitorTrackSTAMuons_cfi.py:309
TransientRecHitRecord.h
TrackBuildingAnalyzer::phiBinWidth
double phiBinWidth
Definition: TrackBuildingAnalyzer.h:80
TrackBuildingAnalyzer::doQ
const bool doQ
Definition: TrackBuildingAnalyzer.h:146
TrackBuildingAnalyzer::seedStoppingSourceVsPhi
MonitorElement * seedStoppingSourceVsPhi
Definition: TrackBuildingAnalyzer.h:101
beam_dqm_sourceclient-live_cfg.TrackPtBin
TrackPtBin
Definition: beam_dqm_sourceclient-live_cfg.py:203
StopReasonName::StopReasonName
static const std::string StopReasonName[]
Definition: TrajectoryStopReasons.h:25
ptMin
constexpr float ptMin
Definition: PhotonIDValueMapProducer.cc:155
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
TrackBuildingAnalyzer::doNRecHits
const bool doNRecHits
Definition: TrackBuildingAnalyzer.h:149
TrackBuildingAnalyzer::etaBinWidth
double etaBinWidth
Definition: TrackBuildingAnalyzer.h:79
MonitorTrackSTAMuons_cfi.SeedHitBin
SeedHitBin
Definition: MonitorTrackSTAMuons_cfi.py:99
SeedStopInfo::candidatesPerSeed
unsigned short candidatesPerSeed() const
Definition: SeedStopInfo.h:12
relativeConstraints.geometry
geometry
Definition: relativeConstraints.py:39
DQMStore.h
TrackBuildingAnalyzer::histname
std::string histname
Definition: TrackBuildingAnalyzer.h:134
TrackBuildingAnalyzer::TrackingRegionPhiVsEta
MonitorElement * TrackingRegionPhiVsEta
Definition: TrackBuildingAnalyzer.h:78
beam_dqm_sourceclient-live_cfg.TrackPtMin
TrackPtMin
Definition: beam_dqm_sourceclient-live_cfg.py:201
MonitorTrackSTAMuons_cfi.SeedDzMax
SeedDzMax
Definition: MonitorTrackSTAMuons_cfi.py:310
TrackBuildingAnalyzer::doRegionPlots
const bool doRegionPlots
Definition: TrackBuildingAnalyzer.h:154
TrackBuildingAnalyzer::NumberOfRecHitsPerSeedVsPhiProfile
MonitorElement * NumberOfRecHitsPerSeedVsPhiProfile
Definition: TrackBuildingAnalyzer.h:97
MonitorTrackInnerTrackMuons_cff.EtaBin
EtaBin
Definition: MonitorTrackInnerTrackMuons_cff.py:64
TrackBuildingAnalyzer::trackMVAsVsEtaProfile
std::vector< MonitorElement * > trackMVAsVsEtaProfile
Definition: TrackBuildingAnalyzer.h:131
TrackBuildingAnalyzer::TrackingRegionEta
MonitorElement * TrackingRegionEta
Definition: TrackBuildingAnalyzer.h:76
FreeTrajectoryState::position
GlobalPoint position() const
Definition: FreeTrajectoryState.h:67
vertices_cff.ntracks
ntracks
Definition: vertices_cff.py:34
TransientTrack.h
findQualityFiles.v
v
Definition: findQualityFiles.py:179
beam_dqm_sourceclient-live_cfg.mva
mva
Definition: beam_dqm_sourceclient-live_cfg.py:127
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
HLTSiStripMonitoring_cff.AlgoName
AlgoName
Definition: HLTSiStripMonitoring_cff.py:232
TrackBuildingAnalyzer::doPHIVsETA
const bool doPHIVsETA
Definition: TrackBuildingAnalyzer.h:144
muonRecoAnalyzer_cfi.ptBin
ptBin
Definition: muonRecoAnalyzer_cfi.py:45
MonitorTrackSTAMuons_cfi.TrackQMax
TrackQMax
Definition: MonitorTrackSTAMuons_cfi.py:95
TrackingMonitor_cfi.doRegionPlots
doRegionPlots
Definition: TrackingMonitor_cfi.py:454
MonitorTrackSTAMuons_cfi.TrackQBin
TrackQBin
Definition: MonitorTrackSTAMuons_cfi.py:94
SeedStopInfo
Definition: SeedStopInfo.h:6
TkTransientTrackingRecHitBuilder.h
TkTransientTrackingRecHitBuilder
Definition: TkTransientTrackingRecHitBuilder.h:15
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
TrackBuildingAnalyzer::NumberOfRecHitsPerSeedVsEtaProfile
MonitorElement * NumberOfRecHitsPerSeedVsEtaProfile
Definition: TrackBuildingAnalyzer.h:98
SeedStopReason::NOT_STOPPED
MonitorTrackSTAMuons_cfi.ThetaMin
ThetaMin
Definition: MonitorTrackSTAMuons_cfi.py:221
TrackBuildingAnalyzer::doTCPlots
const bool doTCPlots
Definition: TrackBuildingAnalyzer.h:139
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
MonitorTrackSTAMuons_cfi.PhiMax
PhiMax
Definition: MonitorTrackSTAMuons_cfi.py:230
cms::cuda::bs
bs
Definition: HistoContainer.h:76
TrackBuildingAnalyzer::trackMVAsVsPtProfile
std::vector< MonitorElement * > trackMVAsVsPtProfile
Definition: TrackBuildingAnalyzer.h:129
TrackBuildingAnalyzer::NumberOfRecHitsPerTrackCandVsPhiProfile
MonitorElement * NumberOfRecHitsPerTrackCandVsPhiProfile
Definition: TrackBuildingAnalyzer.h:120
TrackBuildingAnalyzer::SeedPt
MonitorElement * SeedPt
Definition: TrackBuildingAnalyzer.h:88
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
TrackBuildingAnalyzer::TrackCandDz
MonitorElement * TrackCandDz
Definition: TrackBuildingAnalyzer.h:118
BeamSpot.h
AlignmentTrackSelector_cfi.ptMax
ptMax
Definition: AlignmentTrackSelector_cfi.py:12
TrackBuildingAnalyzer::numberOfTrajCandsPerSeedVsPhi
MonitorElement * numberOfTrajCandsPerSeedVsPhi
Definition: TrackBuildingAnalyzer.h:105
TrackBuildingAnalyzer::doStopSource
const bool doStopSource
Definition: TrackBuildingAnalyzer.h:152
TrackBuildingAnalyzer::doAllTCPlots
const bool doAllTCPlots
Definition: TrackBuildingAnalyzer.h:140
TrackBuildingAnalyzer::TrackingRegionPhi
MonitorElement * TrackingRegionPhi
Definition: TrackBuildingAnalyzer.h:77
PVValHelper::eta
Definition: PVValidationHelpers.h:70
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
AlignmentTrackSelector_cfi.phiMin
phiMin
Definition: AlignmentTrackSelector_cfi.py:18
mps_fire.end
end
Definition: mps_fire.py:242
reco::BeamSpot
Definition: BeamSpot.h:21
AlignmentTrackSelector_cfi.phiMax
phiMax
Definition: AlignmentTrackSelector_cfi.py:17
dqm::implementation::IBooker::bookProfile
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:322
beam_dqm_sourceclient-live_cfg.TrackPtMax
TrackPtMax
Definition: beam_dqm_sourceclient-live_cfg.py:202
TrackBuildingAnalyzer::TrackingRegionCandidatePhiVsEta
MonitorElement * TrackingRegionCandidatePhiVsEta
Definition: TrackBuildingAnalyzer.h:85
TrackBuildingAnalyzer::TrackingRegionCandidatePt
MonitorElement * TrackingRegionCandidatePt
Definition: TrackBuildingAnalyzer.h:82
TrackBuildingAnalyzer::SeedTheta
MonitorElement * SeedTheta
Definition: TrackBuildingAnalyzer.h:92
theta
Geom::Theta< T > theta() const
Definition: Basic3DVectorLD.h:150
TrackBuildingAnalyzer::doDz
const bool doDz
Definition: TrackBuildingAnalyzer.h:148
MonitorTrackSTAMuons_cfi.SeedDxyBin
SeedDxyBin
Definition: MonitorTrackSTAMuons_cfi.py:304
Point3DBase< float, GlobalTag >
TrackingMonitor_cfi.MVAMin
MVAMin
Definition: TrackingMonitor_cfi.py:370
TrackBuildingAnalyzer::stoppingSourceVSeta
MonitorElement * stoppingSourceVSeta
Definition: TrackBuildingAnalyzer.h:124
TrackBuildingAnalyzer::doProfETA
const bool doProfETA
Definition: TrackBuildingAnalyzer.h:151
SeedStopReasonName::SeedStopReasonName
static const std::string SeedStopReasonName[]
Definition: SeedStopReason.h:18
MonitorTrackSTAMuons_cfi.TCHitMax
TCHitMax
Definition: MonitorTrackSTAMuons_cfi.py:105
edm::View
Definition: CaloClusterFwd.h:14
TrackBuildingAnalyzer::SeedQ
MonitorElement * SeedQ
Definition: TrackBuildingAnalyzer.h:93
SeedStopInfo::stopReason
SeedStopReason stopReason() const
Definition: SeedStopInfo.h:15
TransientTrackBuilder.h
edm::ParameterSet
Definition: ParameterSet.h:47
TrackBuildingAnalyzer::SeedPhiVsEta
MonitorElement * SeedPhiVsEta
Definition: TrackBuildingAnalyzer.h:91
TrackBuildingAnalyzer::TrackCandEta
MonitorElement * TrackCandEta
Definition: TrackBuildingAnalyzer.h:112
AlCaHLTBitMon_ParallelJobs.p
def p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
duplicaterechits_cfi.trackCollection
trackCollection
Definition: duplicaterechits_cfi.py:4
TrackCandidate
Definition: TrackCandidate.h:24
TrackingRegionsSeedingLayerSets::RegionLayers::region
const TrackingRegion & region() const
Definition: TrackingRegionsSeedingLayerSets.h:110
TrackBuildingAnalyzer::doProfPHI
const bool doProfPHI
Definition: TrackBuildingAnalyzer.h:150
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
TrackBuildingAnalyzer::trackMVAsHP
std::vector< MonitorElement * > trackMVAsHP
Definition: TrackBuildingAnalyzer.h:128
TrackBuildingAnalyzer::trackMVAsHPVsPtProfile
std::vector< MonitorElement * > trackMVAsHPVsPtProfile
Definition: TrackBuildingAnalyzer.h:130
TrackBuildingAnalyzer::doAllSeedPlots
const bool doAllSeedPlots
Definition: TrackBuildingAnalyzer.h:138
TrackingRegionsSeedingLayerSets::RegionLayers
Definition: TrackingRegionsSeedingLayerSets.h:14
TrackBuildingAnalyzer::TrackCandPhiVsEta
MonitorElement * TrackCandPhiVsEta
Definition: TrackBuildingAnalyzer.h:114
TrackBuildingAnalyzer::numberOfTrajCandsPerSeed
MonitorElement * numberOfTrajCandsPerSeed
Definition: TrackBuildingAnalyzer.h:104
TrackingMonitor_cfi.doStopSource
doStopSource
Definition: TrackingMonitor_cfi.py:112
HLT_FULL_cff.region
region
Definition: HLT_FULL_cff.py:88286
createfilelist.int
int
Definition: createfilelist.py:10
iEvent
int iEvent
Definition: GenABIO.cc:224
TrackBuildingAnalyzer::seedStoppingSourceVsNumberOfTrajCandsPerSeed
MonitorElement * seedStoppingSourceVsNumberOfTrajCandsPerSeed
Definition: TrackBuildingAnalyzer.h:108
trajectoryStateTransform::transientState
TrajectoryStateOnSurface transientState(const PTrajectoryStateOnDet &ts, const Surface *surface, const MagneticField *field)
Definition: TrajectoryStateTransform.cc:35
RectangularEtaPhiTrackingRegion.h
dqm::impl::MonitorElement::setBinLabel
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
Definition: MonitorElement.cc:762
TrackBuildingAnalyzer::TrackingRegionCandidatePhi
MonitorElement * TrackingRegionCandidatePhi
Definition: TrackBuildingAnalyzer.h:84
TrackBuildingAnalyzer::NumberOfRecHitsPerSeed
MonitorElement * NumberOfRecHitsPerSeed
Definition: TrackBuildingAnalyzer.h:96
TrackBuildingAnalyzer::doPHI
const bool doPHI
Definition: TrackBuildingAnalyzer.h:143
MonitorTrackSTAMuons_cfi.PhiMin
PhiMin
Definition: MonitorTrackSTAMuons_cfi.py:231
beam_dqm_sourceclient-live_cfg.doAllPlots
doAllPlots
Definition: beam_dqm_sourceclient-live_cfg.py:175
MagneticField.h
edm::EventSetup
Definition: EventSetup.h:58
MonitorTrackSTAMuons_cfi.TCDzMin
TCDzMin
Definition: MonitorTrackSTAMuons_cfi.py:321
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
TrackingMonitor_cfi.doRegionCandidatePlots
doRegionCandidatePlots
Definition: TrackingMonitor_cfi.py:455
TransientTrackRecord.h
TrackBuildingAnalyzer::SeedEta
MonitorElement * SeedEta
Definition: TrackBuildingAnalyzer.h:89
TSCPBuilderNoMaterial.h
MonitorTrackSTAMuons_cfi.SeedHitMax
SeedHitMax
Definition: MonitorTrackSTAMuons_cfi.py:100
MonitorTrackSTAMuons_cfi.SeedDxyMin
SeedDxyMin
Definition: MonitorTrackSTAMuons_cfi.py:306
MonitorTrackSTAMuons_cfi.TCHitMin
TCHitMin
Definition: MonitorTrackSTAMuons_cfi.py:106
TrackBuildingAnalyzer::doETA
const bool doETA
Definition: TrackBuildingAnalyzer.h:142
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
TrackCandidate::nRecHits
auto nRecHits() const
Definition: TrackCandidate.h:58
EgammaValidation_cff.num
num
Definition: EgammaValidation_cff.py:33
SeedStopReason::SIZE
InputTag.h
TrackBuildingAnalyzer::trackMVAs
std::vector< MonitorElement * > trackMVAs
Definition: TrackBuildingAnalyzer.h:127
DDAxes::phi
TrackBuildingAnalyzer::analyze
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup, const TrajectorySeed &seed, const SeedStopInfo &stopInfo, const reco::BeamSpot &bs, const MagneticField &theMF, const TransientTrackingRecHitBuilder &theTTRHBuilder)
Definition: TrackBuildingAnalyzer.cc:493
MonitorTrackSTAMuons_cfi.TCDzMax
TCDzMax
Definition: MonitorTrackSTAMuons_cfi.py:320
TrackingMonitor_cfi.MVAMax
MVAMax
Definition: TrackingMonitor_cfi.py:371
PVValHelper::dxy
Definition: PVValidationHelpers.h:48
RunInfoPI::state
state
Definition: RunInfoPayloadInspectoHelper.h:16
MonitorTrackInnerTrackMuons_cff.EtaMin
EtaMin
Definition: MonitorTrackInnerTrackMuons_cff.py:64
MonitorTrackInnerTrackMuons_cff.EtaMax
EtaMax
Definition: MonitorTrackInnerTrackMuons_cff.py:64
StopReason::NOT_STOPPED
PVValHelper::dz
Definition: PVValidationHelpers.h:51
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
T
long double T
Definition: Basic3DVectorLD.h:48
TSCBLBuilderNoMaterial
Definition: TSCBLBuilderNoMaterial.h:13
MonitorTrackSTAMuons_cfi.ThetaMax
ThetaMax
Definition: MonitorTrackSTAMuons_cfi.py:220
TrackBuildingAnalyzer::doMVAPlots
const bool doMVAPlots
Definition: TrackBuildingAnalyzer.h:153
dqm::implementation::IBooker::book2D
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
dqm::impl::MonitorElement::getNbinsX
virtual int getNbinsX() const
get # of bins in X-axis
Definition: MonitorElement.cc:565
TrackCandidate::stopReason
uint8_t stopReason() const
Definition: TrackCandidate.h:64
TrackingMonitor_cfi.doMVAPlots
doMVAPlots
Definition: TrackingMonitor_cfi.py:95
ALCARECOTkAlBeamHalo_cff.etaMax
etaMax
Definition: ALCARECOTkAlBeamHalo_cff.py:33
TrackBuildingAnalyzer::SeedDz
MonitorElement * SeedDz
Definition: TrackBuildingAnalyzer.h:95
TrajectorySeed
Definition: TrajectorySeed.h:18
MonitorTrackSTAMuons_cfi.TCDzBin
TCDzBin
Definition: MonitorTrackSTAMuons_cfi.py:319
TrackBuildingAnalyzer::seedStoppingSource
MonitorElement * seedStoppingSource
Definition: TrackBuildingAnalyzer.h:100
TrackBuildingAnalyzer::TrackCandPhi
MonitorElement * TrackCandPhi
Definition: TrackBuildingAnalyzer.h:113
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
TrackBuildingAnalyzer::doTheta
const bool doTheta
Definition: TrackBuildingAnalyzer.h:145
TrajectoryStateTransform.h
MonitorTrackSTAMuons_cfi.PhiBin
PhiBin
Definition: MonitorTrackSTAMuons_cfi.py:229
dqm::implementation::IBooker
Definition: DQMStore.h:43
TrackingRegion
Definition: TrackingRegion.h:41
TrackBuildingAnalyzer::NumberOfRecHitsPerTrackCandVsEtaProfile
MonitorElement * NumberOfRecHitsPerTrackCandVsEtaProfile
Definition: TrackBuildingAnalyzer.h:121
TrajectorySeed::startingState
PTrajectoryStateOnDet const & startingState() const
Definition: TrajectorySeed.h:55
TrackingMonitor_cfi.MVABin
MVABin
Definition: TrackingMonitor_cfi.py:369
MonitorTrackSTAMuons_cfi.TCHitBin
TCHitBin
Definition: MonitorTrackSTAMuons_cfi.py:104
SeedStopInfo::stopReasonUC
unsigned char stopReasonUC() const
Definition: SeedStopInfo.h:16
TrackBuildingAnalyzer::TrackCandQ
MonitorElement * TrackCandQ
Definition: TrackBuildingAnalyzer.h:116
AlignmentPI::regions
regions
Definition: AlignmentPayloadInspectorHelper.h:78
Candidate.h
TrajectoryStateClosestToBeamLine::isValid
bool isValid() const
Definition: TrajectoryStateClosestToBeamLine.h:50
MonitorTrackSTAMuons_cfi.SeedDzMin
SeedDzMin
Definition: MonitorTrackSTAMuons_cfi.py:311
MonitorTrackSTAMuons_cfi.TCDxyMax
TCDxyMax
Definition: MonitorTrackSTAMuons_cfi.py:315
MonitorTrackSTAMuons_cfi.TCDxyMin
TCDxyMin
Definition: MonitorTrackSTAMuons_cfi.py:316
TrackBuildingAnalyzer::stoppingSourceVSphi
MonitorElement * stoppingSourceVSphi
Definition: TrackBuildingAnalyzer.h:125
TrackBuildingAnalyzer::stoppingSource
MonitorElement * stoppingSource
Definition: TrackBuildingAnalyzer.h:123
TrajectoryStateClosestToBeamLine::trackStateAtPCA
FTS const & trackStateAtPCA() const
Definition: TrajectoryStateClosestToBeamLine.h:32
TrackBuildingAnalyzer::TrackBuildingAnalyzer
TrackBuildingAnalyzer(const edm::ParameterSet &)
Definition: TrackBuildingAnalyzer.cc:23
edm::Event
Definition: Event.h:73
MagneticField
Definition: MagneticField.h:19
TransientTrackingRecHitBuilder
Definition: TransientTrackingRecHitBuilder.h:6
dqm::impl::MonitorElement::setAxisTitle
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
Definition: MonitorElement.cc:791
MonitorTrackSTAMuons_cfi.SeedDxyMax
SeedDxyMax
Definition: MonitorTrackSTAMuons_cfi.py:305
edm::InputTag
Definition: InputTag.h:15
TrackBuildingAnalyzer::trackMVAsHPVsEtaProfile
std::vector< MonitorElement * > trackMVAsHPVsEtaProfile
Definition: TrackBuildingAnalyzer.h:132
TrackBuildingAnalyzer::numberOfTrajCandsPerSeedVsEta
MonitorElement * numberOfTrajCandsPerSeedVsEta
Definition: TrackBuildingAnalyzer.h:106
TrackBuildingAnalyzer::doPT
const bool doPT
Definition: TrackBuildingAnalyzer.h:141
TrackBuildingAnalyzer::doRegionCandidatePlots
const bool doRegionCandidatePlots
Definition: TrackBuildingAnalyzer.h:155
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
edm::OwnVector< TrackingRegion >
TrackBuildingAnalyzer::analyzeRegions
void analyzeRegions(const T &regions)
Definition: TrackBuildingAnalyzer.cc:729
MonitorTrackSTAMuons_cfi.ThetaBin
ThetaBin
Definition: MonitorTrackSTAMuons_cfi.py:219
TrackBuildingAnalyzer::initHisto
void initHisto(DQMStore::IBooker &ibooker, const edm::ParameterSet &)
Definition: TrackBuildingAnalyzer.cc:44
reco::reduceRange
constexpr T reduceRange(T x)
Definition: deltaPhi.h:18
reco::TrackBase::highPurity
Definition: TrackBase.h:154
TrackBuildingAnalyzer::SeedDxy
MonitorElement * SeedDxy
Definition: TrackBuildingAnalyzer.h:94
TrackBuildingAnalyzer::TrackCandTheta
MonitorElement * TrackCandTheta
Definition: TrackBuildingAnalyzer.h:115