Commit b42735bb authored by Catrin Bernius's avatar Catrin Bernius Committed by Graeme Stewart
Browse files

ATR-10352: fix in obtaining max thresholds, output level set to INFO for...

ATR-10352: fix in obtaining max thresholds, output level set to INFO for L1CaloThrDef check (TrigConfStorage-03-00-96)

	* L1CaloThrDef: obtaining max thr according to l1Version now
	* reduced output level to info for missing thresholds (ATR-10352)
	* TrigConfStorage-03-00-96

2015-03-16  Werner Wiedenmann  <Werner.Wiedenmann@cern.ch>
	* replace include "L1CommonCore/CTPdataformatVersion.h" with "CTPfragment/CTPdataformatVersion.h"
        * TrigConfStorage-03-00-95

2015-03-13 Joerg Stelzer
	* Loading of clock of topo thresholds was missing
	* CompMenu script simplified (needed to work with topo menu)
	* TrigConfStorage-03-00-94

2015-03-07 Joerg Stelzer
	* Fix Random loader (cuts were wrongly loaded)
	* L1Topo loader: fix loading of default values for parameters and inputs
	* TrigConfStorage-03-00-93

2015-03-03  Frank Winklmeier  <fwinkl@cern>
	* src/L1TopoMenuLoader.cxx: print L1Topo menu once loaded
...
(Long ChangeLog diff - truncated)
parent 9044e403
......@@ -22,7 +22,7 @@ use TrigConfL1Data TrigConfL1Data-* Trigger/TrigConfiguration
use TrigConfHLTData TrigConfHLTData-* Trigger/TrigConfiguration
private
use L1CommonCore L1CommonCore-* Trigger/TrigT1
use TDAQCPolicyExt v* TDAQCPolicy
use TrigConfJobOptData TrigConfJobOptData-* Trigger/TrigConfiguration
use L1TopoConfig L1TopoConfig-* Trigger/TrigT1/L1Topo
end_private
......
......@@ -34,40 +34,6 @@ class CompareL1TopoXML(CompareMenuXML):
if self.exlusionset=='default':
pass
elif self.exlusionset=='cool':
# these things are not stored in COOL
self.exclFromCmpList = ['Deadtime','MuctpiInfo','Random','PrescaledClock','Cable','PrioritySet', 'TriggerCounterList']
self.ignoreAttr['LVL1Config'] = ['id', 'name', 'version']
self.ignoreAttr['PrescaleSet'] = ['name', 'version']
self.ignoreAttr['Prescale'] = ['n', 'm', 'd', 'N', 'M', 'D']
self.ignoreAttr['TriggerMenu'] = ['name']
self.ignoreAttr['TriggerItem'] = ['id', 'trigger_type', 'definition', 'comment']
self.ignoreAttr['TriggerThreshold'] = ['id', 'bitnum']
self.ignoreAttr['TriggerThresholdValue'] = ['version']
self.ignoreAttr['BunchGroupSet'] = ['version', 'name']
self.ignoreAttr['BunchGroup'] = ['version']
self.ignoreAttr['CaloInfo'] = ['name', 'version', 'global_scale']
elif self.exlusionset=='rtt':
# these things are not stored in COOL
self.exclFromCmpList = ['BunchGroupSet', 'CaloInfo', 'MuctpiInfo', 'PrescaledClock', 'Random', 'Cable', 'TriggerCounterList']
self.ignoreAttr['TriggerItem'] = ['id', 'definition']
self.ignoreAttr['TriggerThreshold'] = ['id', 'active']
self.ignoreAttr['TriggerThresholdValue'] = ['version']
self.ignoreAttr['PrioritySet'] = ['version']
self.ignoreAttr['LVL1Config'] = ['version']
elif self.exlusionset=='tt':
# these things change when uploading with the TT and downloading with 2XMLApp
self.exclFromCmpList = ['BunchGroupSet', 'PrioritySet']
self.ignoreAttr['LVL1Config'] = ['id']
self.ignoreAttr['CaloInfo'] = ['version']
self.ignoreAttr['Deadtime'] = ['version']
self.ignoreAttr['MuctpiInfo'] = ['version']
self.ignoreAttr['TriggerItem'] = ['definition', 'trigger_type']
self.ignoreAttr['PrescaledClock'] = ['version']
else:
print >>self, "Don't know about comparison environment %s. Should be nothing, 'cool' or 'rtt'" % self.exlusionset
sys.exit(0)
......
......@@ -55,18 +55,30 @@ class CompareMenuXML(object):
def diff(self, doc1, doc2):
return self.comp(doc1, doc2, "")
self.uniqID.update({'document' : 'single'})
self.addContextToNode(doc1, "")
self.addContextToNode(doc2, "")
return self.comp(doc1, doc2)
def addContextToNode(self,node,parentContext):
node.context = parentContext + "." + node.nodeName
#print >> self, "Node %s with context %s" % (node.nodeName,node.context)
node.compfield = self.getCompFieldFromContext(node)
for c in node.childNodes:
self.addContextToNode(c, node.context)
def comp(self, node1, node2, context):
def comp(self, node1, node2):
if self.isOneMissing(node1, node2): return False
self.context = context + "." + node1.nodeName
equal = True
if self.verboseLevel>0:
print >> self, "compare %s with %s" % (node1.nodeName,node2.nodeName)
if node1.compfield == 'single':
print >> self, "compare single %s with %s in context %s" % (node1.nodeName,node2.nodeName, node1.context)
else:
val1 = node1.attributes[node1.compfield].value
val2 = node1.attributes[node2.compfield].value
print >> self, "compare %s (%s) with %s (%s) in context %s" % (node1.nodeName, val1, node2.nodeName, val2, node1.context)
# first compare the node itself
if node1.nodeType==minidom.Node.TEXT_NODE:
# CDATA
......@@ -83,40 +95,42 @@ class CompareMenuXML(object):
pairedElems = self.orderChildren(node1.childNodes, node2.childNodes, childrenType)
for (l,r) in pairedElems:
equal &= self.comp( l, r, self.context )
equal &= self.comp( l, r )
return equal
def cmpNode(self, node1, node2, reqUniq=False):
res = cmp(node1.nodeName,node2.nodeName)
if res!=0: return res
if node1.nodeType==minidom.Node.TEXT_NODE:
return cmp(node1.data,node2.data)
# will check for comparison rule (the field to be used) in uniqID
def getCompFieldFromContext(self, node):
if node.nodeName == "#text" or node.nodeName == "#comment":
return "text"
compField = None
lookfor = self.context + "." + node1.nodeName
lookfor = node.context
for k,f in self.uniqID.items():
if lookfor.endswith(k):
compField = f
break
if not compField:
print >>self, "Don't know how to compare two items of type %s in context %s, will abort" % ( node1.nodeName, self.context )
print >>self, "Don't know how to compare a node of type %s in context %s (was looking for a rule about %s), will abort" % ( node.nodeName, node.context, lookfor )
sys.exit(0)
if compField=='single': return 0
val1 = node1.attributes[compField].value
val2 = node2.attributes[compField].value
return compField
def cmpNode(self, node1, node2, reqUniq=False):
res = cmp(node1.nodeName,node2.nodeName)
if res!=0: return res
if node1.nodeType==minidom.Node.TEXT_NODE:
return cmp(node1.data,node2.data)
if node1.compfield=='single': return 0
val1 = node1.attributes[node1.compfield].value
val2 = node2.attributes[node2.compfield].value
if val1<val2: return -1
if val1>val2: return 1
if reqUniq:
raise RuntimeError, "Two equal nodes %s found with %s = %s" % (node1.nodeName, compField, val1)
raise RuntimeError, "Two equal nodes %s found with %s = %s and %s = %s" % (node1.nodeName, node1.compfield, val1, node2.compfield, val2 )
else:
return 0
......@@ -167,6 +181,9 @@ class CompareMenuXML(object):
def compAttr(self, node1, node2):
if node1.nodeName!=node2.nodeName:
raise RuntimeError, "Comparing attributes of two different element classes %s and %s" % (node1.nodeName, node2.nodeName)
if self.verboseLevel>2:
if node1.attributes: print "Attribute 1",node1.attributes.items()
if node2.attributes: print "Attribute 2",node2.attributes.items()
nodeName = node1.nodeName
equal = True
allAttr = []
......@@ -185,11 +202,13 @@ class CompareMenuXML(object):
print >> self, "DIFF ATTR: %s: attribute '%s' exists only in document file 1 (%s)" % (nodeName, str(a), node1.attributes[a].value)
equal=False
continue
if self.verboseLevel>2:
print "Attribute %s : %s vs. %s" % (a, node1.attributes[a].value, node2.attributes[a].value)
if node1.attributes[a].value != node2.attributes[a].value:
if self.uniqID[node1.nodeName] == 'single':
if node1.compfield == 'single':
print >> self, "DIFF ATTR: %s: different '%s' (%s != %s)" % (nodeName,str(a), node1.attributes[a].value, node2.attributes[a].value)
else:
print >> self, "DIFF ATTR: %s %s: different '%s' (%s != %s)" % (nodeName, node1.attributes[self.uniqID[node1.nodeName]].value, str(a), node1.attributes[a].value, node2.attributes[a].value)
print >> self, "DIFF ATTR: %s %s: different '%s' (%s != %s)" % (nodeName, node1.attributes[node1.compfield].value, str(a), node1.attributes[a].value, node2.attributes[a].value)
equal=False
return equal
......
......@@ -703,7 +703,7 @@ private:
class L1CaloThrDef : public TrigConfTest {
public:
L1CaloThrDef()
: TrigConfTest("L1CaloDefined", "Check if all L1 calo thresholds are defined", WARNING),
: TrigConfTest("L1CaloDefined", "Check if all L1 calo thresholds are defined", INFO),
m_missingThresholds("")
{}
......@@ -711,27 +711,32 @@ public:
virtual void execute(const Exc_t&) {
if ( !m_ctp ) return;
unsigned int em_max = L1DataDef::typeConfig(L1DataDef::EM).max; // this is actually em+tau
unsigned int tau_max = L1DataDef::max_TH_Threshold_Number();
int m_l1Version = m_ctp->menu().thresholdConfig().l1Version();
L1DataDef::setMaxThresholdsFromL1Version(m_l1Version);
//L1DataDef::printMaxThresholds();
unsigned int em_max = L1DataDef::typeConfig(L1DataDef::EM).max;
unsigned int tau_max = L1DataDef::typeConfig(L1DataDef::TAU).max;
unsigned int jet_max = L1DataDef::typeConfig(L1DataDef::JET).max;
unsigned int jf_max = L1DataDef::max_JF_Threshold_Number();
unsigned int jb_max = L1DataDef::max_JB_Threshold_Number();
unsigned int te_max = L1DataDef::max_TE_Threshold_Number();
unsigned int xe_max = L1DataDef::max_XE_Threshold_Number();
unsigned int je_max = L1DataDef::max_JE_Threshold_Number();
unsigned int xs_max = L1DataDef::max_XS_Threshold_Number();
unsigned int jf_max = L1DataDef::typeConfig(L1DataDef::JF).max; //max_JF_Threshold_Number();
unsigned int jb_max = L1DataDef::typeConfig(L1DataDef::JB).max; //ymax_JB_Threshold_Number();
unsigned int te_max = L1DataDef::typeConfig(L1DataDef::TE).max; //max_TE_Threshold_Number();
unsigned int xe_max = L1DataDef::typeConfig(L1DataDef::XE).max; //max_XE_Threshold_Number();
unsigned int je_max = L1DataDef::typeConfig(L1DataDef::JE).max; //max_JE_Threshold_Number();
unsigned int xs_max = L1DataDef::typeConfig(L1DataDef::XS).max; //max_XS_Threshold_Number();
INITTHR(em)
INITTHR(tau)
INITTHR(jet)
INITTHR(jf)
INITTHR(jb)
INITTHR(te)
INITTHR(te)
INITTHR(xe)
INITTHR(je)
INITTHR(xs)
for(const TrigConf::TriggerThreshold* thr : m_ctp->menu().thresholdConfig().thresholdVector() ) {
SUBTHR(em)
for(const TrigConf::TriggerThreshold* thr : m_ctp->menu().thresholdConfig().thresholdVector() ) {
SUBTHR(em)
SUBTHR(tau)
SUBTHR(jet)
SUBTHR(jf)
......@@ -740,13 +745,8 @@ public:
SUBTHR(xe)
SUBTHR(je)
SUBTHR(xs) {};
if(thr->type()==L1DataDef::tauType()) {
em--;
emList += thr->name() + ", ";
}
}
if(tau>0) tau=0; // it is OK if there are less than tau_max tau-thresholds, as long as tau+em == em_max
CHECKTHR(em);
CHECKTHR(tau);
......@@ -765,7 +765,7 @@ public:
ERRORTHR(jet);
ERRORTHR(jf);
ERRORTHR(jb);
ERRORTHR(te);
ERRORTHR(te); //for now disabled
ERRORTHR(xe);
ERRORTHR(je);
ERRORTHR(xs);
......
......@@ -31,14 +31,20 @@ bool TrigConf::L1TopoMenuLoader::load( TXC::L1TopoMenu& tcaTarget ) {
TRG_MSG_INFO("Not loading L1 TopoMenu from a run 1 database");
return true;
}
TRG_MSG_INFO("Loading L1 TopoMenu");
TRG_MSG_INFO("Loading L1 TopoMenu with SMK " << tcaTarget.getSMK());
startSession();
loadTopoAlgos(tcaTarget);
commitSession();
if(msg().level() <= TrigConf::MSGTC::INFO)
tcaTarget.print();
} catch( const std::exception& e ) {
TRG_MSG_ERROR("L1TopoMenuLoader::load >> Standard C++ exception: " << e.what());
} catch( ... ) {
TRG_MSG_ERROR("L1TopoMenuLoader::load >> ... caught ");
}
return 1;
TRG_MSG_INFO( "Loaded L1 TopoMenu with " << tcaTarget.getL1TopoConfigAlgs().size() << " algorithms and "
<< tcaTarget.getL1TopoConfigOutputList().getTriggerLines().size() << " trigger lines");
return true;
}
bool TrigConf::L1TopoMenuLoader::loadTopoAlgos( TXC::L1TopoMenu& tcaTarget) {
......@@ -121,7 +127,7 @@ bool TrigConf::L1TopoMenuLoader::loadTopoAlgos( TXC::L1TopoMenu& tcaTarget) {
} catch( const std::exception& e ) {
TRG_MSG_ERROR("loadTopoAlgos >> Standard C++ exception: " << e.what());
commitSession();
return false;
throw;
}
return true;
}
......@@ -158,11 +164,12 @@ bool TrigConf::L1TopoMenuLoader::loadAlgInput( TXC::L1TopoConfigAlg& tcaTarget,
string tai_name = row0["TAI.TAI_NAME"].data<string>();
string tai_value = row0["TAI.TAI_VALUE"].data<string>();
int tai_pos = row0["TAI.TAI_POSITION"].data<int>();
if(tai_pos<0) tai_pos=0; // when position is missing in XML, currently the TT uploads -1 instead of 0
tcaTarget.addInput(tai_name,tai_value,tai_pos);
}
} catch (const exception& e){
TRG_MSG_ERROR("loadAlgInput >> Standard C++ exception: " << e.what());
return false;
throw;
}
return true;
}
......@@ -201,11 +208,13 @@ bool TrigConf::L1TopoMenuLoader::loadAlgRegister( TXC::L1TopoConfigAlg& tcaTarge
long tp_value = row0["TP.TP_VALUE"].data<long>();
int tp_pos = row0["TP.TP_POSITION"].data<int>();
int tp_sel = row0["TP.TP_SELECTION"].data<int>();
if(tp_pos<0) tp_pos=0;
if(tp_sel<0) tp_sel=0;
tcaTarget.addParameter(tp_name,to_string(tp_value),tp_pos, tp_sel);
}
} catch (const exception& e){
TRG_MSG_ERROR("loadAlgRegister >> Standard C++ exception: " << e.what());
return false;
TRG_MSG_ERROR("loadAlgRegister >> Standard C++ exception: " << e.what());
throw;
}
return true;
}
......@@ -246,8 +255,8 @@ bool TrigConf::L1TopoMenuLoader::loadAlgOutput( TXC::L1TopoConfigAlg& tcaTarget,
tcaTarget.addOutput(tao_name,tao_value,ta_bits,tao_bitname, tao_sel);
}
} catch (const exception& e){
TRG_MSG_ERROR("loadAlgOutput >> Standard C++ exception: " << e.what());
return false;
TRG_MSG_ERROR("loadAlgOutput >> Standard C++ exception: " << e.what());
throw;
}
return true;
}
......@@ -333,12 +342,12 @@ bool TrigConf::L1TopoMenuLoader::loadOutputList( TXC::L1TopoMenu& tcaTarget, con
unsigned int tol_fpga = row0["TOLINE.TOL_FPGA"].data<unsigned int>();
unsigned int tol_clock = row0["TOLINE.TOL_CLOCK"].data<unsigned int>();
unsigned int tol_firstbit = row0["TOLINE.TOL_FIRST_BIT"].data<unsigned int>();
tcaTarget.addL1TopoXMLOutput(TXC::OutputListElement(tol_name,tol_algoId,tol_module,tol_fpga,tol_clock,tol_firstbit));
tcaTarget.addL1TopoXMLOutput(TXC::OutputListElement( tol_name, tol_algoId, tol_module, tol_fpga, tol_clock, tol_firstbit));
}
tcaTarget.setTriggerList();
} catch (const exception& e){
TRG_MSG_ERROR("loadOutputList >> Standard C++ exception: " << e.what());
return false;
throw;
}
return true;
}
......@@ -392,7 +401,7 @@ bool TrigConf::L1TopoMenuLoader::loadTopoConfig( TXC::L1TopoMenu& tcaTarget) {
} catch( const std::exception& e ) {
TRG_MSG_ERROR("loadTopoConfig >> Standard C++ exception: " << e.what());
commitSession();
return false;
throw;
}
return true;
}
......
......@@ -17,7 +17,7 @@
//////////////////////////////////////////////////////////////////////
#include "L1CommonCore/CTPdataformatVersion.h"
#include "CTPfragment/CTPdataformatVersion.h"
#include "./PrescaleSetLoader.h"
#include "./DBHelper.h"
......
......@@ -10,6 +10,8 @@
#include <stdexcept>
#include <typeinfo>
#include <boost/lexical_cast.hpp>
using namespace std;
bool TrigConf::RandomLoader::load( Random& rdTarget ) {
......@@ -36,10 +38,10 @@ bool TrigConf::RandomLoader::load( Random& rdTarget ) {
attList.extend<long>( "L1R_RATE1" );
attList.extend<long>( "L1R_RATE2" );
} else {
attList.extend<int>( "L1R_CUT0" );
attList.extend<int>( "L1R_CUT1" );
attList.extend<int>( "L1R_CUT2" );
attList.extend<int>( "L1R_CUT3" );
attList.extend<string>( "L1R_CUT0" );
attList.extend<string>( "L1R_CUT1" );
attList.extend<string>( "L1R_CUT2" );
attList.extend<string>( "L1R_CUT3" );
}
fillQuery(q.get(), attList);
......@@ -63,15 +65,15 @@ bool TrigConf::RandomLoader::load( Random& rdTarget ) {
rdTarget.setRate1( rate1 );
rdTarget.setRate2( rate2 );
} else {
int cut0 = row["L1R_CUT0"].data<int>();
int cut1 = row["L1R_CUT1"].data<int>();
int cut2 = row["L1R_CUT2"].data<int>();
int cut3 = row["L1R_CUT3"].data<int>();
string cut0 = row["L1R_CUT0"].data<string>();
string cut1 = row["L1R_CUT1"].data<string>();
string cut2 = row["L1R_CUT2"].data<string>();
string cut3 = row["L1R_CUT3"].data<string>();
// Fill the object with data
rdTarget.setCut( 0, (uint32_t) cut0 );
rdTarget.setCut( 1, (uint32_t) cut1 );
rdTarget.setCut( 2, (uint32_t) cut2 );
rdTarget.setCut( 3, (uint32_t) cut3 );
rdTarget.setCut( 0, boost::lexical_cast<uint32_t,string>( cut0 ) );
rdTarget.setCut( 1, boost::lexical_cast<uint32_t,string>( cut1 ) );
rdTarget.setCut( 2, boost::lexical_cast<uint32_t,string>( cut2 ) );
rdTarget.setCut( 3, boost::lexical_cast<uint32_t,string>( cut3 ) );
}
if ( cursor.next() ) {
......
......@@ -74,10 +74,10 @@ TrigConf::ReplicaSorter::readConfig() {
// check if the returned host has a .
if (m_hostname.find(".")==std::string::npos) {
m_hostname="unknown";
char cstr_host[HOST_NAME_MAX];
if (gethostname(cstr_host, sizeof(cstr_host))==0) {
m_hostname=std::string(cstr_host);
}
char cstr_host[HOST_NAME_MAX];
if (gethostname(cstr_host, sizeof(cstr_host))==0) {
m_hostname=std::string(cstr_host);
}
}
}
std::cout << "Using machine hostname " << m_hostname << " for DB replica resolution" << std::endl;
......
......@@ -44,9 +44,7 @@ bool TrigConf::ThresholdConfigLoader::load( ThresholdConfig& thrConfig ) {
const unsigned int schema_version_with_zb_fields = 9;
if(verbose())
msg() << "ThresholdConfigLoader: Loading ThresholdConfig object attached to Lvl1 master ID "
<< thrConfig.lvl1MasterTableId() << std::endl;
TRG_MSG_VERBOSE("Loading ThresholdConfig object attached to Lvl1 master ID " << thrConfig.lvl1MasterTableId());
long caloinfoid = 0;
......@@ -129,6 +127,7 @@ bool TrigConf::ThresholdConfigLoader::load( ThresholdConfig& thrConfig ) {
attList.extend<std::string>( "TM2TT.L1TM2TT_CABLE_CONNECTOR" );
attList.extend<int> ( "TM2TT.L1TM2TT_CABLE_START" );
attList.extend<int> ( "TM2TT.L1TM2TT_CABLE_END" );
attList.extend<int> ( "TM2TT.L1TM2TT_CABLE_CLOCK" );
attList.extend<int> ( "TT.L1TT_ID" );
attList.extend<std::string>( "TT.L1TT_NAME" );
attList.extend<int> ( "TT.L1TT_VERSION" );
......@@ -196,8 +195,10 @@ bool TrigConf::ThresholdConfigLoader::load( ThresholdConfig& thrConfig ) {
tt->setCableConnector(row["TM2TT.L1TM2TT_CABLE_CONNECTOR"].data<std::string>());
tt->setCableStart (row["TM2TT.L1TM2TT_CABLE_START"].data<int>());
tt->setCableEnd (row["TM2TT.L1TM2TT_CABLE_END"].data<int>());
int clock = row["TM2TT.L1TM2TT_CABLE_CLOCK"].data<int>();
if(clock >= 0) {
tt->setClock(clock);
}
tt->setId (row["TT.L1TT_ID"].data<int>());
tt->setName (row["TT.L1TT_NAME"].data<std::string>());
tt->setVersion(row["TT.L1TT_VERSION"].data<int>());
......@@ -208,7 +209,7 @@ bool TrigConf::ThresholdConfigLoader::load( ThresholdConfig& thrConfig ) {
tt->setBitnum(row["TT.L1TT_BITNUM"].data<int>());
tt->setInput ( (thrtype=="TOPO" || thrtype=="ALFA") ? "ctpcore" : "ctpin" );
TRG_MSG_DEBUG("ThresholdConfigLoader loading threshold with ID = " << tt->id() << " for MenuId = " << menuid << ": ");
TRG_MSG_VERBOSE("ThresholdConfigLoader loading threshold with ID = " << tt->id() << " for MenuId = " << menuid << ": ");
}
if(tt->type() == L1DataDef::rndmType() ||
......@@ -330,6 +331,7 @@ bool TrigConf::ThresholdConfigLoader::load( ThresholdConfig& thrConfig ) {
attList1.extend<std::string>( "TM2TT.L1TM2TT_CABLE_CONNECTOR" );
attList1.extend<int> ( "TM2TT.L1TM2TT_CABLE_START" );
attList1.extend<int> ( "TM2TT.L1TM2TT_CABLE_END" );
attList1.extend<int> ( "TM2TT.L1TM2TT_CABLE_CLOCK" );
attList1.extend<int> ( "TT.L1TT_ID" );
attList1.extend<std::string>( "TT.L1TT_NAME" );
attList1.extend<int> ( "TT.L1TT_VERSION" );
......@@ -389,6 +391,11 @@ bool TrigConf::ThresholdConfigLoader::load( ThresholdConfig& thrConfig ) {
tt->setCableConnector(row["TM2TT.L1TM2TT_CABLE_CONNECTOR"].data<std::string>());
tt->setCableStart (row["TM2TT.L1TM2TT_CABLE_START"].data<int>());
tt->setCableEnd (row["TM2TT.L1TM2TT_CABLE_END"].data<int>());
int clock = row["TM2TT.L1TM2TT_CABLE_CLOCK"].data<int>();
if(clock >= 0) {
tt->setClock(clock);
}
tt->setId (row["TT.L1TT_ID"].data<int>());
tt->setName (row["TT.L1TT_NAME"].data<std::string>());
tt->setVersion(row["TT.L1TT_VERSION"].data<int>());
......@@ -411,8 +418,7 @@ bool TrigConf::ThresholdConfigLoader::load( ThresholdConfig& thrConfig ) {
tt->setZBSeedingThresholdName (seed);
tt->setZBSeedingThresholdMulti(seed_multi);
TRG_MSG_DEBUG("ThresholdConfigLoader loading threshold with ID = "
<< tt->id() << " for MenuId = " << menuid << ": ");
TRG_MSG_VERBOSE("ThresholdConfigLoader loading threshold with ID = " << tt->id() << " for MenuId = " << menuid << ": ");
//tt->setNumberofValues(numberofvalues);
// trigger thresholds sorted by type
thrConfig.addTriggerThreshold(tt);
......
......@@ -10,7 +10,7 @@
#include "CoralBase/Attribute.h"
#include "CoralBase/AttributeList.h"
#include "L1CommonCore/CTPdataformatVersion.h"
#include "CTPfragment/CTPdataformatVersion.h"
#include "TrigConfL1Data/HelperFunctions.h"
#include "TrigConfL1Data/PIT.h"
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment