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-2024 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::ReadHandleKey<MeasurementToTruthParticleAssociation>
m_pixelClustersToTruth
62
{
this
,
"PixelClustersToTruthAssociationMap"
,
""
,
"Association map from pixel measurements to generator particles."
};
63
SG::ReadHandleKey<MeasurementToTruthParticleAssociation>
m_stripClustersToTruth
64
{
this
,
"StripClustersToTruthAssociationMap"
,
""
,
"Association map from strip measurements to generator particles."
};
65
SG::ReadHandleKey<MeasurementToTruthParticleAssociation>
m_hgtdClustersToTruth
66
{
this
,
"HgtdClustersToTruthAssociationMap"
,
""
,
"Association map from HGTD measurements to generator particles."
};
67
68
SG::WriteHandleKey<TrackToTruthParticleAssociation>
m_trackToTruthOut
69
{
this
,
"AssociationMapOut"
,
""
,
"Output association map from measurements to generator particles."
};
70
71
Gaudi::Property<float>
m_maxEnergyLoss
72
{
this
,
"MaxEnergyLoss"
, 10e12,
"Stop moving up the decay chain if the energy loss is above this value."
};
73
74
ElasticDecayUtil<TrackToTruthParticleAssociationDebugHists>
m_elasticDecayUtil
;
75
static
constexpr
float
s_unitGeV
= 1e3;
76
std::conditional<
TrackToTruthParticleAssociationDebugHists
,
77
Gaudi::Property<std::vector<float> >,
78
EmptyProperty
>
::type
m_energyLossBinning
79
{
this
,
"EnergyLossBinning"
, {20.,0.,5.*
s_unitGeV
},
"Binning to be used for the energy loss histograms."
};
80
81
template
<
bool
IsDebug>
82
struct
AssociationCounter
{
83
struct
Empty
{
84
template
<
typename
... T_Args>
85
Empty
(T_Args... ) {}
86
};
87
mutable
typename
std::conditional<IsDebug,
88
std::mutex,
89
Empty
>
::type
m_mutex
ATLAS_THREAD_SAFE
;
90
mutable
typename
std::conditional<IsDebug,
91
ActsUtils::StatHist
,
92
Empty
>
::type
m_measPerTrack
ATLAS_THREAD_SAFE
{20,-.5,40.-.5};
93
mutable
typename
std::conditional<IsDebug,
94
ActsUtils::StatHist
,
95
Empty
>
::type
m_truthParticlesPerTrack
ATLAS_THREAD_SAFE
{20,-.5,20.-.5};
96
97
template
<
class
T_OutStream>
98
void
dumpStatistics
(T_OutStream &out)
const
;
99
void
fillStatistics
(
unsigned
int
n_measurements,
unsigned
int
n_particles)
const
;
100
};
101
AssociationCounter<TrackToTruthParticleAssociationDebugHists>
m_associationCounter
;
102
static
constexpr
unsigned
int
s_NCounterForAssociatedTruth
= 4;
103
mutable
std::array<std::atomic<std::size_t>,
s_NCounterForAssociatedTruth
> m_nTracksWithAssociatedTruth
ATLAS_THREAD_SAFE
{};
104
mutable
std::atomic<std::size_t>
m_nIncompatibleMeasurementContainer
{};
105
mutable
std::atomic<std::size_t>
m_nCcompatibleMeasurementContainer
{};
106
};
107
108
}
// namespace
109
110
#endif
ITrackingGeometrySvc.h
AthReentrantAlgorithm.h
ContextUtility.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
ContextUtility.h:27
ActsTrk::TrackToTruthAssociationAlg
Definition
TrackToTruthAssociationAlg.h:46
ActsTrk::TrackToTruthAssociationAlg::m_maxEnergyLoss
Gaudi::Property< float > m_maxEnergyLoss
Definition
TrackToTruthAssociationAlg.h:72
ActsTrk::TrackToTruthAssociationAlg::m_nCcompatibleMeasurementContainer
std::atomic< std::size_t > m_nCcompatibleMeasurementContainer
Definition
TrackToTruthAssociationAlg.h:105
ActsTrk::TrackToTruthAssociationAlg::s_NCounterForAssociatedTruth
static constexpr unsigned int s_NCounterForAssociatedTruth
Definition
TrackToTruthAssociationAlg.h:102
ActsTrk::TrackToTruthAssociationAlg::m_associationCounter
AssociationCounter< TrackToTruthParticleAssociationDebugHists > m_associationCounter
Definition
TrackToTruthAssociationAlg.h:101
ActsTrk::TrackToTruthAssociationAlg::m_trackToTruthOut
SG::WriteHandleKey< TrackToTruthParticleAssociation > m_trackToTruthOut
Definition
TrackToTruthAssociationAlg.h:69
ActsTrk::TrackToTruthAssociationAlg::m_nIncompatibleMeasurementContainer
std::atomic< std::size_t > m_nIncompatibleMeasurementContainer
Definition
TrackToTruthAssociationAlg.h:104
ActsTrk::TrackToTruthAssociationAlg::ATLAS_THREAD_SAFE
std::array< std::atomic< std::size_t >, s_NCounterForAssociatedTruth > m_nTracksWithAssociatedTruth ATLAS_THREAD_SAFE
Definition
TrackToTruthAssociationAlg.h:103
ActsTrk::TrackToTruthAssociationAlg::m_tracksContainerKey
SG::ReadHandleKey< ActsTrk::TrackContainer > m_tracksContainerKey
Definition
TrackToTruthAssociationAlg.h:59
ActsTrk::TrackToTruthAssociationAlg::initialize
virtual StatusCode initialize() override
Definition
TrackToTruthAssociationAlg.cxx:26
ActsTrk::TrackToTruthAssociationAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition
TrackToTruthAssociationAlg.cxx:101
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:66
ActsTrk::TrackToTruthAssociationAlg::s_unitGeV
static constexpr float s_unitGeV
Definition
TrackToTruthAssociationAlg.h:75
ActsTrk::TrackToTruthAssociationAlg::m_energyLossBinning
std::conditional< TrackToTruthParticleAssociationDebugHists, Gaudi::Property< std::vector< float > >, EmptyProperty >::type m_energyLossBinning
Definition
TrackToTruthAssociationAlg.h:79
ActsTrk::TrackToTruthAssociationAlg::m_hgtdClustersToTruth
SG::ReadHandleKey< MeasurementToTruthParticleAssociation > m_hgtdClustersToTruth
Definition
TrackToTruthAssociationAlg.h:66
ActsTrk::TrackToTruthAssociationAlg::m_elasticDecayUtil
ElasticDecayUtil< TrackToTruthParticleAssociationDebugHists > m_elasticDecayUtil
Definition
TrackToTruthAssociationAlg.h:74
ActsTrk::TrackToTruthAssociationAlg::m_pixelClustersToTruth
SG::ReadHandleKey< MeasurementToTruthParticleAssociation > m_pixelClustersToTruth
Definition
TrackToTruthAssociationAlg.h:62
ActsTrk::TrackToTruthAssociationAlg::m_stripClustersToTruth
SG::ReadHandleKey< MeasurementToTruthParticleAssociation > m_stripClustersToTruth
Definition
TrackToTruthAssociationAlg.h:64
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
ActsTrk::TrackToTruthAssociationAlg::AssociationCounter::Empty
Definition
TrackToTruthAssociationAlg.h:83
ActsTrk::TrackToTruthAssociationAlg::AssociationCounter::Empty::Empty
Empty(T_Args...)
Definition
TrackToTruthAssociationAlg.h:85
ActsTrk::TrackToTruthAssociationAlg::AssociationCounter
Definition
TrackToTruthAssociationAlg.h:82
ActsTrk::TrackToTruthAssociationAlg::AssociationCounter::ATLAS_THREAD_SAFE
std::conditional< IsDebug, std::mutex, Empty >::type m_mutex ATLAS_THREAD_SAFE
Definition
TrackToTruthAssociationAlg.h:89
ActsTrk::TrackToTruthAssociationAlg::AssociationCounter::fillStatistics
void fillStatistics(unsigned int n_measurements, unsigned int n_particles) const
Definition
TrackToTruthAssociationAlg.cxx:50
ActsTrk::TrackToTruthAssociationAlg::AssociationCounter::dumpStatistics
void dumpStatistics(T_OutStream &out) const
Definition
TrackToTruthAssociationAlg.cxx:41
ElasticDecayUtil
Definition
ElasticDecayUtil.h:30
EmptyProperty
Definition
ElasticDecayUtil.h:18
type
Generated on
for ATLAS Offline Software by
1.17.0