7 #include <boost/format.hpp>
34 struct RunBasedHistograms {
59 std::vector<dqm::reco::MonitorElement*> tcds_bx;
60 std::vector<dqm::reco::MonitorElement*> l1t_bx;
61 std::vector<dqm::reco::MonitorElement*> hlt_bx;
62 std::vector<dqm::reco::MonitorElement*> tcds_bx_2d;
63 std::vector<dqm::reco::MonitorElement*> l1t_bx_2d;
64 std::vector<dqm::reco::MonitorElement*> hlt_bx_2d;
125 descriptions.
add(
"triggerBxMonitor", desc);
133 m_make_1d_plots(
config.getUntrackedParameter<
bool>(
"make1DPlots")),
134 m_make_2d_plots(
config.getUntrackedParameter<
bool>(
"make2DPlots")),
135 m_ls_range(
config.getUntrackedParameter<uint32_t>(
"lsRange")) {}
176 <<
"failed to initialise HLTConfigProvider, the HLT bx distribution will not be monitored";
190 histograms.tcds_bx_all = booker.book2D(
"TCDS Trigger Types",
191 "TCDS Trigger Types vs. bunch crossing",
200 booker.setCurrentFolder(
m_dqm_path +
"/TCDS");
201 for (
unsigned int i = 0;
i <
size; ++
i) {
221 histograms.l1t_bx_all = booker.book2D(
"Level 1 Triggers",
222 "Level 1 Triggers vs. bunch crossing",
232 auto const& l1tMenu = edm::get<L1TUtmTriggerMenu, L1TUtmTriggerMenuRcd>(
setup);
233 for (
auto const& keyval : l1tMenu.getAlgorithmMap()) {
234 unsigned int bit = keyval.second.getIndex();
244 histograms.l1t_bx_all->setBinLabel(bit + 1, keyval.first, 2);
252 histograms.hlt_bx_all = booker.book2D(
"High Level Triggers",
253 "High Level Triggers vs. bunch crossing",
263 for (
unsigned int i = 0;
i <
histograms.hltConfig.size(); ++
i) {
281 unsigned int bx =
event.bunchCrossing();
282 unsigned int ls =
event.luminosityBlock();
287 unsigned int type =
event.experimentType();
300 if (not bxvector.isEmpty(0)) {
301 auto const&
results = bxvector.at(0, 0);
303 if (
results.getAlgoDecisionFinal(
i)) {