23 : processName_(ps.getParameter<
std::
string>(
"processName")),
24 triggerName_(ps.getParameter<
std::
string>(
"triggerName")),
25 triggerResultsTag_(ps.getParameter<
edm::
InputTag>(
"triggerResults")),
27 triggerEventTag_(ps.getParameter<
edm::
InputTag>(
"triggerEvent")),
29 hltPrescaleProvider_(ps, consumesCollector(), *this) {
33 LogVerbatim(
"HLTEventAnalyzerAOD") <<
"HLTEventAnalyzerAOD configuration: " << endl
51 desc.add<
unsigned int>(
"stageL1Trigger", 1);
52 descriptions.
add(
"hltEventAnalyzerAODDefault",
desc);
70 if (triggerIndex >=
n) {
72 <<
"HLTEventAnalyzerAOD::analyze:" 73 <<
" TriggerName " <<
triggerName_ <<
" not available in (new) config!" << endl;
74 LogVerbatim(
"HLTEventAnalyzerAOD") <<
"Available TriggerNames are: " << endl;
87 LogVerbatim(
"HLTEventAnalyzerAOD") <<
"HLTEventAnalyzerAOD::analyze:" 88 <<
" config extraction failure with process name " <<
processName_ << endl;
103 <<
"HLTEventAnalyzerAOD::analyze: Error in getting TriggerResults product from Event!" << endl;
109 <<
"HLTEventAnalyzerAOD::analyze: Error in getting TriggerEvent product from Event!" << endl;
121 for (
unsigned int i = 0;
i !=
n; ++
i) {
136 using namespace reco;
148 if (triggerIndex >=
n) {
149 LogVerbatim(
"HLTEventAnalyzerAOD") <<
"HLTEventAnalyzerAOD::analyzeTrigger: path " <<
triggerName <<
" - not found!" 156 << triggerIndex <<
"] " 159 std::ostringstream message;
160 for (
unsigned int i = 0;
i < prescalesInDetail.first.size(); ++
i) {
161 message <<
" " <<
i <<
":" << prescalesInDetail.first[
i].first <<
"/" << prescalesInDetail.first[
i].second;
164 << triggerIndex <<
"] " << endl
165 <<
"prescales L1T: " << prescalesInDetail.first.size() << message.str() << endl
166 <<
" prescale HLT: " << prescalesInDetail.second << endl;
169 const unsigned int m(
hltConfig.size(triggerIndex));
170 const vector<string>& moduleLabels(
hltConfig.moduleLabels(triggerIndex));
173 LogVerbatim(
"HLTEventAnalyzerAOD") <<
" Trigger path status:" 178 LogVerbatim(
"HLTEventAnalyzerAOD") <<
" Last active module - label/type: " << moduleLabels[moduleIndex] <<
"/" 179 <<
hltConfig.moduleType(moduleLabels[moduleIndex]) <<
" [" << moduleIndex
180 <<
" out of 0-" << (
m - 1) <<
" on this path]" << endl;
185 for (
unsigned int j = 0;
j <= moduleIndex; ++
j) {
190 if (filterIndex < triggerEventHandle_->sizeFilters()) {
192 << moduleType << endl;
199 LogVerbatim(
"HLTEventAnalyzerAOD") <<
" " <<
n <<
" accepted 'L3' objects found: " << endl;
203 LogVerbatim(
"HLTEventAnalyzerAOD") <<
" " <<
i <<
" " << VIDS[
i] <<
"/" << KEYS[
i] <<
": " << TO.
id() <<
" " 204 << TO.
pt() <<
" " << TO.
eta() <<
" " << TO.
phi() <<
" " << TO.
mass() << endl;
unsigned int index(const unsigned int i) const
Get index (slot position) of module giving the decision of the ith path.
bool accept() const
Has at least one path accepted the event?
Log< level::Info, true > LogVerbatim
const Keys & filterKeys(trigger::size_type index) const
virtual void analyzeTrigger(const edm::Event &, const edm::EventSetup &, const std::string &triggerName)
bool error() const
Has any path encountered an error (exception)
const edm::InputTag triggerResultsTag_
const edm::EDGetTokenT< edm::TriggerResults > triggerResultsToken_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
const std::string triggerName_
std::pair< std::vector< std::pair< std::string, TL1 > >, THLT > prescaleValuesInDetail(const edm::Event &iEvent, const edm::EventSetup &iSetup, const std::string &trigger)
HLTConfigProvider const & hltConfigProvider() const
edm::Handle< trigger::TriggerEvent > triggerEventHandle_
const std::string processName_
module config parameters
HLTPrescaleProvider hltPrescaleProvider_
bool wasrun() const
Was at least one path run?
unsigned int size() const
Get number of paths stored.
const edm::InputTag triggerEventTag_
std::pair< TL1, THLT > prescaleValues(const edm::Event &iEvent, const edm::EventSetup &iSetup, const std::string &trigger)
Combined L1T (pair.first) and HLT (pair.second) prescales per HLT path.
void beginRun(edm::Run const &, edm::EventSetup const &) override
const TriggerObjectCollection & getObjects() const
void analyze(const edm::Event &, const edm::EventSetup &) override
const edm::EDGetTokenT< trigger::TriggerEvent > triggerEventToken_
edm::Handle< edm::TriggerResults > triggerResultsHandle_
additional class data memebers
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
~HLTEventAnalyzerAOD() override
const Vids & filterIds(trigger::size_type index) const
trigger::size_type filterIndex(const edm::InputTag &filterTag) const
find index of filter in data-member vector from filter tag
void endRun(edm::Run const &, edm::EventSetup const &) override
std::vector< size_type > Keys
HLTEventAnalyzerAOD(const edm::ParameterSet &)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)