ATLAS Offline Software
Loading...
Searching...
No Matches
IsolationCondition.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4
6
9namespace CP {
10
12 const std::vector<xAOD::Iso::IsolationType>& isoTypes,
13 const std::string& isoDecSuffix) :
14 asg::AsgMessaging{"IsolationCondition_"+name},
15 m_name(name), m_isolationType(isoTypes), m_isoDecSuffix(isoDecSuffix) {
16 for (const xAOD::Iso::IsolationType& iso_type : m_isolationType) {
17 std::string accName = std::string(toCString(iso_type)) + (isoDecSuffix.empty() ? "" : "_") + isoDecSuffix;
18 m_acc.emplace_back(accName);
19 // Save accessor to iso type without suffix as fallback protection - missing for events w/o PV 2025/02
20 std::string accName_noCloseBy = std::string(toCString(iso_type));
21 m_acc_noCloseBy.emplace_back(accName_noCloseBy);
22 }
23 }
24 IsolationCondition::IsolationCondition(const std::string& name, const std::vector<std::string>& isoTypes, const std::string& isoDecSuffix) :
25 asg::AsgMessaging{"IsolationCondition_"+name},
26 m_name(name), m_isoDecSuffix(isoDecSuffix) {
27 for (const std::string& iso_type : isoTypes) {
29 std::string accName = iso_type + (isoDecSuffix.empty() ? "" : "_") + isoDecSuffix;
30 m_acc.emplace_back(accName);
31 // Save accessor to iso type without suffix as fallback protection - missing for events w/o PV 2025/02
32 std::string accName_noCloseBy = iso_type;
33 m_acc_noCloseBy.emplace_back(accName_noCloseBy);
34 }
35 }
36 IsolationCondition::IsolationCondition(const std::string& name, xAOD::Iso::IsolationType isoType, const std::string& isoDecSuffix) :
37 IsolationCondition(name, std::vector<xAOD::Iso::IsolationType>{isoType}, isoDecSuffix) {}
38 IsolationCondition::IsolationCondition(const std::string& name, const std::string& isoType, const std::string& isoDecSuffix) :
39 IsolationCondition(name, std::vector<std::string>{isoType}, isoDecSuffix) {}
40
41 unsigned int IsolationCondition::num_types() const { return m_isolationType.size(); }
42 const std::string& IsolationCondition::name() const { return m_name; }
44 const SG::AuxElement::ConstAccessor<float>& IsolationCondition::accessor(unsigned int n) const { return m_acc.at(n); }
46} // namespace CP
Base class for elements of a container that can have aux data.
IsolationCondition(const std::string &name, xAOD::Iso::IsolationType isoType, const std::string &isoDecSuffix="")
std::vector< FloatAccessor > m_acc
std::vector< FloatAccessor > m_acc_noCloseBy
const FloatAccessor & accessor_noCloseBy(unsigned int n=0) const
const std::string & name() const
unsigned int num_types() const
xAOD::Iso::IsolationType type(unsigned int n=0) const
std::vector< xAOD::Iso::IsolationType > m_isolationType
const FloatAccessor & accessor(unsigned int n=0) const
SG::ConstAccessor< T, ALLOC > ConstAccessor
Definition AuxElement.h:569
AsgMessaging(const std::string &name)
Constructor with a name.
Select isolated Photons, Electrons and Muons.
STL namespace.
Namespace holding the IsolationType enumeration.
IsolationType
Overall enumeration for isolation types in xAOD files.
static const char * toCString(IsolationConeSize conesize)
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.