CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
TriggerBxMonitor Class Reference
Inheritance diagram for TriggerBxMonitor:
DQMGlobalEDAnalyzer< RunBasedHistograms > DQMGlobalEDAnalyzerBase< RunBasedHistograms, Args... > edm::global::EDProducer< edm::RunCache< RunBasedHistograms >, edm::EndRunProducer, edm::Accumulator, Args... > edm::global::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 TriggerBxMonitor (edm::ParameterSet const &)
 
 ~TriggerBxMonitor () override=default
 
- Public Member Functions inherited from DQMGlobalEDAnalyzer< RunBasedHistograms >
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &, RunBasedHistograms const &) const
 
void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup) const final
 
- Public Member Functions inherited from DQMGlobalEDAnalyzerBase< RunBasedHistograms, Args... >
void accumulate (edm::StreamID id, edm::Event const &event, edm::EventSetup const &setup) const final
 
 DQMGlobalEDAnalyzerBase ()
 
std::shared_ptr< RunBasedHistograms > globalBeginRun (edm::Run const &run, edm::EventSetup const &setup) const final
 
void globalEndRun (edm::Run const &, edm::EventSetup const &) const final
 
- Public Member Functions inherited from edm::global::EDProducer< edm::RunCache< RunBasedHistograms >, edm::EndRunProducer, edm::Accumulator, Args... >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const noexcept final
 
bool wantsGlobalRuns () const noexcept final
 
bool wantsInputProcessBlocks () const noexcept final
 
bool wantsProcessBlocks () const noexcept final
 
bool wantsStreamLuminosityBlocks () const noexcept final
 
bool wantsStreamRuns () const noexcept final
 
- Public Member Functions inherited from edm::global::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESResolverIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESResolverIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProductResolverIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::global::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, RunBasedHistograms &) const override
 
void dqmAnalyze (edm::Event const &, edm::EventSetup const &, RunBasedHistograms const &) const override
 
void dqmBeginRun (edm::Run const &, edm::EventSetup const &, RunBasedHistograms &) const override
 

Private Attributes

const std::string m_dqm_path
 
const edm::EDGetTokenT< edm::TriggerResultsm_hlt_results_token
 
const edm::InputTag m_l1t_results_inputTag
 
const edm::EDGetTokenT< GlobalAlgBlkBxCollectionm_l1t_results_token
 
const edm::ESGetToken< L1TUtmTriggerMenu, L1TUtmTriggerMenuRcdm_l1tMenu_token
 
const uint32_t m_ls_range
 
const bool m_make_1d_plots
 
const bool m_make_2d_plots
 

Static Private Attributes

static const unsigned int s_bx_range = 3564
 
static constexpr const char * s_tcds_trigger_types []
 

Additional Inherited Members

- Public Types inherited from DQMGlobalEDAnalyzerBase< RunBasedHistograms, Args... >
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::global::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
template<typename T >
using BranchAliasSetterT = ProductRegistryHelper::BranchAliasSetterT< T >
 
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from DQMGlobalEDAnalyzerBase< RunBasedHistograms, Args... >
uint64_t meId (edm::Run const &run) const
 
- Protected Member Functions inherited from edm::ProducerBase
template<Transition Tr = Transition::Event>
auto produces (std::string instanceName) noexcept
 declare what type of product will make and with which optional label More...
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
template<Transition Tr = Transition::Event>
auto produces () noexcept
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 
- Protected Attributes inherited from DQMGlobalEDAnalyzerBase< RunBasedHistograms, Args... >
DQMStoredqmstore_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 66 of file TriggerBxMonitor.cc.

Constructor & Destructor Documentation

◆ TriggerBxMonitor()

TriggerBxMonitor::TriggerBxMonitor ( edm::ParameterSet const &  config)
explicit

Definition at line 127 of file TriggerBxMonitor.cc.

128  : // module configuration
129  m_l1tMenu_token{esConsumes<edm::Transition::BeginRun>()},
130  m_l1t_results_inputTag{config.getUntrackedParameter<edm::InputTag>("l1tResults")},
132  m_hlt_results_token{consumes(config.getUntrackedParameter<edm::InputTag>("hltResults"))},
133  m_dqm_path{config.getUntrackedParameter<std::string>("dqmPath")},
134  m_make_1d_plots{config.getUntrackedParameter<bool>("make1DPlots")},
135  m_make_2d_plots{config.getUntrackedParameter<bool>("make2DPlots")},
136  m_ls_range{config.getUntrackedParameter<uint32_t>("lsRange")} {}
const edm::EDGetTokenT< edm::TriggerResults > m_hlt_results_token
Definition: config.py:1
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
const edm::ESGetToken< L1TUtmTriggerMenu, L1TUtmTriggerMenuRcd > m_l1tMenu_token
const uint32_t m_ls_range
const edm::InputTag m_l1t_results_inputTag
const edm::EDGetTokenT< GlobalAlgBlkBxCollection > m_l1t_results_token
const std::string m_dqm_path
const bool m_make_1d_plots
const bool m_make_2d_plots

◆ ~TriggerBxMonitor()

TriggerBxMonitor::~TriggerBxMonitor ( )
overridedefault

Member Function Documentation

◆ bookHistograms()

void TriggerBxMonitor::bookHistograms ( DQMStore::IBooker booker,
edm::Run const &  run,
edm::EventSetup const &  setup,
RunBasedHistograms &  histograms 
) const
overrideprivatevirtual

Implements DQMGlobalEDAnalyzerBase< RunBasedHistograms, Args... >.

Definition at line 181 of file TriggerBxMonitor.cc.

References triggerObjects_cff::bit, dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), mps_fire::i, m_dqm_path, m_l1tMenu_token, m_ls_range, m_make_1d_plots, m_make_2d_plots, GlobalAlgBlk::maxPhysicsTriggers, Skims_PA_cff::name, s_bx_range, s_tcds_trigger_types, dqm::implementation::NavigatorBase::setCurrentFolder(), singleTopDQM_cfi::setup, findQualityFiles::size, and AlCaHLTBitMon_QueryRunRegistry::string.

184  {
185  // TCDS trigger type plots
186  {
187  size_t size = std::size(s_tcds_trigger_types);
188 
189  // book 2D histogram to monitor all TCDS trigger types in a single plot
191  histograms.tcds_bx_all = booker.book2D("TCDS Trigger Types",
192  "TCDS Trigger Types vs. bunch crossing",
193  s_bx_range + 1,
194  -0.5,
195  s_bx_range + 0.5,
196  size,
197  -0.5,
198  size - 0.5);
199 
200  // book the individual histograms for the known TCDS trigger types
201  booker.setCurrentFolder(m_dqm_path + "/TCDS");
202  for (unsigned int i = 0; i < size; ++i) {
203  if (s_tcds_trigger_types[i]) {
204  if (m_make_1d_plots) {
205  histograms.tcds_bx.at(i) =
207  }
208  if (m_make_2d_plots) {
209  std::string const& name_ls = std::string(s_tcds_trigger_types[i]) + " vs LS";
210  histograms.tcds_bx_2d.at(i) = booker.book2D(
211  name_ls, name_ls, s_bx_range + 1, -0.5, s_bx_range + 0.5, m_ls_range, 0.5, m_ls_range + 0.5);
212  }
213  histograms.tcds_bx_all->setBinLabel(i + 1, s_tcds_trigger_types[i], 2); // Y axis
214  }
215  }
216  }
217 
218  // L1T plots
219  {
220  // book 2D histogram to monitor all L1 triggers in a single plot
222  histograms.l1t_bx_all = booker.book2D("Level 1 Triggers",
223  "Level 1 Triggers vs. bunch crossing",
224  s_bx_range + 1,
225  -0.5,
226  s_bx_range + 0.5,
228  -0.5,
230 
231  // book the individual histograms for the L1 triggers that are included in the L1 menu
232  booker.setCurrentFolder(m_dqm_path + "/L1T");
233  auto const& l1tMenu = setup.getData(m_l1tMenu_token);
234  for (auto const& keyval : l1tMenu.getAlgorithmMap()) {
235  unsigned int bit = keyval.second.getIndex();
236  std::string const& name = fmt::sprintf("%s (bit %d)", keyval.first, bit);
237  if (m_make_1d_plots) {
238  histograms.l1t_bx.at(bit) = booker.book1D(name, name, s_bx_range + 1, -0.5, s_bx_range + 0.5);
239  }
240  if (m_make_2d_plots) {
241  std::string const& name_ls = name + " vs LS";
242  histograms.l1t_bx_2d.at(bit) =
243  booker.book2D(name_ls, name_ls, s_bx_range + 1, -0.5, s_bx_range + 0.5, m_ls_range, 0.5, m_ls_range + 0.5);
244  }
245  histograms.l1t_bx_all->setBinLabel(bit + 1, keyval.first, 2); // Y axis
246  }
247  }
248 
249  // HLT plots
250  if (histograms.hltConfig.inited()) {
251  // book 2D histogram to monitor all HLT paths in a single plot
253  histograms.hlt_bx_all = booker.book2D("High Level Triggers",
254  "High Level Triggers vs. bunch crossing",
255  s_bx_range + 1,
256  -0.5,
257  s_bx_range + 0.5,
258  histograms.hltConfig.size(),
259  -0.5,
260  histograms.hltConfig.size() - 0.5);
261 
262  // book the individual HLT triggers histograms
263  booker.setCurrentFolder(m_dqm_path + "/HLT");
264  for (unsigned int i = 0; i < histograms.hltConfig.size(); ++i) {
265  std::string const& name = histograms.hltConfig.triggerName(i);
266  if (m_make_1d_plots) {
267  histograms.hlt_bx[i] = booker.book1D(name, name, s_bx_range + 1, -0.5, s_bx_range + 0.5);
268  }
269  if (m_make_2d_plots) {
270  std::string const& name_ls = name + " vs LS";
271  histograms.hlt_bx_2d[i] =
272  booker.book2D(name_ls, name_ls, s_bx_range + 1, -0.5, s_bx_range + 0.5, m_ls_range, 0.5, m_ls_range + 0.5);
273  }
274  histograms.hlt_bx_all->setBinLabel(i + 1, name, 2); // Y axis
275  }
276  }
277 }
size
Write out results.
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
const edm::ESGetToken< L1TUtmTriggerMenu, L1TUtmTriggerMenuRcd > m_l1tMenu_token
static constexpr const char * s_tcds_trigger_types[]
const uint32_t m_ls_range
const std::string m_dqm_path
const bool m_make_1d_plots
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:221
static const unsigned int s_bx_range
static constexpr unsigned int maxPhysicsTriggers
Definition: GlobalAlgBlk.h:52
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
const bool m_make_2d_plots

◆ dqmAnalyze()

void TriggerBxMonitor::dqmAnalyze ( edm::Event const &  event,
edm::EventSetup const &  setup,
RunBasedHistograms const &  histograms 
) const
overrideprivatevirtual

Implements DQMGlobalEDAnalyzerBase< RunBasedHistograms, Args... >.

Definition at line 279 of file TriggerBxMonitor.cc.

References nano_mu_digi_cff::bx, edm::InputTag::encode(), JetHT_cfg::hltResults, mps_fire::i, eostools::ls(), m_hlt_results_token, m_l1t_results_inputTag, m_l1t_results_token, m_make_1d_plots, m_make_2d_plots, GlobalAlgBlk::maxPhysicsTriggers, mysort::results, s_tcds_trigger_types, and findQualityFiles::size.

281  {
282  unsigned int bx = event.bunchCrossing();
283  unsigned int ls = event.luminosityBlock();
284 
285  // monitor the bx distribution for the TCDS trigger types
286  {
287  size_t size = std::size(s_tcds_trigger_types);
288  unsigned int type = event.experimentType();
289  if (type < size) {
290  if (m_make_1d_plots and histograms.tcds_bx.at(type))
291  histograms.tcds_bx[type]->Fill(bx);
292  if (m_make_2d_plots and histograms.tcds_bx_2d.at(type))
293  histograms.tcds_bx_2d[type]->Fill(bx, ls);
294  }
295  histograms.tcds_bx_all->Fill(bx, type);
296  }
297 
298  // monitor the bx distribution for the L1 triggers
299  {
300  auto const& algBlkBxVecHandle = event.getHandle(m_l1t_results_token);
301  if (not algBlkBxVecHandle.isValid()) {
302  edm::LogError("TriggerBxMonitor")
303  << "L1 trigger results with label [" << m_l1t_results_inputTag.encode()
304  << "] not present or invalid. MonitorElements of L1T results not filled for this event.";
305  } else if (algBlkBxVecHandle->isEmpty(0)) {
306  edm::LogError("TriggerBxMonitor")
307  << "L1 trigger results with label [" << m_l1t_results_inputTag.encode()
308  << "] empty for BX=0. MonitorElements of L1T results not filled for this event.";
309  } else {
310  auto const& results = algBlkBxVecHandle->at(0, 0);
311  for (unsigned int i = 0; i < GlobalAlgBlk::maxPhysicsTriggers; ++i) {
312  if (results.getAlgoDecisionFinal(i)) {
313  if (m_make_1d_plots and histograms.l1t_bx.at(i))
314  histograms.l1t_bx[i]->Fill(bx);
315  if (m_make_2d_plots and histograms.l1t_bx_2d.at(i))
316  histograms.l1t_bx_2d[i]->Fill(bx, ls);
317  histograms.l1t_bx_all->Fill(bx, i);
318  }
319  }
320  }
321  }
322 
323  // monitor the bx distribution for the HLT triggers
324  if (histograms.hltConfig.inited()) {
325  auto const& hltResults = event.get(m_hlt_results_token);
326  for (unsigned int i = 0; i < hltResults.size(); ++i) {
327  if (hltResults.at(i).accept()) {
328  if (m_make_1d_plots and histograms.hlt_bx.at(i))
329  histograms.hlt_bx[i]->Fill(bx);
330  if (m_make_2d_plots and histograms.hlt_bx_2d.at(i))
331  histograms.hlt_bx_2d[i]->Fill(bx, ls);
332  histograms.hlt_bx_all->Fill(bx, i);
333  }
334  }
335  }
336 }
size
Write out results.
const edm::EDGetTokenT< edm::TriggerResults > m_hlt_results_token
std::string encode() const
Definition: InputTag.cc:159
Log< level::Error, false > LogError
static constexpr const char * s_tcds_trigger_types[]
const edm::InputTag m_l1t_results_inputTag
const edm::EDGetTokenT< GlobalAlgBlkBxCollection > m_l1t_results_token
def ls(path, rec=False)
Definition: eostools.py:349
const bool m_make_1d_plots
results
Definition: mysort.py:8
static constexpr unsigned int maxPhysicsTriggers
Definition: GlobalAlgBlk.h:52
const bool m_make_2d_plots

◆ dqmBeginRun()

void TriggerBxMonitor::dqmBeginRun ( edm::Run const &  run,
edm::EventSetup const &  setup,
RunBasedHistograms &  histograms 
) const
overrideprivatevirtual

Reimplemented from DQMGlobalEDAnalyzerBase< RunBasedHistograms, Args... >.

Definition at line 138 of file TriggerBxMonitor.cc.

References SummaryClient_cfi::labels, edm::EDConsumerBase::labelsForToken(), m_hlt_results_token, m_make_1d_plots, m_make_2d_plots, GlobalAlgBlk::maxPhysicsTriggers, writedatasetfile::run, s_tcds_trigger_types, and singleTopDQM_cfi::setup.

140  {
141  // initialise the TCDS vector
142  if (m_make_1d_plots) {
143  histograms.tcds_bx.clear();
144  histograms.tcds_bx.resize(std::size(s_tcds_trigger_types));
145  }
146  if (m_make_2d_plots) {
147  histograms.tcds_bx_2d.clear();
148  histograms.tcds_bx_2d.resize(std::size(s_tcds_trigger_types));
149  }
150 
151  // cache the L1 trigger menu
152  if (m_make_1d_plots) {
153  histograms.l1t_bx.clear();
155  }
156  if (m_make_2d_plots) {
157  histograms.l1t_bx_2d.clear();
159  }
160 
161  // initialise the HLTConfigProvider
162  bool changed = true;
165  if (histograms.hltConfig.init(run, setup, labels.process, changed)) {
166  if (m_make_1d_plots) {
167  histograms.hlt_bx.clear();
168  histograms.hlt_bx.resize(histograms.hltConfig.size());
169  }
170  if (m_make_2d_plots) {
171  histograms.hlt_bx_2d.clear();
172  histograms.hlt_bx_2d.resize(histograms.hltConfig.size());
173  }
174  } else {
175  // HLTConfigProvider not initialised, skip the the HLT monitoring
176  edm::LogError("TriggerBxMonitor")
177  << "failed to initialise HLTConfigProvider, the HLT bx distribution will not be monitored";
178  }
179 }
const edm::EDGetTokenT< edm::TriggerResults > m_hlt_results_token
Log< level::Error, false > LogError
static constexpr const char * s_tcds_trigger_types[]
const bool m_make_1d_plots
static constexpr unsigned int maxPhysicsTriggers
Definition: GlobalAlgBlk.h:52
const bool m_make_2d_plots
void labelsForToken(EDGetToken iToken, Labels &oLabels) const

◆ fillDescriptions()

void TriggerBxMonitor::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 116 of file TriggerBxMonitor.cc.

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, ProducerED_cfi::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

116  {
118  desc.addUntracked<edm::InputTag>("l1tResults", edm::InputTag("gtStage2Digis"));
119  desc.addUntracked<edm::InputTag>("hltResults", edm::InputTag("TriggerResults"));
120  desc.addUntracked<std::string>("dqmPath", "HLT/TriggerBx");
121  desc.addUntracked<bool>("make1DPlots", true);
122  desc.addUntracked<bool>("make2DPlots", false);
123  desc.addUntracked<uint32_t>("lsRange", 4000);
124  descriptions.add("triggerBxMonitor", desc);
125 }
void add(std::string const &label, ParameterSetDescription const &psetDescription)

Member Data Documentation

◆ m_dqm_path

const std::string TriggerBxMonitor::m_dqm_path
private

Definition at line 107 of file TriggerBxMonitor.cc.

Referenced by bookHistograms().

◆ m_hlt_results_token

const edm::EDGetTokenT<edm::TriggerResults> TriggerBxMonitor::m_hlt_results_token
private

Definition at line 106 of file TriggerBxMonitor.cc.

Referenced by dqmAnalyze(), and dqmBeginRun().

◆ m_l1t_results_inputTag

const edm::InputTag TriggerBxMonitor::m_l1t_results_inputTag
private

Definition at line 104 of file TriggerBxMonitor.cc.

Referenced by dqmAnalyze().

◆ m_l1t_results_token

const edm::EDGetTokenT<GlobalAlgBlkBxCollection> TriggerBxMonitor::m_l1t_results_token
private

Definition at line 105 of file TriggerBxMonitor.cc.

Referenced by dqmAnalyze().

◆ m_l1tMenu_token

const edm::ESGetToken<L1TUtmTriggerMenu, L1TUtmTriggerMenuRcd> TriggerBxMonitor::m_l1tMenu_token
private

Definition at line 103 of file TriggerBxMonitor.cc.

Referenced by bookHistograms().

◆ m_ls_range

const uint32_t TriggerBxMonitor::m_ls_range
private

Definition at line 110 of file TriggerBxMonitor.cc.

Referenced by bookHistograms().

◆ m_make_1d_plots

const bool TriggerBxMonitor::m_make_1d_plots
private

Definition at line 108 of file TriggerBxMonitor.cc.

Referenced by bookHistograms(), dqmAnalyze(), and dqmBeginRun().

◆ m_make_2d_plots

const bool TriggerBxMonitor::m_make_2d_plots
private

Definition at line 109 of file TriggerBxMonitor.cc.

Referenced by bookHistograms(), dqmAnalyze(), and dqmBeginRun().

◆ s_bx_range

const unsigned int TriggerBxMonitor::s_bx_range = 3564
staticprivate

Definition at line 79 of file TriggerBxMonitor.cc.

Referenced by bookHistograms().

◆ s_tcds_trigger_types

constexpr const char * TriggerBxMonitor::s_tcds_trigger_types
staticprivate
Initial value:
= {
"Empty",
"Physics",
"Calibration",
"Random",
"Auxiliary",
nullptr,
nullptr,
nullptr,
"Cyclic",
"Bunch-pattern",
"Software",
"TTS",
nullptr,
nullptr,
nullptr,
nullptr
}

Definition at line 83 of file TriggerBxMonitor.cc.

Referenced by bookHistograms(), dqmAnalyze(), and dqmBeginRun().