|
void | analyze (edm::StreamID, edm::Event const &, edm::EventSetup const &) const override |
|
std::unique_ptr< L1TriggerJSONMonitoringData::stream > | beginStream (edm::StreamID) const override |
|
std::shared_ptr< L1TriggerJSONMonitoringData::lumisection > | globalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &) const override |
|
std::shared_ptr< L1TriggerJSONMonitoringData::run > | globalBeginRun (edm::Run const &, edm::EventSetup const &) const override |
|
void | globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, L1TriggerJSONMonitoringData::lumisection *) const override |
|
void | globalEndRun (edm::Run const &, edm::EventSetup const &) const override |
|
| L1TriggerJSONMonitoring (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 &, L1TriggerJSONMonitoringData::lumisection *) const override |
|
| ~L1TriggerJSONMonitoring () override=default |
|
| EDAnalyzer ()=default |
|
bool | wantsGlobalLuminosityBlocks () const final |
|
bool | wantsGlobalRuns () const final |
|
bool | wantsStreamLuminosityBlocks () const final |
|
bool | wantsStreamRuns () const final |
|
void | callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func) |
|
| EDAnalyzerBase () |
|
ModuleDescription const & | moduleDescription () const |
|
| ~EDAnalyzerBase () override |
|
std::vector< ConsumesInfo > | consumesInfo () 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 |
|
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 |
|
EDConsumerBase const & | operator= (EDConsumerBase const &)=delete |
|
EDConsumerBase & | operator= (EDConsumerBase &&)=default |
|
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) |
|
|
typedef EDAnalyzerBase | ModuleType |
|
typedef ProductLabels | Labels |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | consumes (edm::InputTag const &tag) |
|
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 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) |
|
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) |
|
Description: This class outputs JSON files with TCDS and L1T monitoring information.
Definition at line 71 of file L1TriggerJSONMonitoring.cc.
Implements edm::global::EDAnalyzerBase.
Definition at line 221 of file L1TriggerJSONMonitoring.cc.
References BXVector< T >::at(), edm::EventAuxiliary::CalibrationTrigger, edm::InputTag::encode(), hcalcalib_dqm_sourceclient-live_cfg::eventType, edm::Event::getByToken(), patZpeak::handle, mps_fire::i, BXVector< T >::isEmpty(), edm::HandleBase::isValid(), L1TriggerJSONMonitoringData::kPrescaleConflict, L1TriggerJSONMonitoringData::kPrescaleUndefined, level1Results_, level1ResultsToken_, GlobalAlgBlk::maxPhysicsTriggers, or, edm::EventAuxiliary::PhysicsTrigger, edm::EventAuxiliary::RandomTrigger, bookConverter::results, and tcdsTriggerTypes_.
222 auto& stream = *streamCache(sid);
225 unsigned int eventType =
event.experimentType();
227 ++stream.tcdsAccept[eventType];
243 auto const& decision =
results.getAlgoDecisionFinal();
247 for (
unsigned int i = 0;
i < decision.size(); ++
i) {
249 ++stream.l1tAccept[
i];
252 ++stream.l1tAcceptPhysics[
i];
255 ++stream.l1tAcceptCalibration[
i];
258 ++stream.l1tAcceptRandom[
i];
267 int prescaleIndex =
results.getPreScColumn();
269 stream.prescaleIndex = prescaleIndex;
272 }
else if (stream.prescaleIndex != prescaleIndex) {
273 edm::LogWarning(
"L1TriggerJSONMonitoring") <<
"Prescale index changed from " << stream.prescaleIndex <<
" to " 274 << prescaleIndex <<
" inside lumisection " <<
event.luminosityBlock();
const edm::InputTag level1Results_
bool isEmpty(int bx) const
static const int kPrescaleUndefined
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
static unsigned int maxPhysicsTriggers
static const std::array< const char *, 16 > tcdsTriggerTypes_
static const int kPrescaleConflict
const edm::EDGetTokenT< GlobalAlgBlkBxCollection > level1ResultsToken_
const T & at(int bx, unsigned i) const
Definition at line 350 of file L1TriggerJSONMonitoring.cc.
References cms::Adler32(), Json::Value::append(), edm::EventAuxiliary::CalibrationTrigger, jsoncollector::DataPoint::DATA, jsoncollector::DataPoint::DEFINITION, dqm-mbProfile::format, edm::LuminosityBlock::getRun(), edm::Run::index(), L1TriggerJSONMonitoringData::lumisection::l1tAccept, L1TriggerJSONMonitoringData::lumisection::l1tAcceptCalibration, L1TriggerJSONMonitoringData::lumisection::l1tAcceptPhysics, L1TriggerJSONMonitoringData::lumisection::l1tAcceptRandom, eostools::ls(), edm::LuminosityBlockBase::luminosityBlock(), edm::EventAuxiliary::PhysicsTrigger, L1TriggerJSONMonitoringData::lumisection::prescaleIndex, L1TriggerJSONMonitoringData::lumisection::processed, edm::EventAuxiliary::RandomTrigger, mps_fire::result, writedatasetfile::run, edm::LuminosityBlockBase::run(), evf::FastMonitoringService::shouldWriteFiles(), jsoncollector::DataPoint::SOURCE, AlCaHLTBitMon_QueryRunRegistry::string, L1TriggerJSONMonitoringData::lumisection::tcdsAccept, jsoncollector::HistoJ< T >::toJsonValue(), jsoncollector::HistoJ< T >::update(), jsoncollector::HistoJ< T >::value(), and cscNeutronWriter_cfi::writer.
353 unsigned int ls =
lumi.luminosityBlock();
356 bool writeFiles =
true;
367 auto const& rundata = *runCache(
lumi.getRun().index());
372 gethostname(hostname, 32);
376 std::stringstream sOutDef;
377 sOutDef << rundata.baseRunDir <<
"/" 378 <<
"output_" << getpid() <<
".jsd";
381 unsigned int jsndataSize = 0;
382 unsigned int jsndataAdler32 = 1;
406 auto jsndataFileName =
boost::format(
"run%06d_ls%04d_streamL1Rates_pid%05d.jsndata") % run % ls % getpid();
409 std::ofstream jsndataFile(rundata.baseRunDir +
"/" + jsndataFileName.str());
413 jsndataFileList = jsndataFileName.str();
414 jsndataSize = result.size();
415 jsndataAdler32 =
cms::Adler32(result.c_str(), result.size());
419 unsigned int jsnProcessed = processed;
420 unsigned int jsnAccepted = processed;
421 unsigned int jsnErrorEvents = 0;
422 unsigned int jsnRetCodeMask = 0;
424 unsigned int jsnHLTErrorEvents = 0;
441 auto jsnFileName =
boost::format(
"run%06d_ls%04d_streamL1Rates_pid%05d.jsn") % run % ls % getpid();
442 std::ofstream jsnFile(rundata.baseRunDir +
"/" + jsnFileName.str());
443 jsnFile << writer.write(jsn);
jsoncollector::HistoJ< unsigned int > l1tAcceptRandom
jsoncollector::HistoJ< unsigned int > l1tAccept
static const std::string SOURCE
bool shouldWriteFiles(unsigned int lumi, unsigned int *proc=0)
Value & append(const Value &value)
Append value to array at the end.
jsoncollector::HistoJ< unsigned int > l1tAcceptCalibration
jsoncollector::HistoJ< unsigned int > processed
virtual Json::Value toJsonValue() const
std::vector< T > & value()
static const std::string DATA
jsoncollector::HistoJ< unsigned int > tcdsAccept
jsoncollector::HistoJ< unsigned int > l1tAcceptPhysics
void Adler32(char const *data, size_t len, uint32_t &a, uint32_t &b)
Writes a Value in JSON format in a human friendly way.
static const std::string DEFINITION