CMS 3D CMS Logo

BPHMonitor.cc
Go to the documentation of this file.
1 #include <string>
2 #include <vector>
3 
46 
47 class BPHMonitor : public DQMEDAnalyzer, public TriggerDQMBase {
48 public:
51 
53  ~BPHMonitor() throw() override;
54  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
55 
56 protected:
58  void analyze(edm::Event const& iEvent, edm::EventSetup const& iSetup) override;
59 
60  template <typename T>
61  bool matchToTrigger(const std::string& theTriggerName, T t);
62 
63  double Prescale(const std::string num,
64  const std::string den,
66  edm::EventSetup const& iSetup,
68 
69 private:
71 
74 
80 
81  edm::EDGetTokenT<reco::MuonCollection> muoToken_;
82  edm::EDGetTokenT<reco::BeamSpot> bsToken_;
83  edm::EDGetTokenT<reco::TrackCollection> trToken_;
86 
88 
102 
103  ObjME muPhi_;
104  ObjME muEta_;
105  ObjME muPt_;
106  ObjME mud0_;
107  ObjME muz0_;
108 
109  ObjME mu1Phi_;
110  ObjME mu1Eta_;
111  ObjME mu1Pt_;
112  ObjME mu1d0_;
113  ObjME mu1z0_;
114  ObjME mu2Phi_;
115  ObjME mu2Eta_;
116  ObjME mu2Pt_;
117  ObjME mu2d0_;
118  ObjME mu2z0_;
119  ObjME mu3Phi_;
120  ObjME mu3Eta_;
121  ObjME mu3Pt_;
122  ObjME mu3d0_;
123  ObjME mu3z0_;
124 
125  ObjME phPhi_;
126  ObjME phEta_;
127  ObjME phPt_;
128  ObjME DiMuPhi_;
129  ObjME DiMuEta_;
130  ObjME DiMuPt_;
131  ObjME DiMuPVcos_;
132  ObjME DiMuProb_;
133  ObjME DiMuDS_;
134  ObjME DiMuDCA_;
135  ObjME DiMuMass_;
136  ObjME BMass_;
137  ObjME DiMudR_;
138 
141 
143 
148 
149  int nmuons_;
150  bool tnp_;
151  int L3_;
152  int ptCut_;
154  int trOrMu_;
155  int Jpsi_;
156  int Upsilon_;
157  int enum_;
158  int seagull_;
159  double maxmass_;
160  double minmass_;
161  double maxmassJpsi;
162  double minmassJpsi;
165  double maxmassTkTk;
166  double minmassTkTk;
169  double kaon_mass;
170  double mu_mass;
171  double min_dR;
172  double max_dR;
173 
174  double minprob;
175  double mincos;
176  double minDS;
185 
187 
190  std::string getTriggerName(std::string partialName);
191 };
192 
194  : folderName_(iConfig.getParameter<std::string>("FolderName")),
195  requireValidHLTPaths_(iConfig.getParameter<bool>("requireValidHLTPaths")),
197  muoInputTag_(iConfig.getParameter<edm::InputTag>("muons")),
198  bsInputTag_(iConfig.getParameter<edm::InputTag>("beamSpot")),
199  trInputTag_(iConfig.getParameter<edm::InputTag>("tracks")),
200  phInputTag_(iConfig.getParameter<edm::InputTag>("photons")),
201  vtxInputTag_(iConfig.getParameter<edm::InputTag>("offlinePVs")),
202  muoToken_(mayConsume<reco::MuonCollection>(muoInputTag_)),
203  bsToken_(mayConsume<reco::BeamSpot>(bsInputTag_)),
204  trToken_(mayConsume<reco::TrackCollection>(trInputTag_)),
205  phToken_(mayConsume<reco::PhotonCollection>(phInputTag_)),
208  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double>>("ptBinning")),
210  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double>>("dMuPtBinning")),
212  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double>>("probBinning")),
214  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("phiPSet"))),
216  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("etaPSet"))),
217  d0_binning_(
218  getHistoPSet(iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("d0PSet"))),
219  z0_binning_(
220  getHistoPSet(iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("z0PSet"))),
221  dR_binning_(
222  getHistoPSet(iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("dRPSet"))),
224  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("massPSet"))),
226  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("BmassPSet"))),
228  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("dcaPSet"))),
229  ds_binning_(
230  getHistoPSet(iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("dsPSet"))),
232  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("cosPSet"))),
234  iConfig.getParameter<edm::ParameterSet>("numGenericTriggerEventPSet"), consumesCollector(), *this)),
236  iConfig.getParameter<edm::ParameterSet>("denGenericTriggerEventPSet"), consumesCollector(), *this)),
237  hltPrescale_(new HLTPrescaleProvider(iConfig, consumesCollector(), *this)),
238  muoSelection_(iConfig.getParameter<std::string>("muoSelection")),
239  muoSelection_ref(iConfig.getParameter<std::string>("muoSelection_ref")),
240  muoSelection_tag(iConfig.getParameter<std::string>("muoSelection_tag")),
241  muoSelection_probe(iConfig.getParameter<std::string>("muoSelection_probe")),
242  nmuons_(iConfig.getParameter<int>("nmuons")),
243  tnp_(iConfig.getParameter<bool>("tnp")),
244  L3_(iConfig.getParameter<int>("L3")),
245  ptCut_(iConfig.getParameter<int>("ptCut")),
246  displaced_(iConfig.getParameter<int>("displaced")),
247  trOrMu_(iConfig.getParameter<int>("trOrMu")),
248  Jpsi_(iConfig.getParameter<int>("Jpsi")),
249  Upsilon_(iConfig.getParameter<int>("Upsilon")) // if ==1 path with Upsilon constraint
250  ,
251  enum_(iConfig.getParameter<int>("enum")),
252  seagull_(iConfig.getParameter<int>("seagull")),
253  maxmass_(iConfig.getParameter<double>("maxmass")),
254  minmass_(iConfig.getParameter<double>("minmass")),
255  maxmassJpsi(iConfig.getParameter<double>("maxmassJpsi")),
256  minmassJpsi(iConfig.getParameter<double>("minmassJpsi")),
257  maxmassUpsilon(iConfig.getParameter<double>("maxmassUpsilon")),
258  minmassUpsilon(iConfig.getParameter<double>("minmassUpsilon")),
259  maxmassTkTk(iConfig.getParameter<double>("maxmassTkTk")),
260  minmassTkTk(iConfig.getParameter<double>("minmassTkTk")),
261  maxmassJpsiTk(iConfig.getParameter<double>("maxmassJpsiTk")),
262  minmassJpsiTk(iConfig.getParameter<double>("minmassJpsiTk")),
263  kaon_mass(iConfig.getParameter<double>("kaon_mass")),
264  mu_mass(iConfig.getParameter<double>("mu_mass")),
265  min_dR(iConfig.getParameter<double>("min_dR")),
266  max_dR(iConfig.getParameter<double>("max_dR")),
267  minprob(iConfig.getParameter<double>("minprob")),
268  mincos(iConfig.getParameter<double>("mincos")),
269  minDS(iConfig.getParameter<double>("minDS")),
270  hltInputTag_1(iConfig.getParameter<edm::InputTag>("hltTriggerSummaryAOD")),
271  hltInputTag_(mayConsume<trigger::TriggerEvent>(iConfig.getParameter<edm::InputTag>("hltTriggerSummaryAOD"))),
272  hltpaths_num(iConfig.getParameter<edm::ParameterSet>("numGenericTriggerEventPSet")
273  .getParameter<std::vector<std::string>>("hltPaths")),
274  hltpaths_den(iConfig.getParameter<edm::ParameterSet>("denGenericTriggerEventPSet")
275  .getParameter<std::vector<std::string>>("hltPaths")),
276  trSelection_(iConfig.getParameter<std::string>("muoSelection")),
277  trSelection_ref(iConfig.getParameter<std::string>("trSelection_ref")),
278  DMSelection_ref(iConfig.getParameter<std::string>("DMSelection_ref")) {
279  if (!tnp_) {
280  magneticFieldToken_ = esConsumes<MagneticField, IdealMagneticFieldRecord>();
281  }
282 }
283 
286  num_genTriggerEventFlag_.reset();
287  }
289  den_genTriggerEventFlag_.reset();
290  }
291 
292  delete hltPrescale_;
293 }
294 
295 void BPHMonitor::bookHistograms(DQMStore::IBooker& ibooker, edm::Run const& iRun, edm::EventSetup const& iSetup) {
296  // Initialize the GenericTriggerEventFlag
298  num_genTriggerEventFlag_->initRun(iRun, iSetup);
299  }
301  den_genTriggerEventFlag_->initRun(iRun, iSetup);
302  }
303 
304  // check if every HLT path specified in numerator and denominator has a valid match in the HLT Menu
306  den_genTriggerEventFlag_->on() && num_genTriggerEventFlag_->allHLTPathsAreValid() &&
307  den_genTriggerEventFlag_->allHLTPathsAreValid());
308 
309  // if valid HLT paths are required,
310  // create DQM outputs only if all paths are valid
312  return;
313  }
314 
315  std::string histname, histtitle, istnp, trMuPh;
316 
317  bool Ph_ = false;
318  if (enum_ == 7)
319  Ph_ = true;
320  if (tnp_)
321  istnp = "Tag_and_Probe/";
322  else
323  istnp = "";
324 
325  std::string currentFolder = folderName_ + istnp;
326  ibooker.setCurrentFolder(currentFolder);
327 
328  if (trOrMu_)
329  trMuPh = "tr";
330  else if (Ph_)
331  trMuPh = "ph";
332  else
333  trMuPh = "mu";
334 
335  if (enum_ == 7 || enum_ == 1 || enum_ == 9 || enum_ == 10) {
336  histname = trMuPh + "Pt";
337  histtitle = trMuPh + "_P_{t}";
338  bookME(ibooker, muPt_, histname, histtitle, pt_variable_binning_);
339  setMETitle(muPt_, trMuPh + "_Pt[GeV]", "events / 1 GeV");
340 
341  histname = trMuPh + "Phi";
342  histtitle = trMuPh + "Phi";
343  bookME(ibooker, muPhi_, histname, histtitle, phi_binning_.nbins, phi_binning_.xmin, phi_binning_.xmax);
344  setMETitle(muPhi_, trMuPh + "_#phi", "events / 0.1 rad");
345 
346  histname = trMuPh + "Eta";
347  histtitle = trMuPh + "_Eta";
348  bookME(ibooker, muEta_, histname, histtitle, eta_binning_.nbins, eta_binning_.xmin, eta_binning_.xmax);
349  setMETitle(muEta_, trMuPh + "_#eta", "events / 0.2");
350 
351  if (enum_ == 9) {
352  histname = "BMass";
353  histtitle = "BMass";
354  bookME(ibooker, BMass_, histname, histtitle, Bmass_binning_.nbins, mass_binning_.xmin, mass_binning_.xmax);
355  setMETitle(BMass_, "B_#mass", "events /");
356  }
357  } else {
358  if (enum_ != 8) {
359  histname = trMuPh + "1Pt";
360  histtitle = trMuPh + "1_P_{t}";
361  bookME(ibooker, mu1Pt_, histname, histtitle, pt_variable_binning_);
362  setMETitle(mu1Pt_, trMuPh + "_Pt[GeV]", "events / 1 GeV");
363 
364  histname = trMuPh + "1Phi";
365  histtitle = trMuPh + "1Phi";
366  bookME(ibooker, mu1Phi_, histname, histtitle, phi_binning_.nbins, phi_binning_.xmin, phi_binning_.xmax);
367  setMETitle(mu1Phi_, trMuPh + "_#phi", "events / 0.1 rad");
368 
369  histname = trMuPh + "1Eta";
370  histtitle = trMuPh + "1_Eta";
371  bookME(ibooker, mu1Eta_, histname, histtitle, eta_binning_.nbins, eta_binning_.xmin, eta_binning_.xmax);
372  setMETitle(mu1Eta_, trMuPh + "_#eta", "events / 0.2");
373 
374  histname = trMuPh + "2Pt";
375  histtitle = trMuPh + "2_P_{t}";
376  bookME(ibooker, mu2Pt_, histname, histtitle, pt_variable_binning_);
377  setMETitle(mu2Pt_, trMuPh + "_Pt[GeV]", "events / 1 GeV");
378 
379  histname = trMuPh + "2Phi";
380  histtitle = trMuPh + "2Phi";
381  bookME(ibooker, mu2Phi_, histname, histtitle, phi_binning_.nbins, phi_binning_.xmin, phi_binning_.xmax);
382  setMETitle(mu2Phi_, trMuPh + "_#phi", "events / 0.1 rad");
383 
384  histname = trMuPh + "2Eta";
385  histtitle = trMuPh + "2_Eta";
386  bookME(ibooker, mu2Eta_, histname, histtitle, eta_binning_.nbins, eta_binning_.xmin, eta_binning_.xmax);
387  setMETitle(mu2Eta_, trMuPh + "_#eta", "events / 0.2");
388  if (enum_ == 11) {
389  histname = "BMass";
390  histtitle = "BMass";
391  bookME(ibooker, BMass_, histname, histtitle, Bmass_binning_.nbins, mass_binning_.xmin, mass_binning_.xmax);
392  setMETitle(BMass_, "B_#mass", "events /");
393  }
394  }
395  if (enum_ == 6) {
396  histname = trMuPh + "3Eta";
397  histtitle = trMuPh + "3Eta";
398  bookME(ibooker, mu3Eta_, histname, histtitle, eta_binning_.nbins, eta_binning_.xmin, eta_binning_.xmax);
399  setMETitle(mu3Eta_, trMuPh + "3#eta", "events / 0.2");
400 
401  histname = trMuPh + "3Pt";
402  histtitle = trMuPh + "3_P_{t}";
403  bookME(ibooker, mu3Pt_, histname, histtitle, pt_variable_binning_);
404  setMETitle(mu3Pt_, trMuPh + "3_Pt[GeV]", "events / 1 GeV");
405 
406  histname = trMuPh + "3Phi";
407  histtitle = trMuPh + "3Phi";
408  bookME(ibooker, mu3Phi_, histname, histtitle, phi_binning_.nbins, phi_binning_.xmin, phi_binning_.xmax);
409  setMETitle(mu3Phi_, trMuPh + "3_#phi", "events / 0.1 rad");
410 
411  } else if (enum_ == 2 || enum_ == 4 || enum_ == 5 || enum_ == 8) {
412  histname = "DiMuEta";
413  histtitle = "DiMuEta";
414  bookME(ibooker, DiMuEta_, histname, histtitle, eta_binning_.nbins, eta_binning_.xmin, eta_binning_.xmax);
415  setMETitle(DiMuEta_, "DiMu#eta", "events / 0.2");
416 
417  histname = "DiMuPt";
418  histtitle = "DiMu_P_{t}";
419  bookME(ibooker, DiMuPt_, histname, histtitle, dMu_pt_variable_binning_);
420  setMETitle(DiMuPt_, "DiMu_Pt[GeV]", "events / 1 GeV");
421 
422  histname = "DiMuPhi";
423  histtitle = "DiMuPhi";
424  bookME(ibooker, DiMuPhi_, histname, histtitle, phi_binning_.nbins, phi_binning_.xmin, phi_binning_.xmax);
425  setMETitle(DiMuPhi_, "DiMu_#phi", "events / 0.1 rad");
426 
427  if (enum_ == 4 || enum_ == 5) {
428  histname = "DiMudR";
429  histtitle = "DiMudR";
430  bookME(ibooker, DiMudR_, histname, histtitle, dR_binning_.nbins, dR_binning_.xmin, dR_binning_.xmax);
431  setMETitle(DiMudR_, "DiMu_#dR", "events /");
432 
433  if (enum_ == 4) {
434  histname = "DiMuMass";
435  histtitle = "DiMuMass";
436  bookME(ibooker, DiMuMass_, histname, histtitle, mass_binning_.nbins, mass_binning_.xmin, mass_binning_.xmax);
437  setMETitle(DiMuMass_, "DiMu_#mass", "events /");
438  }
439  } else if (enum_ == 8) {
440  histname = "DiMuProb";
441  histtitle = "DiMuProb";
442  bookME(ibooker, DiMuProb_, histname, histtitle, prob_variable_binning_);
443  setMETitle(DiMuProb_, "DiMu_#prob", "events /");
444 
445  histname = "DiMuPVcos";
446  histtitle = "DiMuPVcos";
447  bookME(ibooker, DiMuPVcos_, histname, histtitle, cos_binning_.nbins, cos_binning_.xmin, cos_binning_.xmax);
448  setMETitle(DiMuPVcos_, "DiMu_#cosPV", "events /");
449 
450  histname = "DiMuDS";
451  histtitle = "DiMuDS";
452  bookME(ibooker, DiMuDS_, histname, histtitle, ds_binning_.nbins, ds_binning_.xmin, ds_binning_.xmax);
453  setMETitle(DiMuDS_, "DiMu_#ds", "events /");
454 
455  histname = "DiMuDCA";
456  histtitle = "DiMuDCA";
457  bookME(ibooker, DiMuDCA_, histname, histtitle, dca_binning_.nbins, dca_binning_.xmin, dca_binning_.xmax);
458  setMETitle(DiMuDCA_, "DiMu_#dca", "events /");
459  }
460  } // if (enum_ == 2 || enum_ == 4 || enum_ == 5 || enum_ == 8)
461  }
462 
463  bool changed = true;
464 
465  hltPrescale_->init(iRun, iSetup, "HLT", changed);
467 }
468 
470  // if valid HLT paths are required,
471  // analyze event only if all paths are valid
473  return;
474  }
475 
477  iEvent.getByToken(bsToken_, beamSpot);
478  if (!beamSpot.isValid()) {
479  return;
480  }
481 
483  iEvent.getByToken(muoToken_, muoHandle);
484  if (!muoHandle.isValid()) {
485  return;
486  }
487 
489  iEvent.getByToken(trToken_, trHandle);
490  if (!trHandle.isValid()) {
491  return;
492  }
493 
495  iEvent.getByToken(phToken_, phHandle);
496 
497  edm::Handle<edm::TriggerResults> handleTriggerTrigRes;
498 
499  const std::string& hltpath = getTriggerName(hltpaths_den[0]);
500  const std::string& hltpath1 = getTriggerName(hltpaths_num[0]);
501 
502  double PrescaleWeight = 1.0;
503  if (den_genTriggerEventFlag_->on() && den_genTriggerEventFlag_->accept(iEvent, iSetup) &&
504  num_genTriggerEventFlag_->on() && num_genTriggerEventFlag_->accept(iEvent, iSetup))
505  PrescaleWeight = Prescale(hltpath1, hltpath, iEvent, iSetup, hltPrescale_);
506 
507  if (tnp_ > 0) { //TnP method
508 
509  if (den_genTriggerEventFlag_->on() && !den_genTriggerEventFlag_->accept(iEvent, iSetup))
510  return;
512  if (handleTriggerEvent->sizeFilters() == 0)
513  return;
514 
515  std::vector<reco::Muon> tagMuons;
516  for (auto const& m : *muoHandle) { // applying tag selection
517  if (!matchToTrigger(hltpath, m))
518  continue;
519  if (muoSelection_ref(m))
520  tagMuons.push_back(m);
521  }
522 
523  for (int i = 0; i < int(tagMuons.size()); i++) {
524  for (auto const& m : *muoHandle) {
525  if (!matchToTrigger(hltpath, m))
526  continue;
527  if ((tagMuons[i].pt() == m.pt()))
528  continue; //not the same
529  if ((tagMuons[i].p4() + m.p4()).M() > minmass_ &&
530  (tagMuons[i].p4() + m.p4()).M() < maxmass_) { //near to J/psi mass
531  muPhi_.denominator->Fill(m.phi());
532  muEta_.denominator->Fill(m.eta());
533  muPt_.denominator->Fill(m.pt());
534  if (muoSelection_(m) && num_genTriggerEventFlag_->on() && num_genTriggerEventFlag_->accept(iEvent, iSetup)) {
535  muPhi_.numerator->Fill(m.phi(), PrescaleWeight);
536  muEta_.numerator->Fill(m.eta(), PrescaleWeight);
537  muPt_.numerator->Fill(m.pt(), PrescaleWeight);
538  }
539  }
540  }
541  }
542 
543  } else { // reference method
544 
545  if (den_genTriggerEventFlag_->on() && (!den_genTriggerEventFlag_->accept(iEvent, iSetup)))
546  return;
547 
549  if (handleTriggerEvent->sizeFilters() == 0)
550  return;
551 
552  for (auto const& m : *muoHandle) {
553  if (!muoSelection_ref(m))
554  continue;
555  if (!matchToTrigger(hltpath, m))
556  continue;
557 
558  for (auto const& m1 : *muoHandle) {
559  if (!(m1.pt() > m.pt()))
560  continue;
561  if (ptCut_) {
562  if (!muoSelection_(m1))
563  continue;
564  } else if (!muoSelection_ref(m1))
565  continue;
566  if (!matchToTrigger(hltpath, m1))
567  continue;
568 
569  if (enum_ != 10) {
570  if (!DMSelection_ref(m1.p4() + m.p4()))
571  continue;
572  if (m.charge() * m1.charge() > 0)
573  continue;
574  }
575 
576  // dimuon vertex reconstruction
578  const reco::BeamSpot& vertexBeamSpot = *beamSpot;
579  std::vector<reco::TransientTrack> j_tks;
580  reco::TransientTrack mu1TT(m.track(), &magneticField);
581  reco::TransientTrack mu2TT(m1.track(), &magneticField);
582  j_tks.push_back(mu1TT);
583  j_tks.push_back(mu2TT);
584  KalmanVertexFitter jkvf;
585  TransientVertex jtv = jkvf.vertex(j_tks);
586  if (!jtv.isValid())
587  continue;
588  reco::Vertex jpsivertex = jtv;
589  float dimuonCL = 0;
590  if ((jpsivertex.chi2() >= 0) && (jpsivertex.ndof() > 0))
591  dimuonCL = TMath::Prob(jpsivertex.chi2(), jpsivertex.ndof());
592  math::XYZVector jpperp(m.px() + m1.px(), m.py() + m1.py(), 0.);
593  GlobalPoint jVertex = jtv.position();
594  GlobalError jerr = jtv.positionError();
595  GlobalPoint displacementFromBeamspotJpsi(
596  -1 * ((vertexBeamSpot.x0() - jVertex.x()) + (jVertex.z() - vertexBeamSpot.z0()) * vertexBeamSpot.dxdz()),
597  -1 * ((vertexBeamSpot.y0() - jVertex.y()) + (jVertex.z() - vertexBeamSpot.z0()) * vertexBeamSpot.dydz()),
598  0);
599  reco::Vertex::Point vperpj(displacementFromBeamspotJpsi.x(), displacementFromBeamspotJpsi.y(), 0.);
600  float jpsi_cos = vperpj.Dot(jpperp) / (vperpj.R() * jpperp.R());
601  TrajectoryStateClosestToPoint mu1TS = mu1TT.impactPointTSCP();
602  TrajectoryStateClosestToPoint mu2TS = mu2TT.impactPointTSCP();
604  if (mu1TS.isValid() && mu2TS.isValid()) {
605  if (!cApp.calculate(mu1TS.theState(), mu2TS.theState()))
606  continue;
607  } else
608  continue;
609  double DiMuMass = (m1.p4() + m.p4()).M();
610 
611  switch (
612  enum_) { // enum_ = 1...9, represents different sets of variables for different paths, we want to have different hists for different paths
613 
614  case 1:
615 
616  tnp_ = true; // already filled hists for tnp method
617  [[fallthrough]];
618  case 2:
619 
620  if ((Jpsi_) && (!Upsilon_))
621  if (DiMuMass > maxmassJpsi || DiMuMass < minmassJpsi)
622  continue;
623  if ((!Jpsi_) && (Upsilon_))
624  if (DiMuMass > maxmassUpsilon || DiMuMass < minmassUpsilon)
625  continue;
626  if (dimuonCL < minprob)
627  continue;
628 
629  mu1Phi_.denominator->Fill(m.phi());
630  mu1Eta_.denominator->Fill(m.eta());
631  mu1Pt_.denominator->Fill(m.pt());
632  mu2Phi_.denominator->Fill(m1.phi());
633  mu2Eta_.denominator->Fill(m1.eta());
634  mu2Pt_.denominator->Fill(m1.pt());
635  DiMuPt_.denominator->Fill((m1.p4() + m.p4()).Pt());
636  DiMuEta_.denominator->Fill((m1.p4() + m.p4()).Eta());
637  DiMuPhi_.denominator->Fill((m1.p4() + m.p4()).Phi());
638 
639  if (num_genTriggerEventFlag_->on() && num_genTriggerEventFlag_->accept(iEvent, iSetup)) {
640  if (!matchToTrigger(hltpath1, m1))
641  continue;
642  if (!matchToTrigger(hltpath1, m))
643  continue;
644  mu1Phi_.numerator->Fill(m.phi(), PrescaleWeight);
645  mu1Eta_.numerator->Fill(m.eta(), PrescaleWeight);
646  mu1Pt_.numerator->Fill(m.pt(), PrescaleWeight);
647  mu2Phi_.numerator->Fill(m1.phi(), PrescaleWeight);
648  mu2Eta_.numerator->Fill(m1.eta(), PrescaleWeight);
649  mu2Pt_.numerator->Fill(m1.pt(), PrescaleWeight);
650  DiMuPt_.numerator->Fill((m1.p4() + m.p4()).Pt(), PrescaleWeight);
651  DiMuEta_.numerator->Fill((m1.p4() + m.p4()).Eta(), PrescaleWeight);
652  DiMuPhi_.numerator->Fill((m1.p4() + m.p4()).Phi(), PrescaleWeight);
653  }
654 
655  break;
656 
657  case 3:
658 
659  if ((Jpsi_) && (!Upsilon_))
660  if (DiMuMass > maxmassJpsi || DiMuMass < minmassJpsi)
661  continue;
662  if ((!Jpsi_) && (Upsilon_))
663  if (DiMuMass > maxmassUpsilon || DiMuMass < minmassUpsilon)
664  continue;
665  if (dimuonCL < minprob)
666  continue;
667 
668  mu1Phi_.denominator->Fill(m.phi());
669  mu1Eta_.denominator->Fill(m.eta());
670  mu1Pt_.denominator->Fill(m.pt());
671  mu2Phi_.denominator->Fill(m1.phi());
672  mu2Eta_.denominator->Fill(m1.eta());
673  mu2Pt_.denominator->Fill(m1.pt());
674 
675  if (num_genTriggerEventFlag_->on() && num_genTriggerEventFlag_->accept(iEvent, iSetup)) {
676  if (!matchToTrigger(hltpath1, m1))
677  continue;
678  if (!matchToTrigger(hltpath1, m))
679  continue;
680  mu1Phi_.numerator->Fill(m.phi(), PrescaleWeight);
681  mu1Eta_.numerator->Fill(m.eta(), PrescaleWeight);
682  mu1Pt_.numerator->Fill(m.pt(), PrescaleWeight);
683  mu2Phi_.numerator->Fill(m1.phi(), PrescaleWeight);
684  mu2Eta_.numerator->Fill(m1.eta(), PrescaleWeight);
685  mu2Pt_.numerator->Fill(m1.pt(), PrescaleWeight);
686  }
687 
688  break;
689 
690  case 4:
691 
692  if (dimuonCL < minprob)
693  continue;
694 
695  // fill mass plots without selecting mass region
696  DiMuMass_.denominator->Fill(DiMuMass);
697  if (num_genTriggerEventFlag_->on() && num_genTriggerEventFlag_->accept(iEvent, iSetup) &&
698  !(seagull_ && m.charge() * deltaPhi(m.phi(), m1.phi()) > 0) && matchToTrigger(hltpath1, m1) &&
699  matchToTrigger(hltpath1, m))
700  DiMuMass_.numerator->Fill(DiMuMass, PrescaleWeight);
701 
702  if ((Jpsi_) && (!Upsilon_))
703  if (DiMuMass > maxmassJpsi || DiMuMass < minmassJpsi)
704  continue;
705  if ((!Jpsi_) && (Upsilon_))
706  if (DiMuMass > maxmassUpsilon || DiMuMass < minmassUpsilon)
707  continue;
708 
709  mu1Phi_.denominator->Fill(m.phi());
710  mu1Eta_.denominator->Fill(m.eta());
711  mu1Pt_.denominator->Fill(m.pt());
712  mu2Phi_.denominator->Fill(m1.phi());
713  mu2Eta_.denominator->Fill(m1.eta());
714  mu2Pt_.denominator->Fill(m1.pt());
715  DiMuPt_.denominator->Fill((m1.p4() + m.p4()).Pt());
716  DiMuEta_.denominator->Fill((m1.p4() + m.p4()).Eta());
717  DiMuPhi_.denominator->Fill((m1.p4() + m.p4()).Phi());
719 
720  if (num_genTriggerEventFlag_->on() && num_genTriggerEventFlag_->accept(iEvent, iSetup)) {
721  if (seagull_ && m.charge() * deltaPhi(m.phi(), m1.phi()) > 0)
722  continue;
723  if (!matchToTrigger(hltpath1, m1))
724  continue;
725  if (!matchToTrigger(hltpath1, m))
726  continue;
727  mu1Phi_.numerator->Fill(m.phi(), PrescaleWeight);
728  mu1Eta_.numerator->Fill(m.eta(), PrescaleWeight);
729  mu1Pt_.numerator->Fill(m.pt(), PrescaleWeight);
730  mu2Phi_.numerator->Fill(m1.phi(), PrescaleWeight);
731  mu2Eta_.numerator->Fill(m1.eta(), PrescaleWeight);
732  mu2Pt_.numerator->Fill(m1.pt(), PrescaleWeight);
733  DiMuPt_.numerator->Fill((m1.p4() + m.p4()).Pt(), PrescaleWeight);
734  DiMuEta_.numerator->Fill((m1.p4() + m.p4()).Eta(), PrescaleWeight);
735  DiMuPhi_.numerator->Fill((m1.p4() + m.p4()).Phi(), PrescaleWeight);
736  DiMudR_.numerator->Fill(reco::deltaR(m, m1), PrescaleWeight);
737  }
738 
739  break;
740 
741  case 5:
742 
743  if (dimuonCL < minprob)
744  continue;
745  if ((Jpsi_) && (!Upsilon_))
746  if (DiMuMass > maxmassJpsi || DiMuMass < minmassJpsi)
747  continue;
748  if ((!Jpsi_) && (Upsilon_))
749  if (DiMuMass > maxmassUpsilon || DiMuMass < minmassUpsilon)
750  continue;
751 
752  mu1Phi_.denominator->Fill(m.phi());
753  mu1Eta_.denominator->Fill(m.eta());
754  mu1Pt_.denominator->Fill(m.pt());
755  mu2Phi_.denominator->Fill(m1.phi());
756  mu2Eta_.denominator->Fill(m1.eta());
757  mu2Pt_.denominator->Fill(m1.pt());
758  DiMuPt_.denominator->Fill((m1.p4() + m.p4()).Pt());
759  DiMuEta_.denominator->Fill((m1.p4() + m.p4()).Eta());
760  DiMuPhi_.denominator->Fill((m1.p4() + m.p4()).Phi());
762 
763  if (num_genTriggerEventFlag_->on() && num_genTriggerEventFlag_->accept(iEvent, iSetup)) {
764  if (seagull_ && m.charge() * deltaPhi(m.phi(), m1.phi()) > 0)
765  continue;
766  if (!matchToTrigger(hltpath1, m1))
767  continue;
768  if (!matchToTrigger(hltpath1, m))
769  continue;
770  mu1Phi_.numerator->Fill(m.phi(), PrescaleWeight);
771  mu1Eta_.numerator->Fill(m.eta(), PrescaleWeight);
772  mu1Pt_.numerator->Fill(m.pt(), PrescaleWeight);
773  mu2Phi_.numerator->Fill(m1.phi(), PrescaleWeight);
774  mu2Eta_.numerator->Fill(m1.eta(), PrescaleWeight);
775  mu2Pt_.numerator->Fill(m1.pt(), PrescaleWeight);
776  DiMuPt_.numerator->Fill((m1.p4() + m.p4()).Pt(), PrescaleWeight);
777  DiMuEta_.numerator->Fill((m1.p4() + m.p4()).Eta(), PrescaleWeight);
778  DiMuPhi_.numerator->Fill((m1.p4() + m.p4()).Phi(), PrescaleWeight);
779  DiMudR_.numerator->Fill(reco::deltaR(m, m1), PrescaleWeight);
780  }
781 
782  break;
783 
784  case 6:
785 
786  if (dimuonCL < minprob)
787  continue;
788  if ((Jpsi_) && (!Upsilon_))
789  if (DiMuMass > maxmassJpsi || DiMuMass < minmassJpsi)
790  continue;
791  if ((!Jpsi_) && (Upsilon_))
792  if (DiMuMass > maxmassUpsilon || DiMuMass < minmassUpsilon)
793  continue;
794 
795  for (auto const& m2 : *muoHandle) {
796  if (m2.pt() == m.pt())
797  continue; // remove duplicates but do not introduce ordering
798  if (m2.pt() == m1.pt())
799  continue; // -> m2 will be the non-resonant and non-vertexing muon in the triplet
800  if (!matchToTrigger(hltpath, m2))
801  continue;
802 
803  mu1Phi_.denominator->Fill(m.phi());
804  mu1Eta_.denominator->Fill(m.eta());
805  mu1Pt_.denominator->Fill(m.pt());
806  mu2Phi_.denominator->Fill(m1.phi());
807  mu2Eta_.denominator->Fill(m1.eta());
808  mu2Pt_.denominator->Fill(m1.pt());
809  mu3Phi_.denominator->Fill(m2.phi());
810  mu3Eta_.denominator->Fill(m2.eta());
811  mu3Pt_.denominator->Fill(m2.pt());
812 
813  if (num_genTriggerEventFlag_->on() && num_genTriggerEventFlag_->accept(iEvent, iSetup)) {
814  if (!matchToTrigger(hltpath1, m1))
815  continue;
816  if (!matchToTrigger(hltpath1, m))
817  continue;
818  if (!matchToTrigger(hltpath1, m2))
819  continue;
820  mu1Phi_.numerator->Fill(m.phi(), PrescaleWeight);
821  mu1Eta_.numerator->Fill(m.eta(), PrescaleWeight);
822  mu1Pt_.numerator->Fill(m.pt(), PrescaleWeight);
823  mu2Phi_.numerator->Fill(m1.phi(), PrescaleWeight);
824  mu2Eta_.numerator->Fill(m1.eta(), PrescaleWeight);
825  mu2Pt_.numerator->Fill(m1.pt(), PrescaleWeight);
826  mu3Phi_.numerator->Fill(m2.phi(), PrescaleWeight);
827  mu3Eta_.numerator->Fill(m2.eta(), PrescaleWeight);
828  mu3Pt_.numerator->Fill(m2.pt(), PrescaleWeight);
829  }
830  }
831 
832  break;
833 
834  case 7:
835 
836  if (phHandle.isValid()) {
837  if (!phHandle->empty())
838  for (auto const& p : *phHandle) {
839  if (!matchToTrigger(hltpath, p))
840  continue;
841 
842  phPhi_.denominator->Fill(p.phi());
843  phEta_.denominator->Fill(p.eta());
844  phPt_.denominator->Fill(p.pt());
845 
846  if (num_genTriggerEventFlag_->on() && num_genTriggerEventFlag_->accept(iEvent, iSetup)) {
847  if (!matchToTrigger(hltpath1, p))
848  continue;
849  if (!matchToTrigger(hltpath1, m))
850  continue;
851  if (!matchToTrigger(hltpath1, m1))
852  continue;
853  phPhi_.numerator->Fill(p.phi(), PrescaleWeight);
854  phEta_.numerator->Fill(p.eta(), PrescaleWeight);
855  phPt_.numerator->Fill(p.pt(), PrescaleWeight);
856  }
857  }
858  } else {
859  // if Handle is not valid, because the InputTag has been mis-configured, then skip the event
860  if (!phInputTag_.label().empty())
861  return;
862  }
863 
864  break;
865 
866  case 8: //vtx monitoring, filling probability, DS, DCA, cos of pointing angle to the PV, eta, pT of dimuon
867 
868  if (displaced_)
869  if ((displacementFromBeamspotJpsi.perp() / sqrt(jerr.rerr(displacementFromBeamspotJpsi))) < minDS)
870  continue;
871  if ((Jpsi_) && (!Upsilon_))
872  if (DiMuMass > maxmassJpsi || DiMuMass < minmassJpsi)
873  continue;
874  if ((!Jpsi_) && (Upsilon_))
875  if (DiMuMass > maxmassUpsilon || DiMuMass < minmassUpsilon)
876  continue;
877 
878  // fill vtx-prob plots before selecting on this variable
879  DiMuProb_.denominator->Fill(dimuonCL);
880  if (num_genTriggerEventFlag_->on() && num_genTriggerEventFlag_->accept(iEvent, iSetup) &&
881  matchToTrigger(hltpath1, m1) && matchToTrigger(hltpath1, m))
882  DiMuProb_.numerator->Fill(dimuonCL, PrescaleWeight);
883 
884  if (dimuonCL < minprob)
885  continue;
886 
887  DiMuDS_.denominator->Fill(displacementFromBeamspotJpsi.perp() /
888  sqrt(jerr.rerr(displacementFromBeamspotJpsi)));
889  DiMuPVcos_.denominator->Fill(jpsi_cos);
890  DiMuPt_.denominator->Fill((m1.p4() + m.p4()).Pt());
891  DiMuEta_.denominator->Fill((m1.p4() + m.p4()).Eta());
892  DiMuPhi_.denominator->Fill((m1.p4() + m.p4()).Phi());
894 
895  if (num_genTriggerEventFlag_->on() && num_genTriggerEventFlag_->accept(iEvent, iSetup)) {
896  if (!matchToTrigger(hltpath1, m1))
897  continue;
898  if (!matchToTrigger(hltpath1, m))
899  continue;
901  displacementFromBeamspotJpsi.perp() / sqrt(jerr.rerr(displacementFromBeamspotJpsi)), PrescaleWeight);
902  DiMuPVcos_.numerator->Fill(jpsi_cos, PrescaleWeight);
903  DiMuPt_.numerator->Fill((m1.p4() + m.p4()).Pt(), PrescaleWeight);
904  DiMuEta_.numerator->Fill((m1.p4() + m.p4()).Eta(), PrescaleWeight);
905  DiMuPhi_.numerator->Fill((m1.p4() + m.p4()).Phi(), PrescaleWeight);
906  DiMuDCA_.numerator->Fill(cApp.distance(), PrescaleWeight);
907  }
908 
909  break;
910 
911  case 9:
912 
913  if (dimuonCL < minprob)
914  continue;
915  if (fabs(jpsi_cos) < mincos)
916  continue;
917  if ((displacementFromBeamspotJpsi.perp() / sqrt(jerr.rerr(displacementFromBeamspotJpsi))) < minDS)
918  continue;
919 
920  if (trHandle.isValid())
921  for (auto const& t : *trHandle) {
922  if (!trSelection_ref(t))
923  continue;
924  const reco::Track& itrk1 = t;
925  if (reco::deltaR(t, m1) <= min_dR)
926  continue;
927  if (reco::deltaR(t, m) <= min_dR)
928  continue;
930  continue;
931 
932  // reconstruct B+ hadron
934  double trackMass2 = kaon_mass * kaon_mass;
935  double MuMass2 = mu_mass * mu_mass;
936  double e1 = sqrt(m.momentum().Mag2() + MuMass2);
937  double e2 = sqrt(m1.momentum().Mag2() + MuMass2);
938  double e3 = sqrt(itrk1.momentum().Mag2() + trackMass2);
939  p1 = reco::Particle::LorentzVector(m.px(), m.py(), m.pz(), e1);
940  p2 = reco::Particle::LorentzVector(m1.px(), m1.py(), m1.pz(), e2);
941  p3 = reco::Particle::LorentzVector(itrk1.px(), itrk1.py(), itrk1.pz(), e3);
942  pB = p1 + p2 + p3;
943  if (pB.mass() > maxmassJpsiTk || pB.mass() < minmassJpsiTk)
944  continue;
945  reco::TransientTrack trTT(itrk1, &magneticField);
946  std::vector<reco::TransientTrack> t_tks;
947  t_tks.push_back(mu1TT);
948  t_tks.push_back(mu2TT);
949  t_tks.push_back(trTT);
950  KalmanVertexFitter kvf;
951  TransientVertex tv = kvf.vertex(t_tks);
952  reco::Vertex vertex = tv;
953  if (!tv.isValid())
954  continue;
955  float JpsiTkCL = 0;
956  if ((vertex.chi2() >= 0.0) && (vertex.ndof() > 0))
957  JpsiTkCL = TMath::Prob(vertex.chi2(), vertex.ndof());
958  math::XYZVector pperp(m.px() + m1.px() + itrk1.px(), m.py() + m1.py() + itrk1.py(), 0.);
961  GlobalPoint displacementFromBeamspot(
962  -1 * ((vertexBeamSpot.x0() - secondaryVertex.x()) +
963  (secondaryVertex.z() - vertexBeamSpot.z0()) * vertexBeamSpot.dxdz()),
964  -1 * ((vertexBeamSpot.y0() - secondaryVertex.y()) +
965  (secondaryVertex.z() - vertexBeamSpot.z0()) * vertexBeamSpot.dydz()),
966  0);
967  reco::Vertex::Point vperp(displacementFromBeamspot.x(), displacementFromBeamspot.y(), 0.);
968  float jpsiKcos = vperp.Dot(pperp) / (vperp.R() * pperp.R());
969  if (JpsiTkCL < minprob)
970  continue;
971  if (fabs(jpsiKcos) < mincos)
972  continue;
973  if ((displacementFromBeamspot.perp() / sqrt(err.rerr(displacementFromBeamspot))) < minDS)
974  continue;
975 
976  muPhi_.denominator->Fill(t.phi());
977  muEta_.denominator->Fill(t.eta());
978  muPt_.denominator->Fill(t.pt());
979  BMass_.denominator->Fill(pB.mass());
980 
981  if (num_genTriggerEventFlag_->on() && num_genTriggerEventFlag_->accept(iEvent, iSetup)) {
982  if (!matchToTrigger(hltpath1, m1))
983  continue;
984  if (!matchToTrigger(hltpath1, m))
985  continue;
986  if (!matchToTrigger(hltpath1, t))
987  continue;
988  muPhi_.numerator->Fill(t.phi(), PrescaleWeight);
989  muEta_.numerator->Fill(t.eta(), PrescaleWeight);
990  muPt_.numerator->Fill(t.pt(), PrescaleWeight);
991  BMass_.numerator->Fill(pB.mass(), PrescaleWeight);
992  }
993  }
994 
995  break;
996 
997  case 10:
998 
999  if (trHandle.isValid())
1000  for (auto const& t : *trHandle) {
1001  if (!trSelection_ref(t))
1002  continue;
1003  const reco::Track& itrk1 = t;
1004  if (reco::deltaR(t, m1) <= min_dR)
1005  continue;
1006  if (reco::deltaR(t, m) <= min_dR)
1007  continue;
1009  continue;
1010 
1011  // reconstruct Mu+TkMu structure
1013  double trackMass2 = kaon_mass * kaon_mass;
1014  double MuMass2 = mu_mass * mu_mass;
1015  double e2 = sqrt(m1.momentum().Mag2() + MuMass2);
1016  double e3 = sqrt(itrk1.momentum().Mag2() + trackMass2);
1017  p2 = reco::Particle::LorentzVector(m1.px(), m1.py(), m1.pz(), e2);
1018  p3 = reco::Particle::LorentzVector(itrk1.px(), itrk1.py(), itrk1.pz(), e3);
1019  pB = p2 + p3;
1020  if (pB.mass() > maxmassJpsiTk || pB.mass() < minmassJpsiTk)
1021  continue;
1022  reco::TransientTrack trTT(itrk1, &magneticField);
1023  std::vector<reco::TransientTrack> t_tks;
1024  t_tks.push_back(mu2TT);
1025  t_tks.push_back(trTT);
1026  KalmanVertexFitter kvf;
1027  TransientVertex tv = kvf.vertex(t_tks);
1028  reco::Vertex vertex = tv;
1029  if (!tv.isValid())
1030  continue;
1031  float JpsiTkCL = 0;
1032  if ((vertex.chi2() >= 0.0) && (vertex.ndof() > 0))
1033  JpsiTkCL = TMath::Prob(vertex.chi2(), vertex.ndof());
1034  math::XYZVector pperp(m1.px() + itrk1.px(), m1.py() + itrk1.py(), 0.);
1036  GlobalError err = tv.positionError();
1037  GlobalPoint displacementFromBeamspot(
1038  -1 * ((vertexBeamSpot.x0() - secondaryVertex.x()) +
1039  (secondaryVertex.z() - vertexBeamSpot.z0()) * vertexBeamSpot.dxdz()),
1040  -1 * ((vertexBeamSpot.y0() - secondaryVertex.y()) +
1041  (secondaryVertex.z() - vertexBeamSpot.z0()) * vertexBeamSpot.dydz()),
1042  0);
1043  reco::Vertex::Point vperp(displacementFromBeamspot.x(), displacementFromBeamspot.y(), 0.);
1044  if (JpsiTkCL < minprob)
1045  continue;
1046 
1047  muPhi_.denominator->Fill(m1.phi());
1048  muEta_.denominator->Fill(m1.eta());
1049  muPt_.denominator->Fill(m1.pt());
1050 
1051  if (num_genTriggerEventFlag_->on() && num_genTriggerEventFlag_->accept(iEvent, iSetup)) {
1052  if (!matchToTrigger(hltpath1, m1))
1053  continue;
1054  if (!matchToTrigger(hltpath1, m))
1055  continue;
1056  if (!matchToTrigger(hltpath1, t))
1057  continue;
1058  muPhi_.numerator->Fill(m1.phi(), PrescaleWeight);
1059  muEta_.numerator->Fill(m1.eta(), PrescaleWeight);
1060  muPt_.numerator->Fill(m1.pt(), PrescaleWeight);
1061  }
1062  }
1063 
1064  break;
1065 
1066  case 11:
1067 
1068  if (dimuonCL < minprob)
1069  continue;
1070  if (fabs(jpsi_cos) < mincos)
1071  continue;
1072  if (displacementFromBeamspotJpsi.perp() / sqrt(jerr.rerr(displacementFromBeamspotJpsi)) < minDS)
1073  continue;
1074 
1075  if (trHandle.isValid())
1076  for (auto const& t : *trHandle) {
1077  if (!trSelection_ref(t))
1078  continue;
1079  if ((reco::deltaR(t, m) <= min_dR))
1080  continue;
1081  if ((reco::deltaR(t, m1) <= min_dR))
1082  continue;
1083 
1084  for (auto const& t1 : *trHandle) {
1085  if (&t - &(*trHandle)[0] >= &t1 - &(*trHandle)[0])
1086  continue; // not enough, need the following DeltaR checks
1087  if (!trSelection_ref(t1))
1088  continue;
1089  if ((reco::deltaR(t1, m) <= min_dR))
1090  continue;
1091  if ((reco::deltaR(t1, m1) <= min_dR))
1092  continue;
1093  if ((reco::deltaR(t, t1) <= min_dR))
1094  continue;
1095  const reco::Track& itrk1 = t;
1096  const reco::Track& itrk2 = t1;
1098  continue;
1100  continue;
1101 
1102  // reconstruct Bs candidate
1103  reco::Particle::LorentzVector pB, pTkTk, p1, p2, p3, p4;
1104  double trackMass2 = kaon_mass * kaon_mass;
1105  double MuMass2 = mu_mass * mu_mass;
1106  double e1 = sqrt(m.momentum().Mag2() + MuMass2);
1107  double e2 = sqrt(m1.momentum().Mag2() + MuMass2);
1108  double e3 = sqrt(itrk1.momentum().Mag2() + trackMass2);
1109  double e4 = sqrt(itrk2.momentum().Mag2() + trackMass2);
1110  p1 = reco::Particle::LorentzVector(m.px(), m.py(), m.pz(), e1);
1111  p2 = reco::Particle::LorentzVector(m1.px(), m1.py(), m1.pz(), e2);
1112  p3 = reco::Particle::LorentzVector(itrk1.px(), itrk1.py(), itrk1.pz(), e3);
1113  p4 = reco::Particle::LorentzVector(itrk2.px(), itrk2.py(), itrk2.pz(), e4);
1114  pTkTk = p3 + p4;
1115  if (pTkTk.mass() > maxmassTkTk || pTkTk.mass() < minmassTkTk)
1116  continue;
1117  pB = p1 + p2 + p3 + p4;
1118  if (pB.mass() > maxmassJpsiTk || pB.mass() < minmassJpsiTk)
1119  continue;
1120  reco::TransientTrack mu1TT(m.track(), &magneticField);
1121  reco::TransientTrack mu2TT(m1.track(), &magneticField);
1122  reco::TransientTrack trTT(itrk1, &magneticField);
1123  reco::TransientTrack tr1TT(itrk2, &magneticField);
1124  std::vector<reco::TransientTrack> t_tks;
1125  t_tks.push_back(mu1TT);
1126  t_tks.push_back(mu2TT);
1127  t_tks.push_back(trTT);
1128  t_tks.push_back(tr1TT);
1129  KalmanVertexFitter kvf;
1130  TransientVertex tv = kvf.vertex(t_tks); // this will compare the tracks
1131  reco::Vertex vertex = tv;
1132  if (!tv.isValid())
1133  continue;
1134  float JpsiTkCL = 0;
1135  if ((vertex.chi2() >= 0.0) && (vertex.ndof() > 0))
1136  JpsiTkCL = TMath::Prob(vertex.chi2(), vertex.ndof());
1137  math::XYZVector pperp(
1138  m.px() + m1.px() + itrk1.px() + itrk2.px(), m.py() + m1.py() + itrk1.py() + itrk2.py(), 0.);
1140  GlobalError err = tv.positionError();
1141  GlobalPoint displacementFromBeamspot(
1142  -1 * ((vertexBeamSpot.x0() - secondaryVertex.x()) +
1143  (secondaryVertex.z() - vertexBeamSpot.z0()) * vertexBeamSpot.dxdz()),
1144  -1 * ((vertexBeamSpot.y0() - secondaryVertex.y()) +
1145  (secondaryVertex.z() - vertexBeamSpot.z0()) * vertexBeamSpot.dydz()),
1146  0);
1147  reco::Vertex::Point vperp(displacementFromBeamspot.x(), displacementFromBeamspot.y(), 0.);
1148  float jpsiKcos = vperp.Dot(pperp) / (vperp.R() * pperp.R());
1149  if (JpsiTkCL < minprob)
1150  continue;
1151  if (fabs(jpsiKcos) < mincos)
1152  continue;
1153  if ((displacementFromBeamspot.perp() / sqrt(err.rerr(displacementFromBeamspot))) < minDS)
1154  continue;
1155 
1156  mu1Phi_.denominator->Fill(t.phi());
1157  mu1Eta_.denominator->Fill(t.eta());
1158  mu1Pt_.denominator->Fill(t.pt());
1159  mu2Phi_.denominator->Fill(t1.phi());
1160  mu2Eta_.denominator->Fill(t1.eta());
1161  mu2Pt_.denominator->Fill(t1.pt());
1162  BMass_.denominator->Fill(pB.mass());
1163 
1164  if (num_genTriggerEventFlag_->on() && num_genTriggerEventFlag_->accept(iEvent, iSetup)) {
1165  if (!matchToTrigger(hltpath1, m))
1166  continue;
1167  if (!matchToTrigger(hltpath1, m1))
1168  continue;
1169  if (!matchToTrigger(hltpath1, t))
1170  continue;
1171  if (!matchToTrigger(hltpath1, t1))
1172  continue;
1173  mu1Phi_.numerator->Fill(t.phi(), PrescaleWeight);
1174  mu1Eta_.numerator->Fill(t.eta(), PrescaleWeight);
1175  mu1Pt_.numerator->Fill(t.pt(), PrescaleWeight);
1176  mu2Phi_.numerator->Fill(t1.phi(), PrescaleWeight);
1177  mu2Eta_.numerator->Fill(t1.eta(), PrescaleWeight);
1178  mu2Pt_.numerator->Fill(t1.pt(), PrescaleWeight);
1179  BMass_.numerator->Fill(pB.mass(), PrescaleWeight);
1180  }
1181 
1182  } // for (auto const & t1 : *trHandle)
1183  } // for (auto const & t : *trHandle)
1184 
1185  break;
1186  }
1187  }
1188  }
1189  }
1190 }
1191 
1194  desc.add<std::string>("FolderName", "HLT/BPH/");
1195  desc.add<bool>("requireValidHLTPaths", true);
1196 
1197  desc.add<edm::InputTag>("tracks", edm::InputTag("generalTracks"));
1198  desc.add<edm::InputTag>("photons", edm::InputTag("photons"));
1199  desc.add<edm::InputTag>("offlinePVs", edm::InputTag("offlinePrimaryVertices"));
1200  desc.add<edm::InputTag>("beamSpot", edm::InputTag("offlineBeamSpot"));
1201  desc.add<edm::InputTag>("muons", edm::InputTag("muons"));
1202  desc.add<edm::InputTag>("hltTriggerSummaryAOD", edm::InputTag("hltTriggerSummaryAOD", "", "HLT"));
1203  desc.add<std::string>("muoSelection", "");
1204  desc.add<std::string>("muoSelection_ref",
1205  "isPFMuon & isGlobalMuon & innerTrack.hitPattern.trackerLayersWithMeasurement>5 & "
1206  "innerTrack.hitPattern.numberOfValidPixelHits> 0");
1207  desc.add<std::string>(
1208  "muoSelection_tag",
1209  "isGlobalMuon && isPFMuon && isTrackerMuon && abs(eta) < 2.4 && innerTrack.hitPattern.numberOfValidPixelHits > 0 "
1210  "&& innerTrack.hitPattern.trackerLayersWithMeasurement > 5 && globalTrack.hitPattern.numberOfValidMuonHits > 0 "
1211  "&& globalTrack.normalizedChi2 < 10"); // tight selection for tag muon
1212  desc.add<std::string>("muoSelection_probe",
1213  "isPFMuon & isGlobalMuon & innerTrack.hitPattern.trackerLayersWithMeasurement>5 & "
1214  "innerTrack.hitPattern.numberOfValidPixelHits> 0");
1215  desc.add<std::string>("trSelection_ref", "");
1216  desc.add<std::string>("DMSelection_ref", "Pt>4 & abs(eta)");
1217 
1218  desc.add<int>("nmuons", 1);
1219  desc.add<bool>("tnp", false);
1220  desc.add<int>("L3", 0);
1221  desc.add<int>("ptCut", 0);
1222  desc.add<int>("displaced", 0);
1223  desc.add<int>("trOrMu", 0); // if =0, track param monitoring
1224  desc.add<int>("Jpsi", 0);
1225  desc.add<int>("Upsilon", 0);
1226  desc.add<int>("enum", 1); // 1...9, 9 sets of variables to be filled, depends on the hlt path
1227  desc.add<int>("seagull", 1);
1228  desc.add<double>("maxmass", 3.596);
1229  desc.add<double>("minmass", 2.596);
1230  desc.add<double>("maxmassJpsi", 3.2);
1231  desc.add<double>("minmassJpsi", 3.);
1232  desc.add<double>("maxmassUpsilon", 10.0);
1233  desc.add<double>("minmassUpsilon", 8.8);
1234  desc.add<double>("maxmassTkTk", 10);
1235  desc.add<double>("minmassTkTk", 0);
1236  desc.add<double>("maxmassJpsiTk", 5.46);
1237  desc.add<double>("minmassJpsiTk", 5.1);
1238  desc.add<double>("kaon_mass", 0.493677);
1239  desc.add<double>("mu_mass", 0.1056583745);
1240  desc.add<double>("min_dR", 0.001);
1241  desc.add<double>("max_dR", 1.4);
1242  desc.add<double>("minprob", 0.005);
1243  desc.add<double>("mincos", 0.95);
1244  desc.add<double>("minDS", 3.);
1245  desc.add<unsigned int>("stageL1Trigger", 1);
1246 
1248  genericTriggerEventPSet.add<bool>("andOr");
1249  genericTriggerEventPSet.add<edm::InputTag>("dcsInputTag", edm::InputTag("scalersRawToDigi"));
1250  genericTriggerEventPSet.add<edm::InputTag>("hltInputTag", edm::InputTag("TriggerResults::HLT"));
1251  genericTriggerEventPSet.add<std::vector<int>>("dcsPartitions", {});
1252  genericTriggerEventPSet.add<bool>("andOrDcs", false);
1253  genericTriggerEventPSet.add<bool>("errorReplyDcs", true);
1254  genericTriggerEventPSet.add<std::string>("dbLabel", "");
1255  genericTriggerEventPSet.add<bool>("andOrHlt", true);
1256  genericTriggerEventPSet.add<bool>("andOrL1", true);
1257  genericTriggerEventPSet.add<std::vector<std::string>>("hltPaths", {});
1258  genericTriggerEventPSet.add<std::vector<std::string>>("l1Algorithms", {});
1259  genericTriggerEventPSet.add<std::string>("hltDBKey", "");
1260  genericTriggerEventPSet.add<bool>("errorReplyHlt", false);
1261  genericTriggerEventPSet.add<bool>("errorReplyL1", true);
1262  genericTriggerEventPSet.add<bool>("l1BeforeMask", true);
1263  genericTriggerEventPSet.add<unsigned int>("verbosityLevel", 0);
1264  desc.add<edm::ParameterSetDescription>("numGenericTriggerEventPSet", genericTriggerEventPSet);
1265  desc.add<edm::ParameterSetDescription>("denGenericTriggerEventPSet", genericTriggerEventPSet);
1266 
1271  edm::ParameterSetDescription dMu_ptPSet;
1285  fillHistoPSetDescription(dMu_ptPSet);
1295  fillHistoPSetDescription(probPSet);
1296  histoPSet.add<std::vector<double>>("ptBinning", {-0.5, 0, 2, 4, 8, 10, 12, 16, 20, 25, 30, 35, 40, 50});
1297  histoPSet.add<std::vector<double>>("dMuPtBinning", {6, 8, 12, 16, 20, 25, 30, 35, 40, 50, 70});
1298  histoPSet.add<std::vector<double>>("probBinning",
1299  {0.01, 0.02, 0.04, 0.06, 0.08, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0});
1310  desc.add<edm::ParameterSetDescription>("histoPSet", histoPSet);
1311 
1312  descriptions.add("bphMonitoring", desc);
1313 }
1314 
1316  const std::string trigger_name_tmp = partialName.substr(0, partialName.find("v*"));
1317  const unsigned int Ntriggers(hltConfig_.size());
1318  std::string trigger_name = "";
1319  for (unsigned int i = 0; i < Ntriggers; i++) {
1320  trigger_name = hltConfig_.triggerName(i);
1321  if (trigger_name.find(trigger_name_tmp) != std::string::npos)
1322  break;
1323  }
1324 
1325  return trigger_name;
1326 }
1327 
1328 template <typename T>
1329 bool BPHMonitor::matchToTrigger(const std::string& theTriggerName, T t) {
1330  bool matched = false;
1331  //validity check
1332  if (!hltConfig_.inited())
1333  return false;
1334 
1335  //Find the precise trigger name
1336  std::string trigger_name = getTriggerName(theTriggerName);
1337  const unsigned int trigger_index = hltConfig_.triggerIndex(trigger_name);
1338 
1339  //loop over all the modules for this trigger
1340  //by default use the last one
1341  unsigned int Nmodules = hltConfig_.size(trigger_index);
1342  const vector<string>& moduleLabels(hltConfig_.moduleLabels(trigger_index));
1343  unsigned int fIdx = 0;
1344  for (unsigned int i = 0; i < Nmodules; i++) {
1345  const unsigned int tmp_fIdx =
1347  if (tmp_fIdx < handleTriggerEvent->sizeFilters()) //index of not used filters are set to sizeFilters()
1348  {
1349  fIdx = tmp_fIdx;
1350  } //good index
1351  }
1352 
1353  //loop over all the objects in the filter of choice
1354  const trigger::Keys& KEYS(handleTriggerEvent->filterKeys(fIdx));
1355  const trigger::size_type nK(KEYS.size());
1357  for (trigger::size_type i = 0; i != nK; ++i) {
1358  const trigger::TriggerObject& TO(TOC[KEYS[i]]);
1359  //perform matching: deltaR and pt check
1360  if ((reco::deltaR(t.eta(), t.phi(), TO.eta(), TO.phi()) <= 0.2) && (TMath::Abs(t.pt() - TO.pt()) < 0.12)) {
1361  matched = true;
1362  }
1363  }
1364 
1365  return matched;
1366 }
1367 
1368 double BPHMonitor::Prescale(const std::string hltpath1,
1369  const std::string hltpath,
1370  edm::Event const& iEvent,
1371  edm::EventSetup const& iSetup,
1373  int PrescaleHLT_num = 1;
1374  int PrescaleHLT_den = 1;
1375  double Prescale_num = 1;
1376  double L1P = 1, HLTP = 1;
1377  bool flag = true;
1378  std::vector<bool> theSame_den;
1379  std::vector<bool> theSame_num;
1380  //retrieving HLT prescale
1381  PrescaleHLT_den = (hltPrescale_->prescaleValuesInDetail(iEvent, iSetup, hltpath)).second;
1382  PrescaleHLT_num = (hltPrescale_->prescaleValuesInDetail(iEvent, iSetup, hltpath1)).second;
1383  if (PrescaleHLT_den > 0 && PrescaleHLT_num > 0)
1384  HLTP = PrescaleHLT_num / std::__gcd(PrescaleHLT_num, PrescaleHLT_den);
1385 
1386  //retrieving L1 prescale
1387  //Checking if we have the same l1 seeds in den and num
1388  //taking into account that they can be written in different order in num and den
1389  //and some of them can be also switched off
1390 
1391  //check if for each den l1 there is the same l1 seed in num
1392  if (!(hltPrescale_->prescaleValuesInDetail(iEvent, iSetup, hltpath)).first.empty()) {
1393  for (size_t iSeed = 0; iSeed < (hltPrescale_->prescaleValuesInDetail(iEvent, iSetup, hltpath)).first.size();
1394  ++iSeed) {
1395  std::string l1_den = (hltPrescale_->prescaleValuesInDetail(iEvent, iSetup, hltpath)).first.at(iSeed).first;
1396  int l1_denp = (hltPrescale_->prescaleValuesInDetail(iEvent, iSetup, hltpath)).first.at(iSeed).second;
1397  if (l1_denp < 1)
1398  continue;
1399  flag = false;
1400  for (size_t iSeed1 = 0; iSeed1 < (hltPrescale_->prescaleValuesInDetail(iEvent, iSetup, hltpath1)).first.size();
1401  ++iSeed1) {
1402  std::string l1_num = (hltPrescale_->prescaleValuesInDetail(iEvent, iSetup, hltpath1)).first.at(iSeed1).first;
1403  int l1_nump = (hltPrescale_->prescaleValuesInDetail(iEvent, iSetup, hltpath1)).first.at(iSeed1).second;
1404  if (l1_num == l1_den && l1_nump >= 1) //the same seed
1405  {
1406  flag = true;
1407  break;
1408  }
1409  }
1410  theSame_den.push_back(flag);
1411  }
1412  }
1413  //check if for each num l1 there is the same l1 seed in den
1414  if (!(hltPrescale_->prescaleValuesInDetail(iEvent, iSetup, hltpath1)).first.empty()) {
1415  for (size_t iSeed = 0; iSeed < (hltPrescale_->prescaleValuesInDetail(iEvent, iSetup, hltpath1)).first.size();
1416  ++iSeed) {
1417  std::string l1_num = (hltPrescale_->prescaleValuesInDetail(iEvent, iSetup, hltpath1)).first.at(iSeed).first;
1418  int l1_nump = (hltPrescale_->prescaleValuesInDetail(iEvent, iSetup, hltpath1)).first.at(iSeed).second;
1419  if (l1_nump < 1)
1420  continue;
1421  flag = false;
1422  for (size_t iSeed1 = 0; iSeed1 < (hltPrescale_->prescaleValuesInDetail(iEvent, iSetup, hltpath)).first.size();
1423  ++iSeed1) {
1424  std::string l1_den = (hltPrescale_->prescaleValuesInDetail(iEvent, iSetup, hltpath)).first.at(iSeed1).first;
1425  int l1_denp = (hltPrescale_->prescaleValuesInDetail(iEvent, iSetup, hltpath)).first.at(iSeed1).second;
1426  if (l1_den == l1_num && l1_denp >= 1) //the same seed
1427  {
1428  flag = true;
1429  break;
1430  }
1431  }
1432  theSame_num.push_back(flag);
1433  }
1434  }
1435  flag = true;
1436 
1437  if (theSame_num.size() == theSame_den.size()) {
1438  for (size_t i = 0; i < theSame_num.size(); ++i) {
1439  if ((!theSame_num.at(i)) || (!theSame_den.at(i))) {
1440  flag = false;
1441  break;
1442  }
1443  }
1444  }
1445 
1446  if (flag && (theSame_num.size() == theSame_den.size())) {
1447  L1P = 1; //den and num have the same set of l1 seeds
1448  } else {
1449  if (!(hltPrescale_->prescaleValuesInDetail(iEvent, iSetup, hltpath1)).first.empty()) {
1450  Prescale_num = 1;
1451  for (size_t iSeed = 0; iSeed < (hltPrescale_->prescaleValuesInDetail(iEvent, iSetup, hltpath1)).first.size();
1452  ++iSeed) {
1453  int l1 = (hltPrescale_->prescaleValuesInDetail(iEvent, iSetup, hltpath1)).first.at(iSeed).second;
1454  if (l1 < 1)
1455  continue;
1456  if (l1 == 1) {
1457  Prescale_num = 1;
1458  break;
1459  } else
1460  Prescale_num *= 1 - (1.0 / (l1));
1461  }
1462  if (Prescale_num != 1)
1463  Prescale_num = 1.0 / (1 - Prescale_num);
1464  }
1465  L1P = Prescale_num;
1466  }
1467 
1468  return L1P * HLTP;
1469 }
1470 
PixelRegions::L3
Definition: PixelRegionContainers.h:32
ConfigurationDescriptions.h
trigger::TriggerObject::phi
float phi() const
Definition: TriggerObject.h:54
muonTagProbeFilters_cff.matched
matched
Definition: muonTagProbeFilters_cff.py:62
BPHMonitor::mu1Eta_
ObjME mu1Eta_
Definition: BPHMonitor.cc:110
BPHMonitor::hltpaths_num
std::vector< std::string > hltpaths_num
Definition: BPHMonitor.cc:180
BPHMonitor::magneticFieldToken_
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magneticFieldToken_
Definition: BPHMonitor.cc:87
BPHMonitor::maxmassTkTk
double maxmassTkTk
Definition: BPHMonitor.cc:165
PDWG_BPHSkim_cff.muons
muons
Definition: PDWG_BPHSkim_cff.py:47
TrackExtra.h
BPHMonitor::vtxInputTag_
edm::InputTag vtxInputTag_
Definition: BPHMonitor.cc:79
dqm::impl::MonitorElement
Definition: MonitorElement.h:99
BPHMonitor_cff.displaced
displaced
Definition: BPHMonitor_cff.py:575
BPHMonitor::BMass_
ObjME BMass_
Definition: BPHMonitor.cc:136
KalmanVertexFitter::vertex
CachingVertex< 5 > vertex(const std::vector< reco::TransientTrack > &tracks) const override
Definition: KalmanVertexFitter.h:49
trigger::TriggerEvent::sizeFilters
trigger::size_type sizeFilters() const
Definition: TriggerEvent.h:146
BPHMonitor::minmassJpsi
double minmassJpsi
Definition: BPHMonitor.cc:162
DQMOfflineHeavyIons_cff.offlinePVs
offlinePVs
Definition: DQMOfflineHeavyIons_cff.py:80
V0Monitor_cfi.ptPSet
ptPSet
Definition: V0Monitor_cfi.py:25
BPHMonitor::mu1Phi_
ObjME mu1Phi_
Definition: BPHMonitor.cc:109
BPHMonitor::DQMStore
dqm::reco::DQMStore DQMStore
Definition: BPHMonitor.cc:50
BPHMonitor::displaced_
int displaced_
Definition: BPHMonitor.cc:153
BPHMonitor::muEta_
ObjME muEta_
Definition: BPHMonitor.cc:104
mps_fire.i
i
Definition: mps_fire.py:428
pwdgSkimBPark_cfi.beamSpot
beamSpot
Definition: pwdgSkimBPark_cfi.py:5
Muon.h
trigger::TriggerEvent::filterKeys
const Keys & filterKeys(trigger::size_type index) const
Definition: TriggerEvent.h:118
MessageLogger.h
TriggerDQMBase::MEbinning
Definition: TriggerDQMBase.h:16
funct::false
false
Definition: Factorize.h:29
BPHMonitor::mu2Pt_
ObjME mu2Pt_
Definition: BPHMonitor.cc:116
TrackExtraFwd.h
B2GMonitoring_cff.nmuons
nmuons
Definition: B2GMonitoring_cff.py:147
configurableAnalysis::Candidate
char Candidate[]
Definition: modules.cc:20
BPHMonitor::pt_variable_binning_
std::vector< double > pt_variable_binning_
Definition: BPHMonitor.cc:89
LepHTMonitor_cff.numGenericTriggerEventPSet
numGenericTriggerEventPSet
Definition: LepHTMonitor_cff.py:51
BPHMonitor_cff.dRPSet
dRPSet
Definition: BPHMonitor_cff.py:109
KalmanVertexFitter.h
align::BeamSpot
Definition: StructureType.h:95
TriggerResults.h
BPHMonitor::phToken_
edm::EDGetTokenT< reco::PhotonCollection > phToken_
Definition: BPHMonitor.cc:84
BPHMonitor::dMu_pt_variable_binning_
std::vector< double > dMu_pt_variable_binning_
Definition: BPHMonitor.cc:90
BPHMonitor_cff.Jpsi
Jpsi
Definition: BPHMonitor_cff.py:59
BPHMonitor_cff.ptBinning
ptBinning
Definition: BPHMonitor_cff.py:630
BPHMonitor::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: BPHMonitor.cc:1192
BPHMonitor_cfi.z0PSet
z0PSet
Definition: BPHMonitor_cfi.py:43
TransientVertex::isValid
bool isValid() const
Definition: TransientVertex.h:195
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
BPHMonitor::ds_binning_
MEbinning ds_binning_
Definition: BPHMonitor.cc:100
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
edm::Run
Definition: Run.h:45
Handle
V0Monitor_cfi.etaPSet
etaPSet
Definition: V0Monitor_cfi.py:30
reco::BeamSpot::z0
double z0() const
z coordinate
Definition: BeamSpot.h:65
deltaPhi.h
BPHMonitor::trSelection_ref
StringCutObjectSelector< reco::Track, true > trSelection_ref
Definition: BPHMonitor.cc:183
TriggerEvent.h
HLTPrescaleProvider::hltConfigProvider
HLTConfigProvider const & hltConfigProvider() const
Definition: HLTPrescaleProvider.h:52
BPHMonitor::mu2Phi_
ObjME mu2Phi_
Definition: BPHMonitor.cc:114
BPHMonitor::analyze
void analyze(edm::Event const &iEvent, edm::EventSetup const &iSetup) override
Definition: BPHMonitor.cc:469
BPHMonitor::mu3d0_
ObjME mu3d0_
Definition: BPHMonitor.cc:122
BPHMonitor_cff.trOrMu
trOrMu
Definition: BPHMonitor_cff.py:596
edm
HLT enums.
Definition: AlignableModifier.h:19
HLTSiStripMonitoring_cff.hltPaths
hltPaths
Definition: HLTSiStripMonitoring_cff.py:252
BPHMonitor::mu3Phi_
ObjME mu3Phi_
Definition: BPHMonitor.cc:119
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89301
BPHMonitor::z0_binning_
MEbinning z0_binning_
Definition: BPHMonitor.cc:95
BPHMonitor::mincos
double mincos
Definition: BPHMonitor.cc:175
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
BPHMonitor::muoSelection_probe
StringCutObjectSelector< reco::Muon, true > muoSelection_probe
Definition: BPHMonitor.cc:147
BPHMonitor::minmassJpsiTk
double minmassJpsiTk
Definition: BPHMonitor.cc:168
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
TriggerEventWithRefs.h
BPHMonitor::muoInputTag_
edm::InputTag muoInputTag_
Definition: BPHMonitor.cc:75
TransientVertex::position
GlobalPoint position() const
Definition: TransientVertex.h:169
edm::second
U second(std::pair< T, U > const &p)
Definition: ParameterSet.cc:222
edm::InputTag::process
std::string const & process() const
Definition: InputTag.h:40
SiStripSourceConfigTier0_cff.genericTriggerEventPSet
genericTriggerEventPSet
Definition: SiStripSourceConfigTier0_cff.py:96
DQMStore.h
PhotonFwd.h
BPHMonitor::mu2z0_
ObjME mu2z0_
Definition: BPHMonitor.cc:118
reco::TrackBase::px
double px() const
x coordinate of momentum vector
Definition: TrackBase.h:640
BPHMonitor::vtxToken_
edm::EDGetTokenT< reco::VertexCollection > vtxToken_
Definition: BPHMonitor.cc:85
BPHMonitor::matchToTrigger
bool matchToTrigger(const std::string &theTriggerName, T t)
Definition: BPHMonitor.cc:1329
BPHMonitor_cfi.BmassPSet
BmassPSet
Definition: BPHMonitor_cfi.py:60
BPHMonitor::phPt_
ObjME phPt_
Definition: BPHMonitor.cc:127
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:46
BPHMonitor::DiMuDS_
ObjME DiMuDS_
Definition: BPHMonitor.cc:133
BPHMonitor_cff.seagull
seagull
Definition: BPHMonitor_cff.py:145
TransientTrack.h
HLT_FULL_cff.magneticField
magneticField
Definition: HLT_FULL_cff.py:348
BPHMonitor_cfi.minmass
minmass
Definition: BPHMonitor_cfi.py:16
reco::BeamSpot::dxdz
double dxdz() const
dxdz slope
Definition: BeamSpot.h:78
BPHMonitor::minmassUpsilon
double minmassUpsilon
Definition: BPHMonitor.cc:164
BPHMonitor::muoSelection_tag
StringCutObjectSelector< reco::Muon, true > muoSelection_tag
Definition: BPHMonitor.cc:146
BPHMonitor::requireValidHLTPaths_
const bool requireValidHLTPaths_
Definition: BPHMonitor.cc:72
BPHMonitor::mu2Eta_
ObjME mu2Eta_
Definition: BPHMonitor.cc:115
watchdog.const
const
Definition: watchdog.py:83
edm::Handle< reco::BeamSpot >
ESGetToken.h
BPHMonitor::muoSelection_
StringCutObjectSelector< reco::Muon, true > muoSelection_
Definition: BPHMonitor.cc:144
BPHMonitor
Definition: BPHMonitor.cc:47
HLTConfigProvider::inited
bool inited() const
Accessors (const methods)
Definition: HLTConfigProvider.h:49
Muon
Definition: Muon.py:1
reco::Particle::LorentzVector
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Particle.h:21
BPHMonitor_cfi.dcaPSet
dcaPSet
Definition: BPHMonitor_cfi.py:66
BPHMonitor::mu3z0_
ObjME mu3z0_
Definition: BPHMonitor.cc:123
TriggerDQMBase::ObjME::numerator
MonitorElement * numerator
Definition: TriggerDQMBase.h:27
PixelVTXMonitor_cfi.FolderName
FolderName
Definition: PixelVTXMonitor_cfi.py:5
BPHMonitor::DiMuPVcos_
ObjME DiMuPVcos_
Definition: BPHMonitor.cc:131
BPHMonitor::L3_
int L3_
Definition: BPHMonitor.cc:151
BPHMonitor::hltTrigResTag_
edm::EDGetTokenT< edm::TriggerResults > hltTrigResTag_
Definition: BPHMonitor.cc:177
BPHMonitor::dR_binning_
MEbinning dR_binning_
Definition: BPHMonitor.cc:96
BPHMonitor::HLTR
edm::Handle< edm::TriggerResults > HLTR
Definition: BPHMonitor.cc:189
BPHMonitor_cfi.hltTriggerSummaryAOD
hltTriggerSummaryAOD
Definition: BPHMonitor_cfi.py:92
BPHMonitor::~BPHMonitor
~BPHMonitor() override
Definition: BPHMonitor.cc:284
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
BPHMonitor::BPHMonitor
BPHMonitor(const edm::ParameterSet &)
Definition: BPHMonitor.cc:193
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
edm::InputTag::label
std::string const & label() const
Definition: InputTag.h:36
BPHMonitor::phInputTag_
edm::InputTag phInputTag_
Definition: BPHMonitor.cc:78
HLTConfigProvider::moduleLabels
const std::vector< std::string > & moduleLabels(unsigned int trigger) const
label(s) of module(s) on a trigger path
Definition: HLTConfigProvider.h:76
BPHMonitor::cos_binning_
MEbinning cos_binning_
Definition: BPHMonitor.cc:101
MakerMacros.h
TrackerTopology.h
Photon.h
BPHMonitor::enum_
int enum_
Definition: BPHMonitor.cc:157
trigger::TriggerObject::pt
float pt() const
Definition: TriggerObject.h:52
BPHMonitor_cfi.dMuPtBinning
dMuPtBinning
Definition: BPHMonitor_cfi.py:26
BPHMonitor::d0_binning_
MEbinning d0_binning_
Definition: BPHMonitor.cc:94
RandomServiceHelper.t1
t1
Definition: RandomServiceHelper.py:256
trigger::size_type
uint16_t size_type
Definition: TriggerTypeDefs.h:18
Track.h
ClosestApproachInRPhi.h
BPHMonitor::mass_binning_
MEbinning mass_binning_
Definition: BPHMonitor.cc:97
TrackFwd.h
BPHMonitor::seagull_
int seagull_
Definition: BPHMonitor.cc:158
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
dqm::legacy::DQMStore
Definition: DQMStore.h:728
BeamSpot.h
BPHMonitor::Prescale
double Prescale(const std::string num, const std::string den, edm::Event const &iEvent, edm::EventSetup const &iSetup, HLTPrescaleProvider *hltPrescale_)
Definition: BPHMonitor.cc:1368
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
Abs
T Abs(T a)
Definition: MathUtil.h:49
reco::TrackBase::py
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:643
ClosestApproachInRPhi::calculate
bool calculate(const TrajectoryStateOnSurface &sta, const TrajectoryStateOnSurface &stb) override
Definition: ClosestApproachInRPhi.cc:8
BPHMonitor::maxmassUpsilon
double maxmassUpsilon
Definition: BPHMonitor.cc:163
BPHMonitor::ptCut_
int ptCut_
Definition: BPHMonitor.cc:152
SiPixelRawToDigiRegional_cfi.deltaPhi
deltaPhi
Definition: SiPixelRawToDigiRegional_cfi.py:9
BPHMonitor::DiMuPhi_
ObjME DiMuPhi_
Definition: BPHMonitor.cc:128
BPHMonitor::Upsilon_
int Upsilon_
Definition: BPHMonitor.cc:156
Service.h
TriggerDQMBase.h
TriggerDQMBase::setMETitle
void setMETitle(ObjME &me, const std::string &titleX, const std::string &titleY)
Definition: TriggerDQMBase.cc:3
GenericTriggerEventFlag.h
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:78
MuonFwd.h
reco::MuonCollection
std::vector< Muon > MuonCollection
collection of Muon objects
Definition: MuonFwd.h:9
BPHMonitor::minDS
double minDS
Definition: BPHMonitor.cc:176
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
TriggerDQMBase::MEbinning::xmax
double xmax
Definition: TriggerDQMBase.h:19
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
BPHMonitor::minmassTkTk
double minmassTkTk
Definition: BPHMonitor.cc:166
reco::BeamSpot
Definition: BeamSpot.h:21
reco::Track
Definition: Track.h:27
IdealMagneticFieldRecord.h
p2
double p2[4]
Definition: TauolaWrapper.h:90
BPHMonitor::maxmass_
double maxmass_
Definition: BPHMonitor.cc:159
ClosestApproachInRPhi
Definition: ClosestApproachInRPhi.h:26
Event
TriggerDQMBase::bookME
void bookME(DQMStore::IBooker &, ObjME &me, const std::string &histname, const std::string &histtitle, const uint nbins, const double xmin, const double xmax, const bool bookDen=true)
Definition: TriggerDQMBase.cc:15
BPHMonitor::mu1d0_
ObjME mu1d0_
Definition: BPHMonitor.cc:112
VtxSmearedParameters_cfi.Phi
Phi
Definition: VtxSmearedParameters_cfi.py:112
BPHMonitor::muPhi_
ObjME muPhi_
Definition: BPHMonitor.cc:103
Point3DBase< float, GlobalTag >
ParameterSetDescription.h
TriggerDQMBase
Definition: TriggerDQMBase.h:8
EDGetToken.h
trigger::TriggerObject
Single trigger physics object (e.g., an isolated muon)
Definition: TriggerObject.h:21
first
auto first
Definition: CAHitNtupletGeneratorKernelsImpl.h:125
BPHMonitor::mu1z0_
ObjME mu1z0_
Definition: BPHMonitor.cc:113
PhotonMonitor_cff.denGenericTriggerEventPSet
denGenericTriggerEventPSet
Definition: PhotonMonitor_cff.py:61
DQMEDAnalyzer.h
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
HLTConfigProvider::size
unsigned int size() const
number of trigger paths in trigger table
Definition: HLTConfigProvider.h:63
HLTPrescaleProvider::prescaleValuesInDetail
std::pair< std::vector< std::pair< std::string, TL1 > >, THLT > prescaleValuesInDetail(const edm::Event &iEvent, const edm::EventSetup &iSetup, const std::string &trigger)
Definition: HLTPrescaleProvider.h:82
DQMEDAnalyzer
Definition: DQMEDAnalyzer.py:1
GlobalErrorBase::rerr
T rerr(const GlobalPoint &aPoint) const
Definition: GlobalErrorBase.h:138
TriggerDQMBase::fillHistoPSetDescription
static void fillHistoPSetDescription(edm::ParameterSetDescription &pset)
Definition: TriggerDQMBase.cc:108
BPHMonitor::muPt_
ObjME muPt_
Definition: BPHMonitor.cc:105
funct::true
true
Definition: Factorize.h:173
BPHMonitor::den_genTriggerEventFlag_
std::unique_ptr< GenericTriggerEventFlag > den_genTriggerEventFlag_
Definition: BPHMonitor.cc:140
tnp
Definition: BaseTreeFiller.h:43
bphysicsOniaDQM_cfi.vertex
vertex
Definition: bphysicsOniaDQM_cfi.py:7
edm::ParameterSet
Definition: ParameterSet.h:47
BPHMonitor::trInputTag_
edm::InputTag trInputTag_
Definition: BPHMonitor.cc:77
AlCaHLTBitMon_ParallelJobs.p
def p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
jetfilter_cfi.ptCut
ptCut
Definition: jetfilter_cfi.py:6
tracks
const uint32_t *__restrict__ const HitContainer *__restrict__ TkSoA *__restrict__ tracks
Definition: CAHitNtupletGeneratorKernelsImpl.h:176
ParameterSet
Definition: Functions.h:16
deltaR.h
GenericTriggerEventFlag
Provides a code based selection for trigger and DCS information in order to have no failing filters i...
Definition: GenericTriggerEventFlag.h:42
BPHMonitor::muz0_
ObjME muz0_
Definition: BPHMonitor.cc:107
BPHMonitor::phPhi_
ObjME phPhi_
Definition: BPHMonitor.cc:125
BPHMonitor_cff.Upsilon
Upsilon
Definition: BPHMonitor_cff.py:86
BPHMonitor::trSelection_
StringCutObjectSelector< reco::Track, true > trSelection_
Definition: BPHMonitor.cc:182
BPHMonitor::tnp_
bool tnp_
Definition: BPHMonitor.cc:150
trigger::TriggerObjectCollection
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
Definition: TriggerObject.h:75
V0Monitor_cff.massPSet
massPSet
Definition: V0Monitor_cff.py:8
BPHMonitor::mu3Eta_
ObjME mu3Eta_
Definition: BPHMonitor.cc:120
StorageManager_cfg.e1
e1
Definition: StorageManager_cfg.py:16
math::XYZVector
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
BPHMonitor::Jpsi_
int Jpsi_
Definition: BPHMonitor.cc:155
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
createfilelist.int
int
Definition: createfilelist.py:10
iEvent
int iEvent
Definition: GenABIO.cc:224
trigger::TriggerEvent::filterIndex
trigger::size_type filterIndex(const edm::InputTag &filterTag) const
find index of filter in data-member vector from filter tag
Definition: TriggerEvent.h:132
LumiMonitor_cff.histoPSet
histoPSet
Definition: LumiMonitor_cff.py:12
p4
double p4[4]
Definition: TauolaWrapper.h:92
BPHMonitor_cfi.cosPSet
cosPSet
Definition: BPHMonitor_cfi.py:78
trigger::Keys
std::vector< size_type > Keys
Definition: TriggerTypeDefs.h:19
BPHMonitor::hltInputTag_
edm::EDGetTokenT< trigger::TriggerEvent > hltInputTag_
Definition: BPHMonitor.cc:179
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
BPHMonitor::bsInputTag_
edm::InputTag bsInputTag_
Definition: BPHMonitor.cc:76
trigger::TriggerObject::eta
float eta() const
Definition: TriggerObject.h:53
BPHMonitor::mu3Pt_
ObjME mu3Pt_
Definition: BPHMonitor.cc:121
BPHMonitor::DiMuPt_
ObjME DiMuPt_
Definition: BPHMonitor.cc:130
PrescaleWeightProvider.h
HLTPrescaleProvider
Definition: HLTPrescaleProvider.h:38
BPHMonitor::prob_variable_binning_
std::vector< double > prob_variable_binning_
Definition: BPHMonitor.cc:91
p1
double p1[4]
Definition: TauolaWrapper.h:89
GlobalErrorBase< double, ErrorMatrixTag >
BPHMonitor_cfi.photons
photons
Definition: BPHMonitor_cfi.py:91
BPHMonitor_cfi.probBinning
probBinning
Definition: BPHMonitor_cfi.py:84
MagneticField.h
TransientVertex
Definition: TransientVertex.h:18
edm::EventSetup
Definition: EventSetup.h:58
svgfig.template
def template(fileName, svg, replaceme="REPLACEME")
Definition: svgfig.py:521
ESGetToken
TrajectoryStateClosestToPoint
Definition: TrajectoryStateClosestToPoint.h:18
BPHMonitor_cfi.d0PSet
d0PSet
Definition: BPHMonitor_cfi.py:38
BPHMonitor::hltPrescale_
HLTPrescaleProvider * hltPrescale_
Definition: BPHMonitor.cc:142
HLTConfigProvider.h
submitPVResolutionJobs.err
err
Definition: submitPVResolutionJobs.py:85
trigger::TriggerEvent::getObjects
const TriggerObjectCollection & getObjects() const
Definition: TriggerEvent.h:101
HLTPrescaleProvider::init
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
Definition: HLTPrescaleProvider.cc:21
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
TriggerDQMBase::getHistoPSet
static MEbinning getHistoPSet(const edm::ParameterSet &pset)
Definition: TriggerDQMBase.cc:120
BPHMonitor::trOrMu_
int trOrMu_
Definition: BPHMonitor.cc:154
TriggerObject.h
B2GMonitoring_cff.muoSelection
muoSelection
Definition: B2GMonitoring_cff.py:148
BPHMonitor::Bmass_binning_
MEbinning Bmass_binning_
Definition: BPHMonitor.cc:98
reco::Vertex::chi2
double chi2() const
chi-squares
Definition: Vertex.h:116
EgammaValidation_cff.num
num
Definition: EgammaValidation_cff.py:33
HLTConfigProvider::triggerIndex
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 to size-1)
Definition: HLTConfigProvider.h:73
BPHMonitor::phi_binning_
MEbinning phi_binning_
Definition: BPHMonitor.cc:92
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:127
BPHMonitor::DiMuEta_
ObjME DiMuEta_
Definition: BPHMonitor.cc:129
reco::BeamSpot::dydz
double dydz() const
dydz slope
Definition: BeamSpot.h:80
BPHMonitor::mud0_
ObjME mud0_
Definition: BPHMonitor.cc:106
SiPixelPhase1Clusters_cfi.e3
e3
Definition: SiPixelPhase1Clusters_cfi.py:9
cms::cuda::device::unique_ptr
std::unique_ptr< T, impl::DeviceDeleter > unique_ptr
Definition: device_unique_ptr.h:33
VertexFwd.h
BPHMonitor::DMSelection_ref
StringCutObjectSelector< reco::Candidate::LorentzVector, true > DMSelection_ref
Definition: BPHMonitor.cc:184
Registry.h
callgraph.m2
m2
Definition: callgraph.py:38
reco::BeamSpot::x0
double x0() const
x coordinate
Definition: BeamSpot.h:61
BPHMonitor::maxmassJpsiTk
double maxmassJpsiTk
Definition: BPHMonitor.cc:167
TransientVertex.h
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
HLTConfigProvider
Definition: HLTConfigProvider.h:29
reco::Vertex::Point
math::XYZPoint Point
point in the space
Definition: Vertex.h:40
std
Definition: JetResolutionObject.h:76
ConfigurationDescriptions
StringCutObjectSelector.h
reco::TransientTrack
Definition: TransientTrack.h:19
BPHMonitor::folderName_
const std::string folderName_
Definition: BPHMonitor.cc:70
BPHMonitor::hltConfig_
HLTConfigProvider hltConfig_
Definition: BPHMonitor.cc:188
Vertex.h
BPHMonitor::mu2d0_
ObjME mu2d0_
Definition: BPHMonitor.cc:117
Frameworkfwd.h
BPHMonitor::mu1Pt_
ObjME mu1Pt_
Definition: BPHMonitor.cc:111
T
long double T
Definition: Basic3DVectorLD.h:48
BPHMonitor::DiMuProb_
ObjME DiMuProb_
Definition: BPHMonitor.cc:132
BPHMonitor::minprob
double minprob
Definition: BPHMonitor.cc:174
BPHMonitor::muoSelection_ref
StringCutObjectSelector< reco::Muon, true > muoSelection_ref
Definition: BPHMonitor.cc:145
LorentzVector
math::XYZTLorentzVector LorentzVector
Definition: HLTMuonMatchAndPlot.h:49
BPHMonitor::max_dR
double max_dR
Definition: BPHMonitor.cc:172
StringCutObjectSelector
Definition: StringCutObjectSelector.h:16
TriggerDQMBase::ObjME::denominator
MonitorElement * denominator
Definition: TriggerDQMBase.h:28
BPHMonitor_cff.phiPSet
phiPSet
Definition: BPHMonitor_cff.py:631
l1t::VertexCollection
std::vector< Vertex > VertexCollection
Definition: Vertex.h:12
TriggerDQMBase::MEbinning::nbins
uint nbins
Definition: TriggerDQMBase.h:17
BPHMonitor::DiMudR_
ObjME DiMudR_
Definition: BPHMonitor.cc:137
TriggerDQMBase::MEbinning::xmin
double xmin
Definition: TriggerDQMBase.h:18
BPHMonitor::MonitorElement
dqm::reco::MonitorElement MonitorElement
Definition: BPHMonitor.cc:49
BPHMonitor::bsToken_
edm::EDGetTokenT< reco::BeamSpot > bsToken_
Definition: BPHMonitor.cc:82
reco::deltaR
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
HLTPrescaleProvider.h
BPHMonitor::min_dR
double min_dR
Definition: BPHMonitor.cc:171
p3
double p3[4]
Definition: TauolaWrapper.h:91
BPHMonitor::dca_binning_
MEbinning dca_binning_
Definition: BPHMonitor.cc:99
BPHMonitor_cfi.maxmass
maxmass
Definition: BPHMonitor_cfi.py:17
dqm::implementation::IBooker
Definition: DQMStore.h:43
TrajectoryStateClosestToPoint::isValid
bool isValid() const
Definition: TrajectoryStateClosestToPoint.h:111
BPHMonitor::DiMuMass_
ObjME DiMuMass_
Definition: BPHMonitor.cc:135
ALCARECOPromptCalibProdSiPixelAli0T_cff.throw
throw
Definition: ALCARECOPromptCalibProdSiPixelAli0T_cff.py:9
trigger
Definition: HLTPrescaleTableCond.h:8
HLTConfigProvider::triggerName
const std::string & triggerName(unsigned int triggerIndex) const
Definition: HLTConfigProvider.h:70
LepHTMonitor_cff.requireValidHLTPaths
requireValidHLTPaths
Definition: LepHTMonitor_cff.py:22
reco::PhotonCollection
std::vector< Photon > PhotonCollection
collectin of Photon objects
Definition: PhotonFwd.h:9
BPHMonitor::hltpaths_den
std::vector< std::string > hltpaths_den
Definition: BPHMonitor.cc:181
reco::TrackBase::pz
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:646
EventSetup
ParameterSet.h
BPHMonitor::bookHistograms
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: BPHMonitor.cc:295
BPHMonitor::handleTriggerEvent
edm::Handle< trigger::TriggerEvent > handleTriggerEvent
Definition: BPHMonitor.cc:186
BPHMonitor::phEta_
ObjME phEta_
Definition: BPHMonitor.cc:126
BPHMonitor::eta_binning_
MEbinning eta_binning_
Definition: BPHMonitor.cc:93
reco::TrackBase::momentum
const Vector & momentum() const
track momentum vector
Definition: TrackBase.h:664
BPHMonitor::DiMuDCA_
ObjME DiMuDCA_
Definition: BPHMonitor.cc:134
TrajectoryStateClosestToPoint::theState
const FreeTrajectoryState & theState() const
Definition: TrajectoryStateClosestToPoint.h:96
BPHMonitor::muoToken_
edm::EDGetTokenT< reco::MuonCollection > muoToken_
Definition: BPHMonitor.cc:81
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
reco::BeamSpot::y0
double y0() const
y coordinate
Definition: BeamSpot.h:63
BPHMonitor::hltPathsAreValid_
bool hltPathsAreValid_
Definition: BPHMonitor.cc:73
HLTObjectsMonitor_cfi.TriggerResults
TriggerResults
Definition: HLTObjectsMonitor_cfi.py:9
edm::Event
Definition: Event.h:73
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
MagneticField
Definition: MagneticField.h:19
BPHMonitor::kaon_mass
double kaon_mass
Definition: BPHMonitor.cc:169
ClosestApproachInRPhi::distance
float distance() const override
Definition: ClosestApproachInRPhi.cc:54
BPHMonitor::mu_mass
double mu_mass
Definition: BPHMonitor.cc:170
reco::Vertex::ndof
double ndof() const
Definition: Vertex.h:123
BPHMonitor_cff.enum
enum
Dimuon0_L3TnP_Upsilon.Upsilon = cms.int32(1)
Definition: BPHMonitor_cff.py:11
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
reco::TrackBase::quality
bool quality(const TrackQuality) const
Track quality.
Definition: TrackBase.h:552
edm::InputTag
Definition: InputTag.h:15
reco::TrackCollection
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
BPHMonitor::minmass_
double minmass_
Definition: BPHMonitor.cc:160
reco::Vertex
Definition: Vertex.h:35
BPHMonitor::trToken_
edm::EDGetTokenT< reco::TrackCollection > trToken_
Definition: BPHMonitor.cc:83
vertexPlots.e4
e4
Definition: vertexPlots.py:64
BPHMonitor::num_genTriggerEventFlag_
std::unique_ptr< GenericTriggerEventFlag > num_genTriggerEventFlag_
Definition: BPHMonitor.cc:139
TransientVertex::positionError
GlobalError positionError() const
Definition: TransientVertex.h:170
BPHMonitor_cfi.dsPSet
dsPSet
Definition: BPHMonitor_cfi.py:72
RemoveAddSevLevel.flag
flag
Definition: RemoveAddSevLevel.py:117
ZCounting_cff.TriggerEvent
TriggerEvent
Definition: ZCounting_cff.py:5
BPHMonitor::getTriggerName
std::string getTriggerName(std::string partialName)
Definition: BPHMonitor.cc:1315
KalmanVertexFitter
Definition: KalmanVertexFitter.h:22
BPHMonitor::hltInputTag_1
edm::InputTag hltInputTag_1
Definition: BPHMonitor.cc:178
BPHMonitor::maxmassJpsi
double maxmassJpsi
Definition: BPHMonitor.cc:161
reco::TrackBase::highPurity
Definition: TrackBase.h:154
BPHMonitor::nmuons_
int nmuons_
Definition: BPHMonitor.cc:149
singleTopDQM_miniAOD_cfi.secondaryVertex
secondaryVertex
Definition: singleTopDQM_miniAOD_cfi.py:66
Run