|
ATLAS Offline Software
|
Trigger configuration service used when reading an xAOD file.
More...
#include <xAODConfigSvc.h>
|
StatusCode | readMetadata () |
| Function reading in a new metadata object from the input. More...
|
|
StatusCode | prepareEvent () |
| Function setting up the service for a new event. More...
|
|
void | copyMetadataToPersonalStore (const xAOD::TriggerMenuJsonContainer *input, xAOD::TriggerMenuJsonContainer *existing) |
| Helper function for copying into the service's private data store. More...
|
|
StatusCode | prepareEventRun3Athena (const EventContext &context) |
| Do per-event updating of R3 JSON-based metadata, reading the data direct from the Conditions and Detector stores (UseInFileMetadata=False case). More...
|
|
StatusCode | prepareEventxAODTriggerMenuJson (const xAOD::TrigConfKeys *keys, const xAOD::BunchConfKey *bgKey, const EventContext &context) |
| Do per-event decoding for R3 in-file serialised xAOD::TriggerMenuJson metadata. More...
|
|
StatusCode | prepareEventxAODTriggerMenu (const xAOD::TrigConfKeys *keys, const EventContext &context) |
| Do per-event decoding for R2 in-file serialised xAOD::TriggerMenu metadata. More...
|
|
StatusCode | loadPtree (const std::string &humanName, const xAOD::TriggerMenuJsonContainer *metaContainer, const uint32_t keyToCheck, TriggerMenuJsonPtrWrapper &cacheOfLoadedMenuPtr, DataStructure &dataStructure, const bool optional=false) |
| Helper function to find a JSON in a given TriggerMenuJsonContainer using a given key, extract its ptree data. More...
|
|
Trigger configuration service used when reading an xAOD file.
This implementation of the ITrigConfigSvc interface can be
used when reading an xAOD file in Athena to get the correct
configuration for the current event.
- Author
- Attila Krasznahorkay Attil.nosp@m.a.Kr.nosp@m.aszna.nosp@m.hork.nosp@m.ay@ce.nosp@m.rn.c.nosp@m.h
Definition at line 75 of file xAODConfigSvc.h.
◆ xAODConfigSvc()
TrigConf::xAODConfigSvc::xAODConfigSvc |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
svcLoc |
|
) |
| |
◆ bunchGroupSet()
Get the LVL1 bunch group set.
Definition at line 127 of file xAODConfigSvc.cxx.
132 <<
"Trigger menu not loaded";
133 throw GaudiException(
"Service not initialised correctly",
134 "TrigConf::xAODConfigSvc::bunchGroupSet",
135 StatusCode::FAILURE );
◆ bunchGroupSetKey()
uint32_t TrigConf::xAODConfigSvc::bunchGroupSetKey |
( |
| ) |
const |
|
overridevirtual |
Get the LVL1 bunch group set key.
Definition at line 247 of file xAODConfigSvc.cxx.
249 const bool firstEvent = !
m_currentBg.get()->isInitialized();
253 if (!l1BGS.isValid())
260 return l1BGS->bgsk();
265 <<
"There's no way to access the bunch group set key from a legacy AOD!" <<
endmsg;
◆ chains()
Get the HLT chains.
Definition at line 143 of file xAODConfigSvc.cxx.
148 <<
"Trigger menu not loaded";
149 throw GaudiException(
"Service not initialised correctly",
150 "TrigConf::xAODConfigSvc::chains",
151 StatusCode::FAILURE );
◆ configurationSource()
std::string TrigConf::xAODConfigSvc::configurationSource |
( |
| ) |
const |
|
inlineoverride |
◆ copyMetadataToPersonalStore()
Helper function for copying into the service's private data store.
Definition at line 614 of file xAODConfigSvc.cxx.
616 bool alreadyHave =
false;
618 if (inputTriggerMenuJson->key() == existingTriggerMenuJson->key()) {
628 existing->push_back( newTriggerMenuJson );
629 *newTriggerMenuJson = *inputTriggerMenuJson;
◆ ctpConfig()
Get the LVL1 trigger menu.
Definition at line 112 of file xAODConfigSvc.cxx.
117 <<
"Trigger menu not loaded";
118 throw GaudiException(
"Service not initialised correctly",
119 "TrigConf::xAODConfigSvc::ctpConfig",
120 StatusCode::FAILURE );
◆ finalize()
StatusCode TrigConf::xAODConfigSvc::finalize |
( |
| ) |
|
|
overridevirtual |
Function finalising the service.
Definition at line 106 of file xAODConfigSvc.cxx.
109 return StatusCode::SUCCESS;
◆ handle()
void TrigConf::xAODConfigSvc::handle |
( |
const Incident & |
inc | ) |
|
|
overridevirtual |
Function handling the incoming incidents.
Definition at line 405 of file xAODConfigSvc.cxx.
413 if( inc.type() == IncidentType::BeginInputFile ) {
416 <<
"Couldn't read in the input file's metadata";
417 throw GaudiException(
"Couldn't read in the input file's "
419 "TrigConf::xAODConfigSvc::handle",
420 StatusCode::FAILURE );
426 else if( inc.type() == IncidentType::BeginEvent ) {
429 <<
"Couldn't prepare the trigger configuration for the "
431 throw GaudiException(
"Couldn't prepare the trigger configuration "
432 "for the current event",
433 "TrigConf::xAODConfigSvc::handle",
434 StatusCode::FAILURE );
440 REPORT_MESSAGE( MSG::WARNING ) <<
"Unknown incident type received: "
◆ hltMenu()
const HLTMenu & TrigConf::xAODConfigSvc::hltMenu |
( |
const EventContext & |
ctx = Gaudi::Hive::currentContext() | ) |
const |
|
overridevirtual |
Returns the JSON configured HLTMenu ptree.
Definition at line 310 of file xAODConfigSvc.cxx.
313 if( hltMenuHandle.isValid() ) {
314 return *hltMenuHandle;
319 throw GaudiException(
"Service not initialised correctly",
320 "TrigConf::xAODConfigSvc::hltMenu",
321 StatusCode::FAILURE );
◆ hltMonitoring()
const HLTMonitoring & TrigConf::xAODConfigSvc::hltMonitoring |
( |
const EventContext & |
ctx = Gaudi::Hive::currentContext() | ) |
const |
|
overridevirtual |
Returns the JSON configured HLTMonitoring ptree.
Definition at line 327 of file xAODConfigSvc.cxx.
330 throw GaudiException(
"Service not initialised correctly",
331 "TrigConf::xAODConfigSvc::hltMenu",
332 StatusCode::FAILURE );
◆ hltPrescaleKey()
uint32_t TrigConf::xAODConfigSvc::hltPrescaleKey |
( |
| ) |
const |
|
overridevirtual |
Get the HLT prescale key.
Definition at line 270 of file xAODConfigSvc.cxx.
279 if( !hltpsRCH.isValid() ) {
284 return hltpsRCH->psk();
295 if( !
m_menu.get()->m_ptr ) {
297 <<
"Trigger menu not yet known. Configuration key not returned.";
298 throw GaudiException(
"Service not initialised correctly",
299 "TrigConf::xAODConfigSvc::hltPrescaleKey",
300 StatusCode::FAILURE );
305 return m_menu.get()->m_ptr->hltpsk();
◆ hltPrescalesSet()
const HLTPrescalesSet & TrigConf::xAODConfigSvc::hltPrescalesSet |
( |
const EventContext & |
ctx = Gaudi::Hive::currentContext() | ) |
const |
|
overridevirtual |
Returns the JSON configured HLT prescales ptree.
Definition at line 355 of file xAODConfigSvc.cxx.
358 if( hltpsRCH.isValid() ) {
364 throw GaudiException(
"Service not initialised correctly",
365 "TrigConf::xAODConfigSvc::hltPrescalesSet",
366 StatusCode::FAILURE );
◆ initialize()
StatusCode TrigConf::xAODConfigSvc::initialize |
( |
| ) |
|
|
overridevirtual |
Function initialising the service.
Definition at line 34 of file xAODConfigSvc.cxx.
51 CHECK( incSvc.retrieve() );
52 incSvc->addListener(
this, IncidentType::BeginEvent, 0,
61 incSvc->addListener(
this, IncidentType::BeginInputFile, 0,
65 m_tmcAux = std::make_unique<xAOD::TriggerMenuAuxContainer>();
66 m_tmc = std::make_unique<xAOD::TriggerMenuContainer>();
70 m_hltJsonAux = std::make_unique<xAOD::TriggerMenuJsonAuxContainer>();
71 m_hltJson = std::make_unique<xAOD::TriggerMenuJsonContainer>();
78 m_l1JsonAux = std::make_unique<xAOD::TriggerMenuJsonAuxContainer>();
79 m_l1Json = std::make_unique<xAOD::TriggerMenuJsonContainer>();
82 m_hltpsJsonAux = std::make_unique<xAOD::TriggerMenuJsonAuxContainer>();
83 m_hltpsJson = std::make_unique<xAOD::TriggerMenuJsonContainer>();
86 m_l1psJsonAux = std::make_unique<xAOD::TriggerMenuJsonAuxContainer>();
87 m_l1psJson = std::make_unique<xAOD::TriggerMenuJsonContainer>();
90 m_bgJsonAux = std::make_unique<xAOD::TriggerMenuJsonAuxContainer>();
91 m_bgJson = std::make_unique<xAOD::TriggerMenuJsonContainer>();
103 return StatusCode::SUCCESS;
◆ l1BunchGroupSet()
const L1BunchGroupSet & TrigConf::xAODConfigSvc::l1BunchGroupSet |
( |
const EventContext & |
ctx = Gaudi::Hive::currentContext() | ) |
const |
|
overridevirtual |
Returns the JSON configured bunchgroup ptree.
Definition at line 389 of file xAODConfigSvc.cxx.
392 if( l1BGS.isValid() )
397 throw GaudiException(
"Service not initialised correctly",
398 "TrigConf::xAODConfigSvc::l1BunchGroupSet",
399 StatusCode::FAILURE );
◆ l1Menu()
const L1Menu & TrigConf::xAODConfigSvc::l1Menu |
( |
const EventContext & |
ctx = Gaudi::Hive::currentContext() | ) |
const |
|
overridevirtual |
Returns the JSON configured L1 ptree.
Definition at line 338 of file xAODConfigSvc.cxx.
341 if( l1MenuHandle.isValid() ) {
342 return *l1MenuHandle;
347 throw GaudiException(
"Service not initialised correctly",
348 "TrigConf::xAODConfigSvc::l1Menu",
349 StatusCode::FAILURE );
◆ l1PrescalesSet()
const L1PrescalesSet & TrigConf::xAODConfigSvc::l1PrescalesSet |
( |
const EventContext & |
ctx = Gaudi::Hive::currentContext() | ) |
const |
|
overridevirtual |
Returns the JSON configured L1 prescales ptree.
Definition at line 372 of file xAODConfigSvc.cxx.
375 if( l1psRCH.isValid() ) {
381 throw GaudiException(
"Service not initialised correctly",
382 "TrigConf::xAODConfigSvc::l1PrescalesSet",
383 StatusCode::FAILURE );
◆ loadPtree()
Helper function to find a JSON in a given TriggerMenuJsonContainer using a given key, extract its ptree data.
- Parameters
-
humanName | Name to print if things go wrong |
metaContainer | Metadata container of TriggerMenuJson objects from which to load a ptree |
keyToCheck | The key of the ptree to load |
cacheOfLoadedMenuPtr | Slot's cache of the currently loaded TriggerMenuJson |
DataStructure | dataStructure object to fill with the TriggerMenuJson's payload |
optional | Set to true if it is expected in some valid scenarios for the payload to be missing |
Definition at line 955 of file xAODConfigSvc.cxx.
964 cacheOfLoadedMenuPtr.m_ptr =
nullptr;
965 for( ; menu_itr != menu_end; ++menu_itr ) {
967 if( keyToCheck != (*menu_itr)->key() )
continue;
969 ptrToLocatedMenu = *menu_itr;
970 cacheOfLoadedMenuPtr.m_ptr = ptrToLocatedMenu;
971 std::stringstream rawData;
972 rawData << ptrToLocatedMenu->
payload();
973 dataStructure.clear();
976 boost::property_tree::read_json(rawData,
pt);
977 dataStructure.setData(std::move(
pt));
978 }
catch (
const boost::property_tree::json_parser_error&
e) {
979 REPORT_MESSAGE(
MSG::FATAL ) <<
"Unable to decode a JSON trigger menu metadata payload for " << humanName <<
" with key " << keyToCheck <<
endmsg;
981 return StatusCode::FAILURE;
986 if (not optional and ptrToLocatedMenu ==
nullptr) {
988 <<
"Couldn't find configuration for current event"
989 <<
", Requested key=" << keyToCheck
990 <<
", Requested menu=" << humanName
992 return StatusCode::FAILURE;
994 return StatusCode::SUCCESS;
◆ lvl1PrescaleKey()
uint32_t TrigConf::xAODConfigSvc::lvl1PrescaleKey |
( |
| ) |
const |
|
overridevirtual |
Get the LVL1 prescale key.
Definition at line 208 of file xAODConfigSvc.cxx.
211 const bool firstEvent = !
m_currentL1ps.get()->isInitialized();
217 if( !l1psRCH.isValid() ) {
222 return l1psRCH->psk();
233 if( !
m_menu.get()->m_ptr ) {
235 <<
"Trigger menu not yet known. Configuration key not returned.";
236 throw GaudiException(
"Service not initialised correctly",
237 "TrigConf::xAODConfigSvc::lvl1PrescaleKey",
238 StatusCode::FAILURE );
243 return m_menu.get()->m_ptr->l1psk();
◆ masterKey()
uint32_t TrigConf::xAODConfigSvc::masterKey |
( |
| ) |
const |
|
overridevirtual |
Get the Super Master Key.
Definition at line 173 of file xAODConfigSvc.cxx.
177 if( !hltMenuHandle.isValid() ) {
182 return hltMenuHandle->smk();
193 if( !
m_menu.get()->m_ptr ) {
195 <<
"Trigger menu not yet known. Configuration key not returned.";
196 throw GaudiException(
"Service not initialised correctly",
197 "TrigConf::xAODConfigSvc::masterKey",
198 StatusCode::FAILURE );
203 return m_menu.get()->m_ptr->smk();
◆ muctpiConfig()
virtual const Muctpi* TrigConf::xAODConfigSvc::muctpiConfig |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ prepareEvent()
StatusCode TrigConf::xAODConfigSvc::prepareEvent |
( |
| ) |
|
|
private |
Function setting up the service for a new event.
Definition at line 634 of file xAODConfigSvc.cxx.
637 const EventContext& context = Gaudi::Hive::currentContext();
647 if( keysRH.isValid() ) {
648 keys = keysRH.cptr();
655 <<
"Coudln't retrieve xAOD::TrigConfKeys";
656 return StatusCode::FAILURE;
659 return StatusCode::SUCCESS;
665 if (bgKeyRH.isValid()) {
666 bgKey = bgKeyRH.cptr();
674 ATH_MSG_ERROR(
"Both m_menuJSONContainerAvailable and m_triggerMenuContainerAvailable are false" );
675 return StatusCode::FAILURE;
◆ prepareEventRun3Athena()
StatusCode TrigConf::xAODConfigSvc::prepareEventRun3Athena |
( |
const EventContext & |
context | ) |
|
|
private |
Do per-event updating of R3 JSON-based metadata, reading the data direct from the Conditions and Detector stores (UseInFileMetadata=False case).
Definition at line 727 of file xAODConfigSvc.cxx.
732 L1BunchGroupSet& currentBg = *(
m_currentBg.get(context));
738 bool validConfig =
true;
742 const bool firstEvent = (!currentHlt.isInitialized() and !currentHltps.isInitialized());
745 if( !hltMenuHandle.isValid() ) {
749 if (!currentHlt.isInitialized() or currentHlt.smk() != hltMenuHandle->smk()) {
752 currentHlt.setData( hltMenuHandle->data() );
753 currentHlt.setSMK( hltMenuHandle->smk() );
758 if( !l1MenuHandle.isValid() ) {
762 if (!currentL1.isInitialized() or currentL1.smk() != l1MenuHandle->smk()) {
765 currentL1.setData( l1MenuHandle->data() );
766 currentL1.setSMK( l1MenuHandle->smk() );
773 <<
"L1 and HLT prescales will not be available via the TrigConf::xAODConfigSvc in the first "
774 <<
"event when running with UseInFileMetadata=False" <<
endmsg;
779 if( !l1psRCH.isValid() ) {
783 if (!currentL1ps.isInitialized() or currentL1ps.psk() != l1psRCH->psk()) {
786 currentL1ps.setData( l1psRCH->data() );
787 currentL1ps.setPSK( l1psRCH->psk() );
792 if( !hltpsRCH.isValid() ) {
796 if (!currentHltps.isInitialized() or currentHltps.psk() != hltpsRCH->psk()) {
798 currentHltps.clear();
799 currentHltps.setData( hltpsRCH->data() );
800 currentHltps.setPSK( hltpsRCH->psk() );
811 <<
"Configuration matches the loaded one, nothing to do." <<
endmsg;
812 return StatusCode::SUCCESS;
816 HLTChainList& chainList = *(
m_chainList.get(context));
818 BunchGroupSet& bgSet = *(
m_bgSet.get(context));
832 REPORT_MESSAGE( MSG::INFO ) <<
"Loaded Trigger configuration from Conditions Store and Detector Store:"
833 <<
" SMK = " << (currentHlt.isInitialized() ?
std::to_string(currentHlt.smk()) : std::string(
"UNKNOWN"))
834 <<
", L1PSK = " << (currentL1ps.isInitialized() ? std::
to_string(currentL1ps.psk()) : std::string(
"UNKNOWN"))
835 <<
", HLTPSK = " << (currentHltps.isInitialized() ? std::
to_string(currentHltps.psk()) : std::string(
"UNKNOWN"))
836 <<
", BGSK = " << (currentBg.isInitialized() ? std::
to_string(currentBg.bgsk()) : std::string(
"UNKNOWN")) <<
endmsg;
839 <<
" chainList.size() = " << chainList.size()
840 <<
" sequenceList.size() = " << sequenceList.size()
841 <<
" bgSet.bunchGroups().size() = " << bgSet.bunchGroups().size() <<
endmsg;
843 return StatusCode::SUCCESS;
◆ prepareEventxAODTriggerMenu()
Do per-event decoding for R2 in-file serialised xAOD::TriggerMenu metadata.
Definition at line 679 of file xAODConfigSvc.cxx.
685 <<
"Configuration matches the loaded one, nothing to do." <<
endmsg;
686 return StatusCode::SUCCESS;
696 for( ; menu_itr != menu_end; ++menu_itr ) {
700 loadedMenuInSlot = *menu_itr;
701 m_menu.get(context)->m_ptr = loadedMenuInSlot;
704 HLTChainList& chainList = *(
m_chainList.get(context));
706 BunchGroupSet& bgSet = *(
m_bgSet.get(context));
708 chainList, sequenceList,
711 <<
" chainList.size() = " << chainList.size()
712 <<
" sequenceList.size() = " << sequenceList.size()
713 <<
" bgSet.bunchGroups().size() = " << bgSet.bunchGroups().size() <<
endmsg;
715 return StatusCode::SUCCESS;
720 <<
"Couldn't find configuration for current event (SMK:"
721 <<
keys->smk() <<
", L1PSK:" <<
keys->l1psk()
722 <<
", HLTPSK:" <<
keys->hltpsk() <<
")";
723 return StatusCode::FAILURE;
◆ prepareEventxAODTriggerMenuJson()
Do per-event decoding for R3 in-file serialised xAOD::TriggerMenuJson metadata.
Definition at line 848 of file xAODConfigSvc.cxx.
855 bool validConfig =
true;
856 if (loadedHltJson ==
nullptr || loadedHltJson->
key() !=
keys->smk()) {
860 if (loadedL1Json ==
nullptr || loadedL1Json->
key() !=
keys->smk()) {
863 if (loadedHltpsJson ==
nullptr || loadedHltpsJson->
key() !=
keys->hltpsk()) {
866 if (loadedL1psJson ==
nullptr || loadedL1psJson->
key() !=
keys->l1psk()) {
870 if (loadedBgJson ==
nullptr || loadedBgJson->
key() !=
static_cast<unsigned int>(bgKey->
id())) {
877 <<
"Configuration matches the loaded one, nothing to do." <<
endmsg;
878 return StatusCode::SUCCESS;
886 TriggerMenuJsonPtrWrapper& currentHltJson = *(
m_currentHltJson.get(context));
888 TriggerMenuJsonPtrWrapper& currentL1Json = *(
m_currentL1Json.get(context));
891 TriggerMenuJsonPtrWrapper& currentBgJson = *(
m_currentBgJson.get(context));
912 currentHlt.
setSMK( currentHltJson.m_ptr->key() );
913 if (currentHltmonitoringJson.m_ptr) {
914 currentHltmonitoring.
setSMK( currentHltmonitoringJson.m_ptr->key() );
916 currentL1.
setSMK( currentL1Json.m_ptr->key() );
917 currentHltps.
setPSK( currentHltpsJson.m_ptr->key() );
918 currentL1ps.
setPSK( currentL1psJson.m_ptr->key() );
920 currentBg.
setBGSK( currentBgJson.m_ptr->key() );
924 HLTChainList& chainList = *(
m_chainList.get(context));
926 BunchGroupSet& bgSet = *(
m_bgSet.get(context));
940 REPORT_MESSAGE( MSG::INFO ) <<
"Loaded xAOD::TriggerMenuJson configuration:"
941 <<
" SMK = " <<
keys->smk()
942 <<
", L1PSK = " <<
keys->l1psk()
943 <<
", HLTPSK = " <<
keys->hltpsk()
947 <<
" chainList.size() = " << chainList.size()
948 <<
" sequenceList.size() = " << sequenceList.size()
949 <<
" bgSet.bunchGroups().size() = " << bgSet.bunchGroups().size() <<
endmsg;
951 return StatusCode::SUCCESS;
◆ readMetadata()
StatusCode TrigConf::xAODConfigSvc::readMetadata |
( |
| ) |
|
|
private |
Function reading in a new metadata object from the input.
Definition at line 449 of file xAODConfigSvc.cxx.
513 return StatusCode::FAILURE;
515 REPORT_MESSAGE( MSG::WARNING ) <<
"Couldn't retrieve xAOD::TriggerMenuContainer or xAOD::TriggerMenuJsonContainer(s)" <<
endmsg;
516 return StatusCode::SUCCESS;
530 <<
"In this input file we found xAOD::TriggerMenuJsonContainer(s), but no xAOD::TriggerMenuContainer. "
531 <<
"This is inconsistent with previous input files." <<
endmsg;
532 return StatusCode::FAILURE;
535 <<
"In this input file we found xAOD::TriggerMenuJsonContainer(s), but no xAOD::TriggerMenuContainer. "
536 <<
"This is inconsistent with previous input files." <<
endmsg;
537 return StatusCode::SUCCESS;
546 <<
"In this input file we found xAOD::TriggerMenuContainer, but no xAOD::TriggerMenuJsonContainer. "
547 <<
"This is inconsistent with previous input files." <<
endmsg;
548 return StatusCode::FAILURE;
551 <<
"In this input file we found xAOD::TriggerMenuContainer, but no xAOD::TriggerMenuJsonContainer. "
552 <<
"This is inconsistent with previous input files." <<
endmsg;
553 return StatusCode::SUCCESS;
564 if (input_hltmonitoring) {
574 return StatusCode::SUCCESS;
579 if( ! input_tmc->
size() ) {
580 REPORT_MESSAGE( MSG::WARNING ) <<
"No trigger configurations are available on the input" <<
endmsg;
581 return StatusCode::SUCCESS;
586 bool alreadyHave =
false;
598 m_tmc->push_back( newMenu );
599 *newMenu = *inputMenu;
601 <<
", L1PSK = " << newMenu->
l1psk()
605 return StatusCode::SUCCESS;
610 ATH_MSG_ERROR(
"Both m_menuJSONContainerAvailable and m_triggerMenuContainerAvailable are false" );
611 return StatusCode::FAILURE;
◆ sequences()
Get the HLT sequences.
Definition at line 158 of file xAODConfigSvc.cxx.
163 <<
"Trigger menu not loaded";
164 throw GaudiException(
"Service not initialised correctly",
165 "TrigConf::xAODConfigSvc::chains",
166 StatusCode::FAILURE );
◆ thresholdConfig()
◆ m_bgJson
◆ m_bgJsonAux
◆ m_bgSet
◆ m_chainList
◆ m_ctpConfig
◆ m_currentBg
◆ m_currentBgJson
◆ m_currentHlt
◆ m_currentHltJson
◆ m_currentHltmonitoring
◆ m_currentHltmonitoringJson
◆ m_currentHltps
◆ m_currentHltpsJson
◆ m_currentL1
◆ m_currentL1Json
◆ m_currentL1ps
◆ m_currentL1psJson
◆ m_eventBGKey
Initial value:{this, "BGKeysObjectName", "BunchConfKey",
"Key for the event-level bunchgroup configuration identifier object. Only written from late 2021, optional input."}
Definition at line 200 of file xAODConfigSvc.h.
◆ m_eventKey
Initial value:{this, "EventObjectName", "TrigConfKeys",
"Key for the event-level configuration identifier object"}
Definition at line 197 of file xAODConfigSvc.h.
◆ m_hltJson
◆ m_hltJsonAux
◆ m_hltMenuKey
Initial value:{this, "HLTTriggerMenu", "DetectorStore+HLTTriggerMenu",
"HLT Menu Key, for when UseInFileMetadata=False. From the DetectorStore."}
Definition at line 233 of file xAODConfigSvc.h.
◆ m_hltmonitoringJson
◆ m_hltmonitoringJsonAux
◆ m_HLTPrescaleSetKey
Initial value:{this, "HLTPrescales", "HLTPrescales",
"HLT prescales set condition handle, for when UseInFileMetadata=False"}
Definition at line 239 of file xAODConfigSvc.h.
◆ m_hltpsJson
◆ m_hltpsJsonAux
◆ m_isInFailure
bool TrigConf::xAODConfigSvc::m_isInFailure {false} |
|
private |
◆ m_L1BunchGroupSetKey
◆ m_l1Json
◆ m_l1JsonAux
◆ m_l1MenuKey
Initial value:{this, "L1TriggerMenu", "DetectorStore+L1TriggerMenu",
"L1 Menu Key, for when UseInFileMetadata=False. From the DetectorStore"}
Definition at line 236 of file xAODConfigSvc.h.
◆ m_L1PrescaleSetKey
Initial value:{this, "L1Prescales", "L1Prescales",
"L1 prescales set condition handle, for when UseInFileMetadata=False"}
Definition at line 242 of file xAODConfigSvc.h.
◆ m_l1psJson
◆ m_l1psJsonAux
◆ m_menu
◆ m_menuJSONContainerAvailable
bool TrigConf::xAODConfigSvc::m_menuJSONContainerAvailable {false} |
|
private |
◆ m_metaName
Gaudi::Property<std::string> TrigConf::xAODConfigSvc::m_metaName |
|
private |
Initial value:{this, "MetaObjectName", "TriggerMenu",
"Key for the trigger configuration metadata object"}
Definition at line 205 of file xAODConfigSvc.h.
◆ m_metaNameJSON_bg
Gaudi::Property< std::string > TrigConf::xAODConfigSvc::m_metaNameJSON_bg |
|
private |
Initial value:{this, "JSONMetaObjectNameBunchgroup", "TriggerMenuJson_BG",
"StoreGate key for the xAOD::TriggerMenuJson BunchGroup configuration object"}
Definition at line 226 of file xAODConfigSvc.h.
◆ m_metaNameJSON_hlt
Gaudi::Property< std::string > TrigConf::xAODConfigSvc::m_metaNameJSON_hlt |
|
private |
Initial value:{this, "JSONMetaObjectNameHLT", "TriggerMenuJson_HLT",
"StoreGate key for the xAOD::TriggerMenuJson HLT configuration object"}
Definition at line 211 of file xAODConfigSvc.h.
◆ m_metaNameJSON_hltmonitoring
Gaudi::Property< std::string > TrigConf::xAODConfigSvc::m_metaNameJSON_hltmonitoring |
|
private |
Initial value:{this, "JSONMetaObjectNameHLTMonitoring", "TriggerMenuJson_HLTMonitoring",
"StoreGate key for the xAOD::TriggerMenuJson HLT monitoring configuration object"}
Definition at line 214 of file xAODConfigSvc.h.
◆ m_metaNameJSON_hltps
Gaudi::Property< std::string > TrigConf::xAODConfigSvc::m_metaNameJSON_hltps |
|
private |
Initial value:{this, "JSONMetaObjectNameHLTPS", "TriggerMenuJson_HLTPS",
"StoreGate key for the xAOD::TriggerMenuJson HLT prescales configuration object"}
Definition at line 220 of file xAODConfigSvc.h.
◆ m_metaNameJSON_l1
Gaudi::Property< std::string > TrigConf::xAODConfigSvc::m_metaNameJSON_l1 |
|
private |
Initial value:{this, "JSONMetaObjectNameL1", "TriggerMenuJson_L1",
"StoreGate key for the xAOD::TriggerMenuJson L1 configuration object"}
Definition at line 217 of file xAODConfigSvc.h.
◆ m_metaNameJSON_l1ps
Gaudi::Property< std::string > TrigConf::xAODConfigSvc::m_metaNameJSON_l1ps |
|
private |
Initial value:{this, "JSONMetaObjectNameL1PS", "TriggerMenuJson_L1PS",
"StoreGate key for the xAOD::TriggerMenuJson L1 prescales configuration object"}
Definition at line 223 of file xAODConfigSvc.h.
◆ m_metaStore
◆ m_sequenceList
◆ m_sharedMutex
std::shared_mutex TrigConf::xAODConfigSvc::m_sharedMutex |
|
private |
The mutex used to to restrict access to m_tmc when it is being written to.
Definition at line 300 of file xAODConfigSvc.h.
◆ m_stopOnFailure
Gaudi::Property<bool> TrigConf::xAODConfigSvc::m_stopOnFailure {this, "StopOnFailure", true, "Flag for stopping the job in case of a failure"} |
|
private |
◆ m_tmc
◆ m_tmcAux
◆ m_triggerMenuContainerAvailable
bool TrigConf::xAODConfigSvc::m_triggerMenuContainerAvailable {false} |
|
private |
◆ m_useInFileMetadata
Gaudi::Property<bool> TrigConf::xAODConfigSvc::m_useInFileMetadata |
|
private |
Initial value:{this, "UseInFileMetadata", true, "Flag for reading all configuration from the input POOL file(s). "
"This mode should be used everywhere except for: RAWtoALL from bytestream. "
"If set to false, only the R3 configuration is supported."}
Definition at line 248 of file xAODConfigSvc.h.
The documentation for this class was generated from the following files:
void setPSK(unsigned int psk)
void setBGSK(unsigned int bgsk)
std::unique_ptr< xAOD::TriggerMenuJsonAuxContainer > m_bgJsonAux
Const iterator class for DataVector/DataList.
SG::SlotSpecificObj< L1Menu > m_currentL1
SG::ReadCondHandleKey< TrigConf::L1PrescalesSet > m_L1PrescaleSetKey
StatusCode readMetadata()
Function reading in a new metadata object from the input.
void copyMetadataToPersonalStore(const xAOD::TriggerMenuJsonContainer *input, xAOD::TriggerMenuJsonContainer *existing)
Helper function for copying into the service's private data store.
void setSMK(unsigned int psk)
SG::SlotSpecificObj< L1BunchGroupSet > m_currentBg
StatusCode prepareEvent()
Function setting up the service for a new event.
virtual const CTPConfig * ctpConfig() const override
Get the LVL1 trigger menu.
SG::SlotSpecificObj< L1PrescalesSet > m_currentL1ps
StatusCode prepareEventxAODTriggerMenu(const xAOD::TrigConfKeys *keys, const EventContext &context)
Do per-event decoding for R2 in-file serialised xAOD::TriggerMenu metadata.
std::unique_ptr< xAOD::TriggerMenuJsonContainer > m_hltJson
SG::SlotSpecificObj< MenuPtrWrapper > m_menu
std::shared_mutex m_sharedMutex
The mutex used to to restrict access to m_tmc when it is being written to.
Gaudi::Property< std::string > m_metaNameJSON_hltps
SG::SlotSpecificObj< HLTPrescalesSet > m_currentHltps
SG::SlotSpecificObj< HLTChainList > m_chainList
The "translated" HLT configuration object.
Gaudi::Property< bool > m_useInFileMetadata
Gaudi::Property< std::string > m_metaNameJSON_hltmonitoring
SG::SlotSpecificObj< TriggerMenuJsonPtrWrapper > m_currentL1psJson
SG::SlotSpecificObj< TriggerMenuJsonPtrWrapper > m_currentHltJson
std::unique_ptr< xAOD::TriggerMenuJsonContainer > m_l1Json
SG::SlotSpecificObj< CTPConfig > m_ctpConfig
StatusCode prepareTriggerMenu(const xAOD::TriggerMenu *menu, CTPConfig &ctpConfig, HLTChainList &chainList, HLTSequenceList &sequenceList, BunchGroupSet &bgSet, MsgStream &msg)
In order to avoid duplicating code between how the dual-use and the Athena-only code translates the x...
const std::string & key() const
Return the StoreGate ID for the referenced object.
SG::SlotSpecificObj< BunchGroupSet > m_bgSet
The "translated" bunch group set object.
void setPSK(unsigned int psk)
Gaudi::Property< std::string > m_metaNameJSON_l1ps
bool xAODKeysMatch(const xAOD::TrigConfKeys *keys, const xAOD::TriggerMenu *menu)
Since this is used in a couple of places, it seemed to make sense to put this simple code into a cent...
SG::ReadHandleKey< xAOD::BunchConfKey > m_eventBGKey
std::unique_ptr< xAOD::TriggerMenuContainer > m_tmc
std::unique_ptr< xAOD::TriggerMenuJsonContainer > m_l1psJson
SG::ReadHandleKey< xAOD::TrigConfKeys > m_eventKey
SG::ReadHandleKey< HLTMenu > m_hltMenuKey
bool m_triggerMenuContainerAvailable
Is decoded R2 format data available?
std::unique_ptr< xAOD::TriggerMenuJsonContainer > m_hltpsJson
Gaudi::Property< std::string > m_metaNameJSON_hlt
#define CHECK(...)
Evaluate an expression and check for errors.
StatusCode prepareEventxAODTriggerMenuJson(const xAOD::TrigConfKeys *keys, const xAOD::BunchConfKey *bgKey, const EventContext &context)
Do per-event decoding for R3 in-file serialised xAOD::TriggerMenuJson metadata.
std::unique_ptr< xAOD::TriggerMenuJsonAuxContainer > m_l1psJsonAux
std::unique_ptr< xAOD::TriggerMenuJsonAuxContainer > m_hltpsJsonAux
std::unique_ptr< xAOD::TriggerMenuJsonAuxContainer > m_hltmonitoringJsonAux
bool m_menuJSONContainerAvailable
Is decoded R3 format data available?
SG::ReadCondHandleKey< TrigConf::HLTPrescalesSet > m_HLTPrescaleSetKey
ServiceHandle< StoreGateSvc > m_metaStore
Connection to the metadata store.
bool m_isInFailure
Internal state of the service.
boost::property_tree::ptree ptree
Gaudi::Property< bool > m_stopOnFailure
SG::SlotSpecificObj< TriggerMenuJsonPtrWrapper > m_currentBgJson
Class describing the configuration used in a given event.
TriggerMenu_v1 TriggerMenu
Define the latest version of the trigger menu class.
std::string to_string(const DetectorType &type)
StatusCode initialize(bool used=true)
uint32_t id() const
Get the 32-bit identifier of the bunch configuration.
#define REPORT_MESSAGE(LVL)
Report a message.
HLT monitoring configuration.
std::unique_ptr< xAOD::TriggerMenuJsonAuxContainer > m_hltJsonAux
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
SG::ReadCondHandleKey< TrigConf::L1BunchGroupSet > m_L1BunchGroupSetKey
std::unique_ptr< xAOD::TriggerMenuAuxContainer > m_tmcAux
SG::SlotSpecificObj< HLTMenu > m_currentHlt
std::unique_ptr< xAOD::TriggerMenuJsonContainer > m_hltmonitoringJson
Gaudi::Property< std::string > m_metaName
const Menu & menu() const
std::unique_ptr< xAOD::TriggerMenuJsonContainer > m_bgJson
TriggerMenuJson_v1 TriggerMenuJson
Define the latest version of the trigger menu JSON class.
Gaudi::Property< std::string > m_metaNameJSON_l1
StatusCode prepareEventRun3Athena(const EventContext &context)
Do per-event updating of R3 JSON-based metadata, reading the data direct from the Conditions and Dete...
SG::SlotSpecificObj< TriggerMenuJsonPtrWrapper > m_currentHltpsJson
SG::SlotSpecificObj< HLTMonitoring > m_currentHltmonitoring
StatusCode loadPtree(const std::string &humanName, const xAOD::TriggerMenuJsonContainer *metaContainer, const uint32_t keyToCheck, TriggerMenuJsonPtrWrapper &cacheOfLoadedMenuPtr, DataStructure &dataStructure, const bool optional=false)
Helper function to find a JSON in a given TriggerMenuJsonContainer using a given key,...
std::unique_ptr< xAOD::TriggerMenuJsonAuxContainer > m_l1JsonAux
SG::ReadHandleKey< L1Menu > m_l1MenuKey
size_type size() const noexcept
Returns the number of elements in the collection.
Gaudi::Property< std::string > m_metaNameJSON_bg
SG::SlotSpecificObj< TriggerMenuJsonPtrWrapper > m_currentHltmonitoringJson
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
SG::SlotSpecificObj< TriggerMenuJsonPtrWrapper > m_currentL1Json
Class identifying the bunch configuration of a given event.
SG::SlotSpecificObj< HLTSequenceList > m_sequenceList
The "translated" HLT configuration object.