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