ATLAS Offline Software
Loading...
Searching...
No Matches
TrigConf::HLTChainLoader Class Reference

TriggerDB loader of the HLT signatures. More...

#include <HLTChainLoader.h>

Inheritance diagram for TrigConf::HLTChainLoader:
Collaboration diagram for TrigConf::HLTChainLoader:

Public Member Functions

 HLTChainLoader (StorageMgr &sm, coral::ISessionProxy &session)
 constructor
virtual ~HLTChainLoader () override=default
 destructor
void loadChains (HLTChainList &chainlist)
void loadGroups (HLTChainList &chainlist)
void loadTypes (HLTChainList &chainlist)
void loadStreams (HLTChainList &chainlist)
void loadSignatures (HLTChainList &chainlist)
virtual bool load (HLTFrame &frame)
virtual void setLevel (MSGTC::Level lvl) override
 access to output stream
virtual MSGTC::Level outputLevel () const override
void startSession ()
 start session if not already active
void commitSession ()
 commit session if not already done
bool loadL1MasterKey (int SuperMasterKey, int &Lvl1MasterKey)
 get l1 master from super master
bool loadL1MenuKey (int SuperMasterKey, int &Lvl1MenuKey)
 get l1 menu id from super master
unsigned int triggerDBSchemaVersion ()
virtual int verbose () const override
virtual void setVerbose (int v) override
bool isRun1 ()
bool isRun2 ()
bool msgLvl (const MSGTC::Level lvl) const
 Test the output level.
MsgStreamTCmsg () const
 The standard message stream.
MsgStreamTCmsg (const MSGTC::Level lvl) const
 The standard message stream.
const std::string & getName () const
 name accessor

Protected Attributes

StorageMgrm_storageMgr
 reference to the storage manager
coral::ISessionProxy & m_session
 CORAL interface to database session.
bool m_sessionOwner {false}
 remember if the loader started the session in the first place

Private Member Functions

std::tuple< unsigned int, unsigned int > loadSchemaVersion () const
 get DB schema version and run number

Private Attributes

unsigned int m_smk {0}
unsigned int m_schemaversion {0}
int m_verbose {1}
boost::thread_specific_ptr< MsgStreamTCm_msg_tls
 MsgStreamTC instance (a std::cout like with print-out levels)
std::string m_name

Detailed Description

TriggerDB loader of the HLT signatures.

Definition at line 17 of file HLTChainLoader.h.

Constructor & Destructor Documentation

◆ HLTChainLoader()

TrigConf::HLTChainLoader::HLTChainLoader ( StorageMgr & sm,
coral::ISessionProxy & session )
inline

constructor

Parameters
smreference to storage manager
sessionreference to the database session

Definition at line 25 of file HLTChainLoader.h.

25 :
26 DBLoader("HLTChainLoader", sm, session) {}
DBLoader(StorageMgr &sm, coral::ISessionProxy &session)
constructor
Definition DBLoader.cxx:30

◆ ~HLTChainLoader()

virtual TrigConf::HLTChainLoader::~HLTChainLoader ( )
overridevirtualdefault

destructor

Member Function Documentation

◆ commitSession()

void TrigConf::DBLoader::commitSession ( )
inherited

commit session if not already done

Definition at line 45 of file DBLoader.cxx.

46{
47 if ( m_session.transaction().isActive() && m_sessionOwner) {
48 m_session.transaction().commit();
49 }
50}
bool m_sessionOwner
remember if the loader started the session in the first place
Definition DBLoader.h:69
coral::ISessionProxy & m_session
CORAL interface to database session.
Definition DBLoader.h:68

◆ getName()

const std::string & TrigConf::TrigConfMessaging::getName ( ) const
inlineinherited

name accessor

Returns
the name

Definition at line 101 of file TrigConfMessaging.h.

101 {
102 return m_name;
103 }

◆ isRun1()

bool TrigConf::DBLoader::isRun1 ( )
inlineinherited

Definition at line 60 of file DBLoader.h.

60{ return ! isRun2(); }

◆ isRun2()

bool DBLoader::isRun2 ( )
inherited

Definition at line 54 of file DBLoader.cxx.

54 {
55 const static unsigned int run = std::get<1>(loadSchemaVersion());
56 return run == 2;
57}
std::tuple< unsigned int, unsigned int > loadSchemaVersion() const
get DB schema version and run number
Definition DBLoader.cxx:81

◆ load()

bool TrigConf::HLTChainLoader::load ( HLTFrame & frame)
virtual

Definition at line 22 of file HLTChainLoader.cxx.

22 {
23 m_smk=frame.smk();
24
26 TRG_MSG_INFO("Loading HLT chains");
27
28 HLTChainList& chains = frame.theHLTChainList();
29
30 try {
31 startSession ();
32 loadChains( chains );
33 loadGroups( chains );
34 loadTypes( chains );
35 loadStreams( chains );
36 loadSignatures( chains );
38 }
39 catch( const coral::Exception& e ) {
40 TRG_MSG_ERROR("Coral::Exception: " << e.what());
41 m_session.transaction().rollback();
42 throw;
43 }
44
45 chains.setEFLowerChainCounter();
46
47 return true;
48}
void commitSession()
commit session if not already done
Definition DBLoader.cxx:45
unsigned int triggerDBSchemaVersion()
Definition DBLoader.cxx:76
void startSession()
start session if not already active
Definition DBLoader.cxx:35
void loadStreams(HLTChainList &chainlist)
void loadChains(HLTChainList &chainlist)
void loadTypes(HLTChainList &chainlist)
void loadGroups(HLTChainList &chainlist)
void loadSignatures(HLTChainList &chainlist)

◆ loadChains()

void TrigConf::HLTChainLoader::loadChains ( HLTChainList & chainlist)

Definition at line 52 of file HLTChainLoader.cxx.

52 {
53
54 TRG_MSG_INFO("Loading chains with SMK " << m_smk);
55
56 std::unique_ptr< coral::IQuery > q( m_session.nominalSchema().newQuery() );
57
58 //Set the tables that are used
59 q->addToTableList ( "SUPER_MASTER_TABLE", "SM" );
60 q->addToTableList ( "HLT_MASTER_TABLE", "HM" );
61 q->addToTableList ( "HLT_TRIGGER_MENU", "TM" );
62 q->addToTableList ( "HLT_TM_TO_TC", "TM2TC" );
63 q->addToTableList ( "HLT_TRIGGER_CHAIN", "TC" );
64
65 //Bind list
66 coral::AttributeList bindList;
67 bindList.extend<int>("smid");
68 bindList[0].data<int>() = (int)m_smk;
69
70 string theCondition = "";
71 theCondition += string( " SM.SMT_ID = :smid");
72 theCondition += string( " AND HM.HMT_ID = SM.SMT_HLT_MASTER_TABLE_ID" );
73 theCondition += string( " AND TM.HTM_ID = HM.HMT_TRIGGER_MENU_ID" );
74 theCondition += string( " AND TM.HTM_ID = TM2TC.HTM2TC_TRIGGER_MENU_ID " );
75 theCondition += string( " AND TC.HTC_ID = TM2TC.HTM2TC_TRIGGER_CHAIN_ID" );
76
77 q->setCondition( theCondition, bindList );
78
79 //Output data and types
80 coral::AttributeList attList;
81 attList.extend<long> ( "TC.HTC_ID" );
82 attList.extend<string>( "TC.HTC_NAME" );
83 attList.extend<string>( "TC.HTC_LOWER_CHAIN_NAME" );
84 if(isRun1()) {
85 attList.extend<string>( "TC.HTC_L2_OR_EF" );
86 attList.extend<string>( "TC.HTC_RERUN_PRESCALE" );
87 }
88 attList.extend<int> ( "TC.HTC_CHAIN_COUNTER" );
89 attList.extend<int> ( "TC.HTC_VERSION" );
90 fillQuery(q.get(),attList);
91
92 // the ordering
93 string theOrder = "";
94 if(isRun1()) {
95 theOrder += " TC.HTC_L2_OR_EF DESC, ";
96 }
97 theOrder += " TC.HTC_CHAIN_COUNTER ASC";
98 q->addToOrderList( theOrder );
99
100 // process the query
101 q->setDistinct();
102 coral::ICursor& cursor = q->execute();
103
104 while ( cursor.next() ) {
105 const coral::AttributeList& row = cursor.currentRow();
106
107 long chainId = row["TC.HTC_ID"].data<long>();
108 int counter = row["TC.HTC_CHAIN_COUNTER"].data<int>();
109 int version = row["TC.HTC_VERSION"].data<int>();
110 string name = rmtilde(row["TC.HTC_NAME"].data<string>());
111 string lower_chain_name = rmtilde(row["TC.HTC_LOWER_CHAIN_NAME"].data<string>());
112
113 // level
114 string level = "HLT";
115 if(isRun1()) {
116 level = rmtilde(row["TC.HTC_L2_OR_EF"].data<string>());
117 if(level=="HL") level="HLT";
118 }
119
120 HLTChain* ch = new HLTChain( name, counter, version, level, lower_chain_name, 0, std::vector<HLTSignature*>() );
121
122 // rerun ps from the chain table only in run 1
123 if(isRun1()) {
124 float rerunps = 0;
125 string rerunps_s = rmtilde(row["TC.HTC_RERUN_PRESCALE"].data<string>());
126 std::string_view rerunps_sv = rerunps_s;
127 auto [ptr, ec] = std::from_chars(rerunps_sv.data(), rerunps_sv.data() + rerunps_sv.size(), rerunps, std::chars_format::general);
128 if (ec != std::errc()) {
129 rerunps = 0; // fallback or handle error
130 }
131 if(rerunps>=0)
132 ch->set_rerun_prescale(rerunps);
133 }
134
135 ch->setId(chainId);
136 chainlist.addHLTChain(ch);
137 }
138 cursor.close();
139
140 TRG_MSG_INFO("Loaded " << chainlist.size() << " chains");
141
142}
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
row
Appending html table to final .html summary file.
void fillQuery(coral::IQuery *q, coral::AttributeList &attList)
Definition DBHelper.cxx:13
std::string rmtilde(const std::string &input)
Definition DBHelper.h:24
void * ptr(T *p)
Definition SGImplSvc.cxx:74

◆ loadGroups()

void TrigConf::HLTChainLoader::loadGroups ( HLTChainList & chainlist)

Definition at line 169 of file HLTChainLoader.cxx.

169 {
170
171 std::unique_ptr< coral::IQuery > q( m_session.nominalSchema().newQuery() );
172 string theCondition("");
173 coral::AttributeList bindings, output;
174
175 defineChainSubQuery( q.get(), theCondition, bindings, m_smk, output);
176
177 q->addToTableList ( "HLT_TRIGGER_GROUP", "GR" );
178
179 theCondition += string( " AND GR.HTG_TRIGGER_CHAIN_ID = TM2TC.HTM2TC_TRIGGER_CHAIN_ID" );
180
181 q->setCondition( theCondition, bindings );
182
183 output.extend<string>( "GR.HTG_NAME" );
184
185 fillQuery(q.get(), output);
186
187 q->setDistinct();
188 coral::ICursor& cursor = q->execute();
189
190 uint count(0);
191 while ( cursor.next() ) {
192 ++count;
193 const coral::AttributeList& row = cursor.currentRow();
194 string name = rmtilde(row["TC.HTC_NAME"].data<string>());
195 string grname = rmtilde(row["GR.HTG_NAME"].data<string>());
196 chainlist.chain(name)->addGroup(grname);
197 }
198 cursor.close();
199
200 TRG_MSG_INFO("Loaded " << count << " groups");
201
202}
unsigned int uint
int count(std::string s, const std::string &regx)
count how many occurances of a regx are in a string
Definition hcg.cxx:146
output
Definition merge.py:16

◆ loadL1MasterKey()

bool TrigConf::DBLoader::loadL1MasterKey ( int SuperMasterKey,
int & Lvl1MasterKey )
inherited

get l1 master from super master

Definition at line 128 of file DBLoader.cxx.

128 {
129 try {
130 startSession();
131
132 unique_ptr< coral::IQuery > q( m_session.nominalSchema().tableHandle( "SUPER_MASTER_TABLE").newQuery() );
133 q->setRowCacheSize( 5 );
134
135 //Bind list
136 coral::AttributeList bindings;
137 bindings.extend<int>("smtid");
138 bindings[0].data<int>() = smk;
139 q->setCondition( "SMT_ID = :smtid", bindings );
140
141 //Output data and types
142 coral::AttributeList attList;
143 attList.extend<int>( "SMT_L1_MASTER_TABLE_ID" );
144 fillQuery(q.get(), attList);
145
146 coral::ICursor& cursor = q->execute();
147 if ( ! cursor.next() ) {
148 msg() << "DBLoader: No such SuperMaster key exists " << smk << endl;
149 throw runtime_error( "DBLoader: SuperMasterKey not available" );
150 }
151
152 const coral::AttributeList& row = cursor.currentRow();
153 Lvl1MasterKey = row["SMT_L1_MASTER_TABLE_ID"].data<int>();
154 }
155 catch( const std::exception& e ) {
157 msg() << "DBLoader: C++ exception: " << e.what() << std::endl;
158 throw;
159 }
161 return true;
162}
MsgStreamTC & msg() const
The standard message stream.

◆ 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.

167 {
168 try {
169
170 int l1Master = 0;
171 loadL1MasterKey(SuperMasterKey, l1Master);
172
173 startSession();
174
175 unique_ptr< coral::IQuery > q( m_session.nominalSchema().tableHandle( "L1_MASTER_TABLE").newQuery() );
176 q->setRowCacheSize( 5 );
177
178 //Bind list
179 coral::AttributeList bindings;
180 bindings.extend<int>("l1mtid");
181 bindings[0].data<int>() = l1Master;
182 q->setCondition( "L1MT_ID = :l1mtid" , bindings );
183
184 //Output data and types
185 coral::AttributeList attList;
186 attList.extend<int>( "L1MT_TRIGGER_MENU_ID" );
187 q->defineOutput(attList);
188 q->addToOutputList( "L1MT_TRIGGER_MENU_ID" );
189
190 coral::ICursor& cursor = q->execute();
191 if ( ! cursor.next() ) {
192 msg() << "DBLoader >> No such L1 Master key exists " << l1Master << std::endl;
193 throw std::runtime_error( "DBLoader >> L1MasterKey not available" );
195 }
196
197 const coral::AttributeList& row = cursor.currentRow();
198 Lvl1MenuKey = row["L1MT_TRIGGER_MENU_ID"].data<int>();
199
201
202 }
203 catch( const std::exception& e ) {
204 msg() << "DBLoader >> Standard C++ exception: " << e.what() << std::endl;
205 m_session.transaction().rollback();
206 throw;
207 }
208 return true;
209}
bool loadL1MasterKey(int SuperMasterKey, int &Lvl1MasterKey)
get l1 master from super master
Definition DBLoader.cxx:128

◆ 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.

82{
83 const static auto versions = [&]() -> std::tuple<unsigned int,unsigned int> {
84 bool mySession = false;
85 if ( ! m_session.transaction().isActive() ) {
86 m_session.transaction().start(true);
87 mySession = true;
88 }
89
90 std::unique_ptr< coral::IQuery > q( m_session.nominalSchema().tableHandle( "TRIGGER_SCHEMA").newQuery() );
91 q->setRowCacheSize( 1 );
92
93 //Output data and types
94 coral::AttributeList attList;
95 attList.extend<int>( "TS_ID" );
96 q->defineOutput(attList);
97 q->addToOutputList( "TS_ID" );
98
99 q->addToOrderList("TS_ID desc");
100 coral::ICursor& cursor = q->execute();
101
102 if ( ! cursor.next() ) {
103 TRG_MSG_ERROR("Table TRIGGER_SCHEMA is not filled");
104 if ( mySession ) m_session.transaction().commit();
105 throw std::runtime_error( "DBLoader::loadSchemaVersion() >> Table TRIGGER_SCHEMA is not filled" );
106 }
107
108 const coral::AttributeList& row = cursor.currentRow();
109 const unsigned int triggerDBSchemaVersion = row["TS_ID"].data<int>();
110
111 TRG_MSG_INFO("TriggerDB schema version: " << triggerDBSchemaVersion);
112
113 const unsigned int run = m_session.nominalSchema().existsTable( "ACTIVE_MASTERS" ) ? 2 : 1;
114
115 TRG_MSG_INFO("Database has Run " << run << " schema");
116 TRG_MSG_INFO("Total number of tables : " << m_session.nominalSchema().listTables().size());
117
118 //commitSession();
119 if ( mySession ) m_session.transaction().commit();
120
121 return {triggerDBSchemaVersion, run};
122 }();
123
124 return versions;
125}

◆ loadSignatures()

void TrigConf::HLTChainLoader::loadSignatures ( HLTChainList & chainlist)

Definition at line 294 of file HLTChainLoader.cxx.

294 {
295
296 std::unique_ptr< coral::IQuery > q( m_session.nominalSchema().newQuery() );
297 string theCondition("");
298 coral::AttributeList bindings, output;
299
300 defineChainSubQuery( q.get(), theCondition, bindings, m_smk, output);
301
302 q->addToTableList ( "HLT_TC_TO_TS", "TC2TS" );
303 q->addToTableList ( "HLT_TRIGGER_SIGNATURE", "TS" );
304 q->addToTableList ( "HLT_TS_TO_TE", "TS2TE" );
305 q->addToTableList ( "HLT_TRIGGER_ELEMENT", "TE" );
306
307
308 theCondition += string( " AND TC2TS.HTC2TS_TRIGGER_CHAIN_ID = TC.HTC_ID" );
309 theCondition += string( " AND TC2TS.HTC2TS_TRIGGER_SIGNATURE_ID = TS.HTS_ID" );
310 theCondition += string( " AND TC2TS.HTC2TS_TRIGGER_SIGNATURE_ID = TS2TE.HTS2TE_TRIGGER_SIGNATURE_ID" );
311 theCondition += string( " AND TE.HTE_ID = TS2TE.HTS2TE_TRIGGER_ELEMENT_ID" );
312 theCondition += string( " AND TS2TE.HTS2TE_ELEMENT_COUNTER>=0" ); // counter<0 are for TE's that are only input TEs for a menu
313
314 output.extend<int>( "TC2TS.HTC2TS_SIGNATURE_COUNTER" );
315 output.extend<int>( "TS2TE.HTS2TE_ELEMENT_COUNTER" );
316 output.extend<int>( "TS.HTS_LOGIC" );
317 output.extend<int>( "TE.HTE_ID" );
318 output.extend<string>( "TE.HTE_NAME" );
319 fillQuery(q.get(), output);
320
321 q->setCondition( theCondition, bindings );
322
323 q->setDistinct();
324
325 q->addToOrderList( "TC.HTC_NAME" );
326 q->addToOrderList( "TC2TS.HTC2TS_SIGNATURE_COUNTER" );
327 q->addToOrderList( "TS2TE.HTS2TE_ELEMENT_COUNTER" );
328
329 coral::ICursor& cursor = q->execute();
330
331 uint count(0);
332 while ( cursor.next() ) {
333 ++count;
334
335 const coral::AttributeList& row = cursor.currentRow();
336
337 string chainname = rmtilde(row["TC.HTC_NAME"].data<string>());
338 vector<HLTSignature*>& sig_list = chainlist.chain(chainname)->signatureList();
339
340 unsigned int sig_counter = (unsigned int)row["TC2TS.HTC2TS_SIGNATURE_COUNTER"].data<int>();
341 if( sig_list.size() < sig_counter+1 )
342 sig_list.resize( sig_counter+1, 0 );
343
344 if( sig_list[sig_counter] == 0) {
345 int logic = row["TS.HTS_LOGIC"].data<int>();
346 sig_list[sig_counter] = new HLTSignature(sig_counter, logic, std::vector<HLTTriggerElement*>());
347 sig_list[sig_counter]->set_label( chainname + "_" + std::to_string(sig_counter) );
348 }
349
350 HLTSignature* sig = sig_list[sig_counter];
351 vector<HLTTriggerElement*>& te_list = sig->outputTEs();
352
353 unsigned int te_counter = (unsigned int)row["TS2TE.HTS2TE_ELEMENT_COUNTER"].data<int>();
354 if( te_list.size() < te_counter+1 )
355 te_list.resize( te_counter+1, 0 );
356
357 if( te_list[te_counter] == 0) {
358 int te_id = row["TE.HTE_ID"].data<int>();
359 string te_name = row["TE.HTE_NAME"].data<string>();
360 te_list[te_counter] = new HLTTriggerElement(te_id, te_name);
361 }
362
363 }
364 cursor.close();
365
366 TRG_MSG_INFO("Loaded " << count << " signatures");
367
368 // remove 0 pointers from signature list of each chain to keep old
369 // behavior, would be nicer if 0's were kept and step could be
370 // accessed by index (to be seen)
371 for(HLTChain* ch : chainlist) {
372 vector<HLTSignature*>& s = ch->signatureList();
373 s.erase(remove(s.begin(), s.end(), (HLTSignature*)0), s.end());
374 }
375
376}
DataModel_detail::iterator< DVL > remove(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end, const T &value)
Specialization of remove for DataVector/List.

◆ loadStreams()

void TrigConf::HLTChainLoader::loadStreams ( HLTChainList & chainlist)

Definition at line 244 of file HLTChainLoader.cxx.

244 {
245
246 std::unique_ptr< coral::IQuery > q( m_session.nominalSchema().newQuery() );
247 string theCondition("");
248 coral::AttributeList bindings, output;
249
250 defineChainSubQuery( q.get(), theCondition, bindings, m_smk, output);
251
252 q->addToTableList ( "HLT_TC_TO_TR", "TC2TR" );
253 q->addToTableList ( "HLT_TRIGGER_STREAM", "TR" );
254
255 theCondition += string( " AND TC2TR.HTC2TR_TRIGGER_CHAIN_ID = TC.HTC_ID" );
256 theCondition += string( " AND TC2TR.HTC2TR_TRIGGER_STREAM_ID = TR.HTR_ID" );
257
258 output.extend<string>( "TC2TR.HTC2TR_TRIGGER_STREAM_PRESCALE");
259 output.extend<string>( "TR.HTR_NAME" );
260 output.extend<string>( "TR.HTR_TYPE" );
261 output.extend<int>( "TR.HTR_OBEYLB" );
262
263 fillQuery(q.get(), output);
264
265 q->setCondition( theCondition, bindings );
266
267 q->setDistinct();
268 coral::ICursor& cursor = q->execute();
269
270 uint count(0);
271 while ( cursor.next() ) {
272 ++count;
273 const coral::AttributeList& row = cursor.currentRow();
274 string chainname = rmtilde(row["TC.HTC_NAME"].data<string>());
275 string prescale_str = rmtilde(row["TC2TR.HTC2TR_TRIGGER_STREAM_PRESCALE"].data<string>());
276 string streamname = rmtilde(row["TR.HTR_NAME"].data<string>());
277 string type = rmtilde(row["TR.HTR_TYPE"].data<string>());
278 bool obeyLB = row["TR.HTR_OBEYLB"].data<int>();
279 int prescale = 1;
280 std::string_view prescale_str_view = prescale_str;
281 auto [ptr, ec] = std::from_chars(prescale_str_view.data(), prescale_str_view.data() + prescale_str_view.size(), prescale);
282 if (ec != std::errc()) {
283 prescale = 1;
284 }
285 chainlist.chain(chainname)->addStream( new HLTStreamTag(streamname, type, obeyLB, prescale) );
286 }
287 cursor.close();
288
289 TRG_MSG_INFO("Loaded " << count << " streams");
290}

◆ loadTypes()

void TrigConf::HLTChainLoader::loadTypes ( HLTChainList & chainlist)

Definition at line 208 of file HLTChainLoader.cxx.

208 {
209
210 std::unique_ptr< coral::IQuery > q( m_session.nominalSchema().newQuery() );
211 string theCondition("");
212 coral::AttributeList bindings, output;
213
214 defineChainSubQuery( q.get(), theCondition, bindings, m_smk, output);
215
216 q->addToTableList ( "HLT_TRIGGER_TYPE", "TT" );
217
218 theCondition += string( " AND TT.HTT_TRIGGER_CHAIN_ID = TM2TC.HTM2TC_TRIGGER_CHAIN_ID" );
219
220 q->setCondition( theCondition, bindings );
221
222 output.extend<int>( "TT.HTT_TYPEBIT" );
223
224 fillQuery(q.get(), output);
225
226 q->setDistinct();
227 coral::ICursor& cursor = q->execute();
228
229 uint count(0);
230 while ( cursor.next() ) {
231 ++count;
232 const coral::AttributeList& row = cursor.currentRow();
233 string name = rmtilde(row["TC.HTC_NAME"].data<string>());
234 int triggertype = row["TT.HTT_TYPEBIT"].data<int>();
235 chainlist.chain(name)->triggerTypeList().push_back(new HLTTriggerType(triggertype));
236 }
237 cursor.close();
238
239 TRG_MSG_INFO("Loaded " << count << " trigger types");
240}

◆ 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 86 of file TrigConfMessaging.h.

87 {
88 MsgStreamTC* ms = m_msg_tls.get();
89 if (!ms) {
90 ms = new MsgStreamTC(m_name);
91 m_msg_tls.reset(ms);
92 }
93 return *ms;
94 }
boost::thread_specific_ptr< MsgStreamTC > m_msg_tls
MsgStreamTC instance (a std::cout like with print-out levels)

◆ msg() [2/2]

MsgStreamTC & TrigConf::TrigConfMessaging::msg ( const MSGTC::Level lvl) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 96 of file TrigConfMessaging.h.

97 {
98 return msg() << lvl;
99 }

◆ msgLvl()

bool TrigConf::TrigConfMessaging::msgLvl ( const MSGTC::Level lvl) const
inlineinherited

Test the output level.

Parameters
lvlThe message level to test against
Returns
boolean Indicting if messages at given level will be printed
Return values
trueMessages at level "lvl" will be printed

Definition at line 75 of file TrigConfMessaging.h.

76 {
77 if (msg().level() <= lvl) {
78 msg() << lvl;
79 return true;
80 }
81 else {
82 return false;
83 }
84 }

◆ outputLevel()

virtual MSGTC::Level TrigConf::DBLoader::outputLevel ( ) const
inlineoverridevirtualinherited

Implements TrigConf::ILoader.

Definition at line 40 of file DBLoader.h.

40{ return msg().level(); }

◆ setLevel()

void DBLoader::setLevel ( MSGTC::Level lvl)
overridevirtualinherited

◆ setVerbose()

virtual void TrigConf::DBLoader::setVerbose ( int v)
inlineoverridevirtualinherited

Implements TrigConf::ILoader.

Definition at line 58 of file DBLoader.h.

◆ startSession()

void TrigConf::DBLoader::startSession ( )
inherited

start session if not already active

Definition at line 35 of file DBLoader.cxx.

36{
37 if ( ! m_session.transaction().isActive() ) {
38 //std::cout << "DBLoader: startSession(readonly=true)" << std::endl;
39 bool readOnly = true;
40 m_session.transaction().start(readOnly);
41 m_sessionOwner = true;
42 }
43}

◆ triggerDBSchemaVersion()

unsigned int DBLoader::triggerDBSchemaVersion ( )
inherited

Definition at line 76 of file DBLoader.cxx.

76 {
77 return std::get<0>(loadSchemaVersion());
78}

◆ verbose()

virtual int TrigConf::DBLoader::verbose ( ) const
inlineoverridevirtualinherited

Implements TrigConf::ILoader.

Definition at line 57 of file DBLoader.h.

57{ return m_verbose; }

Member Data Documentation

◆ m_msg_tls

boost::thread_specific_ptr<MsgStreamTC> TrigConf::TrigConfMessaging::m_msg_tls
mutableprivateinherited

MsgStreamTC instance (a std::cout like with print-out levels)

Definition at line 71 of file TrigConfMessaging.h.

◆ m_name

std::string TrigConf::TrigConfMessaging::m_name
privateinherited

Definition at line 72 of file TrigConfMessaging.h.

◆ m_schemaversion

unsigned int TrigConf::HLTChainLoader::m_schemaversion {0}
private

Definition at line 41 of file HLTChainLoader.h.

41{0};

◆ 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.

69{false};

◆ m_smk

unsigned int TrigConf::HLTChainLoader::m_smk {0}
private

Definition at line 40 of file HLTChainLoader.h.

40{0};

◆ m_storageMgr

StorageMgr& TrigConf::DBLoader::m_storageMgr
protectedinherited

reference to the storage manager

Definition at line 67 of file DBLoader.h.

◆ m_verbose

int TrigConf::DBLoader::m_verbose {1}
privateinherited

Definition at line 64 of file DBLoader.h.

64{1};

The documentation for this class was generated from the following files: