CMS 3D CMS Logo

WMuNuSelector.cc
Go to the documentation of this file.
1 // //
3 // WMuNuSelector based on WMuNuCandidates //
4 // //
6 // //
7 // Filter of WMuNuCandidates for Analysis //
8 // --> From a WMuNuCandidate collection //
9 // --> Pre-Selection of events based in event cuts (trigger, Z rejection, ttbar rejection) //
10 // --> The Ws are selected from the highest pt muon in the event (applying the standard WMuNu Selection cuts) //
11 // //
12 // --> Be careful: if this Selector is used as a filter for further analysis you still have to make sure that //
13 // the W Candidate you use for your modules is the first one in the collection!! //
14 // //
15 // Optionally, plots selection variables sequentially after cuts, //
16 // and 2D histograms for background determination. //
17 // //
18 // For basic plots before & after cuts (without Candidate formalism), use WMuNuValidator.cc //
19 // //
21 
32 #include "TH1D.h"
33 #include "TH2D.h"
34 
35 class WMuNuSelector : public edm::EDFilter {
36 public:
38  bool filter(edm::Event&, const edm::EventSetup&) override;
39  void beginJob() override;
40  void endJob() override;
41  void init_histograms();
42 
43 private:
51  double ptThrForZ1_;
52  double ptThrForZ2_;
53  double eJetMin_;
54  int nJetMax_;
55  double ptCut_;
56  double etaCut_;
59  double isoCut03_;
60  double mtMin_;
61  double mtMax_;
62  double metMin_;
63  double metMax_;
64  double acopCut_;
65 
66  double dxyCut_;
70 
72 
73  double nall;
74  double ntrig, npresel;
75  double nsel;
76  double ncharge;
77  double nkin, nid, nacop, niso, nmass;
78 
79  std::map<std::string, TH1D*> h1_;
80  std::map<std::string, TH2D*> h2_;
81 };
84 
87 
89 
91 
93 
95 
97 
98 using namespace edm;
99 using namespace std;
100 using namespace reco;
101 
103  : // Fast selection (no histograms)
104  plotHistograms_(cfg.getUntrackedParameter<bool>("plotHistograms", true)),
105 
106  // Input collections
107  trigToken_(consumes<TriggerResults>(
108  cfg.getUntrackedParameter<edm::InputTag>("TrigTag", edm::InputTag("TriggerResults::HLT")))),
109  muonToken_(consumes<View<Muon> >(cfg.getUntrackedParameter<edm::InputTag>("MuonTag", edm::InputTag("muons")))),
110  jetToken_(
111  consumes<View<Jet> >(cfg.getUntrackedParameter<edm::InputTag>("JetTag", edm::InputTag("sisCone5CaloJets")))),
112  beamSpotToken_(consumes<reco::BeamSpot>(edm::InputTag("offlineBeamSpot"))),
113  WMuNuCollectionToken_(consumes<reco::WMuNuCandidateCollection>(
114  cfg.getUntrackedParameter<edm::InputTag>("WMuNuCollectionTag", edm::InputTag("WMuNus")))),
115 
116  // Preselection cuts
117  muonTrig_(cfg.getUntrackedParameter<std::string>("MuonTrig", "HLT_Mu9")),
118  ptThrForZ1_(cfg.getUntrackedParameter<double>("PtThrForZ1", 20.)),
119  ptThrForZ2_(cfg.getUntrackedParameter<double>("PtThrForZ2", 10.)),
120  eJetMin_(cfg.getUntrackedParameter<double>("EJetMin", 999999.)),
121  nJetMax_(cfg.getUntrackedParameter<int>("NJetMax", 999999)),
122 
123  // Main cuts
124  ptCut_(cfg.getUntrackedParameter<double>("PtCut", 25.)),
125  etaCut_(cfg.getUntrackedParameter<double>("EtaCut", 2.1)),
126  isRelativeIso_(cfg.getUntrackedParameter<bool>("IsRelativeIso", true)),
127  isCombinedIso_(cfg.getUntrackedParameter<bool>("IsCombinedIso", false)),
128  isoCut03_(cfg.getUntrackedParameter<double>("IsoCut03", 0.1)),
129  mtMin_(cfg.getUntrackedParameter<double>("MtMin", 50.)),
130  mtMax_(cfg.getUntrackedParameter<double>("MtMax", 200.)),
131  metMin_(cfg.getUntrackedParameter<double>("MetMin", -999999.)),
132  metMax_(cfg.getUntrackedParameter<double>("MetMax", 999999.)),
133  acopCut_(cfg.getUntrackedParameter<double>("AcopCut", 2.)),
134 
135  // Muon quality cuts
136  dxyCut_(cfg.getUntrackedParameter<double>("DxyCut", 0.2)),
137  normalizedChi2Cut_(cfg.getUntrackedParameter<double>("NormalizedChi2Cut", 10.)),
138  trackerHitsCut_(cfg.getUntrackedParameter<int>("TrackerHitsCut", 11)),
139  isAlsoTrackerMuon_(cfg.getUntrackedParameter<bool>("IsAlsoTrackerMuon", true)),
140 
141  // W+/W- Selection
142  selectByCharge_(cfg.getUntrackedParameter<int>("SelectByCharge", 0)) {}
143 
145  nall = 0;
146  ntrig = 0;
147  npresel = 0;
148  ncharge = 0;
149  nkin = 0;
150  nid = 0;
151  nacop = 0;
152  niso = 0;
153  nsel = 0;
154 
155  if (plotHistograms_) {
157  h1_["hNWCand_sel"] =
158  fs->make<TH1D>("NWCand_sel", "Nb. of WCandidates passing pre-selection (ordered by pt)", 10, 0., 10.);
159  h1_["hPtMu_sel"] = fs->make<TH1D>("ptMu_sel", "Pt mu", 100, 0., 100.);
160  h1_["hEtaMu_sel"] = fs->make<TH1D>("etaMu_sel", "Eta mu", 50, -2.5, 2.5);
161  h1_["hd0_sel"] = fs->make<TH1D>("d0_sel", "Impact parameter", 1000, -1., 1.);
162  h1_["hNHits_sel"] = fs->make<TH1D>("NumberOfValidHits_sel", "Number of Hits in Silicon", 100, 0., 100.);
163  h1_["hNormChi2_sel"] = fs->make<TH1D>("NormChi2_sel", "Chi2/ndof of global track", 1000, 0., 50.);
164  h1_["hTracker_sel"] = fs->make<TH1D>("isTrackerMuon_sel", "is Tracker Muon?", 2, 0., 2.);
165  h1_["hMET_sel"] = fs->make<TH1D>("MET_sel", "Missing Transverse Energy (GeV)", 300, 0., 300.);
166  h1_["hTMass_sel"] = fs->make<TH1D>("TMass_sel", "Rec. Transverse Mass (GeV)", 300, 0., 300.);
167  h1_["hAcop_sel"] = fs->make<TH1D>("Acop_sel", "Mu-MET acoplanarity", 50, 0., M_PI);
168  h1_["hPtSum_sel"] = fs->make<TH1D>("ptSum_sel", "Track Isolation, Sum pT (GeV)", 200, 0., 100.);
169  h1_["hPtSumN_sel"] = fs->make<TH1D>("ptSumN_sel", "Track Isolation, Sum pT/pT", 1000, 0., 10.);
170  h1_["hCal_sel"] = fs->make<TH1D>("Cal_sel", "Calorimetric isolation, HCAL+ECAL (GeV)", 200, 0., 100.);
171  h1_["hIsoTotN_sel"] = fs->make<TH1D>("isoTotN_sel", "(Sum pT + Cal)/pT", 1000, 0., 10.);
172  h1_["hIsoTot_sel"] = fs->make<TH1D>("isoTot_sel", "(Sum pT + Cal)", 200, 0., 100.);
173  h2_["hTMass_PtSum_inclusive"] = fs->make<TH2D>(
174  "TMass_PtSum_inclusive", "Rec. Transverse Mass (GeV) vs Sum pT (GeV)", 200, 0., 100., 300, 0., 300.);
175  h2_["hTMass_PtSumNorm_inclusive"] = fs->make<TH2D>(
176  "TMass_PtSumNorm_inclusive", "Rec. Transverse Mass (GeV) vs Sum Pt / Pt", 1000, 0, 10, 300, 0, 300);
177  h2_["hTMass_TotIsoNorm_inclusive"] = fs->make<TH2D>(
178  "TMass_TotIsoNorm_inclusive", "Rec. Transverse Mass (GeV) vs (Sum Pt + Cal)/Pt", 10000, 0, 10, 200, 0, 200);
179  h2_["hMET_PtSum_inclusive"] = fs->make<TH2D>(
180  "MET_PtSum_inclusive", "Missing Transverse Energy (GeV) vs Sum Pt (GeV)", 200, 0., 100., 300, 0., 300.);
181  h2_["hMET_PtSumNorm_inclusive"] = fs->make<TH2D>(
182  "MET_PtSumNorm_inclusive", "Missing Transverse Energy (GeV) vs Sum Pt/Pt", 1000, 0, 10, 300, 0, 300);
183  h2_["hMET_TotIsoNorm_inclusive"] = fs->make<TH2D>(
184  "MET_TotIsoNorm_inclusive", "Missing Transverse Energy (GeV) vs (SumPt + Cal)/Pt", 10000, 0, 10, 200, 0, 200);
185  }
186 }
187 
189  double all = nall;
190  double epresel = npresel / all;
191  double etrig = ntrig / all;
192  double ekin = nkin / all;
193  double eid = nid / all;
194  double eacop = nacop / all;
195  double eiso = niso / all;
196  double esel = nsel / all;
197 
198  LogVerbatim("") << "\n>>>>>> W SELECTION SUMMARY BEGIN >>>>>>>>>>>>>>>";
199  LogVerbatim("") << "Total number of events analyzed: " << nall << " [events]";
200  LogVerbatim("") << "Total number of events triggered: " << ntrig << " [events]";
201  LogVerbatim("") << "Total number of events pre-selected: " << npresel << " [events]";
202  LogVerbatim("") << "Total number of events after kinematic cuts: " << nkin << " [events]";
203  LogVerbatim("") << "Total number of events after Muon ID cuts: " << nid << " [events]";
204  LogVerbatim("") << "Total number of events after Acop cut: " << nacop << " [events]";
205  LogVerbatim("") << "Total number of events after iso cut: " << niso << " [events]";
206  LogVerbatim("") << "Total number of events selected: " << nsel << " [events]";
207  LogVerbatim("") << "Efficiencies:";
208  LogVerbatim("") << "Trigger Efficiency: "
209  << "(" << setprecision(4) << etrig * 100. << " +/- " << setprecision(2)
210  << sqrt(etrig * (1 - etrig) / all) * 100. << ")%";
211  LogVerbatim("") << "Pre-Selection Efficiency: "
212  << "(" << setprecision(4) << epresel * 100. << " +/- " << setprecision(2)
213  << sqrt(epresel * (1 - epresel) / all) * 100. << ")%";
214  LogVerbatim("") << "Pt, Eta Selection Efficiency: "
215  << "(" << setprecision(4) << ekin * 100. << " +/- " << setprecision(2)
216  << sqrt(ekin * (1 - ekin) / all) * 100. << ")%";
217  LogVerbatim("") << "MuonID Efficiency: "
218  << "(" << setprecision(4) << eid * 100. << " +/- " << setprecision(2)
219  << sqrt(eid * (1 - eid) / all) * 100. << ")%";
220  LogVerbatim("") << "Acop Efficiency: "
221  << "(" << setprecision(4) << eacop * 100. << " +/- " << setprecision(2)
222  << sqrt(eacop * (1 - eacop) / all) * 100. << ")%";
223  LogVerbatim("") << "Iso Efficiency: "
224  << "(" << setprecision(4) << eiso * 100. << " +/- " << setprecision(2)
225  << sqrt(eiso * (1 - eiso) / all) * 100. << ")%";
226  LogVerbatim("") << "Selection Efficiency: "
227  << "(" << setprecision(4) << esel * 100. << " +/- " << setprecision(2)
228  << sqrt(esel * (1 - esel) / nall) * 100. << ")%";
229 
230  if (fabs(selectByCharge_) == 1) {
231  esel = nsel / ncharge;
232  LogVerbatim("") << "\n>>>>>> W+(-) SELECTION >>>>>>>>>>>>>>>";
233  LogVerbatim("") << "Total number of W+(-) events pre-selected: " << ncharge << " [events]";
234  LogVerbatim("") << "Total number of events selected: " << nsel << " [events]";
235  LogVerbatim("") << "Selection Efficiency only W+(-): "
236  << "(" << setprecision(4) << esel * 100. << " +/- " << setprecision(2)
237  << sqrt(esel * (1 - esel) / ncharge) * 100. << ")%";
238  }
239  LogVerbatim("") << ">>>>>> W SELECTION SUMMARY END >>>>>>>>>>>>>>>\n";
240 }
241 
243  nall++;
244 
245  // Repeat Pre-Selection Cuts just in case...
246  // Muon collection
248  if (!ev.getByToken(muonToken_, muonCollection)) {
249  LogError("") << ">>> Muon collection does not exist !!!";
250  return false;
251  }
252  unsigned int muonCollectionSize = muonCollection->size();
253 
254  // Trigger
256  if (!ev.getByToken(trigToken_, triggerResults)) {
257  LogError("") << ">>> TRIGGER collection does not exist !!!";
258  return false;
259  }
260  const edm::TriggerNames& triggerNames = ev.triggerNames(*triggerResults);
261  bool trigger_fired = false;
262  int itrig1 = triggerNames.triggerIndex(muonTrig_);
263  if (triggerResults->accept(itrig1))
264  trigger_fired = true;
265  LogTrace("") << ">>> Trigger bit: " << trigger_fired << " (" << muonTrig_ << ")";
266 
267  // Loop to reject/control Z->mumu is done separately
268  unsigned int nmuonsForZ1 = 0;
269  unsigned int nmuonsForZ2 = 0;
270  for (unsigned int i = 0; i < muonCollectionSize; i++) {
271  const Muon& mu = muonCollection->at(i);
272  if (!mu.isGlobalMuon())
273  continue;
274  double pt = mu.pt();
275  if (pt > ptThrForZ1_)
276  nmuonsForZ1++;
277  if (pt > ptThrForZ2_)
278  nmuonsForZ2++;
279  }
280  LogTrace("") << "> Z rejection: muons above " << ptThrForZ1_ << " [GeV]: " << nmuonsForZ1;
281  LogTrace("") << "> Z rejection: muons above " << ptThrForZ2_ << " [GeV]: " << nmuonsForZ2;
282 
283  // Jet collection
285  if (!ev.getByToken(jetToken_, jetCollection)) {
286  LogError("") << ">>> JET collection does not exist !!!";
287  return false;
288  }
289  unsigned int jetCollectionSize = jetCollection->size();
290  int njets = 0;
291  for (unsigned int i = 0; i < jetCollectionSize; i++) {
292  const Jet& jet = jetCollection->at(i);
293  if (jet.et() > eJetMin_)
294  njets++;
295  }
296  LogTrace("") << ">>> Total number of jets: " << jetCollectionSize;
297  LogTrace("") << ">>> Number of jets above " << eJetMin_ << " [GeV]: " << njets;
298 
299  // Beam spot
300  Handle<reco::BeamSpot> beamSpotHandle;
301  if (!ev.getByToken(beamSpotToken_, beamSpotHandle)) {
302  LogTrace("") << ">>> No beam spot found !!!";
303  return false;
304  }
305 
306  // Get WMuNu candidates from file:
307 
309  if (!ev.getByToken(WMuNuCollectionToken_, WMuNuCollection)) {
310  LogTrace("") << ">>> WMuNu not found !!!";
311  return false;
312  }
313 
314  if (WMuNuCollection->empty()) {
315  LogTrace("") << "No WMuNu Candidates in the Event!";
316  return false;
317  }
318  if (WMuNuCollection->size() > 1) {
319  LogTrace("") << "This event contains more than one W Candidate";
320  }
321 
322  // W->mu nu selection criteria
323 
324  LogTrace("") << "> WMuNu Candidate with: ";
325  const WMuNuCandidate& WMuNu = WMuNuCollection->at(0);
326  // WMuNuCandidates are ordered by Pt!
327  // The Inclusive Selection WMuNu Candidate is the first one
328 
329  const reco::Muon& mu = WMuNu.getMuon();
330  const reco::MET& met = WMuNu.getNeutrino();
331  if (plotHistograms_) {
332  h1_["hNWCand_sel"]->Fill(WMuNuCollection->size());
333  }
334 
335  // Preselection cuts:
336 
337  if (!trigger_fired) {
338  LogTrace("") << "Event did not fire the Trigger";
339  return false;
340  }
341  ntrig++;
342 
343  if (nmuonsForZ1 >= 1 && nmuonsForZ2 >= 2) {
344  LogTrace("") << "Z Candidate!!";
345  return false;
346  }
347  if (njets > nJetMax_) {
348  LogTrace("") << "NJets > threshold";
349  return false;
350  }
351 
352  npresel++;
353 
354  // Select Ws by charge:
355 
356  if (selectByCharge_ * WMuNu.charge() == -1) {
357  ncharge++;
358  }
359 
360  // W->mu nu selection criteria
361 
362  if (!mu.isGlobalMuon())
363  return false;
364 
365  reco::TrackRef gm = mu.globalTrack();
366  //reco::TrackRef tk = mu.innerTrack();
367 
368  // Pt,eta cuts
369  double pt = mu.pt();
370  double eta = mu.eta();
371  LogTrace("") << "\t... Muon pt, eta: " << pt << " [GeV], " << eta;
372  if (plotHistograms_) {
373  h1_["hPtMu_sel"]->Fill(pt);
374  }
375  if (pt < ptCut_)
376  return false;
377  if (plotHistograms_) {
378  h1_["hEtaMu_sel"]->Fill(eta);
379  }
380  if (fabs(eta) > etaCut_)
381  return false;
382 
383  nkin++;
384 
385  // d0, chi2, nhits quality cuts
386  double dxy = gm->dxy(beamSpotHandle->position());
387  double normalizedChi2 = gm->normalizedChi2();
388  LogTrace("") << "Im here" << endl;
389  double trackerHits = gm->hitPattern().numberOfValidTrackerHits();
390  LogTrace("") << "\t... Muon dxy, normalizedChi2, trackerHits, isTrackerMuon?: " << dxy << " [cm], " << normalizedChi2
391  << ", " << trackerHits << ", " << mu.isTrackerMuon();
392 
393  if (plotHistograms_) {
394  h1_["hd0_sel"]->Fill(dxy);
395  }
397  return false;
398  if (plotHistograms_) {
399  h1_["hNormChi2_sel"]->Fill(normalizedChi2);
400  }
402  return false;
403  if (plotHistograms_) {
404  h1_["hNHits_sel"]->Fill(trackerHits);
405  }
407  return false;
408  if (plotHistograms_) {
409  h1_["hTracker_sel"]->Fill(mu.isTrackerMuon());
410  }
411  if (!mu.isTrackerMuon())
412  return false;
413 
414  nid++;
415 
416  // Acoplanarity cuts
417  double acop = WMuNu.acop();
418  LogTrace("") << "\t... acoplanarity: " << acop;
419 
420  // Isolation cuts
421  double SumPt = mu.isolationR03().sumPt;
422  double isovar = SumPt;
423  double Cal = mu.isolationR03().emEt + mu.isolationR03().hadEt;
424  if (isCombinedIso_)
425  isovar += Cal;
426  if (plotHistograms_) {
427  h1_["hPtSum_sel"]->Fill(SumPt);
428  h1_["hPtSumN_sel"]->Fill(SumPt / pt);
429  h1_["hCal_sel"]->Fill(Cal);
430  h1_["hIsoTot_sel"]->Fill((SumPt + Cal));
431  h1_["hIsoTotN_sel"]->Fill((SumPt + Cal) / pt);
432  }
433 
434  if (isRelativeIso_)
435  isovar /= pt;
436  bool iso = (isovar <= isoCut03_);
437  LogTrace("") << "\t... isolation value" << isovar << ", isolated? " << iso;
438 
439  double met_et = met.pt();
440  LogTrace("") << "\t... Met pt: " << WMuNu.getNeutrino().pt() << "[GeV]";
441 
442  double massT = WMuNu.massT();
443  double w_et = WMuNu.eT();
444 
445  LogTrace("") << "\t... W mass, W_et, W_px, W_py: " << massT << ", " << w_et << ", " << WMuNu.px() << ", "
446  << WMuNu.py() << " [GeV]";
447 
448  // Plot 2D Histograms before final cuts
449  if (plotHistograms_ && acop < acopCut_) {
450  h2_["hTMass_PtSum_inclusive"]->Fill(SumPt, massT);
451  h2_["hTMass_PtSumNorm_inclusive"]->Fill(SumPt / pt, massT);
452  h2_["hTMass_TotIsoNorm_inclusive"]->Fill((SumPt + Cal) / pt, massT);
453  h2_["hMET_PtSum_inclusive"]->Fill(SumPt, met_et);
454  h2_["hMET_PtSumNorm_inclusive"]->Fill(SumPt / pt, met_et);
455  h2_["hMET_TotIsoNorm_inclusive"]->Fill((SumPt + Cal) / pt, met_et);
456  }
457 
458  if (!iso)
459  return false;
460 
461  niso++;
462 
463  if (plotHistograms_) {
464  h1_["hAcop_sel"]->Fill(acop);
465  }
466  if (acop >= acopCut_)
467  return false;
468 
469  nacop++;
470 
471  if (plotHistograms_) {
472  h1_["hMET_sel"]->Fill(met_et);
473  h1_["hTMass_sel"]->Fill(massT);
474  }
475 
476  if (massT <= mtMin_ || massT >= mtMax_)
477  return false;
478  if (met_et <= metMin_ || met_et >= metMax_)
479  return false;
480 
481  LogTrace("") << ">>>> Event ACCEPTED";
482  nsel++;
483 
484  // (To be continued ;-) )
485 
486  return true;
487 }
488 
490 
Phi.h
WMuNuSelector::dxyCut_
double dxyCut_
Definition: WMuNuSelector.cc:66
WMuNuSelector::metMin_
double metMin_
Definition: WMuNuSelector.cc:62
Handle.h
WMuNuSelector::init_histograms
void init_histograms()
electrons_cff.bool
bool
Definition: electrons_cff.py:393
mps_fire.i
i
Definition: mps_fire.py:428
Muon.h
WMuNuSelector::nall
double nall
Definition: WMuNuSelector.cc:73
MessageLogger.h
funct::false
false
Definition: Factorize.h:29
WMuNuCandidate.h
TriggerResults.h
WMuNuSelector::trackerHitsCut_
int trackerHitsCut_
Definition: WMuNuSelector.cc:68
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
amptDefaultParameters_cff.mu
mu
Definition: amptDefaultParameters_cff.py:16
edm::EDGetTokenT< edm::TriggerResults >
edm
HLT enums.
Definition: AlignableModifier.h:19
trackerHits
Definition: trackerHits.py:1
reco::WMuNuCandidate::acop
double acop() const
Definition: WMuNuCandidate.cc:42
muon::GlobalMuonPromptTight
Definition: MuonSelectors.h:25
triggerResults
static const std::string triggerResults
Definition: EdmProvDump.cc:45
EDFilter.h
Jet.h
WMuNuSelector::nkin
double nkin
Definition: WMuNuSelector.cc:77
reco::LeafCandidate::pt
double pt() const final
transverse momentum
Definition: LeafCandidate.h:146
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
WMuNuSelector::selectByCharge_
int selectByCharge_
Definition: WMuNuSelector.cc:71
WMuNuSelector::isAlsoTrackerMuon_
bool isAlsoTrackerMuon_
Definition: WMuNuSelector.cc:69
edm::Handle
Definition: AssociativeIterator.h:50
python.cmstools.all
def all(container)
workaround iterator generators for ROOT classes
Definition: cmstools.py:26
Muon
Definition: Muon.py:1
reco::Muon
Definition: Muon.h:27
edm::Ref< TrackCollection >
BTaggingMonitor_cfi.met
met
Definition: BTaggingMonitor_cfi.py:84
reco::WMuNuCandidateCollection
std::vector< reco::WMuNuCandidate > WMuNuCandidateCollection
Definition: WMuNuCandidate.h:46
WMuNuSelector::ptThrForZ2_
double ptThrForZ2_
Definition: WMuNuSelector.cc:52
reco::MET
Definition: MET.h:41
MakerMacros.h
WMuNuSelector::muonTrig_
const std::string muonTrig_
Definition: WMuNuSelector.cc:50
muon::isGoodMuon
bool isGoodMuon(const reco::Muon &muon, SelectionType type, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
main GoodMuon wrapper call
Definition: MuonSelectors.cc:649
WMuNuSelector::WMuNuCollectionToken_
edm::EDGetTokenT< reco::WMuNuCandidateCollection > WMuNuCollectionToken_
Definition: WMuNuSelector.cc:49
Track.h
reco::WMuNuCandidate::massT
double massT() const
Definition: WMuNuCandidate.cc:31
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
BeamSpot.h
Jet
Definition: Jet.py:1
reco::LeafCandidate::py
double py() const final
y coordinate of momentum vector
Definition: LeafCandidate.h:142
L1TEGammaOffline_cfi.triggerNames
triggerNames
Definition: L1TEGammaOffline_cfi.py:40
MuonSelectors.h
Service.h
PVValHelper::eta
Definition: PVValidationHelpers.h:69
reco::WMuNuCandidate::getMuon
const reco::Muon & getMuon() const
Definition: WMuNuCandidate.h:38
WMuNuSelector::h2_
std::map< std::string, TH2D * > h2_
Definition: WMuNuSelector.cc:80
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
WMuNuSelector::filter
bool filter(edm::Event &, const edm::EventSetup &) override
Definition: WMuNuSelector.cc:242
reco::BeamSpot
Definition: BeamSpot.h:21
WMuNuSelector::ncharge
double ncharge
Definition: WMuNuSelector.cc:76
WMuNuSelector::metMax_
double metMax_
Definition: WMuNuSelector.cc:63
reco::BeamSpot::position
const Point & position() const
position
Definition: BeamSpot.h:59
jetfilter_cfi.jetCollection
jetCollection
Definition: jetfilter_cfi.py:4
WMuNuSelector::isCombinedIso_
bool isCombinedIso_
Definition: WMuNuSelector.cc:58
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
TFileService.h
reco::WMuNuCandidate::getNeutrino
const reco::MET & getNeutrino() const
Definition: WMuNuCandidate.h:39
edm::View
Definition: CaloClusterFwd.h:14
funct::true
true
Definition: Factorize.h:173
edm::ParameterSet
Definition: ParameterSet.h:47
WMuNuSelector::mtMax_
double mtMax_
Definition: WMuNuSelector.cc:61
Event.h
WMuNuSelector::beginJob
void beginJob() override
Definition: WMuNuSelector.cc:144
WMuNuSelector::isRelativeIso_
bool isRelativeIso_
Definition: WMuNuSelector.cc:57
WMuNuSelector::muonToken_
edm::EDGetTokenT< edm::View< reco::Muon > > muonToken_
Definition: WMuNuSelector.cc:46
edm::Service< TFileService >
createfilelist.int
int
Definition: createfilelist.py:10
TriggerNames.h
runTauDisplay.eid
eid
Definition: runTauDisplay.py:298
WMuNuSelector::nmass
double nmass
Definition: WMuNuSelector.cc:77
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:49
edm::EDFilter
Definition: EDFilter.h:38
WMuNuSelector::ptCut_
double ptCut_
Definition: WMuNuSelector.cc:55
reco::LeafCandidate::charge
int charge() const final
electric charge
Definition: LeafCandidate.h:106
edm::EventSetup
Definition: EventSetup.h:57
WMuNuSelector::nsel
double nsel
Definition: WMuNuSelector.cc:75
WMuNuSelector::nacop
double nacop
Definition: WMuNuSelector.cc:77
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
TrackCollections2monitor_cff.normalizedChi2
normalizedChi2
Definition: TrackCollections2monitor_cff.py:247
pdwgLeptonRecoSkim_cfi.muonCollection
muonCollection
Definition: pdwgLeptonRecoSkim_cfi.py:7
WMuNuSelector::mtMin_
double mtMin_
Definition: WMuNuSelector.cc:60
InputTag.h
WMuNuSelector::nid
double nid
Definition: WMuNuSelector.cc:77
looper.cfg
cfg
Definition: looper.py:297
MET.h
std
Definition: JetResolutionObject.h:76
reco::WMuNuCandidate
Definition: WMuNuCandidate.h:17
PVValHelper::dxy
Definition: PVValidationHelpers.h:47
BTaggingMonitoring_cff.njets
njets
Definition: BTaggingMonitoring_cff.py:10
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
metsig::jet
Definition: SignAlgoResolutions.h:47
reco::WMuNuCandidate::eT
double eT() const
Definition: WMuNuCandidate.cc:25
ev
bool ev
Definition: Hydjet2Hadronizer.cc:95
edm::TriggerNames
Definition: TriggerNames.h:55
WMuNuSelector::h1_
std::map< std::string, TH1D * > h1_
Definition: WMuNuSelector.cc:79
WMuNuSelector::jetToken_
edm::EDGetTokenT< edm::View< reco::Jet > > jetToken_
Definition: WMuNuSelector.cc:47
WMuNuSelector::plotHistograms_
bool plotHistograms_
Definition: WMuNuSelector.cc:44
WMuNuSelector::eJetMin_
double eJetMin_
Definition: WMuNuSelector.cc:53
WMuNuSelector::endJob
void endJob() override
Definition: WMuNuSelector.cc:188
WMuNuSelector::trigToken_
edm::EDGetTokenT< edm::TriggerResults > trigToken_
Definition: WMuNuSelector.cc:45
WMuNuSelector::nJetMax_
int nJetMax_
Definition: WMuNuSelector.cc:54
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:224
View.h
WMuNuSelector::beamSpotToken_
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
Definition: WMuNuSelector.cc:48
ParameterSet.h
edm::Event
Definition: Event.h:73
WMuNuSelector
Definition: WMuNuSelector.cc:35
WMuNuSelector::etaCut_
double etaCut_
Definition: WMuNuSelector.cc:56
WMuNuSelector::npresel
double npresel
Definition: WMuNuSelector.cc:74
WMuNuSelector::acopCut_
double acopCut_
Definition: WMuNuSelector.cc:64
reco::LeafCandidate::px
double px() const final
x coordinate of momentum vector
Definition: LeafCandidate.h:140
WMuNuSelector::ptThrForZ1_
double ptThrForZ1_
Definition: WMuNuSelector.cc:51
edm::InputTag
Definition: InputTag.h:15
edm::TriggerResults
Definition: TriggerResults.h:35
WMuNuSelector::normalizedChi2Cut_
double normalizedChi2Cut_
Definition: WMuNuSelector.cc:67
TFileService::make
T * make(const Args &... args) const
make new ROOT object
Definition: TFileService.h:64
WMuNuSelector::isoCut03_
double isoCut03_
Definition: WMuNuSelector.cc:59
WMuNuSelector::niso
double niso
Definition: WMuNuSelector.cc:77
WMuNuSelector::ntrig
double ntrig
Definition: WMuNuSelector.cc:74
WMuNuSelector::WMuNuSelector
WMuNuSelector(const edm::ParameterSet &)
Definition: WMuNuSelector.cc:102