ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsTruth
src
TruthParticleHitCountAlg.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 ACTSTRK_TRUTHPARTICLEHITCOUNT_H
6
#define ACTSTRK_TRUTHPARTICLEHITCOUNT_H 1
7
8
// Base Class
9
#include "
AthenaBaseComps/AthReentrantAlgorithm.h
"
10
11
12
// Handle Keys
13
#include "
StoreGate/ReadHandleKey.h
"
14
#include "
StoreGate/WriteHandleKey.h
"
15
16
#include "
ActsEvent/TruthParticleHitCounts.h
"
17
#include "
ActsEvent/MeasurementToTruthParticleAssociation.h
"
18
#include "
ActsEvent/TrackContainer.h
"
19
#include "
ActsEvent/ContextUtility.h
"
20
#include "
ActsTruth/ElasticDecayUtil.h
"
21
22
#include <mutex>
23
#include "
ActsInterop/StatUtils.h
"
24
25
#include <string>
26
#include <memory>
27
#include <array>
28
#include <atomic>
29
#include <type_traits>
30
31
#include <cmath>
32
#include <iomanip>
33
#include <ostream>
34
#include <string>
35
#include <sstream>
36
#include <vector>
37
38
namespace
ActsTrk
39
{
40
constexpr
bool
TruthParticleHitCountDebugHists
=
false
;
41
42
class
TruthParticleHitCountAlg
:
public
AthReentrantAlgorithm
43
{
44
public
:
45
using
AthReentrantAlgorithm::AthReentrantAlgorithm;
46
47
virtual
StatusCode
initialize
()
override
;
48
virtual
StatusCode
finalize
()
override
;
49
virtual
StatusCode
execute
(
const
EventContext &ctx)
const override
;
50
51
private
:
53
ContextUtility
m_ctxProvider
{
this
};
54
SG::ReadHandleKey<MeasurementToTruthParticleAssociation>
m_pixelClustersToTruth
55
{
this
,
"PixelClustersToTruthAssociationMap"
,
""
,
"Association map from pixel measurements to generator particles."
};
56
SG::ReadHandleKey<MeasurementToTruthParticleAssociation>
m_stripClustersToTruth
57
{
this
,
"StripClustersToTruthAssociationMap"
,
""
,
"Association map from strip measurements to generator particles."
};
58
SG::ReadHandleKey<MeasurementToTruthParticleAssociation>
m_hgtdClustersToTruth
59
{
this
,
"HgtdClustersToTruthAssociationMap"
,
""
,
"Association map from HGTD measurements to generator particles."
};
60
61
SG::WriteHandleKey<TruthParticleHitCounts>
m_truthHitCountsOut
62
{
this
,
"TruthParticleHitCountsOut"
,
""
,
"Map from truth particle to hit counts."
};
63
64
Gaudi::Property<float>
m_maxEnergyLoss
65
{
this
,
"MaxEnergyLoss"
, 10e12,
"Stop moving up the decay chain if the energy loss is above this value."
};
66
Gaudi::Property<unsigned int>
m_nHitsMin
67
{
this
,
"NHitsMin"
, 1,
"Minimum number of hits associated to a truth particle to consider the particle."
};
68
69
ElasticDecayUtil<TruthParticleHitCountDebugHists>
m_elasticDecayUtil
;
70
static
constexpr
float
s_unitGeV
= 1e3;
71
std::conditional<
TruthParticleHitCountDebugHists
,
72
Gaudi::Property<std::vector<float> >,
73
EmptyProperty
>
::type
m_energyLossBinning
74
{
this
,
"EnergyLossBinning"
, {20.,0.,5.*
s_unitGeV
},
"Binning to be used for the energy loss histograms."
};
75
76
template
<
bool
IsDebug>
77
struct
AssociationCounter
{
78
struct
Empty
{
79
template
<
typename
... T_Args>
80
Empty
(T_Args... ) {}
81
};
82
mutable
typename
std::conditional<IsDebug,
83
std::mutex,
84
Empty
>
::type
m_mutex
ATLAS_THREAD_SAFE
;
85
mutable
typename
std::conditional<IsDebug,
86
ActsUtils::StatHist
,
87
Empty
>
::type
m_measPerTruthParticle
ATLAS_THREAD_SAFE
{20,-.5,40.-.5};
88
89
template
<
class
T_OutStream>
90
void
dumpStatistics
(T_OutStream &out)
const
;
91
void
fillStatistics
(
unsigned
int
n_measurements)
const
;
92
};
93
AssociationCounter<TruthParticleHitCountDebugHists>
m_associationCounter
;
94
mutable
std::atomic<std::size_t> m_nTruthParticlesWithHits
ATLAS_THREAD_SAFE
{};
95
};
96
97
}
// namespace
98
99
#endif
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
TruthParticleHitCounts.h
ActsTrk::ContextUtility
Utility class to handle the three contexts neeeded in an ACTS reconstruction job 1) GeometryContext -...
Definition
ContextUtility.h:27
ActsTrk::TruthParticleHitCountAlg
Definition
TruthParticleHitCountAlg.h:43
ActsTrk::TruthParticleHitCountAlg::m_elasticDecayUtil
ElasticDecayUtil< TruthParticleHitCountDebugHists > m_elasticDecayUtil
Definition
TruthParticleHitCountAlg.h:69
ActsTrk::TruthParticleHitCountAlg::m_nHitsMin
Gaudi::Property< unsigned int > m_nHitsMin
Definition
TruthParticleHitCountAlg.h:67
ActsTrk::TruthParticleHitCountAlg::m_hgtdClustersToTruth
SG::ReadHandleKey< MeasurementToTruthParticleAssociation > m_hgtdClustersToTruth
Definition
TruthParticleHitCountAlg.h:59
ActsTrk::TruthParticleHitCountAlg::m_energyLossBinning
std::conditional< TruthParticleHitCountDebugHists, Gaudi::Property< std::vector< float > >, EmptyProperty >::type m_energyLossBinning
Definition
TruthParticleHitCountAlg.h:74
ActsTrk::TruthParticleHitCountAlg::m_maxEnergyLoss
Gaudi::Property< float > m_maxEnergyLoss
Definition
TruthParticleHitCountAlg.h:65
ActsTrk::TruthParticleHitCountAlg::m_ctxProvider
ContextUtility m_ctxProvider
Context provider for geometry, magnetic field and calibration contexts.
Definition
TruthParticleHitCountAlg.h:53
ActsTrk::TruthParticleHitCountAlg::finalize
virtual StatusCode finalize() override
Definition
TruthParticleHitCountAlg.cxx:75
ActsTrk::TruthParticleHitCountAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition
TruthParticleHitCountAlg.cxx:89
ActsTrk::TruthParticleHitCountAlg::m_truthHitCountsOut
SG::WriteHandleKey< TruthParticleHitCounts > m_truthHitCountsOut
Definition
TruthParticleHitCountAlg.h:62
ActsTrk::TruthParticleHitCountAlg::ATLAS_THREAD_SAFE
std::atomic< std::size_t > m_nTruthParticlesWithHits ATLAS_THREAD_SAFE
Definition
TruthParticleHitCountAlg.h:94
ActsTrk::TruthParticleHitCountAlg::m_pixelClustersToTruth
SG::ReadHandleKey< MeasurementToTruthParticleAssociation > m_pixelClustersToTruth
Definition
TruthParticleHitCountAlg.h:55
ActsTrk::TruthParticleHitCountAlg::m_stripClustersToTruth
SG::ReadHandleKey< MeasurementToTruthParticleAssociation > m_stripClustersToTruth
Definition
TruthParticleHitCountAlg.h:57
ActsTrk::TruthParticleHitCountAlg::s_unitGeV
static constexpr float s_unitGeV
Definition
TruthParticleHitCountAlg.h:70
ActsTrk::TruthParticleHitCountAlg::initialize
virtual StatusCode initialize() override
Definition
TruthParticleHitCountAlg.cxx:46
ActsTrk::TruthParticleHitCountAlg::m_associationCounter
AssociationCounter< TruthParticleHitCountDebugHists > m_associationCounter
Definition
TruthParticleHitCountAlg.h:93
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::TruthParticleHitCountDebugHists
constexpr bool TruthParticleHitCountDebugHists
Definition
TruthParticleHitCountAlg.h:40
ActsTrk::TruthParticleHitCountAlg::AssociationCounter::Empty
Definition
TruthParticleHitCountAlg.h:78
ActsTrk::TruthParticleHitCountAlg::AssociationCounter::Empty::Empty
Empty(T_Args...)
Definition
TruthParticleHitCountAlg.h:80
ActsTrk::TruthParticleHitCountAlg::AssociationCounter
Definition
TruthParticleHitCountAlg.h:77
ActsTrk::TruthParticleHitCountAlg::AssociationCounter::dumpStatistics
void dumpStatistics(T_OutStream &out) const
Definition
TruthParticleHitCountAlg.cxx:61
ActsTrk::TruthParticleHitCountAlg::AssociationCounter::ATLAS_THREAD_SAFE
std::conditional< IsDebug, std::mutex, Empty >::type m_mutex ATLAS_THREAD_SAFE
Definition
TruthParticleHitCountAlg.h:84
ActsTrk::TruthParticleHitCountAlg::AssociationCounter::fillStatistics
void fillStatistics(unsigned int n_measurements) const
Definition
TruthParticleHitCountAlg.cxx:68
ElasticDecayUtil
Definition
ElasticDecayUtil.h:30
EmptyProperty
Definition
ElasticDecayUtil.h:18
type
Generated on
for ATLAS Offline Software by
1.17.0