ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsGPUPatternRecognition
src
DeviceTrackFindingAlg.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
#ifndef ACTSGPUPATTERNRECOGNITION_DEVICETRACKFINDINGALG_H
5
#define ACTSGPUPATTERNRECOGNITION_DEVICETRACKFINDINGALG_H
6
7
#include "
AthenaBaseComps/AthReentrantAlgorithm.h
"
8
#include "GaudiKernel/ToolHandle.h"
9
#include "
StoreGate/ReadHandleKey.h
"
10
#include "
StoreGate/WriteHandleKey.h
"
11
12
#include "
IDeviceTrackFindingAlgProviderTool.h
"
13
#include "
AthDeviceInterfaces/IMemoryResourceTool.h
"
14
#include "
AthDeviceInterfaces/ICopyTool.h
"
15
#include "
ActsGPUEvent/TracccMagField.h
"
16
#include "
ActsGPUEvent/TracccDetectorGeometryDescription.h
"
17
#include "
ActsGPUEvent/TracccDetectorGeometryDescription.h
"
18
#include "
ActsGPUEvent/TracccTrkParamCollection.h
"
19
#include "
ActsGPUEvent/TracccMeasurementCollection.h
"
20
#include "
ActsGPUEvent/TracccTrackContainer.h
"
21
22
namespace
ActsTrk
{
38
class
DeviceTrackFindingAlg
:
public
AthReentrantAlgorithm
{
39
public
:
40
using
AthReentrantAlgorithm::AthReentrantAlgorithm;
41
43
virtual
StatusCode
initialize
()
override
;
45
virtual
StatusCode
execute
(
const
EventContext& ctx)
const override
;
46
47
private
:
48
49
virtual
StatusCode
configureTrackFinding
();
50
52
ToolHandle<IDeviceTrackFindingAlgProviderTool>
m_trkFindingAlgProviderTool
{
53
this
,
"TrackFindingAlgProviderTool"
,
""
,
54
"Tool providing the appropriate backend device track finding algorithm"
};
55
57
SG::ReadHandleKey<traccc::edm::measurement_collection::const_view>
m_inputMeasKey
{
58
this
,
"InputTracccMeasurements"
,
""
,
59
"Input traccc measurements collection buffer"
};
60
62
Gaudi::Property<std::string>
m_inputMagFieldKey
{
63
this
,
"InputTracccMagField"
,
""
,
64
"Input traccc inhom. mag. field"
};
65
66
Gaudi::Property<std::string>
m_deviceDetectorObjectName
{
67
this
,
"InputTracccDetectorGeometry"
,
""
,
68
"Input traccc detector geometry"
};
69
72
SG::ReadHandleKey<traccc::bound_track_parameters_collection_types::buffer>
m_inputTrkParamKey
{
73
this
,
"InputTracccTrackParameters"
,
""
,
74
"Input traccc track parameter collection buffer"
};
75
76
79
SG::WriteHandleKey<traccc_track_container::buffer>
m_outputTracksKey
{
80
this
,
"OutputTracccTracks"
,
""
,
81
"Output traccc tracks collection buffer"
};
82
83
86
Gaudi::Property<unsigned int>
m_maxNumBranchesPerSeed
{
this
,
"maxNumBranchesPerSeed"
, 3,
87
"maximum number of branches per seed"
};
88
Gaudi::Property<unsigned int>
m_maxNumBranchesPerSurface
{
this
,
"maxNumBranchesPerSurface"
, 1,
89
"maximum number of branches per surface"
};
90
Gaudi::Property<unsigned int>
m_minTrackCandidatesPerTrack
{
this
,
"minTrackCandidatesPerTrack"
, 7,
91
"minimum number of measurements per track"
};
92
Gaudi::Property<unsigned int>
m_maxTrackCandidatesPerTrack
{
this
,
"maxTrackCandidatesPerTrack"
, 20,
93
"maximum number of measurements per track"
};
94
Gaudi::Property<unsigned int>
m_maxNumSkippingPerCand
{
this
,
"maxNumSkippingPerCand"
, 2,
95
"maximum number of holes per track candidate"
};
96
Gaudi::Property<unsigned int>
m_maxNumConsecutiveSkipped
{
this
,
"maxNumConsecutiveSkipped"
, 1,
97
"maximum number of consecutive holes per track candidate"
};
98
Gaudi::Property<float>
m_chi2Max
{
this
,
"chi2Max"
, 30.f,
99
"maximum chi2 for a measurement to be added to a track candidate"
};
100
Gaudi::Property<float>
m_minPt
{
this
,
"minPt"
, 600.f,
101
"minimum transverse momentum of a track candidate [MeV]"
};
102
Gaudi::Property<float>
m_minP
{
this
,
"minP"
, 100.f,
103
"minimum momentum of a track candidate [MeV]"
};
104
Gaudi::Property<unsigned int>
m_maxNumTracksPerMeasurement
{
this
,
"maxNumTracksPerMeasurement"
, 1,
105
"maximum number of tracks sharing a measurement, 0 for no limit"
};
106
Gaudi::Property<unsigned int>
m_initialLinksPerSeed
{
this
,
"initialLinksPerSeed"
, 20,
107
"initial number of links reserved per seed"
};
108
Gaudi::Property<float>
m_minStepLengthForNextSurface
{
this
,
"minStepLengthForNextSurface"
, 0.5f,
109
"minimum step length to the next surface [mm]"
};
110
Gaudi::Property<unsigned int>
m_maxStepCountsForNextSurface
{
this
,
"maxStepCountsForNextSurface"
, 100,
111
"maximum number of steps to the next surface"
};
112
113
114
traccc::finding_config
m_finding_cfg
;
115
const
traccc::magnetic_field*
m_deviceMagField
{
nullptr
};
116
const
traccc::detector_buffer*
m_deviceDetector
{
nullptr
};
117
118
};
119
120
}
// namespace ActsTrk
121
122
#endif
// ACTSGPUPATTERNRECOGNITION_DEVICETRACKFINDINGALG_H
AthReentrantAlgorithm.h
ICopyTool.h
IDeviceTrackFindingAlgProviderTool.h
IMemoryResourceTool.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.
TracccDetectorGeometryDescription.h
TracccMagField.h
TracccMeasurementCollection.h
TracccTrackContainer.h
TracccTrkParamCollection.h
ActsTrk::DeviceTrackFindingAlg
Algorithm executing traccc track finding on the GPU.
Definition
DeviceTrackFindingAlg.h:38
ActsTrk::DeviceTrackFindingAlg::m_inputMeasKey
SG::ReadHandleKey< traccc::edm::measurement_collection::const_view > m_inputMeasKey
Definition
DeviceTrackFindingAlg.h:57
ActsTrk::DeviceTrackFindingAlg::m_maxNumBranchesPerSeed
Gaudi::Property< unsigned int > m_maxNumBranchesPerSeed
Definition
DeviceTrackFindingAlg.h:86
ActsTrk::DeviceTrackFindingAlg::m_deviceMagField
const traccc::magnetic_field * m_deviceMagField
Definition
DeviceTrackFindingAlg.h:115
ActsTrk::DeviceTrackFindingAlg::configureTrackFinding
virtual StatusCode configureTrackFinding()
Definition
DeviceTrackFindingAlg.cxx:41
ActsTrk::DeviceTrackFindingAlg::m_maxStepCountsForNextSurface
Gaudi::Property< unsigned int > m_maxStepCountsForNextSurface
Definition
DeviceTrackFindingAlg.h:110
ActsTrk::DeviceTrackFindingAlg::m_maxNumSkippingPerCand
Gaudi::Property< unsigned int > m_maxNumSkippingPerCand
Definition
DeviceTrackFindingAlg.h:94
ActsTrk::DeviceTrackFindingAlg::m_maxNumBranchesPerSurface
Gaudi::Property< unsigned int > m_maxNumBranchesPerSurface
Definition
DeviceTrackFindingAlg.h:88
ActsTrk::DeviceTrackFindingAlg::m_inputTrkParamKey
SG::ReadHandleKey< traccc::bound_track_parameters_collection_types::buffer > m_inputTrkParamKey
Definition
DeviceTrackFindingAlg.h:72
ActsTrk::DeviceTrackFindingAlg::m_deviceDetector
const traccc::detector_buffer * m_deviceDetector
Definition
DeviceTrackFindingAlg.h:116
ActsTrk::DeviceTrackFindingAlg::m_deviceDetectorObjectName
Gaudi::Property< std::string > m_deviceDetectorObjectName
Definition
DeviceTrackFindingAlg.h:66
ActsTrk::DeviceTrackFindingAlg::m_finding_cfg
traccc::finding_config m_finding_cfg
Definition
DeviceTrackFindingAlg.h:114
ActsTrk::DeviceTrackFindingAlg::m_minPt
Gaudi::Property< float > m_minPt
Definition
DeviceTrackFindingAlg.h:100
ActsTrk::DeviceTrackFindingAlg::m_initialLinksPerSeed
Gaudi::Property< unsigned int > m_initialLinksPerSeed
Definition
DeviceTrackFindingAlg.h:106
ActsTrk::DeviceTrackFindingAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Function executing the algorithm.
Definition
DeviceTrackFindingAlg.cxx:79
ActsTrk::DeviceTrackFindingAlg::m_trkFindingAlgProviderTool
ToolHandle< IDeviceTrackFindingAlgProviderTool > m_trkFindingAlgProviderTool
Definition
DeviceTrackFindingAlg.h:52
ActsTrk::DeviceTrackFindingAlg::m_maxNumTracksPerMeasurement
Gaudi::Property< unsigned int > m_maxNumTracksPerMeasurement
Definition
DeviceTrackFindingAlg.h:104
ActsTrk::DeviceTrackFindingAlg::initialize
virtual StatusCode initialize() override
Function initializing the algorithm.
Definition
DeviceTrackFindingAlg.cxx:22
ActsTrk::DeviceTrackFindingAlg::m_outputTracksKey
SG::WriteHandleKey< traccc_track_container::buffer > m_outputTracksKey
Definition
DeviceTrackFindingAlg.h:79
ActsTrk::DeviceTrackFindingAlg::m_chi2Max
Gaudi::Property< float > m_chi2Max
Definition
DeviceTrackFindingAlg.h:98
ActsTrk::DeviceTrackFindingAlg::m_maxNumConsecutiveSkipped
Gaudi::Property< unsigned int > m_maxNumConsecutiveSkipped
Definition
DeviceTrackFindingAlg.h:96
ActsTrk::DeviceTrackFindingAlg::m_minStepLengthForNextSurface
Gaudi::Property< float > m_minStepLengthForNextSurface
Definition
DeviceTrackFindingAlg.h:108
ActsTrk::DeviceTrackFindingAlg::m_maxTrackCandidatesPerTrack
Gaudi::Property< unsigned int > m_maxTrackCandidatesPerTrack
Definition
DeviceTrackFindingAlg.h:92
ActsTrk::DeviceTrackFindingAlg::m_inputMagFieldKey
Gaudi::Property< std::string > m_inputMagFieldKey
Definition
DeviceTrackFindingAlg.h:62
ActsTrk::DeviceTrackFindingAlg::m_minTrackCandidatesPerTrack
Gaudi::Property< unsigned int > m_minTrackCandidatesPerTrack
Definition
DeviceTrackFindingAlg.h:90
ActsTrk::DeviceTrackFindingAlg::m_minP
Gaudi::Property< float > m_minP
Definition
DeviceTrackFindingAlg.h:102
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
Generated on
for ATLAS Offline Software by
1.17.0