ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
AnalysisCommon
IsolationSelection
Root
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
5
#include "
IsolationSelection/IsolationCondition.h
"
6
7
#include "
AthContainers/AuxElement.h
"
8
#include "
xAODPrimitives/IsolationCorrection.h
"
9
namespace
CP
{
10
11
IsolationCondition::IsolationCondition
(
const
std::string&
name
,
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) {
28
m_isolationType
.push_back(
xAOD::Iso::IsolationType
(0));
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
; }
43
xAOD::Iso::IsolationType
IsolationCondition::type
(
unsigned
int
n)
const
{
return
m_isolationType
[n]; }
44
const
SG::AuxElement::ConstAccessor<float>&
IsolationCondition::accessor
(
unsigned
int
n)
const
{
return
m_acc
.at(n); }
45
const
SG::AuxElement::ConstAccessor<float>&
IsolationCondition::accessor_noCloseBy
(
unsigned
int
n)
const
{
return
m_acc_noCloseBy
.at(n); }
46
}
// namespace CP
AuxElement.h
Base class for elements of a container that can have aux data.
IsolationCorrection.h
IsolationCondition.h
CP::IsolationCondition::IsolationCondition
IsolationCondition(const std::string &name, xAOD::Iso::IsolationType isoType, const std::string &isoDecSuffix="")
Definition
IsolationCondition.cxx:36
CP::IsolationCondition::m_acc
std::vector< FloatAccessor > m_acc
Definition
IsolationCondition.h:54
CP::IsolationCondition::m_acc_noCloseBy
std::vector< FloatAccessor > m_acc_noCloseBy
Definition
IsolationCondition.h:55
CP::IsolationCondition::m_isoDecSuffix
std::string m_isoDecSuffix
Definition
IsolationCondition.h:58
CP::IsolationCondition::accessor_noCloseBy
const FloatAccessor & accessor_noCloseBy(unsigned int n=0) const
Definition
IsolationCondition.cxx:45
CP::IsolationCondition::name
const std::string & name() const
Definition
IsolationCondition.cxx:42
CP::IsolationCondition::num_types
unsigned int num_types() const
Definition
IsolationCondition.cxx:41
CP::IsolationCondition::type
xAOD::Iso::IsolationType type(unsigned int n=0) const
Definition
IsolationCondition.cxx:43
CP::IsolationCondition::m_isolationType
std::vector< xAOD::Iso::IsolationType > m_isolationType
Definition
IsolationCondition.h:53
CP::IsolationCondition::m_name
std::string m_name
Definition
IsolationCondition.h:52
CP::IsolationCondition::accessor
const FloatAccessor & accessor(unsigned int n=0) const
Definition
IsolationCondition.cxx:44
asg::AsgMessaging::AsgMessaging
AsgMessaging(const std::string &name)
Constructor with a name.
Definition
AsgMessaging.cxx:17
vector
Definition
MultiHisto.h:13
CP
Select isolated Photons, Electrons and Muons.
Definition
Control/xAODRootAccess/xAODRootAccess/TEvent.h:27
asg
Definition
DataHandleTestTool.h:28
std
STL namespace.
xAOD::Iso
Namespace holding the IsolationType enumeration.
Definition
IsolationConeSize.h:13
xAOD::Iso::IsolationType
IsolationType
Overall enumeration for isolation types in xAOD files.
Definition
IsolationType.h:26
xAOD::Iso::toCString
static const char * toCString(IsolationConeSize conesize)
Definition
IsolationConeSize.h:30
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition
ICaloAffectedTool.h:24
Generated on
for ATLAS Offline Software by
1.17.0