ATLAS Offline Software
PhysicsAnalysis
Algorithms
AsgAnalysisAlgorithms
AsgAnalysisAlgorithms
AsgNumDecorationSelectionTool.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef ASG_ANALYSIS_ALGORITHMS__ASG_NUM_DECORATION_SELECTION_TOOL_H
6
#define ASG_ANALYSIS_ALGORITHMS__ASG_NUM_DECORATION_SELECTION_TOOL_H
7
8
#include <
AsgTools/AsgTool.h
>
9
#include <
AthContainers/AuxElement.h
>
10
#include <
PATCore/IAsgSelectionTool.h
>
11
#include <
AsgTools/PropertyWrapper.h
>
12
#include <
AsgMessaging/StatusCode.h
>
13
#include <memory>
14
#include <typeinfo>
15
16
#include <
xAODBase/IParticle.h
>
17
18
namespace
CP
19
{
22
23
template
<
typename
T>
24
class
AsgNumDecorationSelectionTool
25
:
public
asg::AsgTool
,
public
virtual
IAsgSelectionTool
26
{
27
public
:
28
#ifndef XAOD_STANDALONE
29
AsgNumDecorationSelectionTool
(
const
std::string&
type
,
30
const
std::string& myname,
31
const
IInterface*
parent
);
32
virtual
~AsgNumDecorationSelectionTool
();
33
#else
34
AsgNumDecorationSelectionTool
(
const
std::string& myname);
35
#endif
36
37
virtual
StatusCode
initialize
()
override
;
38
virtual
const
asg::AcceptInfo
&
getAcceptInfo
()
const override
;
39
virtual
asg::AcceptData
accept
(
const
xAOD::IParticle
*
particle
)
const override
;
40
41
private
:
42
// Helper function to generate type-dependent default name
43
static
std::string
getDefaultDecorationName
() {
44
std::string
typeName
=
typeid
(T).
name
();
45
return
"dummy_"
+
typeName
;
46
}
47
48
Gaudi::Property<std::string>
m_name
{
this
,
"decorationName"
,
getDefaultDecorationName
(),
"name of the decoration on which the cuts are applied"
};
49
Gaudi::Property<bool>
m_doEqual
{
this
,
"doEqual"
,
false
,
"require to equal a value"
};
50
Gaudi::Property<bool>
m_doMin
{
this
,
"doMin"
,
false
,
"require a min value"
};
51
Gaudi::Property<bool>
m_doMax
{
this
,
"doMax"
,
false
,
"require a max value"
};
52
Gaudi::Property<float>
m_equal
{
this
,
"equal"
, 0.0f,
"equal value to require"
};
53
Gaudi::Property<float>
m_min
{
this
,
"min"
, 0.0f,
"minimum value to require"
};
54
Gaudi::Property<float>
m_max
{
this
,
"max"
, 0.0f,
"maximum value to require"
};
55
56
int
m_equalCutIndex
{ -1 };
57
int
m_minCutIndex
{ -1 };
58
int
m_maxCutIndex
{ -1 };
59
60
std::unique_ptr<SG::ConstAccessor<T>>
m_accessor
;
61
62
asg::AcceptInfo
m_accept
;
63
};
64
65
class
AsgNumDecorationSelectionToolInt
final
66
:
public
AsgNumDecorationSelectionTool
<int>
67
{
68
public
:
69
#ifndef XAOD_STANDALONE
70
AsgNumDecorationSelectionToolInt
(
const
std::string&
type
,
71
const
std::string& myname,
72
const
IInterface*
parent
);
73
#else
74
AsgNumDecorationSelectionToolInt
(
const
std::string& myname);
75
#endif
76
};
77
78
class
AsgNumDecorationSelectionToolUInt8
final
79
:
public
AsgNumDecorationSelectionTool
<uint8_t>
80
{
81
public
:
82
#ifndef XAOD_STANDALONE
83
AsgNumDecorationSelectionToolUInt8
(
const
std::string&
type
,
84
const
std::string& myname,
85
const
IInterface*
parent
);
86
#else
87
AsgNumDecorationSelectionToolUInt8
(
const
std::string& myname);
88
#endif
89
};
90
}
91
92
#endif
CP::AsgNumDecorationSelectionToolUInt8::AsgNumDecorationSelectionToolUInt8
AsgNumDecorationSelectionToolUInt8(const std::string &type, const std::string &myname, const IInterface *parent)
Definition:
AsgNumDecorationSelectionTool.cxx:110
CP::AsgNumDecorationSelectionTool::m_doMax
Gaudi::Property< bool > m_doMax
Definition:
AsgNumDecorationSelectionTool.h:51
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition:
AsgTool.h:47
PropertyWrapper.h
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition:
ParticleHypothesis.h:79
CP::AsgNumDecorationSelectionToolInt::AsgNumDecorationSelectionToolInt
AsgNumDecorationSelectionToolInt(const std::string &type, const std::string &myname, const IInterface *parent)
Definition:
AsgNumDecorationSelectionTool.cxx:103
CP::AsgNumDecorationSelectionTool
a templated IAsgSelectionTool that performs basic cut on numerical decorations (e....
Definition:
AsgNumDecorationSelectionTool.h:26
CP::AsgNumDecorationSelectionTool::~AsgNumDecorationSelectionTool
virtual ~AsgNumDecorationSelectionTool()
Definition:
AsgNumDecorationSelectionTool.cxx:20
IParticle.h
CP::AsgNumDecorationSelectionTool::m_accept
asg::AcceptInfo m_accept
Definition:
AsgNumDecorationSelectionTool.h:62
CP::AsgNumDecorationSelectionTool::m_equal
Gaudi::Property< float > m_equal
Definition:
AsgNumDecorationSelectionTool.h:52
CP::AsgNumDecorationSelectionTool::m_accessor
std::unique_ptr< SG::ConstAccessor< T > > m_accessor
Definition:
AsgNumDecorationSelectionTool.h:60
CP::AsgNumDecorationSelectionTool::m_doMin
Gaudi::Property< bool > m_doMin
Definition:
AsgNumDecorationSelectionTool.h:50
CP::AsgNumDecorationSelectionTool::m_maxCutIndex
int m_maxCutIndex
Definition:
AsgNumDecorationSelectionTool.h:58
IAsgSelectionTool
Definition:
IAsgSelectionTool.h:28
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition:
Event/xAOD/xAODBase/xAODBase/IParticle.h:41
IAsgSelectionTool.h
CP
Select isolated Photons, Electrons and Muons.
Definition:
Control/xAODRootAccess/xAODRootAccess/TEvent.h:49
python.CaloAddPedShiftConfig.type
type
Definition:
CaloAddPedShiftConfig.py:42
asg::AcceptInfo
Definition:
AcceptInfo.h:28
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition:
PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
test_pyathena.parent
parent
Definition:
test_pyathena.py:15
CP::AsgNumDecorationSelectionTool::AsgNumDecorationSelectionTool
AsgNumDecorationSelectionTool(const std::string &type, const std::string &myname, const IInterface *parent)
Definition:
AsgNumDecorationSelectionTool.cxx:12
columnar::final
CM final
Definition:
ColumnAccessor.h:106
CP::AsgNumDecorationSelectionTool::m_minCutIndex
int m_minCutIndex
Definition:
AsgNumDecorationSelectionTool.h:57
StatusCode.h
CP::AsgNumDecorationSelectionTool::getAcceptInfo
virtual const asg::AcceptInfo & getAcceptInfo() const override
Declare the interface ID for this pure-virtual interface class to the Athena framework.
Definition:
AsgNumDecorationSelectionTool.cxx:61
CP::AsgNumDecorationSelectionToolUInt8
Definition:
AsgNumDecorationSelectionTool.h:80
CP::AsgNumDecorationSelectionTool::accept
virtual asg::AcceptData accept(const xAOD::IParticle *particle) const override
The main accept method: the actual cuts are applied here.
Definition:
AsgNumDecorationSelectionTool.cxx:67
CP::AsgNumDecorationSelectionTool::getDefaultDecorationName
static std::string getDefaultDecorationName()
Definition:
AsgNumDecorationSelectionTool.h:43
CP::AsgNumDecorationSelectionTool::m_min
Gaudi::Property< float > m_min
Definition:
AsgNumDecorationSelectionTool.h:53
name
std::string name
Definition:
Control/AthContainers/Root/debug.cxx:240
CP::AsgNumDecorationSelectionTool::m_equalCutIndex
int m_equalCutIndex
Definition:
AsgNumDecorationSelectionTool.h:56
CP::AsgNumDecorationSelectionTool::m_doEqual
Gaudi::Property< bool > m_doEqual
Definition:
AsgNumDecorationSelectionTool.h:49
CP::AsgNumDecorationSelectionTool::m_name
Gaudi::Property< std::string > m_name
Definition:
AsgNumDecorationSelectionTool.h:48
CP::AsgNumDecorationSelectionToolInt
Definition:
AsgNumDecorationSelectionTool.h:67
ReadCalibFromCool.typeName
typeName
Definition:
ReadCalibFromCool.py:477
CP::AsgNumDecorationSelectionTool::initialize
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
Definition:
AsgNumDecorationSelectionTool.cxx:32
CP::AsgNumDecorationSelectionTool::m_max
Gaudi::Property< float > m_max
Definition:
AsgNumDecorationSelectionTool.h:54
AsgTool.h
asg::AcceptData
Definition:
AcceptData.h:30
AuxElement.h
Base class for elements of a container that can have aux data.
Generated on Tue Sep 2 2025 21:07:17 for ATLAS Offline Software by
1.8.18