21 if(
const auto & thrVs =
data().get_child_optional(
"thrValues") ) {
22 for(
auto &
x : thrVs.get() ) {
23 auto isobits =
x.second.get_child(
"isobits").get_value<std::string>();
24 auto etamin =
x.second.get_child(
"etamin").get_value<
unsigned int>();
25 auto etamax =
x.second.get_child(
"etamax").get_value<
unsigned int>();
26 auto priority =
x.second.get_child(
"priority").get_value<
unsigned int>();
29 auto [ptr, ec] = std::from_chars(isobits.data(),
30 isobits.data() + isobits.size(), isomask, 2);
31 if (ec != std::errc{} || ptr != isobits.data() + isobits.size()) {
32 throw std::invalid_argument(
"Invalid isobits value: " + isobits);
34 m_isolationMask.addRangeValue(isomask, etamin, etamax, priority,
false);
41 os <<
"EM threshold " <<
name() <<
" with mapping " <<
mapping() << std::endl;
48 os <<
" eta = " <<
eta <<
" : " << value <<
" GeV " << valueMeV <<
" MeV " << value100MeV <<
" 100MeV "
49 << counts <<
" counts , isoMaks " << iso << std::endl;
59 auto [ptr, ec] = std::from_chars(isobits.data(),
60 isobits.data() + isobits.size(),
63 if (ec != std::errc{} || ptr != isobits.data() + isobits.size()) {
64 throw std::invalid_argument(
"Invalid isobits value: " + isobits);
76 static const std::vector<int> allowedBoundaries{0, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 28, 31, 49};
77 if(
const auto & thrVs =
data().get_child_optional(
"thrValues") ) {
78 for(
auto &
x : thrVs.get() ) {
79 auto etamin =
x.second.get_child(
"etamin").get_value<
int>();
84 auto etamax =
x.second.get_child(
"etamax").get_value<
int>();
89 auto priority =
x.second.get_child(
"priority").get_value<
unsigned int>();
90 auto window =
x.second.get_child(
"window").get_value<
unsigned int>();
173const std::shared_ptr<TrigConf::L1ThrExtraInfo_jTAU>
176 return dynamic_pointer_cast<TrigConf::L1ThrExtraInfo_jTAU>(
m_extraInfo.lock());
189const std::shared_ptr<TrigConf::L1ThrExtraInfo_cTAU>
192 return dynamic_pointer_cast<TrigConf::L1ThrExtraInfo_cTAU>(
m_extraInfo.lock());
271 auto muInfo = std::dynamic_pointer_cast<L1ThrExtraInfo_MU>(
m_extraInfo.lock());
Scalar eta() const
pseudorapidity method
char data[hepevt_bytes_allocation_ATLAS]
const ptree & data() const
Access to the underlying data, if needed.
std::optional< T > getAttribute_optional(const std::string &key) const
T getAttribute(const std::string &key, bool ignoreIfMissing=false, const T &def=T()) const
Access to simple attribute.
virtual float thrValue(int eta=0) const override
Accessor to the threshold value for eta-dependent threholds.
ValueWithEtaDependence< unsigned int > m_etaDepThrValue
eta-dependent threshold value in MeV
virtual unsigned int thrValueMeV(int eta=0) const
virtual unsigned int thrValueCounts(int eta=0) const
virtual unsigned int thrValue100MeV(int eta=0) const
as above above but in 100 MeV
uint16_t isolationMask(int eta) const
void print(std::ostream &os=std::cout) const override
ValueWithEtaDependence< uint16_t > m_isolationMask
ValueWithEtaDependence< unsigned int > m_etaDepWindow
eta-dependent threshold value in MeV
unsigned int window(int eta=0) const
float thrValue(int eta=0) const override
this function is only to satisfy the base class interface.
std::string m_region
comma-separated list of BA, EC, FW or the string ALL
unsigned int m_idxForward
std::string m_tgcFlags
a logical expression like 'F & C | F & H | C & H'
std::string m_rpcFlags
a logical expression like 'M'
std::string m_rpcExclROIList
a string sepcifying the list of ROIs to be excluded (the lists are defined in the extraInfo_MU)
unsigned int m_seedBcdelay
unsigned int m_seedMultiplicity
unsigned int m_seedBcdelay
Selection::WP m_isolation
const std::shared_ptr< L1ThrExtraInfo_cTAU > getExtraInfo() const
const std::shared_ptr< L1ThrExtraInfo_jTAU > getExtraInfo() const
Selection::WP m_isolation
unsigned int mapping() const
Accessor to the mapping number The mapping is unique within a type.
std::weak_ptr< L1ThrExtraInfoBase > m_extraInfo
static WP stringToWP(const std::string &)