#include <TrigResRateMon.h>
Module to monitor rates from TriggerResults
Implementation: <Notes on="" implementation>="">
Definition at line 85 of file TrigResRateMon.h.
TrigResRateMon::TrigResRateMon | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 15 of file TrigResRateMon.cc.
References DQMStore::book1D(), custompathnamepairs_, dbe_, dirname_, doCombineRuns_, doVBTFMuon_, dRMax_, dRMaxElectronMuon_, dxyCut_, fCustomBXPath, fIsSetup, fLumiFlag, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), hltPaths_, isAlsoTrackerMuon_, LogDebug, LSsize_, ME_HLT_BX, ME_HLT_CUSTOM_BX, ME_HLTAll_LS, muonHitsCut_, nBins2D_, nBins_, nBinsDR_, nBinsOneOverEt_, Nbx_, nLS_, nMatchesCut_, normalizedChi2Cut_, NULL, cmsCodeRules::cppFunctionSkipper::operator, pathsIndividualHLTPathsPerLSFolder_, pathsSummaryFilterCountsFolder_, pathsSummaryFolder_, pathsSummaryHLTCorrelationsFolder_, pathsSummaryHLTPathsPerBXFolder_, pathsSummaryHLTPathsPerLSFolder_, pathsSummaryStreamsFolder_, pixelHitsCut_, plotAll_, processname_, ptMax_, ptMin_, recHitsEBTag_, recHitsEETag_, referenceBX_, scalersSelect, DQMStore::setCurrentFolder(), DQMStore::setVerbose(), specialPaths_, sumEtMin_, thresholdFactor_, trackerHitsCut_, triggerResultsLabel_, and triggerSummaryLabel_.
: currentRun_(-99) { LogDebug("TrigResRateMon") << "constructor...." ; fIsSetup = false; dbe_ = Service < DQMStore > ().operator->(); if ( ! dbe_ ) { LogInfo("TrigResRateMon") << "unabel to get DQMStore service?"; } if (iConfig.getUntrackedParameter < bool > ("DQMStore", false)) { dbe_->setVerbose(0); } dirname_ = iConfig.getUntrackedParameter("dirname", std::string("HLT/TrigResults/")); //dirname_ += iConfig.getParameter<std::string>("@module_label"); if (dbe_ != 0 ) { dbe_->setCurrentFolder(dirname_); } doCombineRuns_ = iConfig.getUntrackedParameter<bool>("doCombineRuns", false); doVBTFMuon_ = iConfig.getUntrackedParameter<bool>("doVBTFMuon", true); processname_ = iConfig.getParameter<std::string>("processname"); fCustomBXPath = iConfig.getUntrackedParameter<std::string>("customBXPath", std::string("HLT_MinBiasBSC")); referenceBX_ = iConfig.getUntrackedParameter<unsigned int>("referenceBX",51); Nbx_ = iConfig.getUntrackedParameter<unsigned int>("Nbx",3564); // plotting paramters ptMin_ = iConfig.getUntrackedParameter<double>("ptMin",0.); ptMax_ = iConfig.getUntrackedParameter<double>("ptMax",1000.); nBins_ = iConfig.getUntrackedParameter<unsigned int>("Nbins",20); nBins2D_ = iConfig.getUntrackedParameter<unsigned int>("Nbins2D",40); dRMax_ = iConfig.getUntrackedParameter<double>("dRMax",1.0); dRMaxElectronMuon_ = iConfig.getUntrackedParameter<double>("dRMaxElectronMuon",0.3); nBinsDR_ = iConfig.getUntrackedParameter<unsigned int>("NbinsDR",10); nBinsOneOverEt_ = iConfig.getUntrackedParameter<unsigned int>("NbinsOneOverEt",10000); nLS_ = iConfig.getUntrackedParameter<unsigned int>("NLuminositySegments",10); LSsize_ = iConfig.getUntrackedParameter<double>("LuminositySegmentSize",23); thresholdFactor_ = iConfig.getUntrackedParameter<double>("thresholdFactor",1.0); plotAll_ = iConfig.getUntrackedParameter<bool>("plotAll", false); // this is the list of paths to look at. std::vector<edm::ParameterSet> paths = iConfig.getParameter<std::vector<edm::ParameterSet> >("paths"); for(std::vector<edm::ParameterSet>::iterator pathconf = paths.begin() ; pathconf != paths.end(); pathconf++) { custompathnamepairs_.push_back( make_pair( pathconf->getParameter<std::string>("pathname"), pathconf->getParameter<std::string>("denompathname") ) ); } if (hltPaths_.size() > 0) { // book a histogram of scalers scalersSelect = dbe_->book1D("selectedScalers","Selected Scalers", hltPaths_.size(), 0.0, (double)hltPaths_.size()); } triggerSummaryLabel_ = iConfig.getParameter<edm::InputTag>("triggerSummaryLabel"); triggerResultsLabel_ = iConfig.getParameter<edm::InputTag>("triggerResultsLabel"); /* muonRecoCollectionName_ = iConfig.getUntrackedParameter("muonRecoCollectionName", std::string("muons")); electronEtaMax_ = iConfig.getUntrackedParameter<double>("electronEtaMax",2.5); electronEtMin_ = iConfig.getUntrackedParameter<double>("electronEtMin",3.0); electronDRMatch_ =iConfig.getUntrackedParameter<double>("electronDRMatch",0.3); electronL1DRMatch_ =iConfig.getUntrackedParameter<double>("electronL1DRMatch",0.3); muonEtaMax_ = iConfig.getUntrackedParameter<double>("muonEtaMax",2.1); muonEtMin_ = iConfig.getUntrackedParameter<double>("muonEtMin",0.0); muonDRMatch_ =iConfig.getUntrackedParameter<double>("muonDRMatch",0.3); muonL1DRMatch_ =iConfig.getUntrackedParameter<double>("muonL1DRMatch",0.3); tauEtaMax_ = iConfig.getUntrackedParameter<double>("tauEtaMax",2.5); tauEtMin_ = iConfig.getUntrackedParameter<double>("tauEtMin",3.0); tauDRMatch_ =iConfig.getUntrackedParameter<double>("tauDRMatch",0.3); tauL1DRMatch_ =iConfig.getUntrackedParameter<double>("tauL1DRMatch",0.5); jetEtaMax_ = iConfig.getUntrackedParameter<double>("jetEtaMax",5.0); jetEtMin_ = iConfig.getUntrackedParameter<double>("jetEtMin",10.0); jetDRMatch_ =iConfig.getUntrackedParameter<double>("jetDRMatch",0.3); jetL1DRMatch_ =iConfig.getUntrackedParameter<double>("jetL1DRMatch",0.5); bjetEtaMax_ = iConfig.getUntrackedParameter<double>("bjetEtaMax",2.5); bjetEtMin_ = iConfig.getUntrackedParameter<double>("bjetEtMin",10.0); bjetDRMatch_ =iConfig.getUntrackedParameter<double>("bjetDRMatch",0.3); bjetL1DRMatch_ =iConfig.getUntrackedParameter<double>("bjetL1DRMatch",0.3); photonEtaMax_ = iConfig.getUntrackedParameter<double>("photonEtaMax",2.5); photonEtMin_ = iConfig.getUntrackedParameter<double>("photonEtMin",3.0); photonDRMatch_ =iConfig.getUntrackedParameter<double>("photonDRMatch",0.3); photonL1DRMatch_ =iConfig.getUntrackedParameter<double>("photonL1DRMatch",0.3); trackEtaMax_ = iConfig.getUntrackedParameter<double>("trackEtaMax",2.5); trackEtMin_ = iConfig.getUntrackedParameter<double>("trackEtMin",3.0); trackDRMatch_ =iConfig.getUntrackedParameter<double>("trackDRMatch",0.3); trackL1DRMatch_ =iConfig.getUntrackedParameter<double>("trackL1DRMatch",0.3); metEtaMax_ = iConfig.getUntrackedParameter<double>("metEtaMax",5); metMin_ = iConfig.getUntrackedParameter<double>("metMin",10.0); metDRMatch_ =iConfig.getUntrackedParameter<double>("metDRMatch",0.5); metL1DRMatch_ =iConfig.getUntrackedParameter<double>("metL1DRMatch",0.5); htEtaMax_ = iConfig.getUntrackedParameter<double>("htEtaMax",5); htMin_ = iConfig.getUntrackedParameter<double>("htMin",10.0); htDRMatch_ =iConfig.getUntrackedParameter<double>("htDRMatch",0.5); htL1DRMatch_ =iConfig.getUntrackedParameter<double>("htL1DRMatch",0.5); */ sumEtMin_ = iConfig.getUntrackedParameter<double>("sumEtMin",10.0); // Muon quality cuts dxyCut_ = iConfig.getUntrackedParameter<double>("DxyCut", 0.2); // dxy < 0.2 cm normalizedChi2Cut_ = iConfig.getUntrackedParameter<double>("NormalizedChi2Cut", 10.); // chi2/ndof (of global fit) <10.0 trackerHitsCut_ = iConfig.getUntrackedParameter<int>("TrackerHitsCut", 11); // Tracker Hits >10 pixelHitsCut_ = iConfig.getUntrackedParameter<int>("PixelHitsCut", 1); // Pixel Hits >0 muonHitsCut_ = iConfig.getUntrackedParameter<int>("MuonHitsCut", 1); // Valid Muon Hits >0 isAlsoTrackerMuon_ = iConfig.getUntrackedParameter<bool>("IsAlsoTrackerMuon", true); nMatchesCut_ = iConfig.getUntrackedParameter<int>("NMatchesCut", 2); // At least 2 Chambers with matches specialPaths_ = iConfig.getParameter<std::vector<std::string > >("SpecialPaths"); pathsSummaryFolder_ = iConfig.getUntrackedParameter ("pathsSummaryFolder",std::string("HLT/TrigResults/PathsSummary/HLT Counts/")); pathsSummaryStreamsFolder_ = iConfig.getUntrackedParameter ("pathsSummaryFolder",std::string("HLT/TrigResults/PathsSummary/")); //pathsSummaryStreamsFolder_ = iConfig.getUntrackedParameter ("pathsSummaryFolder",std::string("HLT/TrigResults/PathsSummary/Streams/")); pathsSummaryHLTCorrelationsFolder_ = iConfig.getUntrackedParameter ("hltCorrelationsFolder",std::string("HLT/TrigResults/PathsSummary/HLT Correlations/")); pathsSummaryFilterCountsFolder_ = iConfig.getUntrackedParameter ("filterCountsFolder",std::string("HLT/TrigResults/PathsSummary/Filters Counts/")); pathsSummaryHLTPathsPerLSFolder_ = iConfig.getUntrackedParameter ("individualPathsPerLSFolder",std::string("HLT/TrigResults/PathsSummary/HLT LS/")); pathsIndividualHLTPathsPerLSFolder_ = iConfig.getUntrackedParameter ("individualPathsPerLSFolder",std::string("HLT/TrigResults/PathsSummary/HLT LS/Paths/")); pathsSummaryHLTPathsPerBXFolder_ = iConfig.getUntrackedParameter ("individualPathsPerBXFolder",std::string("HLT/TrigResults/PathsSummary/HLT BX/")); fLumiFlag = true; ME_HLTAll_LS = NULL; ME_HLT_BX = NULL; ME_HLT_CUSTOM_BX = NULL; //jetID = new reco::helper::JetIDHelper(iConfig.getParameter<ParameterSet>("JetIDParams")); recHitsEBTag_ = iConfig.getUntrackedParameter<edm::InputTag>("RecHitsEBTag",edm::InputTag("reducedEcalRecHitsEB")); recHitsEETag_ = iConfig.getUntrackedParameter<edm::InputTag>("RecHitsEETag",edm::InputTag("reducedEcalRecHitsEE")); }
TrigResRateMon::~TrigResRateMon | ( | ) |
Definition at line 173 of file TrigResRateMon.cc.
{ // do anything here that needs to be done at desctruction time // (e.g. close files, deallocate resources etc.) }
void TrigResRateMon::analyze | ( | const edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Implements edm::EDAnalyzer.
Definition at line 188 of file TrigResRateMon.cc.
References fillHltMatrix(), edm::Event::getByLabel(), hltPathsDiagonal_, edm::InputTag::instance(), edm::InputTag::label(), LogDebug, nev_, edm::Event::triggerNames(), triggerResults_, triggerResultsLabel_, and v.
{ //if(! fLumiFlag ) return; using namespace edm; using namespace trigger; ++nev_; LogDebug("TrigResRateMon")<< " analyze...." ; edm::Handle<TriggerResults> triggerResults; iEvent.getByLabel(triggerResultsLabel_,triggerResults); if(!triggerResults.isValid()) { edm::InputTag triggerResultsLabelFU(triggerResultsLabel_.label(),triggerResultsLabel_.instance(), "FU"); iEvent.getByLabel(triggerResultsLabelFU,triggerResults); if(!triggerResults.isValid()) { edm::LogInfo("TrigResRateMon") << "TriggerResults not found, " "skipping event"; return; } } triggerResults_ = triggerResults; const edm::TriggerNames & triggerNames = iEvent.triggerNames(*triggerResults); //int npath = triggerResults->size(); // int bx = iEvent.bunchCrossing(); /* // Fill HLTPassed_Correlation Matrix bin (i,j) = (Any,Any) // -------------------------------------------------------- int anyBinNumber = ME_HLTPassPass->getTH2F()->GetXaxis()->FindBin("HLT_Any"); // any triger accepted if(triggerResults->accept()){ ME_HLTPassPass->Fill(anyBinNumber-1,anyBinNumber-1);//binNumber1 = 0 = first filter } */ fillHltMatrix(triggerNames); return; // Loop over paths // -------------------- for(PathInfoCollection::iterator v = hltPathsDiagonal_.begin(); v!= hltPathsDiagonal_.end(); ++v ) { /* LogTrace("TrigResRateMon") << " unique path " << v->getPath() << endl; unsigned int pathByIndex = triggerNames.triggerIndex(v->getPath()); // path must be in the menu if(pathByIndex >= triggerResults_->size() ) continue; // Fill HLTPassed Matrix and HLTPassFail Matrix // -------------------------------------------------------- if(triggerResults->accept(pathByIndex)){ int pathBinNumber = ME_HLT_BX->getTH2F()->GetYaxis()->FindBin(v->getPath().c_str()); ME_HLT_BX->Fill(bx,pathBinNumber-1); //if(hasHLTPassed(fCustomBXPath,triggerNames)) { ME_HLT_CUSTOM_BX->Fill(bx,pathBinNumber-1); //} } // end if accept */ /* // Fill histogram of filter ocupancy for each HLT path // --------------------------------- unsigned int lastModule = triggerResults->index(pathByIndex); //check if hlt passed bool hltPathPassed = triggerResults->accept(pathByIndex); //go through the list of filters for(unsigned int filt = 0; filt < v->filtersAndIndices.size(); filt++){ int binNumber = v->getFiltersHisto()->getTH1()->GetXaxis()->FindBin(v->filtersAndIndices[filt].first.c_str()); // if hlt path passed, then all the modules passed // otherwise the module that issued the decision is the first fail // this means that all modules before it passed if(hltPathPassed) { v->getFiltersHisto()->Fill(binNumber-1);//binNumber1 = 0 = first filter } else if(v->filtersAndIndices[filt].second < lastModule){ v->getFiltersHisto()->Fill(binNumber-1);//binNumber1 = 0 = first filter } } // end for filt */ } // end for diag paths }
void TrigResRateMon::beginJob | ( | void | ) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 302 of file TrigResRateMon.cc.
References DQMStore::book1D(), dirname_, MonitorElement::Fill(), nev_, cmsCodeRules::cppFunctionSkipper::operator, and DQMStore::setCurrentFolder().
{ nev_ = 0; DQMStore *dbe = 0; dbe = Service<DQMStore>().operator->(); if (dbe) { dbe->setCurrentFolder(dirname_); } MonitorElement* reportSummaryME = dbe->book1D("reportSummaryMap","report Summary Map",2,0,2); if(reportSummaryME) reportSummaryME->Fill(1); }
void TrigResRateMon::beginLuminosityBlock | ( | const edm::LuminosityBlock & | lumiSeg, |
const edm::EventSetup & | c | ||
) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 1397 of file TrigResRateMon.cc.
{ //int lumi = int(lumiSeg.id().luminosityBlock()); //if(lumi < 74 || lumi > 77) fLumiFlag = false; //else fLumiFlag = true; }
void TrigResRateMon::beginRun | ( | const edm::Run & | run, |
const edm::EventSetup & | c | ||
) | [private, virtual] |
add dataset name and thier triggers to the list
Reimplemented from edm::EDAnalyzer.
Definition at line 329 of file TrigResRateMon.cc.
References bjetEtaMax_, DQMStore::book1D(), custompathnamepairs_, HLTConfigProvider::datasetContent(), dbe_, dirname_, doCombineRuns_, electronEtaMax_, fGroupL1TempCountPair, fGroupName, fGroupNamePathsPair, fGroupTempCountPair, filters, first, fIsSetup, fPathBxTempCountPair, fPathTempCountPair, g, getL1ConditionModuleName(), getThresholdFromName(), getTriggerTypeParsePathName(), hltConfig_, hltPaths_, hltPathsDiagonal_, i, edm::RunBase::id(), HLTConfigProvider::init(), j, jetEtaMax_, gen::k, LogDebug, LogTrace, metEtaMax_, HLTConfigProvider::moduleIndex(), HLTConfigProvider::moduleLabels(), HLTConfigProvider::moduleType(), muonEtaMax_, n, nLS_, cmsCodeRules::cppFunctionSkipper::operator, pathName(), tests::test_downloadMethods::pathname, pathsIndividualHLTPathsPerLSFolder_, pathsSummaryFilterCountsFolder_, pathsSummaryFolder_, photonEtaMax_, plotAll_, processname_, ExpressReco_HICollisions_FallBack::ptMax, ExpressReco_HICollisions_FallBack::ptMin, edm::second(), MonitorElement::setAxisTitle(), MonitorElement::setBinLabel(), DQMStore::setCurrentFolder(), setupHltBxPlots(), setupHltLsPlots(), setupHltMatrix(), HLTConfigProvider::size(), HLTConfigProvider::streamContent(), tauEtaMax_, indexGen::title, trackEtaMax_, trigger::TriggerBJet, trigger::TriggerElectron, trigger::TriggerJet, trigger::TriggerL1CenJet, trigger::TriggerL1ETM, trigger::TriggerL1ForJet, trigger::TriggerL1IsoEG, trigger::TriggerL1Mu, trigger::TriggerL1NoIsoEG, trigger::TriggerL1TauJet, trigger::TriggerMET, trigger::TriggerMuon, HLTConfigProvider::triggerName(), trigger::TriggerPhoton, trigger::TriggerTau, trigger::TriggerTET, trigger::TriggerTrack, and v.
{ LogDebug("TrigResRateMon") << "beginRun, run " << run.id(); if(fIsSetup) return; // HLT config does not change within runs! bool changed=false; if (!hltConfig_.init(run, c, processname_, changed)) { processname_ = "FU"; if (!hltConfig_.init(run, c, processname_, changed)){ LogDebug("TrigResRateMon") << "HLTConfigProvider failed to initialize."; } // check if trigger name in (new) config // cout << "Available TriggerNames are: " << endl; // hltConfig_.dump("Triggers"); } if (1) { DQMStore *dbe = 0; dbe = Service<DQMStore>().operator->(); if (dbe) { dbe->setCurrentFolder(dirname_); } const unsigned int n(hltConfig_.size()); if (plotAll_){ for (unsigned int j=0; j!=n; ++j) { std::string pathname = hltConfig_.triggerName(j); string l1pathname = getL1ConditionModuleName(pathname); int l1ModuleIndex = hltConfig_.moduleIndex(pathname, l1pathname); int objectType = getTriggerTypeParsePathName(pathname); for (unsigned int i=0; i!=n; ++i) { std::string denompathname = hltConfig_.triggerName(i); int denomobjectType = getTriggerTypeParsePathName(denompathname); std::string filtername("dummy"); float ptMin = 0.0; float ptMax = 100.0; if (plotAll_ && denomobjectType == objectType && objectType != 0) { int hltThreshold = getThresholdFromName(pathname); int l1Threshold = getThresholdFromName(l1pathname); hltPaths_.push_back(PathInfo(denompathname, pathname, l1pathname, l1ModuleIndex, filtername, processname_, objectType, ptMin, ptMax, hltThreshold, l1Threshold)); } } } } // end if plotAll else { // plot all diagonal combinations plus any other specified pairs for (unsigned int i=0; i!=n; ++i) { std::string denompathname = ""; std::string pathname = hltConfig_.triggerName(i); //parse pathname to guess object type int objectType = getTriggerTypeParsePathName(pathname); string l1pathname = getL1ConditionModuleName(pathname); int l1ModuleIndex = hltConfig_.moduleIndex(pathname, l1pathname); std::string filtername("dummy"); float ptMin = 0.0; float ptMax = 100.0; if (objectType == trigger::TriggerPhoton) ptMax = 100.0; if (objectType == trigger::TriggerElectron) ptMax = 100.0; if (objectType == trigger::TriggerMuon) ptMax = 150.0; if (objectType == trigger::TriggerTau) ptMax = 100.0; if (objectType == trigger::TriggerJet) ptMax = 300.0; if (objectType == trigger::TriggerBJet) ptMax = 300.0; if (objectType == trigger::TriggerMET) ptMax = 300.0; if (objectType == trigger::TriggerTET) ptMax = 300.0; if (objectType == trigger::TriggerTrack) ptMax = 100.0; // keep track of all paths, except for FinalPath if (objectType != -1 && pathname.find("FinalPath") == std::string::npos){ int hltThreshold = getThresholdFromName(pathname); int l1Threshold = getThresholdFromName(l1pathname); hltPaths_.push_back(PathInfo(denompathname, pathname, l1pathname, l1ModuleIndex, filtername, processname_, objectType, ptMin, ptMax, hltThreshold, l1Threshold)); hltPathsDiagonal_.push_back(PathInfo(denompathname, pathname, l1pathname, l1ModuleIndex, filtername, processname_, objectType, ptMin, ptMax, hltThreshold, l1Threshold)); } } // end for i // now loop over denom/num path pairs specified in cfg, // recording the off-diagonal ones for (std::vector<std::pair<std::string, std::string> >::iterator custompathnamepair = custompathnamepairs_.begin(); custompathnamepair != custompathnamepairs_.end(); ++custompathnamepair) { std::string numpathname = custompathnamepair->first; std::string denompathname = custompathnamepair->second; if (numpathname != denompathname) { // check that denominator exists bool founddenominator = false; for (unsigned int k=0; k!=n; ++k) { string n_pathname = hltConfig_.triggerName(k); if (n_pathname.find(denompathname) != std::string::npos) { LogDebug("TrigResRateMon") << "denompathname is selected to be = " << n_pathname << endl;; founddenominator = true; break; } } if (!founddenominator) { edm::LogInfo("TrigResRateMon") << "denompathname not found, go to the next pair numearator-denominator" << endl; // go to the next pair continue; } // check that numerator exists bool foundnumerator = false; for (unsigned int j=0; j!=n; ++j) { string pathname = hltConfig_.triggerName(j); LogDebug("TrigResRateMon") << "check if path " << pathname << " is numpathname = " << numpathname << endl; if (hltConfig_.triggerName(j).find(numpathname)!= std::string::npos) { LogDebug("TrigResRateMon") << "pathname is selected to be = " << denompathname << endl;; foundnumerator = true; } if (!foundnumerator) { edm::LogInfo("TrigResRateMon") << "pathname not found, ignoring " << pathname; continue; } string l1pathname = getL1ConditionModuleName(pathname); int l1ModuleIndex = hltConfig_.moduleIndex(pathname, l1pathname); int objectType = getTriggerTypeParsePathName(pathname); std::string filtername("dummy"); float ptMin = 0.0; float ptMax = 100.0; if (objectType == trigger::TriggerPhoton) ptMax = 100.0; if (objectType == trigger::TriggerElectron) ptMax = 100.0; if (objectType == trigger::TriggerMuon) ptMax = 150.0; if (objectType == trigger::TriggerTau) ptMax = 100.0; if (objectType == trigger::TriggerJet) ptMax = 300.0; if (objectType == trigger::TriggerBJet) ptMax = 300.0; if (objectType == trigger::TriggerMET) ptMax = 300.0; if (objectType == trigger::TriggerTET) ptMax = 300.0; if (objectType == trigger::TriggerTrack) ptMax = 100.0; // monitor regardless of the objectType of the path if (objectType != 0) { int hltThreshold = getThresholdFromName(pathname); int l1Threshold = getThresholdFromName(l1pathname); hltPaths_.push_back(PathInfo(denompathname, pathname, l1pathname, l1ModuleIndex, filtername, processname_, objectType, ptMin, ptMax, hltThreshold, l1Threshold)); } } // end for j, loop over paths } // end if not same num and denominator } // end for pair } // end else /* vector<string> muonPaths; vector<string> egammaPaths; vector<string> tauPaths; vector<string> jetmetPaths; vector<string> restPaths; */ vector<string> allPaths; // fill vectors of Muon, Egamma, JetMET, Rest, and Special paths for(PathInfoCollection::iterator v = hltPathsDiagonal_.begin(); v!= hltPathsDiagonal_.end(); ++v ) { std::string pathName = v->getPath(); //int objectType = v->getObjectType(); vector<int> tempCount(5,0); fPathTempCountPair.push_back(make_pair(pathName,0)); fPathBxTempCountPair.push_back(make_pair(pathName,tempCount)); allPaths.push_back(pathName); /* switch (objectType) { case trigger::TriggerMuon : muonPaths.push_back(pathName); break; case trigger::TriggerElectron : case trigger::TriggerPhoton : egammaPaths.push_back(pathName); break; case trigger::TriggerTau : tauPaths.push_back(pathName); break; case trigger::TriggerJet : case trigger::TriggerMET : jetmetPaths.push_back(pathName); break; default: restPaths.push_back(pathName); } */ } fPathTempCountPair.push_back(make_pair("HLT_Any",0)); fGroupName.push_back("AllSelectedPaths"); /* fGroupName.push_back("Muon"); fGroupName.push_back("Egamma"); fGroupName.push_back("Tau"); fGroupName.push_back("JetMET"); fGroupName.push_back("Rest"); fGroupName.push_back("Special"); */ for(unsigned int g=0; g<fGroupName.size(); g++) { //fGroupTempCountPair.push_back(make_pair(fGroupName[g],0)); //fGroupL1TempCountPair.push_back(make_pair(fGroupName[g],0)); } dbe_->setCurrentFolder(pathsSummaryFolder_.c_str()); fGroupNamePathsPair.push_back(make_pair("AllSelectedPaths",allPaths)); /* fGroupNamePathsPair.push_back(make_pair("Muon",muonPaths)); fGroupNamePathsPair.push_back(make_pair("Egamma",egammaPaths)); fGroupNamePathsPair.push_back(make_pair("Tau",tauPaths)); fGroupNamePathsPair.push_back(make_pair("JetMET",jetmetPaths)); fGroupNamePathsPair.push_back(make_pair("Rest",restPaths)); fGroupNamePathsPair.push_back(make_pair("Special",specialPaths_)); */ //vector<string> datasetNames = hltConfig_.datasetNames() ; vector<string> datasetNames = hltConfig_.streamContent("A") ; for (unsigned int i=0;i<datasetNames.size();i++) { vector<string> datasetPaths = hltConfig_.datasetContent(datasetNames[i]); fGroupNamePathsPair.push_back(make_pair(datasetNames[i],datasetPaths)); } // push stream A and its PDs fGroupNamePathsPair.push_back(make_pair("A",datasetNames)); for (unsigned int g=0;g<fGroupNamePathsPair.size();g++) { fGroupTempCountPair.push_back(make_pair(fGroupNamePathsPair[g].first,0)); fGroupL1TempCountPair.push_back(make_pair(fGroupNamePathsPair[g].first,0)); setupHltMatrix(fGroupNamePathsPair[g].first,fGroupNamePathsPair[g].second); } /* // HLT matrices from Streams const std::vector<std::string> streamNames = hltConfig_.streamNames(); for (unsigned int s=0;s<streamNames.size();s++) { vector<string> streamDatasetNames = hltConfig_.streamContent(streamNames[s]) ; if(streamNames[s] == "A") setupStreamMatrix(streamNames[s],streamDatasetNames); } */ setupHltLsPlots(); setupHltBxPlots(); for(PathInfoCollection::iterator v = hltPathsDiagonal_.begin(); v!= hltPathsDiagonal_.end(); ++v ) { // ------------------------- // // Filters for each path // // ------------------------- // get all modules in this HLT path vector<string> moduleNames = hltConfig_.moduleLabels( v->getPath() ); int numModule = 0; string moduleName, moduleType; unsigned int moduleIndex; //print module name vector<string>::const_iterator iDumpModName; for (iDumpModName = moduleNames.begin();iDumpModName != moduleNames.end();iDumpModName++) { moduleName = *iDumpModName; moduleType = hltConfig_.moduleType(moduleName); moduleIndex = hltConfig_.moduleIndex(v->getPath(), moduleName); LogTrace ("TrigResRateMon") << "Module " << numModule << " is called " << moduleName << " , type = " << moduleType << " , index = " << moduleIndex << endl; numModule++; if((moduleType.find("Filter") != string::npos && moduleType.find("HLTTriggerTypeFilter") == string::npos ) || (moduleType.find("Associator") != string::npos) || (moduleType.find("HLTLevel1GTSeed") != string::npos) || (moduleType.find("HLTGlobalSumsCaloMET") != string::npos) || (moduleType.find("HLTPrescaler") != string::npos) ) { //std::pair<std::string, int> filterIndexPair; //filterIndexPair.first = moduleName; //filterIndexPair.second = moduleIndex; //v->filtersAndIndices.push_back(filterIndexPair); v->filtersAndIndices.push_back(make_pair(moduleName,moduleIndex)); } }//end for modulesName dbe_->setCurrentFolder(pathsSummaryFilterCountsFolder_.c_str()); //int nbin_sub = 5; int nbin_sub = v->filtersAndIndices.size()+2; // count plots for subfilter MonitorElement* filters = dbe_->book1D("Filters_" + v->getPath(), "Filters_" + v->getPath(), nbin_sub+1, -0.5, 0.5+(double)nbin_sub); for(unsigned int filt = 0; filt < v->filtersAndIndices.size(); filt++){ filters->setBinLabel(filt+1, (v->filtersAndIndices[filt]).first); } // book Count vs LS dbe_->setCurrentFolder(pathsIndividualHLTPathsPerLSFolder_.c_str()); MonitorElement* tempME = dbe_->book1D(v->getPath() + "_count_per_LS", v->getPath() + " rate [Hz]", nLS_, 0,nLS_); tempME->setAxisTitle("Luminosity Section"); v->setFilterHistos(filters); } // end for paths // now set up all of the histos for each path-denom for(PathInfoCollection::iterator v = hltPaths_.begin(); v!= hltPaths_.end(); ++v ) { /* MonitorElement *NOn, *onEtOn, *onOneOverEtOn, *onEtavsonPhiOn=0; MonitorElement *NOff, *offEtOff, *offEtavsoffPhiOff=0; MonitorElement *NL1, *l1EtL1, *l1Etavsl1PhiL1=0; MonitorElement *NL1On, *l1EtL1On, *l1Etavsl1PhiL1On=0; MonitorElement *NL1Off, *offEtL1Off, *offEtavsoffPhiL1Off=0; MonitorElement *NOnOff, *offEtOnOff, *offEtavsoffPhiOnOff=0; MonitorElement *NL1OnUM, *l1EtL1OnUM, *l1Etavsl1PhiL1OnUM=0; MonitorElement *NL1OffUM, *offEtL1OffUM, *offEtavsoffPhiL1OffUM=0; MonitorElement *NOnOffUM, *offEtOnOffUM, *offEtavsoffPhiOnOffUM=0; MonitorElement *offDRL1Off, *offDROnOff, *l1DRL1On=0; */ std::string labelname("dummy"); labelname = v->getPath() + "_wrt_" + v->getDenomPath(); std::string histoname(labelname+"_NOn"); std::string title(labelname+" N online"); double histEtaMax = 2.5; if (v->getObjectType() == trigger::TriggerMuon || v->getObjectType() == trigger::TriggerL1Mu) { histEtaMax = muonEtaMax_; } else if (v->getObjectType() == trigger::TriggerElectron || v->getObjectType() == trigger::TriggerL1NoIsoEG || v->getObjectType() == trigger::TriggerL1IsoEG ) { histEtaMax = electronEtaMax_; } else if (v->getObjectType() == trigger::TriggerTau || v->getObjectType() == trigger::TriggerL1TauJet ) { histEtaMax = tauEtaMax_; } else if (v->getObjectType() == trigger::TriggerJet || v->getObjectType() == trigger::TriggerL1CenJet || v->getObjectType() == trigger::TriggerL1ForJet ) { histEtaMax = jetEtaMax_; } else if (v->getObjectType() == trigger::TriggerBJet) { histEtaMax = bjetEtaMax_; } else if (v->getObjectType() == trigger::TriggerMET || v->getObjectType() == trigger::TriggerL1ETM ) { histEtaMax = metEtaMax_; } else if (v->getObjectType() == trigger::TriggerPhoton) { histEtaMax = photonEtaMax_; } else if (v->getObjectType() == trigger::TriggerTrack) { histEtaMax = trackEtaMax_; } TString pathfolder = dirname_ + TString("/FourVector/") + v->getPath(); /* dbe_->setCurrentFolder(pathfolder.Data()); NOn = dbe->book1D(histoname.c_str(), title.c_str(),10, 0.5, 10.5); histoname = labelname+"_NOff"; title = labelname+" N Off"; NOff = dbe->book1D(histoname.c_str(), title.c_str(),10, 0.5, 10.5); histoname = labelname+"_NL1"; title = labelname+" N L1"; NL1 = dbe->book1D(histoname.c_str(), title.c_str(),10, 0.5, 10.5); histoname = labelname+"_NL1On"; title = labelname+" N L1On"; NL1On = dbe->book1D(histoname.c_str(), title.c_str(),10, 0.5, 10.5); histoname = labelname+"_NL1Off"; title = labelname+" N L1Off"; NL1Off = dbe->book1D(histoname.c_str(), title.c_str(),10, 0.5, 10.5); histoname = labelname+"_NOnOff"; title = labelname+" N OnOff"; NOnOff = dbe->book1D(histoname.c_str(), title.c_str(),10, 0.5, 10.5); histoname = labelname+"_NL1OnUM"; title = labelname+" N L1OnUM"; NL1OnUM = dbe->book1D(histoname.c_str(), title.c_str(),10, 0.5, 10.5); histoname = labelname+"_NL1OffUM"; title = labelname+" N L1OffUM"; NL1OffUM = dbe->book1D(histoname.c_str(), title.c_str(),10, 0.5, 10.5); histoname = labelname+"_NOnOffUM"; title = labelname+" N OnOffUM"; NOnOffUM = dbe->book1D(histoname.c_str(), title.c_str(),10, 0.5, 10.5); histoname = labelname+"_onEtOn"; title = labelname+" onE_t online"; onEtOn = dbe->book1D(histoname.c_str(), title.c_str(),nBins_, v->getPtMin(), v->getPtMax()); histoname = labelname+"_onOneOverEtOn"; title = labelname+" 1 / onE_t online"; onOneOverEtOn = dbe->book1D(histoname.c_str(), title.c_str(),nBinsOneOverEt_, 0, 1); onOneOverEtOn->setAxisTitle("HLT 1/Et [1/GeV]"); histoname = labelname+"_offEtOff"; title = labelname+" offE_t offline"; offEtOff = dbe->book1D(histoname.c_str(), title.c_str(),nBins_, v->getPtMin(), v->getPtMax()); histoname = labelname+"_l1EtL1"; title = labelname+" l1E_t L1"; l1EtL1 = dbe->book1D(histoname.c_str(), title.c_str(),nBins_, v->getPtMin(), v->getPtMax()); histoname = labelname+"_onEtaonPhiOn"; title = labelname+" on#eta vs on#phi online"; onEtavsonPhiOn = dbe->book2D(histoname.c_str(), title.c_str(), nBins2D_,-histEtaMax,histEtaMax, nBins2D_,-TMath::Pi(), TMath::Pi()); histoname = labelname+"_offEtaoffPhiOff"; title = labelname+" off#eta vs off#phi offline"; offEtavsoffPhiOff = dbe->book2D(histoname.c_str(), title.c_str(), nBins2D_,-histEtaMax,histEtaMax, nBins2D_,-TMath::Pi(), TMath::Pi()); histoname = labelname+"_l1Etal1PhiL1"; title = labelname+" l1#eta vs l1#phi L1"; l1Etavsl1PhiL1 = dbe->book2D(histoname.c_str(), title.c_str(), nBins2D_,-histEtaMax,histEtaMax, nBins2D_,-TMath::Pi(), TMath::Pi()); histoname = labelname+"_l1EtL1On"; title = labelname+" l1E_t L1+online"; l1EtL1On = dbe->book1D(histoname.c_str(), title.c_str(),nBins_, v->getPtMin(), v->getPtMax()); histoname = labelname+"_offEtL1Off"; title = labelname+" offE_t L1+offline"; offEtL1Off = dbe->book1D(histoname.c_str(), title.c_str(),nBins_, v->getPtMin(), v->getPtMax()); histoname = labelname+"_offEtOnOff"; title = labelname+" offE_t online+offline"; offEtOnOff = dbe->book1D(histoname.c_str(), title.c_str(),nBins_, v->getPtMin(), v->getPtMax()); histoname = labelname+"_l1Etal1PhiL1On"; title = labelname+" l1#eta vs l1#phi L1+online"; l1Etavsl1PhiL1On = dbe->book2D(histoname.c_str(), title.c_str(), nBins2D_,-histEtaMax,histEtaMax, nBins2D_,-TMath::Pi(), TMath::Pi()); histoname = labelname+"_offEtaoffPhiL1Off"; title = labelname+" off#eta vs off#phi L1+offline"; offEtavsoffPhiL1Off = dbe->book2D(histoname.c_str(), title.c_str(), nBins2D_,-histEtaMax,histEtaMax, nBins2D_,-TMath::Pi(), TMath::Pi()); histoname = labelname+"_offEtaoffPhiOnOff"; title = labelname+" off#eta vs off#phi online+offline"; offEtavsoffPhiOnOff = dbe->book2D(histoname.c_str(), title.c_str(), nBins2D_,-histEtaMax,histEtaMax, nBins2D_,-TMath::Pi(), TMath::Pi()); histoname = labelname+"_l1EtL1OnUM"; title = labelname+" l1E_t L1+onlineUM"; l1EtL1OnUM = dbe->book1D(histoname.c_str(), title.c_str(),nBins_, v->getPtMin(), v->getPtMax()); histoname = labelname+"_offEtL1OffUM"; title = labelname+" offE_t L1+offlineUM"; offEtL1OffUM = dbe->book1D(histoname.c_str(), title.c_str(),nBins_, v->getPtMin(), v->getPtMax()); histoname = labelname+"_offEtOnOffUM"; title = labelname+" offE_t online+offlineUM"; offEtOnOffUM = dbe->book1D(histoname.c_str(), title.c_str(),nBins_, v->getPtMin(), v->getPtMax()); histoname = labelname+"_l1Etal1PhiL1OnUM"; title = labelname+" l1#eta vs l1#phi L1+onlineUM"; l1Etavsl1PhiL1OnUM = dbe->book2D(histoname.c_str(), title.c_str(), nBins2D_,-histEtaMax,histEtaMax, nBins2D_,-TMath::Pi(), TMath::Pi()); histoname = labelname+"_offEtaoffPhiL1OffUM"; title = labelname+" off#eta vs off#phi L1+offlineUM"; offEtavsoffPhiL1OffUM = dbe->book2D(histoname.c_str(), title.c_str(), nBins2D_,-histEtaMax,histEtaMax, nBins2D_,-TMath::Pi(), TMath::Pi()); histoname = labelname+"_offEtaoffPhiOnOffUM"; title = labelname+" off#eta vs off#phi online+offlineUM"; offEtavsoffPhiOnOffUM = dbe->book2D(histoname.c_str(), title.c_str(), nBins2D_,-histEtaMax,histEtaMax, nBins2D_,-TMath::Pi(), TMath::Pi()); histoname = labelname+"_l1DRL1On"; title = labelname+" l1DR L1+online"; l1DRL1On = dbe->book1D(histoname.c_str(), title.c_str(),nBinsDR_, 0, dRMax_); histoname = labelname+"_offDRL1Off"; title = labelname+" offDR L1+offline"; offDRL1Off = dbe->book1D(histoname.c_str(), title.c_str(),nBinsDR_, 0, dRMax_); histoname = labelname+"_offDROnOff"; title = labelname+" offDR online+offline"; offDROnOff = dbe->book1D(histoname.c_str(), title.c_str(),nBinsDR_, 0, dRMax_); */ //v->setHistos( NOn, onEtOn, onOneOverEtOn, onEtavsonPhiOn, NOff, offEtOff, offEtavsoffPhiOff, NL1, l1EtL1, l1Etavsl1PhiL1, NL1On, l1EtL1On, l1Etavsl1PhiL1On, NL1Off, offEtL1Off, offEtavsoffPhiL1Off, NOnOff, offEtOnOff, offEtavsoffPhiOnOff, NL1OnUM, l1EtL1OnUM, l1Etavsl1PhiL1OnUM, NL1OffUM, offEtL1OffUM, offEtavsoffPhiL1OffUM, NOnOffUM, offEtOnOffUM, offEtavsoffPhiOnOffUM, offDRL1Off, offDROnOff, l1DRL1On ); } // end for hltPath // HLT_Any // book Count vs LS dbe_->setCurrentFolder(pathsIndividualHLTPathsPerLSFolder_.c_str()); MonitorElement* tempME = dbe_->book1D("HLT_Any_count_per_LS", "HLT_Any rate [Hz]", nLS_, 0,nLS_); tempME->setAxisTitle("Luminosity Section"); } // end if(1) dummy if(doCombineRuns_) fIsSetup = true; return; }
void TrigResRateMon::countHLTGroupBXHitsEndLumiBlock | ( | const int & | lumi | ) | [private] |
Definition at line 1420 of file TrigResRateMon.cc.
References b, fGroupNamePathsPair, fPathBxTempCountPair, MonitorElement::getTH2F(), j, gen::k, LogDebug, LogTrace, ME_HLT_BX, Nbx_, tests::test_downloadMethods::pathname, referenceBX_, edm::second(), findQualityFiles::size, v_ME_Total_BX, and v_ME_Total_BX_Norm.
{ LogTrace("TrigResRateMon") << " countHLTGroupBXHitsEndLumiBlock() lumiSection number " << lumi << endl; if(! ME_HLT_BX) return; TH2F * hist_2d_bx = ME_HLT_BX->getTH2F(); for (std::vector<std::pair<std::string, vector<int> > >::iterator ip = fPathBxTempCountPair.begin(); ip != fPathBxTempCountPair.end(); ++ip) { // get the path and its previous count std::string pathname = ip->first; vector<int> prevCount = ip->second; // vector of 5 zeros vector<int> currCount (5,0); vector<int> diffCount (5,0); // get the current count of path up to now int pathBin = hist_2d_bx->GetYaxis()->FindBin(pathname.c_str()); if(pathBin > hist_2d_bx->GetNbinsY()) { LogTrace("TrigResRateMon") << " Cannot find the bin for path " << pathname << endl; continue; } for (unsigned int b =0;b<currCount.size();b++) { int bxOffset = b-2; int bunch = referenceBX_+bxOffset; if(bunch < 1) bunch += Nbx_ ; int bxBin = bunch +1; // add one to get the right bin currCount[b] = int(hist_2d_bx->GetBinContent(bxBin, pathBin)); // add one to get the right bin LogTrace("TrigResRateMon") << "currCount = " << currCount[b] << endl; // count due to prev lumi sec is a difference bw current and previous diffCount[b] = currCount[b] - prevCount[b]; LogTrace("TrigResRateMon") << " lumi = " << lumi << " path " << pathname << "bxOffset = " << bxOffset << " count = " << diffCount[b] << endl; } // end for bx b // set the counter in the pair to current count ip->second = currCount; // fill the 2D Group paths' BX count per LS, using currCount LogTrace("TrigResRateMon") << "Find " << pathname << endl; //check if the path is in this group //for (unsigned int j=0;j<fGroupNamePathsPair.size();j++) for (unsigned int j=0;j<v_ME_Total_BX.size();j++) { bool isMember = false; LogTrace("TrigResRateMon") << " ---- Group " << fGroupNamePathsPair[j].first << endl; // decide if pathname is member of this group for (unsigned int k = 0; k<(fGroupNamePathsPair[j].second).size();k++) { LogTrace("TrigResRateMon") << " comparing to " << fGroupNamePathsPair[j].second[k] << endl; if(fGroupNamePathsPair[j].second[k] == pathname) { isMember = true; break; } } // end for k if(!isMember) { LogTrace("TrigResRateMon") << "Could not find a group to which the path belongs, path = " << pathname << " group = " << fGroupNamePathsPair[j].first << endl; continue; } MonitorElement* ME_2d = v_ME_Total_BX[j]; if (! ME_2d) { LogDebug("TrigResRateMon") << " cannot find ME_2d for group " << fGroupNamePathsPair[j].first << endl; continue; } vector<int> updatedLumiCount(5,0); float entireBXWindowUpdatedLumiCount = 0; TH2F* hist_All = ME_2d->getTH2F(); for (unsigned int b = 0; b<diffCount.size();b++) { // find the bin int binNumber = b+1; // add one to get right bin // update the bin content (must do that since events don't ncessarily come in the order int currentLumiCount = int(hist_All->GetBinContent(lumi+1,binNumber)); updatedLumiCount[b] = currentLumiCount + diffCount[b]; hist_All->SetBinContent(lumi+1,binNumber,updatedLumiCount[b]); entireBXWindowUpdatedLumiCount += updatedLumiCount[b]; } // end for bx b MonitorElement* ME_2d_Norm = v_ME_Total_BX_Norm[j]; if (! ME_2d_Norm) { LogDebug("TrigResRateMon") << " cannot find ME_2d_Norm for group " << fGroupNamePathsPair[j].first << endl; continue; } TH2F* hist_All_Norm = ME_2d_Norm->getTH2F(); for (unsigned int b = 0; b<diffCount.size();b++) { // find the bin int binNumber = b+1; // add one to get right bin // update the bin content but normalized to the whole columb (BX windw +/- 2) hist_All_Norm->SetBinContent(lumi+1,binNumber,float(updatedLumiCount[b])/entireBXWindowUpdatedLumiCount); } // end for bx b } // end for group j } // end for ip }
void TrigResRateMon::countHLTGroupHitsEndLumiBlock | ( | const int & | lumi | ) | [private] |
Definition at line 1642 of file TrigResRateMon.cc.
References dbe_, fGroupNamePathsPair, fGroupTempCountPair, DQMStore::get(), MonitorElement::getTH1(), MonitorElement::getTH1F(), MonitorElement::getTH2F(), i, LogDebug, LogTrace, LSsize_, tests::test_downloadMethods::pathname, pathsSummaryFolder_, and pathsSummaryHLTPathsPerLSFolder_.
Referenced by endLuminosityBlock().
{ LogTrace("TrigResRateMon") << " countHLTGroupHitsEndLumiBlock() lumiSection number " << lumi << endl; for(unsigned int i=0; i<fGroupNamePathsPair.size(); i++){ // get the count of path up to now string fullPathToME = pathsSummaryFolder_ + "HLT_" + fGroupNamePathsPair[i].first + "_Pass_Any"; MonitorElement* ME_1d = dbe_->get(fullPathToME); if(! ME_1d) { LogTrace("TrigResRateMon") << " could not find 1d matrix " << fullPathToME << endl; continue; } LogTrace("TrigResRateMon") << " Looking in histogram " << fullPathToME << endl; TH1F * hist_1d = ME_1d->getTH1F(); for (std::vector<std::pair<std::string, float> >::iterator ip = fGroupTempCountPair.begin(); ip != fGroupTempCountPair.end(); ++ip) { // get the path and its previous count string pathname = ip->first; float prevCount = ip->second; string binLabel = "Total "+pathname; LogTrace("TrigResRateMon") << " Looking for binLabel = " << binLabel << endl; // get the current count of path up to now int pathBin = hist_1d->GetXaxis()->FindBin(binLabel.c_str()); LogTrace("TrigResRateMon") << " pathBin = " << pathBin << " out of histogram total number of bins " << hist_1d->GetNbinsX() << endl; if(pathBin == -1) { binLabel = pathname; int alternativePathBin = hist_1d->GetXaxis()->FindBin(binLabel.c_str()); if(alternativePathBin == -1) { LogTrace("TrigResRateMon") << " Cannot find the bin for path " << pathname << endl; continue; } else { pathBin = alternativePathBin; } } float currCount = hist_1d->GetBinContent(pathBin)/LSsize_; // count due to prev lumi sec is a difference bw current and previous float diffCount = currCount - prevCount; LogTrace("TrigResRateMon") << " lumi = " << lumi << " path " << pathname << " diffCount " << diffCount << endl; // set the counter in the pair to current count ip->second = currCount; // fill the 1D and 2D gruop and 2d_Stream_A count per LS string fullPathToME_count = pathsSummaryHLTPathsPerLSFolder_ +"HLT_" + pathname + "_Total_LS"; MonitorElement* ME_1d = dbe_->get(fullPathToME_count); string fullPathToME_2D_count = pathsSummaryHLTPathsPerLSFolder_ +"HLT_" + pathname + "_LS"; MonitorElement* ME_2d = dbe_->get(fullPathToME_2D_count); string fullPathToME_Stream_A_2D_count = pathsSummaryHLTPathsPerLSFolder_ +"HLT_A_LS"; MonitorElement* ME_Stream_A_2d = dbe_->get(fullPathToME_Stream_A_2D_count); if ( ME_1d && ME_2d && ME_Stream_A_2d) { // update the bin content (must do that since events don't ncessarily come in the order float currentLumiCount = ME_1d->getTH1()->GetBinContent(lumi+1); float updatedLumiCount = currentLumiCount + diffCount; ME_1d->getTH1()->SetBinContent(lumi+1,updatedLumiCount); string groupBinLabel = "Total " + fGroupNamePathsPair[i].first; int groupBin = ME_2d->getTH2F()->GetYaxis()->FindBin(groupBinLabel.c_str()); if(groupBin != -1) ME_2d->getTH2F()->SetBinContent(lumi+1,groupBin,updatedLumiCount); // this is to deal with Stream A and bins with names of PDs groupBinLabel = fGroupNamePathsPair[i].first; groupBin = ME_Stream_A_2d->getTH2F()->GetYaxis()->FindBin(groupBinLabel.c_str()); if(groupBin != -1) ME_Stream_A_2d->getTH2F()->SetBinContent(lumi+1,groupBin,updatedLumiCount); } else { LogDebug("TrigResRateMon") << " cannot find ME " << fullPathToME_count << endl; } } // end for ip } // end for i }
void TrigResRateMon::countHLTGroupL1HitsEndLumiBlock | ( | const int & | lumi | ) | [private] |
Definition at line 1562 of file TrigResRateMon.cc.
References dbe_, fGroupL1TempCountPair, fGroupNamePathsPair, DQMStore::get(), MonitorElement::getTH1(), MonitorElement::getTH1F(), i, LogDebug, LogTrace, LSsize_, tests::test_downloadMethods::pathname, pathsSummaryFolder_, and pathsSummaryHLTPathsPerLSFolder_.
{ LogTrace("TrigResRateMon") << " countHLTGroupL1HitsEndLumiBlock() lumiSection number " << lumi << endl; for(unsigned int i=0; i<fGroupNamePathsPair.size(); i++){ // get the count of path up to now string fullPathToME = pathsSummaryFolder_ + "HLT_" + fGroupNamePathsPair[i].first+ "_Pass_Any"; MonitorElement* ME_1d = dbe_->get(fullPathToME); if(! ME_1d) { LogTrace("TrigResRateMon") << " could not find 1d matrix " << fullPathToME << endl; continue; } LogTrace("TrigResRateMon") << " Looking in histogram " << fullPathToME << endl; TH1F * hist_1d = ME_1d->getTH1F(); for (std::vector<std::pair<std::string, float> >::iterator ip = fGroupL1TempCountPair.begin(); ip != fGroupL1TempCountPair.end(); ++ip) { // get the path and its previous count string pathname = ip->first; float prevCount = ip->second; string binLabel = "HLT_"+pathname+"_L1_Any"; LogTrace("TrigResRateMon") << " Looking for binLabel = " << binLabel << endl; // get the current count of path up to now int pathBin = hist_1d->GetXaxis()->FindBin(binLabel.c_str()); LogTrace("TrigResRateMon") << " pathBin = " << pathBin << " out of histogram total number of bins " << hist_1d->GetNbinsX() << endl; if(pathBin == -1) { LogTrace("TrigResRateMon") << " Cannot find the bin for path " << pathname << endl; continue; } float currCount = hist_1d->GetBinContent(pathBin)/LSsize_; // count due to prev lumi sec is a difference bw current and previous float diffCount = currCount - prevCount; LogTrace("TrigResRateMon") << " lumi = " << lumi << " path " << pathname << " count " << diffCount << endl; // set the counter in the pair to current count ip->second = currCount; // fill the 1D individual path count per LS string fullPathToME_count = pathsSummaryHLTPathsPerLSFolder_ +"HLT_" + pathname + "_L1_Total_LS"; MonitorElement* ME_1d = dbe_->get(fullPathToME_count); if ( ME_1d) { // update the bin content (must do that since events don't ncessarily come in the order float currentLumiCount = ME_1d->getTH1()->GetBinContent(lumi+1); float updatedLumiCount = currentLumiCount + diffCount; ME_1d->getTH1()->SetBinContent(lumi+1,updatedLumiCount); } else { LogDebug("TrigResRateMon") << " cannot find ME " << fullPathToME_count << endl; } } // end for ip } // end for i }
void TrigResRateMon::countHLTPathHitsEndLumiBlock | ( | const int & | lumi | ) | [private] |
Definition at line 1751 of file TrigResRateMon.cc.
References dbe_, fPathTempCountPair, DQMStore::get(), MonitorElement::getTH1(), MonitorElement::getTH2F(), i, LogDebug, LogTrace, LSsize_, ME_HLTAll_LS, tests::test_downloadMethods::pathname, pathsIndividualHLTPathsPerLSFolder_, pathsSummaryFolder_, and v_ME_HLTAll_LS.
Referenced by endLuminosityBlock().
{ LogTrace("TrigResRateMon") << " countHLTPathHitsEndLumiBlock() lumiSection number " << lumi << endl; // get the count of path up to now string fullPathToME = pathsSummaryFolder_ + "HLT_AllSelectedPaths_PassPass"; MonitorElement* ME_2d = dbe_->get(fullPathToME); if(! ME_2d) { LogTrace("TrigResRateMon") << " could not fine 2d matrix " << fullPathToME << endl; return; } TH2F * hist_2d = ME_2d->getTH2F(); for (std::vector<std::pair<std::string, float> >::iterator ip = fPathTempCountPair.begin(); ip != fPathTempCountPair.end(); ++ip) { // get the path and its previous count std::string pathname = ip->first; float prevCount = ip->second; // get the current count of path up to now float pathBin = hist_2d->GetXaxis()->FindBin(pathname.c_str()); if(pathBin > hist_2d->GetNbinsX()) { LogTrace("TrigResRateMon") << " Cannot find the bin for path " << pathname << endl; continue; } float currCount = hist_2d->GetBinContent(pathBin, pathBin)/LSsize_; // count due to prev lumi sec is a difference bw current and previous float diffCount = currCount - prevCount; LogTrace("TrigResRateMon") << " lumi = " << lumi << " path " << pathname << " count " << diffCount << endl; // set the counter in the pair to current count ip->second = currCount; // fill the 2D All paths' count per LS if ( ME_HLTAll_LS) { TH2F* hist_All = ME_HLTAll_LS->getTH2F(); // find the bin int pathBinNumber = hist_All->GetYaxis()->FindBin(pathname.c_str()); // update the bin content (must do that since events don't ncessarily come in the order float currentLumiCount = hist_All->GetBinContent(lumi+1,pathBinNumber); float updatedLumiCount = currentLumiCount + diffCount; hist_All->SetBinContent(lumi+1,pathBinNumber,updatedLumiCount); } else { LogDebug("TrigResRateMon") << " cannot find ME_HLTAll_LS" << endl; } for (unsigned int i=0 ; i< v_ME_HLTAll_LS.size(); i++) { MonitorElement* tempME = v_ME_HLTAll_LS[i]; if ( tempME ) { TH2F* hist_All = tempME->getTH2F(); // find the bin int pathBinNumber = hist_All->GetYaxis()->FindBin(pathname.c_str()); // update the bin content (must do that since events don't ncessarily come in the order float currentLumiCount = hist_All->GetBinContent(lumi+1,pathBinNumber); float updatedLumiCount = currentLumiCount + diffCount; hist_All->SetBinContent(lumi+1,pathBinNumber,updatedLumiCount); } else { LogDebug("TrigResRateMon") << " cannot find tempME " << endl; } } // fill the 1D individual path count per LS string fullPathToME_count = pathsIndividualHLTPathsPerLSFolder_ + pathname + "_count_per_LS"; MonitorElement* ME_1d = dbe_->get(fullPathToME_count); if ( ME_1d) { // update the bin content (must do that since events don't ncessarily come in the order float currentLumiCount = ME_1d->getTH1()->GetBinContent(lumi+1); float updatedLumiCount = currentLumiCount + diffCount; ME_1d->getTH1()->SetBinContent(lumi+1,updatedLumiCount); } else { LogDebug("TrigResRateMon") << " cannot find ME " << fullPathToME_count << endl; } } // end for ip }
void TrigResRateMon::endJob | ( | void | ) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 321 of file TrigResRateMon.cc.
References nev_.
void TrigResRateMon::endLuminosityBlock | ( | const edm::LuminosityBlock & | lumiSeg, |
const edm::EventSetup & | c | ||
) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 1405 of file TrigResRateMon.cc.
References countHLTGroupHitsEndLumiBlock(), countHLTPathHitsEndLumiBlock(), edm::LuminosityBlockBase::id(), LogTrace, fjr2json::lumi, edm::LuminosityBlockID::luminosityBlock(), and normalizeHLTMatrix().
{ int lumi = int(lumiSeg.id().luminosityBlock()); LogTrace("TrigResRateMon") << " end lumiSection number " << lumi << endl; countHLTPathHitsEndLumiBlock(lumi); countHLTGroupHitsEndLumiBlock(lumi); //countHLTGroupL1HitsEndLumiBlock(lumi); //countHLTGroupBXHitsEndLumiBlock(lumi); normalizeHLTMatrix(); }
void TrigResRateMon::endRun | ( | const edm::Run & | run, |
const edm::EventSetup & | c | ||
) | [private, virtual] |
EndRun.
Reimplemented from edm::EDAnalyzer.
Definition at line 952 of file TrigResRateMon.cc.
References edm::RunBase::id(), and LogDebug.
void TrigResRateMon::fillHltMatrix | ( | const edm::TriggerNames & | triggerNames | ) | [private] |
Definition at line 1094 of file TrigResRateMon.cc.
References dbe_, fGroupNamePathsPair, first, g, DQMStore::get(), MonitorElement::getTH1F(), MonitorElement::getTH2F(), hltConfig_, i, j, LogTrace, pathsSummaryFolder_, edm::second(), HLTConfigProvider::streamContent(), edm::TriggerNames::triggerIndex(), and triggerResults_.
Referenced by analyze().
{ string fullPathToME; std::vector <std::pair<std::string, bool> > groupAcceptPair; for (unsigned int mi=0;mi<fGroupNamePathsPair.size();mi++) { fullPathToME = pathsSummaryFolder_ + "HLT_"+fGroupNamePathsPair[mi].first+"_PassPass"; MonitorElement* ME_2d = dbe_->get(fullPathToME); fullPathToME = pathsSummaryFolder_ + "HLT_"+fGroupNamePathsPair[mi].first+"_Pass_Any"; MonitorElement* ME_1d = dbe_->get(fullPathToME); if(!ME_2d || !ME_1d) { LogTrace("TrigResRateMon") << " ME not valid although I gave full path" << endl; continue; } TH2F * hist_2d = ME_2d->getTH2F(); TH1F * hist_1d = ME_1d->getTH1F(); // Fill HLTPassed Matrix bin (i,j) = (Any,Any) // -------------------------------------------------------- int anyBinNumber = hist_2d->GetXaxis()->FindBin("HLT_Any"); //string groupBinLabel = "HLT_"+fGroupNamePathsPair[mi].first+"_Any"; string groupBinLabel = "Total "+fGroupNamePathsPair[mi].first; int groupBinNumber = hist_2d->GetXaxis()->FindBin(groupBinLabel.c_str()); // any triger accepted if(triggerResults_->accept()){ hist_2d->Fill(anyBinNumber-1,anyBinNumber-1);//binNumber1 = 0 = first filter hist_1d->Fill(anyBinNumber-1);//binNumber1 = 0 = first filter } bool groupPassed = false; bool groupL1Passed = false; // Main loop over paths // -------------------- //for (int i=1; i< hist_2d->GetNbinsX();i++) for (unsigned int i=0; i< fGroupNamePathsPair[mi].second.size(); i++) { //string hltPathName = hist_2d->GetXaxis()->GetBinLabel(i); string hltPathName = fGroupNamePathsPair[mi].second[i]; // check if this is hlt path name //unsigned int pathByIndex = triggerNames.triggerIndex(hltPathName); unsigned int pathByIndex = triggerNames.triggerIndex(fGroupNamePathsPair[mi].second[i]); if(pathByIndex >= triggerResults_->size() ) continue; // check if its L1 passed // comment out below but set groupL1Passed to true always //if(hasL1Passed(hltPathName,triggerNames)) groupL1Passed = true; //groupL1Passed = true; // Fill HLTPassed Matrix and HLTPassFail Matrix // -------------------------------------------------------- if(triggerResults_->accept(pathByIndex)){ groupPassed = true; groupL1Passed = true; hist_2d->Fill(i,anyBinNumber-1);//binNumber1 = 0 = first filter hist_2d->Fill(anyBinNumber-1,i);//binNumber1 = 0 = first filter hist_2d->Fill(i,groupBinNumber-1);//binNumber1 = 0 = first filter hist_2d->Fill(groupBinNumber-1,i);//binNumber1 = 0 = first filter hist_1d->Fill(i);//binNumber1 = 0 = first filter //for (int j=1; j< hist_2d->GetNbinsY();j++) for (unsigned int j=0; j< fGroupNamePathsPair[mi].second.size(); j++) { string crossHltPathName = fGroupNamePathsPair[mi].second[j]; //unsigned int crosspathByIndex = triggerNames.triggerIndex(hist_2d->GetXaxis()->GetBinLabel(j)); //unsigned int crosspathByIndex = triggerNames.triggerIndex(crossHltPathName); unsigned int crosspathByIndex = triggerNames.triggerIndex(fGroupNamePathsPair[mi].second[j]); if(crosspathByIndex >= triggerResults_->size() ) continue; if(triggerResults_->accept(crosspathByIndex)){ hist_2d->Fill(i,j);//binNumber1 = 0 = first filter } // end if j path passed } // end for j } // end if i passed } // end for i if(groupPassed) { hist_1d->Fill(groupBinNumber-1);//binNumber1 = 0 = first filter hist_2d->Fill(groupBinNumber-1,groupBinNumber-1);//binNumber1 = 0 = first filter hist_2d->Fill(anyBinNumber-1,groupBinNumber-1);//binNumber1 = 0 = first filter hist_2d->Fill(groupBinNumber-1,anyBinNumber-1);//binNumber1 = 0 = first filter } // if the group belongs to stream A // store groupName and Bool if it has passed bool isGroupFromStreamA = false; vector<string> streamDatasetNames = hltConfig_.streamContent("A") ; for (unsigned int g=0;g<streamDatasetNames.size();g++) { if(streamDatasetNames[g] == fGroupNamePathsPair[mi].first) { isGroupFromStreamA = true; break; } } if(isGroupFromStreamA) groupAcceptPair.push_back(make_pair(fGroupNamePathsPair[mi].first,groupPassed)); // L1 groups - not used anymore string groupL1BinLabel = "HLT_"+fGroupNamePathsPair[mi].first+"_L1_Any"; int groupL1BinNumber = hist_2d->GetXaxis()->FindBin(groupL1BinLabel.c_str()); if(groupL1Passed) hist_1d->Fill(groupL1BinNumber-1);//binNumber1 = 0 = first filter } // end for mi fullPathToME = pathsSummaryFolder_ + "HLT_A_PassPass"; MonitorElement* ME_2d_Stream = dbe_->get(fullPathToME); fullPathToME = pathsSummaryFolder_ + "HLT_A_Pass_Any"; MonitorElement* ME_1d_Stream = dbe_->get(fullPathToME); if(!ME_2d_Stream || !ME_1d_Stream) { LogTrace("TrigResRateMon") << " ME not valid although I gave full path" << endl; return; } else { TH2F * hist_2d_Stream = ME_2d_Stream->getTH2F(); TH1F * hist_1d_Stream = ME_1d_Stream->getTH1F(); int streamBinNumber = hist_1d_Stream->GetXaxis()->GetLast(); bool acceptedStreamA = false; // loop over groups for (unsigned int i=0;i<groupAcceptPair.size();i++) { if(groupAcceptPair[i].second) { acceptedStreamA = true; int groupBinNumber_i = hist_2d_Stream->GetXaxis()->FindBin(groupAcceptPair[i].first.c_str()); //LogTrace("TrigResRateMon") << "Accepted group X " << groupAcceptPair[i].first.c_str() << " bin number " << groupBinNumber_i << endl; hist_1d_Stream->Fill(groupBinNumber_i-1);//binNumber1 = 0 = first filter hist_2d_Stream->Fill(groupBinNumber_i-1,streamBinNumber-1);//binNumber1 = 0 = first filter hist_2d_Stream->Fill(streamBinNumber-1,groupBinNumber_i-1);//binNumber1 = 0 = first filter for (unsigned int j=0;j<groupAcceptPair.size();j++) { if(groupAcceptPair[j].second) { int groupBinNumber_j = hist_2d_Stream->GetXaxis()->FindBin(groupAcceptPair[j].first.c_str()); //LogTrace("TrigResRateMon") << "Accepted group Y " << groupAcceptPair[j].first.c_str() << " bin number " << groupBinNumber_j << endl; // fill StreamMatrix(i,j) hist_2d_Stream->Fill(groupBinNumber_i-1,groupBinNumber_j-1);//binNumber1 = 0 = first filter } // end if j-th group accepted } // end for j } // end if i-th group accepted } // end for i if(acceptedStreamA) { hist_2d_Stream->Fill(streamBinNumber-1,streamBinNumber-1);//binNumber1 = 0 = first filter hist_1d_Stream->Fill(streamBinNumber-1);//binNumber1 = 0 = first filter } } // end else }
const std::string TrigResRateMon::getL1ConditionModuleName | ( | const std::string & | pathname | ) | [private] |
Referenced by beginRun().
int TrigResRateMon::getThresholdFromName | ( | const std::string & | pathname | ) | [private] |
Definition at line 1964 of file TrigResRateMon.cc.
References i, AlCaRecoCosmics_cfg::name, and tests::test_downloadMethods::pathname.
Referenced by beginRun().
{ std::string pathname = name; //cout << "----------------------------------------------" << endl; //cout << pathname << endl; //remove "L1" substr if(pathname.find("L1") != std::string::npos) pathname.replace(pathname.find("L1"),2,""); //remove "L2" substr if(pathname.find("L2") != std::string::npos) pathname.replace(pathname.find("L2"),2,""); //remove "8E29" substr if(pathname.find("8E29") != std::string::npos) pathname.replace(pathname.find("8E29"),4,""); int digitLocation=0; for (unsigned int i=0; i < pathname.length(); i++) { if (isdigit(pathname.at(i))) { digitLocation = i; break; } } // get the string from the location of the first digit to the end string hltThresholdString = pathname.substr(digitLocation); int hltThreshold = 0; // get intiger at the begining of the string sscanf (hltThresholdString.c_str(),"%d%*s",&hltThreshold); //printf ("%s -> %s -> %d\n",pathname.c_str(), hltThresholdString.c_str(), hltThreshold); return hltThreshold; }
int TrigResRateMon::getTriggerTypeParsePathName | ( | const std::string & | pathname | ) | [private] |
Referenced by beginRun().
bool TrigResRateMon::hasHLTPassed | ( | const std::string & | pathname, |
const edm::TriggerNames & | triggerNames | ||
) | [private] |
bool TrigResRateMon::hasL1Passed | ( | const std::string & | pathname, |
const edm::TriggerNames & | triggerNames | ||
) | [private] |
void TrigResRateMon::normalizeHLTMatrix | ( | ) | [private] |
Definition at line 2002 of file TrigResRateMon.cc.
References dbe_, DQMStore::get(), MonitorElement::getTH1F(), MonitorElement::getTH2F(), hltConfig_, i, pathsSummaryFolder_, pathsSummaryHLTCorrelationsFolder_, HLTConfigProvider::streamContent(), v_ME_HLTPass_Normalized_Any, v_ME_HLTPassPass, and v_ME_HLTPassPass_Normalized.
Referenced by endLuminosityBlock().
{ string fullPathToME; // again, get hold of dataset names //vector<string> datasetNames = hltConfig_.datasetNames() ; vector<string> datasetNames = hltConfig_.streamContent("A") ; // fill vectors of MEs needed in normalization for (unsigned int i=0;i<datasetNames.size();i++) { fullPathToME = pathsSummaryFolder_ +"HLT_"+datasetNames[i]+"_PassPass"; v_ME_HLTPassPass.push_back( dbe_->get(fullPathToME)); fullPathToME = pathsSummaryHLTCorrelationsFolder_+"HLT_"+datasetNames[i]+"_PassPass_Normalized"; v_ME_HLTPassPass_Normalized.push_back( dbe_->get(fullPathToME)); fullPathToME = pathsSummaryHLTCorrelationsFolder_+"HLT_"+datasetNames[i]+"_Pass_Normalized_Any"; v_ME_HLTPass_Normalized_Any.push_back( dbe_->get(fullPathToME)); } // add stream MEs fullPathToME = pathsSummaryFolder_ +"HLT_A_PassPass"; v_ME_HLTPassPass.push_back( dbe_->get(fullPathToME)); fullPathToME = pathsSummaryHLTCorrelationsFolder_+"HLT_A_PassPass_Normalized"; v_ME_HLTPassPass_Normalized.push_back( dbe_->get(fullPathToME)); fullPathToME = pathsSummaryHLTCorrelationsFolder_+"HLT_A_Pass_Normalized_Any"; v_ME_HLTPass_Normalized_Any.push_back( dbe_->get(fullPathToME)); for (unsigned int i =0;i<v_ME_HLTPassPass.size();i++) { MonitorElement* ME_HLTPassPass = v_ME_HLTPassPass[i]; MonitorElement* ME_HLTPassPass_Normalized = v_ME_HLTPassPass_Normalized[i]; MonitorElement* ME_HLTPass_Normalized_Any = v_ME_HLTPass_Normalized_Any[i]; if(!ME_HLTPassPass || !ME_HLTPassPass_Normalized || !ME_HLTPass_Normalized_Any) return; float passCount = 0; unsigned int nBinsX = ME_HLTPassPass->getTH2F()->GetNbinsX(); unsigned int nBinsY = ME_HLTPassPass->getTH2F()->GetNbinsY(); for(unsigned int binX = 0; binX < nBinsX+1; binX++) { passCount = ME_HLTPassPass->getTH2F()->GetBinContent(binX,binX); for(unsigned int binY = 0; binY < nBinsY+1; binY++) { if(passCount != 0) { // normalize each bin to number of passCount float normalizedBinContentPassPass = (ME_HLTPassPass->getTH2F()->GetBinContent(binX,binY))/passCount; //float normalizedBinContentPassFail = (ME_HLTPassFail_->getTH2F()->GetBinContent(binX,binY))/passCount; ME_HLTPassPass_Normalized->getTH2F()->SetBinContent(binX,binY,normalizedBinContentPassPass); //ME_HLTPassFail_Normalized_->getTH2F()->SetBinContent(binX,binY,normalizedBinContentPassFail); if(binX == nBinsX) { ME_HLTPass_Normalized_Any->getTH1F()->SetBinContent(binY,normalizedBinContentPassPass); } } else { ME_HLTPassPass_Normalized->getTH2F()->SetBinContent(binX,binY,0); //ME_HLTPassFail_Normalized_->getTH2F()->SetBinContent(binX,binY,0); } // end if else } // end for binY } // end for binX } // end for i }
void TrigResRateMon::setupHltBxPlots | ( | ) | [private] |
Definition at line 1295 of file TrigResRateMon.cc.
References DQMStore::book2D(), dbe_, MonitorElement::getTH2F(), hltPathsDiagonal_, i, ME_HLT_BX, ME_HLT_CUSTOM_BX, Nbx_, pathsSummaryFolder_, MonitorElement::setAxisTitle(), and DQMStore::setCurrentFolder().
Referenced by beginRun().
{ //pathsSummaryFolder_ = TString("HLT/TrigResults/PathsSummary/"); //dbe_->setCurrentFolder(pathsSummaryFolder_.c_str()); dbe_->setCurrentFolder(pathsSummaryFolder_); // setup HLT bx plot unsigned int npaths = hltPathsDiagonal_.size(); ME_HLT_BX = dbe_->book2D("HLT_bx", "HLT counts vs Event bx", Nbx_+1, -0.5, Nbx_+1-0.5, npaths, -0.5, npaths-0.5); ME_HLT_CUSTOM_BX = dbe_->book2D("HLT_Custom_bx", "HLT counts vs Event bx", Nbx_+1, -0.5, Nbx_+1-0.5, npaths, -0.5, npaths-0.5); ME_HLT_BX->setAxisTitle("Bunch Crossing"); ME_HLT_CUSTOM_BX->setAxisTitle("Bunch Crossing"); // Set up bin labels on Y axis continuing to cover all npaths for(unsigned int i = 0; i < npaths; i++){ ME_HLT_BX->getTH2F()->GetYaxis()->SetBinLabel(i+1, (hltPathsDiagonal_[i]).getPath().c_str()); ME_HLT_CUSTOM_BX->getTH2F()->GetYaxis()->SetBinLabel(i+1, (hltPathsDiagonal_[i]).getPath().c_str()); } }
void TrigResRateMon::setupHltLsPlots | ( | ) | [private] |
Definition at line 1326 of file TrigResRateMon.cc.
References newFWLiteAna::bin, DQMStore::book2D(), dbe_, MonitorElement::getTH2F(), hltPathsDiagonal_, i, ME_HLTAll_LS, AlCaRecoCosmics_cfg::name, nLS_, pathsSummaryHLTPathsPerLSFolder_, MonitorElement::setAxisTitle(), MonitorElement::setBinLabel(), DQMStore::setCurrentFolder(), indexGen::title, and v_ME_HLTAll_LS.
Referenced by beginRun().
{ unsigned int npaths = hltPathsDiagonal_.size(); //pathsSummaryHLTPathsPerLSFolder_ = TString("HLT/TrigResults/PathsSummary/HLT LS/"); //dbe_->setCurrentFolder(pathsSummaryHLTPathsPerLSFolder_.c_str()); dbe_->setCurrentFolder(pathsSummaryHLTPathsPerLSFolder_); ME_HLTAll_LS = dbe_->book2D("AllSelectedPaths_count_LS", "AllSelectedPaths paths rate [Hz]", nLS_, 0, nLS_, npaths+1, -0.5, npaths+1-0.5); ME_HLTAll_LS->setAxisTitle("Luminosity Section"); // Set up bin labels on Y axis continuing to cover all npaths for(unsigned int i = 0; i < npaths; i++){ ME_HLTAll_LS->getTH2F()->GetYaxis()->SetBinLabel(i+1, (hltPathsDiagonal_[i]).getPath().c_str()); } unsigned int i = npaths; ME_HLTAll_LS->getTH2F()->GetYaxis()->SetBinLabel(i+1, "HLT_Any"); int nBinsPerLSHisto = 20; int nLSHistos = npaths/nBinsPerLSHisto; for (int nh=0;nh<nLSHistos+1;nh++) { char name[200]; char title[200]; sprintf(name, "Group_%d_paths_count_LS",nLSHistos-nh); sprintf(title, "Group %d, paths rate [Hz]",nLSHistos-nh); MonitorElement* tempME = dbe_->book2D(name,title, nLS_, 0, nLS_, nBinsPerLSHisto+3, -0.5, nBinsPerLSHisto+3-0.5); tempME->setAxisTitle("LS"); // Set up bin labels on Y axis continuing to cover all npaths for(int i = nh*nBinsPerLSHisto; i < (nh+1)*nBinsPerLSHisto; i++){ if (i == int(npaths)) break; int bin; if(nh == 0){ bin = i; } else { bin = i % nBinsPerLSHisto; } tempME->setBinLabel(bin+1, hltPathsDiagonal_[i].getPath().c_str(), 2); } tempME->setBinLabel(nBinsPerLSHisto+3, "HLT_Any", 2); tempME->setBinLabel(nBinsPerLSHisto+2, "HLT_PhysicsDeclared", 2); v_ME_HLTAll_LS.push_back(tempME); } }
void TrigResRateMon::setupHltMatrix | ( | const std::string & | label, |
std::vector< std::string > & | paths | ||
) | [private] |
Referenced by beginRun().
void TrigResRateMon::setupStreamMatrix | ( | const std::string & | label, |
std::vector< std::string > & | paths | ||
) | [private] |
Definition at line 1048 of file TrigResRateMon.cc.
References DQMStore::book1D(), DQMStore::book2D(), dbe_, MonitorElement::getTH1F(), MonitorElement::getTH2F(), i, pathsSummaryFolder_, pathsSummaryHLTCorrelationsFolder_, and DQMStore::setCurrentFolder().
{ paths.push_back(""); paths.push_back("HLT_"+label+"_Any"); string h_name; string h_title; dbe_->setCurrentFolder(pathsSummaryFolder_.c_str()); h_name= "HLT_"+label+"_PassPass"; h_title = "HLT_"+label+"_PassPass (x=Pass, y=Pass)"; MonitorElement* ME = dbe_->book2D(h_name.c_str(), h_title.c_str(), paths.size(), -0.5, paths.size()-0.5, paths.size(), -0.5, paths.size()-0.5); h_name= "HLT_"+label+"_Pass_Any"; h_title = "HLT_"+label+"_Pass (x=Pass, Any=Pass) normalized to HLT_Any Pass"; MonitorElement* ME_Any = dbe_->book1D(h_name.c_str(), h_title.c_str(), paths.size(), -0.5, paths.size()-0.5); dbe_->setCurrentFolder(pathsSummaryHLTCorrelationsFolder_.c_str()); h_name= "HLT_"+label+"_PassPass_Normalized"; h_title = "HLT_"+label+"_PassPass (x=Pass, y=Pass) normalized to xBin=Pass"; MonitorElement* ME_Normalized = dbe_->book2D(h_name.c_str(), h_title.c_str(), paths.size(), -0.5, paths.size()-0.5, paths.size(), -0.5, paths.size()-0.5); h_name= "HLT_"+label+"_Pass_Normalized_Any"; h_title = "HLT_"+label+"_Pass (x=Pass, Any=Pass) normalized to HLT_Any Pass"; MonitorElement* ME_Normalized_Any = dbe_->book1D(h_name.c_str(), h_title.c_str(), paths.size(), -0.5, paths.size()-0.5); for(unsigned int i = 0; i < paths.size(); i++){ ME->getTH2F()->GetXaxis()->SetBinLabel(i+1, (paths[i]).c_str()); ME->getTH2F()->GetYaxis()->SetBinLabel(i+1, (paths[i]).c_str()); ME_Normalized->getTH2F()->GetXaxis()->SetBinLabel(i+1, (paths[i]).c_str()); ME_Normalized->getTH2F()->GetYaxis()->SetBinLabel(i+1, (paths[i]).c_str()); ME_Any->getTH1F()->GetXaxis()->SetBinLabel(i+1, (paths[i]).c_str()); ME_Normalized_Any->getTH1F()->GetXaxis()->SetBinLabel(i+1, (paths[i]).c_str()); } }
double TrigResRateMon::bjetDRMatch_ [private] |
Definition at line 201 of file TrigResRateMon.h.
double TrigResRateMon::bjetEtaMax_ [private] |
Definition at line 199 of file TrigResRateMon.h.
Referenced by beginRun().
double TrigResRateMon::bjetEtMin_ [private] |
Definition at line 200 of file TrigResRateMon.h.
double TrigResRateMon::bjetL1DRMatch_ [private] |
Definition at line 202 of file TrigResRateMon.h.
int TrigResRateMon::currentRun_ [private] |
Definition at line 172 of file TrigResRateMon.h.
std::vector<std::pair<std::string, std::string> > TrigResRateMon::custompathnamepairs_ [private] |
Definition at line 230 of file TrigResRateMon.h.
Referenced by beginRun(), and TrigResRateMon().
DQMStore* TrigResRateMon::dbe_ [private] |
Definition at line 130 of file TrigResRateMon.h.
Referenced by beginRun(), countHLTGroupHitsEndLumiBlock(), countHLTGroupL1HitsEndLumiBlock(), countHLTPathHitsEndLumiBlock(), fillHltMatrix(), normalizeHLTMatrix(), setupHltBxPlots(), setupHltLsPlots(), FourVectorHLTOffline::setupHltMatrix(), setupStreamMatrix(), and TrigResRateMon().
std::string TrigResRateMon::dirname_ [private] |
Definition at line 242 of file TrigResRateMon.h.
Referenced by beginJob(), beginRun(), and TrigResRateMon().
bool TrigResRateMon::doCombineRuns_ [private] |
Definition at line 170 of file TrigResRateMon.h.
Referenced by beginRun(), and TrigResRateMon().
bool TrigResRateMon::doVBTFMuon_ [private] |
Definition at line 171 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
double TrigResRateMon::dRMax_ [private] |
Definition at line 180 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
double TrigResRateMon::dRMaxElectronMuon_ [private] |
Definition at line 181 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
double TrigResRateMon::dxyCut_ [private] |
Definition at line 222 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
double TrigResRateMon::electronDRMatch_ [private] |
Definition at line 185 of file TrigResRateMon.h.
double TrigResRateMon::electronEtaMax_ [private] |
Definition at line 183 of file TrigResRateMon.h.
Referenced by beginRun().
double TrigResRateMon::electronEtMin_ [private] |
Definition at line 184 of file TrigResRateMon.h.
double TrigResRateMon::electronL1DRMatch_ [private] |
Definition at line 186 of file TrigResRateMon.h.
std::string TrigResRateMon::fCustomBXPath [private] |
Definition at line 158 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
std::vector<std::pair<std::string, float> > TrigResRateMon::fGroupL1TempCountPair [private] |
Definition at line 237 of file TrigResRateMon.h.
Referenced by beginRun(), and countHLTGroupL1HitsEndLumiBlock().
std::vector<std::string> TrigResRateMon::fGroupName [private] |
Definition at line 160 of file TrigResRateMon.h.
Referenced by beginRun().
std::vector<std::pair<std::string, std::vector<std::string> > > TrigResRateMon::fGroupNamePathsPair [private] |
Definition at line 238 of file TrigResRateMon.h.
Referenced by beginRun(), countHLTGroupBXHitsEndLumiBlock(), countHLTGroupHitsEndLumiBlock(), countHLTGroupL1HitsEndLumiBlock(), and fillHltMatrix().
std::vector<std::pair<std::string, float> > TrigResRateMon::fGroupTempCountPair [private] |
Definition at line 236 of file TrigResRateMon.h.
Referenced by beginRun(), and countHLTGroupHitsEndLumiBlock().
bool TrigResRateMon::fIsSetup [private] |
Definition at line 132 of file TrigResRateMon.h.
Referenced by beginRun(), and TrigResRateMon().
bool TrigResRateMon::fLumiFlag [private] |
Definition at line 131 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
std::vector<std::pair<std::string, std::vector<int> > > TrigResRateMon::fPathBxTempCountPair [private] |
Definition at line 235 of file TrigResRateMon.h.
Referenced by beginRun(), and countHLTGroupBXHitsEndLumiBlock().
std::vector<std::pair<std::string, float> > TrigResRateMon::fPathTempCountPair [private] |
Definition at line 234 of file TrigResRateMon.h.
Referenced by beginRun(), and countHLTPathHitsEndLumiBlock().
Definition at line 93 of file TrigResRateMon.h.
HLTConfigProvider TrigResRateMon::hltConfig_ [private] |
Definition at line 250 of file TrigResRateMon.h.
Referenced by beginRun(), fillHltMatrix(), FourVectorHLTOffline::getL1ConditionModuleName(), and normalizeHLTMatrix().
Definition at line 617 of file TrigResRateMon.h.
Referenced by beginRun(), and TrigResRateMon().
Definition at line 619 of file TrigResRateMon.h.
Referenced by analyze(), beginRun(), FourVectorHLTOffline::hasL1Passed(), setupHltBxPlots(), and setupHltLsPlots().
double TrigResRateMon::htDRMatch_ [private] |
Definition at line 217 of file TrigResRateMon.h.
double TrigResRateMon::htEtaMax_ [private] |
Definition at line 215 of file TrigResRateMon.h.
double TrigResRateMon::htL1DRMatch_ [private] |
Definition at line 218 of file TrigResRateMon.h.
double TrigResRateMon::htMin_ [private] |
Definition at line 216 of file TrigResRateMon.h.
bool TrigResRateMon::isAlsoTrackerMuon_ [private] |
Definition at line 227 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
double TrigResRateMon::jetDRMatch_ [private] |
Definition at line 197 of file TrigResRateMon.h.
double TrigResRateMon::jetEtaMax_ [private] |
Definition at line 195 of file TrigResRateMon.h.
Referenced by beginRun().
double TrigResRateMon::jetEtMin_ [private] |
Definition at line 196 of file TrigResRateMon.h.
double TrigResRateMon::jetL1DRMatch_ [private] |
Definition at line 198 of file TrigResRateMon.h.
double TrigResRateMon::LSsize_ [private] |
Definition at line 164 of file TrigResRateMon.h.
Referenced by countHLTGroupHitsEndLumiBlock(), countHLTGroupL1HitsEndLumiBlock(), countHLTPathHitsEndLumiBlock(), and TrigResRateMon().
MonitorElement* TrigResRateMon::ME_HLT_BX [private] |
Definition at line 140 of file TrigResRateMon.h.
Referenced by countHLTGroupBXHitsEndLumiBlock(), setupHltBxPlots(), and TrigResRateMon().
MonitorElement* TrigResRateMon::ME_HLT_CUSTOM_BX [private] |
Definition at line 141 of file TrigResRateMon.h.
Referenced by setupHltBxPlots(), and TrigResRateMon().
MonitorElement* TrigResRateMon::ME_HLTAll_LS [private] |
Definition at line 139 of file TrigResRateMon.h.
Referenced by countHLTPathHitsEndLumiBlock(), setupHltLsPlots(), and TrigResRateMon().
double TrigResRateMon::metDRMatch_ [private] |
Definition at line 213 of file TrigResRateMon.h.
double TrigResRateMon::metEtaMax_ [private] |
Definition at line 211 of file TrigResRateMon.h.
Referenced by beginRun().
double TrigResRateMon::metL1DRMatch_ [private] |
Definition at line 214 of file TrigResRateMon.h.
double TrigResRateMon::metMin_ [private] |
Definition at line 212 of file TrigResRateMon.h.
bool TrigResRateMon::monitorDaemon_ [private] |
Definition at line 245 of file TrigResRateMon.h.
double TrigResRateMon::muonDRMatch_ [private] |
Definition at line 189 of file TrigResRateMon.h.
double TrigResRateMon::muonEtaMax_ [private] |
Definition at line 187 of file TrigResRateMon.h.
Referenced by beginRun().
double TrigResRateMon::muonEtMin_ [private] |
Definition at line 188 of file TrigResRateMon.h.
int TrigResRateMon::muonHitsCut_ [private] |
Definition at line 226 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
double TrigResRateMon::muonL1DRMatch_ [private] |
Definition at line 190 of file TrigResRateMon.h.
std::string TrigResRateMon::muonRecoCollectionName_ [private] |
Definition at line 244 of file TrigResRateMon.h.
unsigned int TrigResRateMon::nBins2D_ [private] |
Definition at line 175 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
unsigned int TrigResRateMon::nBins_ [private] |
Definition at line 174 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
unsigned int TrigResRateMon::nBinsDR_ [private] |
Definition at line 176 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
unsigned int TrigResRateMon::nBinsOneOverEt_ [private] |
Definition at line 177 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
unsigned int TrigResRateMon::Nbx_ [private] |
Definition at line 167 of file TrigResRateMon.h.
Referenced by countHLTGroupBXHitsEndLumiBlock(), setupHltBxPlots(), and TrigResRateMon().
int TrigResRateMon::nev_ [private] |
Definition at line 129 of file TrigResRateMon.h.
Referenced by analyze(), beginJob(), and endJob().
unsigned int TrigResRateMon::nLS_ [private] |
Definition at line 163 of file TrigResRateMon.h.
Referenced by beginRun(), setupHltLsPlots(), FourVectorHLTOffline::setupHltMatrix(), and TrigResRateMon().
int TrigResRateMon::nMatchesCut_ [private] |
Definition at line 228 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
double TrigResRateMon::normalizedChi2Cut_ [private] |
Definition at line 223 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
std::string TrigResRateMon::pathsIndividualHLTPathsPerLSFolder_ [private] |
Definition at line 156 of file TrigResRateMon.h.
Referenced by beginRun(), countHLTPathHitsEndLumiBlock(), and TrigResRateMon().
std::string TrigResRateMon::pathsSummaryFilterCountsFolder_ [private] |
Definition at line 154 of file TrigResRateMon.h.
Referenced by beginRun(), and TrigResRateMon().
std::string TrigResRateMon::pathsSummaryFilterEfficiencyFolder_ [private] |
Definition at line 153 of file TrigResRateMon.h.
std::string TrigResRateMon::pathsSummaryFolder_ [private] |
Definition at line 150 of file TrigResRateMon.h.
Referenced by beginRun(), countHLTGroupHitsEndLumiBlock(), countHLTGroupL1HitsEndLumiBlock(), countHLTPathHitsEndLumiBlock(), fillHltMatrix(), normalizeHLTMatrix(), setupHltBxPlots(), FourVectorHLTOffline::setupHltMatrix(), setupStreamMatrix(), and TrigResRateMon().
std::string TrigResRateMon::pathsSummaryHLTCorrelationsFolder_ [private] |
Definition at line 152 of file TrigResRateMon.h.
Referenced by normalizeHLTMatrix(), FourVectorHLTOffline::setupHltMatrix(), setupStreamMatrix(), and TrigResRateMon().
std::string TrigResRateMon::pathsSummaryHLTPathsPerBXFolder_ [private] |
Definition at line 157 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
std::string TrigResRateMon::pathsSummaryHLTPathsPerLSFolder_ [private] |
Definition at line 155 of file TrigResRateMon.h.
Referenced by countHLTGroupHitsEndLumiBlock(), countHLTGroupL1HitsEndLumiBlock(), setupHltLsPlots(), FourVectorHLTOffline::setupHltMatrix(), and TrigResRateMon().
std::string TrigResRateMon::pathsSummaryStreamsFolder_ [private] |
Definition at line 151 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
double TrigResRateMon::photonDRMatch_ [private] |
Definition at line 205 of file TrigResRateMon.h.
double TrigResRateMon::photonEtaMax_ [private] |
Definition at line 203 of file TrigResRateMon.h.
Referenced by beginRun().
double TrigResRateMon::photonEtMin_ [private] |
Definition at line 204 of file TrigResRateMon.h.
double TrigResRateMon::photonL1DRMatch_ [private] |
Definition at line 206 of file TrigResRateMon.h.
int TrigResRateMon::pixelHitsCut_ [private] |
Definition at line 225 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
bool TrigResRateMon::plotAll_ [private] |
Definition at line 169 of file TrigResRateMon.h.
Referenced by beginRun(), and TrigResRateMon().
std::string TrigResRateMon::processname_ [private] |
Definition at line 243 of file TrigResRateMon.h.
Referenced by beginRun(), and TrigResRateMon().
double TrigResRateMon::ptMax_ [private] |
Definition at line 179 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
double TrigResRateMon::ptMin_ [private] |
Definition at line 178 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
edm::InputTag TrigResRateMon::recHitsEBTag_ [private] |
Definition at line 249 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
edm::InputTag TrigResRateMon::recHitsEETag_ [private] |
Definition at line 249 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
unsigned int TrigResRateMon::referenceBX_ [private] |
Definition at line 166 of file TrigResRateMon.h.
Referenced by countHLTGroupBXHitsEndLumiBlock(), and TrigResRateMon().
MonitorElement* TrigResRateMon::scalersSelect [private] |
Definition at line 252 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
std::vector<std::string> TrigResRateMon::specialPaths_ [private] |
Definition at line 240 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
double TrigResRateMon::sumEtMin_ [private] |
Definition at line 219 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
double TrigResRateMon::tauDRMatch_ [private] |
Definition at line 193 of file TrigResRateMon.h.
double TrigResRateMon::tauEtaMax_ [private] |
Definition at line 191 of file TrigResRateMon.h.
Referenced by beginRun().
double TrigResRateMon::tauEtMin_ [private] |
Definition at line 192 of file TrigResRateMon.h.
double TrigResRateMon::tauL1DRMatch_ [private] |
Definition at line 194 of file TrigResRateMon.h.
int TrigResRateMon::theHLTOutputType [private] |
Definition at line 246 of file TrigResRateMon.h.
double TrigResRateMon::thresholdFactor_ [private] |
Definition at line 165 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
double TrigResRateMon::trackDRMatch_ [private] |
Definition at line 209 of file TrigResRateMon.h.
int TrigResRateMon::trackerHitsCut_ [private] |
Definition at line 224 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
double TrigResRateMon::trackEtaMax_ [private] |
Definition at line 207 of file TrigResRateMon.h.
Referenced by beginRun().
double TrigResRateMon::trackEtMin_ [private] |
Definition at line 208 of file TrigResRateMon.h.
double TrigResRateMon::trackL1DRMatch_ [private] |
Definition at line 210 of file TrigResRateMon.h.
std::vector<std::vector <uint> > TrigResRateMon::triggerFilterIndices_ [private] |
Definition at line 233 of file TrigResRateMon.h.
std::vector<std::vector <std::string> > TrigResRateMon::triggerFilters_ [private] |
Definition at line 232 of file TrigResRateMon.h.
Definition at line 255 of file TrigResRateMon.h.
Referenced by analyze(), fillHltMatrix(), FourVectorHLTOffline::hasHLTPassed(), and FourVectorHLTOffline::hasL1Passed().
Definition at line 248 of file TrigResRateMon.h.
Referenced by analyze(), and TrigResRateMon().
Definition at line 247 of file TrigResRateMon.h.
Referenced by TrigResRateMon().
std::vector<MonitorElement*> TrigResRateMon::v_ME_HLTAll_LS [private] |
Definition at line 142 of file TrigResRateMon.h.
Referenced by countHLTPathHitsEndLumiBlock(), setupHltLsPlots(), and FourVectorHLTOffline::setupHltMatrix().
std::vector<MonitorElement*> TrigResRateMon::v_ME_HLTPass_Normalized_Any [private] |
Definition at line 148 of file TrigResRateMon.h.
Referenced by normalizeHLTMatrix().
std::vector<MonitorElement*> TrigResRateMon::v_ME_HLTPassPass [private] |
Definition at line 146 of file TrigResRateMon.h.
Referenced by normalizeHLTMatrix().
std::vector<MonitorElement*> TrigResRateMon::v_ME_HLTPassPass_Normalized [private] |
Definition at line 147 of file TrigResRateMon.h.
Referenced by normalizeHLTMatrix().
std::vector<MonitorElement*> TrigResRateMon::v_ME_Total_BX [private] |
Definition at line 143 of file TrigResRateMon.h.
Referenced by countHLTGroupBXHitsEndLumiBlock().
std::vector<MonitorElement*> TrigResRateMon::v_ME_Total_BX_Norm [private] |
Definition at line 144 of file TrigResRateMon.h.
Referenced by countHLTGroupBXHitsEndLumiBlock().