ATLAS Offline Software
L1ThrExtraInfo.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 #include <boost/lexical_cast.hpp>
8 #include <stdexcept>
9 
10 using namespace std;
11 
12 std::unique_ptr<TrigConf::L1ThrExtraInfoBase>
14  std::unique_ptr<TrigConf::L1ThrExtraInfoBase> extraInfo(nullptr);
15 
16  if( thrTypeName == "EM" )
17  return std::make_unique<L1ThrExtraInfo_EMTAULegacy>(thrTypeName, data);
18 
19  if( thrTypeName == "TAU" )
20  return std::make_unique<L1ThrExtraInfo_EMTAULegacy>(thrTypeName, data);
21 
22  if( thrTypeName == "JET" )
23  return std::make_unique<L1ThrExtraInfo_JETLegacy>(thrTypeName, data);
24 
25  if( thrTypeName == "XS" )
26  return std::make_unique<L1ThrExtraInfo_XSLegacy>(thrTypeName, data);
27 
28  if( thrTypeName == "MU" )
29  return std::make_unique<L1ThrExtraInfo_MU>(thrTypeName, data);
30 
31  if( thrTypeName == "eEM" )
32  return std::make_unique<L1ThrExtraInfo_eEM>(thrTypeName, data);
33 
34  if( thrTypeName == "jEM" )
35  return std::make_unique<L1ThrExtraInfo_jEM>(thrTypeName, data);
36 
37  if( thrTypeName == "eTAU" )
38  return std::make_unique<L1ThrExtraInfo_eTAU>(thrTypeName, data);
39 
40  if( thrTypeName == "jTAU" )
41  return std::make_unique<L1ThrExtraInfo_jTAU>(thrTypeName, data);
42 
43  if( thrTypeName == "cTAU" )
44  return std::make_unique<L1ThrExtraInfo_cTAU>(thrTypeName, data);
45 
46  if( thrTypeName == "jJ" )
47  return std::make_unique<L1ThrExtraInfo_jJ>(thrTypeName, data);
48 
49  if( thrTypeName == "jLJ" )
50  return std::make_unique<L1ThrExtraInfo_jLJ>(thrTypeName, data);
51 
52  if( thrTypeName == "gJ" )
53  return std::make_unique<L1ThrExtraInfo_gJ>(thrTypeName, data);
54 
55  if( thrTypeName == "gLJ" )
56  return std::make_unique<L1ThrExtraInfo_gLJ>(thrTypeName, data);
57 
58  if( thrTypeName == "jXE" )
59  return std::make_unique<L1ThrExtraInfo_jXE>(thrTypeName, data);
60 
61  if( thrTypeName == "jTE" )
62  return std::make_unique<L1ThrExtraInfo_jTE>(thrTypeName, data);
63 
64  if( thrTypeName == "gXE" )
65  return std::make_unique<L1ThrExtraInfo_gXE>(thrTypeName, data);
66 
67  if( thrTypeName == "gTE" )
68  return std::make_unique<L1ThrExtraInfo_gTE>(thrTypeName, data);
69 
70  // if no special extra information is supplied for the threshold type return base class
71  return std::make_unique<L1ThrExtraInfoBase>(thrTypeName, data);
72 }
73 
74 void
76 {
77  m_thrExtraInfo.clear();
78 }
79 
80 
81 std::weak_ptr<TrigConf::L1ThrExtraInfoBase>
82 TrigConf::L1ThrExtraInfo::addExtraInfo(const std::string & thrTypeName, const boost::property_tree::ptree & data) {
83  try {
84  if( auto extraInfo = L1ThrExtraInfo::createExtraInfo( thrTypeName, data) ) {
85  auto success = m_thrExtraInfo.emplace(thrTypeName, std::shared_ptr<TrigConf::L1ThrExtraInfoBase>(std::move(extraInfo)));
86  return std::weak_ptr<TrigConf::L1ThrExtraInfoBase>( success.first->second );
87  }
88  }
89  catch(std::exception & ex) {
90  std::cerr << "L1ThrExtraInfo::addExtraInfo: exception occured when building extra info for " << thrTypeName << std::endl;
91  throw;
92  }
93  return std::weak_ptr<TrigConf::L1ThrExtraInfoBase>( m_emptyInfo );
94 }
95 
96 bool
97 TrigConf::L1ThrExtraInfo::hasInfo(const std::string & typeName) const
98 {
99  return ( m_thrExtraInfo.find(typeName) != m_thrExtraInfo.end() );
100 }
101 
104  return dynamic_cast<const TrigConf::L1ThrExtraInfo_EMTAULegacy&>( * m_thrExtraInfo.at("EM") );
105 }
106 
109  return dynamic_cast<const TrigConf::L1ThrExtraInfo_EMTAULegacy&>( * m_thrExtraInfo.at("TAU") );
110 }
111 
114  return dynamic_cast<const TrigConf::L1ThrExtraInfo_XSLegacy&>( * m_thrExtraInfo.at("XS") );
115 }
116 
119  return dynamic_cast<const TrigConf::L1ThrExtraInfo_JETLegacy&>( * m_thrExtraInfo.at("JET") );
120 }
121 
124  return dynamic_cast<const TrigConf::L1ThrExtraInfo_eEM&>( * m_thrExtraInfo.at("eEM") );
125 }
126 
129  return dynamic_cast<const TrigConf::L1ThrExtraInfo_jEM&>( * m_thrExtraInfo.at("jEM") );
130 }
131 
134  return dynamic_cast<const TrigConf::L1ThrExtraInfo_eTAU&>( * m_thrExtraInfo.at("eTAU") );
135 }
136 
139  return dynamic_cast<const TrigConf::L1ThrExtraInfo_jTAU&>( * m_thrExtraInfo.at("jTAU") );
140 }
141 
144  return dynamic_cast<const TrigConf::L1ThrExtraInfo_cTAU&>( * m_thrExtraInfo.at("cTAU") );
145 }
146 
149  return dynamic_cast<const TrigConf::L1ThrExtraInfo_jJ&>( * m_thrExtraInfo.at("jJ") );
150 }
151 
154  return dynamic_cast<const TrigConf::L1ThrExtraInfo_jLJ&>( * m_thrExtraInfo.at("jLJ") );
155 }
156 
159  return dynamic_cast<const TrigConf::L1ThrExtraInfo_gJ&>( * m_thrExtraInfo.at("gJ") );
160 }
161 
164  return dynamic_cast<const TrigConf::L1ThrExtraInfo_gLJ&>( * m_thrExtraInfo.at("gLJ") );
165 }
166 
169  return dynamic_cast<const TrigConf::L1ThrExtraInfo_jXE&>( * m_thrExtraInfo.at("jXE") );
170 }
171 
174  return dynamic_cast<const TrigConf::L1ThrExtraInfo_jTE&>( * m_thrExtraInfo.at("jTE") );
175 }
176 
179  return dynamic_cast<const TrigConf::L1ThrExtraInfo_gXE&>( * m_thrExtraInfo.at("gXE") );
180 }
181 
184  return dynamic_cast<const TrigConf::L1ThrExtraInfo_gTE&>( * m_thrExtraInfo.at("gTE") );
185 }
186 
189  return dynamic_cast<const TrigConf::L1ThrExtraInfo_MU&>( * m_thrExtraInfo.at("MU") );
190 }
191 
193 TrigConf::L1ThrExtraInfo::thrExtraInfo(const std::string & thrTypeName) const
194 {
195  try {
196  return * m_thrExtraInfo.at(thrTypeName);
197  }
198  catch(std::exception & ex) {
199  std::cerr << "Threshold type " << thrTypeName << " does not have extra info defined" << endl;
200  throw;
201  }
202 }
203 
208 TrigConf::L1ThrExtraInfo_EMTAULegacy::isolation(const std::string & thrType, size_t bit) const
209 {
210  if(bit<1 or bit>5) {
211  throw std::out_of_range("When accessing the legacy L1Calo EM or TAU isolation bit must be between 1 and 5, but bit="
212  + std::to_string(bit) + " was requested");
213  }
214  try {
215  return m_isolation.at(thrType)[bit-1];
216  }
217  catch(std::exception & ex) {
218  std::cerr << "Threshold type " << name() << " does not have isolation parameters for type " << thrType << endl;
219  throw;
220  }
221 }
222 
223 void
225 {
226  for( auto & x : m_extraInfo ) {
227  if( x.first == "ptMinToTopo" ) {
228  m_ptMinToTopoMeV = std::lround( 1000 * x.second.getValue<float>() );
229  } else if( x.first == "isolation" ) {
230  for( auto & y : x.second.data() ) {
231  auto & isoV = m_isolation[y.first] = std::vector<IsolationLegacy>(5);
232  for(auto & c : y.second.get_child("Parametrization") ) {
233  auto iso = IsolationLegacy(c.second);
234  isoV[iso.isobit()-1] = iso;
235  }
236  }
237  }
238  }
239 }
240 
241 
242 void
244 {
245  if( hasExtraInfo("significance") ) {
246  auto & sig = m_extraInfo["significance"];
247  m_xeMin = sig.getAttribute<unsigned int>("xeMin");
248  m_xeMax = sig.getAttribute<unsigned int>("xeMax");
249  m_teSqrtMin = sig.getAttribute<unsigned int>("teSqrtMin");
250  m_teSqrtMax = sig.getAttribute<unsigned int>("teSqrtMax");
251  m_xsSigmaScale = sig.getAttribute<unsigned int>("xsSigmaScale");
252  m_xsSigmaOffset = sig.getAttribute<unsigned int>("xsSigmaOffset");
253  }
254 }
255 
256 
257 
261 void
263 {
264  for( auto & x : m_extraInfo ) {
265  if( x.first == "ptMinToTopoLargeWindow" ) {
266  m_ptMinToTopoLargeWindowMeV = std::lround( 1000 * x.second.getValue<float>() );
267  } else if( x.first == "ptMinToTopoSmallWindow" ) {
268  m_ptMinToTopoSmallWindowMeV = std::lround( 1000 * x.second.getValue<float>() );
269  }
270  }
271 }
272 
273 
274 /***********************************
275  *
276  * Extra info for new thresholds
277  *
278  ***********************************/
279 
280 /*******
281  * eEM
282  *******/
284  m_isDefined = true;
285  m_reta_d = pt.get_optional<float>("reta").get_value_or(0);
286  m_wstot_d = pt.get_optional<float>("wstot").get_value_or(0);
287  m_rhad_d = pt.get_optional<float>("rhad").get_value_or(0);
288  m_reta_fw = pt.get_optional<int>("reta_fw").get_value_or(0);
289  m_wstot_fw = pt.get_optional<int>("wstot_fw").get_value_or(0);
290  m_rhad_fw = pt.get_optional<int>("rhad_fw").get_value_or(0);
291 }
292 
293 std::ostream &
295  os << "reta_fw=" << iso.reta_fw() << ", wstot_fw=" << iso.wstot_fw() << ", rhad_fw=" << iso.rhad_fw();
296  return os;
297 }
298 
299 void
301 {
302  for( auto & x : m_extraInfo ) {
303  if( x.first == "maxEt" ){
304  m_maxEt = 1000*x.second.getValue<unsigned int>();
305  } else if( x.first == "ptMinToTopo" ) {
306  m_ptMinToTopoMeV = lround(1000 * x.second.getValue<float>());
307  } else if( x.first == "workingPoints" ) {
308  for( auto & y : x.second.data() ) {
309  auto wp = Selection::stringToWP(y.first);
310  auto & iso = m_isolation.emplace(wp, string("eEM_WP_" + y.first)).first->second;
311  for(auto & c : y.second ) {
312  int etamin = c.second.get_optional<int>("etamin").get_value_or(-49);
313  int etamax = c.second.get_optional<int>("etamax").get_value_or(49);
314  unsigned int priority = c.second.get_optional<unsigned int>("priority").get_value_or(0);
315  iso.addRangeValue(WorkingPoints_eEM(c.second), etamin, etamax, priority, /*symmetric=*/ false);
316  }
317  }
318  }
319  }
320 }
321 
322 /*******
323  * jEM
324  *******/
326  m_isDefined = true;
327  m_iso_d = pt.get_optional<float>("iso").get_value_or(0);
328  m_frac_d = pt.get_optional<float>("frac").get_value_or(0);
329  m_frac2_d = pt.get_optional<float>("frac2").get_value_or(0);
330  m_iso_fw = pt.get_optional<int>("iso_fw").get_value_or(0);
331  m_frac_fw = pt.get_optional<int>("frac_fw").get_value_or(0);
332  m_frac2_fw = pt.get_optional<int>("frac2_fw").get_value_or(0);
333 }
334 
335 std::ostream &
337  os << "iso_fw=" << iso.iso_fw() << ", frac_fw=" << iso.frac_fw() << ", frac2_fw=" << iso.frac2_fw();
338  return os;
339 }
340 
341 void
343 {
344  for( auto & x : m_extraInfo ) {
345  if( x.first == "maxEt" ){
346  m_maxEt = 1000*x.second.getValue<unsigned int>();
347  } else if( x.first == "ptMinToTopo1" ) {
348  m_ptMinToTopoMeV1 = 1000*x.second.getValue<unsigned int>();
349  } else if( x.first == "ptMinToTopo2" ){
350  m_ptMinToTopoMeV2 = 1000*x.second.getValue<unsigned int>();
351  } else if( x.first == "ptMinToTopo3" ){
352  m_ptMinToTopoMeV3 = 1000*x.second.getValue<unsigned int>();
353  } else if( x.first == "ptMinxTOB1" ){
354  m_ptMinxTOBMeV1 = 1000*x.second.getValue<unsigned int>();
355  } else if( x.first == "ptMinxTOB2" ){
356  m_ptMinxTOBMeV2 = 1000*x.second.getValue<unsigned int>();
357  } else if( x.first == "ptMinxTOB3" ){
358  m_ptMinxTOBMeV3 = 1000*x.second.getValue<unsigned int>();
359  } else if( x.first == "workingPoints" ) {
360  for( auto & y : x.second.data() ) {
361  auto wp = Selection::stringToWP(y.first);
362  auto & iso = m_isolation.emplace(wp, string("jEM_WP_" + y.first)).first->second;
363  for(auto & c : y.second ) {
364  int etamin = c.second.get_optional<int>("etamin").get_value_or(-49);
365  int etamax = c.second.get_optional<int>("etamax").get_value_or(49);
366  unsigned int priority = c.second.get_optional<unsigned int>("priority").get_value_or(0);
367  iso.addRangeValue(WorkingPoints_jEM(c.second), etamin, etamax, priority, /*symmetric=*/ false);
368  }
369  }
370  }
371  }
372 }
373 
374 /*******
375  * eTAU
376  *******/
378  m_isDefined = true;
379  m_rCore_d = pt.get_optional<float>("rCore").get_value_or(0);
380  m_rHad_d = pt.get_optional<float>("rHad").get_value_or(0);
381  m_rCore_fw = pt.get_optional<float>("rCore_fw").get_value_or(0);
382  m_rHad_fw = pt.get_optional<float>("rHad_fw").get_value_or(0);
383 }
384 
385 std::ostream &
387  os << "rCore_fw=" << iso.rCore_fw() << ", rHad_fw=" << iso.rHad_fw() ;
388  return os;
389 }
390 
391 void
393 {
394  for( auto & x : m_extraInfo ) {
395  if( x.first == "maxEt" ){
396  m_maxEt = 1000*x.second.getValue<unsigned int>(); // Original in units of GeV
397  } else if( x.first == "minIsoEt" ){
398  m_minIsoEt = lround(1000 * x.second.getValue<float>()); // Original in units of GeV
399  } else if( x.first == "ptMinToTopo" ) {
400  m_ptMinToTopoMeV = lround(1000 * x.second.getValue<float>());
401  } else if( x.first == "workingPoints" ) {
402  for( auto & y : x.second.data() ) {
403  auto wp = TrigConf::Selection::stringToWP(y.first);
404  auto & iso = m_isolation.emplace(wp, string("eTAU_WP_" + y.first)).first->second;
405  for(auto & c : y.second ) {
406  int etamin = c.second.get_optional<int>("etamin").get_value_or(-49);
407  int etamax = c.second.get_optional<int>("etamax").get_value_or(49);
408  unsigned int priority = c.second.get_optional<unsigned int>("priority").get_value_or(0);
409  iso.addRangeValue(WorkingPoints_eTAU(c.second), etamin, etamax, priority, /*symmetric=*/ false);
410  }
411  }
412  } else if (x.first == "algoVersion") {
413  m_algoVersion = x.second.getValue<unsigned int>();
414  }
415  }
416 }
417 
418 /*******
419  * jTAU
420  *******/
422  m_isDefined = true;
423  m_isolation_d = pt.get_optional<float>("isolation").get_value_or(0);
424  m_isolation_fw = pt.get_optional<float>("isolation_fw").get_value_or(0);
425 }
426 
427 std::ostream &
429  os << "isolation_fw=" << iso.isolation_fw() ;
430  return os;
431 }
432 
433 void
435 {
436  for( auto & x : m_extraInfo ) {
437  if( x.first == "maxEt" ){
438  m_maxEt = 1000*x.second.getValue<unsigned int>();
439  } else if( x.first == "ptMinToTopo1" ) {
440  m_ptMinToTopoMeV1 = 1000*x.second.getValue<unsigned int>();
441  } else if( x.first == "ptMinToTopo2" ){
442  m_ptMinToTopoMeV2 = 1000*x.second.getValue<unsigned int>();
443  } else if( x.first == "ptMinToTopo3" ){
444  m_ptMinToTopoMeV3 = 1000*x.second.getValue<unsigned int>();
445  } else if( x.first == "ptMinxTOB1" ){
446  m_ptMinxTOBMeV1 = 1000*x.second.getValue<unsigned int>();
447  } else if( x.first == "ptMinxTOB2" ){
448  m_ptMinxTOBMeV2 = 1000*x.second.getValue<unsigned int>();
449  } else if( x.first == "ptMinxTOB3" ){
450  m_ptMinxTOBMeV3 = 1000*x.second.getValue<unsigned int>();
451  } else if( x.first == "workingPoints" ) {
452  for( auto & y : x.second.data() ) {
453  auto wp = TrigConf::Selection::stringToWP(y.first);
454  auto & iso = m_isolation.emplace(wp, string("jTAU_WP_" + y.first)).first->second;
455  for(auto & c : y.second ) {
456  int etamin = c.second.get_optional<int>("etamin").get_value_or(-49);
457  int etamax = c.second.get_optional<int>("etamax").get_value_or(49);
458  unsigned int priority = c.second.get_optional<unsigned int>("priority").get_value_or(0);
459  iso.addRangeValue(WorkingPoints_jTAU(c.second), etamin, etamax, priority, /*symmetric=*/ false);
460  }
461  }
462  }
463  }
464 }
465 
466 /*******
467  * cTAU
468  *******/
470  m_isDefined = true;
471  m_isolation_d = pt.get_optional<float>("isolation").get_value_or(0);
472  m_isolation_fw = pt.get_optional<unsigned int>("isolation_fw").get_value_or(0);
473  m_isolation_jTAUCoreScale_d = pt.get_optional<float>("isolation_jTAUCoreScale").get_value_or(0);
474  m_isolation_jTAUCoreScale_fw = pt.get_optional<unsigned int>("isolation_jTAUCoreScale_fw").get_value_or(0);
475  m_eTAU_rCoreMin_WP_d = pt.get_optional<float>("eTAU_rCoreMin").get_value_or(0);
476  m_eTAU_rCoreMin_WP_fw = pt.get_optional<unsigned int>("eTAU_rCoreMin_WP_fw").get_value_or(0);
477  m_eTAU_rHadMin_WP_d = pt.get_optional<float>("eTAU_rHadMin").get_value_or(0);
478  m_eTAU_rHadMin_WP_fw = pt.get_optional<unsigned int>("eTAU_rHadMin_WP_fw").get_value_or(0);
479 }
480 
481 std::ostream &
483  os << "isolation_fw=" << iso.isolation_fw() << ", isolation_jTAUCoreScale_fw=" << iso.isolation_jTAUCoreScale_fw();
484  os << ", eTAU_rCoreMin_WP_fw=" << iso.eTAU_rCoreMin_WP_fw() << ", eTAU_rHadMin_WP_fw=" << iso.eTAU_rHadMin_WP_fw();
485  return os;
486 }
487 
488 void
490 {
491  for( auto & x : m_extraInfo ) {
492  if( x.first == "workingPoints" ) {
493  for( auto & y : x.second.data() ) {
494  auto wp = TrigConf::Selection::stringToWP(y.first);
495  auto & iso = m_isolation.emplace(wp, string("cTAU_WP_" + y.first)).first->second;
496  for(auto & c : y.second ) {
497  int etamin = c.second.get_optional<int>("etamin").get_value_or(-49);
498  int etamax = c.second.get_optional<int>("etamax").get_value_or(49);
499  unsigned int priority = c.second.get_optional<unsigned int>("priority").get_value_or(0);
500  iso.addRangeValue(WorkingPoints_cTAU(c.second), etamin, etamax, priority, /*symmetric=*/ false);
501  }
502  }
503  }
504  }
505 }
506 
507 
508 /*******
509  * jJ
510  *******/
511 void
513 {
514  for( auto & x : m_extraInfo ) {
515  if( x.first == "ptMinToTopo1" ) {
516  m_ptMinToTopoMeV1 = 1000*x.second.getValue<unsigned int>();
517  } else if( x.first == "ptMinToTopo2" ){
518  m_ptMinToTopoMeV2 = 1000*x.second.getValue<unsigned int>();
519  } else if( x.first == "ptMinToTopo3" ){
520  m_ptMinToTopoMeV3 = 1000*x.second.getValue<unsigned int>();
521  } else if( x.first == "ptMinxTOB1" ){
522  m_ptMinxTOBMeV1 = 1000*x.second.getValue<unsigned int>();
523  } else if( x.first == "ptMinxTOB2" ){
524  m_ptMinxTOBMeV2 = 1000*x.second.getValue<unsigned int>();
525  } else if( x.first == "ptMinxTOB3" ){
526  m_ptMinxTOBMeV3 = 1000*x.second.getValue<unsigned int>();
527  }
528  }
529 }
530 
531 /*******
532  * jLJ
533  *******/
534 void
536 {
537  for( auto & x : m_extraInfo ) {
538  if( x.first == "ptMinToTopo1" ) {
539  m_ptMinToTopoMeV1 = 1000*x.second.getValue<unsigned int>();
540  } else if( x.first == "ptMinToTopo2" ){
541  m_ptMinToTopoMeV2 = 1000*x.second.getValue<unsigned int>();
542  } else if( x.first == "ptMinToTopo3" ){
543  m_ptMinToTopoMeV3 = 1000*x.second.getValue<unsigned int>();
544  } else if( x.first == "ptMinxTOB1" ){
545  m_ptMinxTOBMeV1 = 1000*x.second.getValue<unsigned int>();
546  } else if( x.first == "ptMinxTOB2" ){
547  m_ptMinxTOBMeV2 = 1000*x.second.getValue<unsigned int>();
548  } else if( x.first == "ptMinxTOB3" ){
549  m_ptMinxTOBMeV3 = 1000*x.second.getValue<unsigned int>();
550  }
551  }
552 }
553 
554 /*******
555  * gJ
556  *******/
557 void
559 {
560  for( auto & x : m_extraInfo ) {
561  if( x.first == "ptMinToTopo1" ) {
562  m_ptMinToTopoMeV1 = 1000*x.second.getValue<unsigned int>();
563  } else if( x.first == "ptMinToTopo2" ){
564  m_ptMinToTopoMeV2 = 1000*x.second.getValue<unsigned int>();
565  }
566  }
567 }
568 
569 /*******
570  * gLJ
571  *******/
572 void
574 {
575  for( auto & x : m_extraInfo ) {
576  if( x.first == "ptMinToTopo1" ) {
577  m_ptMinToTopoMeV1 = 1000*x.second.getValue<unsigned int>();
578  } else if( x.first == "ptMinToTopo2" ){
579  m_ptMinToTopoMeV2 = 1000*x.second.getValue<unsigned int>();
580  } else if( x.first == "seedThrA" ){
581  m_seedThrMeVA = 1000*x.second.getValue<unsigned int>();
582  } else if( x.first == "seedThrB" ){
583  m_seedThrMeVB = 1000*x.second.getValue<unsigned int>();
584  } else if( x.first == "seedThrC" ){
585  m_seedThrMeVC = 1000*x.second.getValue<unsigned int>();
586  } else if( x.first == "rhoTowerMinA" ){
587  float rhoTower_tmp = 1000*x.second.getValue<float>();
588  if( (int)rhoTower_tmp != rhoTower_tmp)
589  throw std::runtime_error("gLJ: rhoTower param " + std::to_string(rhoTower_tmp/1000.) + " cannot be converted in MeV" );
590  m_rhoTowerMinMeVA = (int)rhoTower_tmp;
591  } else if( x.first == "rhoTowerMinB" ){
592  float rhoTower_tmp = 1000*x.second.getValue<float>();
593  if( (int)rhoTower_tmp != rhoTower_tmp)
594  throw std::runtime_error("gLJ: rhoTower param " + std::to_string(rhoTower_tmp/1000.) + " cannot be converted in MeV" );
595  m_rhoTowerMinMeVB = (int)rhoTower_tmp;
596  } else if( x.first == "rhoTowerMinC" ){
597  float rhoTower_tmp = 1000*x.second.getValue<float>();
598  if( (int)rhoTower_tmp != rhoTower_tmp)
599  throw std::runtime_error("gLJ: rhoTower param " + std::to_string(rhoTower_tmp/1000.) + " cannot be converted in MeV" );
600  m_rhoTowerMinMeVC = (int)rhoTower_tmp;
601  } else if( x.first == "rhoTowerMaxA" ){
602  float rhoTower_tmp = 1000*x.second.getValue<float>();
603  if( (int)rhoTower_tmp != rhoTower_tmp)
604  throw std::runtime_error("gLJ: rhoTower param " + std::to_string(rhoTower_tmp/1000.) + " cannot be converted in MeV" );
605  m_rhoTowerMaxMeVA = (int)rhoTower_tmp;
606  } else if( x.first == "rhoTowerMaxB" ){
607  float rhoTower_tmp = 1000*x.second.getValue<float>();
608  if( (int)rhoTower_tmp != rhoTower_tmp)
609  throw std::runtime_error("gLJ: rhoTower param " + std::to_string(rhoTower_tmp/1000.) + " cannot be converted in MeV" );
610  m_rhoTowerMaxMeVB = (int)rhoTower_tmp;
611  } else if( x.first == "rhoTowerMaxC" ){
612  float rhoTower_tmp = 1000*x.second.getValue<float>();
613  if( (int)rhoTower_tmp != rhoTower_tmp)
614  throw std::runtime_error("gLJ: rhoTower param " + std::to_string(rhoTower_tmp/1000.) + " cannot be converted in MeV" );
615  m_rhoTowerMaxMeVC = (int)rhoTower_tmp;
616  }
617  }
618 }
619 
620 /*******
621  * jXE
622  *******/
623 void
625 {
626 }
627 
628 /*******
629  * jTE
630  *******/
631 void
633 {
634  for( auto & x : m_extraInfo ) {
635  if( x.first == "etaBoundary1" ) {
636  m_etaBoundary1 = x.second.getValue<unsigned int>();
637  } else if( x.first == "etaBoundary1_fw" ) {
638  m_etaBoundary1_fw = x.second.getValue<unsigned int>();
639  } else if( x.first == "etaBoundary2" ) {
640  m_etaBoundary2 = x.second.getValue<unsigned int>();
641  } else if( x.first == "etaBoundary2_fw" ) {
642  m_etaBoundary2_fw = x.second.getValue<unsigned int>();
643  } else if( x.first == "etaBoundary3" ) {
644  m_etaBoundary3 = x.second.getValue<unsigned int>();
645  } else if( x.first == "etaBoundary3_fw" ) {
646  m_etaBoundary3_fw = x.second.getValue<unsigned int>();
647  }
648  }
649 }
650 
651 /*******
652  * gXE
653  *******/
654 void
656 {
657  for( auto & x : m_extraInfo ) {
658  if( x.first == "seedThrA" ){
659  m_seedThrMeVA = 1000*x.second.getValue<unsigned int>();
660  } else if( x.first == "seedThrB" ){
661  m_seedThrMeVB = 1000*x.second.getValue<unsigned int>();
662  } else if( x.first == "seedThrC" ){
663  m_seedThrMeVC = 1000*x.second.getValue<unsigned int>();
664  } else if( x.first == "XERHO_sigmaPosA" ){
665  m_XERHO_sigmaPosA = x.second.getValue<unsigned int>();
666  } else if( x.first == "XERHO_sigmaPosB" ){
667  m_XERHO_sigmaPosB = x.second.getValue<unsigned int>();
668  } else if( x.first == "XERHO_sigmaPosC" ){
669  m_XERHO_sigmaPosC = x.second.getValue<unsigned int>();
670  } else if( x.first == "XERHO_sigmaNegA" ){
671  m_XERHO_sigmaNegA = x.second.getValue<unsigned int>();
672  } else if( x.first == "XERHO_sigmaNegB" ){
673  m_XERHO_sigmaNegB = x.second.getValue<unsigned int>();
674  } else if( x.first == "XERHO_sigmaNegC" ){
675  m_XERHO_sigmaNegC = x.second.getValue<unsigned int>();
676  } else if( x.first == "XEJWOJ_a_A" ){
677  m_XEJWOJ_a_A = x.second.getValue<unsigned int>();
678  } else if( x.first == "XEJWOJ_a_B" ){
679  m_XEJWOJ_a_B = x.second.getValue<unsigned int>();
680  } else if( x.first == "XEJWOJ_a_C" ){
681  m_XEJWOJ_a_C = x.second.getValue<unsigned int>();
682  } else if( x.first == "XEJWOJ_b_A" ){
683  m_XEJWOJ_b_A = x.second.getValue<unsigned int>();
684  } else if( x.first == "XEJWOJ_b_B" ){
685  m_XEJWOJ_b_B = x.second.getValue<unsigned int>();
686  } else if( x.first == "XEJWOJ_b_C" ){
687  m_XEJWOJ_b_C = x.second.getValue<unsigned int>();
688  } else if( x.first == "XEJWOJ_c_A" ){
689  m_XEJWOJ_c_A = x.second.getValue<unsigned int>();
690  } else if( x.first == "XEJWOJ_c_B" ){
691  m_XEJWOJ_c_B = x.second.getValue<unsigned int>();
692  } else if( x.first == "XEJWOJ_c_C" ){
693  m_XEJWOJ_c_C = x.second.getValue<unsigned int>();
694  }
695  }
696 }
697 
698 /*******
699  * gTE
700  *******/
701 void
703 {
704 }
705 
706 /*******
707  * MU
708  *******/
709 unsigned int
711 {
712  try {
713  return m_rpcPtMap.at(pt);
714  }
715  catch(std::exception & ex) {
716  std::cerr << "No RPC index defined for pt " << pt << endl;
717  throw;
718  }
719 }
720 
721 
722 unsigned int
724 {
725  try {
726  return m_tgcPtMap.at(pt);
727  }
728  catch(std::exception & ex) {
729  std::cerr << "No TGC index defined for pt " << pt << endl;
730  throw;
731  }
732 }
733 
734 unsigned int
736 {
737 
738  for(auto & x : m_rpcPtMap){
739  if(x.second==idx) return x.first;
740  }
741  throw std::runtime_error("index "+std::to_string(idx)+" not found for RPC roads");
742 
743 }
744 
745 unsigned int
747 {
748 
749  for(auto & x : m_tgcPtMap){
750  if(x.second==idx) return x.first;
751  }
752  throw std::runtime_error("index "+std::to_string(idx)+" not found for TGC roads");
753 
754 }
755 
756 unsigned int
758 {
759 
760  int ptValue = ptForRpcIdx(rpcIdx);
761  return tgcIdxForPt(ptValue);
762 }
763 
764 std::vector<unsigned int>
766 {
767  std::vector<unsigned int> ptValues;
768  for( auto & x : m_rpcPtMap ) {
769  ptValues.emplace_back(x.first);
770  }
771  return ptValues;
772 }
773 
774 std::vector<unsigned int>
776 {
777  std::vector<unsigned int> ptValues;
778  for( auto & x : m_tgcPtMap ) {
779  ptValues.emplace_back(x.first);
780  }
781  return ptValues;
782 }
783 
784 
785 std::vector<std::string>
787 {
788  std::vector<std::string> listNames;
789  for( auto & x : m_roiExclusionLists ) {
790  listNames.emplace_back(x.first);
791  }
792  return listNames;
793 }
794 
795 
796 const std::map<std::string, std::vector<unsigned int> > &
797 TrigConf::L1ThrExtraInfo_MU::exclusionList(const std::string & listName) const
798 {
799  try {
800  return m_roiExclusionLists.at(listName);
801  }
802  catch(std::exception & ex) {
803  std::cerr << "No exclusion list '" << listName << "' defined in MU threshold exlusionLists" << endl;
804  throw;
805  }
806 }
807 
808 void
810 {
811  {
812  DataStructure ds = m_extraInfo["roads"].getObject("rpc");
813  for( const auto & x : ds.data() ) {
814  m_rpcPtMap.emplace( boost::lexical_cast<unsigned int, std::string>(x.first),
815  boost::lexical_cast<unsigned int, std::string>(x.second.data()));
816  }
817  }
818  {
819  DataStructure ds = m_extraInfo["roads"].getObject("tgc");
820  for( auto & x : ds.data() ) {
821  m_tgcPtMap.emplace( boost::lexical_cast<unsigned int, std::string>(x.first),
822  boost::lexical_cast<unsigned int, std::string>(x.second.data()));
823  }
824  }
825  for( auto & x : m_extraInfo["exclusionLists"].data() ) {
826  const std::string & listName = x.first;
827  std::map<std::string, std::vector<unsigned int>> roisBySector;
828  for( auto & list : x.second ) {
829  const std::string & sectorName = list.second.get_child("sectorName").get_value<std::string>();
830  std::vector<unsigned int> rois;
831  for( auto & roi : list.second.get_child("rois") ) {
832  rois.push_back( boost::lexical_cast<unsigned int, std::string>( roi.second.data() ) );
833  }
834  roisBySector.emplace(sectorName, std::move(rois));
835  }
836  m_roiExclusionLists.emplace(listName, std::move(roisBySector));
837  }
838 }
839 
840 
TrigConf::L1ThrExtraInfo_gTE::load
void load()
Update the internal members.
Definition: L1ThrExtraInfo.cxx:702
TrigConf::L1ThrExtraInfo_jTAU::WorkingPoints_jTAU::isolation_fw
int isolation_fw() const
Definition: L1ThrExtraInfo.h:302
TrigConf::L1ThrExtraInfo::clear
void clear()
Definition: L1ThrExtraInfo.cxx:75
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
checkxAOD.ds
ds
Definition: Tools/PyUtils/bin/checkxAOD.py:257
TrigConf::L1ThrExtraInfo_MU
Definition: L1ThrExtraInfo.h:644
TrigConf::operator<<
std::ostream & operator<<(std::ostream &os, const TrigConf::IsolationLegacy &iso)
Definition: L1ThresholdBase.cxx:339
TrigConf::L1ThrExtraInfo::jEM
const L1ThrExtraInfo_jEM & jEM() const
Definition: L1ThrExtraInfo.cxx:128
TrigConf::L1ThrExtraInfo_cTAU::WorkingPoints_cTAU::isolation_fw
unsigned int isolation_fw() const
Definition: L1ThrExtraInfo.h:355
TrigConf::L1ThrExtraInfo_eEM::load
void load()
Update the internal members.
Definition: L1ThrExtraInfo.cxx:300
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
TrigConf::Selection::stringToWP
static WP stringToWP(const std::string &)
Definition: L1ThresholdBase.cxx:393
TrigConf::L1ThrExtraInfo::thrExtraInfo
const L1ThrExtraInfoBase & thrExtraInfo(const std::string &thrTypeName) const
Definition: L1ThrExtraInfo.cxx:193
TrigConf::L1ThrExtraInfo_jEM::WorkingPoints_jEM::frac_fw
int frac_fw() const
Definition: L1ThrExtraInfo.h:197
TrigConf::L1ThrExtraInfo_cTAU::WorkingPoints_cTAU::isolation_jTAUCoreScale_fw
unsigned int isolation_jTAUCoreScale_fw() const
Definition: L1ThrExtraInfo.h:357
TrigConf::L1ThrExtraInfo::eTAU
const L1ThrExtraInfo_eTAU & eTAU() const
Definition: L1ThrExtraInfo.cxx:133
TrigConf::L1ThrExtraInfo::jLJ
const L1ThrExtraInfo_jLJ & jLJ() const
Definition: L1ThrExtraInfo.cxx:153
TrigConf::L1ThrExtraInfo_jEM::WorkingPoints_jEM
Definition: L1ThrExtraInfo.h:191
TrigConf::L1ThrExtraInfo_XSLegacy
Definition: L1ThrExtraInfo.h:117
TrigConf::L1ThrExtraInfo_MU::ptForTgcIdx
unsigned int ptForTgcIdx(unsigned int idx) const
Definition: L1ThrExtraInfo.cxx:746
TrigConf::L1ThrExtraInfo_jTE
Definition: L1ThrExtraInfo.h:543
TrigConf::L1ThrExtraInfo_gTE
Definition: L1ThrExtraInfo.h:632
TrigConf::L1ThrExtraInfo::gXE
const L1ThrExtraInfo_gXE & gXE() const
Definition: L1ThrExtraInfo.cxx:178
test_pyathena.pt
pt
Definition: test_pyathena.py:11
TrigConf::L1ThrExtraInfo_MU::tgcIdxForPt
unsigned int tgcIdxForPt(unsigned int pt) const
Definition: L1ThrExtraInfo.cxx:723
TrigConf::L1ThrExtraInfo_MU::tgcIdxForRpcIdx
unsigned int tgcIdxForRpcIdx(unsigned int rpcIdx) const
Definition: L1ThrExtraInfo.cxx:757
TrigConf::L1ThrExtraInfo::eEM
const L1ThrExtraInfo_eEM & eEM() const
Definition: L1ThrExtraInfo.cxx:123
python.selector.AtlRunQuerySelectorLhcOlc.priority
priority
Definition: AtlRunQuerySelectorLhcOlc.py:611
TrigConf::L1ThrExtraInfoBase
L1 extra information for certain threshold types.
Definition: L1ThresholdBase.h:72
TrigConf::L1ThrExtraInfo::jTAU
const L1ThrExtraInfo_jTAU & jTAU() const
Definition: L1ThrExtraInfo.cxx:138
TrigConf::IsolationLegacy
Definition: L1ThresholdBase.h:264
TrigConf::L1ThrExtraInfo_eTAU::WorkingPoints_eTAU::rCore_fw
int rCore_fw() const
Definition: L1ThrExtraInfo.h:257
TrigConf::L1ThrExtraInfo_gJ::load
void load()
Update the internal members.
Definition: L1ThrExtraInfo.cxx:558
TrigConf::L1ThrExtraInfo::TAU
const L1ThrExtraInfo_EMTAULegacy & TAU() const
Definition: L1ThrExtraInfo.cxx:108
TrigConf::L1ThrExtraInfo::jJ
const L1ThrExtraInfo_jJ & jJ() const
Definition: L1ThrExtraInfo.cxx:148
x
#define x
TrigConf::L1ThrExtraInfo_MU::rpcIdxForPt
unsigned int rpcIdxForPt(unsigned int pt) const
Definition: L1ThrExtraInfo.cxx:710
TrigConf::L1ThrExtraInfo_cTAU::load
void load()
Update the internal members.
Definition: L1ThrExtraInfo.cxx:489
TrigConf::L1ThrExtraInfo_cTAU::WorkingPoints_cTAU
Definition: L1ThrExtraInfo.h:351
TrigConf::L1ThrExtraInfo_gJ
Definition: L1ThrExtraInfo.h:458
TrigConf::L1ThrExtraInfo_jEM::WorkingPoints_jEM::iso_fw
int iso_fw() const
Definition: L1ThrExtraInfo.h:196
TrigConf::L1ThrExtraInfo_jTE::load
void load()
Update the internal members.
Definition: L1ThrExtraInfo.cxx:632
TrigConf::L1ThrExtraInfo_jXE
Definition: L1ThrExtraInfo.h:531
TrigConf::L1ThrExtraInfo_gXE
Definition: L1ThrExtraInfo.h:573
TrigConf::L1ThrExtraInfo_eTAU::WorkingPoints_eTAU
Definition: L1ThrExtraInfo.h:253
TrigConf::L1ThrExtraInfo_JETLegacy::load
void load()
Update the internal members.
Definition: L1ThrExtraInfo.cxx:262
TrigConf::L1ThrExtraInfo_gXE::load
void load()
Update the internal members.
Definition: L1ThrExtraInfo.cxx:655
TrigConf::L1ThrExtraInfo::MU
const L1ThrExtraInfo_MU & MU() const
Definition: L1ThrExtraInfo.cxx:188
TrigConf::L1ThrExtraInfo::gLJ
const L1ThrExtraInfo_gLJ & gLJ() const
Definition: L1ThrExtraInfo.cxx:163
calibdata.exception
exception
Definition: calibdata.py:496
TrigConf::L1ThrExtraInfo::jXE
const L1ThrExtraInfo_jXE & jXE() const
Definition: L1ThrExtraInfo.cxx:168
TrigConf::L1ThrExtraInfo_jTAU::WorkingPoints_jTAU
Definition: L1ThrExtraInfo.h:298
python.BuildSignatureFlags.sig
sig
Definition: BuildSignatureFlags.py:215
TrigConf::L1ThrExtraInfo_jEM::load
void load()
Update the internal members.
Definition: L1ThrExtraInfo.cxx:342
TrigConf::L1ThrExtraInfo_eEM::WorkingPoints_eEM::wstot_fw
int wstot_fw() const
Definition: L1ThrExtraInfo.h:157
TrigConf::L1ThrExtraInfo_jEM::WorkingPoints_jEM::frac2_fw
int frac2_fw() const
Definition: L1ThrExtraInfo.h:198
TrigConf::L1ThrExtraInfo_MU::exclusionList
const std::map< std::string, std::vector< unsigned int > > & exclusionList(const std::string &listName) const
Definition: L1ThrExtraInfo.cxx:797
TrigConf::L1ThrExtraInfo_eTAU
Definition: L1ThrExtraInfo.h:251
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
TrigConf::L1ThrExtraInfo_cTAU::WorkingPoints_cTAU::eTAU_rCoreMin_WP_fw
unsigned int eTAU_rCoreMin_WP_fw() const
Definition: L1ThrExtraInfo.h:360
TrigConf::L1ThrExtraInfo::addExtraInfo
std::weak_ptr< TrigConf::L1ThrExtraInfoBase > addExtraInfo(const std::string &thrTypeName, const boost::property_tree::ptree &data)
Definition: L1ThrExtraInfo.cxx:82
PlotSFuncertainty.wp
wp
Definition: PlotSFuncertainty.py:112
TrigConf::L1ThrExtraInfo_MU::knownTgcPtValues
std::vector< unsigned int > knownTgcPtValues() const
Definition: L1ThrExtraInfo.cxx:775
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
TrigConf::L1ThrExtraInfo_MU::ptForRpcIdx
unsigned int ptForRpcIdx(unsigned int idx) const
Definition: L1ThrExtraInfo.cxx:735
TrigConf::L1ThrExtraInfo_cTAU
Definition: L1ThrExtraInfo.h:349
TrigConf::L1ThrExtraInfo_eTAU::WorkingPoints_eTAU::WorkingPoints_eTAU
WorkingPoints_eTAU(const boost::property_tree::ptree &)
Definition: L1ThrExtraInfo.cxx:377
TrigConf::L1ThrExtraInfo_EMTAULegacy::load
void load()
Update the internal members.
Definition: L1ThrExtraInfo.cxx:224
TrigConf::L1ThrExtraInfo_EMTAULegacy::isolation
const IsolationLegacy & isolation(const std::string &thrType, size_t bit) const
EM legacy extra info.
Definition: L1ThrExtraInfo.cxx:208
TrigConf::L1ThrExtraInfo_jJ::load
void load()
Update the internal members.
Definition: L1ThrExtraInfo.cxx:512
TrigConf::L1ThrExtraInfo_cTAU::WorkingPoints_cTAU::WorkingPoints_cTAU
WorkingPoints_cTAU(const boost::property_tree::ptree &)
Definition: L1ThrExtraInfo.cxx:469
TrigConf::L1ThrExtraInfo::createExtraInfo
static std::unique_ptr< L1ThrExtraInfoBase > createExtraInfo(const std::string &thrTypeName, const boost::property_tree::ptree &data)
Definition: L1ThrExtraInfo.cxx:13
TrigConf::L1ThrExtraInfo_XSLegacy::load
void load()
Update the internal members.
Definition: L1ThrExtraInfo.cxx:243
ptree
boost::property_tree::ptree ptree
Definition: JsonFileLoader.cxx:16
TrigConf::L1ThrExtraInfo_jXE::load
void load()
Update the internal members.
Definition: L1ThrExtraInfo.cxx:624
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
TrigConf::L1ThrExtraInfo_jTAU
Definition: L1ThrExtraInfo.h:296
TrigConf::L1ThrExtraInfo_MU::load
void load()
Update the internal members.
Definition: L1ThrExtraInfo.cxx:809
TrigConf::L1ThrExtraInfo_jLJ::load
void load()
Update the internal members.
Definition: L1ThrExtraInfo.cxx:535
TrigConf::DataStructure
Base class for Trigger configuration data and wrapper around underlying representation.
Definition: DataStructure.h:37
TrigConf::L1ThrExtraInfo_eTAU::WorkingPoints_eTAU::rHad_fw
int rHad_fw() const
Definition: L1ThrExtraInfo.h:259
TrigConf::L1ThrExtraInfo_eEM::WorkingPoints_eEM::rhad_fw
int rhad_fw() const
Definition: L1ThrExtraInfo.h:158
TrigConf::L1ThrExtraInfo_MU::knownRpcPtValues
std::vector< unsigned int > knownRpcPtValues() const
Definition: L1ThrExtraInfo.cxx:765
TrigConf::L1ThrExtraInfo_jEM::WorkingPoints_jEM::WorkingPoints_jEM
WorkingPoints_jEM()=default
y
#define y
TrigConf::L1ThrExtraInfo::gTE
const L1ThrExtraInfo_gTE & gTE() const
Definition: L1ThrExtraInfo.cxx:183
TrigConf::L1ThrExtraInfo_eEM::WorkingPoints_eEM
Definition: L1ThrExtraInfo.h:149
TriggerTest.rois
rois
Definition: TriggerTest.py:23
TrigConf::L1ThrExtraInfo_cTAU::WorkingPoints_cTAU::eTAU_rHadMin_WP_fw
unsigned int eTAU_rHadMin_WP_fw() const
Definition: L1ThrExtraInfo.h:363
TrigConf::L1ThrExtraInfo_EMTAULegacy
Definition: L1ThrExtraInfo.h:75
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
TrigConf::L1ThrExtraInfo_jTAU::WorkingPoints_jTAU::WorkingPoints_jTAU
WorkingPoints_jTAU(const boost::property_tree::ptree &)
Definition: L1ThrExtraInfo.cxx:421
TrigConf::L1ThrExtraInfo_MU::exclusionListNames
std::vector< std::string > exclusionListNames() const
Definition: L1ThrExtraInfo.cxx:786
ReadCalibFromCool.typeName
typeName
Definition: ReadCalibFromCool.py:477
TrigConf::L1ThrExtraInfo::cTAU
const L1ThrExtraInfo_cTAU & cTAU() const
Definition: L1ThrExtraInfo.cxx:143
TrigConf::L1ThrExtraInfo::XS
const L1ThrExtraInfo_XSLegacy & XS() const
Definition: L1ThrExtraInfo.cxx:113
TrigConf::L1ThrExtraInfo_jLJ
Definition: L1ThrExtraInfo.h:424
TrigConf::L1ThrExtraInfo_jTAU::load
void load()
Update the internal members.
Definition: L1ThrExtraInfo.cxx:434
TrigConf::L1ThrExtraInfo_gLJ
Definition: L1ThrExtraInfo.h:479
TrigConf::L1ThrExtraInfo_eEM
Definition: L1ThrExtraInfo.h:145
TrigConf::L1ThrExtraInfo::jTE
const L1ThrExtraInfo_jTE & jTE() const
Definition: L1ThrExtraInfo.cxx:173
TrigConf::L1ThrExtraInfo_jEM
Definition: L1ThrExtraInfo.h:189
TrigConf::L1ThrExtraInfo::hasInfo
bool hasInfo(const std::string &typeName) const
Definition: L1ThrExtraInfo.cxx:97
TrigConf::L1ThrExtraInfo_eTAU::load
void load()
Update the internal members.
Definition: L1ThrExtraInfo.cxx:392
LArCellBinning.etamin
etamin
Definition: LArCellBinning.py:137
TrigConf::L1ThrExtraInfo::EM
const L1ThrExtraInfo_EMTAULegacy & EM() const
Definition: L1ThrExtraInfo.cxx:103
TrigConf::L1ThrExtraInfo_gLJ::load
void load()
Update the internal members.
Definition: L1ThrExtraInfo.cxx:573
python.compressB64.c
def c
Definition: compressB64.py:93
TrigConf::L1ThrExtraInfo_eEM::WorkingPoints_eEM::reta_fw
int reta_fw() const
Definition: L1ThrExtraInfo.h:156
TrigConf::L1ThrExtraInfo_eEM::WorkingPoints_eEM::WorkingPoints_eEM
WorkingPoints_eEM()=default
TrigConf::L1ThrExtraInfo::gJ
const L1ThrExtraInfo_gJ & gJ() const
Definition: L1ThrExtraInfo.cxx:158
L1ThrExtraInfo.h
TrigConf::L1ThrExtraInfo::JET
const L1ThrExtraInfo_JETLegacy & JET() const
Definition: L1ThrExtraInfo.cxx:118
TrigConf::L1ThrExtraInfo_JETLegacy
Definition: L1ThrExtraInfo.h:95
TrigConf::L1ThrExtraInfo_jJ
Definition: L1ThrExtraInfo.h:390