ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
HighGranularityTimingDetector
HGTD_Analysis
src
ExpertTrackTimeFromSummaryTool.cxx
Go to the documentation of this file.
1
9
10
#include "
ExpertTrackTimeFromSummaryTool.h
"
11
12
#include <algorithm>
13
#include <bit>
14
15
using namespace
HGTD
;
16
17
ExpertTrackTimeFromSummaryTool::ExpertTrackTimeFromSummaryTool
(
18
const
std::string& t,
const
std::string& n,
const
IInterface* p)
19
: base_class(t, n, p) {}
20
21
StatusCode
ExpertTrackTimeFromSummaryTool::initialize
() {
22
ATH_CHECK
(AthAlgTool::initialize());
23
return
StatusCode::SUCCESS;
24
}
25
26
bool
ExpertTrackTimeFromSummaryTool::expertHasTime
(
27
const
xAOD::TrackParticle
& track_particle)
const
{
28
// The validTime decoration checks for time consistency and
29
// extensions with chi2 bellow threashold
30
if
(
m_acc_has_valid_time
(track_particle) != 1) {
31
return
false
;
32
}
33
34
if
(
m_do_min_nhits
and (this->
nHits
(track_particle) <= 1)) {
35
// if a 2 hit minimum is required, reject the case of a single associated
36
// hit if the track falls into the defined eta region
37
float
fabs_eta = std::abs(track_particle.
eta
());
38
if
(fabs_eta >
m_min_eta
and fabs_eta <
m_max_eta
) {
39
return
false
;
40
}
41
}
42
43
// Check if the last measurement of ITk track is close to HGTD
44
bool
last_hit_not_on_last_surface =
45
m_acc_summary_info
(track_particle) & (1 <<
m_holes_ptrn_sft
);
46
if
(
m_do_last_hit
and last_hit_not_on_last_surface) {
47
return
false
;
48
}
49
50
return
true
;
51
}
52
53
float
ExpertTrackTimeFromSummaryTool::expertTime
(
54
const
xAOD::TrackParticle
& track_particle)
const
{
55
return
track_particle.
time
();
56
}
57
58
float
ExpertTrackTimeFromSummaryTool::expertTimeRes
(
59
const
xAOD::TrackParticle
& track_particle)
const
{
60
return
m_acc_time_resolution
(track_particle);
61
}
62
63
int
ExpertTrackTimeFromSummaryTool::nHits
(
64
const
xAOD::TrackParticle
& track_particle)
const
{
65
// Get 4-bit word that indicate valid hits after time consistency check
66
uint8_t n_comp =
67
(
m_acc_summary_info
(track_particle) >>
m_comp_ptrn_sft
) & 0x0F;
68
return
std::popcount(n_comp);
69
}
70
71
int
ExpertTrackTimeFromSummaryTool::nPrimaryHits
(
72
const
xAOD::TrackParticle
& track_particle)
const
{
73
// Get 4-bit word that indicate hits associated with primary particles
74
uint8_t n_primes =
75
(
m_acc_summary_info
(track_particle) >>
m_primes_ptrn_sft
) & 0x0F;
76
return
std::popcount(n_primes);
77
}
78
79
float
ExpertTrackTimeFromSummaryTool::fracPrimaryHits
(
80
const
xAOD::TrackParticle
& track_particle)
const
{
81
if
(not
expertHasTime
(track_particle)) {
82
ATH_MSG_WARNING
(
"[ExpertTrackTimeFromSummaryTool::fracPrimaryHits]"
83
"No available hits, returning -999."
);
84
return
-999.;
85
}
86
short
n_hits = this->
nHits
(track_particle);
87
if
(n_hits > 0) {
88
return
(
float
)this->
nPrimaryHits
(track_particle) / (float)n_hits;
89
}
else
{
90
return
0;
91
}
92
}
93
94
int
ExpertTrackTimeFromSummaryTool::numberPotentialPrimaryHits
(
95
const
xAOD::TrackParticle
& track_particle)
const
{
96
const
std::vector<bool>& expected_hits =
97
m_acc_perLayer_expectCluster
(track_particle);
98
return
std::count(expected_hits.begin(), expected_hits.end(),
true
);
99
}
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x,...)
Definition
AthMsgStreamMacros.h:46
ExpertTrackTimeFromSummaryTool.h
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration.
nHits
static const uint32_t nHits
Definition
PixelByteStreamModuleMask.h:55
HGTD::ExpertTrackTimeFromSummaryTool::fracPrimaryHits
virtual float fracPrimaryHits(const xAOD::TrackParticle &track_particle) const override final
Definition
ExpertTrackTimeFromSummaryTool.cxx:79
HGTD::ExpertTrackTimeFromSummaryTool::expertTime
virtual float expertTime(const xAOD::TrackParticle &track_particle) const override final
Definition
ExpertTrackTimeFromSummaryTool.cxx:53
HGTD::ExpertTrackTimeFromSummaryTool::initialize
virtual StatusCode initialize() override final
Definition
ExpertTrackTimeFromSummaryTool.cxx:21
HGTD::ExpertTrackTimeFromSummaryTool::nHits
int nHits(const xAOD::TrackParticle &track_particle) const
Number of HGTD hits that survived the time consistency check, decoded from the HGTD_summaryinfo bitfi...
Definition
ExpertTrackTimeFromSummaryTool.cxx:63
HGTD::ExpertTrackTimeFromSummaryTool::m_acc_perLayer_expectCluster
SG::ConstAccessor< std::vector< bool > > m_acc_perLayer_expectCluster
Definition
ExpertTrackTimeFromSummaryTool.h:91
HGTD::ExpertTrackTimeFromSummaryTool::expertHasTime
virtual bool expertHasTime(const xAOD::TrackParticle &track_particle) const override final
Definition
ExpertTrackTimeFromSummaryTool.cxx:26
HGTD::ExpertTrackTimeFromSummaryTool::m_comp_ptrn_sft
const short m_comp_ptrn_sft
Definition
ExpertTrackTimeFromSummaryTool.h:95
HGTD::ExpertTrackTimeFromSummaryTool::m_acc_summary_info
SG::ConstAccessor< uint32_t > m_acc_summary_info
Definition
ExpertTrackTimeFromSummaryTool.h:89
HGTD::ExpertTrackTimeFromSummaryTool::m_max_eta
Gaudi::Property< float > m_max_eta
Definition
ExpertTrackTimeFromSummaryTool.h:86
HGTD::ExpertTrackTimeFromSummaryTool::m_do_min_nhits
Gaudi::Property< bool > m_do_min_nhits
Definition
ExpertTrackTimeFromSummaryTool.h:83
HGTD::ExpertTrackTimeFromSummaryTool::m_min_eta
Gaudi::Property< float > m_min_eta
Definition
ExpertTrackTimeFromSummaryTool.h:85
HGTD::ExpertTrackTimeFromSummaryTool::m_do_last_hit
Gaudi::Property< bool > m_do_last_hit
Definition
ExpertTrackTimeFromSummaryTool.h:81
HGTD::ExpertTrackTimeFromSummaryTool::m_primes_ptrn_sft
const short m_primes_ptrn_sft
Definition
ExpertTrackTimeFromSummaryTool.h:96
HGTD::ExpertTrackTimeFromSummaryTool::nPrimaryHits
int nPrimaryHits(const xAOD::TrackParticle &track_particle) const
Number of HGTD hits associated to a primary particle, decoded from the HGTD_summaryinfo bitfield.
Definition
ExpertTrackTimeFromSummaryTool.cxx:71
HGTD::ExpertTrackTimeFromSummaryTool::m_holes_ptrn_sft
const short m_holes_ptrn_sft
Definition
ExpertTrackTimeFromSummaryTool.h:97
HGTD::ExpertTrackTimeFromSummaryTool::expertTimeRes
virtual float expertTimeRes(const xAOD::TrackParticle &track_particle) const override final
Definition
ExpertTrackTimeFromSummaryTool.cxx:58
HGTD::ExpertTrackTimeFromSummaryTool::numberPotentialPrimaryHits
virtual int numberPotentialPrimaryHits(const xAOD::TrackParticle &track_particle) const override final
Definition
ExpertTrackTimeFromSummaryTool.cxx:94
HGTD::ExpertTrackTimeFromSummaryTool::m_acc_time_resolution
SG::ConstAccessor< float > m_acc_time_resolution
Definition
ExpertTrackTimeFromSummaryTool.h:90
HGTD::ExpertTrackTimeFromSummaryTool::m_acc_has_valid_time
SG::ConstAccessor< uint8_t > m_acc_has_valid_time
Definition
ExpertTrackTimeFromSummaryTool.h:88
HGTD::ExpertTrackTimeFromSummaryTool::ExpertTrackTimeFromSummaryTool
ExpertTrackTimeFromSummaryTool(const std::string &, const std::string &, const IInterface *)
Definition
ExpertTrackTimeFromSummaryTool.cxx:17
xAOD::TrackParticle_v1::time
float time() const
Returns the time.
Definition
TrackParticle_v1.cxx:161
xAOD::TrackParticle_v1::eta
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Definition
TrackParticle_v1.cxx:79
HGTD
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration.
Definition
ExpertTrackTimeFromClustersTool.h:38
xAOD::TrackParticle
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Definition
Event/xAOD/xAODTracking/xAODTracking/TrackParticle.h:13
Generated on
for ATLAS Offline Software by
1.17.0