CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes
HLTriggerJSONMonitoring Class Reference
Inheritance diagram for HLTriggerJSONMonitoring:
edm::global::EDAnalyzer< edm::StreamCache< HLTriggerJSONMonitoringData::stream >, edm::RunCache< HLTriggerJSONMonitoringData::run >, edm::LuminosityBlockSummaryCache< HLTriggerJSONMonitoringData::lumisection > > edm::global::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

void analyze (edm::StreamID, edm::Event const &, edm::EventSetup const &) const override
 
std::unique_ptr< HLTriggerJSONMonitoringData::streambeginStream (edm::StreamID) const override
 
std::shared_ptr< HLTriggerJSONMonitoringData::lumisectionglobalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &) const override
 
std::shared_ptr< HLTriggerJSONMonitoringData::runglobalBeginRun (edm::Run const &, edm::EventSetup const &) const override
 
void globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, HLTriggerJSONMonitoringData::lumisection *) const override
 
void globalEndRun (edm::Run const &, edm::EventSetup const &) const override
 
 HLTriggerJSONMonitoring (const edm::ParameterSet &)
 
void streamBeginLuminosityBlock (edm::StreamID, edm::LuminosityBlock const &, edm::EventSetup const &) const override
 
void streamEndLuminosityBlockSummary (edm::StreamID, edm::LuminosityBlock const &, edm::EventSetup const &, HLTriggerJSONMonitoringData::lumisection *) const override
 
 ~HLTriggerJSONMonitoring () override=default
 
- Public Member Functions inherited from edm::global::EDAnalyzer< edm::StreamCache< HLTriggerJSONMonitoringData::stream >, edm::RunCache< HLTriggerJSONMonitoringData::run >, edm::LuminosityBlockSummaryCache< HLTriggerJSONMonitoringData::lumisection > >
 EDAnalyzer ()=default
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDAnalyzerBase () 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 &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (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::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

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

Static Private Member Functions

static void writeIniFile (HLTriggerJSONMonitoringData::run const &, unsigned int)
 
static void writeJsdFile (HLTriggerJSONMonitoringData::run const &)
 

Private Attributes

const edm::InputTag triggerResults_
 
const edm::EDGetTokenT< edm::TriggerResultstriggerResultsToken_
 

Static Private Attributes

static constexpr const char * streamName_ = "streamHLTRates"
 

Additional Inherited Members

- Public Types inherited from edm::global::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (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 ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
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)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

Description: This class outputs JSON files with HLT monitoring information.

Definition at line 71 of file HLTriggerJSONMonitoring.cc.

Constructor & Destructor Documentation

◆ HLTriggerJSONMonitoring()

HLTriggerJSONMonitoring::HLTriggerJSONMonitoring ( const edm::ParameterSet config)
explicit

Definition at line 137 of file HLTriggerJSONMonitoring.cc.

138  : triggerResults_(config.getParameter<edm::InputTag>("triggerResults")),
139  triggerResultsToken_(consumes<edm::TriggerResults>(triggerResults_)) {}

◆ ~HLTriggerJSONMonitoring()

HLTriggerJSONMonitoring::~HLTriggerJSONMonitoring ( )
overridedefault

Member Function Documentation

◆ analyze()

void HLTriggerJSONMonitoring::analyze ( edm::StreamID  sid,
edm::Event const &  event,
edm::EventSetup const &   
) const
overridevirtual

Implements edm::global::EDAnalyzerBase.

Definition at line 228 of file HLTriggerJSONMonitoring.cc.

228  {
229  auto& stream = *streamCache(sid);
230  auto const& rundata = *runCache(event.getRun().index());
231 
232  ++stream.processed;
233 
234  // check that the HLTConfigProvider for the current run has been successfully initialised
235  if (not rundata.hltConfig.inited())
236  return;
237 
238  // get hold of TriggerResults
240  if (not event.getByToken(triggerResultsToken_, handle) or not handle.isValid()) {
241  edm::LogError("HLTriggerJSONMonitoring")
242  << "TriggerResults with label [" + triggerResults_.encode() + "] not present or invalid";
243  return;
244  }
246  assert(results.size() == stream.hltWasRun.size());
247 
248  // check the results for each HLT path
249  for (unsigned int i = 0; i < results.size(); ++i) {
250  auto const& status = results.at(i);
251  if (status.wasrun()) {
252  ++stream.hltWasRun[i];
253  if (status.accept()) {
254  ++stream.hltL1s[i];
255  ++stream.hltPre[i];
256  ++stream.hltAccept[i];
257  } else {
258  int index = (int)status.index();
259  if (index > rundata.posL1s[i])
260  ++stream.hltL1s[i];
261  if (index > rundata.posPre[i])
262  ++stream.hltPre[i];
263  if (status.error())
264  ++stream.hltErrors[i];
265  else
266  ++stream.hltReject[i];
267  }
268  }
269  }
270 
271  // check the decision for each dataset
272  // FIXME this ignores the prescales, "smart" prescales, and event selection applied in the OutputModule itself
273  for (unsigned int i = 0; i < rundata.datasets.size(); ++i)
274  if (std::any_of(rundata.datasets[i].begin(), rundata.datasets[i].end(), [&](unsigned int path) {
275  return results.accept(path);
276  }))
277  ++stream.datasets[i];
278 }

References cms::cuda::assert(), edm::InputTag::encode(), patZpeak::handle, mps_fire::i, createfilelist::int, or, castor_dqm_sourceclient_file_cfg::path, bookConverter::results, mps_update::status, cms::cuda::stream, triggerResults_, and triggerResultsToken_.

◆ beginStream()

std::unique_ptr< HLTriggerJSONMonitoringData::stream > HLTriggerJSONMonitoring::beginStream ( edm::StreamID  ) const
override

Definition at line 149 of file HLTriggerJSONMonitoring.cc.

149  {
150  return std::make_unique<HLTriggerJSONMonitoringData::stream>();
151 }

◆ fillDescriptions()

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

Definition at line 142 of file HLTriggerJSONMonitoring.cc.

142  {
144  desc.add<edm::InputTag>("triggerResults", edm::InputTag("TriggerResults", "", "HLT"));
145  descriptions.add("HLTriggerJSONMonitoring", desc);
146 }

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), and HLT_2018_cff::InputTag.

◆ globalBeginLuminosityBlockSummary()

std::shared_ptr< HLTriggerJSONMonitoringData::lumisection > HLTriggerJSONMonitoring::globalBeginLuminosityBlockSummary ( edm::LuminosityBlock const &  lumi,
edm::EventSetup const &   
) const
override

Definition at line 281 of file HLTriggerJSONMonitoring.cc.

282  {
283  unsigned int triggers = 0;
284  unsigned int datasets = 0;
285  auto const& rundata = *runCache(lumi.getRun().index());
286  if (rundata.hltConfig.inited()) {
287  triggers = rundata.hltConfig.triggerNames().size();
288  datasets = rundata.hltConfig.datasetNames().size();
289  };
290 
291  // the API of jsoncollector::HistoJ does not really match our use case,
292  // but it is the only vector-like object available in JsonMonitorable.h
293  auto lumidata = std::make_shared<HLTriggerJSONMonitoringData::lumisection>(HLTriggerJSONMonitoringData::lumisection{
294  jsoncollector::HistoJ<unsigned int>(1), // processed
295  jsoncollector::HistoJ<unsigned int>(triggers), // hltWasRun
296  jsoncollector::HistoJ<unsigned int>(triggers), // hltL1s
297  jsoncollector::HistoJ<unsigned int>(triggers), // hltPre
298  jsoncollector::HistoJ<unsigned int>(triggers), // hltAccept
299  jsoncollector::HistoJ<unsigned int>(triggers), // hltReject
300  jsoncollector::HistoJ<unsigned int>(triggers), // hltErrors
302  });
303  // repeated calls to `update` necessary to set the internal element counter
304  lumidata->processed.update(0);
305  for (unsigned int i = 0; i < triggers; ++i)
306  lumidata->hltWasRun.update(0);
307  for (unsigned int i = 0; i < triggers; ++i)
308  lumidata->hltL1s.update(0);
309  for (unsigned int i = 0; i < triggers; ++i)
310  lumidata->hltPre.update(0);
311  for (unsigned int i = 0; i < triggers; ++i)
312  lumidata->hltAccept.update(0);
313  for (unsigned int i = 0; i < triggers; ++i)
314  lumidata->hltReject.update(0);
315  for (unsigned int i = 0; i < triggers; ++i)
316  lumidata->hltErrors.update(0);
317  for (unsigned int i = 0; i < datasets; ++i)
318  lumidata->datasets.update(0);
319 
320  return lumidata;
321 }

References contentValuesFiles::datasets, and mps_fire::i.

◆ globalBeginRun()

std::shared_ptr< HLTriggerJSONMonitoringData::run > HLTriggerJSONMonitoring::globalBeginRun ( edm::Run const &  run,
edm::EventSetup const &  setup 
) const
override

Definition at line 154 of file HLTriggerJSONMonitoring.cc.

155  {
156  auto rundata = std::make_shared<HLTriggerJSONMonitoringData::run>();
157 
158  // set the DAQ parameters
159  if (edm::Service<evf::EvFDaqDirector>().isAvailable()) {
160  rundata->streamDestination = edm::Service<evf::EvFDaqDirector>()->getStreamDestinations(streamName_);
161  rundata->streamMergeType =
163  rundata->baseRunDir = edm::Service<evf::EvFDaqDirector>()->baseRunDir();
164  } else {
165  rundata->streamDestination = "";
166  rundata->streamMergeType = "";
167  rundata->baseRunDir = ".";
168  }
169 
170  // initialize HLTConfigProvider
171  bool changed = true;
172  if (not rundata->hltConfig.init(run, setup, triggerResults_.process(), changed)) {
173  edm::LogError("HLTriggerJSONMonitoring") << "HLTConfigProvider initialization failed!" << std::endl;
174  } else if (changed) {
175  // update the trigger and dataset names
176  auto const& triggerNames = rundata->hltConfig.triggerNames();
177  auto const& datasetNames = rundata->hltConfig.datasetNames();
178  auto const& datasets = rundata->hltConfig.datasetContents();
179 
180  const unsigned int triggersSize = triggerNames.size();
181  const unsigned int datasetsSize = datasetNames.size();
182 
183  // extract the definition of the datasets
184  rundata->datasets.resize(datasetsSize);
185  for (unsigned int ds = 0; ds < datasetsSize; ++ds) {
186  auto& dataset = rundata->datasets[ds];
187  unsigned int paths = datasets[ds].size();
188  dataset.reserve(paths);
189  for (unsigned int p = 0; p < paths; p++) {
190  unsigned int index = rundata->hltConfig.triggerIndex(datasets[ds][p]);
191  if (index < triggersSize)
192  dataset.push_back(index);
193  }
194  }
195 
196  // find the positions of the L1 seed and prescale filters
197  rundata->posL1s.resize(triggersSize);
198  rundata->posPre.resize(triggersSize);
199  for (unsigned int i = 0; i < triggersSize; ++i) {
200  rundata->posL1s[i] = -1;
201  rundata->posPre[i] = -1;
202  std::vector<std::string> const& moduleLabels = rundata->hltConfig.moduleLabels(i);
203  for (unsigned int j = 0; j < moduleLabels.size(); ++j) {
204  std::string const& label = rundata->hltConfig.moduleType(moduleLabels[j]);
205  if (label == "HLTL1TSeed")
206  rundata->posL1s[i] = j;
207  else if (label == "HLTPrescaler")
208  rundata->posPre[i] = j;
209  }
210  }
211  }
212 
213  // write the per-run .jsd file
214  rundata->jsdFileName = (boost::format("run%06d_ls0000_streamHLTRates_pid%05d.jsd") % run.run() % getpid()).str();
215  writeJsdFile(*rundata);
216 
217  // write the per-run .ini file
218  // iniFileName = (boost::format("run%06d_ls0000_streamHLTRates_pid%05d.ini") % run.run() % getpid()).str();
219  writeIniFile(*rundata, run.run());
220 
221  return rundata;
222 }

References makeLayoutFileForGui::datasetNames, contentValuesFiles::datasets, dqm-mbProfile::format, mps_fire::i, dqmiolumiharvest::j, label, evf::MergeTypeJSNDATA, AlCaHLTBitMon_ParallelJobs::p, Skims_PA_cff::paths, edm::InputTag::process(), writedatasetfile::run, singleTopDQM_cfi::setup, str, streamName_, AlCaHLTBitMon_QueryRunRegistry::string, L1TEGammaOffline_cfi::triggerNames, triggerResults_, writeIniFile(), and writeJsdFile().

◆ globalEndLuminosityBlockSummary()

void HLTriggerJSONMonitoring::globalEndLuminosityBlockSummary ( edm::LuminosityBlock const &  lumi,
edm::EventSetup const &  ,
HLTriggerJSONMonitoringData::lumisection lumidata 
) const
override

Definition at line 376 of file HLTriggerJSONMonitoring.cc.

378  {
379  unsigned int ls = lumi.luminosityBlock();
380  unsigned int run = lumi.run();
381 
382  bool writeFiles = true;
383  if (edm::Service<evf::MicroStateService>().isAvailable()) {
386  if (fms)
387  writeFiles = fms->shouldWriteFiles(ls);
388  }
389  if (not writeFiles)
390  return;
391 
392  unsigned int processed = lumidata->processed.value().at(0);
393  auto const& rundata = *runCache(lumi.getRun().index());
395 
396  // [SIC]
397  char hostname[33];
398  gethostname(hostname, 32);
399  std::string sourceHost(hostname);
400 
401  // [SIC]
402  std::stringstream sOutDef;
403  sOutDef << rundata.baseRunDir << "/"
404  << "output_" << getpid() << ".jsd";
405 
406  std::string jsndataFileList = "";
407  unsigned int jsndataSize = 0;
408  unsigned int jsndataAdler32 = 1; // adler32 checksum for an empty file
409 
410  if (processed) {
411  // write the .jsndata files which contain the actual rates
412  Json::Value jsndata;
413  jsndata[jsoncollector::DataPoint::SOURCE] = sourceHost;
414  jsndata[jsoncollector::DataPoint::DEFINITION] = rundata.jsdFileName;
423 
424  auto jsndataFileName = boost::format("run%06d_ls%04d_streamHLTRates_pid%05d.jsndata") % run % ls % getpid();
425 
426  std::string result = writer.write(jsndata);
427  std::ofstream jsndataFile(rundata.baseRunDir + "/" + jsndataFileName.str());
428  jsndataFile << result;
429  jsndataFile.close();
430 
431  jsndataFileList = jsndataFileName.str();
432  jsndataSize = result.size();
433  jsndataAdler32 = cms::Adler32(result.c_str(), result.size());
434  }
435 
436  // create a metadata json file for the "HLT rates" pseudo-stream
437  unsigned int jsnProcessed = processed;
438  unsigned int jsnAccepted = processed;
439  unsigned int jsnErrorEvents = 0;
440  unsigned int jsnRetCodeMask = 0;
441  std::string jsnInputFiles = "";
442  unsigned int jsnHLTErrorEvents = 0;
443 
444  Json::Value jsn;
445  jsn[jsoncollector::DataPoint::SOURCE] = sourceHost;
446  jsn[jsoncollector::DataPoint::DEFINITION] = sOutDef.str();
447  jsn[jsoncollector::DataPoint::DATA].append(jsnProcessed);
448  jsn[jsoncollector::DataPoint::DATA].append(jsnAccepted);
449  jsn[jsoncollector::DataPoint::DATA].append(jsnErrorEvents);
450  jsn[jsoncollector::DataPoint::DATA].append(jsnRetCodeMask);
451  jsn[jsoncollector::DataPoint::DATA].append(jsndataFileList);
452  jsn[jsoncollector::DataPoint::DATA].append(jsndataSize);
453  jsn[jsoncollector::DataPoint::DATA].append(jsnInputFiles);
454  jsn[jsoncollector::DataPoint::DATA].append(jsndataAdler32);
455  jsn[jsoncollector::DataPoint::DATA].append(rundata.streamDestination);
456  jsn[jsoncollector::DataPoint::DATA].append(rundata.streamMergeType);
457  jsn[jsoncollector::DataPoint::DATA].append(jsnHLTErrorEvents);
458 
459  auto jsnFileName = boost::format("run%06d_ls%04d_streamHLTRates_pid%05d.jsn") % run % ls % getpid();
460  std::ofstream jsnFile(rundata.baseRunDir + "/" + jsnFileName.str());
461  jsnFile << writer.write(jsn);
462  jsnFile.close();
463 }

References cms::Adler32(), Json::Value::append(), jsoncollector::DataPoint::DATA, HLTriggerJSONMonitoringData::lumisection::datasets, jsoncollector::DataPoint::DEFINITION, dqm-mbProfile::format, HLTriggerJSONMonitoringData::lumisection::hltAccept, HLTriggerJSONMonitoringData::lumisection::hltErrors, HLTriggerJSONMonitoringData::lumisection::hltL1s, HLTriggerJSONMonitoringData::lumisection::hltPre, HLTriggerJSONMonitoringData::lumisection::hltReject, HLTriggerJSONMonitoringData::lumisection::hltWasRun, eostools::ls(), HLTriggerJSONMonitoringData::lumisection::processed, mps_fire::result, writedatasetfile::run, evf::FastMonitoringService::shouldWriteFiles(), jsoncollector::DataPoint::SOURCE, AlCaHLTBitMon_QueryRunRegistry::string, jsoncollector::HistoJ< T >::toJsonValue(), jsoncollector::HistoJ< T >::value(), and cscNeutronWriter_cfi::writer.

◆ globalEndRun()

void HLTriggerJSONMonitoring::globalEndRun ( edm::Run const &  ,
edm::EventSetup const &   
) const
override

Definition at line 225 of file HLTriggerJSONMonitoring.cc.

225 {}

◆ streamBeginLuminosityBlock()

void HLTriggerJSONMonitoring::streamBeginLuminosityBlock ( edm::StreamID  sid,
edm::LuminosityBlock const &  lumi,
edm::EventSetup const &   
) const
override

Definition at line 324 of file HLTriggerJSONMonitoring.cc.

326  {
327  auto& stream = *streamCache(sid);
328 
329  unsigned int triggers = 0;
330  unsigned int datasets = 0;
331  auto const& rundata = *runCache(lumi.getRun().index());
332  if (rundata.hltConfig.inited()) {
333  triggers = rundata.hltConfig.triggerNames().size();
334  datasets = rundata.hltConfig.datasetNames().size();
335  };
336 
337  // reset the stream counters
338  stream.processed = 0;
339  stream.hltWasRun.assign(triggers, 0);
340  stream.hltL1s.assign(triggers, 0);
341  stream.hltPre.assign(triggers, 0);
342  stream.hltAccept.assign(triggers, 0);
343  stream.hltReject.assign(triggers, 0);
344  stream.hltErrors.assign(triggers, 0);
345  stream.datasets.assign(datasets, 0);
346 }

References contentValuesFiles::datasets, and cms::cuda::stream.

◆ streamEndLuminosityBlockSummary()

void HLTriggerJSONMonitoring::streamEndLuminosityBlockSummary ( edm::StreamID  sid,
edm::LuminosityBlock const &  lumi,
edm::EventSetup const &  ,
HLTriggerJSONMonitoringData::lumisection lumidata 
) const
override

Definition at line 349 of file HLTriggerJSONMonitoring.cc.

352  {
353  auto const& stream = *streamCache(sid);
354  auto const& rundata = *runCache(lumi.getRun().index());
355  lumidata->processed.value()[0] += stream.processed;
356 
357  // check that the HLTConfigProvider for the current run has been successfully initialised
358  if (not rundata.hltConfig.inited())
359  return;
360 
361  unsigned int triggers = rundata.hltConfig.triggerNames().size();
362  for (unsigned int i = 0; i < triggers; ++i) {
363  lumidata->hltWasRun.value()[i] += stream.hltWasRun[i];
364  lumidata->hltL1s.value()[i] += stream.hltL1s[i];
365  lumidata->hltPre.value()[i] += stream.hltPre[i];
366  lumidata->hltAccept.value()[i] += stream.hltAccept[i];
367  lumidata->hltReject.value()[i] += stream.hltReject[i];
368  lumidata->hltErrors.value()[i] += stream.hltErrors[i];
369  }
370  unsigned int datasets = rundata.hltConfig.datasetNames().size();
371  for (unsigned int i = 0; i < datasets; ++i)
372  lumidata->datasets.value()[i] += stream.datasets[i];
373 }

References contentValuesFiles::datasets, HLTriggerJSONMonitoringData::lumisection::datasets, HLTriggerJSONMonitoringData::lumisection::hltAccept, HLTriggerJSONMonitoringData::lumisection::hltErrors, HLTriggerJSONMonitoringData::lumisection::hltL1s, HLTriggerJSONMonitoringData::lumisection::hltPre, HLTriggerJSONMonitoringData::lumisection::hltReject, HLTriggerJSONMonitoringData::lumisection::hltWasRun, mps_fire::i, HLTriggerJSONMonitoringData::lumisection::processed, cms::cuda::stream, and jsoncollector::HistoJ< T >::value().

◆ writeIniFile()

void HLTriggerJSONMonitoring::writeIniFile ( HLTriggerJSONMonitoringData::run const &  rundata,
unsigned int  run 
)
staticprivate

Definition at line 483 of file HLTriggerJSONMonitoring.cc.

483  {
485 
487  for (auto const& name : rundata.hltConfig.triggerNames())
488  triggerNames.append(name);
489  content["Path-Names"] = triggerNames;
490 
492  for (auto const& name : rundata.hltConfig.datasetNames())
493  datasetNames.append(name);
494  content["Dataset-Names"] = datasetNames;
495 
496  std::string iniFileName = (boost::format("run%06d_ls0000_streamHLTRates_pid%05d.ini") % run % getpid()).str();
497  std::ofstream file(rundata.baseRunDir + "/" + iniFileName);
499  file << writer.write(content);
500  file.close();
501 }

References Json::arrayValue, HLTriggerJSONMonitoringData::run::baseRunDir, Skims_PA_cff::content, makeLayoutFileForGui::datasetNames, HLTConfigProvider::datasetNames(), FrontierConditions_GlobalTag_cff::file, dqm-mbProfile::format, HLTriggerJSONMonitoringData::run::hltConfig, Skims_PA_cff::name, writedatasetfile::run, str, AlCaHLTBitMon_QueryRunRegistry::string, L1TEGammaOffline_cfi::triggerNames, HLTConfigProvider::triggerNames(), and cscNeutronWriter_cfi::writer.

Referenced by globalBeginRun().

◆ writeJsdFile()

void HLTriggerJSONMonitoring::writeJsdFile ( HLTriggerJSONMonitoringData::run const &  rundata)
staticprivate

Definition at line 465 of file HLTriggerJSONMonitoring.cc.

465  {
466  std::ofstream file(rundata.baseRunDir + "/" + rundata.jsdFileName);
467  file << R"""({
468  "data" : [
469  { "name" : "Processed", "type" : "integer", "operation" : "histo"},
470  { "name" : "Path-WasRun", "type" : "integer", "operation" : "histo"},
471  { "name" : "Path-AfterL1Seed", "type" : "integer", "operation" : "histo"},
472  { "name" : "Path-AfterPrescale", "type" : "integer", "operation" : "histo"},
473  { "name" : "Path-Accepted", "type" : "integer", "operation" : "histo"},
474  { "name" : "Path-Rejected", "type" : "integer", "operation" : "histo"},
475  { "name" : "Path-Errors", "type" : "integer", "operation" : "histo"},
476  { "name" : "Dataset-Accepted", "type" : "integer", "operation" : "histo"}
477  ]
478 }
479 )""";
480  file.close();
481 }

References HLTriggerJSONMonitoringData::run::baseRunDir, FrontierConditions_GlobalTag_cff::file, and HLTriggerJSONMonitoringData::run::jsdFileName.

Referenced by globalBeginRun().

Member Data Documentation

◆ streamName_

constexpr const char* HLTriggerJSONMonitoring::streamName_ = "streamHLTRates"
staticconstexprprivate

Definition at line 126 of file HLTriggerJSONMonitoring.cc.

Referenced by globalBeginRun().

◆ triggerResults_

const edm::InputTag HLTriggerJSONMonitoring::triggerResults_
private

Definition at line 132 of file HLTriggerJSONMonitoring.cc.

Referenced by analyze(), and globalBeginRun().

◆ triggerResultsToken_

const edm::EDGetTokenT<edm::TriggerResults> HLTriggerJSONMonitoring::triggerResultsToken_
private

Definition at line 133 of file HLTriggerJSONMonitoring.cc.

Referenced by analyze().

eostools.ls
def ls(path, rec=False)
Definition: eostools.py:349
mps_fire.i
i
Definition: mps_fire.py:355
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
HLTriggerJSONMonitoringData::lumisection::hltPre
jsoncollector::HistoJ< unsigned int > hltPre
Definition: HLTriggerJSONMonitoring.cc:63
evf::FastMonitoringService::shouldWriteFiles
bool shouldWriteFiles(unsigned int lumi, unsigned int *proc=nullptr)
Definition: FastMonitoringService.h:171
jsoncollector::HistoJ::value
std::vector< T > & value()
Definition: JsonMonitorable.h:224
mps_update.status
status
Definition: mps_update.py:69
patZpeak.handle
handle
Definition: patZpeak.py:23
Json::arrayValue
array value (ordered list)
Definition: value.h:30
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
cms::cuda::stream
cudaStream_t stream
Definition: HistoContainer.h:57
jsoncollector::HistoJ< unsigned int >
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
cms::cuda::assert
assert(be >=bs)
HLTriggerJSONMonitoringData::lumisection
Definition: HLTriggerJSONMonitoring.cc:59
bookConverter.results
results
Definition: bookConverter.py:144
edm::InputTag::process
std::string const & process() const
Definition: InputTag.h:40
HLTriggerJSONMonitoringData::lumisection::hltAccept
jsoncollector::HistoJ< unsigned int > hltAccept
Definition: HLTriggerJSONMonitoring.cc:64
cscNeutronWriter_cfi.writer
writer
Definition: cscNeutronWriter_cfi.py:6
edm::Handle< edm::TriggerResults >
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
HLTriggerJSONMonitoringData::lumisection::hltWasRun
jsoncollector::HistoJ< unsigned int > hltWasRun
Definition: HLTriggerJSONMonitoring.cc:61
config
Definition: config.py:1
evf::FastMonitoringService
Definition: FastMonitoringService.h:69
jsoncollector::HistoJ::toJsonValue
virtual Json::Value toJsonValue() const
Definition: JsonMonitorable.h:210
evf::MergeTypeJSNDATA
Definition: EvFDaqDirector.h:58
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
jsoncollector::DataPoint::DATA
static const std::string DATA
Definition: DataPoint.h:116
contentValuesFiles.datasets
datasets
Definition: contentValuesFiles.py:49
cms::Adler32
void Adler32(char const *data, size_t len, uint32_t &a, uint32_t &b)
Definition: Adler32Calculator.cc:10
L1TEGammaOffline_cfi.triggerNames
triggerNames
Definition: L1TEGammaOffline_cfi.py:40
dqm-mbProfile.format
format
Definition: dqm-mbProfile.py:16
HLTriggerJSONMonitoringData::lumisection::hltL1s
jsoncollector::HistoJ< unsigned int > hltL1s
Definition: HLTriggerJSONMonitoring.cc:62
str
#define str(s)
Definition: TestProcessor.cc:48
Json::StyledWriter
Writes a Value in JSON format in a human friendly way.
Definition: writer.h:63
jsoncollector::DataPoint::DEFINITION
static const std::string DEFINITION
Definition: DataPoint.h:115
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
Skims_PA_cff.content
content
Definition: Skims_PA_cff.py:19
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
Json::Value::append
Value & append(const Value &value)
Append value to array at the end.
edm::LogError
Definition: MessageLogger.h:183
HLTriggerJSONMonitoring::triggerResults_
const edm::InputTag triggerResults_
Definition: HLTriggerJSONMonitoring.cc:132
edm::Service
Definition: Service.h:30
createfilelist.int
int
Definition: createfilelist.py:10
FrontierConditions_GlobalTag_cff.file
file
Definition: FrontierConditions_GlobalTag_cff.py:13
edm::InputTag::encode
std::string encode() const
Definition: InputTag.cc:159
jsoncollector::DataPoint::SOURCE
static const std::string SOURCE
Definition: DataPoint.h:114
HLTriggerJSONMonitoringData::lumisection::datasets
jsoncollector::HistoJ< unsigned int > datasets
Definition: HLTriggerJSONMonitoring.cc:67
writedatasetfile.run
run
Definition: writedatasetfile.py:27
HLTriggerJSONMonitoring::writeIniFile
static void writeIniFile(HLTriggerJSONMonitoringData::run const &, unsigned int)
Definition: HLTriggerJSONMonitoring.cc:483
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
or
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
Skims_PA_cff.paths
paths
Definition: Skims_PA_cff.py:18
HLTriggerJSONMonitoringData::lumisection::hltReject
jsoncollector::HistoJ< unsigned int > hltReject
Definition: HLTriggerJSONMonitoring.cc:65
HLTriggerJSONMonitoringData::lumisection::processed
jsoncollector::HistoJ< unsigned int > processed
Definition: HLTriggerJSONMonitoring.cc:60
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
HLTriggerJSONMonitoring::streamName_
static constexpr const char * streamName_
Definition: HLTriggerJSONMonitoring.cc:126
HLTriggerJSONMonitoring::triggerResultsToken_
const edm::EDGetTokenT< edm::TriggerResults > triggerResultsToken_
Definition: HLTriggerJSONMonitoring.cc:133
dataset
Definition: dataset.py:1
mps_fire.result
result
Definition: mps_fire.py:303
castor_dqm_sourceclient_file_cfg.path
path
Definition: castor_dqm_sourceclient_file_cfg.py:37
makeLayoutFileForGui.datasetNames
datasetNames
Definition: makeLayoutFileForGui.py:30
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
HLTriggerJSONMonitoringData::lumisection::hltErrors
jsoncollector::HistoJ< unsigned int > hltErrors
Definition: HLTriggerJSONMonitoring.cc:66
event
Definition: event.py:1
lumi
Definition: LumiSectionData.h:20
HLTriggerJSONMonitoring::writeJsdFile
static void writeJsdFile(HLTriggerJSONMonitoringData::run const &)
Definition: HLTriggerJSONMonitoring.cc:465
edm::InputTag
Definition: InputTag.h:15
label
const char * label
Definition: PFTauDecayModeTools.cc:11
edm::TriggerResults
Definition: TriggerResults.h:35
Json::Value
Represents a JSON value.
Definition: value.h:99