CMS 3D CMS Logo

StandaloneTrackMonitor.cc
Go to the documentation of this file.
33 
34 #include "TFile.h"
35 #include "TH1.h"
36 #include "TMath.h"
37 #include "TPRegexp.h"
38 
39 #include <string>
40 #include <vector>
41 #include <map>
42 #include <set>
43 
45 public:
47 
48 protected:
49  void analyze(edm::Event const& iEvent, edm::EventSetup const& iSetup) override;
50  void processHit(const TrackingRecHit& recHit,
51  edm::EventSetup const& iSetup,
52  const TrackerGeometry& tkGeom,
53  double wfac = 1);
54  void processClusters(edm::Event const& iEvent,
55  edm::EventSetup const& iSetup,
56  const TrackerGeometry& tkGeom,
57  double wfac = 1);
58  void addClusterToMap(uint32_t detid, const SiStripCluster* cluster);
59  void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
60 
61 private:
63 
76 
79  const bool doPUCorrection_;
80  const bool isMC_;
81  const bool haveAllHistograms_;
83  const bool verbose_;
84 
103 
111 
116 
121 
129 
130  // MC only
134 
135  // Exclusive Quantities
145 
150 
155 
156  unsigned long long m_cacheID_;
157 
158  std::vector<float> vpu_;
159  std::map<uint32_t, std::set<const SiStripCluster*> > clusterMap_;
160 };
161 
162 // -----------------------------
163 // constructors and destructor
164 // -----------------------------
166  : parameters_(ps),
167  moduleName_(parameters_.getUntrackedParameter<std::string>("moduleName", "StandaloneTrackMonitor")),
168  folderName_(parameters_.getUntrackedParameter<std::string>("folderName", "highPurityTracks")),
169  trackTag_(parameters_.getUntrackedParameter<edm::InputTag>("trackInputTag", edm::InputTag("generalTracks"))),
170  bsTag_(parameters_.getUntrackedParameter<edm::InputTag>("offlineBeamSpot", edm::InputTag("offlineBeamSpot"))),
171  vertexTag_(
172  parameters_.getUntrackedParameter<edm::InputTag>("vertexTag", edm::InputTag("offlinePrimaryVertices"))),
173  puSummaryTag_(parameters_.getUntrackedParameter<edm::InputTag>("puTag", edm::InputTag("addPileupInfo"))),
174  clusterTag_(parameters_.getUntrackedParameter<edm::InputTag>("clusterTag", edm::InputTag("siStripClusters"))),
175  trackToken_(consumes<reco::TrackCollection>(trackTag_)),
176  bsToken_(consumes<reco::BeamSpot>(bsTag_)),
177  vertexToken_(consumes<reco::VertexCollection>(vertexTag_)),
178  puSummaryToken_(consumes<std::vector<PileupSummaryInfo> >(puSummaryTag_)),
179  clusterToken_(consumes<edmNew::DetSetVector<SiStripCluster> >(clusterTag_)),
180  trackQuality_(parameters_.getUntrackedParameter<std::string>("trackQuality", "highPurity")),
181  siStripClusterInfo_(consumesCollector()),
182  doPUCorrection_(parameters_.getUntrackedParameter<bool>("doPUCorrection", false)),
183  isMC_(parameters_.getUntrackedParameter<bool>("isMC", false)),
184  haveAllHistograms_(parameters_.getUntrackedParameter<bool>("haveAllHistograms", false)),
185  puScaleFactorFile_(
186  parameters_.getUntrackedParameter<std::string>("puScaleFactorFile", "PileupScaleFactor_run203002.root")),
187  verbose_(parameters_.getUntrackedParameter<bool>("verbose", false)) {
188  trackEtaH_ = nullptr;
189  trackEtaerrH_ = nullptr;
190  trackCosThetaH_ = nullptr;
191  trackThetaerrH_ = nullptr;
192  trackPhiH_ = nullptr;
193  trackPhierrH_ = nullptr;
194  trackPH_ = nullptr;
195  trackPtH_ = nullptr;
196  trackPtUpto2GeVH_ = nullptr;
197  trackPtOver10GeVH_ = nullptr;
198  trackPterrH_ = nullptr;
199  trackqOverpH_ = nullptr;
200  trackqOverperrH_ = nullptr;
201  trackChargeH_ = nullptr;
202  nlostHitsH_ = nullptr;
203  nvalidTrackerHitsH_ = nullptr;
204  nvalidPixelHitsH_ = nullptr;
205  nvalidStripHitsH_ = nullptr;
206  trkLayerwithMeasurementH_ = nullptr;
207  pixelLayerwithMeasurementH_ = nullptr;
208  stripLayerwithMeasurementH_ = nullptr;
209  beamSpotXYposH_ = nullptr;
210  beamSpotXYposerrH_ = nullptr;
211  beamSpotZposH_ = nullptr;
212  beamSpotZposerrH_ = nullptr;
213  trackChi2H_ = nullptr;
214  tracknDOFH_ = nullptr;
215  trackd0H_ = nullptr;
216  trackChi2bynDOFH_ = nullptr;
217  vertexXposH_ = nullptr;
218  vertexYposH_ = nullptr;
219  vertexZposH_ = nullptr;
220 
221  nPixBarrelH_ = nullptr;
222  nPixEndcapH_ = nullptr;
223  nStripTIBH_ = nullptr;
224  nStripTOBH_ = nullptr;
225  nStripTECH_ = nullptr;
226  nStripTIDH_ = nullptr;
227  nTracksH_ = nullptr;
228 
229  // for MC only
230  nVertexH_ = nullptr;
231  bunchCrossingH_ = nullptr;
232  nPUH_ = nullptr;
233  trueNIntH_ = nullptr;
234 
235  nHitsVspTH_ = nullptr;
236  nHitsVsEtaH_ = nullptr;
237  nHitsVsCosThetaH_ = nullptr;
238  nHitsVsPhiH_ = nullptr;
239  nHitsVsnVtxH_ = nullptr;
240  nLostHitsVspTH_ = nullptr;
241  nLostHitsVsEtaH_ = nullptr;
242  nLostHitsVsCosThetaH_ = nullptr;
243  nLostHitsVsPhiH_ = nullptr;
244 
245  hOnTrkClusChargeThinH_ = nullptr;
246  hOnTrkClusWidthThinH_ = nullptr;
247  hOnTrkClusChargeThickH_ = nullptr;
248  hOnTrkClusWidthThickH_ = nullptr;
249 
250  hOffTrkClusChargeThinH_ = nullptr;
251  hOffTrkClusWidthThinH_ = nullptr;
252  hOffTrkClusChargeThickH_ = nullptr;
253  hOffTrkClusWidthThickH_ = nullptr;
254 
255  // Read pileup weight factors
256  if (isMC_ && doPUCorrection_) {
257  vpu_.clear();
258  TFile* f1 = TFile::Open(puScaleFactorFile_.c_str());
259  TH1F* h1 = dynamic_cast<TH1F*>(f1->Get("pileupweight"));
260  for (int i = 1; i <= h1->GetNbinsX(); ++i)
261  vpu_.push_back(h1->GetBinContent(i));
262  f1->Close();
263  }
264 }
265 
267  edm::Run const& iRun,
268  edm::EventSetup const& iSetup) {
269  edm::ParameterSet TrackEtaHistoPar = parameters_.getParameter<edm::ParameterSet>("trackEtaH");
270  edm::ParameterSet TrackPtHistoPar = parameters_.getParameter<edm::ParameterSet>("trackPtH");
271 
272  std::string currentFolder = moduleName_ + "/" + folderName_;
273  iBook.setCurrentFolder(currentFolder);
274 
275  // The following are common with the official tool
276  if (haveAllHistograms_) {
277  if (!trackEtaH_)
278  trackEtaH_ = iBook.book1D("trackEta",
279  "Track Eta",
280  TrackEtaHistoPar.getParameter<int32_t>("Xbins"),
281  TrackEtaHistoPar.getParameter<double>("Xmin"),
282  TrackEtaHistoPar.getParameter<double>("Xmax"));
283  if (!trackEtaerrH_)
284  trackEtaerrH_ = iBook.book1D("trackEtaerr", "Track Eta Error", 50, 0.0, 1.0);
285  if (!trackCosThetaH_)
286  trackCosThetaH_ = iBook.book1D("trackCosTheta", "Track Cos(Theta)", 50, -1.0, 1.0);
287  if (!trackThetaerrH_)
288  trackThetaerrH_ = iBook.book1D("trackThetaerr", "Track Theta Error", 50, 0.0, 1.0);
289  if (!trackPhiH_)
290  trackPhiH_ = iBook.book1D("trackPhi", "Track Phi", 70, -3.5, 3.5);
291  if (!trackPhierrH_)
292  trackPhierrH_ = iBook.book1D("trackPhierr", "Track Phi Error", 50, 0.0, 1.0);
293 
294  if (!trackPH_)
295  trackPH_ = iBook.book1D("trackP", "Track 4-momentum", 50, 0.0, 10.0);
296  if (!trackPtH_)
297  trackPtH_ = iBook.book1D("trackPt",
298  "Track Pt",
299  TrackPtHistoPar.getParameter<int32_t>("Xbins"),
300  TrackPtHistoPar.getParameter<double>("Xmin"),
301  TrackPtHistoPar.getParameter<double>("Xmax"));
302  if (!trackPtUpto2GeVH_)
303  trackPtUpto2GeVH_ = iBook.book1D("trackPtUpto2GeV", "Track Pt upto 2GeV", 100, 0, 2.0);
304  if (!trackPtOver10GeVH_)
305  trackPtOver10GeVH_ = iBook.book1D("trackPtOver10GeV", "Track Pt greater than 10 GeV", 100, 0, 100.0);
306  if (!trackPterrH_)
307  trackPterrH_ = iBook.book1D("trackPterr", "Track Pt Error", 100, 0.0, 100.0);
308  if (!trackqOverpH_)
309  trackqOverpH_ = iBook.book1D("trackqOverp", "q Over p", 40, -10.0, 10.0);
310  if (!trackqOverperrH_)
311  trackqOverperrH_ = iBook.book1D("trackqOverperr", "q Over p Error", 50, 0.0, 25.0);
312  if (!trackChargeH_)
313  trackChargeH_ = iBook.book1D("trackCharge", "Track Charge", 50, -5, 5);
314  if (!trackChi2H_)
315  trackChi2H_ = iBook.book1D("trackChi2", "Chi2", 100, 0.0, 100.0);
316  if (!tracknDOFH_)
317  tracknDOFH_ = iBook.book1D("tracknDOF", "nDOF", 100, 0.0, 100.0);
318  if (!trackd0H_)
319  trackd0H_ = iBook.book1D("trackd0", "Track d0", 100, -1, 1);
320  if (!trackChi2bynDOFH_)
321  trackChi2bynDOFH_ = iBook.book1D("trackChi2bynDOF", "Chi2 Over nDOF", 100, 0.0, 10.0);
322 
323  if (!nlostHitsH_)
324  nlostHitsH_ = iBook.book1D("nlostHits", "No. of Lost Hits", 10, 0.0, 10.0);
325  if (!nvalidTrackerHitsH_)
326  nvalidTrackerHitsH_ = iBook.book1D("nvalidTrackerhits", "No. of Valid Tracker Hits", 35, 0.0, 35.0);
327  if (!nvalidPixelHitsH_)
328  nvalidPixelHitsH_ = iBook.book1D("nvalidPixelHits", "No. of Valid Hits in Pixel", 10, 0.0, 10.0);
329  if (!nvalidStripHitsH_)
330  nvalidStripHitsH_ = iBook.book1D("nvalidStripHits", "No.of Valid Hits in Strip", 25, 0.0, 25.0);
331 
333  trkLayerwithMeasurementH_ = iBook.book1D("trkLayerwithMeasurement", "No. of Layers per Track", 25, 0.0, 25.0);
336  iBook.book1D("pixelLayerwithMeasurement", "No. of Pixel Layers per Track", 10, 0.0, 10.0);
339  iBook.book1D("stripLayerwithMeasurement", "No. of Strip Layers per Track", 20, 0.0, 20.0);
340 
341  if (!beamSpotXYposH_)
342  beamSpotXYposH_ = iBook.book1D("beamSpotXYpos", "XY position of beam spot", 40, -4.0, 4.0);
343  if (!beamSpotXYposerrH_)
344  beamSpotXYposerrH_ = iBook.book1D("beamSpotXYposerr", "Error in XY position of beam spot", 20, 0.0, 4.0);
345  if (!beamSpotZposH_)
346  beamSpotZposH_ = iBook.book1D("beamSpotZpos", "Z position of beam spot", 100, -20.0, 20.0);
347  if (!beamSpotZposerrH_)
348  beamSpotZposerrH_ = iBook.book1D("beamSpotZposerr", "Error in Z position of beam spot", 50, 0.0, 5.0);
349 
350  if (!vertexXposH_)
351  vertexXposH_ = iBook.book1D("vertexXpos", "Vertex X position", 50, -1.0, 1.0);
352  if (!vertexYposH_)
353  vertexYposH_ = iBook.book1D("vertexYpos", "Vertex Y position", 50, -1.0, 1.0);
354  if (!vertexZposH_)
355  vertexZposH_ = iBook.book1D("vertexZpos", "Vertex Z position", 100, -20.0, 20.0);
356  if (!nVertexH_)
357  nVertexH_ = iBook.book1D("nVertex", "# of vertices", 60, -0.5, 59.5);
358 
359  if (!nPixBarrelH_)
360  nPixBarrelH_ = iBook.book1D("nHitPixelBarrel", "No. of hits in Pixel Barrel per Track", 20, 0, 20.0);
361  if (!nPixEndcapH_)
362  nPixEndcapH_ = iBook.book1D("nHitPixelEndcap", "No. of hits in Pixel Endcap per Track", 20, 0, 20.0);
363  if (!nStripTIBH_)
364  nStripTIBH_ = iBook.book1D("nHitStripTIB", "No. of hits in Strip TIB per Track", 30, 0, 30.0);
365  if (!nStripTOBH_)
366  nStripTOBH_ = iBook.book1D("nHitStripTOB", "No. of hits in Strip TOB per Track", 30, 0, 30.0);
367  if (!nStripTECH_)
368  nStripTECH_ = iBook.book1D("nHitStripTEC", "No. of hits in Strip TEC per Track", 30, 0, 30.0);
369  if (!nStripTIDH_)
370  nStripTIDH_ = iBook.book1D("nHitStripTID", "No. of hits in Strip TID per Tracks", 30, 0, 30.0);
371 
372  if (!nTracksH_)
373  nTracksH_ = iBook.book1D("nTracks", "No. of Tracks", 100, -0.5, 999.5);
374  }
375  if (isMC_) {
376  if (!bunchCrossingH_)
377  bunchCrossingH_ = iBook.book1D("bunchCrossing", "Bunch Crosssing", 60, 0, 60.0);
378  if (!nPUH_)
379  nPUH_ = iBook.book1D("nPU", "No of Pileup", 60, 0, 60.0);
380  if (!trueNIntH_)
381  trueNIntH_ = iBook.book1D("trueNInt", "True no of Interactions", 60, 0, 60.0);
382  }
383  // Exclusive histograms
384  if (!nHitsVspTH_)
385  nHitsVspTH_ = iBook.bookProfile("nHitsVspT",
386  "Number of Hits Vs pT",
387  TrackPtHistoPar.getParameter<int32_t>("Xbins"),
388  TrackPtHistoPar.getParameter<double>("Xmin"),
389  TrackPtHistoPar.getParameter<double>("Xmax"),
390  0.0,
391  0.0,
392  "g");
393  if (!nHitsVsnVtxH_)
394  nHitsVsnVtxH_ = iBook.bookProfile("nHitsVsnVtx", "Number of Hits Vs Number of Vertex", 100, 0.0, 50, 0.0, 0.0, "g");
395  if (!nHitsVsEtaH_)
396  nHitsVsEtaH_ = iBook.bookProfile("nHitsVsEta",
397  "Number of Hits Vs Eta",
398  TrackEtaHistoPar.getParameter<int32_t>("Xbins"),
399  TrackEtaHistoPar.getParameter<double>("Xmin"),
400  TrackEtaHistoPar.getParameter<double>("Xmax"),
401  0.0,
402  0.0,
403  "g");
404  if (!nHitsVsCosThetaH_)
406  iBook.bookProfile("nHitsVsCosTheta", "Number of Hits Vs Cos(Theta)", 50, -1.0, 1.0, 0.0, 0.0, "g");
407  if (!nHitsVsPhiH_)
408  nHitsVsPhiH_ = iBook.bookProfile("nHitsVsPhi", "Number of Hits Vs Phi", 100, -3.5, 3.5, 0.0, 0.0, "g");
409 
410  if (!nLostHitsVspTH_)
411  nLostHitsVspTH_ = iBook.bookProfile("nLostHitsVspT",
412  "Number of Lost Hits Vs pT",
413  TrackPtHistoPar.getParameter<int32_t>("Xbins"),
414  TrackPtHistoPar.getParameter<double>("Xmin"),
415  TrackPtHistoPar.getParameter<double>("Xmax"),
416  0.0,
417  0.0,
418  "g");
419  if (!nLostHitsVsEtaH_)
420  nLostHitsVsEtaH_ = iBook.bookProfile("nLostHitsVsEta",
421  "Number of Lost Hits Vs Eta",
422  TrackEtaHistoPar.getParameter<int32_t>("Xbins"),
423  TrackEtaHistoPar.getParameter<double>("Xmin"),
424  TrackEtaHistoPar.getParameter<double>("Xmax"),
425  0.0,
426  0.0,
427  "g");
430  iBook.bookProfile("nLostHitsVsCosTheta", "Number of Lost Hits Vs Cos(Theta)", 50, -1.0, 1.0, 0.0, 0.0, "g");
431  if (!nLostHitsVsPhiH_)
432  nLostHitsVsPhiH_ = iBook.bookProfile("nLostHitsVsPhi", "Number of Lost Hits Vs Phi", 100, -3.5, 3.5, 0.0, 0.0, "g");
433 
434  // On and off-track cluster properties
437  iBook.book1D("hOnTrkClusChargeThin", "On-track Cluster Charge (Thin Sensor)", 100, 0, 1000);
439  hOnTrkClusWidthThinH_ = iBook.book1D("hOnTrkClusWidthThin", "On-track Cluster Width (Thin Sensor)", 20, -0.5, 19.5);
442  iBook.book1D("hOnTrkClusChargeThick", "On-track Cluster Charge (Thick Sensor)", 100, 0, 1000);
445  iBook.book1D("hOnTrkClusWidthThick", "On-track Cluster Width (Thick Sensor)", 20, -0.5, 19.5);
446 
449  iBook.book1D("hOffTrkClusChargeThin", "Off-track Cluster Charge (Thin Sensor)", 100, 0, 1000);
452  iBook.book1D("hOffTrkClusWidthThin", "Off-track Cluster Width (Thin Sensor)", 20, -0.5, 19.5);
455  iBook.book1D("hOffTrkClusChargeThick", "Off-track Cluster Charge (Thick Sensor)", 100, 0, 1000);
458  iBook.book1D("hOffTrkClusWidthThick", "Off-track Cluster Width (Thick Sensor)", 20, -0.5, 19.5);
459 }
461  // Get event setup (to get global transformation)
463  iSetup.get<TrackerDigiGeometryRecord>().get(geomHandle);
464  const TrackerGeometry& tkGeom = (*geomHandle);
465 
467 
468  // Primary vertex collection
470  iEvent.getByToken(vertexToken_, vertexColl);
471 
472  // Beam spot
474  iEvent.getByToken(bsToken_, beamSpot);
475 
476  // Track collection
478  iEvent.getByToken(trackToken_, tracks);
479 
480  // Access PU information
481  double wfac = 1.0; // for data
482  if (!iEvent.isRealData()) {
484  iEvent.getByToken(puSummaryToken_, PupInfo);
485 
486  if (verbose_)
487  edm::LogInfo("StandaloneTrackMonitor") << "nPUColl = " << PupInfo->size();
488  for (auto const& v : *PupInfo) {
489  int bx = v.getBunchCrossing();
490  if (bunchCrossingH_)
492  if (bx == 0) {
493  if (nPUH_)
494  nPUH_->Fill(v.getPU_NumInteractions());
495  int ntrueInt = v.getTrueNumInteractions();
496  if (trueNIntH_)
497  trueNIntH_->Fill(ntrueInt);
498  if (doPUCorrection_)
499  if (ntrueInt > -1 && ntrueInt < int(vpu_.size()))
500  wfac = vpu_.at(ntrueInt);
501  }
502  }
503  }
504  if (verbose_)
505  edm::LogInfo("StandaloneTrackMonitor") << "PU reweight factor = " << wfac;
506 
507  if (!vertexColl.isValid())
508  edm::LogError("DqmTrackStudy") << "Error! Failed to get reco::Vertex Collection, " << vertexTag_;
509  if (haveAllHistograms_) {
510  int nvtx = (vertexColl.isValid() ? vertexColl->size() : 0);
511  nVertexH_->Fill(nvtx);
512  }
513 
514  int ntracks = 0;
515  if (tracks.isValid()) {
516  edm::LogInfo("StandaloneTrackMonitor") << "Total # of Tracks: " << tracks->size();
517  if (verbose_)
518  edm::LogInfo("StandaloneTrackMonitor") << "Total # of Tracks: " << tracks->size();
520  for (auto const& track : *tracks) {
521  if (!track.quality(quality))
522  continue;
523 
524  ++ntracks;
525 
526  double eta = track.eta();
527  double theta = track.theta();
528  double phi = track.phi();
529  double pt = track.pt();
530 
531  const reco::HitPattern& hitp = track.hitPattern();
532  double nValidTrackerHits = hitp.numberOfValidTrackerHits();
533  nHitsVsEtaH_->Fill(eta, nValidTrackerHits);
534  nHitsVsCosThetaH_->Fill(std::cos(theta), nValidTrackerHits);
535  nHitsVsPhiH_->Fill(phi, nValidTrackerHits);
536  nHitsVspTH_->Fill(pt, nValidTrackerHits);
537  nHitsVsnVtxH_->Fill(vertexColl->size(), nValidTrackerHits);
538 
539  int nLostHits = track.numberOfLostHits();
540  nLostHitsVspTH_->Fill(pt, nLostHits);
541  nLostHitsVsEtaH_->Fill(eta, nLostHits);
543  nLostHitsVsPhiH_->Fill(phi, nLostHits);
544 
545  double nValidPixelHits = hitp.numberOfValidPixelHits();
546  double nValidStripHits = hitp.numberOfValidStripHits();
547  double pixelLayersWithMeasurement = hitp.pixelLayersWithMeasurement();
548  double stripLayersWithMeasurement = hitp.stripLayersWithMeasurement();
549 
550  if (haveAllHistograms_) {
551  double etaError = track.etaError();
552  double thetaError = track.thetaError();
553  double phiError = track.phiError();
554  double p = track.p();
555  double ptError = track.ptError();
556  double qoverp = track.qoverp();
557  double qoverpError = track.qoverpError();
558  double charge = track.charge();
559 
560  double trackerLayersWithMeasurement = hitp.trackerLayersWithMeasurement();
561 
562  double dxy = track.dxy(beamSpot->position());
563  double dxyError = track.dxyError();
564  double dz = track.dz(beamSpot->position());
565  double dzError = track.dzError();
566 
567  double trkd0 = track.d0();
568  double chi2 = track.chi2();
569  double ndof = track.ndof();
570  double vx = track.vx();
571  double vy = track.vy();
572  double vz = track.vz();
573 
574  // Fill the histograms
575  trackEtaH_->Fill(eta, wfac);
576  trackEtaerrH_->Fill(etaError, wfac);
578  trackThetaerrH_->Fill(thetaError, wfac);
579  trackPhiH_->Fill(phi, wfac);
580  trackPhierrH_->Fill(phiError, wfac);
581  trackPH_->Fill(p, wfac);
582  trackPtH_->Fill(pt, wfac);
583  if (pt <= 2)
584  trackPtUpto2GeVH_->Fill(pt, wfac);
585  if (pt >= 10)
586  trackPtOver10GeVH_->Fill(pt, wfac);
587  trackPterrH_->Fill(ptError, wfac);
588  trackqOverpH_->Fill(qoverp, wfac);
589  trackqOverperrH_->Fill(qoverpError, wfac);
590  trackChargeH_->Fill(charge, wfac);
591  trackChi2H_->Fill(chi2, wfac);
592  trackd0H_->Fill(trkd0, wfac);
593  tracknDOFH_->Fill(ndof, wfac);
594  trackChi2bynDOFH_->Fill(chi2 / ndof, wfac);
595 
596  nlostHitsH_->Fill(nLostHits, wfac);
597  nvalidTrackerHitsH_->Fill(nValidTrackerHits, wfac);
598  nvalidPixelHitsH_->Fill(nValidPixelHits, wfac);
599  nvalidStripHitsH_->Fill(nValidStripHits, wfac);
600 
601  trkLayerwithMeasurementH_->Fill(trackerLayersWithMeasurement, wfac);
602  pixelLayerwithMeasurementH_->Fill(pixelLayersWithMeasurement, wfac);
603  stripLayerwithMeasurementH_->Fill(stripLayersWithMeasurement, wfac);
604 
605  beamSpotXYposH_->Fill(dxy, wfac);
606  beamSpotXYposerrH_->Fill(dxyError, wfac);
607  beamSpotZposH_->Fill(dz, wfac);
608  beamSpotZposerrH_->Fill(dzError, wfac);
609 
610  vertexXposH_->Fill(vx, wfac);
611  vertexYposH_->Fill(vy, wfac);
612  vertexZposH_->Fill(vz, wfac);
613  }
614  int nPixBarrel = 0, nPixEndcap = 0, nStripTIB = 0, nStripTOB = 0, nStripTEC = 0, nStripTID = 0;
615  for (auto it = track.recHitsBegin(); it != track.recHitsEnd(); ++it) {
616  const TrackingRecHit& hit = (**it);
617  if (hit.isValid()) {
618  if (hit.geographicalId().det() == DetId::Tracker) {
619  int subdetId = hit.geographicalId().subdetId();
620  if (subdetId == PixelSubdetector::PixelBarrel)
621  ++nPixBarrel;
622  else if (subdetId == PixelSubdetector::PixelEndcap)
623  ++nPixEndcap;
624  else if (subdetId == StripSubdetector::TIB)
625  ++nStripTIB;
626  else if (subdetId == StripSubdetector::TOB)
627  ++nStripTOB;
628  else if (subdetId == StripSubdetector::TEC)
629  ++nStripTEC;
630  else if (subdetId == StripSubdetector::TID)
631  ++nStripTID;
632 
633  // Find on-track clusters
634  processHit(hit, iSetup, tkGeom, wfac);
635  }
636  }
637  }
638  if (verbose_)
639  edm::LogInfo("StandaloneTrackMonitor")
640  << " >>> HITs: nPixBarrel: " << nPixBarrel << " nPixEndcap: " << nPixEndcap << " nStripTIB: " << nStripTIB
641  << " nStripTOB: " << nStripTOB << " nStripTEC: " << nStripTEC << " nStripTID: " << nStripTID;
642  if (haveAllHistograms_) {
643  nPixBarrelH_->Fill(nPixBarrel, wfac);
644  nPixEndcapH_->Fill(nPixEndcap, wfac);
645  nStripTIBH_->Fill(nStripTIB, wfac);
646  nStripTOBH_->Fill(nStripTOB, wfac);
647  nStripTECH_->Fill(nStripTEC, wfac);
648  nStripTIDH_->Fill(nStripTID, wfac);
649  }
650  }
651  } else {
652  edm::LogError("DqmTrackStudy") << "Error! Failed to get reco::Track collection, " << trackTag_;
653  }
654  if (haveAllHistograms_)
656 
657  // off track cluster properties
658  processClusters(iEvent, iSetup, tkGeom, wfac);
659 }
661  edm::EventSetup const& iSetup,
662  const TrackerGeometry& tkGeom,
663  double wfac) {
664  // SiStripClusters
666  iEvent.getByToken(clusterToken_, clusterHandle);
667 
668  if (clusterHandle.isValid()) {
669  // Loop on Dets
670  for (edmNew::DetSetVector<SiStripCluster>::const_iterator dsvit = clusterHandle->begin();
671  dsvit != clusterHandle->end();
672  ++dsvit) {
673  uint32_t detId = dsvit->id();
674  std::map<uint32_t, std::set<const SiStripCluster*> >::iterator jt = clusterMap_.find(detId);
675  bool detid_found = (jt != clusterMap_.end()) ? true : false;
676 
677  // Loop on Clusters
678  for (edmNew::DetSet<SiStripCluster>::const_iterator clusit = dsvit->begin(); clusit != dsvit->end(); ++clusit) {
679  if (detid_found) {
680  std::set<const SiStripCluster*>& s = jt->second;
681  if (s.find(&*clusit) != s.end())
682  continue;
683  }
684 
685  siStripClusterInfo_.setCluster(*clusit, detId);
687  float width = siStripClusterInfo_.width();
688 
689  const GeomDetUnit* detUnit = tkGeom.idToDetUnit(detId);
690  float thickness = detUnit->surface().bounds().thickness(); // unit cm
691  if (thickness > 0.035) {
694  } else {
697  }
698  }
699  }
700  } else {
701  edm::LogError("StandaloneTrackMonitor") << "ClusterCollection " << clusterTag_ << " not valid!!" << std::endl;
702  }
703 }
705  edm::EventSetup const& iSetup,
706  const TrackerGeometry& tkGeom,
707  double wfac) {
708  uint32_t detid = recHit.geographicalId();
709  const GeomDetUnit* detUnit = tkGeom.idToDetUnit(detid);
710  float thickness = detUnit->surface().bounds().thickness(); // unit cm
711 
712  auto const& thit = static_cast<BaseTrackerRecHit const&>(recHit);
713  if (!thit.isValid())
714  return;
715 
716  auto const& clus = thit.firstClusterRef();
717  if (!clus.isValid())
718  return;
719  if (!clus.isStrip())
720  return;
721 
722  if (thit.isMatched()) {
723  const SiStripMatchedRecHit2D& matchedHit = dynamic_cast<const SiStripMatchedRecHit2D&>(recHit);
724 
725  auto& clusterM = matchedHit.monoCluster();
726  siStripClusterInfo_.setCluster(clusterM, detid);
727  if (thickness > 0.035) {
730  } else {
733  }
734  addClusterToMap(detid, &clusterM);
735 
736  auto& clusterS = matchedHit.stereoCluster();
737  siStripClusterInfo_.setCluster(clusterS, detid);
738  if (thickness > 0.035) {
741  } else {
744  }
745  addClusterToMap(detid, &clusterS);
746  } else {
747  auto& cluster = clus.stripCluster();
748  siStripClusterInfo_.setCluster(cluster, detid);
749  if (thickness > 0.035) {
752  } else {
755  }
756  addClusterToMap(detid, &cluster);
757  }
758 }
759 void StandaloneTrackMonitor::addClusterToMap(uint32_t detid, const SiStripCluster* cluster) {
760  std::map<uint32_t, std::set<const SiStripCluster*> >::iterator it = clusterMap_.find(detid);
761  if (it == clusterMap_.end()) {
762  std::set<const SiStripCluster*> s;
763  s.insert(cluster);
764  clusterMap_.insert(std::pair<uint32_t, std::set<const SiStripCluster*> >(detid, s));
765  } else {
766  std::set<const SiStripCluster*>& s = it->second;
767  s.insert(cluster);
768  }
769 }
770 // Define this as a plug-in
SiStripClusterInfo
Definition: SiStripClusterInfo.h:21
StandaloneTrackMonitor::siStripClusterInfo_
SiStripClusterInfo siStripClusterInfo_
Definition: StandaloneTrackMonitor.cc:78
dqm::impl::MonitorElement
Definition: MonitorElement.h:98
StandaloneTrackMonitor::nHitsVsEtaH_
MonitorElement * nHitsVsEtaH_
Definition: StandaloneTrackMonitor.cc:138
ApeEstimator_cff.width
width
Definition: ApeEstimator_cff.py:24
Handle.h
PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
PileupSummaryInfo.h
electrons_cff.bool
bool
Definition: electrons_cff.py:393
mps_fire.i
i
Definition: mps_fire.py:428
StandaloneTrackMonitor::beamSpotZposH_
MonitorElement * beamSpotZposH_
Definition: StandaloneTrackMonitor.cc:114
pwdgSkimBPark_cfi.beamSpot
beamSpot
Definition: pwdgSkimBPark_cfi.py:5
StandaloneTrackMonitor::nPixEndcapH_
MonitorElement * nPixEndcapH_
Definition: StandaloneTrackMonitor.cc:123
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11779
StandaloneTrackMonitor::nHitsVsCosThetaH_
MonitorElement * nHitsVsCosThetaH_
Definition: StandaloneTrackMonitor.cc:139
SiStripClusterInfo.h
funct::false
false
Definition: Factorize.h:29
PixelSubdetector::PixelEndcap
Definition: PixelSubdetector.h:11
TrackerGeometry.h
GeomDet
Definition: GeomDet.h:27
PixelSubdetector::PixelBarrel
Definition: PixelSubdetector.h:11
StandaloneTrackMonitor::nVertexH_
MonitorElement * nVertexH_
Definition: StandaloneTrackMonitor.cc:120
StandaloneTrackMonitor::nTracksH_
MonitorElement * nTracksH_
Definition: StandaloneTrackMonitor.cc:128
ESHandle.h
align::BeamSpot
Definition: StructureType.h:89
StandaloneTrackMonitor::parameters_
edm::ParameterSet parameters_
Definition: StandaloneTrackMonitor.cc:62
StandaloneTrackMonitor::nvalidPixelHitsH_
MonitorElement * nvalidPixelHitsH_
Definition: StandaloneTrackMonitor.cc:106
SiStripMatchedRecHit2D::stereoCluster
SiStripCluster const & stereoCluster() const
Definition: SiStripMatchedRecHit2D.h:40
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
StandaloneTrackMonitor::trackChargeH_
MonitorElement * trackChargeH_
Definition: StandaloneTrackMonitor.cc:98
edm::Run
Definition: Run.h:45
StandaloneTrackMonitor::trackPtUpto2GeVH_
MonitorElement * trackPtUpto2GeVH_
Definition: StandaloneTrackMonitor.cc:93
StandaloneTrackMonitor::tracknDOFH_
MonitorElement * tracknDOFH_
Definition: StandaloneTrackMonitor.cc:100
edm::EDGetTokenT< reco::TrackCollection >
edm
HLT enums.
Definition: AlignableModifier.h:19
StandaloneTrackMonitor::vertexXposH_
MonitorElement * vertexXposH_
Definition: StandaloneTrackMonitor.cc:117
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
StandaloneTrackMonitor::clusterTag_
const edm::InputTag clusterTag_
Definition: StandaloneTrackMonitor.cc:70
reco::VertexCollection
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
StandaloneTrackMonitor::hOffTrkClusChargeThinH_
MonitorElement * hOffTrkClusChargeThinH_
Definition: StandaloneTrackMonitor.cc:151
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89353
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
StandaloneTrackMonitor::trackPterrH_
MonitorElement * trackPterrH_
Definition: StandaloneTrackMonitor.cc:95
edmNew::DetSetVector::const_iterator
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
Definition: DetSetVectorNew.h:197
StandaloneTrackMonitor::folderName_
std::string folderName_
Definition: StandaloneTrackMonitor.cc:65
StandaloneTrackMonitor::trueNIntH_
MonitorElement * trueNIntH_
Definition: StandaloneTrackMonitor.cc:133
reco::TrackBase::TrackQuality
TrackQuality
track quality
Definition: TrackBase.h:150
GluedGeomDet.h
StandaloneTrackMonitor::trackPhiH_
MonitorElement * trackPhiH_
Definition: StandaloneTrackMonitor.cc:89
DQMStore.h
StandaloneTrackMonitor::moduleName_
std::string moduleName_
Definition: StandaloneTrackMonitor.cc:64
StandaloneTrackMonitor::trackThetaerrH_
MonitorElement * trackThetaerrH_
Definition: StandaloneTrackMonitor.cc:88
StandaloneTrackMonitor::stripLayerwithMeasurementH_
MonitorElement * stripLayerwithMeasurementH_
Definition: StandaloneTrackMonitor.cc:110
StandaloneTrackMonitor::vertexZposH_
MonitorElement * vertexZposH_
Definition: StandaloneTrackMonitor.cc:119
StandaloneTrackMonitor::trackChi2bynDOFH_
MonitorElement * trackChi2bynDOFH_
Definition: StandaloneTrackMonitor.cc:102
EDAnalyzer.h
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
vertices_cff.ntracks
ntracks
Definition: vertices_cff.py:34
findQualityFiles.v
v
Definition: findQualityFiles.py:179
hltPixelTracks_cff.chi2
chi2
Definition: hltPixelTracks_cff.py:25
StandaloneTrackMonitor::trackCosThetaH_
MonitorElement * trackCosThetaH_
Definition: StandaloneTrackMonitor.cc:87
StandaloneTrackMonitor::nPixBarrelH_
MonitorElement * nPixBarrelH_
Definition: StandaloneTrackMonitor.cc:122
StandaloneTrackMonitor::nStripTIBH_
MonitorElement * nStripTIBH_
Definition: StandaloneTrackMonitor.cc:124
edm::Handle< reco::VertexCollection >
StandaloneTrackMonitor::puScaleFactorFile_
const std::string puScaleFactorFile_
Definition: StandaloneTrackMonitor.cc:82
StandaloneTrackMonitor::trackPhierrH_
MonitorElement * trackPhierrH_
Definition: StandaloneTrackMonitor.cc:90
StandaloneTrackMonitor::addClusterToMap
void addClusterToMap(uint32_t detid, const SiStripCluster *cluster)
Definition: StandaloneTrackMonitor.cc:759
StandaloneTrackMonitor::trackd0H_
MonitorElement * trackd0H_
Definition: StandaloneTrackMonitor.cc:101
rpcPointValidation_cfi.recHit
recHit
Definition: rpcPointValidation_cfi.py:7
edmNew
Definition: DetSet2RangeMap.h:11
reco::HitPattern::pixelLayersWithMeasurement
int pixelLayersWithMeasurement() const
Definition: HitPattern.cc:492
StandaloneTrackMonitor::nStripTOBH_
MonitorElement * nStripTOBH_
Definition: StandaloneTrackMonitor.cc:125
SiStripClusterInfo::width
uint16_t width() const
Definition: SiStripClusterInfo.h:31
StandaloneTrackMonitor::trackEtaH_
MonitorElement * trackEtaH_
Definition: StandaloneTrackMonitor.cc:85
TrackerGeometry::idToDetUnit
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
Definition: TrackerGeometry.cc:183
ndof
Definition: HIMultiTrackSelector.h:49
StandaloneTrackMonitor::hOffTrkClusWidthThinH_
MonitorElement * hOffTrkClusWidthThinH_
Definition: StandaloneTrackMonitor.cc:152
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
MakerMacros.h
alignCSCRings.s
s
Definition: alignCSCRings.py:92
StandaloneTrackMonitor::puSummaryToken_
const edm::EDGetTokenT< std::vector< PileupSummaryInfo > > puSummaryToken_
Definition: StandaloneTrackMonitor.cc:74
reco::HitPattern
Definition: HitPattern.h:147
reco::HitPattern::stripLayersWithMeasurement
int stripLayersWithMeasurement() const
Definition: HitPattern.h:974
StandaloneTrackMonitor::analyze
void analyze(edm::Event const &iEvent, edm::EventSetup const &iSetup) override
Definition: StandaloneTrackMonitor.cc:460
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Track.h
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
TrackFwd.h
StandaloneTrackMonitor::isMC_
const bool isMC_
Definition: StandaloneTrackMonitor.cc:80
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
BeamSpot.h
StandaloneTrackMonitor::processClusters
void processClusters(edm::Event const &iEvent, edm::EventSetup const &iSetup, const TrackerGeometry &tkGeom, double wfac=1)
Definition: StandaloneTrackMonitor.cc:660
reco::HitPattern::trackerLayersWithMeasurement
int trackerLayersWithMeasurement() const
Definition: HitPattern.cc:513
StandaloneTrackMonitor::hOffTrkClusWidthThickH_
MonitorElement * hOffTrkClusWidthThickH_
Definition: StandaloneTrackMonitor.cc:154
StandaloneTrackMonitor::nStripTIDH_
MonitorElement * nStripTIDH_
Definition: StandaloneTrackMonitor.cc:127
StandaloneTrackMonitor::bsToken_
const edm::EDGetTokenT< reco::BeamSpot > bsToken_
Definition: StandaloneTrackMonitor.cc:72
Calorimetry_cff.thickness
thickness
Definition: Calorimetry_cff.py:114
Service.h
PVValHelper::eta
Definition: PVValidationHelpers.h:69
StandaloneTrackMonitor::vpu_
std::vector< float > vpu_
Definition: StandaloneTrackMonitor.cc:158
StandaloneTrackMonitor::nHitsVsPhiH_
MonitorElement * nHitsVsPhiH_
Definition: StandaloneTrackMonitor.cc:140
StandaloneTrackMonitor::nvalidTrackerHitsH_
MonitorElement * nvalidTrackerHitsH_
Definition: StandaloneTrackMonitor.cc:105
TrackerDigiGeometryRecord
Definition: TrackerDigiGeometryRecord.h:15
Surface::bounds
const Bounds & bounds() const
Definition: Surface.h:87
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
edm::ESHandle< TrackerGeometry >
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
StandaloneTrackMonitor::trackChi2H_
MonitorElement * trackChi2H_
Definition: StandaloneTrackMonitor.cc:99
theta
Geom::Theta< T > theta() const
Definition: Basic3DVectorLD.h:150
StripSubdetector::TIB
static constexpr auto TIB
Definition: StripSubdetector.h:16
StandaloneTrackMonitor::nLostHitsVsEtaH_
MonitorElement * nLostHitsVsEtaH_
Definition: StandaloneTrackMonitor.cc:142
StandaloneTrackMonitor::hOnTrkClusChargeThinH_
MonitorElement * hOnTrkClusChargeThinH_
Definition: StandaloneTrackMonitor.cc:146
DQMEDAnalyzer.h
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
Vertex.h
StandaloneTrackMonitor::hOffTrkClusChargeThickH_
MonitorElement * hOffTrkClusChargeThickH_
Definition: StandaloneTrackMonitor.cc:153
StandaloneTrackMonitor::hOnTrkClusWidthThinH_
MonitorElement * hOnTrkClusWidthThinH_
Definition: StandaloneTrackMonitor.cc:147
DQMEDAnalyzer
Definition: DQMEDAnalyzer.py:1
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
SiStripClusterInfo::setCluster
void setCluster(const SiStripCluster &cluster, int detId)
Definition: SiStripClusterInfo.cc:16
StandaloneTrackMonitor::nStripTECH_
MonitorElement * nStripTECH_
Definition: StandaloneTrackMonitor.cc:126
TrackerDigiGeometryRecord.h
StandaloneTrackMonitor::trackPtH_
MonitorElement * trackPtH_
Definition: StandaloneTrackMonitor.cc:92
Bounds::thickness
virtual float thickness() const =0
StandaloneTrackMonitor::beamSpotXYposH_
MonitorElement * beamSpotXYposH_
Definition: StandaloneTrackMonitor.cc:112
StandaloneTrackMonitor::trackPH_
MonitorElement * trackPH_
Definition: StandaloneTrackMonitor.cc:91
StandaloneTrackMonitor::trackToken_
const edm::EDGetTokenT< reco::TrackCollection > trackToken_
Definition: StandaloneTrackMonitor.cc:71
edm::ParameterSet
Definition: ParameterSet.h:47
StandaloneTrackMonitor::verbose_
const bool verbose_
Definition: StandaloneTrackMonitor.cc:83
DetId::Tracker
Definition: DetId.h:25
Event.h
StandaloneTrackMonitor::nLostHitsVsCosThetaH_
MonitorElement * nLostHitsVsCosThetaH_
Definition: StandaloneTrackMonitor.cc:143
StandaloneTrackMonitor::trackqOverperrH_
MonitorElement * trackqOverperrH_
Definition: StandaloneTrackMonitor.cc:97
StandaloneTrackMonitor::vertexYposH_
MonitorElement * vertexYposH_
Definition: StandaloneTrackMonitor.cc:118
StandaloneTrackMonitor::StandaloneTrackMonitor
StandaloneTrackMonitor(const edm::ParameterSet &)
Definition: StandaloneTrackMonitor.cc:165
StandaloneTrackMonitor::puSummaryTag_
const edm::InputTag puSummaryTag_
Definition: StandaloneTrackMonitor.cc:69
iEvent
int iEvent
Definition: GenABIO.cc:224
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
StandaloneTrackMonitor::nvalidStripHitsH_
MonitorElement * nvalidStripHitsH_
Definition: StandaloneTrackMonitor.cc:107
edm::EventSetup
Definition: EventSetup.h:57
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
HLTConfigProvider.h
SiStripClusterInfo::charge
uint16_t charge() const
Definition: SiStripClusterInfo.h:43
StandaloneTrackMonitor
Definition: StandaloneTrackMonitor.cc:44
get
#define get
StandaloneTrackMonitor::bunchCrossingH_
MonitorElement * bunchCrossingH_
Definition: StandaloneTrackMonitor.cc:131
StandaloneTrackMonitor::beamSpotXYposerrH_
MonitorElement * beamSpotXYposerrH_
Definition: StandaloneTrackMonitor.cc:113
OmniClusterRef.h
StandaloneTrackMonitor::beamSpotZposerrH_
MonitorElement * beamSpotZposerrH_
Definition: StandaloneTrackMonitor.cc:115
InputTag.h
StandaloneTrackMonitor::clusterMap_
std::map< uint32_t, std::set< const SiStripCluster * > > clusterMap_
Definition: StandaloneTrackMonitor.cc:159
muonME0PseudoDigis_cfi.etaError
etaError
Definition: muonME0PseudoDigis_cfi.py:10
StandaloneTrackMonitor::bsTag_
const edm::InputTag bsTag_
Definition: StandaloneTrackMonitor.cc:67
TrackingRecHit
Definition: TrackingRecHit.h:21
StandaloneTrackMonitor::doPUCorrection_
const bool doPUCorrection_
Definition: StandaloneTrackMonitor.cc:79
BaseTrackerRecHit.h
reco::TrackBase::qualityByName
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:126
VertexFwd.h
DDAxes::phi
SiStripClusterInfo::initEvent
void initEvent(const edm::EventSetup &iSetup)
Definition: SiStripClusterInfo.cc:10
StandaloneTrackMonitor::trackPtOver10GeVH_
MonitorElement * trackPtOver10GeVH_
Definition: StandaloneTrackMonitor.cc:94
std
Definition: JetResolutionObject.h:76
StripSubdetector::TEC
static constexpr auto TEC
Definition: StripSubdetector.h:19
StandaloneTrackMonitor::nLostHitsVsPhiH_
MonitorElement * nLostHitsVsPhiH_
Definition: StandaloneTrackMonitor.cc:144
PVValHelper::dxy
Definition: PVValidationHelpers.h:47
qcdUeDQM_cfi.quality
quality
Definition: qcdUeDQM_cfi.py:31
reco::HitPattern::numberOfValidStripHits
int numberOfValidStripHits() const
Definition: HitPattern.h:812
SiStripMatchedRecHit2D
Definition: SiStripMatchedRecHit2D.h:8
reco::HitPattern::numberOfValidTrackerHits
int numberOfValidTrackerHits() const
Definition: HitPattern.h:788
DetId.h
PVValHelper::dz
Definition: PVValidationHelpers.h:50
StandaloneTrackMonitor::hOnTrkClusChargeThickH_
MonitorElement * hOnTrkClusChargeThickH_
Definition: StandaloneTrackMonitor.cc:148
Frameworkfwd.h
StandaloneTrackMonitor::trackqOverpH_
MonitorElement * trackqOverpH_
Definition: StandaloneTrackMonitor.cc:96
StandaloneTrackMonitor::hOnTrkClusWidthThickH_
MonitorElement * hOnTrkClusWidthThickH_
Definition: StandaloneTrackMonitor.cc:149
SiStripMatchedRecHit2D::monoCluster
SiStripCluster const & monoCluster() const
Definition: SiStripMatchedRecHit2D.h:41
StandaloneTrackMonitor::m_cacheID_
unsigned long long m_cacheID_
Definition: StandaloneTrackMonitor.cc:156
StandaloneTrackMonitor::pixelLayerwithMeasurementH_
MonitorElement * pixelLayerwithMeasurementH_
Definition: StandaloneTrackMonitor.cc:109
StandaloneTrackMonitor::clusterToken_
const edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clusterToken_
Definition: StandaloneTrackMonitor.cc:75
StandaloneTrackMonitor::nPUH_
MonitorElement * nPUH_
Definition: StandaloneTrackMonitor.cc:132
StandaloneTrackMonitor::trackTag_
const edm::InputTag trackTag_
Definition: StandaloneTrackMonitor.cc:66
StandaloneTrackMonitor::trackEtaerrH_
MonitorElement * trackEtaerrH_
Definition: StandaloneTrackMonitor.cc:86
StripSubdetector::TOB
static constexpr auto TOB
Definition: StripSubdetector.h:18
StandaloneTrackMonitor::trackQuality_
const std::string trackQuality_
Definition: StandaloneTrackMonitor.cc:77
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
StandaloneTrackMonitor::nLostHitsVspTH_
MonitorElement * nLostHitsVspTH_
Definition: StandaloneTrackMonitor.cc:141
dqm::implementation::IBooker
Definition: DQMStore.h:43
reco::HitPattern::numberOfValidPixelHits
int numberOfValidPixelHits() const
Definition: HitPattern.h:800
StandaloneTrackMonitor::vertexToken_
const edm::EDGetTokenT< reco::VertexCollection > vertexToken_
Definition: StandaloneTrackMonitor.cc:73
StandaloneTrackMonitor::bookHistograms
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: StandaloneTrackMonitor.cc:266
ParameterSet.h
SiStripMatchedRecHit2D.h
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
edm::Event
Definition: Event.h:73
DeadROC_duringRun.f1
f1
Definition: DeadROC_duringRun.py:219
StandaloneTrackMonitor::nlostHitsH_
MonitorElement * nlostHitsH_
Definition: StandaloneTrackMonitor.cc:104
edm::Log
Definition: MessageLogger.h:70
SiStripCluster
Definition: SiStripCluster.h:9
StandaloneTrackMonitor::nHitsVsnVtxH_
MonitorElement * nHitsVsnVtxH_
Definition: StandaloneTrackMonitor.cc:137
DetSetVectorNew.h
edm::InputTag
Definition: InputTag.h:15
reco::TrackCollection
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
StandaloneTrackMonitor::trkLayerwithMeasurementH_
MonitorElement * trkLayerwithMeasurementH_
Definition: StandaloneTrackMonitor.cc:108
StripSubdetector::TID
static constexpr auto TID
Definition: StripSubdetector.h:17
PileupSummaryInfo
Definition: PileupSummaryInfo.h:22
hit
Definition: SiStripHitEffFromCalibTree.cc:88
StandaloneTrackMonitor::processHit
void processHit(const TrackingRecHit &recHit, edm::EventSetup const &iSetup, const TrackerGeometry &tkGeom, double wfac=1)
Definition: StandaloneTrackMonitor.cc:704
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
StandaloneTrackMonitor::vertexTag_
const edm::InputTag vertexTag_
Definition: StandaloneTrackMonitor.cc:68
muonME0PseudoDigis_cfi.phiError
phiError
Definition: muonME0PseudoDigis_cfi.py:9
TrackerGeometry
Definition: TrackerGeometry.h:14
StandaloneTrackMonitor::nHitsVspTH_
MonitorElement * nHitsVspTH_
Definition: StandaloneTrackMonitor.cc:136
edmNew::DetSet::const_iterator
const data_type * const_iterator
Definition: DetSetNew.h:31
StandaloneTrackMonitor::haveAllHistograms_
const bool haveAllHistograms_
Definition: StandaloneTrackMonitor.cc:81