18 : fL1GtDaqReadoutRecordInputTag(iConfig.getParameter<
edm::
InputTag>(
"L1GtDaqReadoutRecordInputTag")),
19 fL1GtRecordInputTag(iConfig.getParameter<
edm::
InputTag>(
"L1GtRecordInputTag")),
25 fL1GtDaqReadoutRecordInputTag,
28 LogDebug(
"HLTSeedL1LogicScalers") <<
"constructor";
46 LogDebug(
"HLTSeedL1LogicScalers") <<
"HLTConfigProvider failed to initialize.";
51 for (
unsigned int j = 0;
j !=
n; ++
j) {
58 LogTrace(
"HLTSeedL1LogicScalers") <<
"size of vector of paths to monitor = " <<
fMonitorPaths.size() << endl;
59 for (
unsigned int iPath = 0; iPath <
fMonitorPaths.size(); iPath++) {
61 LogTrace(
"HLTSeedL1LogicScalers") <<
"monPath = " << monPath << endl;
71 LogTrace(
"HLTSeedL1LogicScalers") << endl
72 <<
"size of vector of GTSeedL1LogicalExpression = " << hltL1GTSeed.size() << endl;
75 for (
unsigned int iSeed = 0; iSeed < hltL1GTSeed.size(); iSeed++) {
76 LogTrace(
"HLTSeedL1LogicScalers") <<
" TechBit_flag = " << hltL1GTSeed[iSeed].first
77 <<
" GTSeedL1LogicalExpression = " << hltL1GTSeed[iSeed].second << endl;
79 istringstream totalSString(hltL1GTSeed[iSeed].
second);
82 vector<string> l1Algos;
85 while (!hltL1GTSeed[iSeed].
first) {
86 totalSString >> temp_string;
88 if (!l1Algos.empty()) {
89 if (temp_string == l1Algos.back())
92 if (temp_string !=
"OR" && temp_string !=
"AND" && temp_string !=
"NOT" && temp_string !=
"(" &&
93 temp_string !=
")" && !temp_string.empty()) {
94 l1Algos.push_back(temp_string);
98 int nL1Algo = l1Algos.size();
102 LogWarning(
"HLTSeedL1LogicScalers") <<
" number of l1 Algos grater than 32. Using only the first 32." << endl;
105 int nBins = 1 << nL1Algo;
107 for (
unsigned int k = 0;
k < l1Algos.size();
k++) {
108 LogTrace(
"HLTSeedL1LogicScalers") <<
" l1 Algo = " << l1Algos[
k] << endl;
111 std::stringstream
title;
112 std::stringstream
name;
114 name << monPath <<
"_Seed_" << iSeed <<
"_L1BitLogic";
115 title << monPath <<
" BitPacked L1Algos of GTSeed " << iSeed <<
": '" << hltL1GTSeed[iSeed].second <<
"'";
117 LogTrace(
"HLTSeedL1LogicScalers") <<
" MonitorElement name = " << name.str() << endl;
118 LogTrace(
"HLTSeedL1LogicScalers") <<
" MonitorElement title = " << title.str() << endl;
119 LogTrace(
"HLTSeedL1LogicScalers") <<
" MonitorElement nBins = " << nBins << endl << endl;
131 LogDebug(
"HLTSeedL1LogicScalers") <<
"HLTSeedL1LogicScalers::analyze event ";
148 unsigned int myL1Word = 0;
151 for (
unsigned int j = 0;
j < l1Algos.size();
j++) {
154 LogTrace(
"HLTSeedL1LogicScalers") <<
"l1Algo = " << l1Algos[
j] <<
" l1Pass = " << l1Pass << endl;
157 myL1Word |= (1 <<
j);
166 const string& l1AlgoName) {
167 LogTrace(
"HLTSeedL1LogicScalers") <<
"analyzeL1GtUtils..." << endl;
174 LogTrace(
"HLTSeedL1LogicScalers") <<
"l1AlgoName = " << l1AlgoName << endl;
176 bool decisionAlgTechTrig =
false;
186 <<
" decisionAlgTechTrig = " << decisionAlgTechTrig << endl;
188 if (iErrorCode == 0) {
189 return decisionAlgTechTrig;
190 }
else if (iErrorCode == 1) {
192 LogWarning(
"HLTSeedL1LogicScalers") <<
"L1 algorithm " << l1AlgoName
193 <<
" not in L1 menu, but HLTConfigProvider found it in " 194 "L1SeedsLogicalExpression of at least one HLT path of the HLT menu."
unsigned int size() const
number of trigger paths in trigger table
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX)
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
const std::string & triggerName(unsigned int triggerIndex) const
void setCurrentFolder(std::string const &fullpath)
~HLTSeedL1LogicScalers() override
bool analyzeL1GtUtils(const edm::Event &, const edm::EventSetup &, const std::string &)
const std::string & getName() const
get name of ME
HLTSeedL1LogicScalers(const edm::ParameterSet &)
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 to size-1)
U second(std::pair< T, U > const &p)
void retrieveL1EventSetup(const edm::EventSetup &)
retrieve all the relevant L1 trigger event setup records and cache them to improve the speed ...
HLTConfigProvider fHLTConfig
const std::vector< std::vector< std::pair< bool, std::string > > > & hltL1GTSeeds() const
std::vector< std::string > fMonitorPaths
const bool decisionBeforeMask(const edm::Event &iEvent, const std::string &nameAlgoTechTrig, int &errorCode) const
return decision before trigger mask for a given algorithm or technical trigger
std::vector< MonitorElement * > fMonitorPathsME
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
std::vector< std::pair< MonitorElement *, std::vector< std::string > > > fMapMEL1Algos
void dqmBeginRun(const edm::Run &run, const edm::EventSetup &c) override
const bool decisionAfterMask(const edm::Event &iEvent, const std::string &nameAlgoTechTrig, int &errorCode) const
return decision after trigger mask for a given algorithm or technical trigger
void analyze(const edm::Event &, const edm::EventSetup &) override
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)