ATLAS Offline Software
Loading...
Searching...
No Matches
L1ThrExtraInfo.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRIGCONFDATA_L1THREXTRAINFO_H
6#define TRIGCONFDATA_L1THREXTRAINFO_H
7
10
11#include <map>
12#include <string>
13#include <string_view>
14#include <vector>
15#include <stdexcept>
16
17namespace TrigConf {
18
38
40 public:
41 static std::unique_ptr<L1ThrExtraInfoBase> createExtraInfo(const std::string & thrTypeName, const boost::property_tree::ptree & data);
42
43 std::weak_ptr<TrigConf::L1ThrExtraInfoBase> addExtraInfo(const std::string & thrTypeName, const boost::property_tree::ptree & data);
44
45 const L1ThrExtraInfo_EMTAULegacy & EM() const;
46 const L1ThrExtraInfo_EMTAULegacy & TAU() const;
47 const L1ThrExtraInfo_JETLegacy & JET() const;
48 const L1ThrExtraInfo_XSLegacy & XS() const;
49 const L1ThrExtraInfo_eEM & eEM() const;
50 const L1ThrExtraInfo_jEM & jEM() const;
51 const L1ThrExtraInfo_eTAU & eTAU() const;
52 const L1ThrExtraInfo_jTAU & jTAU() const;
53 const L1ThrExtraInfo_cTAU & cTAU() const;
54 const L1ThrExtraInfo_jJ & jJ() const;
55 const L1ThrExtraInfo_gJ & gJ() const;
56 const L1ThrExtraInfo_gLJ & gLJ() const;
57 const L1ThrExtraInfo_jLJ & jLJ() const;
58 const L1ThrExtraInfo_gXE & gXE() const;
59 const L1ThrExtraInfo_jXE & jXE() const;
60 const L1ThrExtraInfo_gTE & gTE() const;
61 const L1ThrExtraInfo_cXE & cXE() const;
62 const L1ThrExtraInfo_jTE & jTE() const;
63 const L1ThrExtraInfo_MU & MU() const;
64
65 const L1ThrExtraInfoBase & thrExtraInfo(const std::string & thrTypeName) const;
66
67 bool hasInfo(const std::string & typeName) const;
68
69 void clear();
70
71 private:
72 // map from threshold type to L1ThrExtraInfo object
73 std::map<std::string, std::shared_ptr<TrigConf::L1ThrExtraInfoBase>> m_thrExtraInfo{};
74 std::shared_ptr<TrigConf::L1ThrExtraInfoBase> m_emptyInfo{ nullptr };
75 };
76
77
78
80 public:
81 L1ThrExtraInfo_EMTAULegacy(const std::string & thrTypeName, const ptree & data) :
82 L1ThrExtraInfoBase(thrTypeName, data) { load(); }
83 virtual ~L1ThrExtraInfo_EMTAULegacy() override = default;
84 virtual std::string className() const override { return "L1ThrExtraInfo_EMTAULegacy"; }
85 unsigned int emScale() const { return 1000 / resolutionMeV(); }
86 float ptMinToTopo() const { return m_ptMinToTopoMeV/1000.0f; }
87 unsigned int ptMinToTopoMeV() const { return m_ptMinToTopoMeV; }
88 unsigned int ptMinToTopoCounts() const { return energyInCounts( m_ptMinToTopoMeV, resolutionMeV() ); }
89 const IsolationLegacy & isolation(std::string_view thrType, size_t bit) const;
90 private:
92 void load();
94 unsigned int m_ptMinToTopoMeV{0}; // in MeV
95 std::map<std::string,std::vector<IsolationLegacy>, std::less<>> m_isolation{};
96 };
97
98
100 public:
101 L1ThrExtraInfo_JETLegacy(const std::string & thrTypeName, const ptree & data) :
102 L1ThrExtraInfoBase(thrTypeName, data) { load(); }
103 virtual ~L1ThrExtraInfo_JETLegacy() override = default;
104 virtual std::string className() const override { return "L1ThrExtraInfo_JETLegacy"; }
105 unsigned int jetScale() const { return 1000 / resolutionMeV(); }
106 double ptMinToTopoLargeWindow() const { return m_ptMinToTopoLargeWindowMeV / 1000.0; }
107 double ptMinToTopoSmallWindow() const { return m_ptMinToTopoSmallWindowMeV / 1000.0; }
112 private:
114 void load();
118 };
119
120
122 public:
123 L1ThrExtraInfo_XSLegacy(const std::string & thrTypeName, const ptree & data) :
124 L1ThrExtraInfoBase(thrTypeName, data) { load(); }
125 virtual ~L1ThrExtraInfo_XSLegacy() override = default;
126 virtual std::string className() const override { return "L1ThrExtraInfo_XSLegacy"; }
127 unsigned int xeMin() const { return m_xeMin; };
128 unsigned int xeMax() const { return m_xeMax; };
129 unsigned int teSqrtMin() const { return m_teSqrtMin; };
130 unsigned int teSqrtMax() const { return m_teSqrtMax; };
131 unsigned int xsSigmaScale() const { return m_xsSigmaScale; };
132 unsigned int xsSigmaOffset() const { return m_xsSigmaOffset; };
133 private:
135 void load();
137 unsigned int m_xeMin{0};
138 unsigned int m_xeMax{0};
139 unsigned int m_teSqrtMin{0};
140 unsigned int m_teSqrtMax{0};
141 unsigned int m_xsSigmaScale{0};
142 unsigned int m_xsSigmaOffset{0};
143 };
144
145
146 /***********************************
147 * Extra info for new thresholds
148 ***********************************/
150 public:
152 public:
153 WorkingPoints_eEM() = default;
154 WorkingPoints_eEM( const boost::property_tree::ptree & );
155 bool isDefined() const { return m_isDefined; }
156 int reta_fw() const { return m_reta_fw; }
157 int wstot_fw() const { return m_wstot_fw; }
158 int rhad_fw() const { return m_rhad_fw; }
159 float reta_d() const { return m_reta_d; }
160 float wstot_d() const { return m_wstot_d; }
161 float rhad_d() const { return m_rhad_d; }
162 private:
163 bool m_isDefined { false };
164 float m_reta_d { 0 };
165 float m_wstot_d { 0 };
166 float m_rhad_d { 0 };
167 int m_reta_fw { 0 };
168 int m_wstot_fw { 0 };
169 int m_rhad_fw { 0 };
170 };
171 L1ThrExtraInfo_eEM(const std::string & thrTypeName, const ptree & data) :
172 L1ThrExtraInfoBase(thrTypeName, data) { load(); }
173 virtual ~L1ThrExtraInfo_eEM() override = default;
174 virtual std::string className() const override { return "L1ThrExtraInfo_eEM"; }
175 unsigned int maxEtMeV() const { return m_maxEt; }
176 unsigned int maxEtCounts(const unsigned int resolutionMeV) const { return TrigConf::energyInCounts( m_maxEt, resolutionMeV ); }
177 float maxEt() const { return m_maxEt/1000.0f; }
178 float ptMinToTopo() const { return m_ptMinToTopoMeV/1000.0f; }
179 unsigned int ptMinToTopoMeV() const { return m_ptMinToTopoMeV; }
180 unsigned int ptMinToTopoCounts() const { return energyInCounts( m_ptMinToTopoMeV, resolutionMeV() ); }
181 const WorkingPoints_eEM & isolation(TrigConf::Selection::WP wp, int eta) const { return m_isolation.at(wp).at(eta); }
183 unsigned int algoVersion() const { return m_algoVersion; }
184 private:
186 void load();
188 unsigned int m_ptMinToTopoMeV{0};
189 unsigned int m_maxEt { 0 };
190 std::map<TrigConf::Selection::WP, ValueWithEtaDependence<WorkingPoints_eEM>> m_isolation{};
191 unsigned int m_algoVersion { 0 };
192 };
193 std::ostream & operator<<(std::ostream & os, const TrigConf::L1ThrExtraInfo_eEM::WorkingPoints_eEM & iso);
194
196 public:
198 public:
199 WorkingPoints_jEM() = default;
200 WorkingPoints_jEM( const boost::property_tree::ptree & );
201 bool isDefined() const { return m_isDefined; }
202 int iso_fw() const { return m_iso_fw; }
203 int frac_fw() const { return m_frac_fw; }
204 int frac2_fw() const { return m_frac2_fw; }
205 float iso_d() const { return m_iso_d; }
206 float frac_d() const { return m_frac_d; }
207 float frac2_d() const { return m_frac2_d; }
208 private:
209 bool m_isDefined { false };
210 float m_iso_d { 0 };
211 float m_frac_d { 0 };
212 float m_frac2_d { 0 };
213 int m_iso_fw { 0 };
214 int m_frac_fw { 0 };
215 int m_frac2_fw { 0 };
216 };
217 L1ThrExtraInfo_jEM(const std::string & thrTypeName, const ptree & data) :
218 L1ThrExtraInfoBase(thrTypeName, data) { load(); }
219 virtual ~L1ThrExtraInfo_jEM() override = default;
220 virtual std::string className() const override { return "L1ThrExtraInfo_jEM"; }
221 const WorkingPoints_jEM & isolation(TrigConf::Selection::WP wp, int eta) const { return m_isolation.at(wp).at(eta); }
223 unsigned int maxEtMeV() const { return m_maxEt; }
224 unsigned int maxEtCounts(const unsigned int resolutionMeV) const { return TrigConf::energyInCounts( m_maxEt, resolutionMeV ); }
225 float maxEt() const { return m_maxEt/1000.0f; }
226 float ptMinToTopo(const std::string& module) const { return ptMinToTopoMeV(module)/ 1000.0; }
227 unsigned int ptMinToTopoCounts(const std::string& module) const { return energyInCounts(ptMinToTopoMeV(module), resolutionMeV()); }
228 unsigned int ptMinToTopoMeV(const std::string& module) const {
229 if(module=="1C" || module=="1A") return m_ptMinToTopoMeV1;
230 if(module=="2C" || module=="2A") return m_ptMinToTopoMeV2;
231 if(module=="3C" || module=="3A") return m_ptMinToTopoMeV3;
232 throw std::runtime_error("L1ThrExtraInfo: Module" + module + " not recongnised for jEM ptMinToTopo");
233 }
234 float ptMinxTOB(const std::string& module) const { return ptMinxTOBMeV(module)/ 1000.0; }
235 unsigned int ptMinxTOBCounts(const std::string& module) const { return energyInCounts(ptMinxTOBMeV(module), resolutionMeV()); }
236 unsigned int ptMinxTOBMeV(const std::string& module) const {
237 if(module=="1C" || module=="1A") return m_ptMinxTOBMeV1;
238 if(module=="2C" || module=="2A") return m_ptMinxTOBMeV2;
239 if(module=="3C" || module=="3A") return m_ptMinxTOBMeV3;
240 throw std::runtime_error("L1ThrExtraInfo: Module" + module + " not recongnised for jEM ptMinxTOB");
241 }
242 private:
244 void load();
246 unsigned int m_maxEt { 0 };
247 unsigned int m_ptMinToTopoMeV1{0};
248 unsigned int m_ptMinToTopoMeV2{0};
249 unsigned int m_ptMinToTopoMeV3{0};
250 unsigned int m_ptMinxTOBMeV1{0};
251 unsigned int m_ptMinxTOBMeV2{0};
252 unsigned int m_ptMinxTOBMeV3{0};
253 std::map<TrigConf::Selection::WP, ValueWithEtaDependence<WorkingPoints_jEM>> m_isolation{};
254 };
255 std::ostream & operator<<(std::ostream & os, const TrigConf::L1ThrExtraInfo_jEM::WorkingPoints_jEM & iso);
256
258 public:
260 public:
261 WorkingPoints_eTAU( const boost::property_tree::ptree & );
262 bool isDefined() const { return m_isDefined; }
263 int rCore_fw() const { return m_rCore_fw; }
264 float rCore_d() const { return m_rCore_d; }
265 int rHad_fw() const { return m_rHad_fw; }
266 float rHad_d() const { return m_rHad_d; }
267 private:
268 bool m_isDefined { false };
269 int m_rCore_fw {0};
270 int m_rHad_fw {0};
271 float m_rCore_d { 0 };
272 float m_rHad_d { 0 };
273 };
274 L1ThrExtraInfo_eTAU(const std::string & thrTypeName, const ptree & data) :
275 L1ThrExtraInfoBase(thrTypeName, data) { load(); }
276 virtual ~L1ThrExtraInfo_eTAU() override = default;
277 virtual std::string className() const override { return "L1ThrExtraInfo_eTAU"; }
278 unsigned int minIsoEtMeV() const { return m_minIsoEt; }
279 unsigned int minIsoEtCounts(const unsigned int resolutionMeV) const { return TrigConf::energyInCounts( m_minIsoEt, resolutionMeV ); }
280 float minIsoEt() const { return m_minIsoEt/1000.0f; }
281 unsigned int maxEtMeV() const { return m_maxEt; }
282 unsigned int maxEtCounts(const unsigned int resolutionMeV) const { return TrigConf::energyInCounts( m_maxEt, resolutionMeV ); }
283 float maxEt() const { return m_maxEt/1000.0f; }
284 float ptMinToTopo() const { return m_ptMinToTopoMeV/1000.0f; }
285 unsigned int ptMinToTopoMeV() const { return m_ptMinToTopoMeV; }
286 unsigned int ptMinToTopoCounts() const { return energyInCounts( m_ptMinToTopoMeV, resolutionMeV() ); }
287 const WorkingPoints_eTAU & isolation(TrigConf::Selection::WP wp, int eta) const { return m_isolation.at(wp).at(eta); }
289 unsigned int algoVersion() const { return m_algoVersion; }
290 private:
292 void load();
294 unsigned int m_minIsoEt { 0 }; // In MeV
295 unsigned int m_maxEt { 0 }; // In MeV
296 unsigned int m_ptMinToTopoMeV{0};
297 std::map<TrigConf::Selection::WP, ValueWithEtaDependence<WorkingPoints_eTAU>> m_isolation{};
298 unsigned int m_algoVersion { 0 };
299 };
300 std::ostream & operator<<(std::ostream & os, const TrigConf::L1ThrExtraInfo_eTAU::WorkingPoints_eTAU & iso);
301
303 public:
305 public:
306 WorkingPoints_jTAU( const boost::property_tree::ptree & );
307 bool isDefined() const { return m_isDefined; }
308 int isolation_fw() const { return m_isolation_fw; }
309 float isolation_d() const { return m_isolation_d; }
310 private:
311 bool m_isDefined { false };
313 float m_isolation_d { 0 };
314 };
315 L1ThrExtraInfo_jTAU(const std::string & thrTypeName, const ptree & data) :
316 L1ThrExtraInfoBase(thrTypeName, data) { load(); }
317 virtual ~L1ThrExtraInfo_jTAU() override = default;
318 virtual std::string className() const override { return "L1ThrExtraInfo_jTAU"; }
319 const WorkingPoints_jTAU & isolation(TrigConf::Selection::WP wp, int eta) const { return m_isolation.at(wp).at(eta); }
321 unsigned int maxEtMeV() const { return m_maxEt; }
322 unsigned int maxEtCounts(const unsigned int resolutionMeV) const { return TrigConf::energyInCounts( m_maxEt, resolutionMeV ); }
323 float maxEt() const { return m_maxEt/1000.0f; }
324 float ptMinToTopo(const std::string& module) const { return ptMinToTopoMeV(module)/ 1000.0; }
325 unsigned int ptMinToTopoCounts(const std::string& module) const { return energyInCounts(ptMinToTopoMeV(module), resolutionMeV()); }
326 unsigned int ptMinToTopoMeV(const std::string& module) const {
327 if(module=="1C" || module=="1A") return m_ptMinToTopoMeV1;
328 if(module=="2C" || module=="2A") return m_ptMinToTopoMeV2;
329 if(module=="3C" || module=="3A") return m_ptMinToTopoMeV3;
330 throw std::runtime_error("L1ThrExtraInfo: Module" + module + " not recongnised for jTAU ptMinToTopo");
331 }
332 float ptMinxTOB(const std::string& module) const { return ptMinxTOBMeV(module)/ 1000.0; }
333 unsigned int ptMinxTOBCounts(const std::string& module) const { return energyInCounts(ptMinxTOBMeV(module), resolutionMeV()); }
334 unsigned int ptMinxTOBMeV(const std::string& module) const {
335 if(module=="1C" || module=="1A") return m_ptMinxTOBMeV1;
336 if(module=="2C" || module=="2A") return m_ptMinxTOBMeV2;
337 if(module=="3C" || module=="3A") return m_ptMinxTOBMeV3;
338 throw std::runtime_error("L1ThrExtraInfo: Module" + module + " not recongnised for jTAU ptMinxTOB");
339 }
340 private:
342 void load();
344 unsigned int m_maxEt { 0 };
345 unsigned int m_ptMinToTopoMeV1{0};
346 unsigned int m_ptMinToTopoMeV2{0};
347 unsigned int m_ptMinToTopoMeV3{0};
348 unsigned int m_ptMinxTOBMeV1{0};
349 unsigned int m_ptMinxTOBMeV2{0};
350 unsigned int m_ptMinxTOBMeV3{0};
351 std::map<TrigConf::Selection::WP, ValueWithEtaDependence<WorkingPoints_jTAU>> m_isolation{};
352 };
353 std::ostream & operator<<(std::ostream & os, const TrigConf::L1ThrExtraInfo_jTAU::WorkingPoints_jTAU & iso);
354
356 public:
358 public:
359 WorkingPoints_cTAU( const boost::property_tree::ptree & );
360 bool isDefined() const { return m_isDefined; }
361 unsigned int isolation_fw() const { return m_isolation_fw; }
362 float isolation_d() const { return m_isolation_d; }
365 float eTAU_rCoreMin_WP_d() const { return m_eTAU_rCoreMin_WP_d; }
366 unsigned int eTAU_rCoreMin_WP_fw() const { return m_eTAU_rCoreMin_WP_fw; }
368 float eTAU_rHadMin_WP_d() const { return m_eTAU_rHadMin_WP_d; }
369 unsigned int eTAU_rHadMin_WP_fw() const { return m_eTAU_rHadMin_WP_fw; }
371 private:
372 bool m_isDefined {false};
373 unsigned int m_isolation_fw {0};
374 float m_isolation_d {0};
378 unsigned int m_eTAU_rCoreMin_WP_fw {0};
380 unsigned int m_eTAU_rHadMin_WP_fw {0};
381 };
382 L1ThrExtraInfo_cTAU(const std::string & thrTypeName, const ptree & data) :
383 L1ThrExtraInfoBase(thrTypeName, data) { load(); }
384 virtual ~L1ThrExtraInfo_cTAU() override = default;
385 virtual std::string className() const override { return "L1ThrExtraInfo_cTAU"; }
386 const WorkingPoints_cTAU & isolation(TrigConf::Selection::WP wp, int eta) const { return m_isolation.at(wp).at(eta); }
388 private:
390 void load();
392 std::map<TrigConf::Selection::WP, ValueWithEtaDependence<WorkingPoints_cTAU>> m_isolation{};
393 };
394 std::ostream & operator<<(std::ostream & os, const TrigConf::L1ThrExtraInfo_cTAU::WorkingPoints_cTAU & iso);
395
397 public:
398 L1ThrExtraInfo_jJ(const std::string & thrTypeName, const ptree & data) :
399 L1ThrExtraInfoBase(thrTypeName, data) { load(); }
400 virtual ~L1ThrExtraInfo_jJ() override = default;
401 virtual std::string className() const override { return "L1ThrExtraInfo_jJ"; }
402 float ptMinToTopo(const std::string& module) const { return ptMinToTopoMeV(module)/ 1000.0; }
403 unsigned int ptMinToTopoCounts(const std::string& module) const { return energyInCounts(ptMinToTopoMeV(module), resolutionMeV()); }
404 unsigned int ptMinToTopoMeV(const std::string& module) const {
405 if(module=="1C" || module=="1A") return m_ptMinToTopoMeV1;
406 if(module=="2C" || module=="2A") return m_ptMinToTopoMeV2;
407 if(module=="3C" || module=="3A") return m_ptMinToTopoMeV3;
408 throw std::runtime_error("L1ThrExtraInfo: Module" + module + " not recongnised for jJ ptMinToTopo");
409 }
410 float ptMinxTOB(const std::string& module) const { return ptMinxTOBMeV(module)/ 1000.0; }
411 unsigned int ptMinxTOBCounts(const std::string& module) const { return energyInCounts(ptMinxTOBMeV(module), resolutionMeV()); }
412 unsigned int ptMinxTOBMeV(const std::string& module) const {
413 if(module=="1C" || module=="1A") return m_ptMinxTOBMeV1;
414 if(module=="2C" || module=="2A") return m_ptMinxTOBMeV2;
415 if(module=="3C" || module=="3A") return m_ptMinxTOBMeV3;
416 throw std::runtime_error("L1ThrExtraInfo: Module" + module + " not recongnised for jJ ptMinxTOB");
417 }
418 float seedThreshold(const std::string& module) const { return seedThresholdMeV(module)/ 1000.0; }
419 unsigned int seedThresholdCounts(const std::string& module) const { return energyInCounts(seedThresholdMeV(module), 25 /*jFEX internal resolution!*/); }
420 unsigned int seedThresholdMeV(const std::string& module) const {
421 if(module=="1C" || module=="1A") return m_seedThresholdMeV1;
422 if(module=="2C" || module=="2A") return m_seedThresholdMeV2;
423 if(module=="3C" || module=="3A") return m_seedThresholdMeV3;
424 throw std::runtime_error("L1ThrExtraInfo: Module" + module + " not recongnised for jJ seedThreshold");
425 }
426 private:
428 void load();
430 unsigned int m_ptMinToTopoMeV1{0};
431 unsigned int m_ptMinToTopoMeV2{0};
432 unsigned int m_ptMinToTopoMeV3{0};
433 unsigned int m_ptMinxTOBMeV1{0};
434 unsigned int m_ptMinxTOBMeV2{0};
435 unsigned int m_ptMinxTOBMeV3{0};
436 int m_seedThresholdMeV1{-1}; //signed to allow effectively turning off seed thresholding via negative values
439 };
440
442 public:
443 L1ThrExtraInfo_jLJ(const std::string & thrTypeName, const ptree & data) :
444 L1ThrExtraInfoBase(thrTypeName, data) { load(); }
445 virtual ~L1ThrExtraInfo_jLJ() override = default;
446 virtual std::string className() const override { return "L1ThrExtraInfo_jLJ"; }
447 float ptMinToTopo(const std::string& module) const { return ptMinToTopoMeV(module)/ 1000.0; }
448 unsigned int ptMinToTopoCounts(const std::string& module) const { return energyInCounts(ptMinToTopoMeV(module), resolutionMeV()); }
449 unsigned int ptMinToTopoMeV(const std::string& module) const {
450 if(module=="1C" || module=="1A") return m_ptMinToTopoMeV1;
451 if(module=="2C" || module=="2A") return m_ptMinToTopoMeV2;
452 if(module=="3C" || module=="3A") return m_ptMinToTopoMeV3;
453 throw std::runtime_error("L1ThrExtraInfo: Module" + module + " not recongnised for jLJ ptMinToTopo");
454 }
455 float ptMinxTOB(const std::string& module) const { return ptMinxTOBMeV(module)/ 1000.0; }
456 unsigned int ptMinxTOBCounts(const std::string& module) const { return energyInCounts(ptMinxTOBMeV(module), resolutionMeV()); }
457 unsigned int ptMinxTOBMeV(const std::string& module) const {
458 if(module=="1C" || module=="1A") return m_ptMinxTOBMeV1;
459 if(module=="2C" || module=="2A") return m_ptMinxTOBMeV2;
460 if(module=="3C" || module=="3A") return m_ptMinxTOBMeV3;
461 throw std::runtime_error("L1ThrExtraInfo: Module" + module + " not recongnised for jLJ ptMinxTOB");
462 }
463 private:
465 void load();
467 unsigned int m_ptMinToTopoMeV1{0};
468 unsigned int m_ptMinToTopoMeV2{0};
469 unsigned int m_ptMinToTopoMeV3{0};
470 unsigned int m_ptMinxTOBMeV1{0};
471 unsigned int m_ptMinxTOBMeV2{0};
472 unsigned int m_ptMinxTOBMeV3{0};
473 };
474
476 public:
477 L1ThrExtraInfo_gJ(const std::string & thrTypeName, const ptree & data) :
478 L1ThrExtraInfoBase(thrTypeName, data) { load(); }
479 virtual ~L1ThrExtraInfo_gJ() override = default;
480 virtual std::string className() const override { return "L1ThrExtraInfo_gJ"; }
481 float ptMinToTopo(const unsigned int eta_range) const { return ptMinToTopoMeV(eta_range)/ 1000.0; }
482 unsigned int ptMinToTopoCounts(const unsigned int eta_range) const { return energyInCounts(ptMinToTopoMeV(eta_range), resolutionMeV()); }
483 unsigned int ptMinToTopoMeV(const unsigned int eta_range) const {
484 if(eta_range==1) return m_ptMinToTopoMeV1;
485 if(eta_range==2) return m_ptMinToTopoMeV2;
486 throw std::runtime_error("L1ThrExtraInfo: Eta range " + std::to_string(eta_range) + " not valid for gJ ptMinToTopo");
487 }
488 private:
490 void load();
492 unsigned int m_ptMinToTopoMeV1{0};
493 unsigned int m_ptMinToTopoMeV2{0};
494 };
495
497 public:
498 L1ThrExtraInfo_gLJ(const std::string & thrTypeName, const ptree & data) :
499 L1ThrExtraInfoBase(thrTypeName, data) { load(); }
500 virtual ~L1ThrExtraInfo_gLJ() override = default;
501 virtual std::string className() const override { return "L1ThrExtraInfo_gLJ"; }
502 float ptMinToTopo(const unsigned int eta_range) const { return ptMinToTopoMeV(eta_range)/ 1000.0; }
503 unsigned int ptMinToTopoCounts(const unsigned int eta_range) const { return energyInCounts(ptMinToTopoMeV(eta_range), resolutionMeV()); }
504 unsigned int ptMinToTopoMeV(const unsigned int eta_range) const {
505 if(eta_range==1) return m_ptMinToTopoMeV1;
506 if(eta_range==2) return m_ptMinToTopoMeV2;
507 throw std::runtime_error("L1ThrExtraInfo: Eta range " + std::to_string(eta_range) + " not valid for gLJ ptMinToTopo");
508 }
509 float seedThr(const char fpga) const { return seedThrMeV(fpga)/ 1000.0; }
510 unsigned int seedThrCounts(const char fpga) const { return energyInCounts(seedThrMeV(fpga), resolutionMeV()); }
511 unsigned int seedThrMeV(const char fpga) const {
512 if(fpga=='A') return m_seedThrMeVA;
513 if(fpga=='B') return m_seedThrMeVB;
514 if(fpga=='C') return m_seedThrMeVC;
515 throw std::runtime_error(std::string("L1ThrExtraInfo: FPGA ") + fpga + " not recongnised for gLJ seedThr");
516 }
517 float rhoTowerMin(const char fpga) const { return rhoTowerMinMeV(fpga)/ 1000.0; }
518 int rhoTowerMinMeV(const char fpga) const {
519 if(fpga=='A') return m_rhoTowerMinMeVA;
520 if(fpga=='B') return m_rhoTowerMinMeVB;
521 if(fpga=='C') return m_rhoTowerMinMeVC;
522 throw std::runtime_error(std::string("L1ThrExtraInfo: FPGA ") + fpga + " not recongnised for gLJ rhoTowerMin");
523 }
524 float rhoTowerMax(const char fpga) const { return rhoTowerMaxMeV(fpga)/ 1000.0; }
525 int rhoTowerMaxMeV(const char fpga) const {
526 if(fpga=='A') return m_rhoTowerMaxMeVA;
527 if(fpga=='B') return m_rhoTowerMaxMeVB;
528 if(fpga=='C') return m_rhoTowerMaxMeVC;
529 throw std::runtime_error(std::string("L1ThrExtraInfo: FPGA ") + fpga + " not recongnised for gLJ rhoTowerMax");
530 }
531 private:
533 void load();
535 unsigned int m_ptMinToTopoMeV1{0};
536 unsigned int m_ptMinToTopoMeV2{0};
537 unsigned int m_seedThrMeVA{0};
538 unsigned int m_seedThrMeVB{0};
539 unsigned int m_seedThrMeVC{0};
546 };
547
549 public:
550 L1ThrExtraInfo_jXE(const std::string & thrTypeName, const ptree & data) :
551 L1ThrExtraInfoBase(thrTypeName, data) { load(); }
552 virtual ~L1ThrExtraInfo_jXE() override = default;
553 virtual std::string className() const override { return "L1ThrExtraInfo_jXE"; }
554 private:
556 void load();
558 };
559
561 public:
562 L1ThrExtraInfo_jTE(const std::string & thrTypeName, const ptree & data) :
563 L1ThrExtraInfoBase(thrTypeName, data) { load(); }
564 virtual ~L1ThrExtraInfo_jTE() override = default;
565 virtual std::string className() const override { return "L1ThrExtraInfo_jTE"; }
566 unsigned int etaBoundary_fw(const std::string& module) const {
567 if(module=="1C" || module=="1A") return m_etaBoundary1_fw;
568 if(module=="2C" || module=="2A") return m_etaBoundary2_fw;
569 if(module=="3C" || module=="3A") return m_etaBoundary3_fw;
570 throw std::runtime_error("L1ThrExtraInfo: Module" + module + " not recongnised for jTE etaBoundary_fw");
571 }
572 unsigned int etaBoundary(const std::string& module) const {
573 if(module=="1C" || module=="1A") return m_etaBoundary1;
574 if(module=="2C" || module=="2A") return m_etaBoundary2;
575 if(module=="3C" || module=="3A") return m_etaBoundary3;
576 throw std::runtime_error("L1ThrExtraInfo: Module" + module + " not recongnised for jTE etaBoundary");
577 }
578 private:
580 void load();
582 unsigned int m_etaBoundary1{0}; // eta for module 1A, 1C
583 unsigned int m_etaBoundary1_fw{0}; // tower number for module 1A, 1C
584 unsigned int m_etaBoundary2{0}; // eta for module 2A, 2C
585 unsigned int m_etaBoundary2_fw{0}; // tower number for module 2A, 2C
586 unsigned int m_etaBoundary3{0}; // eta for module 3A, 3C
587 unsigned int m_etaBoundary3_fw{0}; // tower number for module 3A, 3C
588 };
589
591 public:
592 L1ThrExtraInfo_gXE(const std::string & thrTypeName, const ptree & data) :
593 L1ThrExtraInfoBase(thrTypeName, data) { load(); }
594 virtual ~L1ThrExtraInfo_gXE() override = default;
595 virtual std::string className() const override { return "L1ThrExtraInfo_gXE"; }
596 float seedThr(const char fpga) const { return energyInCounts(seedThrMeV(fpga), resolutionMeV()); }//seedThr is defined in counts
597 unsigned int seedThrCounts(const char fpga) const { return energyInCounts(seedThrMeV(fpga), resolutionMeV()); }
598 unsigned int seedThrMeV(const char fpga) const {
599 if(fpga=='A') return m_seedThrMeVA;
600 if(fpga=='B') return m_seedThrMeVB;
601 if(fpga=='C') return m_seedThrMeVC;
602 throw std::runtime_error(std::string("L1ThrExtraInfo: FPGA ") + fpga + " not recongnised for gXE seedThr");
603 }
604 unsigned int XERHO_param(const char fpga, const bool sigmapos) const {
605 if(fpga=='A' && sigmapos==true) return m_XERHO_sigmaPosA;
606 if(fpga=='B' && sigmapos==true) return m_XERHO_sigmaPosB;
607 if(fpga=='C' && sigmapos==true) return m_XERHO_sigmaPosC;
608 if(fpga=='A' && sigmapos==false) return m_XERHO_sigmaNegA;
609 if(fpga=='B' && sigmapos==false) return m_XERHO_sigmaNegB;
610 if(fpga=='C' && sigmapos==false) return m_XERHO_sigmaNegC;
611 throw std::runtime_error(std::string("L1ThrExtraInfo: ") + fpga + " and " + (sigmapos ? "pos" : "neg") + " not recongnised for gXE XERHO_param");
612 }
613 unsigned int JWOJ_param(const char fpga, const char param) const {
614 if(fpga=='A' && param=='a') return m_XEJWOJ_a_A;
615 if(fpga=='B' && param=='a') return m_XEJWOJ_a_B;
616 if(fpga=='C' && param=='a') return m_XEJWOJ_a_C;
617 if(fpga=='A' && param=='b') return m_XEJWOJ_b_A;
618 if(fpga=='B' && param=='b') return m_XEJWOJ_b_B;
619 if(fpga=='C' && param=='b') return m_XEJWOJ_b_C;
620 if(fpga=='A' && param=='c') return m_XEJWOJ_c_A;
621 if(fpga=='B' && param=='c') return m_XEJWOJ_c_B;
622 if(fpga=='C' && param=='c') return m_XEJWOJ_c_C;
623 throw std::runtime_error(std::string("L1ThrExtraInfo: ") + fpga + " and " + param + " not recongnised for gXE JWOJ_param");
624 }
625
626 unsigned int noiseCutThr(const char fpga) const {
627 if(fpga=='A') return m_noiseCutThrA;
628 if(fpga=='B') return m_noiseCutThrB;
629 if(fpga=='C') return m_noiseCutThrC;
630 throw std::runtime_error(std::string("L1ThrExtraInfo: FPGA ") + fpga + " not recongnised for gXE noiseCutThr");
631 }
632
633 private:
635 void load();
637 unsigned int m_XERHO_sigmaPosA{0};
638 unsigned int m_XERHO_sigmaPosB{0};
639 unsigned int m_XERHO_sigmaPosC{0};
640 unsigned int m_XERHO_sigmaNegA{0};
641 unsigned int m_XERHO_sigmaNegB{0};
642 unsigned int m_XERHO_sigmaNegC{0};
643 unsigned int m_seedThrMeVA{0};
644 unsigned int m_seedThrMeVB{0};
645 unsigned int m_seedThrMeVC{0};
646 unsigned int m_XEJWOJ_a_A{0};
647 unsigned int m_XEJWOJ_a_B{0};
648 unsigned int m_XEJWOJ_a_C{0};
649 unsigned int m_XEJWOJ_b_A{0};
650 unsigned int m_XEJWOJ_b_B{0};
651 unsigned int m_XEJWOJ_b_C{0};
652 unsigned int m_XEJWOJ_c_A{0};
653 unsigned int m_XEJWOJ_c_B{0};
654 unsigned int m_XEJWOJ_c_C{0};
655 unsigned int m_noiseCutThrA{0};
656 unsigned int m_noiseCutThrB{0};
657 unsigned int m_noiseCutThrC{0};
658 };
659
661 public:
662 L1ThrExtraInfo_gTE(const std::string & thrTypeName, const ptree & data) :
663 L1ThrExtraInfoBase(thrTypeName, data) { load(); }
664 virtual ~L1ThrExtraInfo_gTE() override = default;
665 virtual std::string className() const override { return "L1ThrExtraInfo_gTE"; }
666 private:
668 void load();
670 };
671
673 public:
674 L1ThrExtraInfo_cXE(const std::string & thrTypeName, const ptree & data) :
675 L1ThrExtraInfoBase(thrTypeName, data) { load(); }
676 virtual ~L1ThrExtraInfo_cXE() override = default;
677 virtual std::string className() const override { return "L1ThrExtraInfo_cXE"; }
678 float jXeWeight() const { return m_jXeWeight; }
679 float gXeWeight() const { return m_gXeWeight; }
680 private:
682 void load();
684 // weights/coefficients for jXE and gXE contributions to cXE
685 float m_jXeWeight{0.};
686 float m_gXeWeight{0.};
687 };
688
690 public:
691 L1ThrExtraInfo_MU(const std::string & thrTypeName, const ptree & data) :
692 L1ThrExtraInfoBase(thrTypeName, data) { load(); }
693 virtual ~L1ThrExtraInfo_MU() override = default;
694 virtual std::string className() const override { return "L1ThrExtraInfo_MU"; }
695 unsigned int rpcIdxForPt(unsigned int pt) const;
696 unsigned int tgcIdxForPt(unsigned int pt) const;
697 unsigned int ptForRpcIdx(unsigned int idx) const;
698 unsigned int ptForTgcIdx(unsigned int idx) const;
699 unsigned int tgcIdxForRpcIdx(unsigned int rpcIdx) const; // this maps the rpc idx to the tgc idx for the same pt value
700 std::vector<unsigned int> knownRpcPtValues() const;
701 std::vector<unsigned int> knownTgcPtValues() const;
702 std::vector<std::string> exclusionListNames() const;
703 const std::map<std::string, std::vector<unsigned int>> & exclusionList(const std::string & listName) const;
704 private:
706 void load();
708 std::map<unsigned int, unsigned int> m_rpcPtMap; // map of pt value (1..~20) to road index (0..5)
709 std::map<unsigned int, unsigned int> m_tgcPtMap; // map of pt value (1..~30) to road index (0..15)
710 std::map<std::string, std::map<std::string, std::vector<unsigned int>>> m_roiExclusionLists; // named lists of excluded rois
711 };
712
713}
714
715#endif
Scalar eta() const
pseudorapidity method
const ptree & data() const
Access to the underlying data, if needed.
boost::property_tree::ptree ptree
L1 extra information for certain threshold types.
unsigned int resolutionMeV() const
L1ThrExtraInfo_EMTAULegacy(const std::string &thrTypeName, const ptree &data)
const IsolationLegacy & isolation(std::string_view thrType, size_t bit) const
EM legacy extra info.
void load()
Update the internal members.
virtual ~L1ThrExtraInfo_EMTAULegacy() override=default
std::map< std::string, std::vector< IsolationLegacy >, std::less<> > m_isolation
virtual std::string className() const override
A string that is the name of the class.
unsigned int m_ptMinToTopoMeV
EM specific data.
unsigned int ptMinToTopoSmallWindowMeV() const
virtual std::string className() const override
A string that is the name of the class.
unsigned int ptMinToTopoSmallWindowCounts() const
virtual ~L1ThrExtraInfo_JETLegacy() override=default
unsigned int ptMinToTopoLargeWindowCounts() const
L1ThrExtraInfo_JETLegacy(const std::string &thrTypeName, const ptree &data)
void load()
Update the internal members.
unsigned int ptMinToTopoLargeWindowMeV() const
unsigned int m_ptMinToTopoLargeWindowMeV
JET specific data.
const std::map< std::string, std::vector< unsigned int > > & exclusionList(const std::string &listName) const
std::map< unsigned int, unsigned int > m_rpcPtMap
MU specific data.
std::vector< std::string > exclusionListNames() const
unsigned int rpcIdxForPt(unsigned int pt) const
unsigned int ptForTgcIdx(unsigned int idx) const
std::map< unsigned int, unsigned int > m_tgcPtMap
std::vector< unsigned int > knownTgcPtValues() const
unsigned int tgcIdxForRpcIdx(unsigned int rpcIdx) const
unsigned int tgcIdxForPt(unsigned int pt) const
std::vector< unsigned int > knownRpcPtValues() const
unsigned int ptForRpcIdx(unsigned int idx) const
std::map< std::string, std::map< std::string, std::vector< unsigned int > > > m_roiExclusionLists
void load()
Update the internal members.
virtual std::string className() const override
A string that is the name of the class.
virtual ~L1ThrExtraInfo_MU() override=default
L1ThrExtraInfo_MU(const std::string &thrTypeName, const ptree &data)
virtual std::string className() const override
A string that is the name of the class.
L1ThrExtraInfo_XSLegacy(const std::string &thrTypeName, const ptree &data)
virtual ~L1ThrExtraInfo_XSLegacy() override=default
unsigned int m_xeMin
XS specific data.
void load()
Update the internal members.
WorkingPoints_cTAU(const boost::property_tree::ptree &)
std::map< TrigConf::Selection::WP, ValueWithEtaDependence< WorkingPoints_cTAU > > m_isolation
cTAU specific data
void load()
Update the internal members.
L1ThrExtraInfo_cTAU(const std::string &thrTypeName, const ptree &data)
const ValueWithEtaDependence< WorkingPoints_cTAU > & isolation(TrigConf::Selection::WP wp) const
virtual ~L1ThrExtraInfo_cTAU() override=default
const WorkingPoints_cTAU & isolation(TrigConf::Selection::WP wp, int eta) const
virtual std::string className() const override
A string that is the name of the class.
L1ThrExtraInfo_cXE(const std::string &thrTypeName, const ptree &data)
void load()
Update the internal members.
float m_jXeWeight
cXE specific data
virtual ~L1ThrExtraInfo_cXE() override=default
virtual std::string className() const override
A string that is the name of the class.
unsigned int ptMinToTopoMeV() const
std::map< TrigConf::Selection::WP, ValueWithEtaDependence< WorkingPoints_eEM > > m_isolation
const WorkingPoints_eEM & isolation(TrigConf::Selection::WP wp, int eta) const
const ValueWithEtaDependence< WorkingPoints_eEM > & isolation(TrigConf::Selection::WP wp) const
unsigned int maxEtMeV() const
unsigned int ptMinToTopoCounts() const
void load()
Update the internal members.
virtual ~L1ThrExtraInfo_eEM() override=default
unsigned int maxEtCounts(const unsigned int resolutionMeV) const
unsigned int m_ptMinToTopoMeV
eEM specific data
unsigned int algoVersion() const
virtual std::string className() const override
A string that is the name of the class.
L1ThrExtraInfo_eEM(const std::string &thrTypeName, const ptree &data)
WorkingPoints_eTAU(const boost::property_tree::ptree &)
unsigned int minIsoEtCounts(const unsigned int resolutionMeV) const
void load()
Update the internal members.
unsigned int maxEtCounts(const unsigned int resolutionMeV) const
unsigned int minIsoEtMeV() const
unsigned int m_minIsoEt
eTAU specific data
L1ThrExtraInfo_eTAU(const std::string &thrTypeName, const ptree &data)
unsigned int ptMinToTopoMeV() const
unsigned int algoVersion() const
unsigned int ptMinToTopoCounts() const
virtual ~L1ThrExtraInfo_eTAU() override=default
unsigned int maxEtMeV() const
const WorkingPoints_eTAU & isolation(TrigConf::Selection::WP wp, int eta) const
std::map< TrigConf::Selection::WP, ValueWithEtaDependence< WorkingPoints_eTAU > > m_isolation
const ValueWithEtaDependence< WorkingPoints_eTAU > & isolation(TrigConf::Selection::WP wp) const
virtual std::string className() const override
A string that is the name of the class.
unsigned int m_ptMinToTopoMeV1
gJ specific data
unsigned int ptMinToTopoCounts(const unsigned int eta_range) const
void load()
Update the internal members.
float ptMinToTopo(const unsigned int eta_range) const
unsigned int ptMinToTopoMeV(const unsigned int eta_range) const
virtual std::string className() const override
A string that is the name of the class.
L1ThrExtraInfo_gJ(const std::string &thrTypeName, const ptree &data)
virtual ~L1ThrExtraInfo_gJ() override=default
unsigned int m_ptMinToTopoMeV1
gLJ specific data
int rhoTowerMinMeV(const char fpga) const
virtual std::string className() const override
A string that is the name of the class.
unsigned int ptMinToTopoCounts(const unsigned int eta_range) const
virtual ~L1ThrExtraInfo_gLJ() override=default
void load()
Update the internal members.
int rhoTowerMaxMeV(const char fpga) const
float seedThr(const char fpga) const
unsigned int seedThrMeV(const char fpga) const
L1ThrExtraInfo_gLJ(const std::string &thrTypeName, const ptree &data)
unsigned int ptMinToTopoMeV(const unsigned int eta_range) const
unsigned int seedThrCounts(const char fpga) const
float rhoTowerMax(const char fpga) const
float rhoTowerMin(const char fpga) const
float ptMinToTopo(const unsigned int eta_range) const
virtual ~L1ThrExtraInfo_gTE() override=default
virtual std::string className() const override
A string that is the name of the class.
void load()
Update the internal members.
L1ThrExtraInfo_gTE(const std::string &thrTypeName, const ptree &data)
float seedThr(const char fpga) const
L1ThrExtraInfo_gXE(const std::string &thrTypeName, const ptree &data)
virtual std::string className() const override
A string that is the name of the class.
unsigned int XERHO_param(const char fpga, const bool sigmapos) const
unsigned int noiseCutThr(const char fpga) const
unsigned int seedThrMeV(const char fpga) const
void load()
Update the internal members.
unsigned int JWOJ_param(const char fpga, const char param) const
unsigned int m_XERHO_sigmaPosA
gXE specific data
unsigned int seedThrCounts(const char fpga) const
virtual ~L1ThrExtraInfo_gXE() override=default
unsigned int ptMinxTOBCounts(const std::string &module) const
virtual std::string className() const override
A string that is the name of the class.
const WorkingPoints_jEM & isolation(TrigConf::Selection::WP wp, int eta) const
unsigned int m_maxEt
jEM specific data
unsigned int maxEtCounts(const unsigned int resolutionMeV) const
const ValueWithEtaDependence< WorkingPoints_jEM > & isolation(TrigConf::Selection::WP wp) const
std::map< TrigConf::Selection::WP, ValueWithEtaDependence< WorkingPoints_jEM > > m_isolation
virtual ~L1ThrExtraInfo_jEM() override=default
unsigned int ptMinToTopoCounts(const std::string &module) const
unsigned int maxEtMeV() const
L1ThrExtraInfo_jEM(const std::string &thrTypeName, const ptree &data)
unsigned int ptMinxTOBMeV(const std::string &module) const
unsigned int ptMinToTopoMeV(const std::string &module) const
float ptMinxTOB(const std::string &module) const
void load()
Update the internal members.
float ptMinToTopo(const std::string &module) const
L1ThrExtraInfo_jJ(const std::string &thrTypeName, const ptree &data)
virtual std::string className() const override
A string that is the name of the class.
unsigned int seedThresholdCounts(const std::string &module) const
void load()
Update the internal members.
float ptMinxTOB(const std::string &module) const
unsigned int ptMinxTOBCounts(const std::string &module) const
unsigned int ptMinToTopoCounts(const std::string &module) const
unsigned int ptMinToTopoMeV(const std::string &module) const
float seedThreshold(const std::string &module) const
float ptMinToTopo(const std::string &module) const
unsigned int m_ptMinToTopoMeV1
jJ specific data
virtual ~L1ThrExtraInfo_jJ() override=default
unsigned int ptMinxTOBMeV(const std::string &module) const
unsigned int seedThresholdMeV(const std::string &module) const
float ptMinToTopo(const std::string &module) const
unsigned int ptMinxTOBCounts(const std::string &module) const
float ptMinxTOB(const std::string &module) const
void load()
Update the internal members.
unsigned int ptMinToTopoMeV(const std::string &module) const
unsigned int ptMinToTopoCounts(const std::string &module) const
unsigned int ptMinxTOBMeV(const std::string &module) const
virtual std::string className() const override
A string that is the name of the class.
virtual ~L1ThrExtraInfo_jLJ() override=default
L1ThrExtraInfo_jLJ(const std::string &thrTypeName, const ptree &data)
unsigned int m_ptMinToTopoMeV1
jLJ specific data
WorkingPoints_jTAU(const boost::property_tree::ptree &)
const ValueWithEtaDependence< WorkingPoints_jTAU > & isolation(TrigConf::Selection::WP wp) const
L1ThrExtraInfo_jTAU(const std::string &thrTypeName, const ptree &data)
unsigned int m_maxEt
jTAU specific data
virtual ~L1ThrExtraInfo_jTAU() override=default
unsigned int ptMinxTOBCounts(const std::string &module) const
unsigned int ptMinToTopoCounts(const std::string &module) const
unsigned int maxEtMeV() const
float ptMinxTOB(const std::string &module) const
unsigned int ptMinToTopoMeV(const std::string &module) const
float ptMinToTopo(const std::string &module) const
const WorkingPoints_jTAU & isolation(TrigConf::Selection::WP wp, int eta) const
unsigned int maxEtCounts(const unsigned int resolutionMeV) const
virtual std::string className() const override
A string that is the name of the class.
std::map< TrigConf::Selection::WP, ValueWithEtaDependence< WorkingPoints_jTAU > > m_isolation
void load()
Update the internal members.
unsigned int ptMinxTOBMeV(const std::string &module) const
L1ThrExtraInfo_jTE(const std::string &thrTypeName, const ptree &data)
virtual std::string className() const override
A string that is the name of the class.
unsigned int etaBoundary(const std::string &module) const
void load()
Update the internal members.
unsigned int etaBoundary_fw(const std::string &module) const
unsigned int m_etaBoundary1
jTE specific data
virtual ~L1ThrExtraInfo_jTE() override=default
L1ThrExtraInfo_jXE(const std::string &thrTypeName, const ptree &data)
virtual std::string className() const override
A string that is the name of the class.
void load()
Update the internal members.
virtual ~L1ThrExtraInfo_jXE() override=default
const L1ThrExtraInfo_eTAU & eTAU() const
const L1ThrExtraInfo_gXE & gXE() const
const L1ThrExtraInfo_jEM & jEM() const
std::map< std::string, std::shared_ptr< TrigConf::L1ThrExtraInfoBase > > m_thrExtraInfo
const L1ThrExtraInfo_XSLegacy & XS() const
const L1ThrExtraInfo_MU & MU() const
std::shared_ptr< TrigConf::L1ThrExtraInfoBase > m_emptyInfo
const L1ThrExtraInfoBase & thrExtraInfo(const std::string &thrTypeName) const
const L1ThrExtraInfo_jJ & jJ() const
const L1ThrExtraInfo_jLJ & jLJ() const
const L1ThrExtraInfo_cTAU & cTAU() const
const L1ThrExtraInfo_JETLegacy & JET() const
const L1ThrExtraInfo_EMTAULegacy & TAU() const
const L1ThrExtraInfo_gLJ & gLJ() const
std::weak_ptr< TrigConf::L1ThrExtraInfoBase > addExtraInfo(const std::string &thrTypeName, const boost::property_tree::ptree &data)
static std::unique_ptr< L1ThrExtraInfoBase > createExtraInfo(const std::string &thrTypeName, const boost::property_tree::ptree &data)
const L1ThrExtraInfo_gJ & gJ() const
const L1ThrExtraInfo_gTE & gTE() const
const L1ThrExtraInfo_eEM & eEM() const
const L1ThrExtraInfo_jTE & jTE() const
const L1ThrExtraInfo_jTAU & jTAU() const
const L1ThrExtraInfo_jXE & jXE() const
const L1ThrExtraInfo_EMTAULegacy & EM() const
bool hasInfo(const std::string &typeName) const
const L1ThrExtraInfo_cXE & cXE() const
class to implement a L1 threshold cut that varies with eta
Forward iterator to traverse the main components of the trigger configuration.
Definition Config.h:22
unsigned int energyInCounts(unsigned int energyMeV, unsigned int energyResolutionMeV)
helper funtion to translate energies into counts
std::ostream & operator<<(std::ostream &os, const TrigConf::IsolationLegacy &iso)