ATLAS Offline Software
Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
TrigConf::CaloInfoLoader Class Referenceabstract

TriggerDB loader of the LVL1 calorimeter trigger configuration. More...

#include <CaloInfoLoader.h>

Inheritance diagram for TrigConf::CaloInfoLoader:
Collaboration diagram for TrigConf::CaloInfoLoader:

Public Member Functions

 CaloInfoLoader (StorageMgr &sm, coral::ISessionProxy &session)
 constructor More...
 
virtual ~CaloInfoLoader () override=default
 destructor More...
 
virtual bool load (CaloInfo &data) override
 
virtual void setLevel (MSGTC::Level lvl)=0
 Load the configuration data from the configuration source. More...
 
virtual MSGTC::Level outputLevel () const =0
 
virtual int verbose () const =0
 
virtual void setVerbose (int v)=0
 
virtual void setLevel (MSGTC::Level lvl) override
 access to output stream More...
 
virtual MSGTC::Level outputLevel () const override
 
void startSession ()
 start session if not already active More...
 
void commitSession ()
 commit session if not already done More...
 
bool loadL1MasterKey (int SuperMasterKey, int &Lvl1MasterKey)
 get l1 master from super master More...
 
bool loadL1MenuKey (int SuperMasterKey, int &Lvl1MenuKey)
 get l1 menu id from super master More...
 
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. More...
 
MsgStreamTCmsg () const
 The standard message stream. More...
 
MsgStreamTCmsg (const MSGTC::Level lvl) const
 The standard message stream. More...
 

Protected Attributes

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

Private Member Functions

void loadMinTobInfo (CaloInfo &data, const std::vector< int > &mintobIDs)
 
void loadIsolationInfo (CaloInfo &data, const std::vector< int > &isoparIDs)
 
std::tuple< unsigned int, unsigned int > loadSchemaVersion () const
 get DB schema version and run number More...
 

Private Attributes

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

Detailed Description

TriggerDB loader of the LVL1 calorimeter trigger configuration.

Definition at line 29 of file CaloInfoLoader.h.

Constructor & Destructor Documentation

◆ CaloInfoLoader()

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

constructor

Parameters
smreference to storage manager
sessionreference to the database session

Definition at line 38 of file CaloInfoLoader.h.

39  : ILoader(), DBLoader("CaloInfoLoader", sm, session) {}

◆ ~CaloInfoLoader()

virtual TrigConf::CaloInfoLoader::~CaloInfoLoader ( )
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 }

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

◆ load()

bool TrigConf::CaloInfoLoader::load ( CaloInfo data)
overridevirtual

Implements TrigConf::ICaloInfoLoader.

Definition at line 55 of file CaloInfoLoader.cxx.

55  {
56 
57  if(data.smk()!=0) {
58  TRG_MSG_INFO("Loading CaloInfo for SMK " << data.smk());
59  } else if( data.id()!=0 ) {
60  TRG_MSG_INFO("Loading CaloInfo with ID = " << data.id());
61  } else {
62  TRG_MSG_ERROR("Can not load CaloInfo which has no id or SMK specified");
63  throw runtime_error("Can not load CaloInfo, no SMK or Id specified");
64  }
65 
66 
67 
68  try {
69  unsigned int schema = triggerDBSchemaVersion();
70 
71  startSession();
72 
73  unique_ptr<coral::IQuery> q(m_session.nominalSchema().newQuery());
74  q->addToTableList( "L1_CALO_INFO", "L1CI" );
75  q->setRowCacheSize( 5 );
76 
77  //Bind list
78  coral::AttributeList bindList;
79  bindList.extend<int>("Id");
80  std::string cond("");
81  if(data.smk()!=0) {
82  q->addToTableList( "SUPER_MASTER_TABLE", "SMT" );
83  q->addToTableList( "L1_MASTER_TABLE", "L1M" );
84  cond = "SMT.SMT_ID = :Id";
85  cond += " AND SMT.SMT_L1_MASTER_TABLE_ID = L1M.L1MT_ID";
86  cond += " AND L1CI.L1CI_ID = L1M.L1MT_CALO_INFO_ID";
87  bindList[0].data<int>() = data.smk();
88  } else {
89  cond = "L1CI.L1CI_ID = :Id";
90  bindList[0].data<int>() = data.id();
91  }
92  q->setCondition( cond, bindList );
93 
94  //Output data and types
95  coral::AttributeList attList;
96  attList.extend<std::string>( "L1CI.L1CI_NAME" );
97  attList.extend<int>( "L1CI.L1CI_VERSION" );
98  if(isRun1()) {
99  attList.extend<std::string>( "L1CI.L1CI_GLOBAL_SCALE" );
100  } else {
101  attList.extend<float>( "L1CI.L1CI_GLOBAL_EM_SCALE" );
102  attList.extend<float>( "L1CI.L1CI_GLOBAL_JET_SCALE" );
103  }
104  if(isRun2() || (isRun1() && schema>=10)) {
105  attList.extend<int>( "L1CI.L1CI_XS_SIGMA_SCALE" );
106  attList.extend<int>( "L1CI.L1CI_XS_SIGMA_OFFSET" );
107  attList.extend<int>( "L1CI.L1CI_XS_XE_MIN" );
108  attList.extend<int>( "L1CI.L1CI_XS_XE_MAX" );
109  attList.extend<int>( "L1CI.L1CI_XS_TESQRT_MIN" );
110  attList.extend<int>( "L1CI.L1CI_XS_TESQRT_MAX" );
111  }
112  if(isRun1()) {
113  for(unsigned int index = 1; index <= 12 ;index++) {
114  std::stringstream helpstring;
115  helpstring << "L1CI.L1CI_JET_WEIGHT" << index;
116  attList.extend<int>( helpstring.str() );
117  }
118  }
119  if(isRun2()) {
120  attList.extend<int>( "L1CI.L1CI_MIN_TOB_EM" );
121  attList.extend<int>( "L1CI.L1CI_MIN_TOB_TAU" );
122  attList.extend<int>( "L1CI.L1CI_MIN_TOB_JETS" );
123  attList.extend<int>( "L1CI.L1CI_MIN_TOB_JETL" );
124  attList.extend<int>( "L1CI.L1CI_ISO_HA_EM" );
125  attList.extend<int>( "L1CI.L1CI_ISO_EM_EM" );
126  attList.extend<int>( "L1CI.L1CI_ISO_EM_TAU" );
127  }
128 
129 
130  fillQuery(q.get(),attList);
131 
132  coral::ICursor& cursor = q->execute();
133 
134  if(!cursor.next()) {
135  if(data.smk()!=0) {
136  TRG_MSG_ERROR("No CaloInfo exists for SMK " << data.smk());
137  } else {
138  TRG_MSG_ERROR("No CaloInfo exists with ID " << data.id());
139  }
140  commitSession();
141  throw std::runtime_error( "CaloInfoLoader >> CaloInfo not available" );
142  }
143 
144  // fill the object with data
145  const coral::AttributeList& row = cursor.currentRow();
146  data.setName ( row["L1CI.L1CI_NAME"].data<std::string>() );
147  data.setVersion ( row["L1CI.L1CI_VERSION"].data<int>() );
148  if(isRun1()) {
149  if(schema <= 6)
150  data.setGlobalScale( row["L1CI.L1CI_GLOBAL_SCALE"].data<float>());
151  else
152  data.setGlobalScale( boost::lexical_cast<float,std::string>(row["L1CI.L1CI_GLOBAL_SCALE"].data<std::string>()));
153  } else {
154  data.setGlobalEmScale( row["L1CI.L1CI_GLOBAL_EM_SCALE"].data<float>() );
155  data.setGlobalJetScale( row["L1CI.L1CI_GLOBAL_JET_SCALE"].data<float>() );
156  }
157  if(isRun1()) {
158  for(unsigned int index = 1; index <= 12 ;index++) {
159  std::stringstream helpstring;
160  helpstring << "L1CI.L1CI_JET_WEIGHT" << index;
161  data.addJetWeight( static_cast<int>(row[helpstring.str()].data<int>()) );
162  }
163  }
164  if(isRun2() || (isRun1() && schema>=10)) {
165  int XSSigmaScale = row["L1CI.L1CI_XS_SIGMA_SCALE"].data<int>();
166  int XSSigmaOffset = row["L1CI.L1CI_XS_SIGMA_OFFSET"].data<int>();
167  int XEmin = row["L1CI.L1CI_XS_XE_MIN"].data<int>();
168  int XEmax = row["L1CI.L1CI_XS_XE_MAX"].data<int>();
169  int TESqrtMin = row["L1CI.L1CI_XS_TESQRT_MIN"].data<int>();
170  int TESqrtMax = row["L1CI.L1CI_XS_TESQRT_MAX"].data<int>();
171  data.metSigParam().setValues( XSSigmaScale, XSSigmaOffset,
172  XEmin, XEmax, TESqrtMin, TESqrtMax);
173  }
174 
175  vector<int> mintobIDs;
176  vector<int> isoparIDs;
177  if(isRun2()) {
178  mintobIDs.push_back(row["L1CI.L1CI_MIN_TOB_EM"].data<int>());
179  mintobIDs.push_back(row["L1CI.L1CI_MIN_TOB_TAU"].data<int>());
180  mintobIDs.push_back(row["L1CI.L1CI_MIN_TOB_JETS"].data<int>());
181  mintobIDs.push_back(row["L1CI.L1CI_MIN_TOB_JETL"].data<int>());
182  isoparIDs.push_back(row["L1CI.L1CI_ISO_HA_EM"].data<int>());
183  isoparIDs.push_back(row["L1CI.L1CI_ISO_EM_EM"].data<int>());
184  isoparIDs.push_back(row["L1CI.L1CI_ISO_EM_TAU"].data<int>());
185  }
186 
187  // check for uniqness of CaloInfo object
188  if ( cursor.next() ) {
189  TRG_MSG_ERROR("More than one CaloInfo exists " );
190  throw std::runtime_error( "Too many CaloInfo objects" );
191  }
192 
193  if(isRun2()) {
194  loadMinTobInfo(data, mintobIDs);
195  loadIsolationInfo(data, isoparIDs);
196  }
197 
198  commitSession();
199  }
200  catch( const coral::Exception& e ) {
201  TRG_MSG_ERROR("Coral::Exception: " << e.what());
202  m_session.transaction().rollback();
203  throw;
204  }
205  return true;
206 }

◆ loadIsolationInfo()

void TrigConf::CaloInfoLoader::loadIsolationInfo ( CaloInfo data,
const std::vector< int > &  isoparIDs 
)
private

Definition at line 280 of file CaloInfoLoader.cxx.

280  {
281 
282  // first get a map of threshold type to isolation parameterizations
283 
284  map<string,vector<int>> m;
285 
286  {
287  unique_ptr<coral::IQuery> q(m_session.nominalSchema().tableHandle( "L1_CALO_ISOLATION" ).newQuery());
288  q->setRowCacheSize( 3 );
289 
290  string cond( "L1CIS_ID IN (" + join(isoparIDs) + ")" );
291  q->setCondition( cond, coral::AttributeList() );
292 
293  coral::AttributeList attList;
294  attList.extend<string>( "L1CIS_THR_TYPE" );
295  attList.extend<int>( "L1CIS_PAR1_ID" );
296  attList.extend<int>( "L1CIS_PAR2_ID" );
297  attList.extend<int>( "L1CIS_PAR3_ID" );
298  attList.extend<int>( "L1CIS_PAR4_ID" );
299  attList.extend<int>( "L1CIS_PAR5_ID" );
300  fillQuery(q.get(),attList);
301 
302  coral::ICursor& cursor = q->execute();
303 
304  while ( cursor.next() ) {
305 
306  const coral::AttributeList& row = cursor.currentRow();
307 
308  string thrtype = row["L1CIS_THR_TYPE"].data<string>();
309 
310  vector<int> & idbytype = m[thrtype];
311 
312  idbytype.push_back( row["L1CIS_PAR1_ID"].data<int>() );
313  idbytype.push_back( row["L1CIS_PAR2_ID"].data<int>() );
314  idbytype.push_back( row["L1CIS_PAR3_ID"].data<int>() );
315  idbytype.push_back( row["L1CIS_PAR4_ID"].data<int>() );
316  idbytype.push_back( row["L1CIS_PAR5_ID"].data<int>() );
317 
318  }
319 
320  }
321 
322  // second get the individual parameterizations
323 
324  {
325  for( const auto & isolation : m ) {
326 
327  unique_ptr<coral::IQuery> q(m_session.nominalSchema().tableHandle( "L1_CALO_ISOPARAM" ).newQuery());
328  q->setRowCacheSize( 5 );
329 
330  const string & thrtype = isolation.first;
331  const vector<int> & isoparIds = isolation.second;
332 
333  string cond( "L1CIP_ID IN (" + join(isoparIds) + ")" );
334  q->setCondition( cond, coral::AttributeList() );
335 
336  coral::AttributeList attList;
337  attList.extend<int>( "L1CIP_ID" );
338  attList.extend<int>( "L1CIP_ISO_BIT" );
339  attList.extend<int>( "L1CIP_OFFSET" );
340  attList.extend<int>( "L1CIP_SLOPE" );
341  attList.extend<int>( "L1CIP_MIN_CUT" );
342  attList.extend<int>( "L1CIP_UPPER_LIMIT" );
343  attList.extend<int>( "L1CIP_ETA_MIN" );
344  attList.extend<int>( "L1CIP_ETA_MAX" );
345  attList.extend<int>( "L1CIP_PRIORITY" );
346  fillQuery(q.get(),attList);
347 
348  coral::ICursor& cursor = q->execute();
349 
350  while ( cursor.next() ) {
351 
352  const coral::AttributeList& row = cursor.currentRow();
353 
354  unsigned int id = (unsigned int)row["L1CIP_ID"].data<int>();
355  unsigned int pos=1; // the position of this paramerization
356  for(unsigned int parId : isoparIds) {
357  if(id==parId) break;
358  ++pos;
359  }
360 
361  int isobit = row["L1CIP_ISO_BIT"].data<int>();
362  int offset = row["L1CIP_OFFSET"].data<int>();
363  int slope = row["L1CIP_SLOPE"].data<int>();
364  int mincut = row["L1CIP_MIN_CUT"].data<int>();
365  int upperlimit = row["L1CIP_UPPER_LIMIT"].data<int>();
366  int etamin = row["L1CIP_ETA_MIN"].data<int>();
367  int etamax = row["L1CIP_ETA_MAX"].data<int>();
368  int priority = row["L1CIP_PRIORITY"].data<int>();
369 
370 
371  if(isobit>0) {
372  if(pos!=(unsigned int)isobit) {
373  TRG_MSG_ERROR(thrtype << " isolation bit " << isobit << " does not match the position it should have " << pos);
374  throw runtime_error("Isolation bit not matching");
375  }
376  data.setIsolation(thrtype, pos, IsolationParam( thrtype, isobit, offset, slope, mincut, upperlimit, etamin, etamax, priority ));
377  } else {
378  data.setIsolation(thrtype, pos, IsolationParam());
379  }
380 
381 
382  }
383 
384  cursor.close();
385  }
386  }
387 }

◆ 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 ) {
156  commitSession();
157  msg() << "DBLoader: C++ exception: " << e.what() << std::endl;
158  throw;
159  }
160  commitSession();
161  return true;
162 }

◆ 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" );
194  commitSession();
195  }
196 
197  const coral::AttributeList& row = cursor.currentRow();
198  Lvl1MenuKey = row["L1MT_TRIGGER_MENU_ID"].data<int>();
199 
200  commitSession();
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 }

◆ loadMinTobInfo()

void TrigConf::CaloInfoLoader::loadMinTobInfo ( CaloInfo data,
const std::vector< int > &  mintobIDs 
)
private

Definition at line 210 of file CaloInfoLoader.cxx.

210  {
211 
212  unique_ptr<coral::IQuery> q(m_session.nominalSchema().tableHandle( "L1_CALO_MIN_TOB" ).newQuery());
213  q->setRowCacheSize( 4 );
214 
215  string cond("L1CMT_ID IN (");
216  bool first=true;
217  for(int id : mintobIDs) {
218  if(first) { first = false; } else { cond += ","; }
219  cond += boost::lexical_cast<string,int>(id);
220  }
221  cond += ")";
222  q->setCondition( cond, coral::AttributeList() );
223 
224  coral::AttributeList attList;
225  attList.extend<int>( "L1CMT_ID" );
226  attList.extend<string>( "L1CMT_THR_TYPE" );
227  attList.extend<int>( "L1CMT_WINDOW" );
228  attList.extend<int>( "L1CMT_PT_MIN" );
229  attList.extend<int>( "L1CMT_ETA_MIN" );
230  attList.extend<int>( "L1CMT_ETA_MAX" );
231  attList.extend<int>( "L1CMT_PRIORITY" );
232  fillQuery(q.get(),attList);
233 
234  coral::ICursor& cursor = q->execute();
235 
236  while ( cursor.next() ) {
237 
238  const coral::AttributeList& row = cursor.currentRow();
239 
240  string thrtype = row["L1CMT_THR_TYPE"].data<string>();
241  int window = row["L1CMT_WINDOW"].data<int>();
242  int ptmin = row["L1CMT_PT_MIN"].data<int>();
243  int etamin = row["L1CMT_ETA_MIN"].data<int>();
244  int etamax = row["L1CMT_ETA_MAX"].data<int>();
245  int priority = row["L1CMT_PRIORITY"].data<int>();
246 
247  if(ptmin<0) {
248  TRG_MSG_ERROR("MinTOBPt " << thrtype << " with pt " << ptmin << " which is less than 0");
249  throw runtime_error("PTMin of MinTOBPt found to be less than 0");
250  }
251  if(priority<0) {
252  TRG_MSG_ERROR("MinTOBPt " << thrtype << " with priority " << priority << " which is less than 0");
253  throw runtime_error("Priority of MinTOBPt found to be less than 0");
254  }
255 
256  MinTOBPt mintob((unsigned int)ptmin, etamin, etamax, (unsigned int) priority);
257 
258  if(thrtype=="EM") {
259  data.setMinTobEM(mintob);
260  } else if(thrtype=="TAU") {
261  data.setMinTobTau(mintob);
262  } else if(thrtype=="JETS") {
263  data.setMinTobJetSmall(mintob);
264  data.setJetWindowSizeSmall(window);
265  } else if(thrtype=="JETL") {
266  data.setMinTobJetLarge(mintob);
267  data.setJetWindowSizeLarge(window);
268  } else {
269  TRG_MSG_ERROR("Unknown threshold type " << thrtype);
270  throw runtime_error("MinTOBPt with unknown threshold type");
271  }
272 
273  }
274 
275 }

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

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

82  {
83  MsgStreamTC* ms = m_msg_tls.get();
84  if (!ms) {
85  ms = new MsgStreamTC(m_name);
86  m_msg_tls.reset(ms);
87  }
88  return *ms;
89  }

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

92  {
93  return msg() << lvl;
94  }

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

71  {
72  if (msg().level() <= lvl) {
73  msg() << lvl;
74  return true;
75  }
76  else {
77  return false;
78  }
79  }

◆ outputLevel() [1/2]

virtual MSGTC::Level TrigConf::ILoader::outputLevel ( ) const
pure virtualinherited

Implemented in TrigConf::DBLoader.

◆ outputLevel() [2/2]

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

Implements TrigConf::ILoader.

Definition at line 40 of file DBLoader.h.

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

◆ setLevel() [1/2]

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

access to output stream

Implements TrigConf::ILoader.

Definition at line 60 of file DBLoader.cxx.

60  {
61  msg().setLevel(lvl);
62 
63  switch(lvl) {
64  case MSGTC::ALWAYS: m_verbose = 5; break;
65  case MSGTC::VERBOSE: m_verbose = 4; break;
66  case MSGTC::DEBUG: m_verbose = 3; break;
67  case MSGTC::INFO: m_verbose = 2; break;
68  case MSGTC::WARNING:
69  case MSGTC::ERROR:
70  case MSGTC::FATAL: m_verbose = 0; break;
71  default: m_verbose = 0;
72  }
73 }

◆ setLevel() [2/2]

virtual void TrigConf::ILoader::setLevel ( MSGTC::Level  lvl)
pure virtualinherited

Load the configuration data from the configuration source.

Parameters
ctpcreference 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

Implements TrigConf::ILoader.

Definition at line 58 of file DBLoader.h.

58 { m_verbose=v; }

◆ setVerbose() [2/2]

virtual void TrigConf::ILoader::setVerbose ( int  v)
pure virtualinherited

Implemented in TrigConf::DBLoader.

◆ 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() [1/2]

virtual int TrigConf::ILoader::verbose ( ) const
pure virtualinherited

Implemented in TrigConf::DBLoader.

◆ verbose() [2/2]

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

◆ m_name

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

Definition at line 67 of file TrigConfMessaging.h.

◆ 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

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.


The documentation for this class was generated from the following files:
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
TRG_MSG_ERROR
#define TRG_MSG_ERROR(x)
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStreamMacros.h:29
query_example.row
row
Definition: query_example.py:24
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
TrigConf::TrigConfMessaging::m_msg_tls
boost::thread_specific_ptr< MsgStreamTC > m_msg_tls
MsgStreamTC instance (a std::cout like with print-out levels)
Definition: TrigConfMessaging.h:66
index
Definition: index.py:1
RunEBWeightsComputation.smk
smk
Definition: RunEBWeightsComputation.py:87
TrigConf::MSGTC::DEBUG
@ DEBUG
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:24
TrigJetMonitorAlgorithm.ptmin
ptmin
Definition: TrigJetMonitorAlgorithm.py:1226
TrigConf::fillQuery
void fillQuery(coral::IQuery *q, coral::AttributeList &attList)
Definition: DBHelper.cxx:13
TrigConf::DBLoader::triggerDBSchemaVersion
unsigned int triggerDBSchemaVersion()
Definition: DBLoader.cxx:76
TrigConf::MSGTC::ERROR
@ ERROR
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:27
python.selector.AtlRunQuerySelectorLhcOlc.priority
priority
Definition: AtlRunQuerySelectorLhcOlc.py:611
TrigConf::MSGTC::FATAL
@ FATAL
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:28
TrigConf::DBLoader::isRun2
bool isRun2()
Definition: DBLoader.cxx:54
python.PyKernel.AttributeList
AttributeList
Definition: PyKernel.py:36
TrigConf::DBLoader::m_session
coral::ISessionProxy & m_session
CORAL interface to database session.
Definition: DBLoader.h:68
TrigConf::DBLoader::m_verbose
int m_verbose
Definition: DBLoader.h:64
TrigConf::DBLoader::DBLoader
DBLoader(StorageMgr &sm, coral::ISessionProxy &session)
constructor
Definition: DBLoader.cxx:30
python.SystemOfUnits.ms
int ms
Definition: SystemOfUnits.py:132
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
CheckTagAssociation.schema
schema
Definition: CheckTagAssociation.py:22
TrigConf::TrigConfMessaging::m_name
std::string m_name
Definition: TrigConfMessaging.h:67
TrigConf::MSGTC::ALWAYS
@ ALWAYS
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:29
TrigConf::MSGTC::VERBOSE
@ VERBOSE
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:23
TrigConf::DBLoader::m_sessionOwner
bool m_sessionOwner
remember if the loader started the session in the first place
Definition: DBLoader.h:69
TrigConf::TrigConfMessaging::msg
MsgStreamTC & msg() const
The standard message stream.
Definition: TrigConfMessaging.h:81
TrigConf::MSGTC::INFO
@ INFO
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:25
calibdata.exception
exception
Definition: calibdata.py:496
TrigConf::MsgStreamTC::level
MSGTC::Level level()
Return message level of stream.
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:53
TrigConf::CaloInfoLoader::loadIsolationInfo
void loadIsolationInfo(CaloInfo &data, const std::vector< int > &isoparIDs)
Definition: CaloInfoLoader.cxx:280
run
Definition: run.py:1
TRG_MSG_INFO
#define TRG_MSG_INFO(x)
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStreamMacros.h:27
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
TrigConf::DBLoader::commitSession
void commitSession()
commit session if not already done
Definition: DBLoader.cxx:45
python.PyAthena.v
v
Definition: PyAthena.py:154
DeMoScan.index
string index
Definition: DeMoScan.py:364
query_example.cursor
cursor
Definition: query_example.py:21
TrigConf::CaloInfoLoader::loadMinTobInfo
void loadMinTobInfo(CaloInfo &data, const std::vector< int > &mintobIDs)
Definition: CaloInfoLoader.cxx:210
DeMoScan.first
bool first
Definition: DeMoScan.py:536
TrigConf::DBLoader::loadSchemaVersion
std::tuple< unsigned int, unsigned int > loadSchemaVersion() const
get DB schema version and run number
Definition: DBLoader.cxx:81
TrigConf::DBLoader::startSession
void startSession()
start session if not already active
Definition: DBLoader.cxx:35
convertTimingResiduals.offset
offset
Definition: convertTimingResiduals.py:71
extractSporadic.q
list q
Definition: extractSporadic.py:98
TrigConf::MsgStreamTC::setLevel
void setLevel(MSGTC::Level lvl)
Set message level of stream.
Definition: Trigger/TrigConfiguration/TrigConfBase/Root/MsgStream.cxx:52
LArCellBinning.etamin
etamin
Definition: LArCellBinning.py:137
TrigConf::DBLoader::isRun1
bool isRun1()
Definition: DBLoader.h:60
TrigConf::DBLoader::loadL1MasterKey
bool loadL1MasterKey(int SuperMasterKey, int &Lvl1MasterKey)
get l1 master from super master
Definition: DBLoader.cxx:128
TrigConf::MSGTC::WARNING
@ WARNING
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:26