CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
ZCounting Class Reference

#include <ZCounting.h>

Inheritance diagram for ZCounting:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Types

enum  MuonIDTypes {
  NoneID, LooseID, MediumID, TightID,
  CustomTightID
}
 
enum  MuonIsoTypes { NoneIso, TrackerIso, PFIso }
 
- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Public Member Functions

 ZCounting (const edm::ParameterSet &ps)
 
 ~ZCounting () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Protected Member Functions

void analyze (edm::Event const &e, edm::EventSetup const &eSetup) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (edm::Run const &, edm::EventSetup const &) override
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 

Private Member Functions

bool isCustomTightMuon (const reco::Muon &muon)
 
bool passMuonID (const reco::Muon &muon, const reco::Vertex *vtx)
 
bool passMuonIso (const reco::Muon &muon)
 

Private Attributes

const double DRMAX = 0.1
 
const double EtaCutL1_
 
const double EtaCutL2_
 
std::vector< std::string > fMuonHLTNames
 
std::vector< std::string > fMuonHLTObjectNames
 
edm::EDGetTokenT< reco::MuonCollectionfMuonName_token
 
edm::EDGetTokenT< reco::VertexCollectionfPVName_token
 
edm::EDGetTokenT< reco::TrackCollectionfTrackName_token
 
MonitorElementh_mass_1HLT_BB
 
MonitorElementh_mass_1HLT_BE
 
MonitorElementh_mass_1HLT_EE
 
MonitorElementh_mass_2HLT_BB
 
MonitorElementh_mass_2HLT_BE
 
MonitorElementh_mass_2HLT_EE
 
MonitorElementh_mass_Glo_fail_BB
 
MonitorElementh_mass_Glo_fail_BE
 
MonitorElementh_mass_Glo_fail_EE
 
MonitorElementh_mass_SIT_fail_BB
 
MonitorElementh_mass_SIT_fail_BE
 
MonitorElementh_mass_SIT_fail_EE
 
MonitorElementh_npv
 
HLTConfigProvider hltConfigProvider_
 
MuonIDTypes IDType_ {NoneID}
 
const std::string IDTypestr_
 
const double IsoCut_
 
MuonIsoTypes IsoType_ {NoneIso}
 
const std::string IsoTypestr_
 
const int LumiBin_
 
const double LumiMax_
 
const double LumiMin_
 
const int MassBin_
 
const double MassMax_
 
const double MassMin_
 
const double MUON_BOUND = 0.9
 
const double MUON_MASS = 0.105658369
 
const double PtCutL1_
 
const double PtCutL2_
 
const int PVBin_
 
const double PVMax_
 
const double PVMin_
 
const edm::InputTag triggerResultsInputTag_
 
TriggerToolstriggers
 
const double VtxAbsZCut_
 
const double VtxNdofCut_
 
const double VtxNTracksFitCut_
 
const double VtxRhoCut_
 

Additional Inherited Members

- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Definition at line 26 of file ZCounting.h.

Member Enumeration Documentation

◆ MuonIDTypes

Enumerator
NoneID 
LooseID 
MediumID 
TightID 
CustomTightID 

Definition at line 31 of file ZCounting.h.

◆ MuonIsoTypes

Enumerator
NoneIso 
TrackerIso 
PFIso 

Definition at line 32 of file ZCounting.h.

Constructor & Destructor Documentation

◆ ZCounting()

ZCounting::ZCounting ( const edm::ParameterSet ps)

Definition at line 20 of file ZCounting.cc.

References TriggerTools::addTriggerRecord(), CustomTightID, DRMAX, edm::ParameterSet::getParameter(), IDType_, IDTypestr_, IsoType_, IsoTypestr_, LooseID, MediumID, NoneID, NoneIso, PFIso, TriggerTools::setDRMAX(), TriggerTools::setTriggerEventToken(), TriggerTools::setTriggerResultsToken(), AlCaHLTBitMon_QueryRunRegistry::string, TightID, TrackerIso, triggerResultsInputTag_, and triggers.

21  : triggerResultsInputTag_(iConfig.getParameter<edm::InputTag>("TriggerResults")),
22  fPVName_token(consumes<reco::VertexCollection>(
23  iConfig.getUntrackedParameter<std::string>("edmPVName", "offlinePrimaryVertices"))),
24  fMuonName_token(consumes<reco::MuonCollection>(iConfig.getUntrackedParameter<std::string>("edmName", "muons"))),
26  consumes<reco::TrackCollection>(iConfig.getUntrackedParameter<std::string>("edmTrackName", "generalTracks"))),
27 
28  PtCutL1_(iConfig.getUntrackedParameter<double>("PtCutL1")),
29  PtCutL2_(iConfig.getUntrackedParameter<double>("PtCutL2")),
30  EtaCutL1_(iConfig.getUntrackedParameter<double>("EtaCutL1")),
31  EtaCutL2_(iConfig.getUntrackedParameter<double>("EtaCutL2")),
32 
33  MassBin_(iConfig.getUntrackedParameter<int>("MassBin")),
34  MassMin_(iConfig.getUntrackedParameter<double>("MassMin")),
35  MassMax_(iConfig.getUntrackedParameter<double>("MassMax")),
36 
37  LumiBin_(iConfig.getUntrackedParameter<int>("LumiBin")),
38  LumiMin_(iConfig.getUntrackedParameter<double>("LumiMin")),
39  LumiMax_(iConfig.getUntrackedParameter<double>("LumiMax")),
40 
41  PVBin_(iConfig.getUntrackedParameter<int>("PVBin")),
42  PVMin_(iConfig.getUntrackedParameter<double>("PVMin")),
43  PVMax_(iConfig.getUntrackedParameter<double>("PVMax")),
44 
45  VtxNTracksFitCut_(iConfig.getUntrackedParameter<double>("VtxNTracksFitMin")),
46  VtxNdofCut_(iConfig.getUntrackedParameter<double>("VtxNdofMin")),
47  VtxAbsZCut_(iConfig.getUntrackedParameter<double>("VtxAbsZMax")),
48  VtxRhoCut_(iConfig.getUntrackedParameter<double>("VtxRhoMax")),
49 
50  IDTypestr_(iConfig.getUntrackedParameter<std::string>("IDType")),
51  IsoTypestr_(iConfig.getUntrackedParameter<std::string>("IsoType")),
52  IsoCut_(iConfig.getUntrackedParameter<double>("IsoCut")) {
53  edm::LogInfo("ZCounting") << "Constructor ZCounting::ZCounting " << std::endl;
54 
55  // Trigger settings
56  triggers = new TriggerTools();
57  triggers->setTriggerResultsToken(consumes<edm::TriggerResults>(triggerResultsInputTag_));
58  triggers->setTriggerEventToken(consumes<trigger::TriggerEvent>(iConfig.getParameter<edm::InputTag>("TriggerEvent")));
60 
61  edm::LogVerbatim("ZCounting") << "ZCounting::ZCounting set trigger names";
62  const std::vector<std::string> patterns_ = iConfig.getParameter<std::vector<std::string>>("MuonTriggerNames");
63  for (const std::string& pattern_ : patterns_) {
64  triggers->addTriggerRecord(pattern_);
65  }
66 
67  if (IDTypestr_ == "Loose")
68  IDType_ = LooseID;
69  else if (IDTypestr_ == "Medium")
70  IDType_ = MediumID;
71  else if (IDTypestr_ == "Tight")
72  IDType_ = TightID;
73  else if (IDTypestr_ == "CustomTight")
75  else
76  IDType_ = NoneID;
77 
78  if (IsoTypestr_ == "Tracker-based")
80  else if (IsoTypestr_ == "PF-based")
81  IsoType_ = PFIso;
82  else
83  IsoType_ = NoneIso;
84 }
Log< level::Info, true > LogVerbatim
const double MassMax_
Definition: ZCounting.h:65
void setDRMAX(const double _drMax)
Definition: TriggerTools.h:28
const double VtxNTracksFitCut_
Definition: ZCounting.h:75
const edm::InputTag triggerResultsInputTag_
Definition: ZCounting.h:46
TriggerTools * triggers
Definition: ZCounting.h:90
const double VtxAbsZCut_
Definition: ZCounting.h:77
const int PVBin_
Definition: ZCounting.h:71
const std::string IDTypestr_
Definition: ZCounting.h:80
const double EtaCutL2_
Definition: ZCounting.h:61
MuonIsoTypes IsoType_
Definition: ZCounting.h:86
void setTriggerEventToken(edm::EDGetTokenT< trigger::TriggerEvent > token)
Definition: TriggerTools.h:27
const double EtaCutL1_
Definition: ZCounting.h:60
const double DRMAX
Definition: ZCounting.h:93
edm::EDGetTokenT< reco::TrackCollection > fTrackName_token
Definition: ZCounting.h:55
edm::EDGetTokenT< reco::MuonCollection > fMuonName_token
Definition: ZCounting.h:50
const double MassMin_
Definition: ZCounting.h:64
const double VtxNdofCut_
Definition: ZCounting.h:76
const double LumiMax_
Definition: ZCounting.h:69
const double IsoCut_
Definition: ZCounting.h:82
edm::EDGetTokenT< reco::VertexCollection > fPVName_token
Definition: ZCounting.h:47
void setTriggerResultsToken(edm::EDGetTokenT< edm::TriggerResults > token)
Definition: TriggerTools.h:26
const std::string IsoTypestr_
Definition: ZCounting.h:81
MuonIDTypes IDType_
Definition: ZCounting.h:85
const int LumiBin_
Definition: ZCounting.h:67
const double PVMin_
Definition: ZCounting.h:72
Log< level::Info, false > LogInfo
void addTriggerRecord(const std::string &name)
Definition: TriggerTools.h:30
const double PVMax_
Definition: ZCounting.h:73
const double LumiMin_
Definition: ZCounting.h:68
const double PtCutL1_
Definition: ZCounting.h:58
const double PtCutL2_
Definition: ZCounting.h:59
const double VtxRhoCut_
Definition: ZCounting.h:78
const int MassBin_
Definition: ZCounting.h:63

◆ ~ZCounting()

ZCounting::~ZCounting ( )
override

Definition at line 89 of file ZCounting.cc.

89 { edm::LogInfo("ZCounting") << "Destructor ZCounting::~ZCounting " << std::endl; }
Log< level::Info, false > LogInfo

Member Function Documentation

◆ analyze()

void ZCounting::analyze ( edm::Event const &  e,
edm::EventSetup const &  eSetup 
)
overrideprotectedvirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 263 of file ZCounting.cc.

References HLT_2022v12_cff::eta1, HLT_2022v12_cff::eta2, EtaCutL1_, EtaCutL2_, dqm::impl::MonitorElement::Fill(), fMuonName_token, fPVName_token, fTrackName_token, h_mass_1HLT_BB, h_mass_1HLT_BE, h_mass_1HLT_EE, h_mass_2HLT_BB, h_mass_2HLT_BE, h_mass_2HLT_EE, h_mass_Glo_fail_BB, h_mass_Glo_fail_BE, h_mass_Glo_fail_EE, h_mass_SIT_fail_BB, h_mass_SIT_fail_BE, h_mass_SIT_fail_EE, h_npv, iEvent, reco::isMuon(), edm::HandleBase::isValid(), MassMax_, MassMin_, MUON_BOUND, MUON_MASS, TriggerTools::pass(), passMuonID(), passMuonIso(), TriggerTools::passObj(), HLT_2022v12_cff::pt1, HLT_2022v12_cff::pt2, PtCutL1_, PtCutL2_, MetAnalyzer::pv(), TriggerTools::readEvent(), triggers, VtxAbsZCut_, VtxNdofCut_, VtxNTracksFitCut_, and VtxRhoCut_.

263  { // Fill event tree on the fly
264  edm::LogInfo("ZCounting") << "ZCounting::analyze" << std::endl;
265 
266  //-------------------------------
267  //--- Vertex
268  //-------------------------------
270  iEvent.getByToken(fPVName_token, hVertexProduct);
271  if (!hVertexProduct.isValid()) {
272  edm::LogWarning("ZCounting") << "ZCounting::analyze - no valid primary vertex product found" << std::endl;
273  return;
274  }
275 
276  const reco::Vertex* pv = nullptr;
277  int nvtx = 0;
278 
279  for (auto const& itVtx : *hVertexProduct) {
280  if (itVtx.isFake())
281  continue;
282  if (itVtx.tracksSize() < VtxNTracksFitCut_)
283  continue;
284  if (itVtx.ndof() < VtxNdofCut_)
285  continue;
286  if (fabs(itVtx.z()) > VtxAbsZCut_)
287  continue;
288  if (itVtx.position().Rho() > VtxRhoCut_)
289  continue;
290 
291  if (nvtx == 0) {
292  pv = &itVtx;
293  }
294  nvtx++;
295  }
296 
297  h_npv->Fill(iEvent.luminosityBlock(), nvtx);
298 
299  //-------------------------------
300  //--- Trigger
301  //-------------------------------
303 
304  // Trigger requirement
305  if (!triggers->pass())
306  return;
307 
308  //-------------------------------
309  //--- Muons and Tracks
310  //-------------------------------
312  iEvent.getByToken(fMuonName_token, hMuonProduct);
313  if (!hMuonProduct.isValid())
314  return;
315 
317  iEvent.getByToken(fTrackName_token, hTrackProduct);
318  if (!hTrackProduct.isValid())
319  return;
320 
321  TLorentzVector vTag(0., 0., 0., 0.);
322  TLorentzVector vProbe(0., 0., 0., 0.);
323  TLorentzVector vTrack(0., 0., 0., 0.);
324 
325  // Tag loop
326  for (auto const& itMu1 : *hMuonProduct) {
327  const float pt1 = itMu1.muonBestTrack()->pt();
328  const float eta1 = itMu1.muonBestTrack()->eta();
329  const float phi1 = itMu1.muonBestTrack()->phi();
330  const float q1 = itMu1.muonBestTrack()->charge();
331 
332  // Tag selection: kinematic cuts, lepton selection and trigger matching
333  if (pt1 < PtCutL1_)
334  continue;
335  if (fabs(eta1) > EtaCutL1_)
336  continue;
337  if (!(passMuonID(itMu1, pv) && passMuonIso(itMu1)))
338  continue;
339  if (!triggers->passObj(eta1, phi1))
340  continue;
341 
342  vTag.SetPtEtaPhiM(pt1, eta1, phi1, MUON_MASS);
343 
344  bool isTagCentral = false;
345  if (fabs(eta1) < MUON_BOUND)
346  isTagCentral = true;
347 
348  // Probe loop over muons
349  for (auto const& itMu2 : *hMuonProduct) {
350  if (&itMu2 == &itMu1)
351  continue;
352 
353  const float pt2 = itMu2.muonBestTrack()->pt();
354  const float eta2 = itMu2.muonBestTrack()->eta();
355  const float phi2 = itMu2.muonBestTrack()->phi();
356  const float q2 = itMu2.muonBestTrack()->charge();
357 
358  // Probe selection: kinematic cuts and opposite charge requirement
359  if (pt2 < PtCutL2_)
360  continue;
361  if (fabs(eta2) > EtaCutL2_)
362  continue;
363  if (q1 == q2)
364  continue;
365 
366  vProbe.SetPtEtaPhiM(pt2, eta2, phi2, MUON_MASS);
367 
368  // Mass window
369  TLorentzVector vDilep = vTag + vProbe;
370  float dilepMass = vDilep.M();
371  if ((dilepMass < MassMin_) || (dilepMass > MassMax_))
372  continue;
373 
374  bool isProbeCentral = false;
375  if (fabs(eta2) < MUON_BOUND)
376  isProbeCentral = true;
377 
378  // Determine event category for efficiency calculation
379  if (passMuonID(itMu2, pv) && passMuonIso(itMu2)) {
380  if (triggers->passObj(eta2, phi2)) {
381  // category 2HLT: both muons passing trigger requirements
382  if (&itMu1 > &itMu2)
383  continue; // make sure we don't double count MuMu2HLT category
384 
385  if (isTagCentral && isProbeCentral) {
386  h_mass_2HLT_BB->Fill(iEvent.luminosityBlock(), dilepMass);
387  } else if (!isTagCentral && !isProbeCentral) {
388  h_mass_2HLT_EE->Fill(iEvent.luminosityBlock(), dilepMass);
389  } else {
390  h_mass_2HLT_BE->Fill(iEvent.luminosityBlock(), dilepMass);
391  }
392  } else {
393  // category 1HLT: only one muon passes trigger
394  if (isTagCentral && isProbeCentral) {
395  h_mass_1HLT_BB->Fill(iEvent.luminosityBlock(), dilepMass);
396  } else if (!isTagCentral && !isProbeCentral) {
397  h_mass_1HLT_EE->Fill(iEvent.luminosityBlock(), dilepMass);
398  } else {
399  h_mass_1HLT_BE->Fill(iEvent.luminosityBlock(), dilepMass);
400  }
401  }
402  } else if (itMu2.isGlobalMuon()) {
403  // category Glo: probe is a Global muon but failing selection
404  if (isTagCentral && isProbeCentral) {
405  h_mass_SIT_fail_BB->Fill(iEvent.luminosityBlock(), dilepMass);
406  } else if (!isTagCentral && !isProbeCentral) {
407  h_mass_SIT_fail_EE->Fill(iEvent.luminosityBlock(), dilepMass);
408  } else {
409  h_mass_SIT_fail_BE->Fill(iEvent.luminosityBlock(), dilepMass);
410  }
411  } else if (itMu2.isStandAloneMuon()) {
412  // category Sta: probe is a Standalone muon
413  if (isTagCentral && isProbeCentral) {
414  h_mass_Glo_fail_BB->Fill(iEvent.luminosityBlock(), dilepMass);
415  } else if (!isTagCentral && !isProbeCentral) {
416  h_mass_Glo_fail_EE->Fill(iEvent.luminosityBlock(), dilepMass);
417  } else {
418  h_mass_Glo_fail_BE->Fill(iEvent.luminosityBlock(), dilepMass);
419  }
420  } else if (itMu2.innerTrack()->hitPattern().trackerLayersWithMeasurement() >= 6 &&
421  itMu2.innerTrack()->hitPattern().numberOfValidPixelHits() >= 1) {
422  // cateogry Trk: probe is a tracker track
423  if (isTagCentral && isProbeCentral) {
424  h_mass_Glo_fail_BB->Fill(iEvent.luminosityBlock(), dilepMass);
425  } else if (!isTagCentral && !isProbeCentral) {
426  h_mass_Glo_fail_EE->Fill(iEvent.luminosityBlock(), dilepMass);
427  } else {
428  h_mass_Glo_fail_BE->Fill(iEvent.luminosityBlock(), dilepMass);
429  }
430  }
431  } // End of probe loop over muons
432 
433  // Probe loop over tracks, only for standalone efficiency calculation
434  for (auto const& itTrk : *hTrackProduct) {
435  // Check track is not a muon
436  bool isMuon = false;
437  for (auto const& itMu : *hMuonProduct) {
438  if (itMu.innerTrack().isNonnull() && itMu.innerTrack().get() == &itTrk) {
439  isMuon = true;
440  break;
441  }
442  }
443  if (isMuon)
444  continue;
445 
446  const float pt2 = itTrk.pt();
447  const float eta2 = itTrk.eta();
448  const float phi2 = itTrk.phi();
449  const float q2 = itTrk.charge();
450 
451  // Probe selection: kinematic cuts and opposite charge requirement
452  if (pt2 < PtCutL2_)
453  continue;
454  if (fabs(eta2) > EtaCutL2_)
455  continue;
456  if (q1 == q2)
457  continue;
458 
459  vTrack.SetPtEtaPhiM(pt2, eta2, phi2, MUON_MASS);
460 
461  TLorentzVector vDilep = vTag + vTrack;
462  float dilepMass = vDilep.M();
463  if ((dilepMass < MassMin_) || (dilepMass > MassMax_))
464  continue;
465 
466  bool isTrackCentral = false;
467  if (fabs(eta2) < MUON_BOUND)
468  isTrackCentral = true;
469 
470  if (itTrk.hitPattern().trackerLayersWithMeasurement() >= 6 && itTrk.hitPattern().numberOfValidPixelHits() >= 1) {
471  if (isTagCentral && isTrackCentral) {
472  h_mass_Glo_fail_BB->Fill(iEvent.luminosityBlock(), dilepMass);
473  } else if (!isTagCentral && !isTrackCentral) {
474  h_mass_Glo_fail_EE->Fill(iEvent.luminosityBlock(), dilepMass);
475  } else {
476  h_mass_Glo_fail_BE->Fill(iEvent.luminosityBlock(), dilepMass);
477  }
478  }
479  } //End of probe loop over tracks
480  } //End of tag loop
481 }
const double MassMax_
Definition: ZCounting.h:65
MonitorElement * h_mass_SIT_fail_BE
Definition: ZCounting.h:111
bool isMuon(const Candidate &part)
Definition: pdgIdUtils.h:9
bool passMuonIso(const reco::Muon &muon)
Definition: ZCounting.cc:520
const double VtxNTracksFitCut_
Definition: ZCounting.h:75
MonitorElement * h_mass_1HLT_BE
Definition: ZCounting.h:107
TriggerTools * triggers
Definition: ZCounting.h:90
const double VtxAbsZCut_
Definition: ZCounting.h:77
const double EtaCutL2_
Definition: ZCounting.h:61
MonitorElement * h_mass_2HLT_BE
Definition: ZCounting.h:103
const double EtaCutL1_
Definition: ZCounting.h:60
MonitorElement * h_mass_SIT_fail_BB
Definition: ZCounting.h:110
MonitorElement * h_mass_Glo_fail_BE
Definition: ZCounting.h:115
edm::EDGetTokenT< reco::TrackCollection > fTrackName_token
Definition: ZCounting.h:55
void Fill(long long x)
bool passMuonID(const reco::Muon &muon, const reco::Vertex *vtx)
Definition: ZCounting.cc:502
const double MUON_MASS
Definition: ZCounting.h:95
edm::EDGetTokenT< reco::MuonCollection > fMuonName_token
Definition: ZCounting.h:50
const double MassMin_
Definition: ZCounting.h:64
const double VtxNdofCut_
Definition: ZCounting.h:76
int iEvent
Definition: GenABIO.cc:224
edm::EDGetTokenT< reco::VertexCollection > fPVName_token
Definition: ZCounting.h:47
def pv(vc)
Definition: MetAnalyzer.py:7
bool pass() const
bool passObj(const double eta, const double phi) const
MonitorElement * h_npv
Definition: ZCounting.h:99
MonitorElement * h_mass_2HLT_EE
Definition: ZCounting.h:104
const double MUON_BOUND
Definition: ZCounting.h:96
MonitorElement * h_mass_2HLT_BB
Definition: ZCounting.h:102
Log< level::Info, false > LogInfo
MonitorElement * h_mass_Glo_fail_BB
Definition: ZCounting.h:114
bool isValid() const
Definition: HandleBase.h:70
void readEvent(const edm::Event &iEvent)
Definition: TriggerTools.cc:90
const double PtCutL1_
Definition: ZCounting.h:58
MonitorElement * h_mass_1HLT_EE
Definition: ZCounting.h:108
Log< level::Warning, false > LogWarning
MonitorElement * h_mass_SIT_fail_EE
Definition: ZCounting.h:112
const double PtCutL2_
Definition: ZCounting.h:59
MonitorElement * h_mass_1HLT_BB
Definition: ZCounting.h:106
MonitorElement * h_mass_Glo_fail_EE
Definition: ZCounting.h:116
const double VtxRhoCut_
Definition: ZCounting.h:78

◆ bookHistograms()

void ZCounting::bookHistograms ( DQMStore::IBooker ibooker_,
edm::Run const &  ,
edm::EventSetup const &   
)
overrideprotectedvirtual

Implements DQMEDAnalyzer.

Definition at line 120 of file ZCounting.cc.

References dqm::implementation::IBooker::book2D(), dqm::implementation::NavigatorBase::cd(), h_mass_1HLT_BB, h_mass_1HLT_BE, h_mass_1HLT_EE, h_mass_2HLT_BB, h_mass_2HLT_BE, h_mass_2HLT_EE, h_mass_Glo_fail_BB, h_mass_Glo_fail_BE, h_mass_Glo_fail_EE, h_mass_SIT_fail_BB, h_mass_SIT_fail_BE, h_mass_SIT_fail_EE, h_npv, LumiBin_, LumiMax_, LumiMin_, MassBin_, MassMax_, MassMin_, PVBin_, PVMax_, PVMin_, dqm::impl::MonitorElement::setAxisTitle(), and dqm::implementation::NavigatorBase::setCurrentFolder().

120  {
121  edm::LogInfo("ZCounting") << "ZCounting::bookHistograms" << std::endl;
122  ibooker_.cd();
123  ibooker_.setCurrentFolder("ZCounting/Histograms");
124 
125  // Muon histograms
126  h_mass_2HLT_BB = ibooker_.book2D("h_mass_2HLT_BB",
127  "Both muon pass HLT in barrel-barrel",
128  LumiBin_,
129  LumiMin_,
130  LumiMax_,
131  MassBin_,
132  MassMin_,
133  MassMax_);
134  h_mass_2HLT_BE = ibooker_.book2D("h_mass_2HLT_BE",
135  "Both muon pass HLT passing in barrel-endcap",
136  LumiBin_,
137  LumiMin_,
138  LumiMax_,
139  MassBin_,
140  MassMin_,
141  MassMax_);
142  h_mass_2HLT_EE = ibooker_.book2D("h_mass_2HLT_EE",
143  "Both muon pass HLT passing in endcap-endcap",
144  LumiBin_,
145  LumiMin_,
146  LumiMax_,
147  MassBin_,
148  MassMin_,
149  MassMax_);
150  h_mass_1HLT_BB = ibooker_.book2D("h_mass_1HLT_BB",
151  "One muon pass HLT in barrel-barrel",
152  LumiBin_,
153  LumiMin_,
154  LumiMax_,
155  MassBin_,
156  MassMin_,
157  MassMax_);
158  h_mass_1HLT_BE = ibooker_.book2D("h_mass_1HLT_BE",
159  "One muon pass HLT passing in barrel-endcap",
160  LumiBin_,
161  LumiMin_,
162  LumiMax_,
163  MassBin_,
164  MassMin_,
165  MassMax_);
166  h_mass_1HLT_EE = ibooker_.book2D("h_mass_1HLT_EE",
167  "One muon pass HLT passing in endcap-endcap",
168  LumiBin_,
169  LumiMin_,
170  LumiMax_,
171  MassBin_,
172  MassMin_,
173  MassMax_);
174 
175  h_mass_SIT_fail_BB = ibooker_.book2D("h_mass_SIT_fail_BB",
176  "Muon SIT failing barrel-barrel",
177  LumiBin_,
178  LumiMin_,
179  LumiMax_,
180  MassBin_,
181  MassMin_,
182  MassMax_);
183  h_mass_SIT_fail_BE = ibooker_.book2D("h_mass_SIT_fail_BE",
184  "Muon SIT failing barrel-endcap",
185  LumiBin_,
186  LumiMin_,
187  LumiMax_,
188  MassBin_,
189  MassMin_,
190  MassMax_);
191 
192  h_mass_SIT_fail_EE = ibooker_.book2D("h_mass_SIT_fail_EE",
193  "Muon SIT failing endcap-endcap",
194  LumiBin_,
195  LumiMin_,
196  LumiMax_,
197  MassBin_,
198  MassMin_,
199  MassMax_);
200 
201  h_mass_Glo_fail_BB = ibooker_.book2D("h_mass_Glo_fail_BB",
202  "Muon Glo failing barrel-barrel",
203  LumiBin_,
204  LumiMin_,
205  LumiMax_,
206  MassBin_,
207  MassMin_,
208  MassMax_);
209  h_mass_Glo_fail_BE = ibooker_.book2D("h_mass_Glo_fail_BE",
210  "Muon Glo failing barrel-endcap",
211  LumiBin_,
212  LumiMin_,
213  LumiMax_,
214  MassBin_,
215  MassMin_,
216  MassMax_);
217 
218  h_mass_Glo_fail_EE = ibooker_.book2D("h_mass_Glo_fail_EE",
219  "Muon Glo failing endcap-endcap",
220  LumiBin_,
221  LumiMin_,
222  LumiMax_,
223  MassBin_,
224  MassMin_,
225  MassMax_);
226 
227  h_npv = ibooker_.book2D(
228  "h_npv", "Events with valid primary vertex", LumiBin_, LumiMin_, LumiMax_, PVBin_, PVMin_, PVMax_);
229 
230  // Axis titles
231  h_mass_2HLT_BB->setAxisTitle("luminosity section", 1);
232  h_mass_2HLT_BE->setAxisTitle("luminosity section", 1);
233  h_mass_2HLT_EE->setAxisTitle("luminosity section", 1);
234  h_mass_1HLT_BB->setAxisTitle("luminosity section", 1);
235  h_mass_1HLT_BE->setAxisTitle("luminosity section", 1);
236  h_mass_1HLT_EE->setAxisTitle("luminosity section", 1);
237  h_mass_SIT_fail_BB->setAxisTitle("luminosity section", 1);
238  h_mass_SIT_fail_BE->setAxisTitle("luminosity section", 1);
239  h_mass_SIT_fail_EE->setAxisTitle("luminosity section", 1);
240  h_mass_Glo_fail_BB->setAxisTitle("luminosity section", 1);
241  h_mass_Glo_fail_BE->setAxisTitle("luminosity section", 1);
242  h_mass_Glo_fail_EE->setAxisTitle("luminosity section", 1);
243  h_mass_2HLT_BB->setAxisTitle("tag and probe mass", 2);
244  h_mass_2HLT_BE->setAxisTitle("tag and probe mass", 2);
245  h_mass_2HLT_EE->setAxisTitle("tag and probe mass", 2);
246  h_mass_1HLT_BB->setAxisTitle("tag and probe mass", 2);
247  h_mass_1HLT_BE->setAxisTitle("tag and probe mass", 2);
248  h_mass_1HLT_EE->setAxisTitle("tag and probe mass", 2);
249  h_mass_SIT_fail_BB->setAxisTitle("tag and probe mass", 2);
250  h_mass_SIT_fail_BE->setAxisTitle("tag and probe mass", 2);
251  h_mass_SIT_fail_EE->setAxisTitle("tag and probe mass", 2);
252  h_mass_Glo_fail_BB->setAxisTitle("tag and probe mass", 2);
253  h_mass_Glo_fail_BE->setAxisTitle("tag and probe mass", 2);
254  h_mass_Glo_fail_EE->setAxisTitle("tag and probe mass", 2);
255  h_npv->setAxisTitle("luminosity section", 1);
256  h_npv->setAxisTitle("number of primary vertices", 2);
257 }
const double MassMax_
Definition: ZCounting.h:65
MonitorElement * h_mass_SIT_fail_BE
Definition: ZCounting.h:111
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
MonitorElement * h_mass_1HLT_BE
Definition: ZCounting.h:107
const int PVBin_
Definition: ZCounting.h:71
MonitorElement * h_mass_2HLT_BE
Definition: ZCounting.h:103
MonitorElement * h_mass_SIT_fail_BB
Definition: ZCounting.h:110
MonitorElement * h_mass_Glo_fail_BE
Definition: ZCounting.h:115
const double MassMin_
Definition: ZCounting.h:64
const double LumiMax_
Definition: ZCounting.h:69
MonitorElement * h_npv
Definition: ZCounting.h:99
const int LumiBin_
Definition: ZCounting.h:67
MonitorElement * h_mass_2HLT_EE
Definition: ZCounting.h:104
MonitorElement * h_mass_2HLT_BB
Definition: ZCounting.h:102
const double PVMin_
Definition: ZCounting.h:72
Log< level::Info, false > LogInfo
const double PVMax_
Definition: ZCounting.h:73
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:212
MonitorElement * h_mass_Glo_fail_BB
Definition: ZCounting.h:114
const double LumiMin_
Definition: ZCounting.h:68
MonitorElement * h_mass_1HLT_EE
Definition: ZCounting.h:108
MonitorElement * h_mass_SIT_fail_EE
Definition: ZCounting.h:112
MonitorElement * h_mass_1HLT_BB
Definition: ZCounting.h:106
MonitorElement * h_mass_Glo_fail_EE
Definition: ZCounting.h:116
const int MassBin_
Definition: ZCounting.h:63
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

◆ dqmBeginRun()

void ZCounting::dqmBeginRun ( edm::Run const &  iRun,
edm::EventSetup const &  iSetup 
)
overrideprotectedvirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 94 of file ZCounting.cc.

References hltConfigProvider_, edm::RunBase::id(), HLTConfigProvider::init(), TriggerTools::initHLTObjects(), edm::InputTag::process(), HLTConfigProvider::processName(), HLTConfigProvider::size(), HLTConfigProvider::tableName(), triggerResultsInputTag_, and triggers.

94  {
95  edm::LogInfo("ZCounting") << "ZCounting::beginRun" << std::endl;
96 
97  // initialize triggers
98 
99  edm::LogVerbatim("ZCounting") << "ZCounting::dqmBeginRun now at " << iRun.id();
100  bool hltChanged_ = true;
101  if (hltConfigProvider_.init(iRun, iSetup, triggerResultsInputTag_.process(), hltChanged_)) {
102  edm::LogVerbatim("ZCounting") << "ZCounting::dqmBeginRun [TriggerObjMatchValueMapsProducer::beginRun] "
103  "HLTConfigProvider initialized [processName() = \""
104  << hltConfigProvider_.processName() << "\", tableName() = \""
105  << hltConfigProvider_.tableName() << "\", size() = " << hltConfigProvider_.size()
106  << "]";
107  } else {
108  edm::LogError("ZCounting") << "ZCounting::dqmBeginRun Initialization of HLTConfigProvider failed for Run="
109  << iRun.id() << " (process=\"" << triggerResultsInputTag_.process()
110  << "\") -> plugin will not produce outputs for this Run";
111  return;
112  }
113 
115 }
Log< level::Info, true > LogVerbatim
void initHLTObjects(const HLTConfigProvider &hltConfigProvider_)
Definition: TriggerTools.cc:35
const edm::InputTag triggerResultsInputTag_
Definition: ZCounting.h:46
TriggerTools * triggers
Definition: ZCounting.h:90
Log< level::Error, false > LogError
HLTConfigProvider hltConfigProvider_
Definition: ZCounting.h:89
unsigned int size() const
number of trigger paths in trigger table
Log< level::Info, false > LogInfo
const std::string & processName() const
process name
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d&#39;tor
const std::string & tableName() const
HLT ConfDB table name.
std::string const & process() const
Definition: InputTag.h:40

◆ isCustomTightMuon()

bool ZCounting::isCustomTightMuon ( const reco::Muon muon)
private

Definition at line 489 of file ZCounting.cc.

References muon::GlobalMuonPromptTight, and muon::isGoodMuon().

Referenced by passMuonID().

489  {
490  if (!muon.isPFMuon() || !muon.isGlobalMuon())
491  return false;
492 
493  bool muID = isGoodMuon(muon, muon::GlobalMuonPromptTight) && (muon.numberOfMatchedStations() > 1);
494 
495  bool muIdAndHits = muID && muon.innerTrack()->hitPattern().trackerLayersWithMeasurement() > 5 &&
496  muon.innerTrack()->hitPattern().numberOfValidPixelHits() > 0;
497 
498  return muIdAndHits;
499 }
bool isGoodMuon(const reco::Muon &muon, SelectionType type, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
main GoodMuon wrapper call

◆ passMuonID()

bool ZCounting::passMuonID ( const reco::Muon muon,
const reco::Vertex vtx 
)
private

Definition at line 502 of file ZCounting.cc.

References CustomTightID, IDType_, isCustomTightMuon(), muon::isLooseMuon(), muon::isMediumMuon(), muon::isTightMuon(), LooseID, MediumID, NoneID, TightID, and extraflags_cff::vtx.

Referenced by analyze().

502  {
503  // Muon ID selection, using internal function "DataFormats/MuonReco/src/MuonSelectors.cc
504  switch (IDType_) {
505  case LooseID:
506  return muon::isLooseMuon(muon);
507  case MediumID:
508  return muon::isMediumMuon(muon);
509  case CustomTightID:
510  return isCustomTightMuon(muon);
511  case TightID:
512  return vtx != nullptr && muon::isTightMuon(muon, *vtx);
513  case NoneID:
514  return true;
515  }
516  return false;
517 }
bool isMediumMuon(const reco::Muon &, bool run2016_hip_mitigation=false)
bool isLooseMuon(const reco::Muon &)
bool isCustomTightMuon(const reco::Muon &muon)
Definition: ZCounting.cc:489
MuonIDTypes IDType_
Definition: ZCounting.h:85
bool isTightMuon(const reco::Muon &, const reco::Vertex &)

◆ passMuonIso()

bool ZCounting::passMuonIso ( const reco::Muon muon)
private

Definition at line 520 of file ZCounting.cc.

References IsoCut_, IsoType_, SiStripPI::max, NoneIso, PFIso, and TrackerIso.

Referenced by analyze().

520  {
521  //Muon isolation selection, up-to-date with MUO POG recommendation
522  switch (IsoType_) {
523  case TrackerIso:
524  return muon.isolationR03().sumPt < IsoCut_;
525  case PFIso:
526  return muon.pfIsolationR04().sumChargedHadronPt +
527  std::max(0.,
528  muon.pfIsolationR04().sumNeutralHadronEt + muon.pfIsolationR04().sumPhotonEt -
529  0.5 * muon.pfIsolationR04().sumPUPt) <
530  IsoCut_;
531  case NoneIso:
532  return true;
533  }
534 
535  return false;
536 }
MuonIsoTypes IsoType_
Definition: ZCounting.h:86
const double IsoCut_
Definition: ZCounting.h:82

Member Data Documentation

◆ DRMAX

const double ZCounting::DRMAX = 0.1
private

Definition at line 93 of file ZCounting.h.

Referenced by ZCounting().

◆ EtaCutL1_

const double ZCounting::EtaCutL1_
private

Definition at line 60 of file ZCounting.h.

Referenced by analyze().

◆ EtaCutL2_

const double ZCounting::EtaCutL2_
private

Definition at line 61 of file ZCounting.h.

Referenced by analyze().

◆ fMuonHLTNames

std::vector<std::string> ZCounting::fMuonHLTNames
private

Definition at line 51 of file ZCounting.h.

◆ fMuonHLTObjectNames

std::vector<std::string> ZCounting::fMuonHLTObjectNames
private

Definition at line 52 of file ZCounting.h.

◆ fMuonName_token

edm::EDGetTokenT<reco::MuonCollection> ZCounting::fMuonName_token
private

Definition at line 50 of file ZCounting.h.

Referenced by analyze().

◆ fPVName_token

edm::EDGetTokenT<reco::VertexCollection> ZCounting::fPVName_token
private

Definition at line 47 of file ZCounting.h.

Referenced by analyze().

◆ fTrackName_token

edm::EDGetTokenT<reco::TrackCollection> ZCounting::fTrackName_token
private

Definition at line 55 of file ZCounting.h.

Referenced by analyze().

◆ h_mass_1HLT_BB

MonitorElement* ZCounting::h_mass_1HLT_BB
private

Definition at line 106 of file ZCounting.h.

Referenced by analyze(), and bookHistograms().

◆ h_mass_1HLT_BE

MonitorElement* ZCounting::h_mass_1HLT_BE
private

Definition at line 107 of file ZCounting.h.

Referenced by analyze(), and bookHistograms().

◆ h_mass_1HLT_EE

MonitorElement* ZCounting::h_mass_1HLT_EE
private

Definition at line 108 of file ZCounting.h.

Referenced by analyze(), and bookHistograms().

◆ h_mass_2HLT_BB

MonitorElement* ZCounting::h_mass_2HLT_BB
private

Definition at line 102 of file ZCounting.h.

Referenced by analyze(), and bookHistograms().

◆ h_mass_2HLT_BE

MonitorElement* ZCounting::h_mass_2HLT_BE
private

Definition at line 103 of file ZCounting.h.

Referenced by analyze(), and bookHistograms().

◆ h_mass_2HLT_EE

MonitorElement* ZCounting::h_mass_2HLT_EE
private

Definition at line 104 of file ZCounting.h.

Referenced by analyze(), and bookHistograms().

◆ h_mass_Glo_fail_BB

MonitorElement* ZCounting::h_mass_Glo_fail_BB
private

Definition at line 114 of file ZCounting.h.

Referenced by analyze(), and bookHistograms().

◆ h_mass_Glo_fail_BE

MonitorElement* ZCounting::h_mass_Glo_fail_BE
private

Definition at line 115 of file ZCounting.h.

Referenced by analyze(), and bookHistograms().

◆ h_mass_Glo_fail_EE

MonitorElement* ZCounting::h_mass_Glo_fail_EE
private

Definition at line 116 of file ZCounting.h.

Referenced by analyze(), and bookHistograms().

◆ h_mass_SIT_fail_BB

MonitorElement* ZCounting::h_mass_SIT_fail_BB
private

Definition at line 110 of file ZCounting.h.

Referenced by analyze(), and bookHistograms().

◆ h_mass_SIT_fail_BE

MonitorElement* ZCounting::h_mass_SIT_fail_BE
private

Definition at line 111 of file ZCounting.h.

Referenced by analyze(), and bookHistograms().

◆ h_mass_SIT_fail_EE

MonitorElement* ZCounting::h_mass_SIT_fail_EE
private

Definition at line 112 of file ZCounting.h.

Referenced by analyze(), and bookHistograms().

◆ h_npv

MonitorElement* ZCounting::h_npv
private

Definition at line 99 of file ZCounting.h.

Referenced by analyze(), and bookHistograms().

◆ hltConfigProvider_

HLTConfigProvider ZCounting::hltConfigProvider_
private

Definition at line 89 of file ZCounting.h.

Referenced by dqmBeginRun().

◆ IDType_

MuonIDTypes ZCounting::IDType_ {NoneID}
private

Definition at line 85 of file ZCounting.h.

Referenced by passMuonID(), and ZCounting().

◆ IDTypestr_

const std::string ZCounting::IDTypestr_
private

Definition at line 80 of file ZCounting.h.

Referenced by ZCounting().

◆ IsoCut_

const double ZCounting::IsoCut_
private

Definition at line 82 of file ZCounting.h.

Referenced by passMuonIso().

◆ IsoType_

MuonIsoTypes ZCounting::IsoType_ {NoneIso}
private

Definition at line 86 of file ZCounting.h.

Referenced by passMuonIso(), and ZCounting().

◆ IsoTypestr_

const std::string ZCounting::IsoTypestr_
private

Definition at line 81 of file ZCounting.h.

Referenced by ZCounting().

◆ LumiBin_

const int ZCounting::LumiBin_
private

Definition at line 67 of file ZCounting.h.

Referenced by bookHistograms().

◆ LumiMax_

const double ZCounting::LumiMax_
private

Definition at line 69 of file ZCounting.h.

Referenced by bookHistograms().

◆ LumiMin_

const double ZCounting::LumiMin_
private

Definition at line 68 of file ZCounting.h.

Referenced by bookHistograms().

◆ MassBin_

const int ZCounting::MassBin_
private

Definition at line 63 of file ZCounting.h.

Referenced by bookHistograms().

◆ MassMax_

const double ZCounting::MassMax_
private

Definition at line 65 of file ZCounting.h.

Referenced by analyze(), and bookHistograms().

◆ MassMin_

const double ZCounting::MassMin_
private

Definition at line 64 of file ZCounting.h.

Referenced by analyze(), and bookHistograms().

◆ MUON_BOUND

const double ZCounting::MUON_BOUND = 0.9
private

Definition at line 96 of file ZCounting.h.

Referenced by analyze().

◆ MUON_MASS

const double ZCounting::MUON_MASS = 0.105658369
private

Definition at line 95 of file ZCounting.h.

Referenced by analyze().

◆ PtCutL1_

const double ZCounting::PtCutL1_
private

Definition at line 58 of file ZCounting.h.

Referenced by analyze().

◆ PtCutL2_

const double ZCounting::PtCutL2_
private

Definition at line 59 of file ZCounting.h.

Referenced by analyze().

◆ PVBin_

const int ZCounting::PVBin_
private

Definition at line 71 of file ZCounting.h.

Referenced by bookHistograms().

◆ PVMax_

const double ZCounting::PVMax_
private

Definition at line 73 of file ZCounting.h.

Referenced by bookHistograms().

◆ PVMin_

const double ZCounting::PVMin_
private

Definition at line 72 of file ZCounting.h.

Referenced by bookHistograms().

◆ triggerResultsInputTag_

const edm::InputTag ZCounting::triggerResultsInputTag_
private

Definition at line 46 of file ZCounting.h.

Referenced by dqmBeginRun(), and ZCounting().

◆ triggers

TriggerTools* ZCounting::triggers
private

Definition at line 90 of file ZCounting.h.

Referenced by analyze(), dqmBeginRun(), and ZCounting().

◆ VtxAbsZCut_

const double ZCounting::VtxAbsZCut_
private

Definition at line 77 of file ZCounting.h.

Referenced by analyze().

◆ VtxNdofCut_

const double ZCounting::VtxNdofCut_
private

Definition at line 76 of file ZCounting.h.

Referenced by analyze().

◆ VtxNTracksFitCut_

const double ZCounting::VtxNTracksFitCut_
private

Definition at line 75 of file ZCounting.h.

Referenced by analyze().

◆ VtxRhoCut_

const double ZCounting::VtxRhoCut_
private

Definition at line 78 of file ZCounting.h.

Referenced by analyze().