CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
EwkMuLumiMonitorDQM Class Reference

#include <EwkMuLumiMonitorDQM.h>

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

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (const edm::Run &, const edm::EventSetup &) override
 
 EwkMuLumiMonitorDQM (const edm::ParameterSet &)
 
void init_histograms ()
 
bool IsMuMatchedToHLTMu (const reco::Muon &, const std::vector< reco::Particle > &, double, double)
 
double muIso (const reco::Muon &)
 
double tkIso (const reco::Track &, edm::Handle< reco::TrackCollection >, edm::Handle< CaloTowerCollection >)
 
- 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
 

Private Attributes

double acopCut_
 
edm::EDGetTokenT< reco::BeamSpotbeamSpotToken_
 
edm::EDGetTokenT< CaloTowerCollectioncaloTowerToken_
 
double deltaRTrk_
 
double deltaRVetoTrk_
 
double dxyCut_
 
double etaMuCut_
 
MonitorElementhighMass1HLT_
 
MonitorElementhighMass2HLT_
 
MonitorElementhighMassGlbSta_
 
MonitorElementhighMassGlbTrk_
 
MonitorElementhighMassIsBothGlbTrkThanW_
 
MonitorElementhighMassNotIso_
 
HLTConfigProvider hltConfigProvider_
 
bool isCombinedIso_
 
double isoCut03_
 
bool isRelativeIso_
 
bool isValidHltConfig_
 
bool isW_
 
bool isZGlbSta_
 
bool isZGlbTrk_
 
bool isZGolden1HLT_
 
bool isZGolden2HLT_
 
bool isZGoldenNoIso_
 
MonitorElementmass1HLT_
 
MonitorElementmass2HLT_
 
MonitorElementmassGlbSta_
 
MonitorElementmassGlbTrk_
 
MonitorElementmassIsBothGlbTrkThanW_
 
MonitorElementmassNotIso_
 
double maxDeltaR_
 
double maxDPtRel_
 
bool metIncludesMuons_
 
edm::EDGetTokenT< edm::View< reco::MET > > metToken_
 
double mtMax_
 
double mtMin_
 
edm::EDGetTokenT< edm::View< reco::Muon > > muonToken_
 
unsigned int n1hlt
 
unsigned int n2hlt
 
unsigned int nall
 
unsigned int nEvWithHighPtMu
 
unsigned int nGlbSta
 
unsigned int nGlbTrk
 
unsigned int nhlt
 
unsigned int nInKinRange
 
unsigned int niso
 
unsigned int nNotIso
 
unsigned int nsel
 
unsigned int nTMass
 
unsigned int nW
 
double ptMuCut_
 
double ptThreshold_
 
MonitorElementTMass_
 
edm::EDGetTokenT< reco::TrackCollectiontrackToken_
 
edm::EDGetTokenT< trigger::TriggerEventtrigEvToken_
 
edm::InputTag trigTag_
 
edm::EDGetTokenT< edm::TriggerResultstrigToken_
 

Additional Inherited Members

- 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
 
- 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 Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

DQM offline for EWK MuLumiMonitor: intended for luminosity purposes using Z/W

Authors
: Michele de Gruttola, INFN Naples - Maria Cepeda, CIEMAT on behalf EWK-Muon group

Definition at line 36 of file EwkMuLumiMonitorDQM.h.

Constructor & Destructor Documentation

◆ EwkMuLumiMonitorDQM()

EwkMuLumiMonitorDQM::EwkMuLumiMonitorDQM ( const edm::ParameterSet cfg)

Definition at line 35 of file EwkMuLumiMonitorDQM.cc.

References isValidHltConfig_.

36  : // Input collections
37  trigTag_(cfg.getUntrackedParameter<edm::InputTag>("TrigTag", edm::InputTag("TriggerResults::HLT"))),
38  trigToken_(consumes<edm::TriggerResults>(trigTag_)),
39  trigEvToken_(consumes<trigger::TriggerEvent>(cfg.getUntrackedParameter<edm::InputTag>("triggerEvent"))),
40  beamSpotToken_(consumes<reco::BeamSpot>(
41  cfg.getUntrackedParameter<edm::InputTag>("offlineBeamSpot", edm::InputTag("offlineBeamSpot")))),
42  muonToken_(consumes<edm::View<reco::Muon> >(cfg.getUntrackedParameter<edm::InputTag>("muons"))),
43  trackToken_(consumes<reco::TrackCollection>(cfg.getUntrackedParameter<edm::InputTag>("tracks"))),
44  caloTowerToken_(consumes<CaloTowerCollection>(cfg.getUntrackedParameter<edm::InputTag>("calotower"))),
45  metToken_(consumes<edm::View<reco::MET> >(cfg.getUntrackedParameter<edm::InputTag>("metTag"))),
46  metIncludesMuons_(cfg.getUntrackedParameter<bool>("METIncludesMuons")),
47  // Main cuts
48  // massMin_(cfg.getUntrackedParameter<double>("MtMin", 20.)),
49  // massMax_(cfg.getUntrackedParameter<double>("MtMax", 2000.))
50  // hltPath_(cfg.getUntrackedParameter<std::string> ("hltPath")) ,
51  // L3FilterName_(cfg.getUntrackedParameter<std::string>
52  // ("L3FilterName")),
53  ptMuCut_(cfg.getUntrackedParameter<double>("ptMuCut")),
54  etaMuCut_(cfg.getUntrackedParameter<double>("etaMuCut")),
55  isRelativeIso_(cfg.getUntrackedParameter<bool>("IsRelativeIso")),
56  isCombinedIso_(cfg.getUntrackedParameter<bool>("IsCombinedIso")),
57  isoCut03_(cfg.getUntrackedParameter<double>("IsoCut03")),
58  // deltaRTrk_(cfg.getUntrackedParameter<double>("deltaRTrk")),
59  ptThreshold_(cfg.getUntrackedParameter<double>("ptThreshold")),
60  // deltaRVetoTrk_(cfg.getUntrackedParameter<double>("deltaRVetoTrk")),
61  maxDPtRel_(cfg.getUntrackedParameter<double>("maxDPtRel")),
62  maxDeltaR_(cfg.getUntrackedParameter<double>("maxDeltaR")),
63  mtMin_(cfg.getUntrackedParameter<double>("mtMin")),
64  mtMax_(cfg.getUntrackedParameter<double>("mtMax")),
65  acopCut_(cfg.getUntrackedParameter<double>("acopCut")),
66  dxyCut_(cfg.getUntrackedParameter<double>("DxyCut")) {
67  // just to initialize
68  isValidHltConfig_ = false;
69 }
edm::EDGetTokenT< edm::View< reco::Muon > > muonToken_
edm::EDGetTokenT< edm::View< reco::MET > > metToken_
edm::EDGetTokenT< edm::TriggerResults > trigToken_
edm::EDGetTokenT< CaloTowerCollection > caloTowerToken_
edm::EDGetTokenT< reco::TrackCollection > trackToken_
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
edm::EDGetTokenT< trigger::TriggerEvent > trigEvToken_

Member Function Documentation

◆ analyze()

void EwkMuLumiMonitorDQM::analyze ( const edm::Event ev,
const edm::EventSetup  
)
overridevirtual

number of prescale sets available

Reimplemented from DQMEDAnalyzer.

Definition at line 185 of file EwkMuLumiMonitorDQM.cc.

References acopCut_, beamSpotToken_, ewkMuLumiMonitorDQM_cfi::calotower, caloTowerToken_, reco::LeafCandidate::charge(), reco::TrackBase::charge(), PVValHelper::dxy, reco::TrackBase::dxy(), dxyCut_, edm::InputTag::encode(), PVValHelper::eta, reco::TrackBase::eta(), etaMuCut_, makeMEIFBenchmarkPlots::ev, f, dqm::impl::MonitorElement::Fill(), trigger::TriggerEvent::filterKeys(), trigger::TriggerEvent::filterTag(), trigger::TriggerEvent::getObjects(), highMass1HLT_, highMass2HLT_, highMassGlbSta_, highMassGlbTrk_, highMassIsBothGlbTrkThanW_, highMassNotIso_, hltConfigProvider_, mps_fire::i, IsMuMatchedToHLTMu(), isoCut03_, isW_, isZGlbSta_, isZGlbTrk_, isZGolden1HLT_, isZGolden2HLT_, isZGoldenNoIso_, dqmiolumiharvest::j, dqmdumpme::k, LogTrace, M_PI, EgHLTOffHistBins_cfi::mass, mass1HLT_, mass2HLT_, massGlbSta_, massGlbTrk_, massIsBothGlbTrkThanW_, massNotIso_, maxDeltaR_, maxDPtRel_, BTaggingMonitor_cfi::met, susyDQM_cfi::metCollection, metIncludesMuons_, metToken_, HLTConfigProvider::moduleLabels(), mtMax_, amptDefaultParameters_cff::mu, muIso(), DiMuonV_cfg::muons, muonToken_, dqmiodumpmetadata::n, n1hlt, n2hlt, nall, Skims_PA_cff::name, nEvWithHighPtMu, nGlbSta, nGlbTrk, nhlt, niso, nNotIso, nsel, nTMass, nW, MillePedeFileConverter_cfg::out, AlCaHLTBitMon_ParallelJobs::p, reco::TrackBase::p(), reco::LeafCandidate::p4(), reco::LeafCandidate::phi(), reco::BeamSpot::position(), HLTConfigProvider::prescaleSize(), HLTConfigProvider::prescaleValue(), DiDispStaMuonMonitor_cfi::pt, reco::LeafCandidate::pt(), reco::TrackBase::pt(), HLT_2024v14_cff::pt2, ptMuCut_, reco::LeafCandidate::px(), reco::TrackBase::px(), reco::LeafCandidate::py(), reco::TrackBase::py(), reco::TrackBase::pz(), alignCSCRings::s, findQualityFiles::size, trigger::TriggerEvent::sizeFilters(), mathSSE::sqrt(), contentValuesCheck::ss, AlCaHLTBitMon_QueryRunRegistry::string, tkIso(), TMass_, DiMuonV_cfg::tracks, trackToken_, ClusterTask_cfi::trig, trigEvToken_, HLTConfigProvider::triggerIndex(), L1TEGammaOffline_cfi::triggerNames, HLTConfigProvider::triggerNames(), triggerResults, trigToken_, and findQualityFiles::v.

185  {
186  nall++;
187  bool hlt_sel = false;
188  double iso1 = -1;
189  double iso2 = -1;
190  bool isMu1Iso = false;
191  bool isMu2Iso = false;
192  bool singleTrigFlag1 = false;
193  bool singleTrigFlag2 = false;
194  isZGolden1HLT_ = false;
195  isZGolden2HLT_ = false;
196  isZGoldenNoIso_ = false;
197  isZGlbSta_ = false;
198  isZGlbTrk_ = false;
199  isW_ = false;
200  // Trigger
201  bool trigger_fired = false;
202 
204  if (!ev.getByToken(trigToken_, triggerResults)) {
205  // LogWarning("") << ">>> TRIGGER collection does not exist !!!";
206  return;
207  }
208 
209  ev.getByToken(trigToken_, triggerResults);
210  /*
211  const edm::TriggerNames & trigNames = ev.triggerNames(*triggerResults);
212 
213 
214  for (size_t i=0; i<triggerResults->size(); i++) {
215  std::string trigName = trigNames.triggerName(i);
216  //std::cout << " trigName == " << trigName << std::endl;
217  if ( trigName == hltPath_ && triggerResults->accept(i)) {
218  trigger_fired = true;
219  hlt_sel=true;
220  nhlt++;
221  }
222  }
223  */
224  // see the trigger single muon which are present
225  string lowestMuonUnprescaledTrig = "";
226  bool lowestMuonUnprescaledTrigFound = false;
227  const std::vector<std::string>& triggerNames = hltConfigProvider_.triggerNames();
228  for (size_t ts = 0; ts < triggerNames.size(); ts++) {
229  string trig = triggerNames[ts];
230  size_t f = trig.find("HLT_Mu");
231  if ((f != std::string::npos)) {
232  // std::cout << "single muon trigger present: " << trig << std::endl;
233  // See if the trigger is prescaled;
235  bool prescaled = false;
236  const unsigned int prescaleSize = hltConfigProvider_.prescaleSize();
237  for (unsigned int ps = 0; ps < prescaleSize; ps++) {
238  if (hltConfigProvider_.prescaleValue<double>(ps, trig) != 1)
239  prescaled = true;
240  }
241  if (!prescaled) {
242  // looking now for the lowest hlt path not prescaled, with name of the
243  // form HLT_MuX or HLTMuX_vY
244  for (unsigned int n = 9; n < 100; n++) {
245  string lowestTrig = "HLT_Mu";
246  string lowestTrigv0 = "copy";
247  std::stringstream out;
248  out << n;
249  std::string s = out.str();
250  lowestTrig.append(s);
251  lowestTrigv0 = lowestTrig;
252  for (unsigned int v = 1; v < 10; v++) {
253  lowestTrig.append("_v");
254  std::stringstream oout;
255  oout << v;
256  std::string ss = oout.str();
257  lowestTrig.append(ss);
258  if (trig == lowestTrig)
259  lowestMuonUnprescaledTrig = trig;
260  if (trig == lowestTrig)
261  lowestMuonUnprescaledTrigFound = true;
262  if (trig == lowestTrig)
263  break;
264  }
265  if (lowestMuonUnprescaledTrigFound)
266  break;
267 
268  lowestTrig = lowestTrigv0;
269  if (trig == lowestTrig)
270  lowestMuonUnprescaledTrig = trig;
271  // if (trig==lowestTrig) {std::cout << " before break, lowestTrig
272  // lowest single muon trigger present unprescaled: " << lowestTrig <<
273  // std::endl; }
274  if (trig == lowestTrig)
275  lowestMuonUnprescaledTrigFound = true;
276  if (trig == lowestTrig)
277  break;
278  }
279  if (lowestMuonUnprescaledTrigFound)
280  break;
281  }
282  }
283  }
284  // std::cout << "after break, lowest single muon trigger present unprescaled:
285  // " << lowestMuonUnprescaledTrig << std::endl;
286  unsigned int triggerIndex; // index of trigger path
287 
288  // See if event passed trigger paths
289  std::string hltPath_ = lowestMuonUnprescaledTrig;
290 
291  triggerIndex = hltConfigProvider_.triggerIndex(hltPath_);
292  if (triggerIndex < triggerResults->size())
293  trigger_fired = triggerResults->accept(triggerIndex);
294  std::string L3FilterName_ = "";
295  if (trigger_fired) {
296  const std::vector<std::string>& moduleLabs = hltConfigProvider_.moduleLabels(hltPath_);
297  /*for (size_t k =0; k < moduleLabs.size()-1 ; k++){
298  std::cout << "moduleLabs[" << k << "] == " << moduleLabs[k] << std::endl;
299  }
300  */
301  // the l3 filter name is just the last module....
302  size_t moduleLabsSizeMinus2 = moduleLabs.size() - 2;
303  // std::cout<<"moduleLabs[" << moduleLabsSizeMinus2 << "]== "<<
304  // moduleLabs[moduleLabsSizeMinus2] << std::endl;
305 
306  L3FilterName_ = moduleLabs[moduleLabsSizeMinus2];
307  }
308 
309  edm::Handle<trigger::TriggerEvent> handleTriggerEvent;
310  LogTrace("") << ">>> Trigger bit: " << trigger_fired << " (" << hltPath_ << ")";
311  if (!ev.getByToken(trigEvToken_, handleTriggerEvent)) {
312  // LogWarning( "errorTriggerEventValid" ) << "trigger::TriggerEvent product
313  // with InputTag " << trigEv_.encode() << " not in event";
314  return;
315  }
316  ev.getByToken(trigEvToken_, handleTriggerEvent);
317  const trigger::TriggerObjectCollection& toc(handleTriggerEvent->getObjects());
318  std::vector<reco::Particle> HLTMuMatched;
319  for (size_t ia = 0; ia < handleTriggerEvent->sizeFilters(); ++ia) {
320  std::string fullname = handleTriggerEvent->filterTag(ia).encode();
321  // std::cout<< "fullname::== " << fullname<< std::endl;
323  size_t p = fullname.find_first_of(':');
324  if (p != std::string::npos) {
325  name = fullname.substr(0, p);
326  } else {
327  name = fullname;
328  }
329  if (!toc.empty()) {
330  const trigger::Keys& k = handleTriggerEvent->filterKeys(ia);
331  for (trigger::Keys::const_iterator ki = k.begin(); ki != k.end(); ++ki) {
332  // looking at all the single muon l3 trigger present, for example
333  // hltSingleMu15L3Filtered15.....
334  if (name == L3FilterName_) {
335  // trigger_fired = true;
336  hlt_sel = true;
337  nhlt++;
338  HLTMuMatched.push_back(toc[*ki].particle());
339  }
340  }
341  }
342  }
343 
344  // Beam spot
345  Handle<reco::BeamSpot> beamSpotHandle;
346  if (!ev.getByToken(beamSpotToken_, beamSpotHandle)) {
347  // LogWarning("") << ">>> No beam spot found !!!";
348  return;
349  }
350 
351  // looping on muon....
353  if (!ev.getByToken(muonToken_, muons)) {
354  // LogError("") << ">>> muon collection does not exist !!!";
355  return;
356  }
357 
358  ev.getByToken(muonToken_, muons);
359  // saving only muons with pt> ptMuCut and eta<etaMuCut, and dxy<dxyCut
360  std::vector<reco::Muon> highPtGlbMuons;
361  std::vector<reco::Muon> highPtStaMuons;
362 
363  for (size_t i = 0; i < muons->size(); i++) {
364  const reco::Muon& mu = muons->at(i);
365  double pt = mu.pt();
366  double eta = mu.eta();
367  if (pt > ptMuCut_ && fabs(eta) < etaMuCut_) {
368  if (mu.isGlobalMuon()) {
369  // check the dxy....
370  double dxy = mu.innerTrack()->dxy(beamSpotHandle->position());
371  if (fabs(dxy) > dxyCut_)
372  continue;
373  highPtGlbMuons.push_back(mu);
374  }
375  if (mu.isGlobalMuon())
376  continue;
377  // if is not, look if it is a standalone....
378  if (mu.isStandAloneMuon())
379  highPtStaMuons.push_back(mu);
380  nEvWithHighPtMu++;
381  }
382  }
383  size_t nHighPtGlbMu = highPtGlbMuons.size();
384  size_t nHighPtStaMu = highPtStaMuons.size();
385  if (hlt_sel && (nHighPtGlbMu > 0)) {
386  // loop on high pt muons if there's at least two with opposite charge build
387  // a Z, more then one z candidate is foreseen.........
388  // stop the loop after 10 cicles....
389  (nHighPtGlbMu > 10) ? nHighPtGlbMu = 10 : 1;
390  // Z selection
391  if (nHighPtGlbMu > 1) {
392  for (unsigned int i = 0; i < nHighPtGlbMu; i++) {
393  reco::Muon muon1 = highPtGlbMuons[i];
394  const math::XYZTLorentzVector& mu1(muon1.p4());
395  // double pt1= muon1.pt();
396  for (unsigned int j = i + 1; j < nHighPtGlbMu; ++j) {
397  reco::Muon muon2 = highPtGlbMuons[j];
398  const math::XYZTLorentzVector& mu2(muon2.p4());
399  // double pt2= muon2.pt();
400  if (muon1.charge() == muon2.charge())
401  continue;
402  math::XYZTLorentzVector pair = mu1 + mu2;
403  double mass = pair.M();
404  // checking isolation and hlt maching
405  iso1 = muIso(muon1);
406  iso2 = muIso(muon2);
407  isMu1Iso = (iso1 < isoCut03_);
408  isMu2Iso = (iso2 < isoCut03_);
409  singleTrigFlag1 = IsMuMatchedToHLTMu(muon1, HLTMuMatched, maxDeltaR_, maxDPtRel_);
410  singleTrigFlag2 = IsMuMatchedToHLTMu(muon2, HLTMuMatched, maxDeltaR_, maxDPtRel_);
411  if (singleTrigFlag1 && singleTrigFlag2)
412  isZGolden2HLT_ = true;
413  if ((singleTrigFlag1 && !singleTrigFlag2) || (!singleTrigFlag1 && singleTrigFlag2))
414  isZGolden1HLT_ = true;
415  // Z Golden passing all criteria, with 2 or 1 muon matched to an HLT
416  // muon. Using the two cathegories as a control sample for the HLT
417  // matching efficiency
419  // a Z golden has been found, let's remove the two muons from the
420  // list, dome for avoiding resolution effect enter muons in the
421  // standalone and tracker collections.........
422  highPtGlbMuons.erase(highPtGlbMuons.begin() + i);
423  highPtGlbMuons.erase(highPtGlbMuons.begin() + j);
424  // and updating the number of high pt muons....
425  nHighPtGlbMu = highPtGlbMuons.size();
426 
427  if (isMu1Iso && isMu2Iso) {
428  niso++;
429  if (isZGolden2HLT_) {
430  n2hlt++;
431  mass2HLT_->Fill(mass);
433  /*
434  if (pt1 > pt2) {
435  highest_mupt2HLT_ -> Fill (pt1);
436  lowest_mupt2HLT_ -> Fill (pt2);
437  } else {
438  highest_mupt2HLT_ -> Fill (pt2);
439  lowest_mupt2HLT_ -> Fill (pt1);
440  }
441  */
442  }
443  if (isZGolden1HLT_) {
444  n1hlt++;
445  mass1HLT_->Fill(mass);
447  /*
448  if (pt1 >pt2) {
449  highest_mupt1HLT_ -> Fill (pt1);
450  lowest_mupt1HLT_ -> Fill (pt2);
451  } else {
452  highest_mupt1HLT_ -> Fill (pt2);
453  lowest_mupt1HLT_ -> Fill (pt1);
454  }
455  */
456  }
457  } else {
458  // ZGlbGlb when at least one of the two muon is not isolated and
459  // at least one HLT matched, used as control sample for the
460  // isolation efficiency
461  // filling events with one muon not isolated and both hlt mathced
462  if (((isMu1Iso && !isMu2Iso) || (!isMu1Iso && isMu2Iso)) && (isZGolden2HLT_ && isZGolden1HLT_)) {
463  isZGoldenNoIso_ = true;
464  nNotIso++;
467  }
468  /*
469  if (pt1 > pt2) {
470  highest_muptNotIso_ -> Fill (pt1);
471  lowest_muptNotIso_ -> Fill (pt2);
472  } else {
473  highest_muptNotIso_ -> Fill (pt2);
474  lowest_muptNotIso_ -> Fill (pt1);
475  }
476  */
477  }
478  }
479  }
480  }
481  }
482  // W->MuNu selection (if at least one muon has been selected)
483  // looking for a W if a Z is not found.... let's think if we prefer to
484  // exclude zMuMuNotIso or zMuSta....
485  if (!(isZGolden2HLT_ || isZGolden1HLT_)) {
487  if (!ev.getByToken(metToken_, metCollection)) {
488  // LogError("") << ">>> MET collection does not exist !!!";
489  return;
490  }
491  const MET& met = metCollection->at(0);
492  nW = 0;
493  for (unsigned int i = 0; i < nHighPtGlbMu; i++) {
494  reco::Muon muon1 = highPtGlbMuons[i];
495  /*
496  quality cut not implemented
497  Quality Cuts double dxy =
498 gm->dxy(beamSpotHandle->position());
499  Cut in 0.2 double trackerHits =
500 gm->hitPattern().numberOfValidTrackerHits();
501  Cut in 11 bool quality = fabs(dxy)<dxyCut_ &&
502 muon::isGoodMuon(mu,muon::GlobalMuonPromptTight) && trackerHits>=trackerHitsCut_
503 && mu.isTrackerMuon() ;
504 if (!quality) continue;
505  */
506  // isolation cut and hlt maching
507  iso1 = muIso(muon1);
508  isMu1Iso = (iso1 < isoCut03_);
509  if (!isMu1Iso)
510  continue;
511  // checking if muon is matched to any HLT muon....
512  singleTrigFlag1 = IsMuMatchedToHLTMu(muon1, HLTMuMatched, maxDeltaR_, maxDPtRel_);
513  if (!singleTrigFlag1)
514  continue;
515  // std::cout << " is GlobMu macthecd to HLT: " << singleTrigFlag1 <<
516  // std::endl;
517  // MT cuts
518  double met_px = met.px();
519  double met_py = met.py();
520 
521  if (!metIncludesMuons_) {
522  for (unsigned int i = 0; i < nHighPtGlbMu; i++) {
523  reco::Muon muon1 = highPtGlbMuons[i];
524  met_px -= muon1.px();
525  met_py -= muon1.py();
526  }
527  }
528  double met_et = met.pt(); // sqrt(met_px*met_px+met_py*met_py);
529  LogTrace("") << ">>> MET, MET_px, MET_py: " << met_et << ", " << met_px << ", " << met_py << " [GeV]";
530  double w_et = met_et + muon1.pt();
531  double w_px = met_px + muon1.px();
532  double w_py = met_py + muon1.py();
533  double massT = w_et * w_et - w_px * w_px - w_py * w_py;
534  massT = (massT > 0) ? sqrt(massT) : 0;
535  // Acoplanarity cuts
536  Geom::Phi<double> deltaphi(muon1.phi() - atan2(met_py, met_px));
537  double acop = M_PI - fabs(deltaphi.value());
538  // std::cout << " is acp of W candidate less then cut: " << (acop<
539  // acopCut_) << std::endl;
540  if (acop > acopCut_)
541  continue; // Cut in 2.0
542  TMass_->Fill(massT);
543  if (massT < mtMin_ || massT > mtMax_)
544  continue; // Cut in (50,200) GeV
545  // we give the number of W only in the tMass selected but we have a look
546  // at mass tails to check the QCD background
547  isW_ = true;
548  nW++;
549  nTMass++;
550  }
551  }
552  // if a zGlobal is not selected, look at the dimuonGlobalOneStandAlone and
553  // dimuonGlobalOneTrack...., used as a control sample for the tracking
554  // efficiency and muon system efficiency
556  for (unsigned int i = 0; i < nHighPtGlbMu; ++i) {
557  reco::Muon glbMuon = highPtGlbMuons[i];
558  const math::XYZTLorentzVector& mu1(glbMuon.p4());
559  // double pt1= glbMuon.pt();
560  // checking that the global muon is hlt matched otherwise skip the event
561  singleTrigFlag1 = IsMuMatchedToHLTMu(glbMuon, HLTMuMatched, maxDeltaR_, maxDPtRel_);
562  if (!singleTrigFlag1)
563  continue;
564  // checking that the global muon is isolated matched otherwise skip the
565  // event
566  iso1 = muIso(glbMuon);
567  isMu1Iso = (iso1 < isoCut03_);
568  if (!isMu1Iso)
569  continue;
570  // look at the standalone muon ....
571  // stop the loop after 10 cicles....
572  (nHighPtStaMu > 10) ? nHighPtStaMu = 10 : 1;
573  for (unsigned int j = 0; j < nHighPtStaMu; ++j) {
574  reco::Muon staMuon = highPtStaMuons[j];
575  const math::XYZTLorentzVector& mu2(staMuon.p4());
576  // double pt2= staMuon.pt();
577  if (glbMuon.charge() == staMuon.charge())
578  continue;
579  math::XYZTLorentzVector pair = mu1 + mu2;
580  double mass = pair.M();
581  iso2 = muIso(staMuon);
582  isMu2Iso = (iso2 < isoCut03_);
583  LogTrace("") << "\t... isolation value" << iso1 << ", isolated? " << isMu1Iso;
584  LogTrace("") << "\t... isolation value" << iso2 << ", isolated? " << isMu2Iso;
585  // requiring theat the global mu is mathed to the HLT and both are
586  // isolated
587  if (isMu2Iso) {
588  isZGlbSta_ = true;
589  nGlbSta++;
592  /*
593  if (pt1 > pt2) {
594  highest_muptGlbSta_ -> Fill (pt1);
595  lowest_muptGlbSta_ -> Fill (pt2);
596  } else {
597  highest_muptGlbSta_ -> Fill (pt2);
598  lowest_muptGlbSta_ -> Fill (pt1);
599  }
600  */
601  }
602  }
603  // look at the tracks....
605  if (!ev.getByToken(trackToken_, tracks)) {
606  // LogError("") << ">>> track collection does not exist !!!";
607  return;
608  }
609  ev.getByToken(trackToken_, tracks);
611  if (!ev.getByToken(caloTowerToken_, calotower)) {
612  // LogError("") << ">>> calotower collection does not exist !!!";
613  return;
614  }
615  ev.getByToken(caloTowerToken_, calotower);
616  // avoid to loop on more than 5000 trks
617  size_t nTrk = tracks->size();
618  (nTrk > 5000) ? nTrk = 5000 : 1;
619  for (unsigned int j = 0; j < nTrk; j++) {
620  const reco::Track& tk = tracks->at(j);
621  if (glbMuon.charge() == tk.charge())
622  continue;
623  double pt2 = tk.pt();
624  double eta = tk.eta();
625  double dxy = tk.dxy(beamSpotHandle->position());
626  if (pt2 < ptMuCut_ || fabs(eta) > etaMuCut_ || fabs(dxy) > dxyCut_)
627  continue;
628  // assuming that the track is a mu....
629  math::XYZTLorentzVector mu2(tk.px(), tk.py(), tk.pz(), sqrt((tk.p() * tk.p()) + (0.10566 * 0.10566)));
630  math::XYZTLorentzVector pair = mu1 + mu2;
631  double mass = pair.M();
632  // now requiring that the tracks is isolated.......
633  iso2 = tkIso(tk, tracks, calotower);
634  isMu2Iso = (iso2 < isoCut03_);
635  // std::cout << "found a track with rel/comb iso: " << iso2
636  //<< std::endl;
637  if (isMu2Iso) {
638  isZGlbTrk_ = true;
639  nGlbTrk++;
642  if (!isW_)
643  continue;
646  /*
647  if (pt1 > pt2) {
648  highest_muptGlbTrk_ -> Fill (pt1);
649  lowest_muptGlbTrk_ -> Fill (pt2);
650  } else {
651  highest_muptGlbTrk_ -> Fill (pt2);
652  lowest_muptGlbTrk_ -> Fill (pt1);
653  }
654  */
655  }
656  }
657  }
658  }
659  }
660  if ((hlt_sel || isZGolden2HLT_ || isZGolden1HLT_ || isZGoldenNoIso_ || isZGlbSta_ || isZGlbTrk_ || isW_)) {
661  nsel++;
662  LogTrace("") << ">>>> Event ACCEPTED";
663  } else {
664  LogTrace("") << ">>>> Event REJECTED";
665  }
666  return;
667 }
size
Write out results.
MonitorElement * highMass1HLT_
const Keys & filterKeys(trigger::size_type index) const
Definition: TriggerEvent.h:119
edm::EDGetTokenT< edm::View< reco::Muon > > muonToken_
unsigned int prescaleSize() const
double pt() const final
transverse momentum
const Point & position() const
position
Definition: BeamSpot.h:59
std::string encode() const
Definition: InputTag.cc:159
double px() const
x coordinate of momentum vector
Definition: TrackBase.h:640
double p() const
momentum vector magnitude
Definition: TrackBase.h:631
trigger::size_type sizeFilters() const
Definition: TriggerEvent.h:147
MonitorElement * highMassIsBothGlbTrkThanW_
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:643
MonitorElement * highMassGlbTrk_
edm::EDGetTokenT< edm::View< reco::MET > > metToken_
MonitorElement * massNotIso_
muons
the two sets of parameters below are mutually exclusive, depending if RECO or ALCARECO is used the us...
Definition: DiMuonV_cfg.py:214
MonitorElement * highMassGlbSta_
edm::EDGetTokenT< edm::TriggerResults > trigToken_
const edm::InputTag filterTag(trigger::size_type index) const
Definition: TriggerEvent.h:109
const LorentzVector & p4() const final
four-momentum Lorentz vector
#define LogTrace(id)
T prescaleValue(unsigned int set, const std::string &trigger) const
HLT prescale value in specific prescale set for a specific trigger path.
MonitorElement * mass1HLT_
void Fill(long long x)
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
double pt() const
track transverse momentum
Definition: TrackBase.h:637
double px() const final
x coordinate of momentum vector
int charge() const
track electric charge
Definition: TrackBase.h:596
MonitorElement * massIsBothGlbTrkThanW_
MonitorElement * massGlbTrk_
bool IsMuMatchedToHLTMu(const reco::Muon &, const std::vector< reco::Particle > &, double, double)
double tkIso(const reco::Track &, edm::Handle< reco::TrackCollection >, edm::Handle< CaloTowerCollection >)
Definition: MET.h:41
T sqrt(T t)
Definition: SSEVec.h:23
const std::vector< std::string > & moduleLabels(unsigned int trigger) const
label(s) of module(s) on a trigger path
edm::EDGetTokenT< CaloTowerCollection > caloTowerToken_
MonitorElement * highMassNotIso_
const TriggerObjectCollection & getObjects() const
Definition: TriggerEvent.h:102
double f[11][100]
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 to size-1)
edm::EDGetTokenT< reco::TrackCollection > trackToken_
static std::string const triggerResults
Definition: EdmProvDump.cc:47
double py() const final
y coordinate of momentum vector
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
#define M_PI
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
Definition: TriggerObject.h:75
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652
MonitorElement * massGlbSta_
double muIso(const reco::Muon &)
std::vector< size_type > Keys
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:646
const std::vector< std::string > & triggerNames() const
names of trigger paths
MonitorElement * TMass_
HLTConfigProvider hltConfigProvider_
MonitorElement * mass2HLT_
edm::EDGetTokenT< trigger::TriggerEvent > trigEvToken_
MonitorElement * highMass2HLT_
double phi() const final
momentum azimuthal angle
Definition: Phi.h:52
int charge() const final
electric charge
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
Definition: TrackBase.h:608

◆ bookHistograms()

void EwkMuLumiMonitorDQM::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  ,
edm::EventSetup const &   
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 95 of file EwkMuLumiMonitorDQM.cc.

References dqm::implementation::IBooker::book1D(), highMass1HLT_, highMass2HLT_, highMassGlbSta_, highMassGlbTrk_, highMassIsBothGlbTrkThanW_, highMassNotIso_, mass1HLT_, mass2HLT_, massGlbSta_, massGlbTrk_, massIsBothGlbTrkThanW_, massNotIso_, dqm::implementation::NavigatorBase::setCurrentFolder(), and TMass_.

95  {
96  ibooker.setCurrentFolder("Physics/EwkMuLumiMonitorDQM");
97 
98  mass2HLT_ = ibooker.book1D("Z_2HLT_MASS", "Z mass [GeV/c^{2}]", 200, 0., 200.);
99  mass1HLT_ = ibooker.book1D("Z_1HLT_MASS", "Z mass [GeV/c^{2}]", 200, 0., 200.);
100  massNotIso_ = ibooker.book1D("Z_NOTISO_MASS", "Z mass [GeV/c^{2}]", 200, 0., 200.);
101  massGlbSta_ = ibooker.book1D("Z_GLBSTA_MASS", "Z mass [GeV/c^{2}]", 200, 0., 200.);
102  massGlbTrk_ = ibooker.book1D("Z_GLBTRK_MASS", "Z mass [GeV/c^{2}]", 200, 0., 200.);
103  massIsBothGlbTrkThanW_ = ibooker.book1D("Z_ISBOTHGLBTRKTHANW_MASS", "Z mass [GeV/c^{2}]", 200, 0., 200.);
104 
105  highMass2HLT_ = ibooker.book1D("Z_2HLT_HIGHMASS", "Z high mass [GeV/c^{2}]", 2000, 0., 2000.);
106  highMass1HLT_ = ibooker.book1D("Z_1HLT_HIGHMASS", "Z high mass [GeV/c^{2}]", 2000, 0., 2000.);
107  highMassNotIso_ = ibooker.book1D("Z_NOTISO_HIGHMASS", "Z high mass [GeV/c^{2}]", 2000, 0., 2000.);
108  highMassGlbSta_ = ibooker.book1D("Z_GLBSTA_HIGHMASS", "Z high mass [GeV/c^{2}]", 2000, 0., 2000.);
109  highMassGlbTrk_ = ibooker.book1D("Z_GLBTRK_HIGHMASS", "Z high mass [GeV/c^{2}]", 2000, 0., 2000.);
111  ibooker.book1D("Z_ISBOTHGLBTRKTHANW_HIGHMASS", "Z high mass [GeV/c^{2}]", 2000, 0., 2000.);
112 
113  TMass_ = ibooker.book1D("TMASS", "Transverse mass [GeV]", 300, 0., 300.);
114 }
MonitorElement * highMass1HLT_
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
MonitorElement * highMassIsBothGlbTrkThanW_
MonitorElement * highMassGlbTrk_
MonitorElement * massNotIso_
MonitorElement * highMassGlbSta_
MonitorElement * mass1HLT_
MonitorElement * massIsBothGlbTrkThanW_
MonitorElement * massGlbTrk_
MonitorElement * highMassNotIso_
MonitorElement * massGlbSta_
MonitorElement * TMass_
MonitorElement * mass2HLT_
MonitorElement * highMass2HLT_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98

◆ dqmBeginRun()

void EwkMuLumiMonitorDQM::dqmBeginRun ( const edm::Run r,
const edm::EventSetup iSetup 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 71 of file EwkMuLumiMonitorDQM.cc.

References hltConfigProvider_, HLTConfigProvider::init(), isValidHltConfig_, n1hlt, n2hlt, nall, nEvWithHighPtMu, nGlbSta, nGlbTrk, nhlt, nInKinRange, niso, nNotIso, nsel, nTMass, nW, edm::InputTag::process(), alignCSCRings::r, and trigTag_.

71  {
72  nall = 0;
73  nEvWithHighPtMu = 0;
74  nInKinRange = 0;
75  nsel = 0;
76  niso = 0;
77  nhlt = 0;
78  n1hlt = 0;
79  n2hlt = 0;
80  nNotIso = 0;
81  nGlbSta = 0;
82  nGlbTrk = 0;
83  nTMass = 0;
84  nW = 0;
85 
86  // passed as parameter to HLTConfigProvider::init(), not yet used
87  bool isConfigChanged = false;
88 
89  // isValidHltConfig_ used to short-circuit analyze() in case of problems
90  isValidHltConfig_ = hltConfigProvider_.init(r, iSetup, trigTag_.process(), isConfigChanged);
91  // std::cout << "hlt config trigger is valid??" << isValidHltConfig_ <<
92  // std::endl;
93 }
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d&#39;tor
HLTConfigProvider hltConfigProvider_
std::string const & process() const
Definition: InputTag.h:40

◆ init_histograms()

void EwkMuLumiMonitorDQM::init_histograms ( )

◆ IsMuMatchedToHLTMu()

bool EwkMuLumiMonitorDQM::IsMuMatchedToHLTMu ( const reco::Muon mu,
const std::vector< reco::Particle > &  HLTMu,
double  DR,
double  DPtRel 
)

Definition at line 169 of file EwkMuLumiMonitorDQM.cc.

References PbPb_ZMuSkimMuonDPG_cff::deltaR, ChannelAssignment_cfi::DR, dqmdumpme::k, amptDefaultParameters_cff::mu, nJettinessAdder_cfi::nPass, and DiDispStaMuonMonitor_cfi::pt.

Referenced by analyze().

172  {
173  size_t dim = HLTMu.size();
174  size_t nPass = 0;
175  if (dim == 0)
176  return false;
177  for (size_t k = 0; k < dim; k++) {
178  if ((deltaR(HLTMu[k], mu) < DR) && (fabs(HLTMu[k].pt() - mu.pt()) / HLTMu[k].pt() < DPtRel)) {
179  nPass++;
180  }
181  }
182  return (nPass > 0);
183 }

◆ muIso()

double EwkMuLumiMonitorDQM::muIso ( const reco::Muon mu)

Definition at line 116 of file EwkMuLumiMonitorDQM.cc.

References isCombinedIso_, isRelativeIso_, and amptDefaultParameters_cff::mu.

Referenced by analyze().

116  {
117  double isovar = mu.isolationR03().sumPt;
118  if (isCombinedIso_) {
119  isovar += mu.isolationR03().emEt;
120  isovar += mu.isolationR03().hadEt;
121  }
122  if (isRelativeIso_)
123  isovar /= mu.pt();
124  return isovar;
125 }

◆ tkIso()

double EwkMuLumiMonitorDQM::tkIso ( const reco::Track tk,
edm::Handle< reco::TrackCollection tracks,
edm::Handle< CaloTowerCollection calotower 
)

Definition at line 127 of file EwkMuLumiMonitorDQM.cc.

References ewkMuLumiMonitorDQM_cfi::calotower, PbPb_ZMuSkimMuonDPG_cff::deltaR, HGC3DClusterGenMatchSelector_cfi::dR, PVValHelper::dz, reco::TrackBase::eta(), mps_fire::i, isCombinedIso_, isRelativeIso_, ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, reco::Track::outerEta(), reco::Track::outerPhi(), reco::TrackBase::phi(), reco::TrackBase::pt(), ptThreshold_, mathSSE::sqrt(), DiMuonV_cfg::tracks, reco::TrackBase::vx(), reco::TrackBase::vy(), and reco::TrackBase::vz().

Referenced by analyze().

129  {
130  double ptSum = 0;
131  for (size_t i = 0; i < tracks->size(); ++i) {
132  const reco::Track& elem = tracks->at(i);
133  double elemPt = elem.pt();
134  // same parameter used for muIsolation: dR [0.01, IsoCut03_], |dZ|<0.2,
135  // |d_r(xy)|<0.1
136  double elemVx = elem.vx();
137  double elemVy = elem.vy();
138  double elemD0 = sqrt(elemVx * elemVx + elemVy * elemVy);
139  if (elemD0 > 0.2)
140  continue;
141  double dz = fabs(elem.vz() - tk.vz());
142  if (dz > 0.1)
143  continue;
144  // evaluate only for tracks with pt>ptTreshold
145  if (elemPt < ptThreshold_)
146  continue;
147  double dR = deltaR(elem.eta(), elem.phi(), tk.eta(), tk.phi());
148  // isolation in a cone with dR=0.3, and vetoing the track itself
149  if ((dR < 0.01) || (dR > 0.3))
150  continue;
151  ptSum += elemPt;
152  }
153  if (isCombinedIso_) {
154  // loop on clusters....
155  for (CaloTowerCollection::const_iterator it = calotower->begin(); it != calotower->end(); ++it) {
156  double dR = deltaR(it->eta(), it->phi(), tk.outerEta(), tk.outerPhi());
157  // veto value is 0.1 for towers....
158  if ((dR < 0.1) || (dR > 0.3))
159  continue;
160  ptSum += it->emEnergy();
161  ptSum += it->hadEnergy();
162  }
163  }
164  if (isRelativeIso_)
165  ptSum /= tk.pt();
166  return ptSum;
167 }
double vx() const
x coordinate of the reference point on track
Definition: TrackBase.h:655
double outerEta() const
pseudorapidity of the momentum vector at the outermost hit position
Definition: Track.h:127
std::vector< CaloTower >::const_iterator const_iterator
double pt() const
track transverse momentum
Definition: TrackBase.h:637
double vz() const
z coordinate of the reference point on track
Definition: TrackBase.h:661
T sqrt(T t)
Definition: SSEVec.h:23
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:649
double outerPhi() const
azimuthal angle of the momentum vector at the outermost hit position
Definition: Track.h:124
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652
double vy() const
y coordinate of the reference point on track
Definition: TrackBase.h:658

Member Data Documentation

◆ acopCut_

double EwkMuLumiMonitorDQM::acopCut_
private

Definition at line 77 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ beamSpotToken_

edm::EDGetTokenT<reco::BeamSpot> EwkMuLumiMonitorDQM::beamSpotToken_
private

Definition at line 53 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ caloTowerToken_

edm::EDGetTokenT<CaloTowerCollection> EwkMuLumiMonitorDQM::caloTowerToken_
private

Definition at line 56 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ deltaRTrk_

double EwkMuLumiMonitorDQM::deltaRTrk_
private

Definition at line 70 of file EwkMuLumiMonitorDQM.h.

◆ deltaRVetoTrk_

double EwkMuLumiMonitorDQM::deltaRVetoTrk_
private

Definition at line 72 of file EwkMuLumiMonitorDQM.h.

◆ dxyCut_

double EwkMuLumiMonitorDQM::dxyCut_
private

Definition at line 78 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ etaMuCut_

double EwkMuLumiMonitorDQM::etaMuCut_
private

Definition at line 64 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ highMass1HLT_

MonitorElement* EwkMuLumiMonitorDQM::highMass1HLT_
private

Definition at line 86 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and bookHistograms().

◆ highMass2HLT_

MonitorElement* EwkMuLumiMonitorDQM::highMass2HLT_
private

Definition at line 81 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and bookHistograms().

◆ highMassGlbSta_

MonitorElement* EwkMuLumiMonitorDQM::highMassGlbSta_
private

Definition at line 96 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and bookHistograms().

◆ highMassGlbTrk_

MonitorElement* EwkMuLumiMonitorDQM::highMassGlbTrk_
private

Definition at line 101 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and bookHistograms().

◆ highMassIsBothGlbTrkThanW_

MonitorElement* EwkMuLumiMonitorDQM::highMassIsBothGlbTrkThanW_
private

Definition at line 108 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and bookHistograms().

◆ highMassNotIso_

MonitorElement* EwkMuLumiMonitorDQM::highMassNotIso_
private

Definition at line 91 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and bookHistograms().

◆ hltConfigProvider_

HLTConfigProvider EwkMuLumiMonitorDQM::hltConfigProvider_
private

Definition at line 132 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and dqmBeginRun().

◆ isCombinedIso_

bool EwkMuLumiMonitorDQM::isCombinedIso_
private

Definition at line 67 of file EwkMuLumiMonitorDQM.h.

Referenced by muIso(), and tkIso().

◆ isoCut03_

double EwkMuLumiMonitorDQM::isoCut03_
private

Definition at line 68 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ isRelativeIso_

bool EwkMuLumiMonitorDQM::isRelativeIso_
private

Definition at line 66 of file EwkMuLumiMonitorDQM.h.

Referenced by muIso(), and tkIso().

◆ isValidHltConfig_

bool EwkMuLumiMonitorDQM::isValidHltConfig_
private

Definition at line 131 of file EwkMuLumiMonitorDQM.h.

Referenced by dqmBeginRun(), and EwkMuLumiMonitorDQM().

◆ isW_

bool EwkMuLumiMonitorDQM::isW_
private

Definition at line 129 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ isZGlbSta_

bool EwkMuLumiMonitorDQM::isZGlbSta_
private

Definition at line 127 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ isZGlbTrk_

bool EwkMuLumiMonitorDQM::isZGlbTrk_
private

Definition at line 128 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ isZGolden1HLT_

bool EwkMuLumiMonitorDQM::isZGolden1HLT_
private

Definition at line 124 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ isZGolden2HLT_

bool EwkMuLumiMonitorDQM::isZGolden2HLT_
private

Definition at line 125 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ isZGoldenNoIso_

bool EwkMuLumiMonitorDQM::isZGoldenNoIso_
private

Definition at line 126 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ mass1HLT_

MonitorElement* EwkMuLumiMonitorDQM::mass1HLT_
private

Definition at line 85 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and bookHistograms().

◆ mass2HLT_

MonitorElement* EwkMuLumiMonitorDQM::mass2HLT_
private

Definition at line 80 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and bookHistograms().

◆ massGlbSta_

MonitorElement* EwkMuLumiMonitorDQM::massGlbSta_
private

Definition at line 95 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and bookHistograms().

◆ massGlbTrk_

MonitorElement* EwkMuLumiMonitorDQM::massGlbTrk_
private

Definition at line 100 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and bookHistograms().

◆ massIsBothGlbTrkThanW_

MonitorElement* EwkMuLumiMonitorDQM::massIsBothGlbTrkThanW_
private

Definition at line 107 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and bookHistograms().

◆ massNotIso_

MonitorElement* EwkMuLumiMonitorDQM::massNotIso_
private

Definition at line 90 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and bookHistograms().

◆ maxDeltaR_

double EwkMuLumiMonitorDQM::maxDeltaR_
private

Definition at line 74 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ maxDPtRel_

double EwkMuLumiMonitorDQM::maxDPtRel_
private

Definition at line 73 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ metIncludesMuons_

bool EwkMuLumiMonitorDQM::metIncludesMuons_
private

Definition at line 58 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ metToken_

edm::EDGetTokenT<edm::View<reco::MET> > EwkMuLumiMonitorDQM::metToken_
private

Definition at line 57 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ mtMax_

double EwkMuLumiMonitorDQM::mtMax_
private

Definition at line 76 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ mtMin_

double EwkMuLumiMonitorDQM::mtMin_
private

Definition at line 75 of file EwkMuLumiMonitorDQM.h.

◆ muonToken_

edm::EDGetTokenT<edm::View<reco::Muon> > EwkMuLumiMonitorDQM::muonToken_
private

Definition at line 54 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ n1hlt

unsigned int EwkMuLumiMonitorDQM::n1hlt
private

Definition at line 116 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and dqmBeginRun().

◆ n2hlt

unsigned int EwkMuLumiMonitorDQM::n2hlt
private

Definition at line 117 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and dqmBeginRun().

◆ nall

unsigned int EwkMuLumiMonitorDQM::nall
private

Definition at line 110 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and dqmBeginRun().

◆ nEvWithHighPtMu

unsigned int EwkMuLumiMonitorDQM::nEvWithHighPtMu
private

Definition at line 111 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and dqmBeginRun().

◆ nGlbSta

unsigned int EwkMuLumiMonitorDQM::nGlbSta
private

Definition at line 119 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and dqmBeginRun().

◆ nGlbTrk

unsigned int EwkMuLumiMonitorDQM::nGlbTrk
private

Definition at line 120 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and dqmBeginRun().

◆ nhlt

unsigned int EwkMuLumiMonitorDQM::nhlt
private

Definition at line 115 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and dqmBeginRun().

◆ nInKinRange

unsigned int EwkMuLumiMonitorDQM::nInKinRange
private

Definition at line 112 of file EwkMuLumiMonitorDQM.h.

Referenced by dqmBeginRun().

◆ niso

unsigned int EwkMuLumiMonitorDQM::niso
private

Definition at line 114 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and dqmBeginRun().

◆ nNotIso

unsigned int EwkMuLumiMonitorDQM::nNotIso
private

Definition at line 118 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and dqmBeginRun().

◆ nsel

unsigned int EwkMuLumiMonitorDQM::nsel
private

Definition at line 113 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and dqmBeginRun().

◆ nTMass

unsigned int EwkMuLumiMonitorDQM::nTMass
private

Definition at line 121 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and dqmBeginRun().

◆ nW

unsigned int EwkMuLumiMonitorDQM::nW
private

Definition at line 122 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and dqmBeginRun().

◆ ptMuCut_

double EwkMuLumiMonitorDQM::ptMuCut_
private

Definition at line 63 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ ptThreshold_

double EwkMuLumiMonitorDQM::ptThreshold_
private

Definition at line 71 of file EwkMuLumiMonitorDQM.h.

Referenced by tkIso().

◆ TMass_

MonitorElement* EwkMuLumiMonitorDQM::TMass_
private

Definition at line 105 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze(), and bookHistograms().

◆ trackToken_

edm::EDGetTokenT<reco::TrackCollection> EwkMuLumiMonitorDQM::trackToken_
private

Definition at line 55 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ trigEvToken_

edm::EDGetTokenT<trigger::TriggerEvent> EwkMuLumiMonitorDQM::trigEvToken_
private

Definition at line 52 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().

◆ trigTag_

edm::InputTag EwkMuLumiMonitorDQM::trigTag_
private

Definition at line 50 of file EwkMuLumiMonitorDQM.h.

Referenced by dqmBeginRun().

◆ trigToken_

edm::EDGetTokenT<edm::TriggerResults> EwkMuLumiMonitorDQM::trigToken_
private

Definition at line 51 of file EwkMuLumiMonitorDQM.h.

Referenced by analyze().