CMS 3D CMS Logo

TrackAnalyzer.cc
Go to the documentation of this file.
1 /*
2  * See header file for a description of this class.
3  *
4  * \author Suchandra Dutta , Giorgia Mila
5  */
6 
12 
19 #include <string>
20 #include "TMath.h"
22 
23 namespace {
24  template <typename T, size_t N>
25  std::array<T, N + 1> makeLogBins(const double min, const double max) {
26  const double minLog10 = std::log10(min);
27  const double maxLog10 = std::log10(max);
28  const double width = (maxLog10 - minLog10) / N;
29  std::array<T, N + 1> ret;
30  ret[0] = std::pow(10, minLog10);
31  const double mult = std::pow(10, width);
32  for (size_t i = 1; i <= N; ++i) {
33  ret[i] = ret[i - 1] * mult;
34  }
35  return ret;
36  }
37 } // namespace
38 
39 using namespace tadqm;
41  : conf_(nullptr),
42  stateName_(iConfig.getParameter<std::string>("MeasurementState")),
43  doTrackerSpecific_(iConfig.getParameter<bool>("doTrackerSpecific")),
44  doAllPlots_(iConfig.getParameter<bool>("doAllPlots")),
45  doBSPlots_(iConfig.getParameter<bool>("doBeamSpotPlots")),
46  doPVPlots_(iConfig.getParameter<bool>("doPrimaryVertexPlots")),
47  doDCAPlots_(iConfig.getParameter<bool>("doDCAPlots")),
48  doGeneralPropertiesPlots_(iConfig.getParameter<bool>("doGeneralPropertiesPlots")),
49  doMeasurementStatePlots_(iConfig.getParameter<bool>("doMeasurementStatePlots")),
50  doHitPropertiesPlots_(iConfig.getParameter<bool>("doHitPropertiesPlots")),
51  doRecHitVsPhiVsEtaPerTrack_(iConfig.getParameter<bool>("doRecHitVsPhiVsEtaPerTrack")),
52  doRecHitVsPtVsEtaPerTrack_(iConfig.getParameter<bool>("doRecHitVsPtVsEtaPerTrack")),
53  doLayersVsPhiVsEtaPerTrack_(iConfig.getParameter<bool>("doLayersVsPhiVsEtaPerTrack")),
54  doRecHitsPerTrackProfile_(iConfig.getParameter<bool>("doRecHitsPerTrackProfile")),
55  doThetaPlots_(iConfig.getParameter<bool>("doThetaPlots")),
56  doTrackPxPyPlots_(iConfig.getParameter<bool>("doTrackPxPyPlots")),
57  doDCAwrtPVPlots_(iConfig.getParameter<bool>("doDCAwrtPVPlots")),
58  doDCAwrt000Plots_(iConfig.getParameter<bool>("doDCAwrt000Plots")),
59  doLumiAnalysis_(iConfig.getParameter<bool>("doLumiAnalysis")),
60  doTestPlots_(iConfig.getParameter<bool>("doTestPlots")),
61  doHIPlots_(iConfig.getParameter<bool>("doHIPlots")),
62  doSIPPlots_(iConfig.getParameter<bool>("doSIPPlots")),
63  doEffFromHitPatternVsPU_(iConfig.getParameter<bool>("doEffFromHitPatternVsPU")),
64  doEffFromHitPatternVsBX_(iConfig.getParameter<bool>("doEffFromHitPatternVsBX")),
65  doEffFromHitPatternVsLUMI_(iConfig.getParameter<bool>("doEffFromHitPatternVsLUMI")),
66  pvNDOF_(iConfig.getParameter<int>("pvNDOF")),
67  forceSCAL_(iConfig.getParameter<bool>("forceSCAL")),
68  useBPixLayer1_(iConfig.getParameter<bool>("useBPixLayer1")),
69  minNumberOfPixelsPerCluster_(iConfig.getParameter<int>("minNumberOfPixelsPerCluster")),
70  minPixelClusterCharge_(iConfig.getParameter<double>("minPixelClusterCharge")),
71  qualityString_(iConfig.getParameter<std::string>("qualityString")),
72  good_vertices_(0),
73  bx_(0),
74  pixel_lumi_(0.),
75  scal_lumi_(0.) {
76  initHistos();
77  TopFolder_ = iConfig.getParameter<std::string>("FolderName");
78 }
79 
81  edm::InputTag bsSrc = iConfig.getParameter<edm::InputTag>("beamSpot");
82  edm::InputTag primaryVertexInputTag = iConfig.getParameter<edm::InputTag>("primaryVertex");
83  edm::InputTag pixelClusterInputTag = iConfig.getParameter<edm::InputTag>("pixelCluster4lumi");
84  edm::InputTag scalInputTag = iConfig.getParameter<edm::InputTag>("scal");
85  edm::InputTag metaDataInputTag = iConfig.getParameter<edm::InputTag>("metadata");
87  pvToken_ = iC.consumes<reco::VertexCollection>(primaryVertexInputTag);
90  metaDataToken_ = iC.mayConsume<OnlineLuminosityRecord>(metaDataInputTag);
91 
94  }
96  if (doSIPPlots_ ||
97  ((doMeasurementStatePlots_ || doAllPlots_) && (stateName_ == "All" || stateName_ == "OuterSurface" ||
98  stateName_ == "InnerSurface" || stateName_ == "ImpactPoint"))) {
100  iC.esConsumes<TransientTrackBuilder, TransientTrackRecord>(edm::ESInputTag("", "TransientTrackBuilder"));
101  }
102 
103  if (useBPixLayer1_)
105  else
107 }
108 
110  Chi2 = nullptr;
111  Chi2Prob = nullptr;
112  Chi2ProbVsPhi = nullptr;
113  Chi2ProbVsEta = nullptr;
114  Chi2oNDF = nullptr;
115  Chi2oNDFVsEta = nullptr;
116  Chi2oNDFVsPhi = nullptr;
117  Chi2oNDFVsTheta = nullptr;
118 
119  NumberOfRecHitsPerTrack = nullptr;
121  NumberOfLostRecHitsPerTrack = nullptr;
122 
126 
128 
131 
132  DistanceOfClosestApproach = nullptr;
143  DeltaZToPV = nullptr;
144  DeltaZToPVZoom = nullptr;
151  xPointOfClosestApproach = nullptr;
154  yPointOfClosestApproach = nullptr;
157  zPointOfClosestApproach = nullptr;
159  algorithm = nullptr;
160  oriAlgo = nullptr;
161  stoppingSource = nullptr;
162  stoppingSourceVSeta = nullptr;
163  stoppingSourceVSphi = nullptr;
164  // TESTING
167 
168  // by Mia in order to deal w/ LS transitions
169  Chi2oNDF_lumiFlag = nullptr;
171 
173  //special Plots for HI DQM //SHOULD I ADD THE BOOL HERE??
175  LongDCASig = nullptr;
176  TransDCASig = nullptr;
177  dNdPhi_HighPurity = nullptr;
178  dNdEta_HighPurity = nullptr;
179  dNdPt_HighPurity = nullptr;
180  NhitVsEta_HighPurity = nullptr;
181  NhitVsPhi_HighPurity = nullptr;
182 
183  // IP significance
184  sipDxyToBS = nullptr;
185  sipDzToBS = nullptr;
186  sip3dToPV = nullptr;
187  sip2dToPV = nullptr;
188  sipDxyToPV = nullptr;
189  sipDzToPV = nullptr;
190 }
191 
193 
195  const edm::EventSetup& iSetup,
196  const edm::ParameterSet& iConfig) {
197  conf_ = &iConfig;
199  bookHistosForBeamSpot(ibooker);
202  bookHistosForEfficiencyFromHitPatter(ibooker, iSetup, "", false);
204  bookHistosForEfficiencyFromHitPatter(ibooker, iSetup, "VsBX", false);
206  bookHistosForEfficiencyFromHitPatter(ibooker, iSetup, "VsSCALLUMI", false);
207  // if (doEffFromHitPatternVsLUMI_ || doAllPlots_) bookHistosForEfficiencyFromHitPatter(ibooker, iSetup, "VsPIXELLUMI");
209  bookHistosForEfficiencyFromHitPatter(ibooker, iSetup, "", true);
211  bookHistosForEfficiencyFromHitPatter(ibooker, iSetup, "VsSCALLUMI", true);
212 
213  // book tracker specific related histograms
214  // ---------------------------------------------------------------------------------//
217 
218  // book state related histograms
219  // ---------------------------------------------------------------------------------//
221  if (stateName_ == "All") {
222  bookHistosForState("OuterSurface", ibooker);
223  bookHistosForState("InnerSurface", ibooker);
224  bookHistosForState("ImpactPoint", ibooker);
225  } else if (stateName_ != "OuterSurface" && stateName_ != "InnerSurface" && stateName_ != "ImpactPoint" &&
226  stateName_ != "default") {
227  bookHistosForState("default", ibooker);
228 
229  } else {
230  bookHistosForState(stateName_, ibooker);
231  }
232  conf_ = nullptr;
233  }
234 }
235 
237  const edm::EventSetup& iSetup,
238  const std::string suffix,
239  bool useInac) {
240  ibooker.setCurrentFolder(TopFolder_ + "/HitEffFromHitPattern" + (useInac ? "All" : "") + suffix);
241 
242  constexpr int LUMIBin = 300; // conf_->getParameter<int>("LUMIBin");
243  float LUMIMin = conf_->getParameter<double>("LUMIMin");
244  float LUMIMax = conf_->getParameter<double>("LUMIMax");
245 
246  int PVBin = conf_->getParameter<int>("PVBin");
247  float PVMin = conf_->getParameter<double>("PVMin");
248  float PVMax = conf_->getParameter<double>("PVMax");
249 
251  float MIN[] = {PVMin, 0.5, LUMIMin, LUMIMin};
252  float MAX[] = {PVMax, float(GetLumi::lastBunchCrossing) + 0.5, LUMIMax, LUMIMax};
253  std::string NAME[] = {"", "VsBX", "VsLUMI", "VsLUMI"};
254 
255  auto logBins = makeLogBins<float, LUMIBin>(LUMIMin, LUMIMax);
256 
257  int mon = -1;
258  int nbins = -1;
259  float min = -1.;
260  float max = -1.;
261  bool logQ = false;
262  std::string name = "";
263  for (int i = 0; i < monQuantity::END; i++) {
264  if (monName[i] == suffix) {
265  logQ = (i > 1); // VsLUMI
266  mon = i;
267  if (useInac)
268  mon += monQuantity::END;
269  nbins = NBINS[i];
270  min = MIN[i];
271  max = MAX[i];
272  name = NAME[i];
273  }
274  }
275 
276  TrackerGeometry const& trackerGeometry = iSetup.getData(trackerGeometryToken_);
277 
278  // Values are not ordered randomly, but the order is taken from
279  // http://cmslxr.fnal.gov/dxr/CMSSW/source/Geometry/CommonDetUnit/interface/GeomDetEnumerators.h#15
280  const char* dets[] = {"None", "PXB", "PXF", "TIB", "TID", "TOB", "TEC"};
281 
282  // Also in this case, ordering is not random but extracted from
283  // http://cmslxr.fnal.gov/dxr/CMSSW/source/DataFormats/TrackReco/interface/HitPattern.h
284  // The category "total" is an addition to ease the computation of
285  // the efficiencies and is not part of the original HitPattern.
286  const char* hit_category[] = {"valid", "missing", "inactive", "bad", "total"};
287 
288  // We set sub_det to be a 1-based index since to it is the sub-sub-structure in the HitPattern
289  char title[50];
290  for (unsigned int det = 1; det < sizeof(dets) / sizeof(char*); ++det) {
291  for (unsigned int sub_det = 1; sub_det <= trackerGeometry.numberOfLayers(det); ++sub_det) {
292  for (unsigned int cat = 0; cat < sizeof(hit_category) / sizeof(char*); ++cat) {
293  memset(title, 0, sizeof(title));
294  snprintf(title, sizeof(title), "Hits%s_%s_%s_Subdet%d", name.c_str(), hit_category[cat], dets[det], sub_det);
295  switch (cat) {
296  case 0:
297  hits_valid_.insert(std::make_pair(Key(det, sub_det, mon),
298  logQ ? ibooker.book1D(title, title, nbins, &logBins[0])
299  : ibooker.book1D(title, title, nbins, min, max)));
300  break;
301  case 4:
302  hits_total_.insert(std::make_pair(Key(det, sub_det, mon),
303  logQ ? ibooker.book1D(title, title, nbins, &logBins[0])
304  : ibooker.book1D(title, title, nbins, min, max)));
305  break;
306  default:
307  LogDebug("TrackAnalyzer") << "Invalid hit category used " << cat << " ignored\n";
308  }
309  }
310  }
311  }
312 }
313 
316  // parameters from the configuration
317  std::string QualName = conf_->getParameter<std::string>("Quality");
319  std::string MEBSFolderName = conf_->getParameter<std::string>("BSFolderName");
320 
321  // use the AlgoName and Quality Name
322  std::string CategoryName = !QualName.empty() ? AlgoName + "_" + QualName : AlgoName;
323 
324  // get binning from the configuration
325  int TKHitBin = conf_->getParameter<int>("RecHitBin");
326  double TKHitMin = conf_->getParameter<double>("RecHitMin");
327  double TKHitMax = conf_->getParameter<double>("RecHitMax");
328 
329  int TKLostBin = conf_->getParameter<int>("RecLostBin");
330  double TKLostMin = conf_->getParameter<double>("RecLostMin");
331  double TKLostMax = conf_->getParameter<double>("RecLostMax");
332 
333  int TKLayBin = conf_->getParameter<int>("RecLayBin");
334  double TKLayMin = conf_->getParameter<double>("RecLayMin");
335  double TKLayMax = conf_->getParameter<double>("RecLayMax");
336 
337  int PhiBin = conf_->getParameter<int>("PhiBin");
338  double PhiMin = conf_->getParameter<double>("PhiMin");
339  double PhiMax = conf_->getParameter<double>("PhiMax");
340 
341  int EtaBin = conf_->getParameter<int>("EtaBin");
342  double EtaMin = conf_->getParameter<double>("EtaMin");
343  double EtaMax = conf_->getParameter<double>("EtaMax");
344 
345  int PtBin = conf_->getParameter<int>("TrackPtBin");
346  double PtMin = conf_->getParameter<double>("TrackPtMin");
347  double PtMax = conf_->getParameter<double>("TrackPtMax");
348 
349  int Phi2DBin = conf_->getParameter<int>("Phi2DBin");
350  int Eta2DBin = conf_->getParameter<int>("Eta2DBin");
351  int Pt2DBin = conf_->getParameter<int>("TrackPt2DBin");
352 
353  int VXBin = conf_->getParameter<int>("VXBin");
354  double VXMin = conf_->getParameter<double>("VXMin");
355  double VXMax = conf_->getParameter<double>("VXMax");
356 
357  int VYBin = conf_->getParameter<int>("VYBin");
358  double VYMin = conf_->getParameter<double>("VYMin");
359  double VYMax = conf_->getParameter<double>("VYMax");
360 
361  int VZBin = conf_->getParameter<int>("VZBin");
362  double VZMin = conf_->getParameter<double>("VZMin");
363  double VZMax = conf_->getParameter<double>("VZMax");
364 
365  ibooker.setCurrentFolder(TopFolder_);
366 
367  // book the Hit Property histograms
368  // ---------------------------------------------------------------------------------//
369 
370  TkParameterMEs tkmes;
372  ibooker.setCurrentFolder(TopFolder_ + "/HitProperties");
373 
374  histname = "NumberOfRecHitsPerTrack_";
376  ibooker.book1D(histname + CategoryName, histname + CategoryName, TKHitBin, TKHitMin, TKHitMax);
377  NumberOfRecHitsPerTrack->setAxisTitle("Number of all RecHits of each Track");
378  NumberOfRecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
379 
380  histname = "NumberOfValidRecHitsPerTrack_";
382  ibooker.book1D(histname + CategoryName, histname + CategoryName, TKHitBin, TKHitMin, TKHitMax);
383  NumberOfValidRecHitsPerTrack->setAxisTitle("Number of valid RecHits for each Track");
384 
385  NumberOfValidRecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
386 
387  histname = "NumberOfLostRecHitsPerTrack_";
389  ibooker.book1D(histname + CategoryName, histname + CategoryName, TKLostBin, TKLostMin, TKLostMax);
390  NumberOfLostRecHitsPerTrack->setAxisTitle("Number of lost RecHits for each Track");
391  NumberOfLostRecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
392 
393  histname = "NumberOfMissingInnerRecHitsPerTrack_";
394  NumberOfMIRecHitsPerTrack = ibooker.book1D(histname + CategoryName, histname + CategoryName, 10, -0.5, 9.5);
395  NumberOfMIRecHitsPerTrack->setAxisTitle("Number of missing-inner RecHits for each Track");
396  NumberOfMIRecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
397 
398  histname = "NumberOfMissingOuterRecHitsPerTrack_";
399  NumberOfMORecHitsPerTrack = ibooker.book1D(histname + CategoryName, histname + CategoryName, 10, -0.5, 9.5);
400  NumberOfMORecHitsPerTrack->setAxisTitle("Number of missing-outer RecHits for each Track");
401  NumberOfMORecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
402 
403  histname = "ValidFractionPerTrack_";
404  ValidFractionPerTrack = ibooker.book1D(histname + CategoryName, histname + CategoryName, 101, 0., 1.01);
405  ValidFractionPerTrack->setAxisTitle("ValidFraction of RecHits for each Track");
406  ValidFractionPerTrack->setAxisTitle("Number of Tracks", 2);
407 
409  histname = "NumberOfValidRecHitVsPhiVsEtaPerTrack_";
411  histname + CategoryName,
412  Eta2DBin,
413  EtaMin,
414  EtaMax,
415  Phi2DBin,
416  PhiMin,
417  PhiMax,
418  0,
419  40.,
420  "");
423 
424  histname = "NumberOfLostRecHitVsPhiVsEtaPerTrack_";
426  histname + CategoryName,
427  Eta2DBin,
428  EtaMin,
429  EtaMax,
430  Phi2DBin,
431  PhiMin,
432  PhiMax,
433  0,
434  5.,
435  "");
438 
439  histname = "NumberMIRecHitVsPhiVsEtaPerTrack_";
441  histname + CategoryName,
442  Eta2DBin,
443  EtaMin,
444  EtaMax,
445  Phi2DBin,
446  PhiMin,
447  PhiMax,
448  0,
449  15.,
450  "");
453 
454  histname = "NumberMORecHitVsPhiVsEtaPerTrack_";
456  histname + CategoryName,
457  Eta2DBin,
458  EtaMin,
459  EtaMax,
460  Phi2DBin,
461  PhiMin,
462  PhiMax,
463  0,
464  15.,
465  "");
468 
469  histname = "ValidFractionVsPhiVsEtaPerTrack_";
470  ValidFractionVsPhiVsEtaPerTrack = ibooker.bookProfile2D(histname + CategoryName,
471  histname + CategoryName,
472  Eta2DBin,
473  EtaMin,
474  EtaMax,
475  Phi2DBin,
476  PhiMin,
477  PhiMax,
478  0,
479  2.,
480  "");
483  }
484 
486  histname = "NumberOfValidRecHitVsPtVsEtaPerTrack_";
488  histname + CategoryName, histname + CategoryName, Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 40., "");
490  NumberOfValidRecHitVsPtVsEtaPerTrack->setAxisTitle("Track p_{T} [GeV] ", 2);
491 
492  histname = "NumberOfLostRecHitVsPtVsEtaPerTrack_";
494  histname + CategoryName, histname + CategoryName, Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 5., "");
496  NumberOfLostRecHitVsPtVsEtaPerTrack->setAxisTitle("Track p_{T} [GeV] ", 2);
497 
498  histname = "NumberMIRecHitVsPtVsEtaPerTrack_";
500  histname + CategoryName, histname + CategoryName, Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 15., "");
502  NumberOfMIRecHitVsPtVsEtaPerTrack->setAxisTitle("Track p_{T} [GeV] ", 2);
503 
504  histname = "NumberMORecHitVsPtVsEtaPerTrack_";
506  histname + CategoryName, histname + CategoryName, Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 15., "");
508  NumberOfMORecHitVsPtVsEtaPerTrack->setAxisTitle("Track p_{T} [GeV] ", 2);
509  }
510 
511  histname = "NumberOfValidRecHitsPerTrackVsPt_";
513  histname + CategoryName, histname + CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax, "");
514  NumberOfValidRecHitsPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]", 1);
515  NumberOfValidRecHitsPerTrackVsPt->setAxisTitle("Number of valid RecHits in each Track", 2);
516 
517  histname = "NumberOfLostRecHitsPerTrackVsPt_";
519  histname + CategoryName, histname + CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax, "");
520  NumberOfLostRecHitsPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]", 1);
521  NumberOfLostRecHitsPerTrackVsPt->setAxisTitle("Average Number of Lost RecHits per Track", 2);
522 
523  histname = "NumberMIRecHitsPerTrackVsPt_";
525  histname + CategoryName, histname + CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax, "");
526  NumberOfMIRecHitsPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]", 1);
527  NumberOfMIRecHitsPerTrackVsPt->setAxisTitle("Average Number of Lost RecHits per Track", 2);
528 
529  histname = "NumberMORecHitsPerTrackVsPt_";
531  histname + CategoryName, histname + CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax, "");
532  NumberOfMORecHitsPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]", 1);
533  NumberOfMORecHitsPerTrackVsPt->setAxisTitle("Average Number of Lost RecHits per Track", 2);
534 
535  std::string layerTypeName[5] = {"", "Off", "3D", "Missing", "Pixel"};
536  for (int i = 0; i < 4; ++i) {
537  histname = "NumberOf" + layerTypeName[i] + "LayersPerTrack_";
539  ibooker.book1D(histname + CategoryName, histname + CategoryName, TKLayBin, TKLayMin, TKLayMax);
540  NumberOfLayersPerTrack[i]->setAxisTitle("Number of " + layerTypeName[i] + " Layers of each Track", 1);
541  NumberOfLayersPerTrack[i]->setAxisTitle("Number of Tracks", 2);
542  }
544  for (int i = 0; i < 5; ++i) {
545  histname = "NumberOf" + layerTypeName[i] + "LayersVsPhiVsEtaPerTrack_";
546  NumberOfLayersVsPhiVsEtaPerTrack[i] = ibooker.bookProfile2D(histname + CategoryName,
547  histname + CategoryName,
548  Eta2DBin,
549  EtaMin,
550  EtaMax,
551  Phi2DBin,
552  PhiMin,
553  PhiMax,
554  0,
555  40.,
556  "");
557  NumberOfLayersVsPhiVsEtaPerTrack[i]->setAxisTitle("Track #eta ", 1);
558  NumberOfLayersVsPhiVsEtaPerTrack[i]->setAxisTitle("Track #phi ", 2);
559  }
560  }
561 
562  // book the General Property histograms
563  // ---------------------------------------------------------------------------------//
564 
566  int Chi2Bin = conf_->getParameter<int>("Chi2Bin");
567  double Chi2Min = conf_->getParameter<double>("Chi2Min");
568  double Chi2Max = conf_->getParameter<double>("Chi2Max");
569 
570  int Chi2NDFBin = conf_->getParameter<int>("Chi2NDFBin");
571  double Chi2NDFMin = conf_->getParameter<double>("Chi2NDFMin");
572  double Chi2NDFMax = conf_->getParameter<double>("Chi2NDFMax");
573 
574  int Chi2ProbBin = conf_->getParameter<int>("Chi2ProbBin");
575  double Chi2ProbMin = conf_->getParameter<double>("Chi2ProbMin");
576  double Chi2ProbMax = conf_->getParameter<double>("Chi2ProbMax");
577 
578  //HI PLOTS////
579  int TransDCABins = conf_->getParameter<int>("TransDCABins");
580  double TransDCAMin = conf_->getParameter<double>("TransDCAMin");
581  double TransDCAMax = conf_->getParameter<double>("TransDCAMax");
582 
583  int LongDCABins = conf_->getParameter<int>("LongDCABins");
584  double LongDCAMin = conf_->getParameter<double>("LongDCAMin");
585  double LongDCAMax = conf_->getParameter<double>("LongDCAMax");
587 
588  ibooker.setCurrentFolder(TopFolder_ + "/GeneralProperties");
589 
590  histname = "Chi2_";
591  Chi2 = ibooker.book1D(histname + CategoryName, histname + CategoryName, Chi2Bin, Chi2Min, Chi2Max);
592  Chi2->setAxisTitle("Track #chi^{2}", 1);
593  Chi2->setAxisTitle("Number of Tracks", 2);
594 
595  histname = "Chi2Prob_";
596  Chi2Prob = ibooker.book1D(histname + CategoryName, histname + CategoryName, Chi2ProbBin, Chi2ProbMin, Chi2ProbMax);
597  Chi2Prob->setAxisTitle("Track #chi^{2} probability", 1);
598  Chi2Prob->setAxisTitle("Number of Tracks", 2);
599 
600  histname = "Chi2oNDF_";
601  Chi2oNDF = ibooker.book1D(histname + CategoryName, histname + CategoryName, Chi2NDFBin, Chi2NDFMin, Chi2NDFMax);
602  Chi2oNDF->setAxisTitle("Track #chi^{2}/ndf", 1);
603  Chi2oNDF->setAxisTitle("Number of Tracks", 2);
604 
606  //HI PLOTS///
608  if (doHIPlots_) {
609  histname = "LongDCASig_";
610  LongDCASig =
611  ibooker.book1D(histname + CategoryName, histname + CategoryName, LongDCABins, LongDCAMin, LongDCAMax);
612  LongDCASig->setAxisTitle("dz/#sigma_{dz}", 1);
613 
614  histname = "TransDCASig_";
615  TransDCASig =
616  ibooker.book1D(histname + CategoryName, histname + CategoryName, TransDCABins, TransDCAMin, TransDCAMax);
617  TransDCASig->setAxisTitle("dxy/#sigma_{dxy}", 1);
618 
619  histname = "dNdPhi_HighPurity_";
620  dNdPhi_HighPurity = ibooker.book1D(histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax);
621  dNdPhi_HighPurity->setAxisTitle("#phi", 1);
622 
623  histname = "dNdEta_HighPurity_";
624  dNdEta_HighPurity = ibooker.book1D(histname + CategoryName, histname + CategoryName, EtaBin, EtaMin, EtaMax);
625  dNdEta_HighPurity->setAxisTitle("#eta", 1);
626 
627  histname = "dNdPt_HighPurity_";
628  dNdPt_HighPurity = ibooker.book1D(histname + CategoryName, histname + CategoryName, 150, 0, 0.3);
629  dNdPt_HighPurity->setAxisTitle("#sigma_{p_{T}}/p_{T}", 1);
630 
631  histname = "NhitVsEta_HighPurity_";
633  ibooker.bookProfile(histname + CategoryName, histname + CategoryName, EtaBin, EtaMin, EtaMax, -0.5, 39.5, "");
634  NhitVsEta_HighPurity->setAxisTitle("Track #eta", 1);
635  NhitVsEta_HighPurity->setAxisTitle("Number of Valid RecHits in each Track", 2);
636 
637  histname = "NhitVsPhi_HighPurity_";
639  ibooker.bookProfile(histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, -0.5, 39.5, "");
640  NhitVsPhi_HighPurity->setAxisTitle("Track #phi", 1);
641  NhitVsPhi_HighPurity->setAxisTitle("Number of Valid RecHits in each Track", 2);
642 
643  histname = "Ptdist_HighPurity_";
644  Ptdist_HighPurity = ibooker.book1D(histname + CategoryName, histname + CategoryName, 150, 0, 50.);
645  Ptdist_HighPurity->setAxisTitle("p_{T} (GeV/c)", 1);
646  Ptdist_HighPurity->setAxisTitle("Number of Tracks", 2);
647 
648  histname = "dNhitdPt_HighPurity_";
650  ibooker.bookProfile(histname + CategoryName, histname + CategoryName, 150, 0, 25., -0.5, 39.5, "");
651  dNhitdPt_HighPurity->setAxisTitle("p_{T} (GeV/c)", 1);
652  dNhitdPt_HighPurity->setAxisTitle("N_{hit}", 2);
653  }
654 
656  histname = "xPointOfClosestApproach_";
657  xPointOfClosestApproach = ibooker.book1D(histname + CategoryName, histname + CategoryName, VXBin, VXMin, VXMax);
658  xPointOfClosestApproach->setAxisTitle("x component of Track PCA to beam line (cm)", 1);
659  xPointOfClosestApproach->setAxisTitle("Number of Tracks", 2);
660 
661  histname = "yPointOfClosestApproach_";
662  yPointOfClosestApproach = ibooker.book1D(histname + CategoryName, histname + CategoryName, VYBin, VYMin, VYMax);
663  yPointOfClosestApproach->setAxisTitle("y component of Track PCA to beam line (cm)", 1);
664  yPointOfClosestApproach->setAxisTitle("Number of Tracks", 2);
665 
666  histname = "zPointOfClosestApproach_";
667  zPointOfClosestApproach = ibooker.book1D(histname + CategoryName, histname + CategoryName, VZBin, VZMin, VZMax);
668  zPointOfClosestApproach->setAxisTitle("z component of Track PCA to beam line (cm)", 1);
669  zPointOfClosestApproach->setAxisTitle("Number of Tracks", 2);
670 
671  histname = "xPointOfClosestApproachToPV_";
673  ibooker.book1D(histname + CategoryName, histname + CategoryName, VXBin, VXMin, VXMax);
674  xPointOfClosestApproachToPV->setAxisTitle("x component of Track PCA to pv (cm)", 1);
675  xPointOfClosestApproachToPV->setAxisTitle("Number of Tracks", 2);
676 
677  histname = "yPointOfClosestApproachToPV_";
679  ibooker.book1D(histname + CategoryName, histname + CategoryName, VYBin, VYMin, VYMax);
680  yPointOfClosestApproachToPV->setAxisTitle("y component of Track PCA to pv line (cm)", 1);
681  yPointOfClosestApproachToPV->setAxisTitle("Number of Tracks", 2);
682 
683  histname = "zPointOfClosestApproachToPV_";
685  ibooker.book1D(histname + CategoryName, histname + CategoryName, VZBin, VZMin, VZMax);
686  zPointOfClosestApproachToPV->setAxisTitle("z component of Track PCA to pv line (cm)", 1);
687  zPointOfClosestApproachToPV->setAxisTitle("Number of Tracks", 2);
688  }
689 
690  // See DataFormats/TrackReco/interface/TrackBase.h for track algorithm enum definition
691  // http://cmssw.cvs.cern.ch/cgi-bin/cmssw.cgi/CMSSW/DataFormats/TrackReco/interface/TrackBase.h?view=log
692  histname = "algorithm_";
693  algorithm = ibooker.book1D(histname + CategoryName,
694  histname + CategoryName,
696  0.,
697  double(reco::TrackBase::algoSize));
698  algorithm->setAxisTitle("Tracking algorithm", 1);
699  algorithm->setAxisTitle("Number of Tracks", 2);
700 
701  histname = "originalAlgorithm_";
702  oriAlgo = ibooker.book1D(histname + CategoryName,
703  histname + CategoryName,
705  0.,
706  double(reco::TrackBase::algoSize));
707  oriAlgo->setAxisTitle("Tracking algorithm", 1);
708  oriAlgo->setAxisTitle("Number of Tracks", 2);
709 
710  for (size_t ibin = 0; ibin < reco::TrackBase::algoSize - 1; ibin++) {
713  }
714 
715  size_t StopReasonNameSize = sizeof(StopReasonName::StopReasonName) / sizeof(std::string);
716  histname = "stoppingSource_";
717  stoppingSource = ibooker.book1D(
718  histname + CategoryName, histname + CategoryName, StopReasonNameSize, 0., double(StopReasonNameSize));
719  stoppingSource->setAxisTitle("stopping reason", 1);
720  stoppingSource->setAxisTitle("Number of Tracks", 2);
721 
722  histname = "stoppingSourceVSeta_";
724  ibooker.bookProfile(histname + CategoryName, histname + CategoryName, EtaBin, EtaMin, EtaMax, 2, 0., 2.);
725  stoppingSourceVSeta->setAxisTitle("track #eta", 1);
726  stoppingSourceVSeta->setAxisTitle("stopped fraction", 2);
727 
728  histname = "stoppingSourceVSphi_";
730  ibooker.bookProfile(histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, 2, 0., 2.);
731  stoppingSourceVSphi->setAxisTitle("track #phi", 1);
732  stoppingSourceVSphi->setAxisTitle("stopped fraction", 2);
733 
734  for (size_t ibin = 0; ibin < StopReasonNameSize; ibin++) {
736  }
737  }
738 }
739 
741  // parameters from the configuration
742  std::string QualName = conf_->getParameter<std::string>("Quality");
744 
745  // use the AlgoName and Quality Name
746  std::string CategoryName = !QualName.empty() ? AlgoName + "_" + QualName : AlgoName;
747 
748  // book LS analysis related histograms
749  // -----------------------------------
750  if (doLumiAnalysis_) {
751  // get binning from the configuration
752  int TKHitBin = conf_->getParameter<int>("RecHitBin");
753  double TKHitMin = conf_->getParameter<double>("RecHitMin");
754  double TKHitMax = conf_->getParameter<double>("RecHitMax");
755 
756  int Chi2NDFBin = conf_->getParameter<int>("Chi2NDFBin");
757  double Chi2NDFMin = conf_->getParameter<double>("Chi2NDFMin");
758  double Chi2NDFMax = conf_->getParameter<double>("Chi2NDFMax");
759 
760  // add by Mia in order to deal w/ LS transitions
761  ibooker.setCurrentFolder(TopFolder_ + "/LSanalysis");
762 
763  histname = "NumberOfRecHitsPerTrack_lumiFlag_";
765  ibooker.book1D(histname + CategoryName, histname + CategoryName, TKHitBin, TKHitMin, TKHitMax);
766  NumberOfRecHitsPerTrack_lumiFlag->setAxisTitle("Number of all RecHits of each Track");
767  NumberOfRecHitsPerTrack_lumiFlag->setAxisTitle("Number of Tracks", 2);
768 
769  histname = "Chi2oNDF_lumiFlag_";
771  ibooker.book1D(histname + CategoryName, histname + CategoryName, Chi2NDFBin, Chi2NDFMin, Chi2NDFMax);
772  Chi2oNDF_lumiFlag->setAxisTitle("Track #chi^{2}/ndf", 1);
773  Chi2oNDF_lumiFlag->setAxisTitle("Number of Tracks", 2);
774  }
775 }
776 
778  // parameters from the configuration
779  std::string QualName = conf_->getParameter<std::string>("Quality");
781 
782  // use the AlgoName and Quality Name
783  std::string CategoryName = !QualName.empty() ? AlgoName + "_" + QualName : AlgoName;
784  std::string Folder = TopFolder_.substr(0, 2);
785 
786  // book the Beam Spot related histograms
787  // ---------------------------------------------------------------------------------//
788 
789  if (doDCAPlots_ || doBSPlots_ || doAllPlots_) {
790  int DxyErrBin = conf_->getParameter<int>("DxyErrBin");
791  double DxyErrMax = conf_->getParameter<double>("DxyErrMax");
792 
793  int DxyBin = conf_->getParameter<int>("DxyBin");
794  double DxyMin = conf_->getParameter<double>("DxyMin");
795  double DxyMax = conf_->getParameter<double>("DxyMax");
796 
797  int AbsDxyBin = conf_->getParameter<int>("AbsDxyBin");
798  double AbsDxyMin = conf_->getParameter<double>("AbsDxyMin");
799  double AbsDxyMax = conf_->getParameter<double>("AbsDxyMax");
800 
801  int PhiBin = conf_->getParameter<int>("PhiBin");
802  double PhiMin = conf_->getParameter<double>("PhiMin");
803  double PhiMax = conf_->getParameter<double>("PhiMax");
804 
805  int EtaBin = conf_->getParameter<int>("EtaBin");
806  double EtaMin = conf_->getParameter<double>("EtaMin");
807  double EtaMax = conf_->getParameter<double>("EtaMax");
808 
809  int PtBin = conf_->getParameter<int>("TrackPtBin");
810  double PtMin = conf_->getParameter<double>("TrackPtMin");
811  double PtMax = conf_->getParameter<double>("TrackPtMax");
812 
813  int X0Bin = conf_->getParameter<int>("X0Bin");
814  double X0Min = conf_->getParameter<double>("X0Min");
815  double X0Max = conf_->getParameter<double>("X0Max");
816 
817  int Y0Bin = conf_->getParameter<int>("Y0Bin");
818  double Y0Min = conf_->getParameter<double>("Y0Min");
819  double Y0Max = conf_->getParameter<double>("Y0Max");
820 
821  int Z0Bin = conf_->getParameter<int>("Z0Bin");
822  double Z0Min = conf_->getParameter<double>("Z0Min");
823  double Z0Max = conf_->getParameter<double>("Z0Max");
824 
825  int VZBinProf = conf_->getParameter<int>("VZBinProf");
826  double VZMinProf = conf_->getParameter<double>("VZMinProf");
827  double VZMaxProf = conf_->getParameter<double>("VZMaxProf");
828 
829  ibooker.setCurrentFolder(TopFolder_ + "/GeneralProperties");
830 
831  histname = "DistanceOfClosestApproachError_";
833  ibooker.book1D(histname + CategoryName, histname + CategoryName, DxyErrBin, 0., DxyErrMax);
834  DistanceOfClosestApproachError->setAxisTitle("Track d_{xy} error (cm)", 1);
835  DistanceOfClosestApproachError->setAxisTitle("Number of Tracks", 2);
836 
837  histname = "DistanceOfClosestApproachErrorVsPt_";
839  ibooker.bookProfile(histname + CategoryName, histname + CategoryName, PtBin, PtMin, PtMax, 0., DxyErrMax);
840  DistanceOfClosestApproachErrorVsPt->setAxisTitle("Track p_{T} (GeV)", 1);
841  DistanceOfClosestApproachErrorVsPt->setAxisTitle("Track d_{xy} error (cm)", 2);
842 
843  histname = "DistanceOfClosestApproachErrorVsEta_";
845  ibooker.bookProfile(histname + CategoryName, histname + CategoryName, EtaBin, EtaMin, EtaMax, 0., DxyErrMax);
847  DistanceOfClosestApproachErrorVsEta->setAxisTitle("Track d_{xy} error (cm)", 2);
848 
849  histname = "DistanceOfClosestApproachErrorVsPhi_";
851  ibooker.bookProfile(histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, 0., DxyErrMax);
853  DistanceOfClosestApproachErrorVsPhi->setAxisTitle("Track d_{xy} error (cm)", 2);
854 
855  histname = "DistanceOfClosestApproachErrorVsDxy_";
857  ibooker.bookProfile(histname + CategoryName, histname + CategoryName, DxyBin, DxyMin, DxyMax, 0., DxyErrMax);
859  DistanceOfClosestApproachErrorVsDxy->setAxisTitle("Track d_{xy} error (cm)", 2);
860 
861  histname = "DistanceOfClosestApproachToBS_";
863  ibooker.book1D(histname + CategoryName, histname + CategoryName, DxyBin, DxyMin, DxyMax);
864  DistanceOfClosestApproachToBS->setAxisTitle("Track d_{xy} wrt beam spot (cm)", 1);
865  DistanceOfClosestApproachToBS->setAxisTitle("Number of Tracks", 2);
866 
867  if (Folder == "Tr") {
868  histname = "DistanceOfClosestApproachToBSdz_";
870  ibooker.book1D(histname + CategoryName, histname + CategoryName, 100, -20.1, 20.1);
871  DistanceOfClosestApproachToBSdz->setAxisTitle("Track d_{z} wrt beam spot (cm)", 1);
872  DistanceOfClosestApproachToBSdz->setAxisTitle("Number of Tracks", 2);
873 
874  histname = "DistanceOfClosestApproachToBSVsEta_";
876  histname + CategoryName, histname + CategoryName, EtaBin, EtaMin, EtaMax, DxyBin, DxyMin, DxyMax, "");
878  DistanceOfClosestApproachToBSVsEta->setAxisTitle("Track d_{xy} wrt beam spot (cm)", 2);
879  }
880 
881  histname = "AbsDistanceOfClosestApproachToBS_";
883  ibooker.book1D(histname + CategoryName, histname + CategoryName, AbsDxyBin, AbsDxyMin, AbsDxyMax);
884  AbsDistanceOfClosestApproachToBS->setAxisTitle("Track |d_{xy}| wrt beam spot (cm)", 1);
885  AbsDistanceOfClosestApproachToBS->setAxisTitle("Number of Tracks", 2);
886 
887  histname = "DistanceOfClosestApproachToBSVsPhi_";
889  histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax, "");
891  DistanceOfClosestApproachToBSVsPhi->setAxisTitle("Track d_{xy} wrt beam spot (cm)", 2);
892 
893  histname = "xPointOfClosestApproachVsZ0wrt000_";
895  histname + CategoryName, histname + CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max, "");
897  xPointOfClosestApproachVsZ0wrt000->setAxisTitle("x component of Track PCA to beam line (cm)", 2);
898 
899  histname = "yPointOfClosestApproachVsZ0wrt000_";
901  histname + CategoryName, histname + CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max, "");
903  yPointOfClosestApproachVsZ0wrt000->setAxisTitle("y component of Track PCA to beam line (cm)", 2);
904 
905  histname = "xPointOfClosestApproachVsZ0wrtBS_";
907  histname + CategoryName, histname + CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max, "");
908  xPointOfClosestApproachVsZ0wrtBS->setAxisTitle("d_{z} w.r.t. Beam Spot (cm)", 1);
909  xPointOfClosestApproachVsZ0wrtBS->setAxisTitle("x component of Track PCA to BS (cm)", 2);
910 
911  histname = "yPointOfClosestApproachVsZ0wrtBS_";
913  histname + CategoryName, histname + CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max, "");
914  yPointOfClosestApproachVsZ0wrtBS->setAxisTitle("d_{z} w.r.t. Beam Spot (cm)", 1);
915  yPointOfClosestApproachVsZ0wrtBS->setAxisTitle("y component of Track PCA to BS (cm)", 2);
916 
917  histname = "zPointOfClosestApproachVsPhi_";
919  histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, VZBinProf, VZMinProf, VZMaxProf, "");
920  zPointOfClosestApproachVsPhi->setAxisTitle("Track #phi", 1);
921  zPointOfClosestApproachVsPhi->setAxisTitle("z component of Track PCA to beam line (cm)", 2);
922  }
923 
924  if (doDCAPlots_ || doPVPlots_ || doAllPlots_) {
925  int DxyBin = conf_->getParameter<int>("DxyBin");
926  double DxyMin = conf_->getParameter<double>("DxyMin");
927  double DxyMax = conf_->getParameter<double>("DxyMax");
928 
929  int PhiBin = conf_->getParameter<int>("PhiBin");
930  double PhiMin = conf_->getParameter<double>("PhiMin");
931  double PhiMax = conf_->getParameter<double>("PhiMax");
932 
933  int X0Bin = conf_->getParameter<int>("X0Bin");
934  double X0Min = conf_->getParameter<double>("X0Min");
935  double X0Max = conf_->getParameter<double>("X0Max");
936 
937  int Y0Bin = conf_->getParameter<int>("Y0Bin");
938  double Y0Min = conf_->getParameter<double>("Y0Min");
939  double Y0Max = conf_->getParameter<double>("Y0Max");
940 
941  int Z0Bin = conf_->getParameter<int>("Z0Bin");
942  double Z0Min = conf_->getParameter<double>("Z0Min");
943  double Z0Max = conf_->getParameter<double>("Z0Max");
944 
945  ibooker.setCurrentFolder(TopFolder_ + "/GeneralProperties");
946 
947  histname = "DistanceOfClosestApproachToPV_";
949  ibooker.book1D(histname + CategoryName, histname + CategoryName, DxyBin, DxyMin, DxyMax);
950  DistanceOfClosestApproachToPV->setAxisTitle("Track d_{xy} w.r.t. PV (cm)", 1);
951  DistanceOfClosestApproachToPV->setAxisTitle("Number of Tracks", 2);
952 
953  histname = "DistanceOfClosestApproachToPVZoom_";
955  ibooker.book1D(histname + CategoryName, histname + CategoryName, 100, -0.08, 0.08);
956  DistanceOfClosestApproachToPVZoom->setAxisTitle("Track d_{xy} w.r.t. PV (cm)", 1);
957  DistanceOfClosestApproachToPVZoom->setAxisTitle("Number of Tracks", 2);
958 
959  histname = "DeltaZToPV_";
960  DeltaZToPV = ibooker.book1D(histname + CategoryName, histname + CategoryName, Z0Bin, Z0Min, Z0Max);
961  DeltaZToPV->setAxisTitle("Track d_{z} w.r.t. PV (cm)", 1);
962  DeltaZToPV->setAxisTitle("Number of Tracks", 2);
963 
964  histname = "DeltaZToPVZoom_";
965  DeltaZToPVZoom = ibooker.book1D(histname + CategoryName, histname + CategoryName, 100, -0.15, 0.15);
966  DeltaZToPVZoom->setAxisTitle("Track d_{z} w.r.t. PV (cm)", 1);
967  DeltaZToPVZoom->setAxisTitle("Number of Tracks", 2);
968 
969  histname = "DistanceOfClosestApproachToPVVsPhi_";
971  histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax, "");
973  DistanceOfClosestApproachToPVVsPhi->setAxisTitle("Track d_{xy} w.r.t. PV (cm)", 2);
974 
975  histname = "xPointOfClosestApproachVsZ0wrtPV_";
977  histname + CategoryName, histname + CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max, "");
978  xPointOfClosestApproachVsZ0wrtPV->setAxisTitle("d_{z} w.r.t. PV (cm)", 1);
979  xPointOfClosestApproachVsZ0wrtPV->setAxisTitle("x component of Track PCA to PV (cm)", 2);
980 
981  histname = "yPointOfClosestApproachVsZ0wrtPV_";
983  histname + CategoryName, histname + CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max, "");
984  yPointOfClosestApproachVsZ0wrtPV->setAxisTitle("d_{z} w.r.t. PV (cm)", 1);
985  yPointOfClosestApproachVsZ0wrtPV->setAxisTitle("y component of Track PCA to PV (cm)", 2);
986  }
987 
988  if (doBSPlots_ || doAllPlots_) {
989  if (doTestPlots_) {
990  int DxyBin = conf_->getParameter<int>("DxyBin");
991  double DxyMin = conf_->getParameter<double>("DxyMin");
992  double DxyMax = conf_->getParameter<double>("DxyMax");
993 
994  int PhiBin = conf_->getParameter<int>("PhiBin");
995  double PhiMin = conf_->getParameter<double>("PhiMin");
996  double PhiMax = conf_->getParameter<double>("PhiMax");
997 
998  histname = "TESTDistanceOfClosestApproachToBS_";
1000  ibooker.book1D(histname + CategoryName, histname + CategoryName, DxyBin, DxyMin, DxyMax);
1001  TESTDistanceOfClosestApproachToBS->setAxisTitle("Track d_{xy} wrt beam spot (cm)", 1);
1002  TESTDistanceOfClosestApproachToBS->setAxisTitle("Number of Tracks", 2);
1003 
1004  histname = "TESTDistanceOfClosestApproachToBSVsPhi_";
1006  histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax, "");
1008  TESTDistanceOfClosestApproachToBSVsPhi->setAxisTitle("Track d_{xy} wrt beam spot (cm)", 2);
1009  }
1010  }
1011 
1012  // book the Profile plots for DCA related histograms
1013  // ---------------------------------------------------------------------------------//
1014  if (doDCAPlots_ || doAllPlots_) {
1015  if (doDCAwrt000Plots_) {
1016  int EtaBin = conf_->getParameter<int>("EtaBin");
1017  double EtaMin = conf_->getParameter<double>("EtaMin");
1018  double EtaMax = conf_->getParameter<double>("EtaMax");
1019 
1020  int PhiBin = conf_->getParameter<int>("PhiBin");
1021  double PhiMin = conf_->getParameter<double>("PhiMin");
1022  double PhiMax = conf_->getParameter<double>("PhiMax");
1023 
1024  int DxyBin = conf_->getParameter<int>("DxyBin");
1025  double DxyMin = conf_->getParameter<double>("DxyMin");
1026  double DxyMax = conf_->getParameter<double>("DxyMax");
1027 
1028  if (doThetaPlots_) {
1029  int ThetaBin = conf_->getParameter<int>("ThetaBin");
1030  double ThetaMin = conf_->getParameter<double>("ThetaMin");
1031  double ThetaMax = conf_->getParameter<double>("ThetaMax");
1032 
1033  ibooker.setCurrentFolder(TopFolder_ + "/GeneralProperties");
1034  histname = "DistanceOfClosestApproachVsTheta_";
1036  histname + CategoryName, histname + CategoryName, ThetaBin, ThetaMin, ThetaMax, DxyMin, DxyMax, "");
1037  DistanceOfClosestApproachVsTheta->setAxisTitle("Track #theta", 1);
1038  DistanceOfClosestApproachVsTheta->setAxisTitle("Track d_{xy} wrt (0,0,0) (cm)", 2);
1039  }
1040 
1041  histname = "DistanceOfClosestApproachVsEta_";
1043  histname + CategoryName, histname + CategoryName, EtaBin, EtaMin, EtaMax, DxyMin, DxyMax, "");
1044  DistanceOfClosestApproachVsEta->setAxisTitle("Track #eta", 1);
1045  DistanceOfClosestApproachVsEta->setAxisTitle("Track d_{xy} wrt (0,0,0) (cm)", 2);
1046  // temporary patch in order to put back those MEs in Muon Workspace
1047 
1048  histname = "DistanceOfClosestApproach_";
1050  ibooker.book1D(histname + CategoryName, histname + CategoryName, DxyBin, DxyMin, DxyMax);
1051  DistanceOfClosestApproach->setAxisTitle("Track d_{xy} wrt (0,0,0) (cm)", 1);
1052  DistanceOfClosestApproach->setAxisTitle("Number of Tracks", 2);
1053 
1054  histname = "DistanceOfClosestApproachVsPhi_";
1056  histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, DxyMin, DxyMax, "");
1057  DistanceOfClosestApproachVsPhi->setAxisTitle("Track #phi", 1);
1058  DistanceOfClosestApproachVsPhi->setAxisTitle("Track d_{xy} wrt (0,0,0) (cm)", 2);
1059  }
1060  }
1061 
1062  if (doSIPPlots_ || doAllPlots_) {
1063  const double sipBins = 200;
1064  const double sipMin = -20;
1065  const double sipMax = 20;
1066 
1067  ibooker.setCurrentFolder(TopFolder_ + "/GeneralProperties");
1068 
1069  // SIP wrt. beamspot
1070  histname = "SIPDxyToBS_";
1071  sipDxyToBS = ibooker.book1D(histname + CategoryName, histname + CategoryName, sipBins, sipMin, sipMax);
1072  sipDxyToBS->setAxisTitle("Track dxy significance wrt beam spot", 1);
1073  sipDxyToBS->setAxisTitle("Number of Tracks", 2);
1074 
1075  histname = "SIPDzToBS_";
1076  sipDzToBS = ibooker.book1D(histname + CategoryName, histname + CategoryName, sipBins, sipMin, sipMax);
1077  sipDzToBS->setAxisTitle("Track dz significance wrt beam spot", 1);
1078  sipDzToBS->setAxisTitle("Number of Tracks", 2);
1079 
1080  // SIP wrt. vertex
1081  histname = "SIP3DToPV_";
1082  sip3dToPV = ibooker.book1D(histname + CategoryName, histname + CategoryName, sipBins, sipMin, sipMax);
1083  sip3dToPV->setAxisTitle("3D IP significance wrt primary vertex", 1);
1084  sip3dToPV->setAxisTitle("Number of Tracks", 2);
1085 
1086  histname = "SIP2DToPV_";
1087  sip2dToPV = ibooker.book1D(histname + CategoryName, histname + CategoryName, sipBins, sipMin, sipMax);
1088  sip2dToPV->setAxisTitle("2D IP significance wrt primary vertex", 1);
1089  sip2dToPV->setAxisTitle("Number of Tracks", 2);
1090 
1091  histname = "SIPDxyToPV_";
1092  sipDxyToPV = ibooker.book1D(histname + CategoryName, histname + CategoryName, sipBins, sipMin, sipMax);
1093  sipDxyToPV->setAxisTitle("Track dxy significance wrt primary vertex", 1);
1094  sipDxyToPV->setAxisTitle("Number of Tracks", 2);
1095 
1096  histname = "SIPDzToPV_";
1097  sipDzToPV = ibooker.book1D(histname + CategoryName, histname + CategoryName, sipBins, sipMin, sipMax);
1098  sipDzToPV->setAxisTitle("Track dz significance wrt primary vertex", 1);
1099  sipDzToPV->setAxisTitle("Number of Tracks", 2);
1100  }
1101 }
1102 
1103 // -- Analyse
1104 // ---------------------------------------------------------------------------------//
1106  good_vertices_ = 0;
1107 
1108  edm::Handle<reco::VertexCollection> recoPrimaryVerticesHandle;
1109  iEvent.getByToken(pvToken_, recoPrimaryVerticesHandle);
1110  if (recoPrimaryVerticesHandle.isValid())
1111  if (!recoPrimaryVerticesHandle->empty())
1112  for (const auto& v : *recoPrimaryVerticesHandle)
1113  if (v.ndof() >= pvNDOF_ && !v.isFake())
1114  ++good_vertices_;
1115 }
1116 
1117 void TrackAnalyzer::setBX(const edm::Event& iEvent) { bx_ = iEvent.bunchCrossing(); }
1118 
1120  // as done by pixelLumi http://cmslxr.fnal.gov/source/DQM/PixelLumi/plugins/PixelLumiDQM.cc
1121 
1122  if (forceSCAL_) {
1124  iEvent.getByToken(lumiscalersToken_, lumiScalers);
1125  if (lumiScalers.isValid() && !lumiScalers->empty()) {
1126  LumiScalersCollection::const_iterator scalit = lumiScalers->begin();
1127  scal_lumi_ = scalit->instantLumi();
1128  } else
1129  scal_lumi_ = -1;
1130  } else {
1132  iEvent.getByToken(metaDataToken_, metaData);
1133  if (metaData.isValid())
1134  scal_lumi_ = metaData->instLumi();
1135  else
1136  scal_lumi_ = -1;
1137  }
1138 
1141  if (pixelClusters.isValid()) {
1142  TrackerTopology const& tTopo = iSetup.getData(trackerTopologyToken_);
1143 
1144  // Count the number of clusters with at least a minimum
1145  // number of pixels per cluster and at least a minimum charge.
1146  size_t numClusters = 0;
1147  size_t tot = 0;
1148 
1150  for (; pixCluDet != pixelClusters->end(); ++pixCluDet) {
1151  DetId detid = pixCluDet->detId();
1152  size_t subdetid = detid.subdetId();
1153  // std::cout << tTopo.print(detid) << std::endl;
1154  if (subdetid == (int)PixelSubdetector::PixelBarrel)
1155  if (tTopo.layer(detid) == 1)
1156  continue;
1157 
1159  for (; pixClu != pixCluDet->end(); ++pixClu) {
1160  ++tot;
1161  if ((pixClu->size() >= minNumberOfPixelsPerCluster_) && (pixClu->charge() >= minPixelClusterCharge_)) {
1162  ++numClusters;
1163  }
1164  }
1165  }
1166  pixel_lumi_ = lumi_factor_per_bx_ * numClusters / GetLumi::CM2_TO_NANOBARN; // ?!?!
1167  } else
1168  pixel_lumi_ = -1.;
1169 }
1170 
1172  auto pt = track.pt();
1173  auto phi = track.phi();
1174  // double eta = track.eta();
1175  auto phiIn = track.innerPosition().phi();
1176  auto etaIn = track.innerPosition().eta();
1177  auto phiOut = track.outerPosition().phi();
1178  auto etaOut = track.outerPosition().eta();
1179 
1180  int nRecHits = track.hitPattern().numberOfAllHits(reco::HitPattern::TRACK_HITS);
1181  int nValidRecHits = track.numberOfValidHits();
1182  int nLostRecHits = track.numberOfLostHits();
1183  int nLostIn = track.hitPattern().numberOfLostTrackerHits(reco::HitPattern::MISSING_INNER_HITS);
1184  int nLostOut = track.hitPattern().numberOfLostTrackerHits(reco::HitPattern::MISSING_OUTER_HITS);
1185 
1186  auto chi2 = track.chi2();
1187  auto chi2prob = TMath::Prob(track.chi2(), (int)track.ndof());
1188  auto chi2oNDF = track.normalizedChi2();
1189 
1190  std::string Folder = TopFolder_.substr(0, 2);
1191 
1193  // rec hits
1194  NumberOfRecHitsPerTrack->Fill(nRecHits);
1195  NumberOfValidRecHitsPerTrack->Fill(nValidRecHits);
1196  NumberOfLostRecHitsPerTrack->Fill(nLostRecHits);
1197  NumberOfMIRecHitsPerTrack->Fill(nLostIn);
1198  NumberOfMORecHitsPerTrack->Fill(nLostOut);
1199  ValidFractionPerTrack->Fill(track.validFraction());
1200 
1201  // 2D plots
1203  NumberOfValidRecHitVsPhiVsEtaPerTrack->Fill(etaIn, phiIn, nValidRecHits);
1204  NumberOfLostRecHitVsPhiVsEtaPerTrack->Fill(etaIn, phiIn, nLostRecHits);
1205  NumberOfMIRecHitVsPhiVsEtaPerTrack->Fill(etaIn, phiIn, nLostIn);
1206  NumberOfMORecHitVsPhiVsEtaPerTrack->Fill(etaOut, phiOut, nLostOut);
1207  ValidFractionVsPhiVsEtaPerTrack->Fill(etaIn, phiIn, track.validFraction());
1208  }
1210  NumberOfValidRecHitVsPtVsEtaPerTrack->Fill(etaIn, pt, nValidRecHits);
1211  NumberOfLostRecHitVsPtVsEtaPerTrack->Fill(etaIn, pt, nLostRecHits);
1212  NumberOfMIRecHitVsPtVsEtaPerTrack->Fill(etaIn, pt, nLostIn);
1213  NumberOfMORecHitVsPtVsEtaPerTrack->Fill(etaOut, pt, nLostOut);
1214  }
1215  NumberOfValidRecHitsPerTrackVsPt->Fill(pt, nValidRecHits);
1216  NumberOfLostRecHitsPerTrackVsPt->Fill(pt, nLostRecHits);
1219 
1220  int nLayers[5] = {track.hitPattern().trackerLayersWithMeasurement(),
1221  track.hitPattern().trackerLayersTotallyOffOrBad(),
1222  track.hitPattern().numberOfValidStripLayersWithMonoAndStereo() +
1223  track.hitPattern().pixelLayersWithMeasurement(),
1224  track.hitPattern().trackerLayersWithoutMeasurement(reco::HitPattern::TRACK_HITS),
1225  track.hitPattern().pixelLayersWithMeasurement()};
1226 
1227  // layers
1228  for (int i = 0; i < 4; ++i)
1230 
1231  // 2D plots
1233  for (int i = 0; i < 5; ++i)
1234  NumberOfLayersVsPhiVsEtaPerTrack[i]->Fill(etaIn, phiIn, nLayers[i]);
1235  }
1236 
1240  fillHistosForEfficiencyFromHitPatter(track, "VsBX", float(bx_), false);
1242  fillHistosForEfficiencyFromHitPatter(track, "VsSCALLUMI", scal_lumi_, false);
1243  // if (doEffFromHitPatternVsLUMI_ || doAllPlots_) fillHistosForEfficiencyFromHitPatter(track,"VsPIXELLUMI", pixel_lumi_ );
1248 
1250  // fitting
1251  Chi2->Fill(chi2);
1252  Chi2Prob->Fill(chi2prob);
1253  Chi2oNDF->Fill(chi2oNDF);
1254 
1255  // DCA
1256  // temporary patch in order to put back those MEs in Muon Workspace
1257  if (doDCAPlots_) {
1258  if (doDCAwrt000Plots_) {
1261  }
1262 
1263  // PCA
1264  xPointOfClosestApproach->Fill(track.referencePoint().x());
1265  yPointOfClosestApproach->Fill(track.referencePoint().y());
1266  zPointOfClosestApproach->Fill(track.referencePoint().z());
1267  }
1268 
1269  // algorithm
1270  algorithm->Fill(static_cast<double>(track.algo()));
1271  oriAlgo->Fill(static_cast<double>(track.originalAlgo()));
1272 
1273  // stopping source
1274  int max = stoppingSource->getNbinsX();
1275  double stop = track.stopReason() > max ? double(max - 1) : static_cast<double>(track.stopReason());
1276  double stopped = int(StopReason::NOT_STOPPED) == track.stopReason() ? 0. : 1.;
1277  stoppingSource->Fill(stop);
1278  stoppingSourceVSeta->Fill(track.eta(), stopped);
1279  stoppingSourceVSphi->Fill(track.phi(), stopped);
1280  }
1281 
1282  if (doLumiAnalysis_) {
1284  Chi2oNDF_lumiFlag->Fill(chi2oNDF);
1285  }
1286 
1288  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
1289  iEvent.getByToken(beamSpotToken_, recoBeamSpotHandle);
1290  const reco::BeamSpot& bs = *recoBeamSpotHandle;
1291 
1296  DistanceOfClosestApproachErrorVsDxy->Fill(track.dxy(bs.position()), track.dxyError());
1297 
1298  DistanceOfClosestApproachToBS->Fill(track.dxy(bs.position()));
1299 
1300  if (Folder == "Tr") {
1301  DistanceOfClosestApproachToBSdz->Fill(track.dz(bs.position()));
1302  DistanceOfClosestApproachToBSVsEta->Fill(track.eta(), track.dxy(bs.position()));
1303  }
1304 
1306  DistanceOfClosestApproachToBSVsPhi->Fill(track.phi(), track.dxy(bs.position()));
1310  xPointOfClosestApproachVsZ0wrtBS->Fill(track.dz(bs.position()), (track.vx() - bs.position(track.vz()).x()));
1311  yPointOfClosestApproachVsZ0wrtBS->Fill(track.dz(bs.position()), (track.vy() - bs.position(track.vz()).y()));
1312  if (doTestPlots_) {
1313  TESTDistanceOfClosestApproachToBS->Fill(track.dxy(bs.position(track.vz())));
1314  TESTDistanceOfClosestApproachToBSVsPhi->Fill(track.phi(), track.dxy(bs.position(track.vz())));
1315  }
1316 
1317  if (doSIPPlots_) {
1318  sipDxyToBS->Fill(track.dxy(bs.position()) / track.dxyError());
1319  sipDzToBS->Fill(track.dz(bs.position()) / track.dzError());
1320  }
1321  }
1322 
1324  edm::Handle<reco::VertexCollection> recoPrimaryVerticesHandle;
1325  iEvent.getByToken(pvToken_, recoPrimaryVerticesHandle);
1326  if (recoPrimaryVerticesHandle.isValid() && !recoPrimaryVerticesHandle->empty()) {
1327  const reco::Vertex& pv = (*recoPrimaryVerticesHandle)[0];
1328 
1330  //HI PLOTS///////
1332 
1333  if (doHIPlots_) {
1334  double longDCAsig = 0, transDCAsig = 0;
1335  double zerr2 = track.dzError() * track.dzError() + pv.zError() * pv.zError();
1336  double xyerr2 = track.d0Error() * track.d0Error() + pv.xError() * pv.yError();
1337  if (zerr2 > 0)
1338  longDCAsig = track.dz(pv.position()) / zerr2;
1339  if (xyerr2 > 0)
1340  transDCAsig = track.dxy(pv.position()) / xyerr2;
1341  LongDCASig->Fill(longDCAsig);
1342  TransDCASig->Fill(transDCAsig);
1343 
1345  dNdEta_HighPurity->Fill(track.eta());
1346  dNdPhi_HighPurity->Fill(track.phi());
1347  dNdPt_HighPurity->Fill(track.ptError() / track.pt());
1348  NhitVsEta_HighPurity->Fill(track.eta(), track.numberOfValidHits());
1349  NhitVsPhi_HighPurity->Fill(track.phi(), track.numberOfValidHits());
1350  dNhitdPt_HighPurity->Fill(track.pt(), track.numberOfValidHits());
1351  Ptdist_HighPurity->Fill(track.pt());
1352  } //end of high quality tracks requirement
1353  }
1354 
1355  xPointOfClosestApproachToPV->Fill(track.vx() - pv.position().x());
1356  yPointOfClosestApproachToPV->Fill(track.vy() - pv.position().y());
1357  zPointOfClosestApproachToPV->Fill(track.dz(pv.position()));
1358  DistanceOfClosestApproachToPV->Fill(track.dxy(pv.position()));
1359  DeltaZToPV->Fill(track.dz(pv.position()));
1360  DistanceOfClosestApproachToPVZoom->Fill(track.dxy(pv.position()));
1361  DeltaZToPVZoom->Fill(track.dz(pv.position()));
1362  DistanceOfClosestApproachToPVVsPhi->Fill(track.phi(), track.dxy(pv.position()));
1363  xPointOfClosestApproachVsZ0wrtPV->Fill(track.dz(pv.position()), (track.vx() - pv.position().x()));
1364  yPointOfClosestApproachVsZ0wrtPV->Fill(track.dz(pv.position()), (track.vy() - pv.position().y()));
1365 
1366  if (doSIPPlots_) {
1368  reco::TransientTrack transTrack = theB.build(track);
1369 
1370  GlobalVector dir(track.px(), track.py(), track.pz());
1371  std::pair<bool, Measurement1D> ip3d = IPTools::signedImpactParameter3D(transTrack, dir, pv);
1372  std::pair<bool, Measurement1D> ip2d = IPTools::signedTransverseImpactParameter(transTrack, dir, pv);
1373  if (ip3d.first)
1374  sip3dToPV->Fill(ip3d.second.value() / ip3d.second.error());
1375  if (ip2d.first)
1376  sip2dToPV->Fill(ip2d.second.value() / ip2d.second.error());
1377  sipDxyToPV->Fill(track.dxy(pv.position()) / track.dxyError());
1378  sipDzToPV->Fill(track.dz(pv.position()) / track.dzError());
1379  }
1380  }
1381  }
1382 
1383  if (doDCAPlots_ || doAllPlots_) {
1384  if (doDCAwrt000Plots_) {
1385  if (doThetaPlots_) {
1387  }
1389  }
1390  }
1391 
1392  //Tracker Specific Histograms
1395  }
1397  if (stateName_ == "All") {
1398  fillHistosForState(iSetup, track, std::string("OuterSurface"));
1399  fillHistosForState(iSetup, track, std::string("InnerSurface"));
1400  fillHistosForState(iSetup, track, std::string("ImpactPoint"));
1401  } else if (stateName_ != "OuterSurface" && stateName_ != "InnerSurface" && stateName_ != "ImpactPoint" &&
1402  stateName_ != "default") {
1403  fillHistosForState(iSetup, track, std::string("default"));
1404  } else {
1406  }
1407  }
1408 
1409  if (doAllPlots_) {
1410  }
1411 }
1412 
1414  const std::string suffix,
1415  const float monitoring,
1416  bool useInac) {
1417  int mon = -1;
1418  for (int i = 0; i < monQuantity::END; i++) {
1419  if (monName[i] == suffix)
1420  mon = i;
1421  }
1422  if (useInac)
1423  mon += monQuantity::END;
1424 
1425  // if (track.pt() > 1.0 && track.dxy() < 0.1 and monitoring > 0) {
1426  if (track.pt() > 1.0 && track.dxy() < 0.1 and monitoring > -9.) {
1427  auto hp = track.hitPattern();
1428  // Here hit_category is meant to iterate over
1429  // reco::HitPattern::HitCategory, defined here:
1430  // http://cmslxr.fnal.gov/dxr/CMSSW/source/DataFormats/TrackReco/interface/HitPattern.h
1431  for (unsigned int category = 0; category < 3; ++category) {
1432  for (int hit = 0; hit < hp.numberOfAllHits((reco::HitPattern::HitCategory)(category)); ++hit) {
1433  auto pattern = hp.getHitPattern((reco::HitPattern::HitCategory)(category), hit);
1434  // Boolean bad is missing simply because it is inferred and the only missing case.
1435  bool valid = hp.validHitFilter(pattern);
1436  bool missing = hp.missingHitFilter(pattern);
1437  bool inactive = hp.inactiveHitFilter(pattern);
1438  int hit_type = -1;
1439  hit_type = valid ? 0 : (missing ? 1 : (inactive ? 2 : 3));
1440  if (hits_valid_.find(Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern), mon)) ==
1441  hits_valid_.end()) {
1442  LogDebug("TrackAnalyzer") << "Invalid combination of detector and subdetector: ("
1443  << hp.getSubStructure(pattern) << ", " << hp.getSubSubStructure(pattern) << ", "
1444  << mon << "): ignoring it.\n";
1445  continue;
1446  }
1447  switch (hit_type) {
1448  case 0:
1449  hits_valid_[Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern), mon)]->Fill(monitoring);
1450  hits_total_[Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern), mon)]->Fill(monitoring);
1451  break;
1452  case 2:
1453  if (!useInac)
1454  break;
1455  [[fallthrough]];
1456  case 1:
1457  hits_total_[Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern), mon)]->Fill(monitoring);
1458  break;
1459  default:
1460  LogDebug("TrackAnalyzer") << "Invalid hit category used " << hit_type << " ignored\n";
1461  }
1462  }
1463  }
1464  }
1465 }
1466 
1467 // book histograms at differnt measurement points
1468 // ---------------------------------------------------------------------------------//
1470  // parameters from the configuration
1471  std::string QualName = conf_->getParameter<std::string>("Quality");
1473  std::string Folder = TopFolder_.substr(0, 2);
1474 
1475  // use the AlgoName and Quality Name
1476  std::string CategoryName = !QualName.empty() ? AlgoName + "_" + QualName : AlgoName;
1477 
1478  // get binning from the configuration
1479  double Chi2NDFMin = conf_->getParameter<double>("Chi2NDFMin");
1480  double Chi2NDFMax = conf_->getParameter<double>("Chi2NDFMax");
1481 
1482  int RecHitBin = conf_->getParameter<int>("RecHitBin");
1483  double RecHitMin = conf_->getParameter<double>("RecHitMin");
1484  double RecHitMax = conf_->getParameter<double>("RecHitMax");
1485 
1486  int RecLayBin = conf_->getParameter<int>("RecHitBin");
1487  double RecLayMin = conf_->getParameter<double>("RecHitMin");
1488  double RecLayMax = conf_->getParameter<double>("RecHitMax");
1489 
1490  int PhiBin = conf_->getParameter<int>("PhiBin");
1491  double PhiMin = conf_->getParameter<double>("PhiMin");
1492  double PhiMax = conf_->getParameter<double>("PhiMax");
1493 
1494  int EtaBin = conf_->getParameter<int>("EtaBin");
1495  double EtaMin = conf_->getParameter<double>("EtaMin");
1496  double EtaMax = conf_->getParameter<double>("EtaMax");
1497 
1498  int Phi2DBin = conf_->getParameter<int>("Phi2DBin");
1499  int Eta2DBin = conf_->getParameter<int>("Eta2DBin");
1500 
1501  int ThetaBin = conf_->getParameter<int>("ThetaBin");
1502  double ThetaMin = conf_->getParameter<double>("ThetaMin");
1503  double ThetaMax = conf_->getParameter<double>("ThetaMax");
1504 
1505  int TrackQBin = conf_->getParameter<int>("TrackQBin");
1506  double TrackQMin = conf_->getParameter<double>("TrackQMin");
1507  double TrackQMax = conf_->getParameter<double>("TrackQMax");
1508 
1509  int TrackPtBin = conf_->getParameter<int>("TrackPtBin");
1510  double TrackPtMin = conf_->getParameter<double>("TrackPtMin");
1511  double TrackPtMax = conf_->getParameter<double>("TrackPtMax");
1512 
1513  int TrackPBin = conf_->getParameter<int>("TrackPBin");
1514  double TrackPMin = conf_->getParameter<double>("TrackPMin");
1515  double TrackPMax = conf_->getParameter<double>("TrackPMax");
1516 
1517  int TrackPxBin = conf_->getParameter<int>("TrackPxBin");
1518  double TrackPxMin = conf_->getParameter<double>("TrackPxMin");
1519  double TrackPxMax = conf_->getParameter<double>("TrackPxMax");
1520 
1521  int TrackPyBin = conf_->getParameter<int>("TrackPyBin");
1522  double TrackPyMin = conf_->getParameter<double>("TrackPyMin");
1523  double TrackPyMax = conf_->getParameter<double>("TrackPyMax");
1524 
1525  int TrackPzBin = conf_->getParameter<int>("TrackPzBin");
1526  double TrackPzMin = conf_->getParameter<double>("TrackPzMin");
1527  double TrackPzMax = conf_->getParameter<double>("TrackPzMax");
1528 
1529  int ptErrBin = conf_->getParameter<int>("ptErrBin");
1530  double ptErrMin = conf_->getParameter<double>("ptErrMin");
1531  double ptErrMax = conf_->getParameter<double>("ptErrMax");
1532 
1533  int pxErrBin = conf_->getParameter<int>("pxErrBin");
1534  double pxErrMin = conf_->getParameter<double>("pxErrMin");
1535  double pxErrMax = conf_->getParameter<double>("pxErrMax");
1536 
1537  int pyErrBin = conf_->getParameter<int>("pyErrBin");
1538  double pyErrMin = conf_->getParameter<double>("pyErrMin");
1539  double pyErrMax = conf_->getParameter<double>("pyErrMax");
1540 
1541  int pzErrBin = conf_->getParameter<int>("pzErrBin");
1542  double pzErrMin = conf_->getParameter<double>("pzErrMin");
1543  double pzErrMax = conf_->getParameter<double>("pzErrMax");
1544 
1545  int pErrBin = conf_->getParameter<int>("pErrBin");
1546  double pErrMin = conf_->getParameter<double>("pErrMin");
1547  double pErrMax = conf_->getParameter<double>("pErrMax");
1548 
1549  int phiErrBin = conf_->getParameter<int>("phiErrBin");
1550  double phiErrMin = conf_->getParameter<double>("phiErrMin");
1551  double phiErrMax = conf_->getParameter<double>("phiErrMax");
1552 
1553  int etaErrBin = conf_->getParameter<int>("etaErrBin");
1554  double etaErrMin = conf_->getParameter<double>("etaErrMin");
1555  double etaErrMax = conf_->getParameter<double>("etaErrMax");
1556 
1557  double Chi2ProbMin = conf_->getParameter<double>("Chi2ProbMin");
1558  double Chi2ProbMax = conf_->getParameter<double>("Chi2ProbMax");
1559 
1560  ibooker.setCurrentFolder(TopFolder_);
1561 
1562  TkParameterMEs tkmes;
1563 
1564  std::string histTag = (sname == "default") ? CategoryName : sname + "_" + CategoryName;
1565 
1566  if (doAllPlots_) {
1567  // general properties
1568  ibooker.setCurrentFolder(TopFolder_ + "/GeneralProperties");
1569 
1570  if (doThetaPlots_) {
1571  histname = "Chi2oNDFVsTheta_" + histTag;
1572  tkmes.Chi2oNDFVsTheta =
1574  tkmes.Chi2oNDFVsTheta->setAxisTitle("Track #theta", 1);
1575  tkmes.Chi2oNDFVsTheta->setAxisTitle("Track #chi^{2}/ndf", 2);
1576  }
1577  histname = "Chi2oNDFVsPhi_" + histTag;
1579  tkmes.Chi2oNDFVsPhi->setAxisTitle("Track #phi", 1);
1580  tkmes.Chi2oNDFVsPhi->setAxisTitle("Track #chi^{2}/ndf", 2);
1581 
1582  histname = "Chi2ProbVsPhi_" + histTag;
1583  tkmes.Chi2ProbVsPhi = ibooker.bookProfile(
1584  histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, Chi2ProbMin, Chi2ProbMax);
1585  tkmes.Chi2ProbVsPhi->setAxisTitle("Tracks #phi", 1);
1586  tkmes.Chi2ProbVsPhi->setAxisTitle("Track #chi^{2} probability", 2);
1587 
1588  histname = "Chi2ProbVsEta_" + histTag;
1589  tkmes.Chi2ProbVsEta = ibooker.bookProfile(
1590  histname + CategoryName, histname + CategoryName, EtaBin, EtaMin, EtaMax, Chi2ProbMin, Chi2ProbMax);
1591  tkmes.Chi2ProbVsEta->setAxisTitle("Tracks #eta", 1);
1592  tkmes.Chi2ProbVsEta->setAxisTitle("Track #chi^{2} probability", 2);
1593  }
1594 
1595  // general properties
1596  ibooker.setCurrentFolder(TopFolder_ + "/GeneralProperties");
1597 
1598  histname = "Chi2oNDFVsEta_" + histTag;
1600  tkmes.Chi2oNDFVsEta->setAxisTitle("Track #eta", 1);
1601  tkmes.Chi2oNDFVsEta->setAxisTitle("Track #chi^{2}/ndf", 2);
1602 
1603  histname = "Chi2oNDFVsPt_" + histTag;
1604  tkmes.Chi2oNDFVsPt =
1606  tkmes.Chi2oNDFVsPt->setAxisTitle("Track p_{T} (GeV/c)", 1);
1607  tkmes.Chi2oNDFVsPt->setAxisTitle("Track #chi^{2}/ndf", 2);
1608 
1609  histname = "Chi2oNDFVsNHits_" + histTag;
1610  tkmes.Chi2oNDFVsNHits = ibooker.bookProfile(histname, histname, 50, 0., 50, Chi2NDFMin, Chi2NDFMax, "");
1611  tkmes.Chi2oNDFVsNHits->setAxisTitle("Track NHits", 1);
1612  tkmes.Chi2oNDFVsNHits->setAxisTitle("Track #chi^{2}/ndf", 2);
1613 
1614  histname = "TrackP_" + histTag;
1616  tkmes.TrackP->setAxisTitle("Track |p| (GeV/c)", 1);
1617  tkmes.TrackP->setAxisTitle("Number of Tracks", 2);
1618 
1619  histname = "TrackPt_" + histTag;
1621  tkmes.TrackPt->setAxisTitle("Track p_{T} (GeV/c)", 1);
1622  tkmes.TrackPt->setAxisTitle("Number of Tracks", 2);
1623 
1624  if (doTrackPxPyPlots_) {
1625  histname = "TrackPx_" + histTag;
1627  tkmes.TrackPx->setAxisTitle("Track p_{x} (GeV/c)", 1);
1628  tkmes.TrackPx->setAxisTitle("Number of Tracks", 2);
1629 
1630  histname = "TrackPy_" + histTag;
1632  tkmes.TrackPy->setAxisTitle("Track p_{y} (GeV/c)", 1);
1633  tkmes.TrackPy->setAxisTitle("Number of Tracks", 2);
1634  }
1635  histname = "TrackPz_" + histTag;
1637  tkmes.TrackPz->setAxisTitle("Track p_{z} (GeV/c)", 1);
1638  tkmes.TrackPz->setAxisTitle("Number of Tracks", 2);
1639 
1640  histname = "TrackPhi_" + histTag;
1641  tkmes.TrackPhi = ibooker.book1D(histname, histname, PhiBin, PhiMin, PhiMax);
1642  tkmes.TrackPhi->setAxisTitle("Track #phi", 1);
1643  tkmes.TrackPhi->setAxisTitle("Number of Tracks", 2);
1644 
1645  histname = "TrackEta_" + histTag;
1646  tkmes.TrackEta = ibooker.book1D(histname, histname, EtaBin, EtaMin, EtaMax);
1647  tkmes.TrackEta->setAxisTitle("Track #eta", 1);
1648  tkmes.TrackEta->setAxisTitle("Number of Tracks", 2);
1649 
1650  if (Folder == "Tr") {
1651  histname = "TrackPtHighPurity_" + histTag;
1653  tkmes.TrackPtHighPurity->setAxisTitle("Track p_{T} (GeV/c)", 1);
1654  tkmes.TrackPtHighPurity->setAxisTitle("Number of High Purity Tracks", 2);
1655 
1656  histname = "TrackPtTight_" + histTag;
1658  tkmes.TrackPtTight->setAxisTitle("Track p_{T} (GeV/c)", 1);
1659  tkmes.TrackPtTight->setAxisTitle("Number of Tight Tracks", 2);
1660 
1661  histname = "TrackPtLoose_" + histTag;
1663  tkmes.TrackPtLoose->setAxisTitle("Track p_{T} (GeV/c)", 1);
1664  tkmes.TrackPtLoose->setAxisTitle("Number of Loose Tracks", 2);
1665 
1666  histname = "Quality_";
1667  tkmes.Quality = ibooker.book1D(histname + CategoryName, histname + CategoryName, 3, 0., 3.);
1668  tkmes.Quality->setAxisTitle("Track quality", 1);
1669  tkmes.Quality->setAxisTitle("Number of Tracks", 2);
1670 
1671  for (size_t ibin = 0; ibin < 3; ibin++) {
1672  tkmes.Quality->setBinLabel(ibin + 1, reco::TrackBase::qualityNames[ibin]);
1673  }
1674 
1675  histname = "TrackPt_NegEta_Phi_btw_neg16_neg32_" + histTag;
1677  tkmes.TrackPt_NegEta_Phi_btw_neg16_neg32->setAxisTitle("Track p_{T} (GeV/c)", 1);
1678  tkmes.TrackPt_NegEta_Phi_btw_neg16_neg32->setAxisTitle("Number of Tracks", 2);
1679 
1680  histname = "TrackPt_NegEta_Phi_btw_0_neg16_" + histTag;
1682  tkmes.TrackPt_NegEta_Phi_btw_0_neg16->setAxisTitle("Track p_{T} (GeV/c)", 1);
1683  tkmes.TrackPt_NegEta_Phi_btw_0_neg16->setAxisTitle("Number of Tracks", 2);
1684 
1685  histname = "TrackPt_NegEta_Phi_btw_16_0_" + histTag;
1687  tkmes.TrackPt_NegEta_Phi_btw_16_0->setAxisTitle("Track p_{T} (GeV/c)", 1);
1688  tkmes.TrackPt_NegEta_Phi_btw_16_0->setAxisTitle("Number of Tracks", 2);
1689 
1690  histname = "TrackPt_NegEta_Phi_btw_32_16_" + histTag;
1692  tkmes.TrackPt_NegEta_Phi_btw_32_16->setAxisTitle("Track p_{T} (GeV/c)", 1);
1693  tkmes.TrackPt_NegEta_Phi_btw_32_16->setAxisTitle("Number of Tracks", 2);
1694 
1695  histname = "TrackPt_PosEta_Phi_btw_neg16_neg32_" + histTag;
1697  tkmes.TrackPt_PosEta_Phi_btw_neg16_neg32->setAxisTitle("Track p_{T} (GeV/c)", 1);
1698  tkmes.TrackPt_PosEta_Phi_btw_neg16_neg32->setAxisTitle("Number of Tracks", 2);
1699 
1700  histname = "TrackPt_PosEta_Phi_btw_0_neg16_" + histTag;
1702  tkmes.TrackPt_PosEta_Phi_btw_0_neg16->setAxisTitle("Track p_{T} (GeV/c)", 1);
1703  tkmes.TrackPt_PosEta_Phi_btw_0_neg16->setAxisTitle("Number of Tracks", 2);
1704 
1705  histname = "TrackPt_PosEta_Phi_btw_16_0_" + histTag;
1707  tkmes.TrackPt_PosEta_Phi_btw_16_0->setAxisTitle("Track p_{T} (GeV/c)", 1);
1708  tkmes.TrackPt_PosEta_Phi_btw_16_0->setAxisTitle("Number of Tracks", 2);
1709 
1710  histname = "TrackPt_PosEta_Phi_btw_32_16_" + histTag;
1712  tkmes.TrackPt_PosEta_Phi_btw_32_16->setAxisTitle("Track p_{T} (GeV/c)", 1);
1713  tkmes.TrackPt_PosEta_Phi_btw_32_16->setAxisTitle("Number of Tracks", 2);
1714 
1715  histname = "Ratio_byFolding_" + histTag;
1717  tkmes.Ratio_byFolding->setAxisTitle("Track p_{T} (GeV/c)", 1);
1718 
1719  histname = "Ratio_byFolding2_" + histTag;
1721  tkmes.Ratio_byFolding2->setAxisTitle("Track p_{T} (GeV/c)", 1);
1722 
1723  histname = "TrackEtaHighpurity_" + histTag;
1725  tkmes.TrackEtaHighPurity->setAxisTitle("Track #eta", 1);
1726  tkmes.TrackEtaHighPurity->setAxisTitle("Number of High Purity Tracks", 2);
1727 
1728  histname = "TrackEtaTight_" + histTag;
1729  tkmes.TrackEtaTight = ibooker.book1D(histname, histname, EtaBin, EtaMin, EtaMax);
1730  tkmes.TrackEtaTight->setAxisTitle("Track #eta", 1);
1731  tkmes.TrackEtaTight->setAxisTitle("Number of Tight Tracks", 2);
1732 
1733  histname = "TrackEtaLoose_" + histTag;
1734  tkmes.TrackEtaLoose = ibooker.book1D(histname, histname, EtaBin, EtaMin, EtaMax);
1735  tkmes.TrackEtaLoose->setAxisTitle("Track #eta", 1);
1736  tkmes.TrackEtaLoose->setAxisTitle("Number of Loose Tracks", 2);
1737 
1738  histname = "TrackEtaPhiInverted_" + histTag;
1740  tkmes.TrackEtaPhiInverted->setAxisTitle("Track #eta", 1);
1741  tkmes.TrackEtaPhiInverted->setAxisTitle("Track #phi", 2);
1742 
1743  histname = "TrackEtaPhiInvertedoutofphase_" + histTag;
1746  tkmes.TrackEtaPhiInvertedoutofphase->setAxisTitle("Track #eta", 1);
1747  tkmes.TrackEtaPhiInvertedoutofphase->setAxisTitle("Track #phi", 2);
1748 
1749  histname = "TkEtaPhi_Ratio_byFoldingmap_" + histTag;
1752  tkmes.TkEtaPhi_Ratio_byFoldingmap->setAxisTitle("Track #eta", 1);
1753  tkmes.TkEtaPhi_Ratio_byFoldingmap->setAxisTitle("Track #phi", 2);
1754 
1755  histname = "TkEtaPhi_Ratio_byFoldingmap_op_" + histTag;
1758  tkmes.TkEtaPhi_Ratio_byFoldingmap_op->setAxisTitle("Track #eta", 1);
1759  tkmes.TkEtaPhi_Ratio_byFoldingmap_op->setAxisTitle("Track #phi", 2);
1760 
1761  histname = "TkEtaPhi_RelativeDifference_byFoldingmap_" + histTag;
1766 
1767  histname = "TkEtaPhi_RelativeDifference_byFoldingmap_op_" + histTag;
1772 
1773  histname = "TrackQoverP_" + histTag;
1774  tkmes.TrackQoverP = ibooker.book1D(histname, histname, 10 * TrackQBin, TrackQMin, TrackQMax);
1775  tkmes.TrackQoverP->setAxisTitle("Track QoverP", 1);
1776  tkmes.TrackQoverP->setAxisTitle("Number of Tracks", 2);
1777  }
1778 
1779  histname = "TrackEtaPhi_" + histTag;
1781  tkmes.TrackEtaPhi->setAxisTitle("Track #eta", 1);
1782  tkmes.TrackEtaPhi->setAxisTitle("Track #phi", 2);
1783 
1784  histname = "TrackEtaPhiInner_" + histTag;
1786  tkmes.TrackEtaPhiInner->setAxisTitle("Track #eta", 1);
1787  tkmes.TrackEtaPhiInner->setAxisTitle("Track #phi", 2);
1788 
1789  histname = "TrackEtaPhiOuter_" + histTag;
1791  tkmes.TrackEtaPhiOuter->setAxisTitle("Track #eta", 1);
1792  tkmes.TrackEtaPhiOuter->setAxisTitle("Track #phi", 2);
1793 
1794  if (doThetaPlots_) {
1795  histname = "TrackTheta_" + histTag;
1797  tkmes.TrackTheta->setAxisTitle("Track #theta", 1);
1798  tkmes.TrackTheta->setAxisTitle("Number of Tracks", 2);
1799  }
1800  histname = "TrackQ_" + histTag;
1802  tkmes.TrackQ->setAxisTitle("Track Charge", 1);
1803  tkmes.TrackQ->setAxisTitle("Number of Tracks", 2);
1804 
1805  histname = "TrackPErrOverP_" + histTag;
1806  tkmes.TrackPErr = ibooker.book1D(histname, histname, pErrBin, pErrMin, pErrMax);
1807  tkmes.TrackPErr->setAxisTitle("track error(p)/p", 1);
1808  tkmes.TrackPErr->setAxisTitle("Number of Tracks", 2);
1809 
1810  histname = "TrackPtErrOverPt_" + histTag;
1812  tkmes.TrackPtErr->setAxisTitle("track error(p_{T})/p_{T}", 1);
1813  tkmes.TrackPtErr->setAxisTitle("Number of Tracks", 2);
1814 
1815  histname = "TrackPtErrOverPtVsEta_" + histTag;
1817  tkmes.TrackPtErrVsEta->setAxisTitle("Track #eta", 1);
1818  tkmes.TrackPtErrVsEta->setAxisTitle("track error(p_{T})/p_{T}", 2);
1819 
1820  if (doTrackPxPyPlots_) {
1821  histname = "TrackPxErrOverPx_" + histTag;
1823  tkmes.TrackPxErr->setAxisTitle("track error(p_{x})/p_{x}", 1);
1824  tkmes.TrackPxErr->setAxisTitle("Number of Tracks", 2);
1825 
1826  histname = "TrackPyErrOverPy_" + histTag;
1828  tkmes.TrackPyErr->setAxisTitle("track error(p_{y})/p_{y}", 1);
1829  tkmes.TrackPyErr->setAxisTitle("Number of Tracks", 2);
1830  }
1831  histname = "TrackPzErrOverPz_" + histTag;
1833  tkmes.TrackPzErr->setAxisTitle("track error(p_{z})/p_{z}", 1);
1834  tkmes.TrackPzErr->setAxisTitle("Number of Tracks", 2);
1835 
1836  histname = "TrackPhiErr_" + histTag;
1838  tkmes.TrackPhiErr->setAxisTitle("track error(#phi)");
1839  tkmes.TrackPhiErr->setAxisTitle("Number of Tracks", 2);
1840 
1841  histname = "TrackEtaErr_" + histTag;
1843  tkmes.TrackEtaErr->setAxisTitle("track error(#eta)");
1844  tkmes.TrackEtaErr->setAxisTitle("Number of Tracks", 2);
1845 
1846  // rec hit profiles
1847  ibooker.setCurrentFolder(TopFolder_ + "/GeneralProperties");
1848  histname = "NumberOfRecHitsPerTrackVsPhi_" + histTag;
1851  tkmes.NumberOfRecHitsPerTrackVsPhi->setAxisTitle("Track #phi", 1);
1852  tkmes.NumberOfRecHitsPerTrackVsPhi->setAxisTitle("Number of RecHits in each Track", 2);
1853 
1854  if (doThetaPlots_) {
1855  histname = "NumberOfRecHitsPerTrackVsTheta_" + histTag;
1858  tkmes.NumberOfRecHitsPerTrackVsTheta->setAxisTitle("Track #phi", 1);
1859  tkmes.NumberOfRecHitsPerTrackVsTheta->setAxisTitle("Number of RecHits in each Track", 2);
1860  }
1861  histname = "NumberOfRecHitsPerTrackVsEta_" + histTag;
1864  tkmes.NumberOfRecHitsPerTrackVsEta->setAxisTitle("Track #eta", 1);
1865  tkmes.NumberOfRecHitsPerTrackVsEta->setAxisTitle("Number of RecHits in each Track", 2);
1866 
1867  histname = "NumberOfValidRecHitsPerTrackVsPhi_" + histTag;
1870  tkmes.NumberOfValidRecHitsPerTrackVsPhi->setAxisTitle("Track #phi", 1);
1871  tkmes.NumberOfValidRecHitsPerTrackVsPhi->setAxisTitle("Number of valid RecHits in each Track", 2);
1872 
1873  histname = "NumberOfValidRecHitsPerTrackVsEta_" + histTag;
1876  tkmes.NumberOfValidRecHitsPerTrackVsEta->setAxisTitle("Track #eta", 1);
1877  tkmes.NumberOfValidRecHitsPerTrackVsEta->setAxisTitle("Number of valid RecHits in each Track", 2);
1878 
1879  histname = "NumberOfValidRecHitsPerTrackVsPt_" + histTag;
1882  tkmes.NumberOfValidRecHitsPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]", 1);
1883  tkmes.NumberOfValidRecHitsPerTrackVsPt->setAxisTitle("Number of valid RecHits in each Track", 2);
1884 
1886  histname = "NumberOfLayersPerTrackVsPhi_" + histTag;
1889  tkmes.NumberOfLayersPerTrackVsPhi->setAxisTitle("Track #phi", 1);
1890  tkmes.NumberOfLayersPerTrackVsPhi->setAxisTitle("Number of Layers in each Track", 2);
1891 
1892  if (doThetaPlots_) {
1893  histname = "NumberOfLayersPerTrackVsTheta_" + histTag;
1896  tkmes.NumberOfLayersPerTrackVsTheta->setAxisTitle("Track #phi", 1);
1897  tkmes.NumberOfLayersPerTrackVsTheta->setAxisTitle("Number of Layers in each Track", 2);
1898  }
1899  histname = "NumberOfLayersPerTrackVsEta_" + histTag;
1902  tkmes.NumberOfLayersPerTrackVsEta->setAxisTitle("Track #eta", 1);
1903  tkmes.NumberOfLayersPerTrackVsEta->setAxisTitle("Number of Layers in each Track", 2);
1904 
1905  if (doThetaPlots_) {
1906  histname = "Chi2oNDFVsTheta_" + histTag;
1907  tkmes.Chi2oNDFVsTheta =
1909  tkmes.Chi2oNDFVsTheta->setAxisTitle("Track #theta", 1);
1910  tkmes.Chi2oNDFVsTheta->setAxisTitle("Track #chi^{2}/ndf", 2);
1911  }
1912  if (doAllPlots_) {
1913  histname = "Chi2oNDFVsPhi_" + histTag;
1915  tkmes.Chi2oNDFVsPhi->setAxisTitle("Track #phi", 1);
1916  tkmes.Chi2oNDFVsPhi->setAxisTitle("Track #chi^{2}/ndf", 2);
1917 
1918  histname = "Chi2oNDFVsEta_" + histTag;
1920  tkmes.Chi2oNDFVsEta->setAxisTitle("Track #eta", 1);
1921  tkmes.Chi2oNDFVsEta->setAxisTitle("Track #chi^{2}/ndf", 2);
1922 
1923  histname = "Chi2ProbVsPhi_" + histTag;
1924  tkmes.Chi2ProbVsPhi = ibooker.bookProfile(
1925  histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, Chi2ProbMin, Chi2ProbMax);
1926  tkmes.Chi2ProbVsPhi->setAxisTitle("Tracks #phi", 1);
1927  tkmes.Chi2ProbVsPhi->setAxisTitle("Track #chi^{2} probability", 2);
1928 
1929  histname = "Chi2ProbVsEta_" + histTag;
1930  tkmes.Chi2ProbVsEta = ibooker.bookProfile(
1931  histname + CategoryName, histname + CategoryName, EtaBin, EtaMin, EtaMax, Chi2ProbMin, Chi2ProbMax);
1932  tkmes.Chi2ProbVsEta->setAxisTitle("Tracks #eta", 1);
1933  tkmes.Chi2ProbVsEta->setAxisTitle("Track #chi^{2} probability", 2);
1934  }
1935 
1936  // now put the MEs in the map
1937  TkParameterMEMap.insert(std::make_pair(sname, tkmes));
1938 }
1939 
1940 // fill histograms at differnt measurement points
1941 // ---------------------------------------------------------------------------------//
1943  //get the kinematic parameters
1944  double p, px, py, pz, pt, theta, phi, eta, q;
1945  double pxerror, pyerror, pzerror, pterror, perror, phierror, etaerror;
1946 
1947  std::string Folder = TopFolder_.substr(0, 2);
1948 
1949  auto phiIn = track.innerPosition().phi();
1950  auto etaIn = track.innerPosition().eta();
1951  auto phiOut = track.outerPosition().phi();
1952  auto etaOut = track.outerPosition().eta();
1953 
1954  if (sname == "default") {
1955  p = track.p();
1956  px = track.px();
1957  py = track.py();
1958  pz = track.pz();
1959  pt = track.pt();
1960  phi = track.phi();
1961  theta = track.theta();
1962  eta = track.eta();
1963  q = track.charge();
1964 
1965  pterror = (pt) ? track.ptError() / (pt * pt) : 0.0;
1966  pxerror = -1.0;
1967  pyerror = -1.0;
1968  pzerror = -1.0;
1969  perror = -1.0;
1970  phierror = track.phiError();
1971  etaerror = track.etaError();
1972 
1973  } else {
1975  reco::TransientTrack TransTrack = theB.build(track);
1976 
1978 
1979  if (sname == "OuterSurface")
1980  TSOS = TransTrack.outermostMeasurementState();
1981  else if (sname == "InnerSurface")
1982  TSOS = TransTrack.innermostMeasurementState();
1983  else if (sname == "ImpactPoint")
1984  TSOS = TransTrack.impactPointState();
1985 
1986  p = TSOS.globalMomentum().mag();
1987  px = TSOS.globalMomentum().x();
1988  py = TSOS.globalMomentum().y();
1989  pz = TSOS.globalMomentum().z();
1990  pt = TSOS.globalMomentum().perp();
1991  phi = TSOS.globalMomentum().phi();
1993  eta = TSOS.globalMomentum().eta();
1994  q = TSOS.charge();
1995 
1996  //get the error of the kinimatic parameters
1998  double partialPterror =
1999  errors(3, 3) * pow(TSOS.globalMomentum().x(), 2) + errors(4, 4) * pow(TSOS.globalMomentum().y(), 2);
2000  pterror = sqrt(partialPterror) / TSOS.globalMomentum().perp();
2001  pxerror = sqrt(errors(3, 3)) / TSOS.globalMomentum().x();
2002  pyerror = sqrt(errors(4, 4)) / TSOS.globalMomentum().y();
2003  pzerror = sqrt(errors(5, 5)) / TSOS.globalMomentum().z();
2004  perror = sqrt(partialPterror + errors(5, 5) * pow(TSOS.globalMomentum().z(), 2)) / TSOS.globalMomentum().mag();
2005  phierror = sqrt(TSOS.curvilinearError().matrix()(2, 2));
2006  etaerror = sqrt(TSOS.curvilinearError().matrix()(1, 1)) * fabs(sin(TSOS.globalMomentum().theta()));
2007  }
2008 
2009  std::map<std::string, TkParameterMEs>::iterator iPos = TkParameterMEMap.find(sname);
2010  if (iPos != TkParameterMEMap.end()) {
2011  TkParameterMEs tkmes = iPos->second;
2012 
2013  // momentum
2014  tkmes.TrackP->Fill(p);
2015  if (doTrackPxPyPlots_) {
2016  tkmes.TrackPx->Fill(px);
2017  tkmes.TrackPy->Fill(py);
2018  }
2019  tkmes.TrackPz->Fill(pz);
2020  tkmes.TrackPt->Fill(pt);
2021 
2022  // angles
2023  tkmes.TrackPhi->Fill(phi);
2024  tkmes.TrackEta->Fill(eta);
2025  tkmes.TrackEtaPhi->Fill(eta, phi);
2026 
2027  if (Folder == "Tr") {
2028  tkmes.TrackEtaPhiInverted->Fill(eta, -1 * phi);
2029  tkmes.TrackEtaPhiInvertedoutofphase->Fill(eta, 3.141592654 + -1 * phi);
2030  tkmes.TrackEtaPhiInvertedoutofphase->Fill(eta, -1 * phi - 3.141592654);
2031  tkmes.TkEtaPhi_Ratio_byFoldingmap->divide(tkmes.TrackEtaPhi, tkmes.TrackEtaPhiInverted, 1., 1., "");
2033 
2034  int nx = tkmes.TrackEtaPhi->getNbinsX();
2035  int ny = tkmes.TrackEtaPhi->getNbinsY();
2036 
2037  //NOTE: for full reproducibility when using threads, this loop needs to be
2038  // a critical section
2039  for (int ii = 1; ii <= nx; ii++) {
2040  for (int jj = 1; jj <= ny; jj++) {
2041  double Sum1 = tkmes.TrackEtaPhi->getBinContent(ii, jj) + tkmes.TrackEtaPhiInverted->getBinContent(ii, jj);
2042  double Sum2 =
2044 
2045  double Sub1 = tkmes.TrackEtaPhi->getBinContent(ii, jj) - tkmes.TrackEtaPhiInverted->getBinContent(ii, jj);
2046  double Sub2 =
2048 
2049  if (Sum1 == 0 || Sum2 == 0) {
2052  } else {
2053  double ratio1 = Sub1 / Sum1;
2054  double ratio2 = Sub2 / Sum2;
2057  }
2058  }
2059  }
2060 
2061  //pT histograms to create efficiency vs pT plot, only for the most inefficient region.
2062 
2063  if (eta < 0. && phi < -1.6) {
2065  }
2066  if (eta < 0. && phi < 0 && phi >= -1.6) {
2068  }
2069  if (eta < 0. && phi < 1.6 && phi >= 0) {
2071  }
2072  if (eta < 0. && phi >= 1.6) {
2074  }
2075  if (eta >= 0. && phi < -1.6) {
2077  }
2078  if (eta >= 0. && phi < 0 && phi >= -1.6) {
2080  }
2081  if (eta >= 0. && phi < 1.6 && phi >= 0) {
2083  }
2084  if (eta >= 0. && phi >= 1.6) {
2086  }
2087 
2088  float A[8];
2091  A[2] = tkmes.TrackPt_NegEta_Phi_btw_16_0->integral();
2092  A[3] = tkmes.TrackPt_NegEta_Phi_btw_32_16->integral();
2095  A[6] = tkmes.TrackPt_PosEta_Phi_btw_16_0->integral();
2096  A[7] = tkmes.TrackPt_PosEta_Phi_btw_32_16->integral();
2097 
2098  //WZ (the worst zone)
2099  int WZ = 0;
2100  float minA = A[0];
2101  for (int w = 1; w < 8; w++) {
2102  if (minA > A[w]) {
2103  minA = A[w];
2104  WZ = w;
2105  }
2106  }
2107 
2108  switch (WZ) {
2109  case 1:
2110  tkmes.Ratio_byFolding->divide(
2112  tkmes.Ratio_byFolding2->divide(
2114  break;
2115  case 2:
2116  tkmes.Ratio_byFolding->divide(
2118  tkmes.Ratio_byFolding2->divide(
2120  break;
2121  case 3:
2122  tkmes.Ratio_byFolding->divide(
2124  tkmes.Ratio_byFolding2->divide(
2125  tkmes.TrackPt_NegEta_Phi_btw_16_0, tkmes.TrackPt_NegEta_Phi_btw_32_16, 1., 1., "B");
2126  break;
2127  case 4:
2128  tkmes.Ratio_byFolding->divide(
2130  tkmes.Ratio_byFolding2->divide(
2131  tkmes.TrackPt_NegEta_Phi_btw_32_16, tkmes.TrackPt_NegEta_Phi_btw_16_0, 1., 1., "B");
2132  break;
2133  case 5:
2134  tkmes.Ratio_byFolding->divide(
2136  tkmes.Ratio_byFolding2->divide(
2138  break;
2139  case 6:
2140  tkmes.Ratio_byFolding->divide(
2142  tkmes.Ratio_byFolding2->divide(
2144  break;
2145  case 7:
2146  tkmes.Ratio_byFolding->divide(
2148  tkmes.Ratio_byFolding2->divide(
2149  tkmes.TrackPt_PosEta_Phi_btw_16_0, tkmes.TrackPt_PosEta_Phi_btw_32_16, 1., 1., "B");
2150  break;
2151  case 8:
2152  tkmes.Ratio_byFolding->divide(
2154  tkmes.Ratio_byFolding2->divide(
2155  tkmes.TrackPt_PosEta_Phi_btw_32_16, tkmes.TrackPt_PosEta_Phi_btw_16_0, 1., 1., "B");
2156  break;
2157  }
2158  tkmes.Ratio_byFolding->setAxisTitle("Efficiency(Ratio)_" + std::to_string(WZ), 2);
2159  tkmes.Ratio_byFolding2->setAxisTitle("Efficiency(Ratio)_" + std::to_string(WZ), 2);
2160 
2161  if (track.quality(reco::TrackBase::highPurity)) {
2162  tkmes.TrackPtHighPurity->Fill(pt);
2164  }
2165  if (track.quality(reco::TrackBase::tight)) {
2166  tkmes.TrackPtTight->Fill(pt);
2167  tkmes.Quality->Fill(reco::TrackBase::tight, 1.);
2168  }
2169  if (track.quality(reco::TrackBase::loose)) {
2170  tkmes.TrackPtLoose->Fill(pt);
2171  tkmes.Quality->Fill(reco::TrackBase::loose, 1.);
2172  }
2173  if (track.quality(reco::TrackBase::highPurity)) {
2174  tkmes.TrackEtaHighPurity->Fill(eta);
2175  }
2176  if (track.quality(reco::TrackBase::tight)) {
2177  tkmes.TrackEtaTight->Fill(eta);
2178  }
2179  if (track.quality(reco::TrackBase::loose)) {
2180  tkmes.TrackEtaLoose->Fill(eta);
2181  }
2182 
2183  if (p > 0.) {
2184  tkmes.TrackQoverP->Fill(q / p);
2185  }
2186  }
2187 
2188  tkmes.TrackEtaPhiInner->Fill(etaIn, phiIn);
2189  tkmes.TrackEtaPhiOuter->Fill(etaOut, phiOut);
2190 
2191  if (doThetaPlots_) {
2192  tkmes.TrackTheta->Fill(theta);
2193  }
2194  tkmes.TrackQ->Fill(q);
2195 
2196  // errors
2197  tkmes.TrackPtErr->Fill(pterror);
2198  tkmes.TrackPtErrVsEta->Fill(eta, pterror);
2199  if (doTrackPxPyPlots_) {
2200  tkmes.TrackPxErr->Fill(pxerror);
2201  tkmes.TrackPyErr->Fill(pyerror);
2202  }
2203  tkmes.TrackPzErr->Fill(pzerror);
2204  tkmes.TrackPErr->Fill(perror);
2205  tkmes.TrackPhiErr->Fill(phierror);
2206  tkmes.TrackEtaErr->Fill(etaerror);
2207 
2208  int nRecHits = track.hitPattern().numberOfAllHits(reco::HitPattern::TRACK_HITS);
2209  int nValidRecHits = track.numberOfValidHits();
2210  // rec hits
2211  tkmes.NumberOfRecHitsPerTrackVsPhi->Fill(phi, nRecHits);
2212  if (doThetaPlots_) {
2213  tkmes.NumberOfRecHitsPerTrackVsTheta->Fill(theta, nRecHits);
2214  }
2215  tkmes.NumberOfRecHitsPerTrackVsEta->Fill(eta, nRecHits);
2216  tkmes.NumberOfValidRecHitsPerTrackVsPhi->Fill(phi, nValidRecHits);
2217  tkmes.NumberOfValidRecHitsPerTrackVsEta->Fill(eta, nValidRecHits);
2218  tkmes.NumberOfValidRecHitsPerTrackVsPt->Fill(pt, nValidRecHits);
2219 
2220  int nLayers = track.hitPattern().trackerLayersWithMeasurement();
2221  // rec layers
2223  if (doThetaPlots_) {
2225  }
2227 
2228  double chi2prob = TMath::Prob(track.chi2(), (int)track.ndof());
2229  double chi2oNDF = track.normalizedChi2();
2230 
2231  tkmes.Chi2oNDFVsEta->Fill(eta, chi2oNDF);
2232  tkmes.Chi2oNDFVsPt->Fill(pt, chi2oNDF);
2233  tkmes.Chi2oNDFVsNHits->Fill(nRecHits, chi2oNDF);
2234 
2235  if (doAllPlots_) {
2236  // general properties
2237  if (doThetaPlots_) {
2238  tkmes.Chi2oNDFVsTheta->Fill(theta, chi2oNDF);
2239  }
2240  tkmes.Chi2oNDFVsPhi->Fill(phi, chi2oNDF);
2241  tkmes.Chi2ProbVsPhi->Fill(phi, chi2prob);
2242  tkmes.Chi2ProbVsEta->Fill(eta, chi2prob);
2243  }
2244  }
2245 }
2246 
2248  // parameters from the configuration
2249  std::string QualName = conf_->getParameter<std::string>("Quality");
2251 
2252  // use the AlgoName and Quality Name
2253  std::string CategoryName = !QualName.empty() ? AlgoName + "_" + QualName : AlgoName;
2254 
2255  int PhiBin = conf_->getParameter<int>("PhiBin");
2256  double PhiMin = conf_->getParameter<double>("PhiMin");
2257  double PhiMax = conf_->getParameter<double>("PhiMax");
2258 
2259  int EtaBin = conf_->getParameter<int>("EtaBin");
2260  double EtaMin = conf_->getParameter<double>("EtaMin");
2261  double EtaMax = conf_->getParameter<double>("EtaMax");
2262 
2263  int PtBin = conf_->getParameter<int>("TrackPtBin");
2264  double PtMin = conf_->getParameter<double>("TrackPtMin");
2265  double PtMax = conf_->getParameter<double>("TrackPtMax");
2266 
2267  // book hit property histograms
2268  // ---------------------------------------------------------------------------------//
2269  ibooker.setCurrentFolder(TopFolder_ + "/HitProperties");
2270 
2271  std::vector<std::string> subdetectors = conf_->getParameter<std::vector<std::string> >("subdetectors");
2272  int detBin = conf_->getParameter<int>("subdetectorBin");
2273 
2274  for (const auto& det : subdetectors) {
2275  // hits properties
2276  ibooker.setCurrentFolder(TopFolder_ + "/HitProperties/" + det);
2277 
2278  TkRecHitsPerSubDetMEs recHitsPerSubDet_mes;
2279 
2280  recHitsPerSubDet_mes.detectorTag = det;
2281  int detID = -1;
2282  if (det == "TIB")
2283  detID = StripSubdetector::TIB; // 3
2284  if (det == "TOB")
2285  detID = StripSubdetector::TOB; // 5
2286  if (det == "TID")
2287  detID = StripSubdetector::TID; // 4
2288  if (det == "TEC")
2289  detID = StripSubdetector::TEC; // 6
2290  if (det == "PixBarrel")
2291  detID = PixelSubdetector::PixelBarrel; // 1
2292  if (det == "PixEndcap")
2293  detID = PixelSubdetector::PixelEndcap; // 2
2294  if (det == "Pixel")
2295  detID = 0;
2296  if (det == "Strip")
2297  detID = 7;
2298 
2299  recHitsPerSubDet_mes.detectorId = detID;
2300 
2301  histname = "NumberOfRecHitsPerTrack_" + det + "_" + CategoryName;
2302  recHitsPerSubDet_mes.NumberOfRecHitsPerTrack =
2303  ibooker.book1D(histname, histname, detBin, -0.5, double(detBin) - 0.5);
2304  recHitsPerSubDet_mes.NumberOfRecHitsPerTrack->setAxisTitle("Number of " + det + " valid RecHits in each Track", 1);
2305  recHitsPerSubDet_mes.NumberOfRecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
2306 
2307  histname = "NumberOfRecHitsPerTrackVsPhi_" + det + "_" + CategoryName;
2308  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPhi =
2309  ibooker.bookProfile(histname, histname, PhiBin, PhiMin, PhiMax, detBin, -0.5, double(detBin) - 0.5, "");
2310  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPhi->setAxisTitle("Track #phi", 1);
2311  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPhi->setAxisTitle("Number of " + det + " valid RecHits in each Track",
2312  2);
2313 
2314  histname = "NumberOfRecHitsPerTrackVsEta_" + det + "_" + CategoryName;
2315  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsEta =
2316  ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, detBin, -0.5, double(detBin) - 0.5, "");
2317  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsEta->setAxisTitle("Track #eta", 1);
2318  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsEta->setAxisTitle("Number of " + det + " valid RecHits in each Track",
2319  2);
2320 
2321  histname = "NumberOfRecHitsPerTrackVsPt_" + det + "_" + CategoryName;
2322  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPt =
2323  ibooker.bookProfile(histname, histname, PtBin, PtMin, PtMax, detBin, -0.5, double(detBin) - 0.5, "");
2324  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]", 1);
2325  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPt->setAxisTitle("Number of " + det + " valid RecHits in each Track",
2326  2);
2327 
2328  histname = "NumberOfLayersPerTrack_" + det + "_" + CategoryName;
2329  recHitsPerSubDet_mes.NumberOfLayersPerTrack =
2330  ibooker.book1D(histname, histname, detBin, -0.5, double(detBin) - 0.5);
2331  recHitsPerSubDet_mes.NumberOfLayersPerTrack->setAxisTitle("Number of " + det + " valid Layers in each Track", 1);
2332  recHitsPerSubDet_mes.NumberOfLayersPerTrack->setAxisTitle("Number of Tracks", 2);
2333 
2334  histname = "NumberOfLayersPerTrackVsPhi_" + det + "_" + CategoryName;
2335  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPhi =
2336  ibooker.bookProfile(histname, histname, PhiBin, PhiMin, PhiMax, detBin, -0.5, double(detBin) - 0.5, "");
2337  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPhi->setAxisTitle("Track #phi", 1);
2338  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPhi->setAxisTitle("Number of " + det + " valid Layers in each Track",
2339  2);
2340 
2341  histname = "NumberOfLayersPerTrackVsEta_" + det + "_" + CategoryName;
2342  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsEta =
2343  ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, detBin, -0.5, double(detBin) - 0.5, "");
2344  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsEta->setAxisTitle("Track #eta", 1);
2345  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsEta->setAxisTitle("Number of " + det + " valid Layers in each Track",
2346  2);
2347 
2348  histname = "NumberOfLayersPerTrackVsPt_" + det + "_" + CategoryName;
2349  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPt =
2350  ibooker.bookProfile(histname, histname, PtBin, PtMin, PtMax, detBin, -0.5, double(detBin) - 0.5, "");
2351  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]", 1);
2352  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPt->setAxisTitle("Number of " + det + " valid Layers in each Track",
2353  2);
2354 
2355  TkRecHitsPerSubDetMEMap.insert(std::pair<std::string, TkRecHitsPerSubDetMEs>(det, recHitsPerSubDet_mes));
2356  }
2357 }
2358 
2360  double phi = track.phi();
2361  double eta = track.eta();
2362  double pt = track.pt();
2363 
2364  for (std::map<std::string, TkRecHitsPerSubDetMEs>::iterator it = TkRecHitsPerSubDetMEMap.begin();
2365  it != TkRecHitsPerSubDetMEMap.end();
2366  it++) {
2367  int nValidLayers = 0;
2368  int nValidRecHits = 0;
2369  int substr = it->second.detectorId;
2370  switch (substr) {
2371  case 0:
2372  nValidLayers = track.hitPattern().pixelBarrelLayersWithMeasurement() +
2373  track.hitPattern().pixelEndcapLayersWithMeasurement(); // case 0: pixel
2374  nValidRecHits = track.hitPattern().numberOfValidPixelBarrelHits() +
2375  track.hitPattern().numberOfValidPixelEndcapHits(); // case 0: pixel
2376  break;
2377  case StripSubdetector::TIB:
2378  nValidLayers = track.hitPattern().stripTIBLayersWithMeasurement(); // case 3: strip TIB
2379  nValidRecHits = track.hitPattern().numberOfValidStripTIBHits(); // case 3: strip TIB
2380  break;
2381  case StripSubdetector::TID:
2382  nValidLayers = track.hitPattern().stripTIDLayersWithMeasurement(); // case 4: strip TID
2383  nValidRecHits = track.hitPattern().numberOfValidStripTIDHits(); // case 4: strip TID
2384  break;
2385  case StripSubdetector::TOB:
2386  nValidLayers = track.hitPattern().stripTOBLayersWithMeasurement(); // case 5: strip TOB
2387  nValidRecHits = track.hitPattern().numberOfValidStripTOBHits(); // case 5: strip TOB
2388  break;
2389  case StripSubdetector::TEC:
2390  nValidLayers = track.hitPattern().stripTECLayersWithMeasurement(); // case 6: strip TEC
2391  nValidRecHits = track.hitPattern().numberOfValidStripTECHits(); // case 6: strip TEC
2392  break;
2394  nValidLayers = track.hitPattern().pixelBarrelLayersWithMeasurement(); // case 1: pixel PXB
2395  nValidRecHits = track.hitPattern().numberOfValidPixelBarrelHits(); // case 1: pixel PXB
2396  break;
2398  nValidLayers = track.hitPattern().pixelEndcapLayersWithMeasurement(); // case 2: pixel PXF
2399  nValidRecHits = track.hitPattern().numberOfValidPixelEndcapHits(); // case 2: pixel PXF
2400  break;
2401  case 7:
2402  nValidLayers = track.hitPattern().stripTIBLayersWithMeasurement() // case 7: strip
2403  + track.hitPattern().stripTIDLayersWithMeasurement() +
2404  track.hitPattern().stripTOBLayersWithMeasurement() +
2405  track.hitPattern().stripTECLayersWithMeasurement();
2406  nValidRecHits = track.hitPattern().numberOfValidStripTIBHits() // case 7: strip
2407  + track.hitPattern().numberOfValidStripTIDHits() +
2408  track.hitPattern().numberOfValidStripTOBHits() + track.hitPattern().numberOfValidStripTECHits();
2409  break;
2410  default:
2411  break;
2412  }
2413 
2414  //Fill Layers and RecHits
2415  it->second.NumberOfRecHitsPerTrack->Fill(nValidRecHits);
2416  it->second.NumberOfRecHitsPerTrackVsPhi->Fill(phi, nValidRecHits);
2417  it->second.NumberOfRecHitsPerTrackVsEta->Fill(eta, nValidRecHits);
2418  it->second.NumberOfRecHitsPerTrackVsPt->Fill(pt, nValidRecHits);
2419 
2420  it->second.NumberOfLayersPerTrack->Fill(nValidLayers);
2421  it->second.NumberOfLayersPerTrackVsPhi->Fill(phi, nValidLayers);
2422  it->second.NumberOfLayersPerTrackVsEta->Fill(eta, nValidLayers);
2423  it->second.NumberOfLayersPerTrackVsPt->Fill(pt, nValidLayers);
2424  }
2425 }
tadqm::TrackAnalyzer::DistanceOfClosestApproachErrorVsPt
MonitorElement * DistanceOfClosestApproachErrorVsPt
Definition: TrackAnalyzer.h:401
Vector3DBase
Definition: Vector3DBase.h:8
tadqm::TrackAnalyzer::doDCAPlots_
bool doDCAPlots_
Definition: TrackAnalyzer.h:103
runTheMatrix.ret
ret
prodAgent to be discontinued
Definition: runTheMatrix.py:367
tadqm::TrackAnalyzer::xPointOfClosestApproachVsZ0wrtPV
MonitorElement * xPointOfClosestApproachVsZ0wrtPV
Definition: TrackAnalyzer.h:422
beam_dqm_sourceclient-live_cfg.DxyMin
DxyMin
Definition: beam_dqm_sourceclient-live_cfg.py:186
tadqm::TrackAnalyzer::TkParameterMEs::Chi2oNDFVsNHits
MonitorElement * Chi2oNDFVsNHits
Definition: TrackAnalyzer.h:323
tadqm::TrackAnalyzer::TkParameterMEs::NumberOfRecHitsPerTrackVsTheta
MonitorElement * NumberOfRecHitsPerTrackVsTheta
Definition: TrackAnalyzer.h:287
dqm::impl::MonitorElement::divide
virtual void divide(const MonitorElement *, const MonitorElement *, double, double, const char *)
Replace entries with results of dividing num by denom.
Definition: MonitorElement.cc:744
tadqm::TrackAnalyzer::TkParameterMEs::TrackPzErr
MonitorElement * TrackPzErr
Definition: TrackAnalyzer.h:256
MonitorTrackSTAMuons_cfi.TrackPMax
TrackPMax
Definition: MonitorTrackSTAMuons_cfi.py:195
tadqm::TrackAnalyzer::NumberOfValidRecHitVsPhiVsEtaPerTrack
MonitorElement * NumberOfValidRecHitVsPhiVsEtaPerTrack
Definition: TrackAnalyzer.h:350
tadqm::TrackAnalyzer::TkParameterMEs::Chi2oNDFVsPhi
MonitorElement * Chi2oNDFVsPhi
Definition: TrackAnalyzer.h:326
reco::HitPattern::MISSING_OUTER_HITS
Definition: HitPattern.h:155
tadqm::TrackAnalyzer::transientTrackBuilderToken_
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > transientTrackBuilderToken_
Definition: TrackAnalyzer.h:91
tadqm::TrackAnalyzer::TkParameterMEs::TkEtaPhi_RelativeDifference_byFoldingmap
MonitorElement * TkEtaPhi_RelativeDifference_byFoldingmap
Definition: TrackAnalyzer.h:275
MonitorTrackSTAMuons_cfi.VXBin
VXBin
Definition: MonitorTrackSTAMuons_cfi.py:269
tadqm::TrackAnalyzer::pvNDOF_
int pvNDOF_
Definition: TrackAnalyzer.h:141
taus_updatedMVAIds_cff.category
category
Definition: taus_updatedMVAIds_cff.py:31
tadqm::TrackAnalyzer::yPointOfClosestApproachVsZ0wrt000
MonitorElement * yPointOfClosestApproachVsZ0wrt000
Definition: TrackAnalyzer.h:425
ApeEstimator_cff.width
width
Definition: ApeEstimator_cff.py:24
tadqm::TrackAnalyzer::DistanceOfClosestApproachToPVVsPhi
MonitorElement * DistanceOfClosestApproachToPVVsPhi
Definition: TrackAnalyzer.h:416
tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaPhiInvertedoutofphase
MonitorElement * TrackEtaPhiInvertedoutofphase
Definition: TrackAnalyzer.h:272
runGCPTkAlMap.title
string title
Definition: runGCPTkAlMap.py:94
tadqm::TrackAnalyzer::NumberOfValidRecHitsPerTrack
MonitorElement * NumberOfValidRecHitsPerTrack
Definition: TrackAnalyzer.h:336
tadqm::TrackAnalyzer::TkParameterMEs::TkEtaPhi_Ratio_byFoldingmap_op
MonitorElement * TkEtaPhi_Ratio_byFoldingmap_op
Definition: TrackAnalyzer.h:274
electrons_cff.bool
bool
Definition: electrons_cff.py:393
tadqm::TrackAnalyzer::TkParameterMEs::TrackPtErr
MonitorElement * TrackPtErr
Definition: TrackAnalyzer.h:257
mps_fire.i
i
Definition: mps_fire.py:428
edm::ESInputTag
Definition: ESInputTag.h:87
tadqm::TrackAnalyzer::xPointOfClosestApproach
MonitorElement * xPointOfClosestApproach
Definition: TrackAnalyzer.h:418
MonitorTrackSTAMuons_cfi.RecHitMax
RecHitMax
Definition: MonitorTrackSTAMuons_cfi.py:110
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11779
tadqm::TrackAnalyzer::fillHistosForEfficiencyFromHitPatter
void fillHistosForEfficiencyFromHitPatter(const reco::Track &track, const std::string suffix, const float monitoring, bool useInac)
Definition: TrackAnalyzer.cc:1413
MessageLogger.h
dqmMemoryStats.float
float
Definition: dqmMemoryStats.py:127
tadqm::TrackAnalyzer::stoppingSourceVSphi
MonitorElement * stoppingSourceVSphi
Definition: TrackAnalyzer.h:434
LumiMonitor_cff.pixelClusters
pixelClusters
Definition: LumiMonitor_cff.py:10
reco::TrackBase::tight
Definition: TrackBase.h:153
PixelSubdetector::PixelEndcap
Definition: PixelSubdetector.h:11
tadqm::TrackAnalyzer::NhitVsPhi_HighPurity
MonitorElement * NhitVsPhi_HighPurity
Definition: TrackAnalyzer.h:450
NBINS
const int NBINS
Definition: CaloCachedShapeIntegrator.cc:3
reco::TrackBase::loose
Definition: TrackBase.h:152
tadqm::TrackAnalyzer::DistanceOfClosestApproachToBSdz
MonitorElement * DistanceOfClosestApproachToBSdz
Definition: TrackAnalyzer.h:406
tadqm::TrackAnalyzer::xPointOfClosestApproachVsZ0wrtBS
MonitorElement * xPointOfClosestApproachVsZ0wrtBS
Definition: TrackAnalyzer.h:421
tadqm::TrackAnalyzer::TkParameterMEs::TrackPtTight
MonitorElement * TrackPtTight
Definition: TrackAnalyzer.h:250
PixelSubdetector::PixelBarrel
Definition: PixelSubdetector.h:11
tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEMap
std::map< std::string, TkRecHitsPerSubDetMEs > TkRecHitsPerSubDetMEMap
Definition: TrackAnalyzer.h:476
tadqm::TrackAnalyzer::NumberOfRecHitsPerTrack_lumiFlag
MonitorElement * NumberOfRecHitsPerTrack_lumiFlag
Definition: TrackAnalyzer.h:441
MonitorTrackSTAMuons_cfi.Chi2ProbBin
Chi2ProbBin
Definition: MonitorTrackSTAMuons_cfi.py:74
tadqm::TrackAnalyzer::NumberOfMIRecHitsPerTrack
MonitorElement * NumberOfMIRecHitsPerTrack
Definition: TrackAnalyzer.h:338
tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaPhiOuter
MonitorElement * TrackEtaPhiOuter
Definition: TrackAnalyzer.h:278
tadqm::TrackAnalyzer::minPixelClusterCharge_
float minPixelClusterCharge_
Definition: TrackAnalyzer.h:145
tadqm::TrackAnalyzer::DistanceOfClosestApproachError
MonitorElement * DistanceOfClosestApproachError
Definition: TrackAnalyzer.h:400
tadqm::TrackAnalyzer::sipDzToPV
MonitorElement * sipDzToPV
Definition: TrackAnalyzer.h:460
tadqm::TrackAnalyzer::TkParameterMEs::TkEtaPhi_Ratio_byFoldingmap
MonitorElement * TkEtaPhi_Ratio_byFoldingmap
Definition: TrackAnalyzer.h:273
TrajectoryStateOnSurface::cartesianError
const CartesianTrajectoryError cartesianError() const
Definition: TrajectoryStateOnSurface.h:71
tadqm::TrackAnalyzer::Ptdist_HighPurity
MonitorElement * Ptdist_HighPurity
Definition: TrackAnalyzer.h:451
tadqm::TrackAnalyzer::TkParameterMEs::Chi2oNDFVsTheta
MonitorElement * Chi2oNDFVsTheta
Definition: TrackAnalyzer.h:327
tadqm
Definition: TrackAnalyzer.h:39
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
tadqm::TrackAnalyzer::Chi2Prob
MonitorElement * Chi2Prob
Definition: TrackAnalyzer.h:386
MonitorTrackSTAMuons_cfi.TrackQMin
TrackQMin
Definition: MonitorTrackSTAMuons_cfi.py:96
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
MonitorTrackInnerTrackMuons_cff.phiErrMax
phiErrMax
Definition: MonitorTrackInnerTrackMuons_cff.py:46
tadqm::TrackAnalyzer::doLayersVsPhiVsEtaPerTrack_
bool doLayersVsPhiVsEtaPerTrack_
Definition: TrackAnalyzer.h:110
min
T min(T a, T b)
Definition: MathUtil.h:58
tadqm::TrackAnalyzer::NumberOfMORecHitsPerTrackVsPt
MonitorElement * NumberOfMORecHitsPerTrackVsPt
Definition: TrackAnalyzer.h:370
tadqm::TrackAnalyzer
Definition: TrackAnalyzer.h:40
tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_PosEta_Phi_btw_32_16
MonitorElement * TrackPt_PosEta_Phi_btw_32_16
Definition: TrackAnalyzer.h:246
multPhiCorr_741_25nsDY_cfi.py
py
Definition: multPhiCorr_741_25nsDY_cfi.py:12
tadqm::TrackAnalyzer::NumberOfValidRecHitsPerTrackVsEta
MonitorElement * NumberOfValidRecHitsPerTrackVsEta
Definition: TrackAnalyzer.h:348
MonitorTrackSTAMuons_cfi.Z0Bin
Z0Bin
Definition: MonitorTrackSTAMuons_cfi.py:294
tadqm::TrackAnalyzer::trackerTopologyToken_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopologyToken_
Definition: TrackAnalyzer.h:90
GetLumi::CM2_TO_NANOBARN
static constexpr double CM2_TO_NANOBARN
Definition: GetLumi.h:42
tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaPhi
MonitorElement * TrackEtaPhi
Definition: TrackAnalyzer.h:270
tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaTight
MonitorElement * TrackEtaTight
Definition: TrackAnalyzer.h:268
TrackerTopology
Definition: TrackerTopology.h:16
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
eostools.cat
def cat(path)
Definition: eostools.py:401
dqm::implementation::IBooker::bookProfile2D
MonitorElement * bookProfile2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, double lowZ, double highZ, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:399
PV3DBase::theta
Geom::Theta< T > theta() const
Definition: PV3DBase.h:72
V0Monitor_cfi.lumiScalers
lumiScalers
Definition: V0Monitor_cfi.py:9
tadqm::TrackAnalyzer::initHisto
void initHisto(DQMStore::IBooker &ibooker, const edm::EventSetup &, const edm::ParameterSet &)
Definition: TrackAnalyzer.cc:194
reco::VertexCollection
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
tadqm::TrackAnalyzer::doAllPlots_
bool doAllPlots_
Definition: TrackAnalyzer.h:100
beam_dqm_sourceclient-live_cfg.TrackPtBin
TrackPtBin
Definition: beam_dqm_sourceclient-live_cfg.py:200
tadqm::TrackAnalyzer::TkParameterMEs::TrackPy
MonitorElement * TrackPy
Definition: TrackAnalyzer.h:236
StopReasonName::StopReasonName
static const std::string StopReasonName[]
Definition: TrajectoryStopReasons.h:25
tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaHighPurity
MonitorElement * TrackEtaHighPurity
Definition: TrackAnalyzer.h:267
tadqm::TrackAnalyzer::TkParameterMEs::TrackPtLoose
MonitorElement * TrackPtLoose
Definition: TrackAnalyzer.h:251
tadqm::TrackAnalyzer::NumberOfMORecHitVsPtVsEtaPerTrack
MonitorElement * NumberOfMORecHitVsPtVsEtaPerTrack
Definition: TrackAnalyzer.h:372
electronDQMIsoDist_cfi.PtMax
PtMax
Definition: electronDQMIsoDist_cfi.py:51
dqm::impl::MonitorElement::integral
virtual double integral() const
get integral of bins
Definition: MonitorElement.cc:671
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
edmNew::DetSetVector::const_iterator
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
Definition: DetSetVectorNew.h:197
TrajectoryStateOnSurface::charge
TrackCharge charge() const
Definition: TrajectoryStateOnSurface.h:68
tadqm::TrackAnalyzer::bookHistosForEfficiencyFromHitPatter
void bookHistosForEfficiencyFromHitPatter(DQMStore::IBooker &ibooker, const edm::EventSetup &iSetup, const std::string suffix, bool useInac)
Definition: TrackAnalyzer.cc:236
tadqm::TrackAnalyzer::Chi2oNDFVsTheta
MonitorElement * Chi2oNDFVsTheta
Definition: TrackAnalyzer.h:393
tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_NegEta_Phi_btw_16_0
MonitorElement * TrackPt_NegEta_Phi_btw_16_0
Definition: TrackAnalyzer.h:241
tadqm::TrackAnalyzer::useBPixLayer1_
bool useBPixLayer1_
Definition: TrackAnalyzer.h:143
tadqm::TrackAnalyzer::beamSpotToken_
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
Definition: TrackAnalyzer.h:84
MonitorTrackSTAMuons_cfi.VYMin
VYMin
Definition: MonitorTrackSTAMuons_cfi.py:276
tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs::detectorId
int detectorId
Definition: TrackAnalyzer.h:473
tadqm::TrackAnalyzer::TkParameterMEs::TrackPz
MonitorElement * TrackPz
Definition: TrackAnalyzer.h:237
DQMStore.h
TrackerTopology::layer
unsigned int layer(const DetId &id) const
Definition: TrackerTopology.cc:47
tadqm::TrackAnalyzer::dNhitdPt_HighPurity
MonitorElement * dNhitdPt_HighPurity
Definition: TrackAnalyzer.h:452
tadqm::TrackAnalyzer::TkParameterMEs::TrackPhi
MonitorElement * TrackPhi
Definition: TrackAnalyzer.h:265
beam_dqm_sourceclient-live_cfg.TrackPtMin
TrackPtMin
Definition: beam_dqm_sourceclient-live_cfg.py:198
tadqm::TrackAnalyzer::bookHistosForState
void bookHistosForState(std::string sname, DQMStore::IBooker &ibooker)
Definition: TrackAnalyzer.cc:1469
tadqm::TrackAnalyzer::TkParameterMEs::Ratio_byFolding
MonitorElement * Ratio_byFolding
Definition: TrackAnalyzer.h:247
edmNew::DetSetVector::begin
const_iterator begin(bool update=false) const
Definition: DetSetVectorNew.h:530
tadqm::TrackAnalyzer::dNdEta_HighPurity
MonitorElement * dNdEta_HighPurity
Definition: TrackAnalyzer.h:447
GetLumi::XSEC_PIXEL_CLUSTER
static constexpr double XSEC_PIXEL_CLUSTER
Definition: GetLumi.h:36
TrackingMonitor_cfi.LongDCAMax
LongDCAMax
Definition: TrackingMonitor_cfi.py:431
beam_dqm_sourceclient-live_cfg.AbsDxyBin
AbsDxyBin
Definition: beam_dqm_sourceclient-live_cfg.py:184
tadqm::TrackAnalyzer::TkParameterMEs::TrackQoverP
MonitorElement * TrackQoverP
Definition: TrackAnalyzer.h:263
tadqm::TrackAnalyzer::TkParameterMEs::Quality
MonitorElement * Quality
Definition: TrackAnalyzer.h:252
tadqm::TrackAnalyzer::TkParameterMEs::TrackP
MonitorElement * TrackP
Definition: TrackAnalyzer.h:234
tadqm::TrackAnalyzer::TopFolder_
std::string TopFolder_
Definition: TrackAnalyzer.h:82
tadqm::TrackAnalyzer::trackerGeometryToken_
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > trackerGeometryToken_
Definition: TrackAnalyzer.h:89
tadqm::TrackAnalyzer::NumberOfLayersPerTrack
MonitorElement * NumberOfLayersPerTrack[4]
Definition: TrackAnalyzer.h:377
MonitorTrackSTAMuons_cfi.Z0Min
Z0Min
Definition: MonitorTrackSTAMuons_cfi.py:296
tadqm::TrackAnalyzer::TkParameterMEs::TrackPxErr
MonitorElement * TrackPxErr
Definition: TrackAnalyzer.h:254
tadqm::TrackAnalyzer::TkParameterMEs::TrackEta
MonitorElement * TrackEta
Definition: TrackAnalyzer.h:266
MonitorTrackInnerTrackMuons_cff.EtaBin
EtaBin
Definition: MonitorTrackInnerTrackMuons_cff.py:64
tadqm::TrackAnalyzer::ValidFractionVsPhiVsEtaPerTrack
MonitorElement * ValidFractionVsPhiVsEtaPerTrack
Definition: TrackAnalyzer.h:375
TransientTrack.h
findQualityFiles.v
v
Definition: findQualityFiles.py:179
hltPixelTracks_cff.chi2
chi2
Definition: hltPixelTracks_cff.py:25
tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaPhiInverted
MonitorElement * TrackEtaPhiInverted
Definition: TrackAnalyzer.h:271
tadqm::TrackAnalyzer::dNdPt_HighPurity
MonitorElement * dNdPt_HighPurity
Definition: TrackAnalyzer.h:448
IPTools::signedTransverseImpactParameter
std::pair< bool, Measurement1D > signedTransverseImpactParameter(const reco::TransientTrack &track, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:57
tadqm::TrackAnalyzer::NumberOfLayersVsPhiVsEtaPerTrack
MonitorElement * NumberOfLayersVsPhiVsEtaPerTrack[5]
Definition: TrackAnalyzer.h:383
tadqm::TrackAnalyzer::NumberOfMIRecHitsPerTrackVsPt
MonitorElement * NumberOfMIRecHitsPerTrackVsPt
Definition: TrackAnalyzer.h:363
MonitorTrackSTAMuons_cfi.TrackPyMin
TrackPyMin
Definition: MonitorTrackSTAMuons_cfi.py:211
tadqm::TrackAnalyzer::TkParameterMEs::NumberOfRecHitsPerTrackVsPhi
MonitorElement * NumberOfRecHitsPerTrackVsPhi
Definition: TrackAnalyzer.h:286
MonitorTrackInnerTrackMuons_cff.Eta2DBin
Eta2DBin
Definition: MonitorTrackInnerTrackMuons_cff.py:58
edm::ConsumesCollector::esConsumes
auto esConsumes()
Definition: ConsumesCollector.h:97
edm::Handle< reco::VertexCollection >
HLTSiStripMonitoring_cff.AlgoName
AlgoName
Definition: HLTSiStripMonitoring_cff.py:232
tadqm::TrackAnalyzer::TkParameterMEs::NumberOfLayersPerTrackVsPhi
MonitorElement * NumberOfLayersPerTrackVsPhi
Definition: TrackAnalyzer.h:319
tadqm::TrackAnalyzer::TkParameterMEs::Chi2ProbVsEta
MonitorElement * Chi2ProbVsEta
Definition: TrackAnalyzer.h:329
MonitorTrackSTAMuons_cfi.Y0Bin
Y0Bin
Definition: MonitorTrackSTAMuons_cfi.py:289
MonitorTrackSTAMuons_cfi.TrackQMax
TrackQMax
Definition: MonitorTrackSTAMuons_cfi.py:95
MonitorTrackSTAMuons_cfi.TrackQBin
TrackQBin
Definition: MonitorTrackSTAMuons_cfi.py:94
TrackingMonitor_cfi.VZBinProf
VZBinProf
Definition: TrackingMonitor_cfi.py:320
MonitorTrackSTAMuons_cfi.ptErrMax
ptErrMax
Definition: MonitorTrackSTAMuons_cfi.py:240
tadqm::TrackAnalyzer::TkParameterMEs::TkEtaPhi_RelativeDifference_byFoldingmap_op
MonitorElement * TkEtaPhi_RelativeDifference_byFoldingmap_op
Definition: TrackAnalyzer.h:276
tadqm::TrackAnalyzer::doThetaPlots_
bool doThetaPlots_
Definition: TrackAnalyzer.h:118
tadqm::TrackAnalyzer::setLumi
void setLumi(const edm::Event &, const edm::EventSetup &iSetup)
Definition: TrackAnalyzer.cc:1119
tadqm::TrackAnalyzer::TkParameterMEs::TrackPyErr
MonitorElement * TrackPyErr
Definition: TrackAnalyzer.h:255
tadqm::TrackAnalyzer::TkParameterMEs::NumberOfValidRecHitsPerTrackVsEta
MonitorElement * NumberOfValidRecHitsPerTrackVsEta
Definition: TrackAnalyzer.h:293
createPayload.suffix
suffix
Definition: createPayload.py:281
tadqm::TrackAnalyzer::Chi2oNDFVsEta
MonitorElement * Chi2oNDFVsEta
Definition: TrackAnalyzer.h:391
edmNew::DetSet::size
size_type size() const
Definition: DetSetNew.h:68
TrackerGeometry::numberOfLayers
unsigned int numberOfLayers(int subdet) const
Definition: TrackerGeometry.cc:211
tadqm::TrackAnalyzer::DistanceOfClosestApproachErrorVsDxy
MonitorElement * DistanceOfClosestApproachErrorVsDxy
Definition: TrackAnalyzer.h:404
tadqm::TrackAnalyzer::Chi2ProbVsPhi
MonitorElement * Chi2ProbVsPhi
Definition: TrackAnalyzer.h:396
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
tadqm::TrackAnalyzer::Chi2ProbVsEta
MonitorElement * Chi2ProbVsEta
Definition: TrackAnalyzer.h:395
TrackingMonitor_cfi.subdetectors
subdetectors
Definition: TrackingMonitor_cfi.py:181
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
Chi2
Definition: Chi2.h:15
tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaPhiInner
MonitorElement * TrackEtaPhiInner
Definition: TrackAnalyzer.h:277
tadqm::TrackAnalyzer::hits_valid_
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_valid_
Definition: TrackAnalyzer.h:497
tadqm::TrackAnalyzer::DistanceOfClosestApproachToBSVsPhi
MonitorElement * DistanceOfClosestApproachToBSVsPhi
Definition: TrackAnalyzer.h:414
MonitorTrackSTAMuons_cfi.Chi2ProbMin
Chi2ProbMin
Definition: MonitorTrackSTAMuons_cfi.py:76
MonitorTrackSTAMuons_cfi.ThetaMin
ThetaMin
Definition: MonitorTrackSTAMuons_cfi.py:221
DetId
Definition: DetId.h:17
tadqm::TrackAnalyzer::doRecHitVsPtVsEtaPerTrack_
bool doRecHitVsPtVsEtaPerTrack_
Definition: TrackAnalyzer.h:108
tadqm::TrackAnalyzer::DistanceOfClosestApproachToBS
MonitorElement * DistanceOfClosestApproachToBS
Definition: TrackAnalyzer.h:405
MonitorTrackSTAMuons_cfi.pzErrBin
pzErrBin
Definition: MonitorTrackSTAMuons_cfi.py:254
tadqm::TrackAnalyzer::NumberOfRecHitVsPhiVsEtaPerTrack
MonitorElement * NumberOfRecHitVsPhiVsEtaPerTrack
Definition: TrackAnalyzer.h:344
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
MonitorTrackSTAMuons_cfi.ptErrMin
ptErrMin
Definition: MonitorTrackSTAMuons_cfi.py:241
MonitorTrackSTAMuons_cfi.PhiMax
PhiMax
Definition: MonitorTrackSTAMuons_cfi.py:230
MonitorTrackSTAMuons_cfi.VYMax
VYMax
Definition: MonitorTrackSTAMuons_cfi.py:275
cms::cuda::bs
bs
Definition: HistoContainer.h:127
tadqm::TrackAnalyzer::xPointOfClosestApproachVsZ0wrt000
MonitorElement * xPointOfClosestApproachVsZ0wrt000
Definition: TrackAnalyzer.h:420
tadqm::TrackAnalyzer::TkParameterMEs::TrackQ
MonitorElement * TrackQ
Definition: TrackAnalyzer.h:262
tadqm::TrackAnalyzer::yPointOfClosestApproachVsZ0wrtPV
MonitorElement * yPointOfClosestApproachVsZ0wrtPV
Definition: TrackAnalyzer.h:427
Track.h
trackingPlots.hp
hp
Definition: trackingPlots.py:1248
tadqm::TrackAnalyzer::NumberOfValidRecHitsPerTrackVsPt
MonitorElement * NumberOfValidRecHitsPerTrackVsPt
Definition: TrackAnalyzer.h:349
TrackFwd.h
MonitorTrackSTAMuons_cfi.pzErrMin
pzErrMin
Definition: MonitorTrackSTAMuons_cfi.py:256
MonitorTrackSTAMuons_cfi.TrackPBin
TrackPBin
Definition: MonitorTrackSTAMuons_cfi.py:194
TrackingMonitor_cfi.DxyErrMax
DxyErrMax
Definition: TrackingMonitor_cfi.py:449
tadqm::TrackAnalyzer::TkParameterMEs::NumberOfLayersPerTrackVsEta
MonitorElement * NumberOfLayersPerTrackVsEta
Definition: TrackAnalyzer.h:321
errors
Definition: errors.py:1
tadqm::TrackAnalyzer::sipDzToBS
MonitorElement * sipDzToBS
Definition: TrackAnalyzer.h:456
beam_dqm_sourceclient-live_cfg.AbsDxyMax
AbsDxyMax
Definition: beam_dqm_sourceclient-live_cfg.py:183
TrackingMonitor_cfi.AbsDxyMin
AbsDxyMin
Definition: TrackingMonitor_cfi.py:345
tadqm::TrackAnalyzer::NumberOfMORecHitVsPhiVsEtaPerTrack
MonitorElement * NumberOfMORecHitVsPhiVsEtaPerTrack
Definition: TrackAnalyzer.h:371
HLT_FULL_cff.PtMin
PtMin
Definition: HLT_FULL_cff.py:9970
tadqm::TrackAnalyzer::TkParameterMEs::TrackPtHighPurity
MonitorElement * TrackPtHighPurity
Definition: TrackAnalyzer.h:249
TrajectoryStopReasons.h
tadqm::TrackAnalyzer::doTrackerSpecific_
bool doTrackerSpecific_
Definition: TrackAnalyzer.h:99
IPTools::signedImpactParameter3D
std::pair< bool, Measurement1D > signedImpactParameter3D(const reco::TransientTrack &track, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:81
TrackingMonitor_cfi.DxyErrBin
DxyErrBin
it might need to be adjust if CMS asks to have lumi levelling at lower values
Definition: TrackingMonitor_cfi.py:448
tadqm::TrackAnalyzer::setBX
void setBX(const edm::Event &)
Definition: TrackAnalyzer.cc:1117
MonitorTrackInnerTrackMuons_cff.etaErrMax
etaErrMax
Definition: MonitorTrackInnerTrackMuons_cff.py:47
tadqm::TrackAnalyzer::DistanceOfClosestApproachToBSVsEta
MonitorElement * DistanceOfClosestApproachToBSVsEta
Definition: TrackAnalyzer.h:415
PVValHelper::makeLogBins
std::array< T, N+1 > makeLogBins(const T &min, const T &max)
Definition: PVValidationHelpers.h:29
PVValHelper::eta
Definition: PVValidationHelpers.h:69
tadqm::TrackAnalyzer::doEffFromHitPatternVsBX_
bool doEffFromHitPatternVsBX_
Definition: TrackAnalyzer.h:139
tadqm::TrackAnalyzer::bookHistosForBeamSpot
void bookHistosForBeamSpot(DQMStore::IBooker &ibooker)
Definition: TrackAnalyzer.cc:777
w
const double w
Definition: UKUtility.cc:23
MonitorTrackInnerTrackMuons_cff.PVMin
PVMin
Definition: MonitorTrackInnerTrackMuons_cff.py:49
tadqm::TrackAnalyzer::pixel_lumi_
float pixel_lumi_
Definition: TrackAnalyzer.h:504
tadqm::TrackAnalyzer::DistanceOfClosestApproach
MonitorElement * DistanceOfClosestApproach
Definition: TrackAnalyzer.h:399
TrackerDigiGeometryRecord
Definition: TrackerDigiGeometryRecord.h:15
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
MonitorTrackSTAMuons_cfi.RecHitMin
RecHitMin
Definition: MonitorTrackSTAMuons_cfi.py:111
TrackingMonitor_cfi.TransDCAMax
TransDCAMax
Definition: TrackingMonitor_cfi.py:427
reco::BeamSpot
Definition: BeamSpot.h:21
AlgebraicSymMatrix66
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
Definition: AlgebraicROOTObjects.h:24
TransientTrackRecord
Definition: TransientTrackRecord.h:11
reco::Track
Definition: Track.h:27
MonitorTrackSTAMuons_cfi.TrackPzBin
TrackPzBin
Definition: MonitorTrackSTAMuons_cfi.py:216
N
#define N
Definition: blowfish.cc:9
tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfRecHitsPerTrackVsEta
MonitorElement * NumberOfRecHitsPerTrackVsEta
Definition: TrackAnalyzer.h:465
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:199
tadqm::TrackAnalyzer::TkParameterMEMap
std::map< std::string, TkParameterMEs > TkParameterMEMap
Definition: TrackAnalyzer.h:333
tadqm::TrackAnalyzer::ValidFractionPerTrack
MonitorElement * ValidFractionPerTrack
Definition: TrackAnalyzer.h:374
TrackingMonitor_cfi.LUMIMax
LUMIMax
Definition: TrackingMonitor_cfi.py:415
MonitorTrackSTAMuons_cfi.etaErrMin
etaErrMin
Definition: MonitorTrackSTAMuons_cfi.py:261
LaserClient_cfi.nbins
nbins
Definition: LaserClient_cfi.py:51
GetLumi::FREQ_ORBIT
static constexpr double FREQ_ORBIT
Definition: GetLumi.h:26
edm::ConsumesCollector::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: ConsumesCollector.h:55
tadqm::TrackAnalyzer::TkParameterMEs::TrackTheta
MonitorElement * TrackTheta
Definition: TrackAnalyzer.h:280
theta
Geom::Theta< T > theta() const
Definition: Basic3DVectorLD.h:150
beam_dqm_sourceclient-live_cfg.DxyMax
DxyMax
Definition: beam_dqm_sourceclient-live_cfg.py:187
StripSubdetector::TIB
static constexpr auto TIB
Definition: StripSubdetector.h:16
tadqm::TrackAnalyzer::yPointOfClosestApproachVsZ0wrtBS
MonitorElement * yPointOfClosestApproachVsZ0wrtBS
Definition: TrackAnalyzer.h:426
tadqm::TrackAnalyzer::NumberOfRecHitsPerTrackVsPhi
MonitorElement * NumberOfRecHitsPerTrackVsPhi
Definition: TrackAnalyzer.h:341
tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfLayersPerTrackVsPhi
MonitorElement * NumberOfLayersPerTrackVsPhi
Definition: TrackAnalyzer.h:468
tadqm::TrackAnalyzer::bookHistosForTrackerSpecific
void bookHistosForTrackerSpecific(DQMStore::IBooker &ibooker)
Definition: TrackAnalyzer.cc:2247
tadqm::TrackAnalyzer::DeltaZToPV
MonitorElement * DeltaZToPV
Definition: TrackAnalyzer.h:410
Transition.h
MonitorTrackSTAMuons_cfi.pErrMax
pErrMax
Definition: MonitorTrackSTAMuons_cfi.py:235
tadqm::TrackAnalyzer::LongDCASig
MonitorElement * LongDCASig
Definition: TrackAnalyzer.h:444
MonitorTrackSTAMuons_cfi.Chi2Min
Chi2Min
Definition: MonitorTrackSTAMuons_cfi.py:66
tadqm::TrackAnalyzer::zPointOfClosestApproach
MonitorElement * zPointOfClosestApproach
Definition: TrackAnalyzer.h:428
tadqm::TrackAnalyzer::TkParameterMEs::TrackPt
MonitorElement * TrackPt
Definition: TrackAnalyzer.h:238
tadqm::TrackAnalyzer::NumberOfLostRecHitVsPhiVsEtaPerTrack
MonitorElement * NumberOfLostRecHitVsPhiVsEtaPerTrack
Definition: TrackAnalyzer.h:357
tadqm::TrackAnalyzer::doRecHitVsPhiVsEtaPerTrack_
bool doRecHitVsPhiVsEtaPerTrack_
Definition: TrackAnalyzer.h:107
tadqm::TrackAnalyzer::TkParameterMEs::NumberOfLayersPerTrackVsTheta
MonitorElement * NumberOfLayersPerTrackVsTheta
Definition: TrackAnalyzer.h:320
MonitorTrackSTAMuons_cfi.X0Min
X0Min
Definition: MonitorTrackSTAMuons_cfi.py:286
MonitorTrackSTAMuons_cfi.TrackPxMin
TrackPxMin
Definition: MonitorTrackSTAMuons_cfi.py:206
tadqm::TrackAnalyzer::hits_total_
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_total_
Definition: TrackAnalyzer.h:501
tadqm::TrackAnalyzer::bx_
unsigned int bx_
Definition: TrackAnalyzer.h:503
LaserDQM_cfi.mon
mon
Definition: LaserDQM_cfi.py:3
tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs::detectorTag
std::string detectorTag
Definition: TrackAnalyzer.h:474
tadqm::TrackAnalyzer::DistanceOfClosestApproachToPV
MonitorElement * DistanceOfClosestApproachToPV
Definition: TrackAnalyzer.h:408
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
MonitorTrackSTAMuons_cfi.Y0Min
Y0Min
Definition: MonitorTrackSTAMuons_cfi.py:291
MonitorTrackSTAMuons_cfi.TrackPyBin
TrackPyBin
Definition: MonitorTrackSTAMuons_cfi.py:209
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
tadqm::TrackAnalyzer::DistanceOfClosestApproachToPVZoom
MonitorElement * DistanceOfClosestApproachToPVZoom
Definition: TrackAnalyzer.h:409
MonitorTrackSTAMuons_cfi.TrackPzMax
TrackPzMax
Definition: MonitorTrackSTAMuons_cfi.py:215
tadqm::TrackAnalyzer::TkParameterMEs::TrackPhiErr
MonitorElement * TrackPhiErr
Definition: TrackAnalyzer.h:282
tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs
Definition: TrackAnalyzer.h:462
MuonTCMETValueMapProducer_cff.nLayers
nLayers
Definition: MuonTCMETValueMapProducer_cff.py:38
tadqm::TrackAnalyzer::TESTDistanceOfClosestApproachToBSVsPhi
MonitorElement * TESTDistanceOfClosestApproachToBSVsPhi
Definition: TrackAnalyzer.h:437
GetLumi::lastBunchCrossing
static const unsigned int lastBunchCrossing
Definition: GetLumi.h:43
TrackingMonitor_cfi.LongDCAMin
LongDCAMin
Definition: TrackingMonitor_cfi.py:430
MonitorTrackSTAMuons_cfi.Chi2Bin
Chi2Bin
Definition: MonitorTrackSTAMuons_cfi.py:64
tadqm::TrackAnalyzer::NumberOfLostRecHitsPerTrackVsPt
MonitorElement * NumberOfLostRecHitsPerTrackVsPt
Definition: TrackAnalyzer.h:356
tadqm::TrackAnalyzer::stoppingSource
MonitorElement * stoppingSource
Definition: TrackAnalyzer.h:432
tadqm::TrackAnalyzer::doEffFromHitPatternVsPU_
bool doEffFromHitPatternVsPU_
Definition: TrackAnalyzer.h:138
tadqm::TrackAnalyzer::doTrackPxPyPlots_
bool doTrackPxPyPlots_
Definition: TrackAnalyzer.h:119
beam_dqm_sourceclient-live_cfg.Chi2NDFBin
Chi2NDFBin
Definition: beam_dqm_sourceclient-live_cfg.py:192
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
edm::ParameterSet
Definition: ParameterSet.h:47
tadqm::TrackAnalyzer::doTestPlots_
bool doTestPlots_
Definition: TrackAnalyzer.h:128
MonitorTrackInnerTrackMuons_cff.PVBin
PVBin
Definition: MonitorTrackInnerTrackMuons_cff.py:48
tadqm::TrackAnalyzer::sip2dToPV
MonitorElement * sip2dToPV
Definition: TrackAnalyzer.h:458
tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfLayersPerTrack
MonitorElement * NumberOfLayersPerTrack
Definition: TrackAnalyzer.h:467
tadqm::TrackAnalyzer::TkParameterMEs::TrackPx
MonitorElement * TrackPx
Definition: TrackAnalyzer.h:235
dqm::impl::MonitorElement::getNbinsY
virtual int getNbinsY() const
get # of bins in Y-axis
Definition: MonitorElement.cc:580
tadqm::TrackAnalyzer::yPointOfClosestApproach
MonitorElement * yPointOfClosestApproach
Definition: TrackAnalyzer.h:423
MonitorTrackSTAMuons_cfi.RecLayMin
RecLayMin
Definition: MonitorTrackSTAMuons_cfi.py:156
tadqm::TrackAnalyzer::doLumiAnalysis_
bool doLumiAnalysis_
Definition: TrackAnalyzer.h:125
etaerror
Definition: HIMultiTrackSelector.h:50
MonitorTrackSTAMuons_cfi.TrackPxMax
TrackPxMax
Definition: MonitorTrackSTAMuons_cfi.py:205
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
tadqm::TrackAnalyzer::NumberOfLostRecHitsPerTrack
MonitorElement * NumberOfLostRecHitsPerTrack
Definition: TrackAnalyzer.h:337
tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfLayersPerTrackVsEta
MonitorElement * NumberOfLayersPerTrackVsEta
Definition: TrackAnalyzer.h:469
tadqm::TrackAnalyzer::stoppingSourceVSeta
MonitorElement * stoppingSourceVSeta
Definition: TrackAnalyzer.h:433
tadqm::TrackAnalyzer::sipDxyToPV
MonitorElement * sipDxyToPV
Definition: TrackAnalyzer.h:459
LumiScalersCollection
std::vector< LumiScalers > LumiScalersCollection
Definition: LumiScalers.h:144
Folder
Definition: DQMStoreStats.h:134
edm::ConsumesCollector::mayConsume
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)
Definition: ConsumesCollector.h:72
tadqm::TrackAnalyzer::forceSCAL_
const bool forceSCAL_
Definition: TrackAnalyzer.h:142
tadqm::TrackAnalyzer::TransDCASig
MonitorElement * TransDCASig
Definition: TrackAnalyzer.h:445
tadqm::TrackAnalyzer::NumberOfLostRecHitVsPtVsEtaPerTrack
MonitorElement * NumberOfLostRecHitVsPtVsEtaPerTrack
Definition: TrackAnalyzer.h:358
PV3DBase::eta
T eta() const
Definition: PV3DBase.h:73
electrons_cff.ip3d
ip3d
Definition: electrons_cff.py:384
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
reco::TransientTrack::impactPointState
TrajectoryStateOnSurface impactPointState() const
Definition: TransientTrack.h:98
tadqm::TrackAnalyzer::DeltaZToPVZoom
MonitorElement * DeltaZToPVZoom
Definition: TrackAnalyzer.h:411
createfilelist.int
int
Definition: createfilelist.py:10
MonitorTrackSTAMuons_cfi.phiErrMin
phiErrMin
Definition: MonitorTrackSTAMuons_cfi.py:266
MetAnalyzer.pv
def pv(vc)
Definition: MetAnalyzer.py:7
iEvent
int iEvent
Definition: GenABIO.cc:224
MonitorTrackSTAMuons_cfi.RecLayMax
RecLayMax
Definition: MonitorTrackSTAMuons_cfi.py:155
MonitorTrackSTAMuons_cfi.pxErrMin
pxErrMin
Definition: MonitorTrackSTAMuons_cfi.py:246
tadqm::TrackAnalyzer::doGeneralPropertiesPlots_
bool doGeneralPropertiesPlots_
Definition: TrackAnalyzer.h:104
tadqm::TrackAnalyzer::initHistos
void initHistos()
Definition: TrackAnalyzer.cc:109
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:771
tadqm::TrackAnalyzer::scal_lumi_
float scal_lumi_
Definition: TrackAnalyzer.h:505
tadqm::TrackAnalyzer::AbsDistanceOfClosestApproachToBS
MonitorElement * AbsDistanceOfClosestApproachToBS
Definition: TrackAnalyzer.h:407
topSingleLeptonDQM_PU_cfi.pattern
pattern
Definition: topSingleLeptonDQM_PU_cfi.py:39
tadqm::TrackAnalyzer::yPointOfClosestApproachToPV
MonitorElement * yPointOfClosestApproachToPV
Definition: TrackAnalyzer.h:424
tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_PosEta_Phi_btw_16_0
MonitorElement * TrackPt_PosEta_Phi_btw_16_0
Definition: TrackAnalyzer.h:245
TransientTrackBuilder
Definition: TransientTrackBuilder.h:16
beam_dqm_sourceclient-live_cfg.Chi2NDFMin
Chi2NDFMin
Definition: beam_dqm_sourceclient-live_cfg.py:191
tadqm::TrackAnalyzer::Chi2oNDF
MonitorElement * Chi2oNDF
Definition: TrackAnalyzer.h:387
tadqm::TrackAnalyzer::NumberOfMIRecHitVsPhiVsEtaPerTrack
MonitorElement * NumberOfMIRecHitVsPhiVsEtaPerTrack
Definition: TrackAnalyzer.h:364
MonitorTrackSTAMuons_cfi.PhiMin
PhiMin
Definition: MonitorTrackSTAMuons_cfi.py:231
tadqm::TrackAnalyzer::histname
std::string histname
Definition: TrackAnalyzer.h:509
tadqm::TrackAnalyzer::TESTDistanceOfClosestApproachToBS
MonitorElement * TESTDistanceOfClosestApproachToBS
Definition: TrackAnalyzer.h:436
MonitorTrackSTAMuons_cfi.pyErrBin
pyErrBin
Definition: MonitorTrackSTAMuons_cfi.py:249
MonitorTrackSTAMuons_cfi.VXMax
VXMax
Definition: MonitorTrackSTAMuons_cfi.py:270
tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfRecHitsPerTrackVsPhi
MonitorElement * NumberOfRecHitsPerTrackVsPhi
Definition: TrackAnalyzer.h:464
submitPVResolutionJobs.q
q
Definition: submitPVResolutionJobs.py:84
MagneticField.h
tadqm::TrackAnalyzer::oriAlgo
MonitorElement * oriAlgo
Definition: TrackAnalyzer.h:431
beam_dqm_sourceclient-live_cfg.DxyBin
DxyBin
Definition: beam_dqm_sourceclient-live_cfg.py:188
tadqm::TrackAnalyzer::bookHistosForHitProperties
void bookHistosForHitProperties(DQMStore::IBooker &ibooker)
Definition: TrackAnalyzer.cc:315
edm::EventSetup
Definition: EventSetup.h:57
tadqm::TrackAnalyzer::sipDxyToBS
MonitorElement * sipDxyToBS
Definition: TrackAnalyzer.h:455
reco::TransientTrack::outermostMeasurementState
TrajectoryStateOnSurface outermostMeasurementState() const
Definition: TransientTrack.h:86
GetLumi::rXSEC_PIXEL_CLUSTER
static constexpr double rXSEC_PIXEL_CLUSTER
Definition: GetLumi.h:40
tadqm::TrackAnalyzer::zPointOfClosestApproachVsPhi
MonitorElement * zPointOfClosestApproachVsPhi
Definition: TrackAnalyzer.h:430
MonitorTrackSTAMuons_cfi.phiErrBin
phiErrBin
Definition: MonitorTrackSTAMuons_cfi.py:264
MonitorTrackSTAMuons_cfi.Y0Max
Y0Max
Definition: MonitorTrackSTAMuons_cfi.py:290
tadqm::TrackAnalyzer::TkParameterMEs::Chi2oNDFVsEta
MonitorElement * Chi2oNDFVsEta
Definition: TrackAnalyzer.h:325
beam_dqm_sourceclient-live_cfg.Chi2NDFMax
Chi2NDFMax
Definition: beam_dqm_sourceclient-live_cfg.py:190
tadqm::TrackAnalyzer::TkParameterMEs::NumberOfValidRecHitsPerTrackVsPt
MonitorElement * NumberOfValidRecHitsPerTrackVsPt
Definition: TrackAnalyzer.h:294
tadqm::TrackAnalyzer::metaDataToken_
edm::EDGetTokenT< OnlineLuminosityRecord > metaDataToken_
Definition: TrackAnalyzer.h:88
MonitorTrackSTAMuons_cfi.TrackPxBin
TrackPxBin
Definition: MonitorTrackSTAMuons_cfi.py:204
tadqm::TrackAnalyzer::qualityString_
std::string qualityString_
Definition: TrackAnalyzer.h:146
HcalObjRepresent::Fill
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
Definition: HcalObjRepresent.h:1053
CartesianTrajectoryError::matrix
const AlgebraicSymMatrix66 & matrix() const
Definition: CartesianTrajectoryError.h:28
tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaLoose
MonitorElement * TrackEtaLoose
Definition: TrackAnalyzer.h:269
tadqm::TrackAnalyzer::TkParameterMEs::NumberOfValidRecHitsPerTrackVsPhi
MonitorElement * NumberOfValidRecHitsPerTrackVsPhi
Definition: TrackAnalyzer.h:291
InputTag.h
reco::HitPattern::TRACK_HITS
Definition: HitPattern.h:155
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:120
tadqm::TrackAnalyzer::Chi2oNDFVsPhi
MonitorElement * Chi2oNDFVsPhi
Definition: TrackAnalyzer.h:392
tadqm::TrackAnalyzer::bookHistosForLScertification
void bookHistosForLScertification(DQMStore::IBooker &ibooker)
Definition: TrackAnalyzer.cc:740
reco::TrackBase::qualityByName
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:126
PV3DBase::mag
T mag() const
Definition: PV3DBase.h:64
tadqm::TrackAnalyzer::good_vertices_
unsigned int good_vertices_
Definition: TrackAnalyzer.h:502
MonitorTrackSTAMuons_cfi.VYBin
VYBin
Definition: MonitorTrackSTAMuons_cfi.py:274
GetLumi.h
multPhiCorr_741_25nsDY_cfi.px
px
Definition: multPhiCorr_741_25nsDY_cfi.py:10
tadqm::TrackAnalyzer::TkParameterMEs::TrackPtErrVsEta
MonitorElement * TrackPtErrVsEta
Definition: TrackAnalyzer.h:260
MonitorTrackSTAMuons_cfi.Chi2Max
Chi2Max
Definition: MonitorTrackSTAMuons_cfi.py:65
tadqm::TrackAnalyzer::NumberOfValidRecHitVsPtVsEtaPerTrack
MonitorElement * NumberOfValidRecHitVsPtVsEtaPerTrack
Definition: TrackAnalyzer.h:351
reco::TrackBase::qualityNames
static const std::string qualityNames[]
Definition: TrackBase.h:163
TrajectoryStateOnSurface::globalMomentum
GlobalVector globalMomentum() const
Definition: TrajectoryStateOnSurface.h:66
tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaErr
MonitorElement * TrackEtaErr
Definition: TrackAnalyzer.h:283
dqm::impl::MonitorElement::setBinContent
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
Definition: MonitorElement.cc:691
edmNew::DetSetVector
Definition: DetSetNew.h:13
GetLumi::SECONDS_PER_LS
static constexpr double SECONDS_PER_LS
Definition: GetLumi.h:27
tadqm::TrackAnalyzer::doBSPlots_
bool doBSPlots_
Definition: TrackAnalyzer.h:101
ESInputTag.h
std
Definition: JetResolutionObject.h:76
MonitorTrackSTAMuons_cfi.TrackPzMin
TrackPzMin
Definition: MonitorTrackSTAMuons_cfi.py:214
IPTools.h
tadqm::TrackAnalyzer::NumberOfRecHitsPerTrackVsEta
MonitorElement * NumberOfRecHitsPerTrackVsEta
Definition: TrackAnalyzer.h:343
tadqm::TrackAnalyzer::lumi_factor_per_bx_
float lumi_factor_per_bx_
Definition: TrackAnalyzer.h:93
reco::HitPattern::HitCategory
HitCategory
Definition: HitPattern.h:155
reco::TransientTrack
Definition: TransientTrack.h:19
tadqm::TrackAnalyzer::fillHistosForTrackerSpecific
void fillHistosForTrackerSpecific(const reco::Track &track)
Definition: TrackAnalyzer.cc:2359
StripSubdetector::TEC
static constexpr auto TEC
Definition: StripSubdetector.h:19
singleTopDQM_cfi.monitoring
monitoring
Definition: singleTopDQM_cfi.py:46
tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_NegEta_Phi_btw_neg16_neg32
MonitorElement * TrackPt_NegEta_Phi_btw_neg16_neg32
Definition: TrackAnalyzer.h:239
tadqm::TrackAnalyzer::NumberOfValidRecHitsPerTrackVsPhi
MonitorElement * NumberOfValidRecHitsPerTrackVsPhi
Definition: TrackAnalyzer.h:346
MonitorTrackInnerTrackMuons_cff.EtaMin
EtaMin
Definition: MonitorTrackInnerTrackMuons_cff.py:64
MonitorTrackInnerTrackMuons_cff.EtaMax
EtaMax
Definition: MonitorTrackInnerTrackMuons_cff.py:64
reco::TrackBase::algoSize
Definition: TrackBase.h:141
StopReason::NOT_STOPPED
MonitorTrackSTAMuons_cfi.X0Max
X0Max
Definition: MonitorTrackSTAMuons_cfi.py:285
MonitorTrackSTAMuons_cfi.RecHitBin
RecHitBin
Definition: MonitorTrackSTAMuons_cfi.py:109
TrackingMonitor_cfi.LongDCABins
LongDCABins
Definition: TrackingMonitor_cfi.py:429
MonitorTrackSTAMuons_cfi.pErrMin
pErrMin
Definition: MonitorTrackSTAMuons_cfi.py:236
tadqm::TrackAnalyzer::lumiscalersToken_
edm::EDGetTokenT< LumiScalersCollection > lumiscalersToken_
Definition: TrackAnalyzer.h:87
tadqm::TrackAnalyzer::doDCAwrt000Plots_
bool doDCAwrt000Plots_
Definition: TrackAnalyzer.h:123
MonitorTrackSTAMuons_cfi.ThetaMax
ThetaMax
Definition: MonitorTrackSTAMuons_cfi.py:220
edmNew::DetSetVector::end
const_iterator end(bool update=false) const
Definition: DetSetVectorNew.h:535
edm::Transition::BeginRun
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
MonitorTrackInnerTrackMuons_cff.Phi2DBin
Phi2DBin
Definition: MonitorTrackInnerTrackMuons_cff.py:59
tadqm::TrackAnalyzer::fillHistosForState
void fillHistosForState(const edm::EventSetup &iSetup, const reco::Track &track, std::string sname)
Definition: TrackAnalyzer.cc:1942
dqm::impl::MonitorElement::getNbinsX
virtual int getNbinsX() const
get # of bins in X-axis
Definition: MonitorElement.cc:574
TrajectoryStateOnSurface::curvilinearError
const CurvilinearTrajectoryError & curvilinearError() const
Definition: TrajectoryStateOnSurface.h:72
reco::HitPattern::MISSING_INNER_HITS
Definition: HitPattern.h:155
MonitorTrackSTAMuons_cfi.pyErrMax
pyErrMax
Definition: MonitorTrackSTAMuons_cfi.py:250
tadqm::TrackAnalyzer::NhitVsEta_HighPurity
MonitorElement * NhitVsEta_HighPurity
Definition: TrackAnalyzer.h:449
findQualityFiles.jj
string jj
Definition: findQualityFiles.py:188
TrackingMonitor_cfi.TransDCAMin
TransDCAMin
Definition: TrackingMonitor_cfi.py:426
tadqm::TrackAnalyzer::monName
std::string monName[monQuantity::END]
Definition: TrackAnalyzer.h:507
tadqm::TrackAnalyzer::pixelClustersToken_
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersToken_
Definition: TrackAnalyzer.h:86
StripSubdetector::TOB
static constexpr auto TOB
Definition: StripSubdetector.h:18
tadqm::TrackAnalyzer::DistanceOfClosestApproachErrorVsPhi
MonitorElement * DistanceOfClosestApproachErrorVsPhi
Definition: TrackAnalyzer.h:403
tadqm::TrackAnalyzer::NumberOfMORecHitsPerTrack
MonitorElement * NumberOfMORecHitsPerTrack
Definition: TrackAnalyzer.h:339
OnlineLuminosityRecord::instLumi
float instLumi() const
Return the luminosity for the current nibble.
Definition: OnlineLuminosityRecord.h:33
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
HiEvtPlane_cfi.pterror
pterror
Definition: HiEvtPlane_cfi.py:24
MonitorTrackSTAMuons_cfi.ptErrBin
ptErrBin
Definition: MonitorTrackSTAMuons_cfi.py:239
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
TrackingMonitor_cfi.VZMaxProf
VZMaxProf
Definition: TrackingMonitor_cfi.py:321
tadqm::TrackAnalyzer::dNdPhi_HighPurity
MonitorElement * dNdPhi_HighPurity
Definition: TrackAnalyzer.h:446
tadqm::TrackAnalyzer::setNumberOfGoodVertices
void setNumberOfGoodVertices(const edm::Event &)
Definition: TrackAnalyzer.cc:1105
MonitorTrackSTAMuons_cfi.PhiBin
PhiBin
Definition: MonitorTrackSTAMuons_cfi.py:229
tadqm::TrackAnalyzer::TkParameterMEs::NumberOfRecHitsPerTrackVsEta
MonitorElement * NumberOfRecHitsPerTrackVsEta
Definition: TrackAnalyzer.h:288
VarParsing.mult
mult
Definition: VarParsing.py:659
tadqm::TrackAnalyzer::algorithm
MonitorElement * algorithm
Definition: TrackAnalyzer.h:431
dqm::implementation::IBooker
Definition: DQMStore.h:43
tadqm::TrackAnalyzer::doHitPropertiesPlots_
bool doHitPropertiesPlots_
Definition: TrackAnalyzer.h:106
tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_PosEta_Phi_btw_neg16_neg32
MonitorElement * TrackPt_PosEta_Phi_btw_neg16_neg32
Definition: TrackAnalyzer.h:243
TransientTrackBuilder::build
reco::TransientTrack build(const reco::Track *p) const
Definition: TransientTrackBuilder.cc:20
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
tadqm::TrackAnalyzer::Chi2oNDF_lumiFlag
MonitorElement * Chi2oNDF_lumiFlag
Definition: TrackAnalyzer.h:440
tadqm::TrackAnalyzer::NumberOfMIRecHitVsPtVsEtaPerTrack
MonitorElement * NumberOfMIRecHitVsPtVsEtaPerTrack
Definition: TrackAnalyzer.h:365
MonitorTrackSTAMuons_cfi.pzErrMax
pzErrMax
Definition: MonitorTrackSTAMuons_cfi.py:255
MonitorTrackSTAMuons_cfi.pxErrMax
pxErrMax
Definition: MonitorTrackSTAMuons_cfi.py:245
TrackingMonitor_cfi.TransDCABins
TransDCABins
FOR HI PLOTS#####################.
Definition: TrackingMonitor_cfi.py:425
tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_NegEta_Phi_btw_0_neg16
MonitorElement * TrackPt_NegEta_Phi_btw_0_neg16
Definition: TrackAnalyzer.h:240
tadqm::TrackAnalyzer::TkParameterMEs::Chi2ProbVsPhi
MonitorElement * Chi2ProbVsPhi
Definition: TrackAnalyzer.h:330
MonitorTrackSTAMuons_cfi.etaErrBin
etaErrBin
Definition: MonitorTrackSTAMuons_cfi.py:259
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
RunInfoPI::valid
Definition: RunInfoPayloadInspectoHelper.h:16
TrackingMonitor_cfi.LUMIBin
LUMIBin
Definition: TrackingMonitor_cfi.py:413
tadqm::TrackAnalyzer::analyze
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup, const reco::Track &track)
Definition: TrackAnalyzer.cc:1171
TrackerTopologyRcd
Definition: TrackerTopologyRcd.h:10
MonitorTrackSTAMuons_cfi.TrackPMin
TrackPMin
Definition: MonitorTrackSTAMuons_cfi.py:196
tadqm::TrackAnalyzer::minNumberOfPixelsPerCluster_
int minNumberOfPixelsPerCluster_
Definition: TrackAnalyzer.h:144
combine.missing
missing
Definition: combine.py:5
tadqm::TrackAnalyzer::conf_
edm::ParameterSet const * conf_
Definition: TrackAnalyzer.h:95
tadqm::TrackAnalyzer::zPointOfClosestApproachToPV
MonitorElement * zPointOfClosestApproachToPV
Definition: TrackAnalyzer.h:429
tadqm::TrackAnalyzer::Key
Definition: TrackAnalyzer.h:478
tadqm::TrackAnalyzer::TkParameterMEs
Definition: TrackAnalyzer.h:148
tadqm::TrackAnalyzer::sip3dToPV
MonitorElement * sip3dToPV
Definition: TrackAnalyzer.h:457
tadqm::TrackAnalyzer::DistanceOfClosestApproachVsTheta
MonitorElement * DistanceOfClosestApproachVsTheta
Definition: TrackAnalyzer.h:412
tadqm::TrackAnalyzer::pvToken_
edm::EDGetTokenT< reco::VertexCollection > pvToken_
Definition: TrackAnalyzer.h:85
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
tadqm::TrackAnalyzer::DistanceOfClosestApproachVsPhi
MonitorElement * DistanceOfClosestApproachVsPhi
Definition: TrackAnalyzer.h:413
tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfRecHitsPerTrack
MonitorElement * NumberOfRecHitsPerTrack
Definition: TrackAnalyzer.h:463
tadqm::TrackAnalyzer::TkParameterMEs::Chi2oNDFVsPt
MonitorElement * Chi2oNDFVsPt
Definition: TrackAnalyzer.h:324
TrackingMonitor_cfi.VZMinProf
VZMinProf
Definition: TrackingMonitor_cfi.py:322
tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfLayersPerTrackVsPt
MonitorElement * NumberOfLayersPerTrackVsPt
Definition: TrackAnalyzer.h:470
edm::Event
Definition: Event.h:73
tadqm::TrackAnalyzer::TrackAnalyzer
TrackAnalyzer(const edm::ParameterSet &)
Definition: TrackAnalyzer.cc:40
tadqm::TrackAnalyzer::doHIPlots_
bool doHIPlots_
Definition: TrackAnalyzer.h:131
tadqm::TrackAnalyzer::DistanceOfClosestApproachVsEta
MonitorElement * DistanceOfClosestApproachVsEta
Definition: TrackAnalyzer.h:417
MonitorTrackSTAMuons_cfi.Chi2ProbMax
Chi2ProbMax
Definition: MonitorTrackSTAMuons_cfi.py:75
tadqm::TrackAnalyzer::doPVPlots_
bool doPVPlots_
Definition: TrackAnalyzer.h:102
reco::TrackBase::algoNames
static const std::string algoNames[]
Definition: TrackBase.h:147
A
tadqm::TrackAnalyzer::~TrackAnalyzer
~TrackAnalyzer()
Definition: TrackAnalyzer.cc:192
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:800
dqm::impl::MonitorElement::getBinContent
virtual double getBinContent(int binx) const
get content of bin (1-D)
Definition: MonitorElement.cc:592
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
TSOS
TrajectoryStateOnSurface TSOS
Definition: TestHits.cc:19
cuy.ii
ii
Definition: cuy.py:590
MonitorTrackSTAMuons_cfi.RecLayBin
RecLayBin
Definition: MonitorTrackSTAMuons_cfi.py:154
edm::InputTag
Definition: InputTag.h:15
MonitorTrackSTAMuons_cfi.pyErrMin
pyErrMin
Definition: MonitorTrackSTAMuons_cfi.py:251
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
OnlineLuminosityRecord
Class to contain the online luminosity from soft FED 1022.
Definition: OnlineLuminosityRecord.h:17
tadqm::TrackAnalyzer::stateName_
std::string stateName_
Definition: TrackAnalyzer.h:97
MonitorTrackSTAMuons_cfi.pxErrBin
pxErrBin
Definition: MonitorTrackSTAMuons_cfi.py:244
CurvilinearTrajectoryError::matrix
const AlgebraicSymMatrix55 & matrix() const
Definition: CurvilinearTrajectoryError.h:61
reco::Vertex
Definition: Vertex.h:35
tadqm::TrackAnalyzer::doSIPPlots_
bool doSIPPlots_
Definition: TrackAnalyzer.h:134
StripSubdetector::TID
static constexpr auto TID
Definition: StripSubdetector.h:17
tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_PosEta_Phi_btw_0_neg16
MonitorElement * TrackPt_PosEta_Phi_btw_0_neg16
Definition: TrackAnalyzer.h:244
MonitorTrackSTAMuons_cfi.pErrBin
pErrBin
Definition: MonitorTrackSTAMuons_cfi.py:234
MonitorTrackInnerTrackMuons_cff.PVMax
PVMax
Definition: MonitorTrackInnerTrackMuons_cff.py:50
beam_dqm_sourceclient-live_cfg.VZMin
VZMin
Definition: beam_dqm_sourceclient-live_cfg.py:195
MonitorTrackSTAMuons_cfi.X0Bin
X0Bin
Definition: MonitorTrackSTAMuons_cfi.py:284
TrackingMonitor_cfi.LUMIMin
LUMIMin
Definition: TrackingMonitor_cfi.py:414
hit
Definition: SiStripHitEffFromCalibTree.cc:88
tadqm::TrackAnalyzer::DistanceOfClosestApproachErrorVsEta
MonitorElement * DistanceOfClosestApproachErrorVsEta
Definition: TrackAnalyzer.h:402
TrackAnalyzer.h
tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_NegEta_Phi_btw_32_16
MonitorElement * TrackPt_NegEta_Phi_btw_32_16
Definition: TrackAnalyzer.h:242
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
beam_dqm_sourceclient-live_cfg.VZBin
VZBin
Definition: beam_dqm_sourceclient-live_cfg.py:194
MonitorTrackSTAMuons_cfi.Z0Max
Z0Max
Definition: MonitorTrackSTAMuons_cfi.py:295
tadqm::TrackAnalyzer::doEffFromHitPatternVsLUMI_
bool doEffFromHitPatternVsLUMI_
Definition: TrackAnalyzer.h:140
tadqm::TrackAnalyzer::TkParameterMEs::TrackPErr
MonitorElement * TrackPErr
Definition: TrackAnalyzer.h:258
tadqm::TrackAnalyzer::TkParameterMEs::Ratio_byFolding2
MonitorElement * Ratio_byFolding2
Definition: TrackAnalyzer.h:248
tadqm::TrackAnalyzer::NumberOfRecHitsPerTrack
MonitorElement * NumberOfRecHitsPerTrack
Definition: TrackAnalyzer.h:335
MonitorTrackSTAMuons_cfi.ThetaBin
ThetaBin
Definition: MonitorTrackSTAMuons_cfi.py:219
DeadROC_duringRun.dir
dir
Definition: DeadROC_duringRun.py:23
MonitorTrackSTAMuons_cfi.TrackPyMax
TrackPyMax
Definition: MonitorTrackSTAMuons_cfi.py:210
tadqm::TrackAnalyzer::NumberOfRecHitsPerTrackVsTheta
MonitorElement * NumberOfRecHitsPerTrackVsTheta
Definition: TrackAnalyzer.h:342
reco::TransientTrack::innermostMeasurementState
TrajectoryStateOnSurface innermostMeasurementState() const
Definition: TransientTrack.h:88
TrackerGeometry
Definition: TrackerGeometry.h:14
tadqm::TrackAnalyzer::doMeasurementStatePlots_
bool doMeasurementStatePlots_
Definition: TrackAnalyzer.h:105
tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfRecHitsPerTrackVsPt
MonitorElement * NumberOfRecHitsPerTrackVsPt
Definition: TrackAnalyzer.h:466
edmNew::DetSet::const_iterator
const data_type * const_iterator
Definition: DetSetNew.h:31
MonitorTrackSTAMuons_cfi.VXMin
VXMin
Definition: MonitorTrackSTAMuons_cfi.py:271
reco::TrackBase::highPurity
Definition: TrackBase.h:154
tadqm::TrackAnalyzer::xPointOfClosestApproachToPV
MonitorElement * xPointOfClosestApproachToPV
Definition: TrackAnalyzer.h:419
debug_messages_cfi.errors
errors
Definition: debug_messages_cfi.py:54
beam_dqm_sourceclient-live_cfg.VZMax
VZMax
Definition: beam_dqm_sourceclient-live_cfg.py:196