ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Simulation
ISF
ISF_HepMC
ISF_HepMC_Tools
src
GenericTruthStrategy.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef ISF_TOOLS_GENERICTRUTHSTRATEGY_H
6
#define ISF_TOOLS_GENERICTRUTHSTRATEGY_H 1
7
8
// stl includes
9
#include <set>
10
#include <vector>
11
12
// Athena includes
13
#include "
AthenaBaseComps/AthAlgTool.h
"
14
#include "
AtlasDetDescr/AtlasRegion.h
"
15
16
// ISF includes
17
#include "
ISF_HepMC_Interfaces/ITruthStrategy.h
"
18
19
namespace
ISF
{
20
typedef
std::vector<int>
VertexTypesVector
;
21
typedef
std::set<int>
VertexTypesSet
;
22
typedef
std::vector<int>
PDGCodesVector
;
23
typedef
std::set<int>
PDGCodesSet
;
24
31
class
GenericTruthStrategy
final :
public
extends<AthAlgTool, ITruthStrategy> {
32
33
public
:
35
GenericTruthStrategy
(
const
std::string& t,
const
std::string& n,
const
IInterface* p );
36
38
~GenericTruthStrategy
() =
default
;
39
40
// Athena algtool's Hooks
41
virtual
StatusCode
initialize
() override final;
42
44
virtual
bool
pass
(
ITruthIncident
& incident)
const
override final;
45
46
virtual
bool
appliesToRegion
(
unsigned
short
geoID)
const
override final;
47
private
:
48
// provide either a pT or Ekin cut for the parent and child particles respectively.
49
// if none are given for either type, it will not use pT or Ekin cuts
50
// (the Pt2 variables get squared in the initialize() method)
51
54
bool
m_useParentPt
{
true
};
55
double
m_parentPt2
{-1.};
56
Gaudi::Property<double>
m_parentPt
{
this
,
"ParentMinPt"
, -1.};
57
Gaudi::Property<double>
m_parentEkin
{
this
,
"ParentMinEkin"
, -1.};
58
61
bool
m_useChildPt
{
true
};
62
double
m_childPt2
{-1.};
63
Gaudi::Property<double>
m_childPt
{
this
,
"ChildMinPt"
, -1.};
64
Gaudi::Property<double>
m_childEkin
{
this
,
"ChildMinEkin"
, -1.};
65
Gaudi::Property<bool>
m_allowChildrenOrParentPass
{
this
,
"AllowChildrenOrParentPassKineticCuts"
,
false
};
66
// if set to true, kinetic cuts are passed even if only child particles pass them
67
// (used for special cases such as de-excitation)
68
70
Gaudi::Property<VertexTypesVector>
m_vertexTypesVector
{
this
,
"VertexTypes"
, 0};
71
VertexTypesSet
m_vertexTypes
{};
72
bool
m_doVertexRangeCheck
{
false
};
73
Gaudi::Property<int>
m_vertexTypeRangeLow
{
this
,
"VertexTypeRangeLow"
, 0};
74
Gaudi::Property<int>
m_vertexTypeRangeHigh
{
this
,
"VertexTypeRangeHigh"
, 0};
75
unsigned
m_vertexTypeRangeLength
{0};
76
78
Gaudi::Property<PDGCodesVector>
m_parentPdgCodesVector
{
this
,
"ParentPDGCodes"
, 0};
79
PDGCodesSet
m_parentPdgCodes
{};
80
81
IntegerArrayProperty
m_regionListProperty
{
this
,
"Regions"
, {}};
82
};
83
84
}
85
86
87
#endif
//> !ISF_TOOLS_GENERICTRUTHSTRATEGY_H
AthAlgTool.h
AtlasRegion.h
ITruthStrategy.h
ISF::GenericTruthStrategy::pass
virtual bool pass(ITruthIncident &incident) const override final
true if the ITruthStrategy implementation applies to the given ITruthIncident
Definition
GenericTruthStrategy.cxx:99
ISF::GenericTruthStrategy::initialize
virtual StatusCode initialize() override final
Definition
GenericTruthStrategy.cxx:19
ISF::GenericTruthStrategy::appliesToRegion
virtual bool appliesToRegion(unsigned short geoID) const override final
Definition
GenericTruthStrategy.cxx:165
ISF::GenericTruthStrategy::m_vertexTypesVector
Gaudi::Property< VertexTypesVector > m_vertexTypesVector
vertex type (physics code) checks
Definition
GenericTruthStrategy.h:70
ISF::GenericTruthStrategy::m_useChildPt
bool m_useChildPt
child particle kinetic energy / transverse momentum cuts (pT is stored as pT^2 which allows for faste...
Definition
GenericTruthStrategy.h:61
ISF::GenericTruthStrategy::m_regionListProperty
IntegerArrayProperty m_regionListProperty
Definition
GenericTruthStrategy.h:81
ISF::GenericTruthStrategy::m_childPt2
double m_childPt2
Definition
GenericTruthStrategy.h:62
ISF::GenericTruthStrategy::m_useParentPt
bool m_useParentPt
parent kinetic energy / transverse momentum cuts (pT is stored as pT^2 which allows for faster compar...
Definition
GenericTruthStrategy.h:54
ISF::GenericTruthStrategy::m_childEkin
Gaudi::Property< double > m_childEkin
Ekin cut.
Definition
GenericTruthStrategy.h:64
ISF::GenericTruthStrategy::m_vertexTypes
VertexTypesSet m_vertexTypes
optimized for search
Definition
GenericTruthStrategy.h:71
ISF::GenericTruthStrategy::m_childPt
Gaudi::Property< double > m_childPt
pT momentum cut
Definition
GenericTruthStrategy.h:63
ISF::GenericTruthStrategy::m_allowChildrenOrParentPass
Gaudi::Property< bool > m_allowChildrenOrParentPass
pass cuts if parent did not
Definition
GenericTruthStrategy.h:65
ISF::GenericTruthStrategy::m_parentPt2
double m_parentPt2
Definition
GenericTruthStrategy.h:55
ISF::GenericTruthStrategy::m_parentPdgCodesVector
Gaudi::Property< PDGCodesVector > m_parentPdgCodesVector
PDG code checks.
Definition
GenericTruthStrategy.h:78
ISF::GenericTruthStrategy::GenericTruthStrategy
GenericTruthStrategy(const std::string &t, const std::string &n, const IInterface *p)
Constructor with parameters.
Definition
GenericTruthStrategy.cxx:13
ISF::GenericTruthStrategy::~GenericTruthStrategy
~GenericTruthStrategy()=default
Destructor.
ISF::GenericTruthStrategy::m_doVertexRangeCheck
bool m_doVertexRangeCheck
Definition
GenericTruthStrategy.h:72
ISF::GenericTruthStrategy::m_parentPdgCodes
PDGCodesSet m_parentPdgCodes
optimized for search
Definition
GenericTruthStrategy.h:79
ISF::GenericTruthStrategy::m_vertexTypeRangeLow
Gaudi::Property< int > m_vertexTypeRangeLow
Definition
GenericTruthStrategy.h:73
ISF::GenericTruthStrategy::m_parentPt
Gaudi::Property< double > m_parentPt
parent particle
Definition
GenericTruthStrategy.h:56
ISF::GenericTruthStrategy::m_parentEkin
Gaudi::Property< double > m_parentEkin
parent particle
Definition
GenericTruthStrategy.h:57
ISF::GenericTruthStrategy::m_vertexTypeRangeLength
unsigned m_vertexTypeRangeLength
Definition
GenericTruthStrategy.h:75
ISF::GenericTruthStrategy::m_vertexTypeRangeHigh
Gaudi::Property< int > m_vertexTypeRangeHigh
Definition
GenericTruthStrategy.h:74
ISF::ITruthIncident
ISF interface class for TruthIncidents.
Definition
ITruthIncident.h:45
const
ISF
ISFParticleOrderedQueue.
Definition
PrimaryParticleInformation.h:13
ISF::PDGCodesVector
std::vector< int > PDGCodesVector
Definition
GenericTruthStrategy.h:22
ISF::VertexTypesSet
std::set< int > VertexTypesSet
Definition
GenericTruthStrategy.h:21
ISF::PDGCodesSet
std::set< int > PDGCodesSet
Definition
GenericTruthStrategy.h:23
ISF::VertexTypesVector
std::vector< int > VertexTypesVector
Definition
GenericTruthStrategy.h:20
private
#define private
Definition
testRead.cxx:27
Generated on
for ATLAS Offline Software by
1.17.0