ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
HighGranularityTimingDetector
HGTD_Reconstruction
HGTD_RecAlgs
src
TimeCompatibilityCheckAlg.h
Go to the documentation of this file.
1
24
25
#ifndef HGTD_RECALGS_TIMECOMPATIBILITYCHECKALG_H
26
#define HGTD_RECALGS_TIMECOMPATIBILITYCHECKALG_H
27
28
#include "
AthenaBaseComps/AthReentrantAlgorithm.h
"
29
30
#include "GaudiKernel/ToolHandle.h"
31
#include "GaudiKernel/SystemOfUnits.h"
32
#include "
GeneratorObjects/McEventCollection.h
"
33
#include "
HGTD_RecToolInterfaces/IHGTD_HolesITkTool.h
"
34
#include "
StoreGate/ReadDecorHandle.h
"
35
#include "
StoreGate/ReadDecorHandleKey.h
"
36
#include "
StoreGate/WriteDecorHandleKey.h
"
37
#include "
xAODTracking/TrackParticle.h
"
38
#include "
xAODTracking/TrackParticleContainer.h
"
39
#include <string>
40
41
42
namespace
HGTD
{
43
44
class
TimeCompatibilityCheckAlg
:
public
AthReentrantAlgorithm
{
45
46
public
:
47
TimeCompatibilityCheckAlg
(
const
std::string& name, ISvcLocator* pSvcLocator);
48
virtual
~TimeCompatibilityCheckAlg
() {}
49
virtual
StatusCode
initialize
() override final;
50
virtual StatusCode
execute
(
const
EventContext& ctx)
const
override final;
51
52
private
:
53
ToolHandle<
IHGTD_HolesITkTool
>
m_extensionTool
{
this
,
"ITkHoles"
,
"HGTD_IterativeExtensionTool/HGTD_IterativeExtensionTool"
,
"Tool for calculating the holes in"
};
54
55
56
57
SG::ReadHandleKey<xAOD::TrackParticleContainer>
m_trackParticleContainerKey
{
this
,
"TrackParticleContainerName"
,
"InDetTrackParticles"
,
"Name of the TrackParticle container"
};
58
SG::ReadDecorHandleKey<xAOD::TrackParticleContainer>
m_layerHasExtensionKey
{
this
,
"HGTD_has_extension"
,
m_trackParticleContainerKey
,
"HGTD_has_extension"
,
"deco with a handle for an extension"
};
59
SG::ReadDecorHandleKey<xAOD::TrackParticleContainer>
m_layerExtensionChi2Key
{
this
,
"HGTD_extension_chi2"
,
m_trackParticleContainerKey
,
"HGTD_extension_chi2"
,
"deco with a handle for a ch2 of extension"
};
60
SG::ReadDecorHandleKey<xAOD::TrackParticleContainer>
m_layerClusterRawTimeKey
{
this
,
"HGTD_cluster_raw_time"
,
m_trackParticleContainerKey
,
"HGTD_cluster_raw_time"
,
"deco with a handle for layer cluster raw time"
};
61
SG::ReadDecorHandleKey<xAOD::TrackParticleContainer>
m_layerClusterTimeKey
{
this
,
"HGTD_cluster_time"
,
m_trackParticleContainerKey
,
"HGTD_cluster_time"
,
"deco with a handle for cluster time"
};
62
SG::ReadDecorHandleKey<xAOD::TrackParticleContainer>
m_layerClusterTruthClassKey
{
this
,
"HGTD_cluster_truth_class"
,
m_trackParticleContainerKey
,
"HGTD_cluster_truth_class"
,
"deco with a handle for a truth time"
};
63
SG::ReadDecorHandleKey<xAOD::TrackParticleContainer>
m_layerClusterShadowedKey
{
this
,
"HGTD_cluster_shadowed"
,
m_trackParticleContainerKey
,
"HGTD_cluster_shadowed"
,
"deco with a handle for a shadowed cluster"
};
64
SG::ReadDecorHandleKey<xAOD::TrackParticleContainer>
m_layerClusterMergedKey
{
this
,
"HGTD_cluster_merged"
,
m_trackParticleContainerKey
,
"HGTD_cluster_merged"
,
"deco with a handle for a merged cluster"
};
65
SG::ReadDecorHandleKey<xAOD::TrackParticleContainer>
m_layerPrimaryExpectedKey
{
this
,
"HGTD_primary_expected"
,
m_trackParticleContainerKey
,
"HGTD_primary_expected"
,
"deco with a handle for an expected primary"
};
66
SG::ReadDecorHandleKey<xAOD::TrackParticleContainer>
m_extrapXKey
{
this
,
"HGTD_extrap_x"
,
m_trackParticleContainerKey
,
"HGTD_extrap_x"
,
"deco with a handle for an x of extrap"
};
67
SG::ReadDecorHandleKey<xAOD::TrackParticleContainer>
m_extrapYKey
{
this
,
"HGTD_extrap_y"
,
m_trackParticleContainerKey
,
"HGTD_extrap_y"
,
"deco with a handle for an y of extrap"
};
68
SG::ReadDecorHandleKey<xAOD::TrackParticleContainer>
m_holesHGTDKey
{
this
,
"HGTD_holes"
,
m_trackParticleContainerKey
,
"HGTD_holes"
,
"deco with the holes on track in HGTD"
};
69
70
71
SG::WriteDecorHandleKey<xAOD::TrackParticleContainer>
m_compatibleHitsTimesKey
{
this
,
"HGTD_times_of_compatible_hits"
,
m_trackParticleContainerKey
,
"HGTD_times_of_compatible_hits"
,
"deco with a handle for the time compatible hits' times"
};
72
SG::WriteDecorHandleKey<xAOD::TrackParticleContainer>
m_lastHitInITkCutKey
{
this
,
"HGTD_last_hit_in_ITk_cut"
,
m_trackParticleContainerKey
,
"HGTD_last_hit_in_ITk_cut"
,
"deco with a handle for the last hit to be close to HGTDrequirement"
};
73
SG::WriteDecorHandleKey<xAOD::TrackParticleContainer>
m_holesITkKey
{
this
,
"HGTD_holes_in_ITk"
,
m_trackParticleContainerKey
,
"HGTD_holes_in_ITk"
,
"deco with a handle for the number of holes on track in ITk between the last hit on track and HGTD"
};
74
75
//TODO: the resolution is fixed to 0.035 ps, should add the resolution calculation after the irradiation
76
77
struct
Hit
{
78
float
m_time
= 0;
79
float
m_resolution
= 35 * Gaudi::Units::picosecond;
80
};
81
82
FloatProperty
m_chi2_threshold
{
this
,
"Chi2Threshold"
, 1.5,
83
"Quality cut for decision to keep hits compatible in time"
};
84
85
FloatProperty
m_delta_cut
{
this
,
"DeltaTCut"
, 2.0,
86
"Upper limit for a cluster delta t cut"
};
87
88
// using Hit_Vec_t = std::vector<Hit>:
89
// using Float_Vec_t = std::vector<float>;
90
float
calculateChi2
(
const
std::vector<Hit>& hits)
const
;
91
92
std::vector<TimeCompatibilityCheckAlg::Hit>
93
getValidHits
(
const
xAOD::TrackParticle
* track_particle)
const
;
94
95
bool
passesDeltaT
(
const
std::vector<Hit>& hits)
const
;
96
97
std::vector<TimeCompatibilityCheckAlg::Hit>
98
getTimeCompatibleHits
(
const
xAOD::TrackParticle
* track_particle)
const
;
99
100
bool
lastHitIsOnLastSurface
(
const
xAOD::TrackParticle
& track_particle)
const
;
101
102
const
Trk::TrackParameters
*
getLastHitOnTrack
(
const
Trk::Track
& track)
const
;
103
104
};
105
106
}
//namespace HGTD
107
108
#endif
// HGTD_RECALGS_TIMECOMPATIBILITYCHECKALG_H
AthReentrantAlgorithm.h
TrackParticleContainer.h
TrackParticle.h
IHGTD_HolesITkTool.h
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration.
McEventCollection.h
ReadDecorHandleKey.h
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
ReadDecorHandle.h
Handle class for reading a decoration on an object.
WriteDecorHandleKey.h
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition
AthReentrantAlgorithm.h:74
HGTD::TimeCompatibilityCheckAlg::getValidHits
std::vector< TimeCompatibilityCheckAlg::Hit > getValidHits(const xAOD::TrackParticle *track_particle) const
Definition
TimeCompatibilityCheckAlg.cxx:136
HGTD::TimeCompatibilityCheckAlg::TimeCompatibilityCheckAlg
TimeCompatibilityCheckAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition
TimeCompatibilityCheckAlg.cxx:20
HGTD::TimeCompatibilityCheckAlg::calculateChi2
float calculateChi2(const std::vector< Hit > &hits) const
Definition
TimeCompatibilityCheckAlg.cxx:117
HGTD::TimeCompatibilityCheckAlg::m_extrapYKey
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_extrapYKey
Definition
TimeCompatibilityCheckAlg.h:67
HGTD::TimeCompatibilityCheckAlg::passesDeltaT
bool passesDeltaT(const std::vector< Hit > &hits) const
Definition
TimeCompatibilityCheckAlg.cxx:162
HGTD::TimeCompatibilityCheckAlg::m_extensionTool
ToolHandle< IHGTD_HolesITkTool > m_extensionTool
Definition
TimeCompatibilityCheckAlg.h:53
HGTD::TimeCompatibilityCheckAlg::~TimeCompatibilityCheckAlg
virtual ~TimeCompatibilityCheckAlg()
Definition
TimeCompatibilityCheckAlg.h:48
HGTD::TimeCompatibilityCheckAlg::m_layerClusterRawTimeKey
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_layerClusterRawTimeKey
Definition
TimeCompatibilityCheckAlg.h:60
HGTD::TimeCompatibilityCheckAlg::initialize
virtual StatusCode initialize() override final
Definition
TimeCompatibilityCheckAlg.cxx:24
HGTD::TimeCompatibilityCheckAlg::m_compatibleHitsTimesKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_compatibleHitsTimesKey
Definition
TimeCompatibilityCheckAlg.h:71
HGTD::TimeCompatibilityCheckAlg::m_layerClusterTruthClassKey
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_layerClusterTruthClassKey
Definition
TimeCompatibilityCheckAlg.h:62
HGTD::TimeCompatibilityCheckAlg::m_layerExtensionChi2Key
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_layerExtensionChi2Key
Definition
TimeCompatibilityCheckAlg.h:59
HGTD::TimeCompatibilityCheckAlg::getTimeCompatibleHits
std::vector< TimeCompatibilityCheckAlg::Hit > getTimeCompatibleHits(const xAOD::TrackParticle *track_particle) const
Definition
TimeCompatibilityCheckAlg.cxx:174
HGTD::TimeCompatibilityCheckAlg::m_layerClusterTimeKey
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_layerClusterTimeKey
Definition
TimeCompatibilityCheckAlg.h:61
HGTD::TimeCompatibilityCheckAlg::m_delta_cut
FloatProperty m_delta_cut
Definition
TimeCompatibilityCheckAlg.h:85
HGTD::TimeCompatibilityCheckAlg::m_lastHitInITkCutKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_lastHitInITkCutKey
Definition
TimeCompatibilityCheckAlg.h:72
HGTD::TimeCompatibilityCheckAlg::m_layerClusterShadowedKey
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_layerClusterShadowedKey
Definition
TimeCompatibilityCheckAlg.h:63
HGTD::TimeCompatibilityCheckAlg::m_holesHGTDKey
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_holesHGTDKey
Definition
TimeCompatibilityCheckAlg.h:68
HGTD::TimeCompatibilityCheckAlg::lastHitIsOnLastSurface
bool lastHitIsOnLastSurface(const xAOD::TrackParticle &track_particle) const
Definition
TimeCompatibilityCheckAlg.cxx:281
HGTD::TimeCompatibilityCheckAlg::m_layerClusterMergedKey
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_layerClusterMergedKey
Definition
TimeCompatibilityCheckAlg.h:64
HGTD::TimeCompatibilityCheckAlg::m_chi2_threshold
FloatProperty m_chi2_threshold
Definition
TimeCompatibilityCheckAlg.h:82
HGTD::TimeCompatibilityCheckAlg::m_extrapXKey
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_extrapXKey
Definition
TimeCompatibilityCheckAlg.h:66
HGTD::TimeCompatibilityCheckAlg::m_layerHasExtensionKey
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_layerHasExtensionKey
Definition
TimeCompatibilityCheckAlg.h:58
HGTD::TimeCompatibilityCheckAlg::m_trackParticleContainerKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackParticleContainerKey
Definition
TimeCompatibilityCheckAlg.h:57
HGTD::TimeCompatibilityCheckAlg::m_layerPrimaryExpectedKey
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_layerPrimaryExpectedKey
Definition
TimeCompatibilityCheckAlg.h:65
HGTD::TimeCompatibilityCheckAlg::m_holesITkKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_holesITkKey
Definition
TimeCompatibilityCheckAlg.h:73
HGTD::TimeCompatibilityCheckAlg::getLastHitOnTrack
const Trk::TrackParameters * getLastHitOnTrack(const Trk::Track &track) const
Definition
TimeCompatibilityCheckAlg.cxx:257
HGTD::TimeCompatibilityCheckAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override final
Definition
TimeCompatibilityCheckAlg.cxx:49
IHGTD_HolesITkTool
Definition
IHGTD_HolesITkTool.h:25
SG::ReadDecorHandleKey
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Definition
StoreGate/StoreGate/ReadDecorHandleKey.h:86
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition
StoreGate/StoreGate/ReadHandleKey.h:40
SG::WriteDecorHandleKey
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
Definition
StoreGate/StoreGate/WriteDecorHandleKey.h:90
Trk::Track
The ATLAS Track class.
Definition
Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
const
HGTD
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration.
Definition
HGTD_TdcCalibrationTool.h:34
Trk::TrackParameters
ParametersBase< TrackParametersDim, Charged > TrackParameters
Definition
Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:27
xAOD::TrackParticle
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Definition
Event/xAOD/xAODTracking/xAODTracking/TrackParticle.h:13
HGTD::TimeCompatibilityCheckAlg::Hit
Definition
TimeCompatibilityCheckAlg.h:77
HGTD::TimeCompatibilityCheckAlg::Hit::m_resolution
float m_resolution
Definition
TimeCompatibilityCheckAlg.h:79
HGTD::TimeCompatibilityCheckAlg::Hit::m_time
float m_time
Definition
TimeCompatibilityCheckAlg.h:78
private
#define private
Definition
testRead.cxx:27
Generated on
for ATLAS Offline Software by
1.17.0