TriggerDB loader of the HLT menu.
More...
#include <HLTFrameLoader.h>
TriggerDB loader of the HLT menu.
Definition at line 16 of file HLTFrameLoader.h.
◆ HLTFrameLoader()
TrigConf::HLTFrameLoader::HLTFrameLoader |
( |
StorageMgr & |
sm, |
|
|
coral::ISessionProxy & |
session |
|
) |
| |
|
inline |
constructor
- Parameters
-
sm | reference to storage manager |
session | reference to the database session |
Definition at line 25 of file HLTFrameLoader.h.
26 IHLTFrameLoader(),
DBLoader(
"HLTFrameLoader", sm, session) {}
◆ ~HLTFrameLoader()
virtual TrigConf::HLTFrameLoader::~HLTFrameLoader |
( |
| ) |
|
|
overridevirtualdefault |
◆ commitSession()
void TrigConf::DBLoader::commitSession |
( |
| ) |
|
|
inherited |
commit session if not already done
Definition at line 45 of file DBLoader.cxx.
◆ GetConnectedPSKs()
set< unsigned int > TrigConf::HLTFrameLoader::GetConnectedPSKs |
( |
unsigned int |
smk | ) |
|
|
private |
Definition at line 167 of file HLTFrameLoader.cxx.
168 set<unsigned int> connected_psks;
171 unique_ptr< coral::IQuery >
q(
m_session.nominalSchema().newQuery() );
173 q->addToTableList(
"SUPER_MASTER_TABLE",
"SMT" );
174 q->addToTableList(
"HLT_MASTER_TABLE",
"HMT" );
175 q->addToTableList(
"HLT_TRIGGER_MENU",
"HTM" );
176 q->addToTableList(
"HLT_TM_TO_PS",
"HM2PS" );
179 bindings.extend<
int>(
"smid");
180 bindings[0].data<
int>() =
smk;
182 string theCondition(
"");
183 theCondition += string(
" SMT.SMT_ID = :smid");
184 theCondition += string(
" AND SMT.SMT_HLT_MASTER_TABLE_ID = HMT.HMT_ID" );
185 theCondition += string(
" AND HMT.HMT_TRIGGER_MENU_ID = HTM.HTM_ID" );
186 theCondition += string(
" AND HTM.HTM_ID = HM2PS.HTM2PS_TRIGGER_MENU_ID" );
189 q->setCondition( theCondition, bindings );
193 attList.extend<
int>(
"HM2PS.HTM2PS_PRESCALE_SET_ID" );
196 coral::ICursor&
cursor =
q->execute();
200 int psk =
row[
"HM2PS.HTM2PS_PRESCALE_SET_ID"].data<
int>();
201 connected_psks.insert(psk);
207 for(
int psk : connected_psks)
210 TRG_MSG_INFO(
"To SMK " <<
smk <<
" connected HLT prescale keys are " <<
ss.str() );
212 return connected_psks;
◆ isRun1()
bool TrigConf::DBLoader::isRun1 |
( |
| ) |
|
|
inlineinherited |
◆ isRun2()
bool DBLoader::isRun2 |
( |
| ) |
|
|
inherited |
◆ load()
bool TrigConf::HLTFrameLoader::load |
( |
HLTFrame & |
data | ) |
|
|
overridevirtual |
Implements TrigConf::IHLTFrameLoader.
Definition at line 30 of file HLTFrameLoader.cxx.
32 unsigned int smk = frame.smk();
33 if(
smk==0)
return false;
37 typedef pair<unsigned int, unsigned int> lbnpsk_t;
38 vector<lbnpsk_t> reqested_prescale_keys = frame.getPrescaleSetCollection().prescale_keys();
60 bool all_connected(
true);
62 for( lbnpsk_t lbnpsk: reqested_prescale_keys) {
63 unsigned int psk = lbnpsk.second;
64 bool is_connected = psk!=0 && connected_psk.find(psk)!=connected_psk.end();
65 TRG_MSG_INFO(
"LB " << setw(3) << right << lbnpsk.first <<
" : " << lbnpsk.second);
67 TRG_MSG_ERROR(
"prescale key " << lbnpsk.second <<
" is not connected to SMK");
68 all_connected =
false;
73 frame.thePrescaleSetCollection().set_prescale_keys_to_load( reqested_prescale_keys );
78 pssldr.load(frame.thePrescaleSetCollection());
83 if(frame.getPrescaleSetCollection().size()==1) {
84 HLTPrescaleSet* singlePrescaleSet(frame.getPrescaleSetCollection().sets().begin()->pss);
87 pair<bool, float> rrps =
ch->rerun_prescale(
"");
89 singlePrescaleSet->thePrescale(
ch->chain_counter(),
ch->level_enum()).setRerunPrescale(
"",rrps.second);
92 frame.theHLTChainList().applyPrescaleSet(singlePrescaleSet);
96 TRG_MSG_ERROR(
"Not all requested HLT prescale keys are connected to the SMK");
98 for(
int psk: connected_psk) {
101 TRG_MSG_INFO(
"these HLT PSK are connected to SMK " <<
smk <<
": " <<
s.str());
102 throw runtime_error(
"HLTFrameLoader: not all requested HLT prescale keys are connected to the SMK");
106 if( frame.mergedHLT() ) {
107 bool needMerging(
false);
114 TRG_MSG_DEBUG(
"Call merging of " << frame.getHLTChainList().size() <<
" L2 and EF chains");
◆ loadL1MasterKey()
bool TrigConf::DBLoader::loadL1MasterKey |
( |
int |
SuperMasterKey, |
|
|
int & |
Lvl1MasterKey |
|
) |
| |
|
inherited |
get l1 master from super master
Definition at line 128 of file DBLoader.cxx.
132 unique_ptr< coral::IQuery >
q(
m_session.nominalSchema().tableHandle(
"SUPER_MASTER_TABLE").newQuery() );
133 q->setRowCacheSize( 5 );
137 bindings.extend<
int>(
"smtid");
138 bindings[0].data<
int>() =
smk;
139 q->setCondition(
"SMT_ID = :smtid", bindings );
143 attList.extend<
int>(
"SMT_L1_MASTER_TABLE_ID" );
146 coral::ICursor&
cursor =
q->execute();
148 msg() <<
"DBLoader: No such SuperMaster key exists " <<
smk << endl;
149 throw runtime_error(
"DBLoader: SuperMasterKey not available" );
153 Lvl1MasterKey =
row[
"SMT_L1_MASTER_TABLE_ID"].data<
int>();
157 msg() <<
"DBLoader: C++ exception: " <<
e.what() << std::endl;
◆ loadL1MenuKey()
bool TrigConf::DBLoader::loadL1MenuKey |
( |
int |
SuperMasterKey, |
|
|
int & |
Lvl1MenuKey |
|
) |
| |
|
inherited |
get l1 menu id from super master
Definition at line 167 of file DBLoader.cxx.
175 unique_ptr< coral::IQuery >
q(
m_session.nominalSchema().tableHandle(
"L1_MASTER_TABLE").newQuery() );
176 q->setRowCacheSize( 5 );
180 bindings.extend<
int>(
"l1mtid");
181 bindings[0].data<
int>() = l1Master;
182 q->setCondition(
"L1MT_ID = :l1mtid" , bindings );
186 attList.extend<
int>(
"L1MT_TRIGGER_MENU_ID" );
187 q->defineOutput(attList);
188 q->addToOutputList(
"L1MT_TRIGGER_MENU_ID" );
190 coral::ICursor&
cursor =
q->execute();
192 msg() <<
"DBLoader >> No such L1 Master key exists " << l1Master << std::endl;
193 throw std::runtime_error(
"DBLoader >> L1MasterKey not available" );
198 Lvl1MenuKey =
row[
"L1MT_TRIGGER_MENU_ID"].data<
int>();
204 msg() <<
"DBLoader >> Standard C++ exception: " <<
e.what() << std::endl;
◆ loadSchemaVersion()
std::tuple< unsigned int, unsigned int > DBLoader::loadSchemaVersion |
( |
| ) |
const |
|
privateinherited |
get DB schema version and run number
Definition at line 81 of file DBLoader.cxx.
83 const static auto versions = [&]() -> std::tuple<unsigned int,unsigned int> {
84 bool mySession =
false;
85 if ( !
m_session.transaction().isActive() ) {
90 std::unique_ptr< coral::IQuery >
q(
m_session.nominalSchema().tableHandle(
"TRIGGER_SCHEMA").newQuery() );
91 q->setRowCacheSize( 1 );
95 attList.extend<
int>(
"TS_ID" );
96 q->defineOutput(attList);
97 q->addToOutputList(
"TS_ID" );
99 q->addToOrderList(
"TS_ID desc");
100 coral::ICursor&
cursor =
q->execute();
104 if ( mySession )
m_session.transaction().commit();
105 throw std::runtime_error(
"DBLoader::loadSchemaVersion() >> Table TRIGGER_SCHEMA is not filled" );
113 const unsigned int run =
m_session.nominalSchema().existsTable(
"ACTIVE_MASTERS" ) ? 2 : 1;
119 if ( mySession )
m_session.transaction().commit();
◆ loadSMT()
void TrigConf::HLTFrameLoader::loadSMT |
( |
HLTFrame & |
frame | ) |
|
|
private |
Definition at line 134 of file HLTFrameLoader.cxx.
136 unique_ptr< coral::IQuery >
q(
m_session.nominalSchema().tableHandle(
"SUPER_MASTER_TABLE").newQuery() );
138 std::string cond =
"SMT_ID = :smId";
140 bindings.extend<
int>(
"smId");
141 bindings[0].data<
int>() = frame.smk();
142 q->setCondition( cond, bindings );
145 attList.extend<std::string>(
"SMT_NAME" );
146 attList.extend<
int> (
"SMT_VERSION" );
147 attList.extend<std::string>(
"SMT_COMMENT" );
151 coral::ICursor&
cursor =
q->execute();
154 string name =
row[
"SMT_NAME" ].data<std::string>();
156 string comment =
row[
"SMT_COMMENT"].data<std::string>();
158 frame.setName(
name );
◆ msg() [1/2]
MsgStreamTC & TrigConf::TrigConfMessaging::msg |
( |
| ) |
const |
|
inlineinherited |
The standard message stream.
Returns a reference to the message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 81 of file TrigConfMessaging.h.
◆ msg() [2/2]
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 91 of file TrigConfMessaging.h.
◆ msgLvl()
Test the output level.
- Parameters
-
lvl | The message level to test against |
- Returns
- boolean Indicting if messages at given level will be printed
- Return values
-
true | Messages at level "lvl" will be printed |
Definition at line 70 of file TrigConfMessaging.h.
◆ outputLevel() [1/2]
virtual MSGTC::Level TrigConf::ILoader::outputLevel |
( |
| ) |
const |
|
pure virtualinherited |
◆ outputLevel() [2/2]
virtual MSGTC::Level TrigConf::DBLoader::outputLevel |
( |
| ) |
const |
|
inlineoverridevirtualinherited |
◆ setLevel() [1/2]
◆ setLevel() [2/2]
virtual void TrigConf::ILoader::setLevel |
( |
MSGTC::Level |
lvl | ) |
|
|
pure virtualinherited |
Load the configuration data from the configuration source.
- Parameters
-
ctpc | reference to the data object to be filled |
- Returns
true
if the loading was successful, false
otherwise
Implemented in TrigConf::DBLoader.
◆ setVerbose() [1/2]
virtual void TrigConf::DBLoader::setVerbose |
( |
int |
v | ) |
|
|
inlineoverridevirtualinherited |
◆ setVerbose() [2/2]
virtual void TrigConf::ILoader::setVerbose |
( |
int |
v | ) |
|
|
pure virtualinherited |
◆ startSession()
void TrigConf::DBLoader::startSession |
( |
| ) |
|
|
inherited |
start session if not already active
Definition at line 35 of file DBLoader.cxx.
37 if ( !
m_session.transaction().isActive() ) {
◆ triggerDBSchemaVersion()
unsigned int DBLoader::triggerDBSchemaVersion |
( |
| ) |
|
|
inherited |
◆ verbose() [1/2]
virtual int TrigConf::ILoader::verbose |
( |
| ) |
const |
|
pure virtualinherited |
◆ verbose() [2/2]
virtual int TrigConf::DBLoader::verbose |
( |
| ) |
const |
|
inlineoverridevirtualinherited |
◆ m_msg_tls
boost::thread_specific_ptr<MsgStreamTC> TrigConf::TrigConfMessaging::m_msg_tls |
|
mutableprivateinherited |
◆ m_name
std::string TrigConf::TrigConfMessaging::m_name |
|
privateinherited |
◆ m_session
coral::ISessionProxy& TrigConf::DBLoader::m_session |
|
protectedinherited |
CORAL interface to database session.
Definition at line 68 of file DBLoader.h.
◆ m_sessionOwner
bool TrigConf::DBLoader::m_sessionOwner {false} |
|
protectedinherited |
remember if the loader started the session in the first place
Definition at line 69 of file DBLoader.h.
◆ m_storageMgr
reference to the storage manager
Definition at line 67 of file DBLoader.h.
◆ m_verbose
int TrigConf::DBLoader::m_verbose {1} |
|
privateinherited |
The documentation for this class was generated from the following files: