ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
TrigConf::LVL1ConfigSvc Class Reference

Service storing the LVL1 menu in the DetectorStore. More...

#include <LVL1ConfigSvc.h>

Inheritance diagram for TrigConf::LVL1ConfigSvc:
Collaboration diagram for TrigConf::LVL1ConfigSvc:

Public Member Functions

 LVL1ConfigSvc (const std::string &name, ISvcLocator *pSvcLocator)
 
virtual StatusCode initialize () override
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Private Member Functions

StatusCode loadRun3StyleMenu ()
 

Private Attributes

Gaudi::Property< std::string > m_inputType
 
Gaudi::Property< std::string > m_l1FileName
 
Gaudi::Property< std::string > m_hltFileName
 
Gaudi::Property< std::string > m_dbConnection
 
Gaudi::Property< unsigned int > m_smk
 

Detailed Description

Service storing the LVL1 menu in the DetectorStore.

Definition at line 17 of file LVL1ConfigSvc.h.

Constructor & Destructor Documentation

◆ LVL1ConfigSvc()

TrigConf::LVL1ConfigSvc::LVL1ConfigSvc ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Definition at line 19 of file LVL1ConfigSvc.cxx.

19  :
20  AthService(name, pSvcLocator)
21 {}

Member Function Documentation

◆ initialize()

StatusCode TrigConf::LVL1ConfigSvc::initialize ( )
overridevirtual

Definition at line 78 of file LVL1ConfigSvc.cxx.

79 {
80  // Handle to JobOptionsSvc to retrieve configuration keys
81  if (auto joSvc = serviceLocator()->service<TrigConf::IJobOptionsSvc>("JobOptionsSvc")) {
82  if (joSvc->superMasterKey() > 0) {
83  m_inputType = "DB";
84  m_smk = joSvc->superMasterKey();
85  m_dbConnection = joSvc->server();
86  }
87  }
88  else {
89  ATH_MSG_DEBUG("Did not locate TrigConf::JobOptionsSvc, not running athenaHLT");
90  }
91 
92  ATH_MSG_INFO("Loading L1 trigger menu from:");
94  if (m_inputType == "FILE") {
96  }
97  else if (m_inputType == "DB") {
100  }
101 
103 
104  return StatusCode::SUCCESS;
105 }

◆ loadRun3StyleMenu()

StatusCode TrigConf::LVL1ConfigSvc::loadRun3StyleMenu ( )
private

Definition at line 23 of file LVL1ConfigSvc.cxx.

24 {
25  auto l1menu = std::make_unique<TrigConf::L1Menu>();
26 
27  if (m_inputType == "DB") {
28  // load l1menu
30  std::string crest_server("");
31  std::string crest_api("");
32  std::string dbname("");
34  dbmenuloader.setCrestTrigDB(dbname);
35  dbmenuloader.setCrestConnection(crest_server, crest_api);
36  }
37  dbmenuloader.setLevel(TrigConf::MSGTC::WARNING);
38  ATH_CHECK( dbmenuloader.loadL1Menu(m_smk, *l1menu) );
39 
40  }
41  else if (m_inputType == "FILE") {
42  // json file menu loader
43  TrigConf::JsonFileLoader fileLoader;
45 
46  ATH_CHECK( fileLoader.loadFile(m_l1FileName, *l1menu) );
47 
48  uint32_t smk = m_smk.value();
49  if (!m_hltFileName.empty() && smk == 0u) {
50  auto hltmenu = std::make_unique<TrigConf::HLTMenu>();
51  const bool status = fileLoader.loadFile(m_hltFileName, *hltmenu);
52  if (status) {
53  smk = TrigConf::truncatedHash(*l1menu, *hltmenu);
54  } else {
55  ATH_MSG_DEBUG("No HLT menu created, cannot compute a MC-SMK in this job");
56  }
57  }
58  ATH_MSG_INFO("Setting file-loaded L1 Menu SMK to:" << smk);
59  l1menu->setSMK(smk); // allow assigning a specified or hashed SMK when running from FILE
60 
61 
62  }
63  else {
64  ATH_MSG_ERROR("Unknown input type '" << m_inputType
65  << "'. Allowed values: " << m_inputType.documentation());
66  return StatusCode::FAILURE;
67  }
68 
69  ServiceHandle<StoreGateSvc> detStore("StoreGateSvc/DetectorStore", name());
70  ATH_CHECK(detStore.retrieve());
71  if (detStore->record(std::move(l1menu), "L1TriggerMenu").isSuccess()) {
72  ATH_MSG_INFO("Recorded L1 menu as 'L1TriggerMenu' in detector store");
73  }
74 
75  return StatusCode::SUCCESS;
76 }

◆ msg() [1/2]

MsgStream& AthCommonMsg< Service >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< Service >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< Service >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

Member Data Documentation

◆ m_dbConnection

Gaudi::Property<std::string> TrigConf::LVL1ConfigSvc::m_dbConnection
private
Initial value:
{this, "TriggerDB", "TRIGGERDB",
"DB connection alias, needed if InputType is DB"}

Definition at line 37 of file LVL1ConfigSvc.h.

◆ m_hltFileName

Gaudi::Property<std::string> TrigConf::LVL1ConfigSvc::m_hltFileName
private
Initial value:
{this, "HLTJsonFileName", "",
"file name of HLT json file, needed if InputType is FILE and a hashed SMK needs to be computed"}

Definition at line 34 of file LVL1ConfigSvc.h.

◆ m_inputType

Gaudi::Property<std::string> TrigConf::LVL1ConfigSvc::m_inputType
private
Initial value:
{this, "InputType", "FILE",
"FILE (json file), DB (Trigger DB)"}

Definition at line 28 of file LVL1ConfigSvc.h.

◆ m_l1FileName

Gaudi::Property<std::string> TrigConf::LVL1ConfigSvc::m_l1FileName
private
Initial value:
{this, "L1JsonFileName", "",
"file name of L1 json file, needed if InputType is FILE"}

Definition at line 31 of file LVL1ConfigSvc.h.

◆ m_smk

Gaudi::Property<unsigned int> TrigConf::LVL1ConfigSvc::m_smk
private
Initial value:
{this, "SMK", 0,
"DB smk, needed if InputType is DB"}

Definition at line 40 of file LVL1ConfigSvc.h.


The documentation for this class was generated from the following files:
AthService::AthService
AthService()
CaloNoise_fillDB.dbname
dbname
Definition: CaloNoise_fillDB.py:41
TrigConf::LVL1ConfigSvc::m_inputType
Gaudi::Property< std::string > m_inputType
Definition: LVL1ConfigSvc.h:28
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
TrigConf::JsonFileLoader::loadFile
bool loadFile(const std::string &filename, boost::property_tree::ptree &data, const std::string &pathToChild="") const
Load content of json file into a ptree.
Definition: JsonFileLoader.cxx:45
RunEBWeightsComputation.smk
smk
Definition: RunEBWeightsComputation.py:87
python.TriggerCrestUtil.crest_server
crest_server
Definition: TriggerCrestUtil.py:422
TrigConf::LVL1ConfigSvc::m_dbConnection
Gaudi::Property< std::string > m_dbConnection
Definition: LVL1ConfigSvc.h:37
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:77
TrigConf::LVL1ConfigSvc::m_smk
Gaudi::Property< unsigned int > m_smk
Definition: LVL1ConfigSvc.h:40
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TrigConf::LVL1ConfigSvc::loadRun3StyleMenu
StatusCode loadRun3StyleMenu()
Definition: LVL1ConfigSvc.cxx:23
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
TrigConf::JsonFileLoader::setLevel
void setLevel(MSGTC::Level lvl)
Definition: JsonFileLoader.h:86
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
TrigConf::truncatedHash
uint32_t truncatedHash(const DataStructure &dataStructure)
Function to compute a truncated MD5 hash for a JSON file.
Definition: TrigConfMD5.cxx:23
TrigConf::LVL1ConfigSvc::m_hltFileName
Gaudi::Property< std::string > m_hltFileName
Definition: LVL1ConfigSvc.h:34
TrigConf::LVL1ConfigSvc::m_l1FileName
Gaudi::Property< std::string > m_l1FileName
Definition: LVL1ConfigSvc.h:31
python.XMLReader.l1menu
l1menu
Definition: XMLReader.py:73
TrigConf::isCrestConnection
bool isCrestConnection(const std::string &db_connection_string, std::string &crest_server, std::string &crest_api, std::string &dbname)
Function to interpret the trigger connection string for CREST connections Format of the connections s...
Definition: TrigConfSvcHelper.cxx:9
merge.status
status
Definition: merge.py:16
TrigConf::JsonFileLoader
Loader of trigger configurations from Json files.
Definition: JsonFileLoader.h:25
TrigConf::TrigDBMenuLoader
Loader of trigger menu configurations from the database.
Definition: TrigDBMenuLoader.h:30
ServiceHandle< StoreGateSvc >
TrigConf::MSGTC::WARNING
@ WARNING
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:26