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.
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)