ATLAS Offline Software
Loading...
Searching...
No Matches
TrigDBMonitoringLoader.cxx
Go to the documentation of this file.
1// Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2
3#include "./TrigDBHelper.h"
5
7 TrigDBLoader("TrigDBMonitoringLoader", connection)
8{
9 /*
10 DB queries
11 */
12 { // for schema version 7
13 auto & q = m_queries[7];
14 // tables
15 q.addToTableList ( "SUPER_MASTER_TABLE", "SMT" );
16 q.addToTableList ( "HLT_MONITORING_GROUPS", "HMG" );
17 // bind vars
18 q.extendBinding<int>("key");
19 // conditions
20 q.extendCondition("SMT.SMT_ID = :key");
21 q.extendCondition(" AND SMT.SMT_HLT_MENU_ID = HMG.HMG_HLT_MENU_ID");
22 q.extendCondition(" AND HMG.HMG_IN_USE=1");
23 q.extendCondition(" ORDER BY HMG.HMG_ID DESC");
24 // attributes
25 q.extendOutput<int> ( "HMG.HMG_ID" );
26 q.extendOutput<coral::Blob>( "HMG.HMG_DATA" );
27 // the field with the data
28 q.setDataName("HMG.HMG_DATA");
29 }
30}
31
32
33// Destructor defined here because QueryDefinition is an incomplete type in the header
35
36bool
38 boost::property_tree::ptree & hltmonitoring,
39 const std::string & outFileName ) const
40{
41 if(useCrest()) {
42 loadFromCrest(smk, hltmonitoring, outFileName, "HLT monitoring", "MGS");
43 } else {
44 loadFromOracle(smk, hltmonitoring, outFileName, "HLT monitoring", m_queries);
45 }
46 return true;
47}
48
49bool
51 const std::string & outFileName ) const
52{
53 boost::property_tree::ptree pthlt;
54 loadHLTMonitoring( smk, pthlt, outFileName );
55 try {
56 hltmonitoring.setData(std::move(pthlt));
57 hltmonitoring.setSMK(smk);
58 }
59 catch(std::exception & ex) {
60 hltmonitoring.clear();
61 TRG_MSG_ERROR("When reading HLT menu for SMK " << smk << " a parsing error occured ( " << ex.what() <<" )" );
62 throw TrigConf::ParsingException("TrigDBMonitoringLoader: parsing error " + std::string(ex.what()));
63 }
64 return true;
65}
void setData(const ptree &data)
Setting the configuration data.
HLT monitoring configuration.
virtual void clear() override
Clearing the configuration data.
void setSMK(unsigned int psk)
TrigDBLoader(const std::string &loaderName, const std::string &connection)
Constructor.
void loadFromOracle(unsigned int key, boost::property_tree::ptree &pt, const std::string &outFileName, const std::string &description, const std::map< size_t, QueryDefinition > &queries) const
void loadFromCrest(unsigned int key, boost::property_tree::ptree &pt, const std::string &outFileName, const std::string &description, const std::string &query_type) const
std::map< size_t, QueryDefinition > m_queries
virtual ~TrigDBMonitoringLoader() override
Destructor - cannot be defined here because QueryDefinition is an incomplete type.
TrigDBMonitoringLoader(const std::string &connection)
Constructor.
bool loadHLTMonitoring(unsigned int smk, boost::property_tree::ptree &hltmonitoring, const std::string &outFileName="") const
Load HLT menu content from the Trigger DB into two ptrees for a given SuperMasterKey (SMK)