TriggerDB loader of the LVL1 muon h/w configuration for online use.
More...
#include <MuonThresholdSetLoader.h>
TriggerDB loader of the LVL1 muon h/w configuration for online use.
Definition at line 29 of file MuonThresholdSetLoader.h.
◆ MuonThresholdSetLoader()
TrigConf::MuonThresholdSetLoader::MuonThresholdSetLoader |
( |
StorageMgr & |
sm, |
|
|
coral::ISessionProxy & |
session |
|
) |
| |
|
inline |
constructor
- Parameters
-
sm | reference to storage manager |
session | reference to the database session |
Definition at line 38 of file MuonThresholdSetLoader.h.
39 : ILoader(),
DBLoader(sm, session) {}
◆ ~MuonThresholdSetLoader()
virtual TrigConf::MuonThresholdSetLoader::~MuonThresholdSetLoader |
( |
| ) |
|
|
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()
Implements TrigConf::IMuonThresholdSetLoader.
Definition at line 109 of file MuonThresholdSetLoader.cxx.
110 msg() <<
"MuonThresholdSetLoader start loading data" << std::endl;
122 int Lvl1MasterKey = 0;
127 coral::ITable&
table =
m_session.nominalSchema().tableHandle(
"SUPER_MASTER_TABLE");
129 query->setRowCacheSize( 5 );
132 conditionData.extend<
int>(
"smtid");
133 query->setCondition(
"SMT_ID = :smtid" , conditionData );
134 conditionData[0].data<
int>() =
target.superMasterTableId();
137 attList.extend<
int>(
"SMT_L1_MASTER_TABLE_ID" );
138 query->defineOutput(attList);
139 query->addToOutputList(
"SMT_L1_MASTER_TABLE_ID" );
143 msg() <<
"MuonThresholdSetLoader >> No such SuperMaster key exists "
144 <<
target.superMasterTableId() << std::endl;
147 throw std::runtime_error(
"MuonThresholdSetLoader >> SuperMasterKey not available" );
150 Lvl1MasterKey =
row[
"SMT_L1_MASTER_TABLE_ID"].data<
int>();
159 coral::ITable&
table =
m_session.nominalSchema().tableHandle(
"L1_MASTER_TABLE");
161 query->setRowCacheSize( 5 );
164 conditionData.extend<
int>(
"l1mtid");
165 query->setCondition(
"L1MT_ID = :l1mtid" , conditionData );
166 conditionData[0].data<
int>() = Lvl1MasterKey;
169 attList.extend<
int>(
"L1MT_MUON_THRESHOLD_SET_ID" );
170 query->defineOutput(attList);
172 query->addToOutputList(
"L1MT_MUON_THRESHOLD_SET_ID" );
175 msg() <<
"MuonThresholdSetLoader >> No such L1 master key exists "
176 << Lvl1MasterKey << std::endl;
179 throw std::runtime_error(
"MuonThresholdSetLoader >> L1MasterKey not available" );
182 setId =
row[
"L1MT_MUON_THRESHOLD_SET_ID"].data<
int>();
187 }
catch(
const coral::SchemaException&
e ) {
188 msg() <<
"MuonThresholdSetLoader >> SchemaException: "
189 <<
e.what() << std::endl;
193 msg() <<
"MuonThresholdSetLoader >> Standard C++ exception: " <<
e.what() << std::endl;
197 msg() <<
"MuonThresholdSetLoader >> unknown C++ exception" << std::endl;
204 msg() <<
"Super master key " <<
target.superMasterTableId()
205 <<
" MuonThresholdSet id " <<
target.id() << std::endl;
207 coral::ITable&
table =
m_session.nominalSchema().tableHandle(
"L1_MUON_THRESHOLD_SET");
209 query->setRowCacheSize( 5 );
211 std::string cond =
"L1MTS_ID = :threshId";
213 alist.extend<
int>(
"threshId");
218 attList.extend<std::string>(
"L1MTS_NAME" );
219 attList.extend<
int>(
"L1MTS_VERSION" );
220 attList.extend<
int>(
"L1MTS_RPC_AVAILABLE" );
221 attList.extend<
int>(
"L1MTS_RPC_AVAILABLE_ONLINE" );
222 attList.extend<
int>(
"L1MTS_TGC_AVAILABLE" );
223 attList.extend<
int>(
"L1MTS_TGC_AVAILABLE_ONLINE" );
224 attList.extend<
int>(
"L1MTS_RPC_SET_EXT_ID");
225 attList.extend<std::string>(
"L1MTS_RPC_SET_NAME" );
226 attList.extend<
int>(
"L1MTS_TGC_SET_EXT_ID");
227 attList.extend<std::string>(
"L1MTS_TGC_SET_NAME" );
228 attList.extend<
int>(
"L1MTS_RPC_PT1_EXT_ID" );
229 attList.extend<
int>(
"L1MTS_RPC_PT2_EXT_ID" );
230 attList.extend<
int>(
"L1MTS_RPC_PT3_EXT_ID" );
231 attList.extend<
int>(
"L1MTS_RPC_PT4_EXT_ID" );
232 attList.extend<
int>(
"L1MTS_RPC_PT5_EXT_ID" );
233 attList.extend<
int>(
"L1MTS_RPC_PT6_EXT_ID" );
234 query->defineOutput(attList);
236 query->addToOutputList(
"L1MTS_NAME" );
237 query->addToOutputList(
"L1MTS_VERSION" );
238 query->addToOutputList(
"L1MTS_RPC_AVAILABLE" );
239 query->addToOutputList(
"L1MTS_RPC_AVAILABLE_ONLINE" );
240 query->addToOutputList(
"L1MTS_TGC_AVAILABLE" );
241 query->addToOutputList(
"L1MTS_TGC_AVAILABLE_ONLINE" );
242 query->addToOutputList(
"L1MTS_RPC_SET_EXT_ID" );
243 query->addToOutputList(
"L1MTS_RPC_SET_NAME" );
244 query->addToOutputList(
"L1MTS_TGC_SET_EXT_ID" );
245 query->addToOutputList(
"L1MTS_TGC_SET_NAME" );
246 query->addToOutputList(
"L1MTS_RPC_PT1_EXT_ID" );
247 query->addToOutputList(
"L1MTS_RPC_PT2_EXT_ID" );
248 query->addToOutputList(
"L1MTS_RPC_PT3_EXT_ID" );
249 query->addToOutputList(
"L1MTS_RPC_PT4_EXT_ID" );
250 query->addToOutputList(
"L1MTS_RPC_PT5_EXT_ID" );
251 query->addToOutputList(
"L1MTS_RPC_PT6_EXT_ID" );
255 msg() <<
"MuonThresholdSetLoader >> No such threshold set exists : "
256 <<
target.id() << std::endl;
259 throw std::runtime_error(
"MuonThresholdSetLoader >> ThresholdSet not available" );
264 target.setName(
row[
"L1MTS_NAME"].data<std::string>() );
265 target.setVersion(
row[
"L1MTS_VERSION"].data<int>() );
267 target.setRpcAvailable(
static_cast<bool>(
row[
"L1MTS_RPC_AVAILABLE"].data<int>()) );
268 target.setRpcAvailableOnline(
static_cast<bool>(
row[
"L1MTS_RPC_AVAILABLE_ONLINE"].data<int>()) );
269 target.setTgcAvailable(
static_cast<bool>(
row[
"L1MTS_TGC_AVAILABLE"].data<int>()) );
270 target.setTgcAvailableOnline(
static_cast<bool>(
row[
"L1MTS_TGC_AVAILABLE_ONLINE"].data<int>()) );
272 target.setRpcSetId(
row[
"L1MTS_RPC_SET_EXT_ID"].data<int>() );
273 target.setTgcSetId(
row[
"L1MTS_TGC_SET_EXT_ID"].data<int>() );
275 target.setRpcSetName(
row[
"L1MTS_RPC_SET_NAME"].data<std::string>() );
276 target.setTgcSetName(
row[
"L1MTS_TGC_SET_NAME"].data<std::string>() );
278 target.setRpcPt1Id(
row[
"L1MTS_RPC_PT1_EXT_ID"].data<int>() );
279 target.setRpcPt2Id(
row[
"L1MTS_RPC_PT2_EXT_ID"].data<int>() );
280 target.setRpcPt3Id(
row[
"L1MTS_RPC_PT3_EXT_ID"].data<int>() );
281 target.setRpcPt4Id(
row[
"L1MTS_RPC_PT4_EXT_ID"].data<int>() );
282 target.setRpcPt5Id(
row[
"L1MTS_RPC_PT5_EXT_ID"].data<int>() );
283 target.setRpcPt6Id(
row[
"L1MTS_RPC_PT6_EXT_ID"].data<int>() );
288 }
catch(
const coral::SchemaException&
e ) {
289 msg() <<
"MuonThresholdSetLoader >> SchemaException: "
290 <<
e.what() << std::endl;
294 msg() <<
"MuonThresholdSetLoader >> Standard C++ exception: " <<
e.what() << std::endl;
298 msg() <<
"MuonThresholdSetLoader >> unknown C++ exception" << std::endl;
303 msg() <<
"Schema version " <<
schema <<
" too old, don't load MuonThresholdSet" << std::endl;
304 target = MuonThresholdSet();
◆ loadAll()
Definition at line 38 of file MuonThresholdSetLoader.cxx.
40 std::vector<TrigConf::MuonThresholdSet> vSets;
46 std::vector<int> sm_keys;
47 std::vector<std::string>
alias;
48 std::vector<bool> def;
50 msg() <<
"Load all sm keys from trigger_alias table." << std::endl;
51 coral::ITable&
table =
m_session.nominalSchema().tableHandle(
"TRIGGER_ALIAS");
53 query->setRowCacheSize( 5 );
57 attList.extend<
int>(
"TAL_SUPER_MASTER_TABLE_ID" );
58 attList.extend<std::string>(
"TAL_TRIGGER_ALIAS" );
59 attList.extend<
int>(
"TAL_DEFAULT" );
60 query->defineOutput(attList);
62 query->addToOutputList(
"TAL_SUPER_MASTER_TABLE_ID" );
63 query->addToOutputList(
"TAL_TRIGGER_ALIAS" );
64 query->addToOutputList(
"TAL_DEFAULT" );
69 sm_keys.push_back(
row[
"TAL_SUPER_MASTER_TABLE_ID"].data<int>());
70 alias.push_back(
row[
"TAL_TRIGGER_ALIAS"].data<std::string>());
71 def.push_back(
static_cast<bool>(
row[
"TAL_DEFAULT"].data<int>()));
74 for(
size_t i = 0;
i<sm_keys.size(); ++
i) {
76 msg() <<
"Found sm_key " << sm_keys[
i] <<
" alias '" <<
alias[
i]
77 <<
"' default " << def[
i] << std::endl;
82 if ( !this->
load( muons ) ) {
83 msg() <<
"Muon threshold set for sm key "
84 << sm_keys[
i] <<
" not available" << std::endl;
86 }
catch(std::bad_cast& ex) {
87 msg() <<
" Failed casting : " << ex.what();
89 vSets.push_back(muons);
94 }
catch(
const coral::SchemaException&
e ) {
95 msg() <<
"MuonThresholdSetLoader >> SchemaException: "
96 <<
e.what() << std::endl;
99 msg() <<
"MuonThresholdSetLoader >> Standard C++ exception: " <<
e.what() << std::endl;
102 msg() <<
"MuonThresholdSetLoader >> unknown C++ exception" << 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;
◆ 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.
◆ 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: