ATLAS Offline Software
Loading...
Searching...
No Matches
HGTD::ExpertTrackTimeFromSummaryTool Class Reference

#include <ExpertTrackTimeFromSummaryTool.h>

Inheritance diagram for HGTD::ExpertTrackTimeFromSummaryTool:
Collaboration diagram for HGTD::ExpertTrackTimeFromSummaryTool:

Public Member Functions

 ExpertTrackTimeFromSummaryTool (const std::string &, const std::string &, const IInterface *)
virtual ~ExpertTrackTimeFromSummaryTool ()=default
virtual StatusCode initialize () override final
virtual bool expertHasTime (const xAOD::TrackParticle &track_particle) const override final
virtual float expertTime (const xAOD::TrackParticle &track_particle) const override final
virtual float expertTimeRes (const xAOD::TrackParticle &track_particle) const override final
virtual float fracPrimaryHits (const xAOD::TrackParticle &track_particle) const override final
virtual int numberPotentialPrimaryHits (const xAOD::TrackParticle &track_particle) const override final

Private Member Functions

int nHits (const xAOD::TrackParticle &track_particle) const
 Number of HGTD hits that survived the time consistency check, decoded from the HGTD_summaryinfo bitfield.
int nPrimaryHits (const xAOD::TrackParticle &track_particle) const
 Number of HGTD hits associated to a primary particle, decoded from the HGTD_summaryinfo bitfield.

Private Attributes

Gaudi::Property< bool > m_do_last_hit
Gaudi::Property< bool > m_do_min_nhits
Gaudi::Property< float > m_min_eta {this, "MinEta", 3.5, "Default value"}
Gaudi::Property< float > m_max_eta {this, "MaxEta", 3.9, "Default value"}
SG::ConstAccessor< uint8_t > m_acc_has_valid_time {"hasValidTime"}
SG::ConstAccessor< uint32_t > m_acc_summary_info {"HGTD_summaryinfo"}
SG::ConstAccessor< float > m_acc_time_resolution {"timeResolution"}
SG::ConstAccessor< std::vector< bool > > m_acc_perLayer_expectCluster
const short m_comp_ptrn_sft = 8
const short m_primes_ptrn_sft = 16
const short m_holes_ptrn_sft = 12

Detailed Description

Definition at line 34 of file ExpertTrackTimeFromSummaryTool.h.

Constructor & Destructor Documentation

◆ ExpertTrackTimeFromSummaryTool()

ExpertTrackTimeFromSummaryTool::ExpertTrackTimeFromSummaryTool ( const std::string & t,
const std::string & n,
const IInterface * p )

Definition at line 17 of file ExpertTrackTimeFromSummaryTool.cxx.

19 : base_class(t, n, p) {}

◆ ~ExpertTrackTimeFromSummaryTool()

virtual HGTD::ExpertTrackTimeFromSummaryTool::~ExpertTrackTimeFromSummaryTool ( )
virtualdefault

Member Function Documentation

◆ expertHasTime()

bool ExpertTrackTimeFromSummaryTool::expertHasTime ( const xAOD::TrackParticle & track_particle) const
finaloverridevirtual

Definition at line 26 of file ExpertTrackTimeFromSummaryTool.cxx.

27 {
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}
static const uint32_t nHits
virtual double eta() const override final
The pseudorapidity ( ) of the particle.

◆ expertTime()

float ExpertTrackTimeFromSummaryTool::expertTime ( const xAOD::TrackParticle & track_particle) const
finaloverridevirtual

Definition at line 53 of file ExpertTrackTimeFromSummaryTool.cxx.

54 {
55 return track_particle.time();
56}
float time() const
Returns the time.

◆ expertTimeRes()

float ExpertTrackTimeFromSummaryTool::expertTimeRes ( const xAOD::TrackParticle & track_particle) const
finaloverridevirtual

Definition at line 58 of file ExpertTrackTimeFromSummaryTool.cxx.

59 {
60 return m_acc_time_resolution(track_particle);
61}

◆ fracPrimaryHits()

float ExpertTrackTimeFromSummaryTool::fracPrimaryHits ( const xAOD::TrackParticle & track_particle) const
finaloverridevirtual

Definition at line 79 of file ExpertTrackTimeFromSummaryTool.cxx.

80 {
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}
#define ATH_MSG_WARNING(x,...)
virtual bool expertHasTime(const xAOD::TrackParticle &track_particle) const override final
int nPrimaryHits(const xAOD::TrackParticle &track_particle) const
Number of HGTD hits associated to a primary particle, decoded from the HGTD_summaryinfo bitfield.

◆ initialize()

StatusCode ExpertTrackTimeFromSummaryTool::initialize ( )
finaloverridevirtual

Definition at line 21 of file ExpertTrackTimeFromSummaryTool.cxx.

21 {
22 ATH_CHECK(AthAlgTool::initialize());
23 return StatusCode::SUCCESS;
24}
#define ATH_CHECK
Evaluate an expression and check for errors.

◆ nHits()

int ExpertTrackTimeFromSummaryTool::nHits ( const xAOD::TrackParticle & track_particle) const
private

Number of HGTD hits that survived the time consistency check, decoded from the HGTD_summaryinfo bitfield.

Kept private on purpose: a caller that needs a hit count should declare the dependency on the decoration it wants to read itself instead of going through the tool.

Definition at line 63 of file ExpertTrackTimeFromSummaryTool.cxx.

64 {
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}

◆ nPrimaryHits()

int ExpertTrackTimeFromSummaryTool::nPrimaryHits ( const xAOD::TrackParticle & track_particle) const
private

Number of HGTD hits associated to a primary particle, decoded from the HGTD_summaryinfo bitfield.

Private for the same reason as nHits.

Definition at line 71 of file ExpertTrackTimeFromSummaryTool.cxx.

72 {
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}

◆ numberPotentialPrimaryHits()

int ExpertTrackTimeFromSummaryTool::numberPotentialPrimaryHits ( const xAOD::TrackParticle & track_particle) const
finaloverridevirtual

Definition at line 94 of file ExpertTrackTimeFromSummaryTool.cxx.

95 {
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}
SG::ConstAccessor< std::vector< bool > > m_acc_perLayer_expectCluster

Member Data Documentation

◆ m_acc_has_valid_time

SG::ConstAccessor<uint8_t> HGTD::ExpertTrackTimeFromSummaryTool::m_acc_has_valid_time {"hasValidTime"}
private

Definition at line 88 of file ExpertTrackTimeFromSummaryTool.h.

88{"hasValidTime"};

◆ m_acc_perLayer_expectCluster

SG::ConstAccessor<std::vector<bool> > HGTD::ExpertTrackTimeFromSummaryTool::m_acc_perLayer_expectCluster
private
Initial value:
{
"HGTD_primary_expected"}

Definition at line 91 of file ExpertTrackTimeFromSummaryTool.h.

91 {
92 "HGTD_primary_expected"};

◆ m_acc_summary_info

SG::ConstAccessor<uint32_t> HGTD::ExpertTrackTimeFromSummaryTool::m_acc_summary_info {"HGTD_summaryinfo"}
private

Definition at line 89 of file ExpertTrackTimeFromSummaryTool.h.

89{"HGTD_summaryinfo"};

◆ m_acc_time_resolution

SG::ConstAccessor<float> HGTD::ExpertTrackTimeFromSummaryTool::m_acc_time_resolution {"timeResolution"}
private

Definition at line 90 of file ExpertTrackTimeFromSummaryTool.h.

90{"timeResolution"};

◆ m_comp_ptrn_sft

const short HGTD::ExpertTrackTimeFromSummaryTool::m_comp_ptrn_sft = 8
private

Definition at line 95 of file ExpertTrackTimeFromSummaryTool.h.

◆ m_do_last_hit

Gaudi::Property<bool> HGTD::ExpertTrackTimeFromSummaryTool::m_do_last_hit
private
Initial value:
{this, "UseLastHitCut", true,
"Default value"}

Definition at line 81 of file ExpertTrackTimeFromSummaryTool.h.

81 {this, "UseLastHitCut", true,
82 "Default value"};

◆ m_do_min_nhits

Gaudi::Property<bool> HGTD::ExpertTrackTimeFromSummaryTool::m_do_min_nhits
private
Initial value:
{this, "UseMinNHits", true,
"Default value"}

Definition at line 83 of file ExpertTrackTimeFromSummaryTool.h.

83 {this, "UseMinNHits", true,
84 "Default value"};

◆ m_holes_ptrn_sft

const short HGTD::ExpertTrackTimeFromSummaryTool::m_holes_ptrn_sft = 12
private

Definition at line 97 of file ExpertTrackTimeFromSummaryTool.h.

◆ m_max_eta

Gaudi::Property<float> HGTD::ExpertTrackTimeFromSummaryTool::m_max_eta {this, "MaxEta", 3.9, "Default value"}
private

Definition at line 86 of file ExpertTrackTimeFromSummaryTool.h.

86{this, "MaxEta", 3.9, "Default value"};

◆ m_min_eta

Gaudi::Property<float> HGTD::ExpertTrackTimeFromSummaryTool::m_min_eta {this, "MinEta", 3.5, "Default value"}
private

Definition at line 85 of file ExpertTrackTimeFromSummaryTool.h.

85{this, "MinEta", 3.5, "Default value"};

◆ m_primes_ptrn_sft

const short HGTD::ExpertTrackTimeFromSummaryTool::m_primes_ptrn_sft = 16
private

Definition at line 96 of file ExpertTrackTimeFromSummaryTool.h.


The documentation for this class was generated from the following files: