ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsTruth
src
TrackToTruthAssociationAlg.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 ACTSTRKFINDING_TRACKTOTRUTHASSOCIATIONALG_H
6
#define ACTSTRKFINDING_TRACKTOTRUTHASSOCIATIONALG_H 1
7
8
// Base Class
9
#include "
AthenaBaseComps/AthReentrantAlgorithm.h
"
10
11
// Gaudi includes
12
#include "Gaudi/Property.h"
13
14
// Handle Keys
15
#include "
StoreGate/ReadHandleKey.h
"
16
#include "
StoreGate/WriteHandleKey.h
"
17
18
#include "
ActsEvent/TrackToTruthParticleAssociation.h
"
19
#include "
ActsEvent/MeasurementToTruthParticleAssociation.h
"
20
#include "
ActsEvent/TrackContainer.h
"
21
#include "
ActsEvent/ContextUtility.h
"
22
#include "
ActsGeometryInterfaces/ITrackingGeometrySvc.h
"
23
#include "
ActsTruth/ElasticDecayUtil.h
"
24
25
#include <mutex>
26
#include "
ActsInterop/StatUtils.h
"
27
28
#include <string>
29
#include <memory>
30
#include <array>
31
#include <atomic>
32
#include <type_traits>
33
34
#include <cmath>
35
#include <iomanip>
36
#include <ostream>
37
#include <string>
38
#include <sstream>
39
#include <vector>
40
41
namespace
ActsTrk
42
{
43
constexpr
bool
TrackToTruthParticleAssociationDebugHists
=
false
;
44
45
class
TrackToTruthAssociationAlg
:
public
AthReentrantAlgorithm
46
{
47
public
:
48
using
AthReentrantAlgorithm::AthReentrantAlgorithm;
49
50
virtual
StatusCode
initialize
()
override
;
51
virtual
StatusCode
finalize
()
override
;
52
virtual
StatusCode
execute
(
const
EventContext &ctx)
const override
;
53
54
private
:
56
ContextUtility
m_ctxProvider
{
this
};
57
58
SG::ReadHandleKey<ActsTrk::TrackContainer>
m_tracksContainerKey
59
{
this
,
"ACTSTracksLocation"
,
""
,
"Track collection (ActsTrk variant)"
};
60
61
SG::ReadHandleKeyArray<MeasurementToTruthParticleAssociation>
m_measAssocKeys
62
{
this
,
"MeasurementAssocKeys"
, {},
"Association map from the measurements to generator particles."
};
63
SG::WriteHandleKey<TrackToTruthParticleAssociation>
m_trackToTruthOut
64
{
this
,
"AssociationMapOut"
,
""
,
"Output association map from measurements to generator particles."
};
65
66
Gaudi::Property<float>
m_maxEnergyLoss
67
{
this
,
"MaxEnergyLoss"
, 10e12,
"Stop moving up the decay chain if the energy loss is above this value."
};
68
69
ElasticDecayUtil<TrackToTruthParticleAssociationDebugHists>
m_elasticDecayUtil
;
70
static
constexpr
float
s_unitGeV
= 1e3;
71
Gaudi::Property<std::vector<float>>
m_energyLossBinning
72
{
this
,
"EnergyLossBinning"
, {20.,0.,5.*
s_unitGeV
},
"Binning to be used for the energy loss histograms."
};
73
74
template
<
bool
IsDebug>
75
struct
AssociationCounter
{
76
struct
Empty
{
77
template
<
typename
... T_Args>
78
Empty
(T_Args... ) {}
79
};
80
mutable
typename
std::conditional<IsDebug,
81
std::mutex,
82
Empty
>
::type
m_mutex
ATLAS_THREAD_SAFE
;
83
mutable
typename
std::conditional<IsDebug,
84
ActsUtils::StatHist
,
85
Empty
>
::type
m_measPerTrack
ATLAS_THREAD_SAFE
{20,-.5,40.-.5};
86
mutable
typename
std::conditional<IsDebug,
87
ActsUtils::StatHist
,
88
Empty
>
::type
m_truthParticlesPerTrack
ATLAS_THREAD_SAFE
{20,-.5,20.-.5};
89
90
template
<
class
T_OutStream>
91
void
dumpStatistics
(T_OutStream &out)
const
;
92
void
fillStatistics
(
unsigned
int
n_measurements,
unsigned
int
n_particles)
const
;
93
};
94
AssociationCounter<TrackToTruthParticleAssociationDebugHists>
m_associationCounter
;
95
static
constexpr
unsigned
int
s_NCounterForAssociatedTruth
= 4;
96
mutable
std::array<std::atomic<std::size_t>,
s_NCounterForAssociatedTruth
> m_nTracksWithAssociatedTruth
ATLAS_THREAD_SAFE
{};
97
mutable
std::atomic<std::size_t>
m_nIncompatibleMeasurementContainer
{};
98
mutable
std::atomic<std::size_t>
m_nCcompatibleMeasurementContainer
{};
99
};
100
101
}
// namespace
102
103
#endif
ContextUtility.h
ITrackingGeometrySvc.h
AthReentrantAlgorithm.h
ElasticDecayUtil.h
MeasurementToTruthParticleAssociation.h
StatUtils.h
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
TrackContainer.h
TrackToTruthParticleAssociation.h
ActsTrk::ContextUtility
Utility class to handle the three contexts neeeded in an ACTS reconstruction job 1) GeometryContext -...
Definition
ActsGeometry/ActsGeometry/ContextUtility.h:27
ActsTrk::TrackToTruthAssociationAlg
Definition
TrackToTruthAssociationAlg.h:46
ActsTrk::TrackToTruthAssociationAlg::m_maxEnergyLoss
Gaudi::Property< float > m_maxEnergyLoss
Definition
TrackToTruthAssociationAlg.h:67
ActsTrk::TrackToTruthAssociationAlg::m_nCcompatibleMeasurementContainer
std::atomic< std::size_t > m_nCcompatibleMeasurementContainer
Definition
TrackToTruthAssociationAlg.h:98
ActsTrk::TrackToTruthAssociationAlg::s_NCounterForAssociatedTruth
static constexpr unsigned int s_NCounterForAssociatedTruth
Definition
TrackToTruthAssociationAlg.h:95
ActsTrk::TrackToTruthAssociationAlg::m_associationCounter
AssociationCounter< TrackToTruthParticleAssociationDebugHists > m_associationCounter
Definition
TrackToTruthAssociationAlg.h:94
ActsTrk::TrackToTruthAssociationAlg::m_trackToTruthOut
SG::WriteHandleKey< TrackToTruthParticleAssociation > m_trackToTruthOut
Definition
TrackToTruthAssociationAlg.h:64
ActsTrk::TrackToTruthAssociationAlg::m_nIncompatibleMeasurementContainer
std::atomic< std::size_t > m_nIncompatibleMeasurementContainer
Definition
TrackToTruthAssociationAlg.h:97
ActsTrk::TrackToTruthAssociationAlg::ATLAS_THREAD_SAFE
std::array< std::atomic< std::size_t >, s_NCounterForAssociatedTruth > m_nTracksWithAssociatedTruth ATLAS_THREAD_SAFE
Definition
TrackToTruthAssociationAlg.h:96
ActsTrk::TrackToTruthAssociationAlg::m_tracksContainerKey
SG::ReadHandleKey< ActsTrk::TrackContainer > m_tracksContainerKey
Definition
TrackToTruthAssociationAlg.h:59
ActsTrk::TrackToTruthAssociationAlg::initialize
virtual StatusCode initialize() override
Definition
TrackToTruthAssociationAlg.cxx:27
ActsTrk::TrackToTruthAssociationAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition
TrackToTruthAssociationAlg.cxx:100
ActsTrk::TrackToTruthAssociationAlg::m_energyLossBinning
Gaudi::Property< std::vector< float > > m_energyLossBinning
Definition
TrackToTruthAssociationAlg.h:72
ActsTrk::TrackToTruthAssociationAlg::m_ctxProvider
ContextUtility m_ctxProvider
Context provider for geometry, magnetic field and calibration contexts.
Definition
TrackToTruthAssociationAlg.h:56
ActsTrk::TrackToTruthAssociationAlg::finalize
virtual StatusCode finalize() override
Definition
TrackToTruthAssociationAlg.cxx:65
ActsTrk::TrackToTruthAssociationAlg::s_unitGeV
static constexpr float s_unitGeV
Definition
TrackToTruthAssociationAlg.h:70
ActsTrk::TrackToTruthAssociationAlg::m_measAssocKeys
SG::ReadHandleKeyArray< MeasurementToTruthParticleAssociation > m_measAssocKeys
Definition
TrackToTruthAssociationAlg.h:62
ActsTrk::TrackToTruthAssociationAlg::m_elasticDecayUtil
ElasticDecayUtil< TrackToTruthParticleAssociationDebugHists > m_elasticDecayUtil
Definition
TrackToTruthAssociationAlg.h:69
ActsUtils::StatHist
Extend Stat helper by an equidistant binned histogram.
Definition
StatUtils.h:81
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition
AthReentrantAlgorithm.h:74
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition
StoreGate/StoreGate/ReadHandleKey.h:40
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition
StoreGate/StoreGate/WriteHandleKey.h:40
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition
MdtCalibInput.h:31
ActsTrk::TrackToTruthParticleAssociationDebugHists
constexpr bool TrackToTruthParticleAssociationDebugHists
Definition
TrackToTruthAssociationAlg.h:43
SG::ReadHandleKeyArray
HandleKeyArray< ReadHandle< T >, ReadHandleKey< T >, Gaudi::DataHandle::Reader > ReadHandleKeyArray
Definition
StoreGate/StoreGate/ReadHandleKeyArray.h:32
ActsTrk::TrackToTruthAssociationAlg::AssociationCounter::Empty
Definition
TrackToTruthAssociationAlg.h:76
ActsTrk::TrackToTruthAssociationAlg::AssociationCounter::Empty::Empty
Empty(T_Args...)
Definition
TrackToTruthAssociationAlg.h:78
ActsTrk::TrackToTruthAssociationAlg::AssociationCounter
Definition
TrackToTruthAssociationAlg.h:75
ActsTrk::TrackToTruthAssociationAlg::AssociationCounter::ATLAS_THREAD_SAFE
std::conditional< IsDebug, std::mutex, Empty >::type m_mutex ATLAS_THREAD_SAFE
Definition
TrackToTruthAssociationAlg.h:82
ActsTrk::TrackToTruthAssociationAlg::AssociationCounter::fillStatistics
void fillStatistics(unsigned int n_measurements, unsigned int n_particles) const
Definition
TrackToTruthAssociationAlg.cxx:49
ActsTrk::TrackToTruthAssociationAlg::AssociationCounter::dumpStatistics
void dumpStatistics(T_OutStream &out) const
Definition
TrackToTruthAssociationAlg.cxx:40
ElasticDecayUtil
Definition
ElasticDecayUtil.h:30
type
Generated on
for ATLAS Offline Software by
1.17.0