#include <HLTExoticaSubAnalysis.h>
Public Types | |
enum | Level { Level::GEN = 98, Level::RECO = 99 } |
Public Member Functions | |
void | analyze (const edm::Event &iEvent, const edm::EventSetup &iEventSetup, EVTColContainer *cols) |
void | beginJob () |
void | beginRun (const edm::Run &iRun, const edm::EventSetup &iEventSetup) |
HLTExoticaSubAnalysis (const edm::ParameterSet &pset, const std::string &analysisname, edm::ConsumesCollector &&consCollector) | |
Constructor. More... | |
void | subAnalysisBookHistos (DQMStore::IBooker &iBooker, const edm::Run &iRun, const edm::EventSetup &iSetup) |
~HLTExoticaSubAnalysis () | |
End Constructor. More... | |
Private Member Functions | |
void | bookHist (DQMStore::IBooker &iBooker, const std::string &source, const std::string &objType, const std::string &variable) |
The internal functions to book and fill histograms. More... | |
void | fillHist (const std::string &source, const std::string &objType, const std::string &variable, const float &value) |
void | getHandlesToObjects (const edm::Event &iEvent, EVTColContainer *col) |
Gets the collections themselves. More... | |
void | getNamesOfObjects (const edm::ParameterSet &anpset) |
Creates the maps that map which collection should come from which label. More... | |
const std::vector< unsigned int > | getObjectsType (const std::string &hltpath) const |
closes analyze method More... | |
void | initSelector (const unsigned int &objtype) |
Initializes the selectors of the objects based on which object it is. More... | |
void | insertCandidates (const unsigned int &objtype, const EVTColContainer *col, std::vector< reco::LeafCandidate > *matches) |
void | registerConsumes (edm::ConsumesCollector &consCollector) |
Registers consumption of objects. More... | |
Private Attributes | |
std::string | _analysisname |
The name of this sub-analysis. More... | |
std::map< std::string, MonitorElement * > | _elements |
Structure of the MonitorElements. More... | |
std::map< unsigned int, std::string > | _genCut |
gen/rec objects cuts More... | |
edm::InputTag | _genParticleLabel |
edm::EDGetTokenT < reco::GenParticleCollection > | _genParticleToken |
And also the tokens to get the object collections. More... | |
std::map< unsigned int, StringCutObjectSelector < reco::GenParticle > * > | _genSelectorMap |
HLTConfigProvider | _hltConfig |
Interface to the HLT information. More... | |
std::set< std::string > | _hltPaths |
The hlt paths found in the hltConfig. More... | |
std::vector< std::string > | _hltPathsToCheck |
The hlt paths to check for. More... | |
std::string | _hltProcessName |
The labels of the object collections to be used in this analysis. More... | |
unsigned int | _minCandidates |
The minimum number of reco/gen candidates needed by the analysis. More... | |
std::vector< double > | _parametersEta |
Some kinematical parameters. More... | |
std::vector< double > | _parametersPhi |
std::vector< double > | _parametersTurnOn |
std::vector< HLTExoticaPlotter > | _plotters |
The plotters: managers of each hlt path where the plots are done. More... | |
edm::ParameterSet | _pset |
Internal, working copy of the PSet passed from above. More... | |
std::map< unsigned int, std::string > | _recCut |
StringCutObjectSelector < reco::GsfElectron > * | _recElecSelector |
StringCutObjectSelector < reco::PFJet > * | _recJetSelector |
std::map< unsigned int, edm::InputTag > | _recLabels |
StringCutObjectSelector < reco::Muon > * | _recMuonSelector |
StringCutObjectSelector < reco::PFMET > * | _recPFMETSelector |
StringCutObjectSelector < reco::PFTau > * | _recPFTauSelector |
StringCutObjectSelector < reco::Photon > * | _recPhotonSelector |
std::map< std::string, std::string > | _shortpath2long |
Relation between the short and long versions of the path. More... | |
std::map< unsigned int, edm::EDGetToken > | _tokens |
edm::InputTag | _trigResultsLabel |
edm::EDGetTokenT < edm::TriggerResults > | _trigResultsToken |
This class is the main workhorse of the package. It makes the histograms for one given analysis, taking care of all HLT paths related to that analysis.
Generate histograms for trigger efficiencies Exotica related Documentation available on the CMS TWiki: https://twiki.cern.ch/twiki/bin/view/CMS/EXOTICATriggerValidation
Definition at line 57 of file HLTExoticaSubAnalysis.h.
|
strong |
Enumerator | |
---|---|
GEN | |
RECO |
Definition at line 59 of file HLTExoticaSubAnalysis.h.
HLTExoticaSubAnalysis::HLTExoticaSubAnalysis | ( | const edm::ParameterSet & | pset, |
const std::string & | analysisname, | ||
edm::ConsumesCollector && | consCollector | ||
) |
Constructor.
Get the vector of paths to check, for this particular analysis.
Get the minimum candidates, for this particular analysis.
Definition at line 26 of file HLTExoticaSubAnalysis.cc.
References _genCut, _hltPathsToCheck, _minCandidates, _parametersEta, _parametersPhi, _parametersTurnOn, _pset, _recCut, _recLabels, edm::ParameterSet::exists(), getNamesOfObjects(), edm::ParameterSet::getParameter(), EVTColContainer::getTypeString(), edm::ParameterSet::getUntrackedParameter(), edm::ParameterSet::insert(), LogDebug, registerConsumes(), edm::ParameterSet::retrieve(), and AlCaHLTBitMon_QueryRunRegistry::string.
HLTExoticaSubAnalysis::~HLTExoticaSubAnalysis | ( | ) |
End Constructor.
Definition at line 106 of file HLTExoticaSubAnalysis.cc.
References _genSelectorMap, _recElecSelector, _recJetSelector, _recMuonSelector, _recPFMETSelector, _recPFTauSelector, _recPhotonSelector, and python.multivaluedict::map().
void HLTExoticaSubAnalysis::analyze | ( | const edm::Event & | iEvent, |
const edm::EventSetup & | iEventSetup, | ||
EVTColContainer * | cols | ||
) |
Method to fill all relevant histograms. Notice that we update the EVTColContaner to point to the collections we want.
We are going to make a fake LeafCandidate, with our particleType as the pdgId. This is an alternative to the older implementation with MatchStruct.
Filling the histograms if pass the minimum amount of candidates needed by the analysis: First do the GEN case
GEN CASE ///
Close GEN case
RECO CASE ///
Debugging.
Close RECO case
Definition at line 279 of file HLTExoticaSubAnalysis.cc.
References _genCut, _genSelectorMap, _minCandidates, _plotters, _recLabels, _shortpath2long, edm::HLTGlobalStatus::accept(), eta(), fillHist(), EVTColContainer::genParticles, getHandlesToObjects(), EVTColContainer::getTypeString(), i, initSelector(), insertCandidates(), j, LogDebug, reco::Candidate::p4(), phi, RecoTauCleanerPlugins::pt, edm::TriggerNames::size(), python.multivaluedict::sort(), AlCaHLTBitMon_QueryRunRegistry::string, edm::Event::triggerNames(), EVTColContainer::triggerResults, trigNames, findQualityFiles::v, and reco::Candidate::vertex().
void HLTExoticaSubAnalysis::beginJob | ( | void | ) |
Definition at line 128 of file HLTExoticaSubAnalysis.cc.
void HLTExoticaSubAnalysis::beginRun | ( | const edm::Run & | iRun, |
const edm::EventSetup & | iEventSetup | ||
) |
Construct the plotters right here. For that we need to create the _hltPaths vector.
Definition at line 176 of file HLTExoticaSubAnalysis.cc.
References _analysisname, _hltConfig, _hltPaths, _hltPathsToCheck, _hltProcessName, _plotters, _pset, _recLabels, _shortpath2long, newFWLiteAna::found, i, HLTConfigProvider::init(), getDQMSummary::iter, j, LogDebug, LogTrace, cmsHarvester::path, listBenchmarks::pattern, AlCaHLTBitMon_QueryRunRegistry::string, and HLTConfigProvider::triggerNames().
|
private |
The internal functions to book and fill histograms.
Definition at line 731 of file HLTExoticaSubAnalysis.cc.
References _elements, _parametersEta, _parametersPhi, _parametersTurnOn, DQMStore::IBooker::book1D(), prof2calltree::edges, h, i, LogDebug, bookConverter::max, min(), mergeVDriftHistosByStation::name, source, AlCaHLTBitMon_QueryRunRegistry::string, and indexGen::title.
Referenced by subAnalysisBookHistos().
|
private |
Definition at line 781 of file HLTExoticaSubAnalysis.cc.
References _elements, LogDebug, mergeVDriftHistosByStation::name, source, AlCaHLTBitMon_QueryRunRegistry::string, and relativeConstraints::value.
Referenced by analyze().
|
private |
Gets the collections themselves.
Definition at line 667 of file HLTExoticaSubAnalysis.cc.
References _genParticleToken, _tokens, _trigResultsToken, EVTColContainer::ELEC, EVTColContainer::genParticles, edm::Event::getByToken(), EVTColContainer::isCommonInit(), edm::HandleBase::isValid(), EVTColContainer::JET, LogDebug, EVTColContainer::MUON, EVTColContainer::PFMET, EVTColContainer::PFTAU, EVTColContainer::PHOTON, edm::Handle< T >::product(), EVTColContainer::set(), and EVTColContainer::triggerResults.
Referenced by analyze().
|
private |
Creates the maps that map which collection should come from which label.
Definition at line 575 of file HLTExoticaSubAnalysis.cc.
References _analysisname, _genSelectorMap, _recLabels, EVTColContainer::ELEC, edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), EVTColContainer::JET, LogDebug, EVTColContainer::MUON, EVTColContainer::PFMET, EVTColContainer::PFTAU, and EVTColContainer::PHOTON.
Referenced by HLTExoticaSubAnalysis().
|
private |
closes analyze method
Return the objects (muons,electrons,photons,...) needed by a HLT path. Will in general return: 0 for muon, 1 for electron, 2 for photon, 3 for PFMET, 4 for PFTau, 5 for Jet. Notice that this function is really based on a parsing of the name of the path; any incongruences there may lead to problems.
Definition at line 544 of file HLTExoticaSubAnalysis.cc.
References EVTColContainer::ELEC, EVTColContainer::getTypeString(), i, EVTColContainer::JET, LogDebug, EVTColContainer::MUON, EVTColContainer::PFMET, EVTColContainer::PFTAU, EVTColContainer::PHOTON, and AlCaHLTBitMon_QueryRunRegistry::string.
|
private |
Initializes the selectors of the objects based on which object it is.
Definition at line 796 of file HLTExoticaSubAnalysis.cc.
References _recCut, _recElecSelector, _recJetSelector, _recMuonSelector, _recPFMETSelector, _recPFTauSelector, _recPhotonSelector, EVTColContainer::ELEC, EVTColContainer::JET, LogDebug, EVTColContainer::MUON, EVTColContainer::PFMET, EVTColContainer::PFTAU, and EVTColContainer::PHOTON.
Referenced by analyze().
|
private |
This function applies the selectors initialized previously to the objects, and matches the passing objects to HLT objects.
This is a special case. Passing a PFMET* to the constructor of MatchStruct will trigger the usage of the special constructor which also sets the sumEt member.
Definition at line 821 of file HLTExoticaSubAnalysis.cc.
References _recElecSelector, _recJetSelector, _recMuonSelector, _recPFMETSelector, _recPFTauSelector, _recPhotonSelector, EVTColContainer::ELEC, EVTColContainer::electrons, i, EVTColContainer::JET, EVTColContainer::jets, LogDebug, m, EVTColContainer::MUON, EVTColContainer::muons, EVTColContainer::PFMET, EVTColContainer::pfMETs, EVTColContainer::PFTAU, EVTColContainer::pfTaus, EVTColContainer::PHOTON, and EVTColContainer::photons.
Referenced by analyze().
|
private |
Registers consumption of objects.
Definition at line 614 of file HLTExoticaSubAnalysis.cc.
References _genParticleLabel, _genParticleToken, _recLabels, _tokens, _trigResultsLabel, _trigResultsToken, edm::ConsumesCollector::consumes(), EVTColContainer::ELEC, EVTColContainer::JET, LogDebug, EVTColContainer::MUON, EVTColContainer::PFMET, EVTColContainer::PFTAU, and EVTColContainer::PHOTON.
Referenced by HLTExoticaSubAnalysis().
void HLTExoticaSubAnalysis::subAnalysisBookHistos | ( | DQMStore::IBooker & | iBooker, |
const edm::Run & | iRun, | ||
const edm::EventSetup & | iSetup | ||
) |
Method to book all relevant histograms in the DQMStore. Uses the IBooker interface for thread safety. Intended to be called from master object.
Definition at line 139 of file HLTExoticaSubAnalysis.cc.
References _analysisname, _plotters, _recLabels, bookHist(), EVTColContainer::getTypeString(), i, LogDebug, DQMStore::IBooker::setCurrentFolder(), source, and AlCaHLTBitMon_QueryRunRegistry::string.
|
private |
The name of this sub-analysis.
Definition at line 111 of file HLTExoticaSubAnalysis.h.
Referenced by beginRun(), getNamesOfObjects(), and subAnalysisBookHistos().
|
private |
Structure of the MonitorElements.
Definition at line 159 of file HLTExoticaSubAnalysis.h.
Referenced by bookHist(), and fillHist().
|
private |
gen/rec objects cuts
Definition at line 139 of file HLTExoticaSubAnalysis.h.
Referenced by analyze(), and HLTExoticaSubAnalysis().
|
private |
Definition at line 125 of file HLTExoticaSubAnalysis.h.
Referenced by registerConsumes().
|
private |
And also the tokens to get the object collections.
Definition at line 129 of file HLTExoticaSubAnalysis.h.
Referenced by getHandlesToObjects(), and registerConsumes().
|
private |
The concrete String selectors (use the string cuts introduced via the config python)
Definition at line 144 of file HLTExoticaSubAnalysis.h.
Referenced by analyze(), getNamesOfObjects(), and ~HLTExoticaSubAnalysis().
|
private |
Interface to the HLT information.
Definition at line 156 of file HLTExoticaSubAnalysis.h.
Referenced by beginRun().
|
private |
The hlt paths found in the hltConfig.
Definition at line 119 of file HLTExoticaSubAnalysis.h.
Referenced by beginRun().
|
private |
The hlt paths to check for.
Definition at line 117 of file HLTExoticaSubAnalysis.h.
Referenced by beginRun(), and HLTExoticaSubAnalysis().
|
private |
The labels of the object collections to be used in this analysis.
Definition at line 124 of file HLTExoticaSubAnalysis.h.
Referenced by beginRun().
|
private |
The minimum number of reco/gen candidates needed by the analysis.
Definition at line 114 of file HLTExoticaSubAnalysis.h.
Referenced by analyze(), and HLTExoticaSubAnalysis().
|
private |
Some kinematical parameters.
Definition at line 134 of file HLTExoticaSubAnalysis.h.
Referenced by bookHist(), and HLTExoticaSubAnalysis().
|
private |
Definition at line 135 of file HLTExoticaSubAnalysis.h.
Referenced by bookHist(), and HLTExoticaSubAnalysis().
|
private |
Definition at line 136 of file HLTExoticaSubAnalysis.h.
Referenced by bookHist(), and HLTExoticaSubAnalysis().
|
private |
The plotters: managers of each hlt path where the plots are done.
Definition at line 153 of file HLTExoticaSubAnalysis.h.
Referenced by analyze(), beginRun(), and subAnalysisBookHistos().
|
private |
Internal, working copy of the PSet passed from above.
Definition at line 108 of file HLTExoticaSubAnalysis.h.
Referenced by beginRun(), and HLTExoticaSubAnalysis().
|
private |
Definition at line 140 of file HLTExoticaSubAnalysis.h.
Referenced by HLTExoticaSubAnalysis(), and initSelector().
|
private |
Definition at line 146 of file HLTExoticaSubAnalysis.h.
Referenced by initSelector(), insertCandidates(), and ~HLTExoticaSubAnalysis().
|
private |
Definition at line 150 of file HLTExoticaSubAnalysis.h.
Referenced by initSelector(), insertCandidates(), and ~HLTExoticaSubAnalysis().
|
private |
Definition at line 127 of file HLTExoticaSubAnalysis.h.
Referenced by analyze(), beginRun(), getNamesOfObjects(), HLTExoticaSubAnalysis(), registerConsumes(), and subAnalysisBookHistos().
|
private |
Definition at line 145 of file HLTExoticaSubAnalysis.h.
Referenced by initSelector(), insertCandidates(), and ~HLTExoticaSubAnalysis().
|
private |
Definition at line 147 of file HLTExoticaSubAnalysis.h.
Referenced by initSelector(), insertCandidates(), and ~HLTExoticaSubAnalysis().
|
private |
Definition at line 148 of file HLTExoticaSubAnalysis.h.
Referenced by initSelector(), insertCandidates(), and ~HLTExoticaSubAnalysis().
|
private |
Definition at line 149 of file HLTExoticaSubAnalysis.h.
Referenced by initSelector(), insertCandidates(), and ~HLTExoticaSubAnalysis().
|
private |
Relation between the short and long versions of the path.
Definition at line 121 of file HLTExoticaSubAnalysis.h.
Referenced by analyze(), and beginRun().
|
private |
Definition at line 131 of file HLTExoticaSubAnalysis.h.
Referenced by getHandlesToObjects(), and registerConsumes().
|
private |
Definition at line 126 of file HLTExoticaSubAnalysis.h.
Referenced by registerConsumes().
|
private |
Definition at line 130 of file HLTExoticaSubAnalysis.h.
Referenced by getHandlesToObjects(), and registerConsumes().