40 std::vector<TrigConf::MuonThresholdSet> vSets;
46 std::vector<int> sm_keys;
47 std::vector<std::string> alias;
48 std::vector<bool> def;
50 msg() <<
"Load all sm keys from trigger_alias table." << std::endl;
51 coral::ITable& table =
m_session.nominalSchema().tableHandle(
"TRIGGER_ALIAS");
52 coral::IQuery*
query = table.newQuery();
53 query->setRowCacheSize( 5 );
56 coral::AttributeList attList;
57 attList.extend<
int>(
"TAL_SUPER_MASTER_TABLE_ID" );
58 attList.extend<std::string>(
"TAL_TRIGGER_ALIAS" );
59 attList.extend<
int>(
"TAL_DEFAULT" );
60 query->defineOutput(attList);
62 query->addToOutputList(
"TAL_SUPER_MASTER_TABLE_ID" );
63 query->addToOutputList(
"TAL_TRIGGER_ALIAS" );
64 query->addToOutputList(
"TAL_DEFAULT" );
65 coral::ICursor& cursor =
query->execute();
67 while (cursor.next()) {
68 const coral::AttributeList& row = cursor.currentRow();
69 sm_keys.push_back(row[
"TAL_SUPER_MASTER_TABLE_ID"].
data<int>());
71 def.push_back(
static_cast<bool>(row[
"TAL_DEFAULT"].
data<int>()));
74 for(
size_t i = 0; i<sm_keys.size(); ++i) {
76 msg() <<
"Found sm_key " << sm_keys[i] <<
" alias '" << alias[i]
77 <<
"' default " << def[i] << std::endl;
82 if ( !this->
load( muons ) ) {
83 msg() <<
"Muon threshold set for sm key "
84 << sm_keys[i] <<
" not available" << std::endl;
86 }
catch(std::bad_cast& ex) {
87 msg() <<
" Failed casting : " << ex.what();
89 vSets.push_back(muons);
94 }
catch(
const coral::SchemaException& e ) {
95 msg() <<
"MuonThresholdSetLoader >> SchemaException: "
96 << e.what() << std::endl;
98 }
catch(
const std::exception& e ) {
99 msg() <<
"MuonThresholdSetLoader >> Standard C++ exception: " << e.what() << std::endl;
102 msg() <<
"MuonThresholdSetLoader >> unknown C++ exception" << std::endl;
110 msg() <<
"MuonThresholdSetLoader start loading data" << std::endl;
119 if(target.id() == 0) {
122 int Lvl1MasterKey = 0;
127 coral::ITable& table =
m_session.nominalSchema().tableHandle(
"SUPER_MASTER_TABLE");
128 coral::IQuery*
query = table.newQuery();
129 query->setRowCacheSize( 5 );
131 coral::AttributeList conditionData;
132 conditionData.extend<
int>(
"smtid");
133 query->setCondition(
"SMT_ID = :smtid" , conditionData );
134 conditionData[0].data<
int>() = target.superMasterTableId();
136 coral::AttributeList attList;
137 attList.extend<
int>(
"SMT_L1_MASTER_TABLE_ID" );
138 query->defineOutput(attList);
139 query->addToOutputList(
"SMT_L1_MASTER_TABLE_ID" );
141 coral::ICursor& cursor =
query->execute();
142 if ( ! cursor.next() ) {
143 msg() <<
"MuonThresholdSetLoader >> No such SuperMaster key exists "
144 << target.superMasterTableId() << std::endl;
147 throw std::runtime_error(
"MuonThresholdSetLoader >> SuperMasterKey not available" );
149 const coral::AttributeList& row = cursor.currentRow();
150 Lvl1MasterKey = row[
"SMT_L1_MASTER_TABLE_ID"].data<
int>();
159 coral::ITable& table =
m_session.nominalSchema().tableHandle(
"L1_MASTER_TABLE");
160 coral::IQuery*
query = table.newQuery();
161 query->setRowCacheSize( 5 );
163 coral::AttributeList conditionData;
164 conditionData.extend<
int>(
"l1mtid");
165 query->setCondition(
"L1MT_ID = :l1mtid" , conditionData );
166 conditionData[0].data<
int>() = Lvl1MasterKey;
168 coral::AttributeList attList;
169 attList.extend<
int>(
"L1MT_MUON_THRESHOLD_SET_ID" );
170 query->defineOutput(attList);
172 query->addToOutputList(
"L1MT_MUON_THRESHOLD_SET_ID" );
173 coral::ICursor& cursor =
query->execute();
174 if ( ! cursor.next() ) {
175 msg() <<
"MuonThresholdSetLoader >> No such L1 master key exists "
176 << Lvl1MasterKey << std::endl;
179 throw std::runtime_error(
"MuonThresholdSetLoader >> L1MasterKey not available" );
181 const coral::AttributeList& row = cursor.currentRow();
182 setId = row[
"L1MT_MUON_THRESHOLD_SET_ID"].data<
int>();
187 }
catch(
const coral::SchemaException& e ) {
188 msg() <<
"MuonThresholdSetLoader >> SchemaException: "
189 << e.what() << std::endl;
192 }
catch(
const std::exception& e ) {
193 msg() <<
"MuonThresholdSetLoader >> Standard C++ exception: " << e.what() << std::endl;
197 msg() <<
"MuonThresholdSetLoader >> unknown C++ exception" << std::endl;
204 msg() <<
"Super master key " << target.superMasterTableId()
205 <<
" MuonThresholdSet id " << target.id() << std::endl;
207 coral::ITable& table =
m_session.nominalSchema().tableHandle(
"L1_MUON_THRESHOLD_SET");
208 coral::IQuery*
query = table.newQuery();
209 query->setRowCacheSize( 5 );
211 std::string cond =
"L1MTS_ID = :threshId";
212 coral::AttributeList alist;
213 alist.extend<
int>(
"threshId");
214 alist[0].data<
int>() = target.id();
215 query->setCondition( cond, alist );
217 coral::AttributeList attList;
218 attList.extend<std::string>(
"L1MTS_NAME" );
219 attList.extend<
int>(
"L1MTS_VERSION" );
220 attList.extend<
int>(
"L1MTS_RPC_AVAILABLE" );
221 attList.extend<
int>(
"L1MTS_RPC_AVAILABLE_ONLINE" );
222 attList.extend<
int>(
"L1MTS_TGC_AVAILABLE" );
223 attList.extend<
int>(
"L1MTS_TGC_AVAILABLE_ONLINE" );
224 attList.extend<
int>(
"L1MTS_RPC_SET_EXT_ID");
225 attList.extend<std::string>(
"L1MTS_RPC_SET_NAME" );
226 attList.extend<
int>(
"L1MTS_TGC_SET_EXT_ID");
227 attList.extend<std::string>(
"L1MTS_TGC_SET_NAME" );
228 attList.extend<
int>(
"L1MTS_RPC_PT1_EXT_ID" );
229 attList.extend<
int>(
"L1MTS_RPC_PT2_EXT_ID" );
230 attList.extend<
int>(
"L1MTS_RPC_PT3_EXT_ID" );
231 attList.extend<
int>(
"L1MTS_RPC_PT4_EXT_ID" );
232 attList.extend<
int>(
"L1MTS_RPC_PT5_EXT_ID" );
233 attList.extend<
int>(
"L1MTS_RPC_PT6_EXT_ID" );
234 query->defineOutput(attList);
236 query->addToOutputList(
"L1MTS_NAME" );
237 query->addToOutputList(
"L1MTS_VERSION" );
238 query->addToOutputList(
"L1MTS_RPC_AVAILABLE" );
239 query->addToOutputList(
"L1MTS_RPC_AVAILABLE_ONLINE" );
240 query->addToOutputList(
"L1MTS_TGC_AVAILABLE" );
241 query->addToOutputList(
"L1MTS_TGC_AVAILABLE_ONLINE" );
242 query->addToOutputList(
"L1MTS_RPC_SET_EXT_ID" );
243 query->addToOutputList(
"L1MTS_RPC_SET_NAME" );
244 query->addToOutputList(
"L1MTS_TGC_SET_EXT_ID" );
245 query->addToOutputList(
"L1MTS_TGC_SET_NAME" );
246 query->addToOutputList(
"L1MTS_RPC_PT1_EXT_ID" );
247 query->addToOutputList(
"L1MTS_RPC_PT2_EXT_ID" );
248 query->addToOutputList(
"L1MTS_RPC_PT3_EXT_ID" );
249 query->addToOutputList(
"L1MTS_RPC_PT4_EXT_ID" );
250 query->addToOutputList(
"L1MTS_RPC_PT5_EXT_ID" );
251 query->addToOutputList(
"L1MTS_RPC_PT6_EXT_ID" );
253 coral::ICursor& cursor =
query->execute();
254 if ( ! cursor.next() ) {
255 msg() <<
"MuonThresholdSetLoader >> No such threshold set exists : "
256 << target.id() << std::endl;
259 throw std::runtime_error(
"MuonThresholdSetLoader >> ThresholdSet not available" );
262 const coral::AttributeList& row = cursor.currentRow();
265 target.setVersion( row[
"L1MTS_VERSION"].
data<int>() );
267 target.setRpcAvailable(
static_cast<bool>(row[
"L1MTS_RPC_AVAILABLE"].
data<int>()) );
268 target.setRpcAvailableOnline(
static_cast<bool>(row[
"L1MTS_RPC_AVAILABLE_ONLINE"].
data<int>()) );
269 target.setTgcAvailable(
static_cast<bool>(row[
"L1MTS_TGC_AVAILABLE"].
data<int>()) );
270 target.setTgcAvailableOnline(
static_cast<bool>(row[
"L1MTS_TGC_AVAILABLE_ONLINE"].
data<int>()) );
272 target.setRpcSetId( row[
"L1MTS_RPC_SET_EXT_ID"].
data<int>() );
273 target.setTgcSetId( row[
"L1MTS_TGC_SET_EXT_ID"].
data<int>() );
278 target.setRpcPt1Id( row[
"L1MTS_RPC_PT1_EXT_ID"].
data<int>() );
279 target.setRpcPt2Id( row[
"L1MTS_RPC_PT2_EXT_ID"].
data<int>() );
280 target.setRpcPt3Id( row[
"L1MTS_RPC_PT3_EXT_ID"].
data<int>() );
281 target.setRpcPt4Id( row[
"L1MTS_RPC_PT4_EXT_ID"].
data<int>() );
282 target.setRpcPt5Id( row[
"L1MTS_RPC_PT5_EXT_ID"].
data<int>() );
283 target.setRpcPt6Id( row[
"L1MTS_RPC_PT6_EXT_ID"].
data<int>() );
288 }
catch(
const coral::SchemaException& e ) {
289 msg() <<
"MuonThresholdSetLoader >> SchemaException: "
290 << e.what() << std::endl;
293 }
catch(
const std::exception& e ) {
294 msg() <<
"MuonThresholdSetLoader >> Standard C++ exception: " << e.what() << std::endl;
298 msg() <<
"MuonThresholdSetLoader >> unknown C++ exception" << std::endl;
303 msg() <<
"Schema version " << schema <<
" too old, don't load MuonThresholdSet" << std::endl;