Public Member Functions | |
virtual void | beginJob () |
virtual void | endJob () |
void | fill_histogram (const char *, const double &) |
virtual bool | filter (edm::Event &, const edm::EventSetup &) |
void | init_histograms () |
WMuNuValidator (const edm::ParameterSet &) | |
Private Attributes | |
double | acopCut_ |
double | dxyCut_ |
double | eJetMin_ |
double | etaCut_ |
bool | fastOption_ |
std::map< std::string, TH1D * > | h1_ |
bool | isAlsoTrackerMuon_ |
bool | isCombinedIso_ |
double | isoCut03_ |
bool | isRelativeIso_ |
edm::InputTag | jetTag_ |
bool | metIncludesMuons_ |
double | metMax_ |
double | metMin_ |
edm::InputTag | metTag_ |
double | mtMax_ |
double | mtMin_ |
edm::InputTag | muonTag_ |
const std::string | muonTrig_ |
unsigned int | nall |
unsigned int | nhlt |
unsigned int | niso |
int | nJetMax_ |
unsigned int | nmet |
double | normalizedChi2Cut_ |
unsigned int | nrec |
unsigned int | nsel |
double | ptCut_ |
double | ptThrForZ1_ |
double | ptThrForZ2_ |
int | trackerHitsCut_ |
edm::InputTag | trigTag_ |
Definition at line 21 of file WMuNuValidator.cc.
WMuNuValidator::WMuNuValidator | ( | const edm::ParameterSet & | cfg | ) |
Definition at line 97 of file WMuNuValidator.cc.
: // Fast selection (no histograms or book-keeping) fastOption_(cfg.getUntrackedParameter<bool> ("FastOption", false)), // Input collections trigTag_(cfg.getUntrackedParameter<edm::InputTag> ("TrigTag", edm::InputTag("TriggerResults::HLT"))), muonTag_(cfg.getUntrackedParameter<edm::InputTag> ("MuonTag", edm::InputTag("muons"))), metTag_(cfg.getUntrackedParameter<edm::InputTag> ("METTag", edm::InputTag("met"))), metIncludesMuons_(cfg.getUntrackedParameter<bool> ("METIncludesMuons", false)), jetTag_(cfg.getUntrackedParameter<edm::InputTag> ("JetTag", edm::InputTag("sisCone5CaloJets"))), // Main cuts muonTrig_(cfg.getUntrackedParameter<std::string> ("MuonTrig", "HLT_Mu9")), ptCut_(cfg.getUntrackedParameter<double>("PtCut", 25.)), etaCut_(cfg.getUntrackedParameter<double>("EtaCut", 2.1)), isRelativeIso_(cfg.getUntrackedParameter<bool>("IsRelativeIso", true)), isCombinedIso_(cfg.getUntrackedParameter<bool>("IsCombinedIso", false)), isoCut03_(cfg.getUntrackedParameter<double>("IsoCut03", 0.1)), mtMin_(cfg.getUntrackedParameter<double>("MtMin", 50.)), mtMax_(cfg.getUntrackedParameter<double>("MtMax", 200.)), metMin_(cfg.getUntrackedParameter<double>("MetMin", -999999.)), metMax_(cfg.getUntrackedParameter<double>("MetMax", 999999.)), acopCut_(cfg.getUntrackedParameter<double>("AcopCut", 2.)), // Muon quality cuts dxyCut_(cfg.getUntrackedParameter<double>("DxyCut", 0.2)), normalizedChi2Cut_(cfg.getUntrackedParameter<double>("NormalizedChi2Cut", 10.)), trackerHitsCut_(cfg.getUntrackedParameter<int>("TrackerHitsCut", 11)), isAlsoTrackerMuon_(cfg.getUntrackedParameter<bool>("IsAlsoTrackerMuon", true)), // Z rejection ptThrForZ1_(cfg.getUntrackedParameter<double>("PtThrForZ1", 20.)), ptThrForZ2_(cfg.getUntrackedParameter<double>("PtThrForZ2", 10.)), // Top rejection eJetMin_(cfg.getUntrackedParameter<double>("EJetMin", 999999.)), nJetMax_(cfg.getUntrackedParameter<int>("NJetMax", 999999)) { }
void WMuNuValidator::beginJob | ( | void | ) | [virtual] |
Reimplemented from edm::EDFilter.
Definition at line 137 of file WMuNuValidator.cc.
References fastOption_, init_histograms(), nall, nhlt, niso, nmet, nrec, and nsel.
{ nall = 0; nsel = 0; if (!fastOption_) { nrec = 0; niso = 0; nhlt = 0; nmet = 0; init_histograms(); } }
void WMuNuValidator::endJob | ( | void | ) | [virtual] |
Reimplemented from edm::EDFilter.
Definition at line 242 of file WMuNuValidator.cc.
References cond::ecalcond::all, interpolateCardsSimple::eff, fastOption_, nall, nhlt, niso, nmet, nrec, nsel, and mathSSE::sqrt().
{ double all = nall; double esel = nsel/all; LogVerbatim("") << "\n>>>>>> W SELECTION SUMMARY BEGIN >>>>>>>>>>>>>>>"; LogVerbatim("") << "Total numer of events analyzed: " << nall << " [events]"; LogVerbatim("") << "Total numer of events selected: " << nsel << " [events]"; LogVerbatim("") << "Overall efficiency: " << "(" << setprecision(4) << esel*100. <<" +/- "<< setprecision(2) << sqrt(esel*(1-esel)/all)*100. << ")%"; if (!fastOption_) { double erec = nrec/all; double eiso = niso/all; double ehlt = nhlt/all; double emet = nmet/all; double num = nrec; double eff = erec; double err = sqrt(eff*(1-eff)/all); LogVerbatim("") << "Passing Pt/Eta/Quality cuts: " << num << " [events], (" << setprecision(4) << eff*100. <<" +/- "<< setprecision(2) << err*100. << ")%"; num = niso; eff = eiso; err = sqrt(eff*(1-eff)/all); double effstep = 0.; double errstep = 0.; if (nrec>0) effstep = eiso/erec; if (nrec>0) errstep = sqrt(effstep*(1-effstep)/nrec); LogVerbatim("") << "Passing isolation cuts: " << num << " [events], (" << setprecision(4) << eff*100. <<" +/- "<< setprecision(2) << err*100. << ")%, to previous step: (" << setprecision(4) << effstep*100. << " +/- "<< setprecision(2) << errstep*100. <<")%"; num = nhlt; eff = ehlt; err = sqrt(eff*(1-eff)/all); effstep = 0.; errstep = 0.; if (niso>0) effstep = ehlt/eiso; if (niso>0) errstep = sqrt(effstep*(1-effstep)/niso); LogVerbatim("") << "Passing HLT criteria: " << num << " [events], (" << setprecision(4) << eff*100. <<" +/- "<< setprecision(2) << err*100. << ")%, to previous step: (" << setprecision(4) << effstep*100. << " +/- "<< setprecision(2) << errstep*100. <<")%"; num = nmet; eff = emet; err = sqrt(eff*(1-eff)/all); effstep = 0.; errstep = 0.; if (nhlt>0) effstep = emet/ehlt; if (nhlt>0) errstep = sqrt(effstep*(1-effstep)/nhlt); LogVerbatim("") << "Passing MET/acoplanarity cuts: " << num << " [events], (" << setprecision(4) << eff*100. <<" +/- "<< setprecision(2) << err*100. << ")%, to previous step: (" << setprecision(4) << effstep*100. << " +/- "<< setprecision(2) << errstep*100. <<")%"; num = nsel; eff = esel; err = sqrt(eff*(1-eff)/all); effstep = 0.; errstep = 0.; if (nmet>0) effstep = esel/emet; if (nmet>0) errstep = sqrt(effstep*(1-effstep)/nmet); LogVerbatim("") << "Passing Z/top rejection cuts: " << num << " [events], (" << setprecision(4) << eff*100. <<" +/- "<< setprecision(2) << err*100. << ")%, to previous step: (" << setprecision(4) << effstep*100. << " +/- "<< setprecision(2) << errstep*100. <<")%"; } LogVerbatim("") << ">>>>>> W SELECTION SUMMARY END >>>>>>>>>>>>>>>\n"; }
void WMuNuValidator::fill_histogram | ( | const char * | name, |
const double & | var | ||
) |
Definition at line 237 of file WMuNuValidator.cc.
References fastOption_, h1_, and mergeVDriftHistosByStation::name.
Referenced by filter().
{ if (fastOption_) return; h1_[name]->Fill(var); }
bool WMuNuValidator::filter | ( | edm::Event & | ev, |
const edm::EventSetup & | |||
) | [virtual] |
Implements edm::EDFilter.
Definition at line 301 of file WMuNuValidator.cc.
References acopCut_, dxyCut_, eJetMin_, reco::MuonIsolation::emEt, reco::LeafCandidate::et(), eta(), reco::LeafCandidate::eta(), etaCut_, fastOption_, fill_histogram(), edm::Event::getByLabel(), muon::GlobalMuonPromptTight, reco::Muon::globalTrack(), reco::MuonIsolation::hadEt, i, reco::Muon::innerTrack(), isCombinedIso_, reco::Muon::isGlobalMuon(), muon::isGoodMuon(), edm::Ref< C, T, F >::isNull(), isoCut03_, reco::Muon::isolationR03(), isRelativeIso_, reco::Muon::isTrackerMuon(), j, metsig::jet, jetTag_, LogTrace, M_PI, CaloMET_cfi::met, metIncludesMuons_, metMax_, metMin_, metTag_, mtMax_, mtMin_, RPCpg::mu, muonTag_, muonTrig_, nall, nhlt, niso, nJetMax_, nmet, nrec, nsel, reco::LeafCandidate::phi(), reco::LeafCandidate::pt(), ptCut_, ptThrForZ1_, ptThrForZ2_, reco::LeafCandidate::px(), reco::LeafCandidate::py(), mathSSE::sqrt(), reco::MuonIsolation::sumPt, trackerHitsCut_, edm::TriggerNames::triggerIndex(), edm::Event::triggerNames(), patRefSel_triggerSelection_cff::triggerResults, trigTag_, and Geom::Phi< T >::value().
{ // Reset global event selection flags bool rec_sel = false; bool iso_sel = false; bool hlt_sel = false; bool met_sel = false; bool all_sel = false; // Muon collection Handle<View<Muon> > muonCollection; if (!ev.getByLabel(muonTag_, muonCollection)) { LogError("") << ">>> Muon collection does not exist !!!"; return false; } unsigned int muonCollectionSize = muonCollection->size(); // Beam spot Handle<reco::BeamSpot> beamSpotHandle; if (!ev.getByLabel(InputTag("offlineBeamSpot"), beamSpotHandle)) { LogTrace("") << ">>> No beam spot found !!!"; return false; } // MET double met_px = 0.; double met_py = 0.; Handle<View<MET> > metCollection; if (!ev.getByLabel(metTag_, metCollection)) { LogError("") << ">>> MET collection does not exist !!!"; return false; } const MET& met = metCollection->at(0); met_px = met.px(); met_py = met.py(); if (!metIncludesMuons_) { for (unsigned int i=0; i<muonCollectionSize; i++) { const Muon& mu = muonCollection->at(i); if (!mu.isGlobalMuon()) continue; met_px -= mu.px(); met_py -= mu.py(); } } double met_et = sqrt(met_px*met_px+met_py*met_py); LogTrace("") << ">>> MET, MET_px, MET_py: " << met_et << ", " << met_px << ", " << met_py << " [GeV]"; fill_histogram("MET_BEFORECUTS",met_et); // Trigger Handle<TriggerResults> triggerResults; if (!ev.getByLabel(trigTag_, triggerResults)) { LogError("") << ">>> TRIGGER collection does not exist !!!"; return false; } const edm::TriggerNames & triggerNames = ev.triggerNames(*triggerResults); /* for (unsigned int i=0; i<triggerResults->size(); i++) { if (triggerResults->accept(i)) { LogTrace("") << "Accept by: " << i << ", Trigger: " << triggerNames.triggerName(i); } } */ bool trigger_fired = false; int itrig1 = triggerNames.triggerIndex(muonTrig_); if (triggerResults->accept(itrig1)) trigger_fired = true; LogTrace("") << ">>> Trigger bit: " << trigger_fired << " (" << muonTrig_ << ")"; fill_histogram("TRIG_BEFORECUTS",trigger_fired); // Loop to reject/control Z->mumu is done separately unsigned int nmuonsForZ1 = 0; unsigned int nmuonsForZ2 = 0; for (unsigned int i=0; i<muonCollectionSize; i++) { const Muon& mu = muonCollection->at(i); if (!mu.isGlobalMuon()) continue; double pt = mu.pt(); if (pt>ptThrForZ1_) nmuonsForZ1++; if (pt>ptThrForZ2_) nmuonsForZ2++; } LogTrace("") << "> Z rejection: muons above " << ptThrForZ1_ << " [GeV]: " << nmuonsForZ1; LogTrace("") << "> Z rejection: muons above " << ptThrForZ2_ << " [GeV]: " << nmuonsForZ2; fill_histogram("NZ1_BEFORECUTS",nmuonsForZ1); fill_histogram("NZ2_BEFORECUTS",nmuonsForZ2); // Jet collection Handle<View<Jet> > jetCollection; if (!ev.getByLabel(jetTag_, jetCollection)) { LogError("") << ">>> JET collection does not exist !!!"; return false; } unsigned int jetCollectionSize = jetCollection->size(); int njets = 0; for (unsigned int i=0; i<jetCollectionSize; i++) { const Jet& jet = jetCollection->at(i); if (jet.et()>eJetMin_) njets++; } LogTrace("") << ">>> Total number of jets: " << jetCollectionSize; LogTrace("") << ">>> Number of jets above " << eJetMin_ << " [GeV]: " << njets; fill_histogram("NJETS_BEFORECUTS",njets); // Start counting, reject already events if possible (under FastOption flag) nall++; if (fastOption_ && !trigger_fired) return false; if (fastOption_ && nmuonsForZ1>=1 && nmuonsForZ2>=2) return false; if (fastOption_ && njets>nJetMax_) return false; // Histograms per event shouldbe done only once, so keep track of them bool hlt_hist_done = false; bool met_hist_done = false; bool nz1_hist_done = false; bool nz2_hist_done = false; bool njets_hist_done = false; // Central W->mu nu selection criteria const int NFLAGS = 13; bool muon_sel[NFLAGS]; for (unsigned int i=0; i<muonCollectionSize; i++) { for (int j=0; j<NFLAGS; ++j) { muon_sel[j] = false; } const Muon& mu = muonCollection->at(i); if (!mu.isGlobalMuon()) continue; if (mu.globalTrack().isNull()) continue; if (mu.innerTrack().isNull()) continue; LogTrace("") << "> Wsel: processing muon number " << i << "..."; reco::TrackRef gm = mu.globalTrack(); //reco::TrackRef tk = mu.innerTrack(); // Pt,eta cuts double pt = mu.pt(); double eta = mu.eta(); LogTrace("") << "\t... pt, eta: " << pt << " [GeV], " << eta;; if (pt>ptCut_) muon_sel[0] = true; else if (fastOption_) continue; if (fabs(eta)<etaCut_) muon_sel[1] = true; else if (fastOption_) continue; // d0, chi2, nhits quality cuts double dxy = gm->dxy(beamSpotHandle->position()); double normalizedChi2 = gm->normalizedChi2(); double validmuonhits=gm->hitPattern().numberOfValidMuonHits(); //double standalonehits=mu.outerTrack()->numberOfValidHits(); double trackerHits = gm->hitPattern().numberOfValidTrackerHits(); LogTrace("") << "\t... dxy, normalizedChi2, trackerHits, isTrackerMuon?: " << dxy << " [cm], " << normalizedChi2 << ", " << trackerHits << ", " << mu.isTrackerMuon(); if (fabs(dxy)<dxyCut_) muon_sel[2] = true; else if (fastOption_) continue; if (muon::isGoodMuon(mu,muon::GlobalMuonPromptTight)) muon_sel[3] = true; else if (fastOption_) continue; if (trackerHits>=trackerHitsCut_) muon_sel[4] = true; else if (fastOption_) continue; if (mu.isTrackerMuon()) muon_sel[5] = true; else if (fastOption_) continue; fill_histogram("PT_BEFORECUTS",pt); fill_histogram("ETA_BEFORECUTS",eta); fill_histogram("DXY_BEFORECUTS",dxy); fill_histogram("CHI2_BEFORECUTS",normalizedChi2); fill_histogram("NHITS_BEFORECUTS",trackerHits); fill_histogram("ValidMuonHits_BEFORECUTS",validmuonhits); fill_histogram("TKMU_BEFORECUTS",mu.isTrackerMuon()); // Isolation cuts double isovar = mu.isolationR03().sumPt; if (isCombinedIso_) { isovar += mu.isolationR03().emEt; isovar += mu.isolationR03().hadEt; } if (isRelativeIso_) isovar /= pt; if (isovar<isoCut03_) muon_sel[6] = true; else if (fastOption_) continue; LogTrace("") << "\t... isolation value" << isovar <<", isolated? " << muon_sel[6]; fill_histogram("ISO_BEFORECUTS",isovar); // HLT (not mtched to muon for the time being) if (trigger_fired) muon_sel[7] = true; else if (fastOption_) continue; // MET/MT cuts double w_et = met_et+ mu.pt(); double w_px = met_px+ mu.px(); double w_py = met_py+mu.py(); double massT = w_et*w_et - w_px*w_px - w_py*w_py; massT = (massT>0) ? sqrt(massT) : 0; LogTrace("") << "\t... W mass, W_et, W_px, W_py: " << massT << ", " << w_et << ", " << w_px << ", " << w_py << " [GeV]"; if (massT>mtMin_ && massT<mtMax_) muon_sel[8] = true; else if (fastOption_) continue; fill_histogram("MT_BEFORECUTS",massT); if (met_et>metMin_ && met_et<metMax_) muon_sel[9] = true; else if (fastOption_) continue; // Acoplanarity cuts Geom::Phi<double> deltaphi(mu.phi()-atan2(met_py,met_px)); double acop = deltaphi.value(); if (acop<0) acop = - acop; acop = M_PI - acop; LogTrace("") << "\t... acoplanarity: " << acop; if (acop<acopCut_) muon_sel[10] = true; else if (fastOption_) continue; fill_histogram("ACOP_BEFORECUTS",acop); // Remaining flags (from global event information) if (nmuonsForZ1<1 || nmuonsForZ2<2) muon_sel[11] = true; else if (fastOption_) continue; if (njets<=nJetMax_) muon_sel[12] = true; else if (fastOption_) continue; if (fastOption_) { all_sel = true; break; } else { // Collect necessary flags "per muon" int flags_passed = 0; bool rec_sel_this = true; bool iso_sel_this = true; bool hlt_sel_this = true; bool met_sel_this = true; bool all_sel_this = true; for (int j=0; j<NFLAGS; ++j) { if (muon_sel[j]) flags_passed += 1; if (j<6 && !muon_sel[j]) rec_sel_this = false; if (j<7 && !muon_sel[j]) iso_sel_this = false; if (j<8 && !muon_sel[j]) hlt_sel_this = false; if (j<11 && !muon_sel[j]) met_sel_this = false; if (!muon_sel[j]) all_sel_this = false; } // "rec" => pt,eta and quality cuts are satisfied if (rec_sel_this) rec_sel = true; // "iso" => "rec" AND "muon is isolated" if (iso_sel_this) iso_sel = true; // "hlt" => "iso" AND "event is triggered" if (hlt_sel_this) hlt_sel = true; // "met" => "hlt" AND "MET/MT and acoplanarity cuts" if (met_sel_this) met_sel = true; // "all" => "met" AND "Z/top rejection cuts" if (all_sel_this) all_sel = true; // Do N-1 histograms now (and only once for global event quantities) if (flags_passed >= (NFLAGS-1)) { if (!muon_sel[0] || flags_passed==NFLAGS) fill_histogram("PT_LASTCUT",pt); if (!muon_sel[1] || flags_passed==NFLAGS) fill_histogram("ETA_LASTCUT",eta); if (!muon_sel[2] || flags_passed==NFLAGS) fill_histogram("DXY_LASTCUT",dxy); if (!muon_sel[3] || flags_passed==NFLAGS) fill_histogram("CHI2_LASTCUT",normalizedChi2); fill_histogram("ValidMuonHits_LASTCUT",validmuonhits); if (!muon_sel[4] || flags_passed==NFLAGS) fill_histogram("NHITS_LASTCUT",trackerHits); if (!muon_sel[5] || flags_passed==NFLAGS) fill_histogram("TKMU_LASTCUT",mu.isTrackerMuon()); if (!muon_sel[6] || flags_passed==NFLAGS) fill_histogram("ISO_LASTCUT",isovar); if (!muon_sel[7] || flags_passed==NFLAGS) if (!hlt_hist_done) fill_histogram("TRIG_LASTCUT",trigger_fired); hlt_hist_done = true; if (!muon_sel[8] || flags_passed==NFLAGS) fill_histogram("MT_LASTCUT",massT); if (!muon_sel[9] || flags_passed==NFLAGS) if (!met_hist_done) fill_histogram("MET_LASTCUT",met_et); met_hist_done = true; if (!muon_sel[10] || flags_passed==NFLAGS) fill_histogram("ACOP_LASTCUT",acop); if (!muon_sel[11] || flags_passed==NFLAGS) if (!nz1_hist_done) fill_histogram("NZ1_LASTCUT",nmuonsForZ1); nz1_hist_done = true; if (!muon_sel[11] || flags_passed==NFLAGS) if (!nz2_hist_done) fill_histogram("NZ2_LASTCUT",nmuonsForZ2); nz2_hist_done = true; if (!muon_sel[12] || flags_passed==NFLAGS) if (!njets_hist_done) fill_histogram("NJETS_LASTCUT",njets); njets_hist_done = true; } } } // Collect final flags if (!fastOption_) { if (rec_sel) nrec++; if (iso_sel) niso++; if (hlt_sel) nhlt++; if (met_sel) nmet++; } if (all_sel) { nsel++; LogTrace("") << ">>>> Event ACCEPTED"; } else { LogTrace("") << ">>>> Event REJECTED"; } return all_sel; }
void WMuNuValidator::init_histograms | ( | ) |
Definition at line 150 of file WMuNuValidator.cc.
References data, eJetMin_, h1_, i, isCombinedIso_, isRelativeIso_, jetTag_, edm::InputTag::label(), M_PI, TFileDirectory::make(), metTag_, muonTrig_, ptThrForZ1_, and ptThrForZ2_.
Referenced by beginJob().
{ edm::Service<TFileService> fs; TFileDirectory subDir0 = fs->mkdir("BeforeCuts"); TFileDirectory subDir1 = fs->mkdir("LastCut"); TFileDirectory* subDir[2]; subDir[0] = &subDir0; subDir[1] = &subDir1; char chname[256] = ""; char chtitle[256] = ""; std::string chsuffix[2] = { "_BEFORECUTS", "_LASTCUT" }; for (int i=0; i<2; ++i) { snprintf(chname, 255, "PT%s", chsuffix[i].data()); snprintf(chtitle, 255, "Muon transverse momentum [GeV]"); h1_[chname] = subDir[i]->make<TH1D>(chname,chtitle,100,0.,100.); snprintf(chname, 255, "ETA%s", chsuffix[i].data()); snprintf(chtitle, 255, "Muon pseudo-rapidity"); h1_[chname] = subDir[i]->make<TH1D>(chname,chtitle,50,-2.5,2.5); snprintf(chname, 255, "DXY%s", chsuffix[i].data()); snprintf(chtitle, 255, "Muon transverse distance to beam spot [cm]"); h1_[chname] = subDir[i]->make<TH1D>(chname,chtitle,100,-0.5,0.5); snprintf(chname, 255, "CHI2%s", chsuffix[i].data()); snprintf(chtitle, 255, "Normalized Chi2, inner track fit"); h1_[chname] = subDir[i]->make<TH1D>(chname,chtitle,100,0.,100.); snprintf(chname, 255, "NHITS%s", chsuffix[i].data()); snprintf(chtitle, 255, "Number of hits, inner track"); h1_[chname] = subDir[i]->make<TH1D>(chname,chtitle,40,-0.5,39.5); snprintf(chname, 255, "ValidMuonHits%s", chsuffix[i].data()); snprintf(chtitle, 255, "number Of Valid Muon Hits"); h1_[chname] = subDir[i]->make<TH1D>(chname,chtitle,40,-0.5,39.5); snprintf(chname, 255, "TKMU%s", chsuffix[i].data()); snprintf(chtitle, 255, "Tracker-muon flag (for global muons)"); h1_[chname] = subDir[i]->make<TH1D>(chname,chtitle,2,-0.5,1.5); snprintf(chname, 255, "ISO%s", chsuffix[i].data()); if (isRelativeIso_) { if (isCombinedIso_) { snprintf(chtitle, 255, "Relative (combined) isolation variable"); } else { snprintf(chtitle, 255, "Relative (tracker) isolation variable"); } h1_[chname] = subDir[i]->make<TH1D>(chname,chtitle, 100, 0., 1.); } else { if (isCombinedIso_) { snprintf(chtitle, 255, "Absolute (combined) isolation variable [GeV]"); } else { snprintf(chtitle, 255, "Absolute (tracker) isolation variable [GeV]"); } h1_[chname] = subDir[i]->make<TH1D>(chname,chtitle, 100, 0., 20.); } snprintf(chname, 255, "TRIG%s", chsuffix[i].data()); snprintf(chtitle, 255, "Trigger response (bit %s)", muonTrig_.data()); h1_[chname] = subDir[i]->make<TH1D>(chname,chtitle,2,-0.5,1.5); snprintf(chname, 255, "MT%s", chsuffix[i].data()); snprintf(chtitle, 255, "Transverse mass (%s) [GeV]", metTag_.label().data()); h1_[chname] = subDir[i]->make<TH1D>(chname,chtitle,150,0.,300.); snprintf(chname, 255, "MET%s", chsuffix[i].data()); snprintf(chtitle, 255, "Missing transverse energy (%s) [GeV]", metTag_.label().data()); h1_[chname] = subDir[i]->make<TH1D>(chname,chtitle,100,0.,200.); snprintf(chname, 255, "ACOP%s", chsuffix[i].data()); snprintf(chtitle, 255, "MU-MET (%s) acoplanarity", metTag_.label().data()); h1_[chname] = subDir[i]->make<TH1D>(chname,chtitle,50,0.,M_PI); snprintf(chname, 255, "NZ1%s", chsuffix[i].data()); snprintf(chtitle, 255, "Z rejection: number of muons above %.2f GeV", ptThrForZ1_); h1_[chname] = subDir[i]->make<TH1D>(chname,chtitle, 10, -0.5, 9.5); snprintf(chname, 255, "NZ2%s", chsuffix[i].data()); snprintf(chtitle, 255, "Z rejection: number of muons above %.2f GeV", ptThrForZ2_); h1_[chname] = subDir[i]->make<TH1D>(chname,chtitle, 10, -0.5, 9.5); snprintf(chname, 255, "NJETS%s", chsuffix[i].data()); snprintf(chtitle, 255, "Number of jets (%s) above %.2f GeV", jetTag_.label().data(), eJetMin_); h1_[chname] = subDir[i]->make<TH1D>(chname,chtitle,10,-0.5,9.5); } }
double WMuNuValidator::acopCut_ [private] |
Definition at line 47 of file WMuNuValidator.cc.
Referenced by filter().
double WMuNuValidator::dxyCut_ [private] |
Definition at line 49 of file WMuNuValidator.cc.
Referenced by filter().
double WMuNuValidator::eJetMin_ [private] |
Definition at line 57 of file WMuNuValidator.cc.
Referenced by filter(), and init_histograms().
double WMuNuValidator::etaCut_ [private] |
Definition at line 39 of file WMuNuValidator.cc.
Referenced by filter().
bool WMuNuValidator::fastOption_ [private] |
Definition at line 30 of file WMuNuValidator.cc.
Referenced by beginJob(), endJob(), fill_histogram(), and filter().
std::map<std::string,TH1D*> WMuNuValidator::h1_ [private] |
Definition at line 67 of file WMuNuValidator.cc.
Referenced by fill_histogram(), and init_histograms().
bool WMuNuValidator::isAlsoTrackerMuon_ [private] |
Definition at line 52 of file WMuNuValidator.cc.
bool WMuNuValidator::isCombinedIso_ [private] |
Definition at line 41 of file WMuNuValidator.cc.
Referenced by filter(), and init_histograms().
double WMuNuValidator::isoCut03_ [private] |
Definition at line 42 of file WMuNuValidator.cc.
Referenced by filter().
bool WMuNuValidator::isRelativeIso_ [private] |
Definition at line 40 of file WMuNuValidator.cc.
Referenced by filter(), and init_histograms().
edm::InputTag WMuNuValidator::jetTag_ [private] |
Definition at line 35 of file WMuNuValidator.cc.
Referenced by filter(), and init_histograms().
bool WMuNuValidator::metIncludesMuons_ [private] |
Definition at line 34 of file WMuNuValidator.cc.
Referenced by filter().
double WMuNuValidator::metMax_ [private] |
Definition at line 46 of file WMuNuValidator.cc.
Referenced by filter().
double WMuNuValidator::metMin_ [private] |
Definition at line 45 of file WMuNuValidator.cc.
Referenced by filter().
edm::InputTag WMuNuValidator::metTag_ [private] |
Definition at line 33 of file WMuNuValidator.cc.
Referenced by filter(), and init_histograms().
double WMuNuValidator::mtMax_ [private] |
Definition at line 44 of file WMuNuValidator.cc.
Referenced by filter().
double WMuNuValidator::mtMin_ [private] |
Definition at line 43 of file WMuNuValidator.cc.
Referenced by filter().
edm::InputTag WMuNuValidator::muonTag_ [private] |
Definition at line 32 of file WMuNuValidator.cc.
Referenced by filter().
const std::string WMuNuValidator::muonTrig_ [private] |
Definition at line 37 of file WMuNuValidator.cc.
Referenced by filter(), and init_histograms().
unsigned int WMuNuValidator::nall [private] |
Definition at line 60 of file WMuNuValidator.cc.
Referenced by beginJob(), endJob(), and filter().
unsigned int WMuNuValidator::nhlt [private] |
Definition at line 63 of file WMuNuValidator.cc.
Referenced by beginJob(), endJob(), and filter().
unsigned int WMuNuValidator::niso [private] |
Definition at line 62 of file WMuNuValidator.cc.
Referenced by beginJob(), endJob(), and filter().
int WMuNuValidator::nJetMax_ [private] |
Definition at line 58 of file WMuNuValidator.cc.
Referenced by filter().
unsigned int WMuNuValidator::nmet [private] |
Definition at line 64 of file WMuNuValidator.cc.
Referenced by beginJob(), endJob(), and filter().
double WMuNuValidator::normalizedChi2Cut_ [private] |
Definition at line 50 of file WMuNuValidator.cc.
unsigned int WMuNuValidator::nrec [private] |
Definition at line 61 of file WMuNuValidator.cc.
Referenced by beginJob(), endJob(), and filter().
unsigned int WMuNuValidator::nsel [private] |
Definition at line 65 of file WMuNuValidator.cc.
Referenced by beginJob(), endJob(), and filter().
double WMuNuValidator::ptCut_ [private] |
Definition at line 38 of file WMuNuValidator.cc.
Referenced by filter().
double WMuNuValidator::ptThrForZ1_ [private] |
Definition at line 54 of file WMuNuValidator.cc.
Referenced by filter(), and init_histograms().
double WMuNuValidator::ptThrForZ2_ [private] |
Definition at line 55 of file WMuNuValidator.cc.
Referenced by filter(), and init_histograms().
int WMuNuValidator::trackerHitsCut_ [private] |
Definition at line 51 of file WMuNuValidator.cc.
Referenced by filter().
edm::InputTag WMuNuValidator::trigTag_ [private] |
Definition at line 31 of file WMuNuValidator.cc.
Referenced by filter().