80 : folderName_(ps.getUntrackedParameter<std::
string>(
"dqmFolder",
81 "HLT/HLTScalers_EvF")),
82 processname_(ps.getParameter<std::
string>(
"processname")),
85 ps.getParameter<edm::
InputTag>(
"triggerResults"))),
95 hltOverallScalerN_(0),
98 monitorDaemon_(ps.getUntrackedParameter<bool>(
"MonitorDaemon",
false)),
101 LogDebug(
"HLTScalers") <<
"HLTScalers: constructor....";
105 LogDebug(
"HLTScalers") <<
"HLTScalers::beginRun, run " << run.
id();
108 bool changed =
false;
114 edm::LogError(
"TrigXMonitor") <<
"HLTConfigProvider failed to initialize.";
124 for (
unsigned int i = 0;
i < PD.size();
i++) {
125 const std::vector<std::string>& datasetPaths =
135 <<
"HLTScalers::beginRun, steamm A not in the HLT menu ";
150 iBooker.
book1D(
"hltOverallScaler",
"HLT Overall Scaler", 1, 0.5, 1.5);
152 "Reset HLT Overall Scaler", 1, 0.5, 1.5);
161 int maxModules = 200;
163 scalersPD_ = iBooker.
book1D(
"pdScalers",
"PD scalers (stream A)", nPD, -0.5,
166 iBooker.
book2D(
"detailedHltScalers",
"HLT Scalers", npath, -0.5,
167 npath - 0.5, maxModules, 0, maxModules - 1);
169 iBooker.
book1D(
"hltScalers",
"HLT scalers", npath, -0.5, npath - 0.5);
170 scalersN_ = iBooker.
book1D(
"hltScalersN",
"Reset HLT scalers", npath, -0.5,
173 npath, -0.5, npath - 0.5);
175 iBooker.
book2D(
"hltCorrelations",
"HLT Scalers", npath, -0.5, npath - 0.5,
176 npath, -0.5, npath - 0.5);
181 3600, -0.5, 3599.5, npath, -0.5, npath - 0.5);
183 iBooker.
book1D(
"hltBx",
"Bx of HLT Accepted Events ", 3600, -0.5, 3599.5);
188 LogDebug(
"HLTScalers") <<
"Start of luminosity block.";
205 edm::LogInfo(
"HLTScalers") <<
"getByLabel for TriggerResults failed"
206 <<
" with label " << l.
module;
209 int npath = hltResults->size();
220 for (TriggerNames::Strings::const_iterator
j = names.
triggerNames().begin();
222 LogDebug(
"HLTScalers") << q <<
": " << *
j;
227 for (
unsigned int i = 0;
i < nPD;
i++) {
238 for (
int i = 0;
i < npath; ++
i) {
241 for (
unsigned int j = 0;
j < hltResults->index(
i); ++
j) {
249 for (
int j =
i + 1;
j < npath; ++
j) {
265 bool anyGroupPassed =
false;
266 for (
unsigned int mi = 0; mi <
pairPDPaths_.size(); mi++) {
267 bool groupPassed =
false;
275 unsigned int pathByIndex =
277 if (pathByIndex >= hltResults->size())
continue;
287 if (hltResults->accept(pathByIndex)) {
295 anyGroupPassed =
true;
308 LogDebug(
"HLTScalers") <<
"End of luminosity block.";
312 LogDebug(
"HLTScalers") <<
"HLTScalers::endRun , run " << run.
id();
unsigned int size() const
number of trigger paths in trigger table
LuminosityBlockID id() const
std::vector< std::pair< std::string, std::vector< std::string > > > pairPDPaths_
virtual edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const
void setBinContent(int binx, double content)
set content of bin (1-D)
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
static const HistoName names[]
bool getByToken(EDGetToken token, Handle< PROD > &result) const
HLTScalers(const edm::ParameterSet &ps)
MonitorElement * scalersN_
MonitorElement * detailedScalers_
MonitorElement * bookInt(Args &&...args)
int bunchCrossing() const
MonitorElement * hltOverallScaler_
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
DQM Client Diagnostic should be performed here:
MonitorElement * scalers_
unsigned int streamIndex(const std::string &stream) const
index of stream with name
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
MonitorElement * diagnostic_
Strings const & triggerNames() const
U second(std::pair< T, U > const &p)
MonitorElement * hltBxVsPath_
void endRun(const edm::Run &run, const edm::EventSetup &c)
const std::vector< std::string > & streamNames() const
unsigned int triggerIndex(std::string const &name) const
const std::vector< std::string > & streamContent(unsigned int stream) const
names of datasets in stream with index i
MonitorElement * book1D(Args &&...args)
MonitorElement * hltCorrelations_
HLTConfigProvider hltConfig_
void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
const std::vector< std::string > & datasetContent(unsigned int dataset) const
names of trigger paths in dataset with index i
static const char *const trigNames[]
MonitorElement * scalersException_
MonitorElement * nLumiBlock_
void setCurrentFolder(const std::string &fullpath)
MonitorElement * book2D(Args &&...args)
MonitorElement * hltOverallScalerN_
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
LuminosityBlockNumber_t luminosityBlock() const
void labelsForToken(EDGetToken iToken, Labels &oLabels) const
volatile std::atomic< bool > shutdown_flag false
MonitorElement * scalersPD_
void analyze(const edm::Event &e, const edm::EventSetup &c)
void dqmBeginRun(const edm::Run &run, const edm::EventSetup &c)
void Reset(void)
reset ME (ie. contents, errors, etc)
edm::EDGetTokenT< edm::TriggerResults > trigResultsSource_