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