TriggerDB loader of the LVL1 trigger configuration.
More...
#include <MasterTableLoader.h>
TriggerDB loader of the LVL1 trigger configuration.
Definition at line 16 of file MasterTableLoader.h.
◆ MasterTableLoader()
TrigConf::MasterTableLoader::MasterTableLoader |
( |
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 MasterTableLoader.h.
◆ ~MasterTableLoader()
virtual TrigConf::MasterTableLoader::~MasterTableLoader |
( |
| ) |
|
|
overridevirtualdefault |
◆ commitSession()
void TrigConf::DBLoader::commitSession |
( |
| ) |
|
|
inherited |
commit session if not already done
Definition at line 45 of file DBLoader.cxx.
◆ isRun1()
bool TrigConf::DBLoader::isRun1 |
( |
| ) |
|
|
inlineinherited |
◆ isRun2()
bool DBLoader::isRun2 |
( |
| ) |
|
|
inherited |
◆ load() [1/4]
bool TrigConf::MasterTableLoader::load |
( |
CTPConfig & |
ctpc | ) |
|
|
overridevirtual |
Load the LVL1 CTP configuration (trigger menu) from the configuration source (also for online configuration)
- Parameters
-
ctpc | reference to the CTPConfig object to be filled |
- Returns
true
if the loading was successful, false
otherwise
Implements TrigConf::IMasterTableLoader.
Definition at line 104 of file MasterTableLoader.cxx.
106 if ( !ctpc.lvl1MasterTableId() ) {
107 int SuperMasterKey = ctpc.superMasterTableId();
108 if(SuperMasterKey==0) {
109 msg() <<
"MasterTableLoader: Error loading CTPConfig" << std::endl;
110 msg() <<
">>no super- or lvl1- master key is specified" << std::endl;
113 int Lvl1MasterKey(0);
115 msg() <<
"Load L1 master key" << std::endl;
116 std::string menuName{
""};
119 msg() <<
"Loaded L1 master key" << Lvl1MasterKey << std::endl;
121 ctpc.setLvl1MasterTableId(Lvl1MasterKey);
125 CTPConfigLoader& ctpLoader =
129 return ctpLoader.load(ctpc);
131 msg() <<
"MasterTableLoader >> Failed to load CTPConfig: "
132 <<
e.what() << std::endl;
135 }
catch (std::bad_cast& ex) {
136 msg() <<
"Caught exception in MasterTableLoader : "
137 << ex.what() << std::endl;
◆ load() [2/4]
bool TrigConf::MasterTableLoader::load |
( |
Muctpi & |
muctpi | ) |
|
|
overridevirtual |
Load the LVL1 muon hardware configuration from the configuration source.
- Parameters
-
muctpi | reference to the Muctpi object to be filled |
- Returns
true
if the loading was successful, false
otherwise
Implements TrigConf::IMasterTableLoader.
Definition at line 143 of file MasterTableLoader.cxx.
145 if ( !
m.lvl1MasterTableId() ) {
146 int SuperMasterKey =
m.superMasterTableId();
147 if(SuperMasterKey==0) {
148 msg() <<
"MasterTableLoader: Error loading Muctpi since no L1MasterKey nor a SMK is specified" << std::endl;
151 int Lvl1MasterKey(0);
152 std::string menuName{
""};
154 m.setLvl1MasterTableId(Lvl1MasterKey);
159 return muctpiLoader.load(
m);
160 }
catch (std::bad_cast& ex) {
161 msg() <<
"Caught exception in MasterTableLoader : "
162 << ex.what() << std::endl;
◆ load() [3/4]
Load the LVL1 trigger thresholds from the configuration source.
- Parameters
-
- Returns
true
if the loading was successful, false
otherwise
Implements TrigConf::IMasterTableLoader.
Definition at line 77 of file MasterTableLoader.cxx.
79 if ( !thrcfg.lvl1MasterTableId() ) {
80 int SuperMasterKey = thrcfg.superMasterTableId();
81 if(SuperMasterKey==0) {
82 msg() <<
"MasterTableLoader: Error loading ThresholdConfig" << std::endl;
83 msg() <<
">>no super- or lvl1- master key is specified" << std::endl;
87 std::string menuName{
""};
89 thrcfg.setLvl1MasterTableId(Lvl1MasterKey);
92 ThresholdConfigLoader& thrLoader =
95 return thrLoader.load(thrcfg);
96 }
catch (std::bad_cast& ex) {
97 msg() <<
"Caught exception in MasterTableLoader : "
98 << ex.what() << std::endl;
◆ load() [4/4]
Load the LVL1 topo hardware configuration from the configuration source.
- Parameters
-
l1topomenu | reference to the L1Topo object to be filled |
- Returns
true
if the loading was successful, false
otherwise
Implements TrigConf::IMasterTableLoader.
Definition at line 167 of file MasterTableLoader.cxx.
171 return l1topoLoader.load(l1topo);
173 msg() <<
"Caught exception in MasterTableLoader : "
174 << ex.what() << std::endl;
◆ 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;
◆ loadMasterKeys()
bool TrigConf::MasterTableLoader::loadMasterKeys |
( |
int |
SuperMasterKey, |
|
|
int & |
Lvl1MasterKey, |
|
|
std::string & |
menuName |
|
) |
| |
|
private |
Definition at line 21 of file MasterTableLoader.cxx.
26 coral::ITable&
table =
m_session.nominalSchema().tableHandle(
"SUPER_MASTER_TABLE");
28 query->setRowCacheSize( 5 );
32 bindList.extend<
int>(
"smtid");
33 bindList[0].data<
int>() = SuperMasterKey;
34 query->setCondition(
"SMT_ID = :smtid" , bindList );
38 attList.extend<
int>(
"SMT_L1_MASTER_TABLE_ID" );
39 attList.extend<std::string>(
"SMT_NAME" );
40 query->defineOutput(attList);
41 query->addToOutputList(
"SMT_L1_MASTER_TABLE_ID" );
42 query->addToOutputList(
"SMT_NAME" );
47 msg() <<
"MasterTableLoader >> No such SuperMaster key exists " << SuperMasterKey << std::endl;
50 throw std::runtime_error(
"MasterTableLoader >> SuperMasterKey not available" );
54 Lvl1MasterKey =
row[
"SMT_L1_MASTER_TABLE_ID"].data<
int>();
55 menuName =
row[
"SMT_NAME"].data<std::string>();
60 catch(
const coral::SchemaException&
e ) {
61 msg() <<
"BunchGroupLoader >> SchemaException: " <<
e.what() << std::endl;
65 msg() <<
"BunchGroupLoader >> Standard C++ exception: " <<
e.what() << std::endl;
69 msg() <<
"BunchGroupLoader >> Unknown C++ exception" << 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();
◆ 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.
◆ mt_id_for_next_run()
int TrigConf::MasterTableLoader::mt_id_for_next_run |
( |
| ) |
|
|
private |
next run configuration key (depreciated)
Definition at line 181 of file MasterTableLoader.cxx.
183 msg() <<
"MasterTableLoader loading mt_id for next run " << std::endl;
187 if ( !
m_session.transaction().isActive() )
191 coral::ITable& table0 =
m_session.nominalSchema().tableHandle(
"TRIGGER_NEXT_RUN");
192 coral::IQuery* query0 = table0.newQuery();
193 query0->setRowCacheSize( 5 );
195 std::string whereclause0=
"TNR_ID = 1";
197 query0->setCondition( whereclause0, emptyBindVariableList0 );
199 query0->addToOutputList(
"TNR_SUPER_MASTER_TABLE_ID" );
201 coral::ICursor& cursor0 = query0->execute();
203 if ( ! cursor0.next() ) {
204 msg() <<
"MasterTableLoader >> No Entry in NEXT_RUN Table " << std::endl;
207 throw std::runtime_error(
"MasterTableLoader >> no entry in NEXT_RUN table" );
211 int supermastertableid = 0;
212 supermastertableid = row0[
"TNR_SUPER_MASTER_TABLE_ID"].data<
int>();
214 if ( cursor0.next() ) {
215 msg() <<
"MasterTableLoader >> More than one entry in NEXT_RUNtable" << std::endl;
218 throw std::runtime_error(
"MasterTableLoader >> More than one entry in NEXT_RUNtable" );
223 msg() <<
"MasterTableLoader>> getting data for super_mt_id = " << supermastertableid << std::endl;
225 coral::ITable&
table =
m_session.nominalSchema().tableHandle(
"SUPER_MASTER_TABLE");
227 unique_ptr< coral::IQuery >
query(
table.newQuery() );
228 query->setRowCacheSize( 5 );
231 std::string
os=
"SMT_ID = ";
232 std::ostringstream lStringOS;
233 lStringOS << supermastertableid;
234 os += lStringOS.str();
236 query->setCondition(
os , emptyBindVariableList );
238 query->addToOutputList(
"SMT_L1_MASTER_TABLE_ID" );
243 msg() <<
"MasterTableLoader >> No such Super_Master_table exists " << supermastertableid << std::endl;
246 throw std::runtime_error(
"MasterTableLoader >> No such Super_Master_table exists " );
251 mt_id =
row[
"SMT_L1_MASTER_TABLE_ID"].data<
int>();
254 msg() <<
"MasterTableLoader >> More than one Super_Master_table exists "
255 << supermastertableid << std::endl;
256 throw std::runtime_error(
"MasterTableLoader >> More than one Super_Master_table exists " );
261 catch(
const coral::SchemaException&
e )
263 msg() <<
"CTPConfigLoader >> SchemaException: "
264 <<
e.what() << std::endl;
270 msg() <<
"CTPConfigLoader >> Standard C++ exception: " <<
e.what() << std::endl;
276 msg() <<
"CTPConfigLoader >> unknown C++ exception" << std::endl;
◆ 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: