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

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

#include <MenuLoader.h>

Inheritance diagram for TrigConf::MenuLoader:
Collaboration diagram for TrigConf::MenuLoader:

Classes

struct  ThrInfo
 

Public Types

enum  ENV {
  ALL, CTP, CTPOnl, HLT,
  COOLL1, COOLHLT, L1Simu
}
 

Public Member Functions

 MenuLoader (StorageMgr &sm, coral::ISessionProxy &session)
 constructor More...
 
virtual ~MenuLoader () override=default
 destructor More...
 
virtual bool load (Menu &data) override
 
virtual void setEnv (ENV env) 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 loadMenuAttributes (TrigConf::Menu &menu)
 
void loadCaloInfo (TrigConf::Menu &menu)
 
void loadThresholds (TrigConf::Menu &menu)
 
void loadPIT (TrigConf::Menu &menu)
 
void loadItems (TrigConf::Menu &menu)
 
void loadMonitoring (TrigConf::Menu &menu)
 
void createTipFromDirectThresholds (TrigConf::Menu &menu)
 
TriggerItemNodeconstructTree (const std::string &def, const std::vector< ThrInfo > &)
 New versions for item definition in string. More...
 
TriggerItemNodeconstructTree (const LogicExpression &def, const std::vector< ThrInfo > &)
 
std::tuple< unsigned int, unsigned int > loadSchemaVersion () const
 get DB schema version and run number More...
 

Private Attributes

ENV m_env {CTP}
 
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 trigger menu configuration.

Definition at line 21 of file MenuLoader.h.

Member Enumeration Documentation

◆ ENV

Enumerator
ALL 
CTP 
CTPOnl 
HLT 
COOLL1 
COOLHLT 
L1Simu 

Definition at line 16 of file IMenuLoader.h.

Constructor & Destructor Documentation

◆ MenuLoader()

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

constructor

Parameters
smreference to storage manager
sessionreference to the database session

Definition at line 29 of file MenuLoader.h.

29  :
30  IMenuLoader(), DBLoader("MenuLoader", sm, session) {}

◆ ~MenuLoader()

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

◆ constructTree() [1/2]

TrigConf::TriggerItemNode * TrigConf::MenuLoader::constructTree ( const LogicExpression def,
const std::vector< ThrInfo > &  thr_infos 
)
private

Definition at line 247 of file MenuLoader.cxx.

247  {
248  TriggerItemNode* top_node=0;
249  const std::vector<std::shared_ptr<LogicExpression>> & sub_logics = def.subLogics();
250 
251  switch (def.state()) {
253  top_node = new TriggerItemNode(TriggerItemNode::OBJ);
254  unsigned int pos = boost::lexical_cast<unsigned int,std::string>(def.element());
255  // find all related information
256  for(ThrInfo ti : thr_infos) {
257  if(ti.thrPos==pos) {
258  top_node->setPosition( pos );
259  top_node->setMultiplicity( ti.thrMult );
260  top_node->setTriggerThreshold( ti.thr );
261  break;
262  }
263  }
264  break;
265  }
266  case LogicExpression::kAND:
268  top_node = new TriggerItemNode(TriggerItemNode::AND);
269  for(auto sl : sub_logics)
270  top_node->addChild( constructTree(*sl, thr_infos) );
271  break;
273  if(sub_logics.size()>0) {
274  top_node = new TriggerItemNode(TriggerItemNode::OR);
275  for(auto sl : sub_logics)
276  top_node->addChild( constructTree(*sl, thr_infos) );
277  }
278  break;
280  top_node = new TriggerItemNode(TriggerItemNode::NOT);
281  for(auto sl : sub_logics)
282  top_node->addChild( constructTree(*sl, thr_infos) );
283  break;
284  }
285 
286  return top_node;
287 }

◆ constructTree() [2/2]

TrigConf::TriggerItemNode * TrigConf::MenuLoader::constructTree ( const std::string &  def,
const std::vector< ThrInfo > &  thr_infos 
)
private

New versions for item definition in string.

Definition at line 227 of file MenuLoader.cxx.

227  {
228  LogicExpression logic(msg());
229  unsigned int n = logic.parse(definition);
230  if ( n <= 0 ) {
231  msg() << "Error parsing item definition : " << definition << std::endl;
232  return 0;
233  }
234  unsigned int size = thr_infos.size();
235  if (size != (n = logic.totalNumberOfElements()) ) {
236  msg() << "Total number of elements are different: "
237  << " input=" << size << ", parsed=" << n << endl;
238  }
239 
240  logic.normalize();
241 
242  return constructTree(logic, thr_infos);
243 }

◆ createTipFromDirectThresholds()

void TrigConf::MenuLoader::createTipFromDirectThresholds ( TrigConf::Menu menu)
private

Definition at line 528 of file MenuLoader.cxx.

528  {
529 
530  // this is only needed as long as the TIPs from the direct input are not in the database
531 
532  unsigned int ntips(0);
533 
534  for(TriggerThreshold * thr : menu.thresholdConfig().getThresholdVector() ) {
535  if(thr->ttype()==L1DataDef::TOPO || thr->ttype()==L1DataDef::ALFA) {
536 
537  const string & conn = thr->cableConnector(); // "CON0", "CON1", "CON2"
538 
539  unsigned int connector = conn[3]-'0';
540  unsigned int cableOffset = 320 + connector * 64;
541  unsigned int cableBit = (unsigned int) thr->cableStart();
542  unsigned int clock = thr->clock();
543  unsigned int tipNumber = 2*cableBit + clock + cableOffset;
544 
545  TIP* tip = new TIP();
546  tip->setThresholdName(thr->name());
547  tip->setSlot(10);
548  tip->setConnector( connector );
549  tip->setTipNumber( tipNumber );
550  tip->setThresholdBit( thr->clock() );
551  tip->setCableBit( thr->cableStart() );
552  tip->setTriggerThresholdId(thr->id() );
553  tip->setThresholdActive(thr->active());
554  tip->setThresholdMapping(thr->mapping());
555  tip->setIsDirect(true);
556  menu.addTip(tip);
557 
558  TRG_MSG_DEBUG("TIP from direct input thresholds " << tip->tipNumber() << " --> " << thr->name());
559 
560  ntips++;
561 
562  }
563  }
564 
565  TRG_MSG_INFO( "Number of TIPs from direct input thresholds " << ntips );
566 
567 }

◆ 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::MenuLoader::load ( Menu data)
overridevirtual

Implements TrigConf::IMenuLoader.

Definition at line 35 of file MenuLoader.cxx.

35  {
36 
37  if(menu.smk()<=0) return false;
38  try {
39  startSession();
40 
42 
44 
46 
47  loadItems(menu);
48 
50 
51  commitSession();
52  }
53  catch( const coral::Exception& e ) {
54  TRG_MSG_ERROR("Caught coral exception: " << e.what());
55  commitSession();
56  throw;
57  }
58  catch( const std::exception& e ) {
59  TRG_MSG_ERROR("Caught std exception: " << e.what());
60  commitSession();
61  throw;
62  }
63  return true;
64 }

◆ loadCaloInfo()

void TrigConf::MenuLoader::loadCaloInfo ( TrigConf::Menu menu)
private

Definition at line 572 of file MenuLoader.cxx.

572  {
573  // load the CaloInfo
575  ci.setSMK(menu.smk());
578  menu.setCaloInfo(ci);
579 }

◆ loadItems()

void TrigConf::MenuLoader::loadItems ( TrigConf::Menu menu)
private

Definition at line 68 of file MenuLoader.cxx.

68  {
69  TRG_MSG_INFO("Loading CTP Items");
70 
71  // to later load internal triggers
72  TriggerThresholdLoader& ttldr = dynamic_cast<TriggerThresholdLoader&>( (dynamic_cast<StorageMgr&>(m_storageMgr))
73  .triggerThresholdLoader() );
74  ttldr.setMenuId(menu.id());
75  ttldr.setLoadCableInfo(false);
76 
77  // at this point the internal triggers are not found via the
78  // TM->TT link, hence load them when needed, and cache them
79  std::map<int,TriggerThreshold*> thresholdNotFoundCache;
80 
81  unique_ptr< coral::IQuery > query( m_session.nominalSchema().newQuery() );
82  query->addToTableList ( "L1_TM_TO_TI", "TM2TI" );
83  query->addToTableList ( "L1_TRIGGER_ITEM", "TI" );
84  query->addToTableList ( "L1_TI_TO_TT", "TI2TT" );
85 
86  // bind list
87  coral::AttributeList bindList;
88  bindList.extend<int>("menuId");
89  bindList[0].data<int>() = menu.id();
90 
91  std::string theCondition = "";
92  theCondition += std::string( " TM2TI.L1TM2TI_TRIGGER_MENU_ID = :menuId" );
93  theCondition += std::string( " AND TM2TI.L1TM2TI_TRIGGER_ITEM_ID = TI.L1TI_ID" );
94  theCondition += std::string( " AND TI2TT.L1TI2TT_TRIGGER_ITEM_ID = TI.L1TI_ID" );
95 
96  query->setCondition( theCondition, bindList );
97 
98  // output data and types
99  coral::AttributeList attList;
100  attList.extend<int> ( "TI.L1TI_ID" );
101  attList.extend<std::string>( "TI.L1TI_NAME" );
102  attList.extend<int> ( "TI.L1TI_VERSION" );
103  if(isRun2()) {
104  attList.extend<int> ( "TI.L1TI_PARTITION" );
105  attList.extend<string> ( "TI.L1TI_MONITOR" );
106  }
107  attList.extend<int> ( "TI.L1TI_CTP_ID" );
108  attList.extend<std::string>( "TI.L1TI_PRIORITY" );
109  attList.extend<std::string>( "TI.L1TI_DEFINITION" );
110  attList.extend<int> ( "TI.L1TI_TRIGGER_TYPE" );
111  attList.extend<int> ( "TI2TT.L1TI2TT_TRIGGER_THRESHOLD_ID" );
112  attList.extend<int> ( "TI2TT.L1TI2TT_POSITION" );
113  attList.extend<int> ( "TI2TT.L1TI2TT_MULTIPLICITY" );
114  fillQuery(query.get(), attList);
115 
116  // the ordering
117  std::string theOrder = "";
118  // to get the correct number of items
119  theOrder += " TI.L1TI_CTP_ID ASC";
120  // to get the correct TI definition
121  theOrder += ", TI2TT.L1TI2TT_POSITION ASC";
122  query->addToOrderList( theOrder );
123 
124  //query->setRowCacheSize(1000);
125  query->setRowCacheSize(500);
126 
127  query->setDistinct();
128 
129  coral::ICursor& cursor = query->execute();
130 
131  // lists to store <ctpId, vector> for later use
132  vector<int> ctpIDs;
133  map<int,vector<ThrInfo> > item_thrInfo;
134 
135  // create the items
136  while (cursor.next()) {
137 
138  const coral::AttributeList& row = cursor.currentRow();
139  int ctpid = row["TI.L1TI_CTP_ID"].data<int>();
140  TriggerItem* item = menu.item(ctpid);
141  if(! item) {
142  item = new TriggerItem();
143  item->setCtpId (ctpid);
144  item->setId (row["TI.L1TI_ID"].data<int>());
145  item->setName (row["TI.L1TI_NAME"].data<string>());
146  item->setVersion (row["TI.L1TI_VERSION"].data<int>());
147  if(isRun2()) {
148  item->setPartition (row["TI.L1TI_PARTITION"].data<int>());
149  string mon = row["TI.L1TI_MONITOR"].data<string>();
150  unsigned short monMask = 0;
151 
152  const short TBP = 0x1;
153  const short TAP = 0x2;
154  const short TAV = 0x4;
155 
156  vector<string> monLfHf;
157  boost::split(monLfHf, mon, boost::is_any_of(":|"));
158  //copy(monLfHf.begin(),monLfHf.end(), ostream_iterator<string>(cout,"\n") );
159 
160  if(monLfHf.size()==4 && monLfHf[0]=="LF" && monLfHf[2]=="HF" && monLfHf[1].size()==3 && monLfHf[3].size()==3) {
161  // LF
162  if( monLfHf[1][2]=='1' ) monMask |= TBP;
163  if( monLfHf[1][1]=='1' ) monMask |= TAP;
164  if( monLfHf[1][0]=='1' ) monMask |= TAV;
165  // HF
166  if( monLfHf[3][2]=='1' ) monMask |= TBP << 3;
167  if( monLfHf[3][1]=='1' ) monMask |= TAP << 3;
168  if( monLfHf[3][0]=='1' ) monMask |= TAV << 3;
169  } else {
170  // this is for the temporary solution
171  if(mon.find("TBP") != string::npos) monMask |= TBP;
172  if(mon.find("TAP") != string::npos) monMask |= TAP;
173  if(mon.find("TAV") != string::npos) monMask |= TAV;
174  }
175  item->setMonitor( monMask );
176  }
177 
178  string priority = row["TI.L1TI_PRIORITY"].data<string>();
179  if(priority=="0" || priority=="HIGH") {
180  item->setComplexDeadtime(0);
181  } else if(priority=="1" || priority=="LOW") {
182  item->setComplexDeadtime(1);
183  }
184  item->setDefinition (row["TI.L1TI_DEFINITION"].data<string>());
185  item->setTriggerType(row["TI.L1TI_TRIGGER_TYPE"].data<int>());
186  menu.addTriggerItem(item);
187  if(verbose()>1)
188  msg() << "MenuLoader: Created Item " << item->name() << " with CTPID " << item->ctpId() << endl;
189  item_thrInfo[ctpid] = vector<ThrInfo>();
190  ctpIDs.push_back(ctpid);
191  }
192 
193  ThrInfo thr_info;
194  thr_info.thrId = row["TI2TT.L1TI2TT_TRIGGER_THRESHOLD_ID"].data<int>();
195  thr_info.thrPos = row["TI2TT.L1TI2TT_POSITION"].data<int>();
196  thr_info.thrMult = row["TI2TT.L1TI2TT_MULTIPLICITY"].data<int>();
197  thr_info.thr = menu.thresholdConfig().findTriggerThreshold(thr_info.thrId);
198  if(thr_info.thr==0) {
199  // load threshold (internal thresholds)
200  thr_info.thr = new TriggerThreshold();
201  thr_info.thr->setId(thr_info.thrId);
202  if ( ! ttldr.load( *thr_info.thr ) ) {
203  msg() << "MenuLoader: Error loading TriggerThreshold " << thr_info.thrId << endl;
204  throw runtime_error( "MenuLoader::loadItems: error loading TriggerThreshold " );
205  }
206  menu.thresholdConfig().addTriggerThreshold(thr_info.thr);
207  }
208  item_thrInfo[ctpid].push_back(thr_info);
209  }
210 
211  // build the item node tree
212  for(int ctpid : ctpIDs) {
213  TriggerItem* titem = menu.findTriggerItem( ctpid );
214  if(verbose()>2) {
215  msg() << "MenuLoader: Number of thresholds for item " << titem->name()
216  << ": " << item_thrInfo[ctpid].size() << " - definition: " << titem->definition() << endl;
217  }
218  // construct the tree of TriggerItemNodes according to
219  // definition and set the thresholds and multiplicities in each
220  // leaf node
221  titem->setTopNode( constructTree(titem->definition(), item_thrInfo[ctpid]) );
222  }
223 }

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

◆ loadMenuAttributes()

void TrigConf::MenuLoader::loadMenuAttributes ( TrigConf::Menu menu)
private

Definition at line 585 of file MenuLoader.cxx.

585  {
586 
587  TRG_MSG_DEBUG("Loading menu data for SMK " << menu.smk());
588 
589  unique_ptr< coral::IQuery > q( m_session.nominalSchema().newQuery() );
590  q->addToTableList ( "SUPER_MASTER_TABLE", "SM" );
591  q->addToTableList ( "L1_MASTER_TABLE", "MT" );
592  q->addToTableList ( "L1_TRIGGER_MENU", "TM" );
593 
594  //Bind list
595  coral::AttributeList bindings;
596  bindings.extend<int>("smk");
597  bindings[0].data<int>() = menu.smk();
598 
599  string condition("");
600  condition += "SM.SMT_ID = :smk";
601  condition += " AND SM.SMT_L1_MASTER_TABLE_ID = MT.L1MT_ID";
602  condition += " AND MT.L1MT_TRIGGER_MENU_ID = TM.L1TM_ID";
603  q->setCondition( condition , bindings );
604 
605  //Define the data types
606  coral::AttributeList attList;
607  attList.extend<int>("TM.L1TM_ID");
608  attList.extend<string>("TM.L1TM_NAME");
609  attList.extend<int>("TM.L1TM_VERSION");
610  attList.extend<int>("MT.L1MT_ID" );
611  fillQuery(q.get(), attList);
612 
613  coral::ICursor& cursor = q->execute();
614  if ( ! cursor.next() ) {
615  TRG_MSG_ERROR("No trigger menu in SMK " << menu.smk());
616  throw runtime_error( "MenuLoader: ERROR trigger menu not available" );
617  }
618 
619  // fill the object with data
620  const coral::AttributeList& row = cursor.currentRow();
621  menu.setId ( row["TM.L1TM_ID"].data<int>() );
622  menu.setName ( row["TM.L1TM_NAME"].data<string>() );
623  menu.setVersion( row["TM.L1TM_VERSION"].data<int>() );
624  menu.thresholdConfig().setLvl1MasterTableId( row["MT.L1MT_ID"].data<int>() );
625 }

◆ loadMonitoring()

void TrigConf::MenuLoader::loadMonitoring ( TrigConf::Menu menu)
private

Definition at line 294 of file MenuLoader.cxx.

294  {
295  if( ! (m_env == MenuLoader::ALL ||
296  m_env == MenuLoader::CTP ||
298  m_env == MenuLoader::COOLL1) ) return;
299 
300  TRG_MSG_DEBUG("Load monitoring counter mapping ");
301 
302  unique_ptr< coral::IQuery > q(m_session.nominalSchema().newQuery());
303  q->addToTableList ( "L1_TM_TO_TT_MON", "TM2TTM" );
304  q->addToTableList ( "L1_TRIGGER_THRESHOLD", "TT" );
305  q->addToTableList ( "L1_TM_TO_TT", "TM2TT" );
306 
307  //Bind list
308  coral::AttributeList bindings;
309  bindings.extend<int>("menuId");
310  bindings[0].data<int>() = menu.id();
311 
312  string cond = "";
313  cond += " TM2TTM.L1TM2TTM_TRIGGER_MENU_ID = :menuId";
314  cond += " AND TM2TT.L1TM2TT_TRIGGER_MENU_ID = :menuId";
315  cond += " AND TM2TTM.L1TM2TTM_TRIGGER_THRESHOLD_ID = TM2TT.L1TM2TT_TRIGGER_THRESHOLD_ID";
316  cond += " AND TM2TT.L1TM2TT_TRIGGER_THRESHOLD_ID = TT.L1TT_ID";
317 
318  q->setCondition( cond, bindings );
319 
320  // Output data and types
322  output.extend<std::string>( "TM2TTM.L1TM2TTM_NAME" );
323  output.extend<int> ( "TM2TTM.L1TM2TTM_TRIGGER_THRESHOLD_ID" );
324  output.extend<int> ( "TM2TTM.L1TM2TTM_INTERNAL_COUNTER" );
325  output.extend<int> ( "TM2TTM.L1TM2TTM_MULTIPLICITY" );
326  output.extend<long> ( "TM2TTM.L1TM2TTM_BUNCH_GROUP_ID" );
327  output.extend<std::string>( "TM2TTM.L1TM2TTM_COUNTER_TYPE" );
328  output.extend<std::string>( "TT.L1TT_NAME" );
329  output.extend<int> ( "TT.L1TT_ACTIVE" );
330  output.extend<std::string>( "TM2TT.L1TM2TT_CABLE_CTPIN" );
331  output.extend<std::string>( "TM2TT.L1TM2TT_CABLE_CONNECTOR" );
332  output.extend<int> ( "TM2TT.L1TM2TT_CABLE_START" );
333  output.extend<int> ( "TM2TT.L1TM2TT_CABLE_END" );
334  fillQuery(q.get(), output);
335 
336  q->setRowCacheSize(500);
337 
338  coral::ICursor& cursor = q->execute();
339  ThresholdMonitor* tm = 0;
340 
341  while (cursor.next()) {
342  const coral::AttributeList& row = cursor.currentRow();
343  tm = new ThresholdMonitor();
344 
345  tm->setName ( row["TM2TTM.L1TM2TTM_NAME"].data<string>());
346  tm->setThresholdId ( row["TM2TTM.L1TM2TTM_TRIGGER_THRESHOLD_ID"].data<int>());
347  tm->setInternalCounter( row["TM2TTM.L1TM2TTM_INTERNAL_COUNTER"].data<int>());
348  tm->setMultiplicity ( row["TM2TTM.L1TM2TTM_MULTIPLICITY"].data<int>());
349  tm->setBunchGroupId ( row["TM2TTM.L1TM2TTM_BUNCH_GROUP_ID"].data<long>());
350  tm->setCounterType ( row["TM2TTM.L1TM2TTM_COUNTER_TYPE"].data<string>());
351  tm->setThresholdName ( row["TT.L1TT_NAME"].data<string>());
352  tm->setThresholdActive( row["TT.L1TT_ACTIVE"].data<int>());
353 
354  string slotString = row["TM2TT.L1TM2TT_CABLE_CTPIN"].data<std::string>();
355  uint16_t slot = slotString[4]-'0'; // "SLOT7" -> 7
356  if(slot<7 || slot>9) {
357  TRG_MSG_ERROR("Unknown CTPIN string '" << slotString << "'");
358  throw runtime_error( "MenuLoader (ThresholdMonitor): Error loading Monitoring counters " );
359  }
360  tm->setCtpinSlot(slot);
361 
362  string conString = row["TM2TT.L1TM2TT_CABLE_CONNECTOR"].data<std::string>();
363  uint16_t con = conString[3]-'0'; // "CON2" -> 2
364  if(con>3) {
365  TRG_MSG_ERROR("Unknown CTPIN connector string '" << conString << "'");
366  throw runtime_error( "MenuLoader (ThresholdMonitor): Error loading Monitoring counters " );
367  }
368  tm->setCtpinConnector(con);
369  tm->setThresholdStartBit(row["TM2TT.L1TM2TT_CABLE_START"].data<int>());
370  tm->setThresholdEndBit (row["TM2TT.L1TM2TT_CABLE_END"].data<int>());
371  menu.addThresholdMonitor(tm);
372  }
373 
374 }

◆ loadPIT()

void TrigConf::MenuLoader::loadPIT ( TrigConf::Menu menu)
private

Definition at line 411 of file MenuLoader.cxx.

411  {
412  if( ! (m_env == MenuLoader::ALL ||
414  m_env == MenuLoader::COOLL1) ) return;
415 
416  set<int> tipNumbersUsed;
417 
418 
419  unique_ptr< coral::IQuery > q( m_session.nominalSchema().newQuery() );
420  q->addToTableList ( "L1_TM_TO_TT", "TM2TT" );
421  q->addToTableList ( "L1_PITS", "PITS" );
422 
423  //Bind list
424  coral::AttributeList bindings;
425  bindings.extend<int>("menuId");
426  bindings[0].data<int>() = menu.id();
427 
428  std::string cond("TM2TT.L1TM2TT_TRIGGER_MENU_ID = :menuId");
429  cond += " AND PITS.L1PIT_TM_TO_TT_ID = TM2TT.L1TM2TT_ID";
430  q->setCondition( cond, bindings );
431 
432  // should not be necessary, however currently the TriggerTool uploads identical copies in some cases
433  q->setDistinct();
434 
435  // Output data and types
436  coral::AttributeList attList;
437  attList.extend<int>( "TM2TT.L1TM2TT_TRIGGER_THRESHOLD_ID" );
438  attList.extend<int>( "TM2TT.L1TM2TT_ID" );
439  attList.extend<int>( "PITS.L1PIT_PIT_NUMBER" );
440  attList.extend<int>( "PITS.L1PIT_THRESHOLD_BIT" );
441  fillQuery(q.get(), attList);
442 
443  uint npits(0), ntips(0);
444 
445  coral::ICursor& cursor = q->execute();
446  while (cursor.next()) {
447  const coral::AttributeList& row = cursor.currentRow();
448 
449  int ttid = row["TM2TT.L1TM2TT_TRIGGER_THRESHOLD_ID"].data<int>();
450  int tmtott = row["TM2TT.L1TM2TT_ID"].data<int>();
451  int tipnum = row["PITS.L1PIT_PIT_NUMBER"].data<int>();
452  int bitnum = row["PITS.L1PIT_THRESHOLD_BIT"].data<int>();
453 
454  TriggerThreshold* tt = menu.thresholdConfig().findTriggerThreshold(ttid);
455 
456 
457  string slotString = tt->cableCtpin();
458  uint16_t slot = 0;
459  if( boost::iequals( slotString, "CTPCORE" ) ) {
460  slot = 10;
461  } else {
462  slot = slotString[4]-'0'; // "SLOT7" -> (uint)7
463  }
464  if(slot<7 || slot>10) {
465  TRG_MSG_ERROR("Unknown CTPIN SLOT '" << slotString << "'");
466  throw runtime_error( "MenuLoader: Error loading PITs " );
467  }
468 
469  string conString = tt->cableConnector();
470  uint16_t con = conString[3]-'0'; // "CON2" -> (uint)2
471  uint16_t conMax = slot==10 ? 2 : 3;
472  if( con > conMax ) {
473  TRG_MSG_ERROR("Unknown CTPIN CONNECTOR '" << conString << "'");
474  throw runtime_error( "MenuLoader: Error loading PITs " );
475  }
476 
477  if(slot!=10) {
478  PIT* pit = new PIT();
479  pit->setThresholdName(tt->name());
480  pit->setCtpinSlot(slot);
481  pit->setCtpinConnector( con );
482  pit->setPitNumber(tipnum);
483  pit->setThresholdBit(bitnum);
484  pit->setCableBit( tt->cableStart() + bitnum );
485  pit->setTmToTtId(tmtott);
486  pit->setTriggerThresholdId(ttid);
487  pit->setThresholdActive(tt->active());
488  pit->setThresholdMapping(tt->mapping());
489  menu.addPit(pit);
490  npits++;
491  }
492 
493  // this is for early menus
494  if(tipNumbersUsed.count(tipnum) > 0) {
495  tipnum = tipnum + 160;
496  } else {
497  tipNumbersUsed.insert(tipnum);
498  }
499 
500  TIP* tip = new TIP();
501  tip->setThresholdName(tt->name());
502  tip->setSlot(slot);
503  tip->setConnector( con );
504  tip->setTipNumber(tipnum);
505  tip->setClock( tipnum % 2 );
506  tip->setThresholdBit(bitnum);
507  tip->setCableBit( tt->cableStart() + bitnum );
508  tip->setTmToTtId(tmtott);
509  tip->setTriggerThresholdId(ttid);
510  tip->setThresholdActive(tt->active());
511  tip->setThresholdMapping(tt->mapping());
512  if(slot==10) tip->setIsDirect(true);
513  else tip->setIsDirect(false);
514  menu.addTip(tip);
515  ntips++;
516 
517  TRG_MSG_DEBUG("TIP " << tip->tipNumber() << " --> " << tt->name());
518  }
519 
520  TRG_MSG_INFO("Loaded " << npits << " PITs and " << ntips << " TIPs");
521  TRG_MSG_INFO("Menu has " << menu.pitVector().size() << " PITs and " << menu.tipVector().size() << " TIPs");
522 
523 
524 }

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

◆ loadThresholds()

void TrigConf::MenuLoader::loadThresholds ( TrigConf::Menu menu)
private

Definition at line 387 of file MenuLoader.cxx.

387  {
388  TRG_MSG_INFO("Loading L1 trigger thresholds");
389 
390  ThresholdConfigLoader* thrldr = new ThresholdConfigLoader(m_storageMgr, m_session);
391  thrldr->setLevel(outputLevel());
392  if ( !thrldr->load( menu.thresholdConfig() ) ) {
393  TRG_MSG_ERROR("Error loading ThresholdConfig " << menu.thresholdConfig().id());
394  throw runtime_error( "MenuLoader: Error loading ThresholdConfig " );
395  }
396 
397  loadPIT(menu);
398 
399  if( menu.pitVector().size() == menu.tipVector().size() ) {
400  // this is the case when we
401  // a) have either no direct inputs in the menu (unlikely, but then the next call doesn't matter), or
402  // b) the direct inputs were not filled in the TIP map: this is not the case since TriggerTool-04-01-06
404  }
405 
406 }

◆ 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(); }

◆ setEnv()

virtual void TrigConf::MenuLoader::setEnv ( ENV  env)
inlineoverridevirtual

Implements TrigConf::IMenuLoader.

Definition at line 37 of file MenuLoader.h.

37 { m_env = env; }

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

ENV TrigConf::MenuLoader::m_env {CTP}
private

Definition at line 39 of file MenuLoader.h.

◆ 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
TrigConf::L1DataDef::ALFA
@ ALFA
Definition: L1DataDef.h:37
checkCorrelInHIST.conn
conn
Definition: checkCorrelInHIST.py:25
TrigConf::MenuLoader::constructTree
TriggerItemNode * constructTree(const std::string &def, const std::vector< ThrInfo > &)
New versions for item definition in string.
Definition: MenuLoader.cxx:227
TrigConf::IMenuLoader::L1Simu
@ L1Simu
Definition: IMenuLoader.h:16
TrigConf::DBLoader::verbose
virtual int verbose() const override
Definition: DBLoader.h:57
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
TrigConf::DBLoader::outputLevel
virtual MSGTC::Level outputLevel() const override
Definition: DBLoader.h:40
TrigConf::IMenuLoader::ALL
@ ALL
Definition: IMenuLoader.h:16
TrigConf::TriggerItemNode::OBJ
@ OBJ
Definition: TriggerItemNode.h:24
RunEBWeightsComputation.smk
smk
Definition: RunEBWeightsComputation.py:87
TrigConf::MSGTC::DEBUG
@ DEBUG
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:24
TrigConf::DBLoader::m_storageMgr
StorageMgr & m_storageMgr
reference to the storage manager
Definition: DBLoader.h:67
TrigConf::MenuLoader::loadCaloInfo
void loadCaloInfo(TrigConf::Menu &menu)
Definition: MenuLoader.cxx:572
TrigConf::IMenuLoader::COOLHLT
@ COOLHLT
Definition: IMenuLoader.h:16
TrigConf::fillQuery
void fillQuery(coral::IQuery *q, coral::AttributeList &attList)
Definition: DBHelper.cxx:13
TrigConf::DBLoader::triggerDBSchemaVersion
unsigned int triggerDBSchemaVersion()
Definition: DBLoader.cxx:76
LArG4GenerateShowerLib.condition
condition
Definition: LArG4GenerateShowerLib.py:19
TrigConf::MSGTC::ERROR
@ ERROR
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:27
python.selector.AtlRunQuerySelectorLhcOlc.priority
priority
Definition: AtlRunQuerySelectorLhcOlc.py:611
TrigConf::MenuLoader::loadItems
void loadItems(TrigConf::Menu &menu)
Definition: MenuLoader.cxx:68
TrigConf::TriggerItemNode::OR
@ OR
Definition: TriggerItemNode.h:24
TrigConf::MSGTC::FATAL
@ FATAL
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:28
TrigConf::ICaloInfoLoader::load
virtual bool load(CaloInfo &data)=0
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::L1DataDef::TOPO
@ TOPO
Definition: L1DataDef.h:36
TrigConf::IMenuLoader::HLT
@ HLT
Definition: IMenuLoader.h:16
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
TrigConf::IMenuLoader::CTPOnl
@ CTPOnl
Definition: IMenuLoader.h:16
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
query
Definition: query.py:1
TrigConf::MenuLoader::m_env
ENV m_env
Definition: MenuLoader.h:39
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
menu
make the sidebar many part of the config
Definition: hcg.cxx:551
uint
unsigned int uint
Definition: LArOFPhaseFill.cxx:20
TrigConf::MenuLoader::loadThresholds
void loadThresholds(TrigConf::Menu &menu)
Definition: MenuLoader.cxx:387
TrigConf::MenuLoader::loadPIT
void loadPIT(TrigConf::Menu &menu)
Definition: MenuLoader.cxx:411
TrigConf::MenuLoader::loadMenuAttributes
void loadMenuAttributes(TrigConf::Menu &menu)
Definition: MenuLoader.cxx:585
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:93
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::TrigConfData::setSMK
void setSMK(int id)
Definition: TrigConfData.h:28
beamspotman.n
n
Definition: beamspotman.py:731
TrigConf::DBLoader::m_sessionOwner
bool m_sessionOwner
remember if the loader started the session in the first place
Definition: DBLoader.h:69
TrigConf::CaloInfo
Definition: CaloInfo.h:35
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::TriggerItemNode::AND
@ AND
Definition: TriggerItemNode.h:24
TrigConf::LogicExpression::kNOT
static const char kNOT
NOT of a sub-logic. (only one sub-logic)
Definition: LogicExpression.h:34
TrigConf::LogicExpression::kELEMENT
static const char kELEMENT
simple element.
Definition: LogicExpression.h:35
TrigConf::ILoader::setLevel
virtual void setLevel(MSGTC::Level lvl)=0
Load the configuration data from the configuration source.
run
Definition: run.py:1
TrigConf::LogicExpression::kOR
static const char kOR
OR of sub-logics.
Definition: LogicExpression.h:33
query_example.query
query
Definition: query_example.py:15
TRG_MSG_INFO
#define TRG_MSG_INFO(x)
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStreamMacros.h:27
merge.output
output
Definition: merge.py:17
TrigConf::MenuLoader::loadMonitoring
void loadMonitoring(TrigConf::Menu &menu)
Definition: MenuLoader.cxx:294
TrigConf::StorageMgr::caloInfoLoader
virtual ICaloInfoLoader & caloInfoLoader() override
Definition: StorageMgr.cxx:170
TrigConf::MenuLoader::createTipFromDirectThresholds
void createTipFromDirectThresholds(TrigConf::Menu &menu)
Definition: MenuLoader.cxx:528
item
Definition: ItemListSvc.h:43
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
query_example.cursor
cursor
Definition: query_example.py:21
TrigConf::IMenuLoader::CTP
@ CTP
Definition: IMenuLoader.h:16
TrigConf::IMenuLoader::COOLL1
@ COOLL1
Definition: IMenuLoader.h:16
plotBeamSpotMon.mon
mon
Definition: plotBeamSpotMon.py:67
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
extractSporadic.q
list q
Definition: extractSporadic.py:98
TrigConf::LogicExpression::kAND
static const char kAND
AND of sub-logics.
Definition: LogicExpression.h:32
TrigConf::MsgStreamTC::setLevel
void setLevel(MSGTC::Level lvl)
Set message level of stream.
Definition: Trigger/TrigConfiguration/TrigConfBase/Root/MsgStream.cxx:52
python.DataFormatRates.env
env
Definition: DataFormatRates.py:32
TileDCSDataPlotter.tt
tt
Definition: TileDCSDataPlotter.py:874
TrigConf::IMenuLoader::ENV
ENV
Definition: IMenuLoader.h:16
Trk::split
@ split
Definition: LayerMaterialProperties.h:38
TrigConf::TriggerItemNode::NOT
@ NOT
Definition: TriggerItemNode.h:24
TRG_MSG_DEBUG
#define TRG_MSG_DEBUG(x)
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStreamMacros.h:25
TrigConf::DBLoader::loadL1MasterKey
bool loadL1MasterKey(int SuperMasterKey, int &Lvl1MasterKey)
get l1 master from super master
Definition: DBLoader.cxx:128
TrigConf::LogicExpression::kOPEN
static const char kOPEN
empty logic but may have sub-logics.
Definition: LogicExpression.h:36
TrigConf::MSGTC::WARNING
@ WARNING
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:26