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-2026 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
55
SG::ReadHandleKeyArray<MeasurementToTruthParticleAssociation>
m_measAssocKeys
56
{
this
,
"MeasurementAssocKeys"
, {},
"Association map from the measurements to generator particles."
};
57
SG::WriteHandleKey<TruthParticleHitCounts>
m_truthHitCountsOut
58
{
this
,
"TruthParticleHitCountsOut"
,
""
,
"Map from truth particle to hit counts."
};
59
60
Gaudi::Property<float>
m_maxEnergyLoss
61
{
this
,
"MaxEnergyLoss"
, 10e12,
"Stop moving up the decay chain if the energy loss is above this value."
};
62
Gaudi::Property<unsigned int>
m_nHitsMin
63
{
this
,
"NHitsMin"
, 1,
"Minimum number of hits associated to a truth particle to consider the particle."
};
64
65
ElasticDecayUtil<TruthParticleHitCountDebugHists>
m_elasticDecayUtil
;
66
static
constexpr
float
s_unitGeV
= 1e3;
67
68
Gaudi::Property<std::vector<float>>
m_energyLossBinning
69
{
this
,
"EnergyLossBinning"
, {20.,0.,5.*
s_unitGeV
},
"Binning to be used for the energy loss histograms."
};
70
71
template
<
bool
IsDebug>
72
struct
AssociationCounter
{
73
struct
Empty
{
74
template
<
typename
... T_Args>
75
Empty
(T_Args... ) {}
76
};
77
mutable
typename
std::conditional<IsDebug,
78
std::mutex,
79
Empty
>
::type
m_mutex
ATLAS_THREAD_SAFE
;
80
mutable
typename
std::conditional<IsDebug,
81
ActsUtils::StatHist
,
82
Empty
>
::type
m_measPerTruthParticle
ATLAS_THREAD_SAFE
{20,-.5,40.-.5};
83
84
template
<
class
T_OutStream>
85
void
dumpStatistics
(T_OutStream &out)
const
;
86
void
fillStatistics
(
unsigned
int
n_measurements)
const
;
87
};
88
AssociationCounter<TruthParticleHitCountDebugHists>
m_associationCounter
;
89
mutable
std::atomic<std::size_t> m_nTruthParticlesWithHits
ATLAS_THREAD_SAFE
{};
90
};
91
92
}
// namespace
93
94
#endif
ContextUtility.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
TruthParticleHitCounts.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::TruthParticleHitCountAlg
Definition
TruthParticleHitCountAlg.h:43
ActsTrk::TruthParticleHitCountAlg::m_elasticDecayUtil
ElasticDecayUtil< TruthParticleHitCountDebugHists > m_elasticDecayUtil
Definition
TruthParticleHitCountAlg.h:65
ActsTrk::TruthParticleHitCountAlg::m_energyLossBinning
Gaudi::Property< std::vector< float > > m_energyLossBinning
Definition
TruthParticleHitCountAlg.h:69
ActsTrk::TruthParticleHitCountAlg::m_nHitsMin
Gaudi::Property< unsigned int > m_nHitsMin
Definition
TruthParticleHitCountAlg.h:63
ActsTrk::TruthParticleHitCountAlg::m_maxEnergyLoss
Gaudi::Property< float > m_maxEnergyLoss
Definition
TruthParticleHitCountAlg.h:61
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:51
ActsTrk::TruthParticleHitCountAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition
TruthParticleHitCountAlg.cxx:65
ActsTrk::TruthParticleHitCountAlg::m_truthHitCountsOut
SG::WriteHandleKey< TruthParticleHitCounts > m_truthHitCountsOut
Definition
TruthParticleHitCountAlg.h:58
ActsTrk::TruthParticleHitCountAlg::ATLAS_THREAD_SAFE
std::atomic< std::size_t > m_nTruthParticlesWithHits ATLAS_THREAD_SAFE
Definition
TruthParticleHitCountAlg.h:89
ActsTrk::TruthParticleHitCountAlg::m_measAssocKeys
SG::ReadHandleKeyArray< MeasurementToTruthParticleAssociation > m_measAssocKeys
Definition
TruthParticleHitCountAlg.h:56
ActsTrk::TruthParticleHitCountAlg::s_unitGeV
static constexpr float s_unitGeV
Definition
TruthParticleHitCountAlg.h:66
ActsTrk::TruthParticleHitCountAlg::initialize
virtual StatusCode initialize() override
Definition
TruthParticleHitCountAlg.cxx:26
ActsTrk::TruthParticleHitCountAlg::m_associationCounter
AssociationCounter< TruthParticleHitCountDebugHists > m_associationCounter
Definition
TruthParticleHitCountAlg.h:88
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::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
SG::ReadHandleKeyArray
HandleKeyArray< ReadHandle< T >, ReadHandleKey< T >, Gaudi::DataHandle::Reader > ReadHandleKeyArray
Definition
StoreGate/StoreGate/ReadHandleKeyArray.h:32
ActsTrk::TruthParticleHitCountAlg::AssociationCounter::Empty
Definition
TruthParticleHitCountAlg.h:73
ActsTrk::TruthParticleHitCountAlg::AssociationCounter::Empty::Empty
Empty(T_Args...)
Definition
TruthParticleHitCountAlg.h:75
ActsTrk::TruthParticleHitCountAlg::AssociationCounter
Definition
TruthParticleHitCountAlg.h:72
ActsTrk::TruthParticleHitCountAlg::AssociationCounter::dumpStatistics
void dumpStatistics(T_OutStream &out) const
Definition
TruthParticleHitCountAlg.cxx:37
ActsTrk::TruthParticleHitCountAlg::AssociationCounter::ATLAS_THREAD_SAFE
std::conditional< IsDebug, std::mutex, Empty >::type m_mutex ATLAS_THREAD_SAFE
Definition
TruthParticleHitCountAlg.h:79
ActsTrk::TruthParticleHitCountAlg::AssociationCounter::fillStatistics
void fillStatistics(unsigned int n_measurements) const
Definition
TruthParticleHitCountAlg.cxx:44
ElasticDecayUtil
Definition
ElasticDecayUtil.h:30
type
Generated on
for ATLAS Offline Software by
1.17.0