ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsGnn
src
GnnPipelineTool.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 ACTSGNN_GNNPIPELINETOOL_H
6
#define ACTSGNN_GNNPIPELINETOOL_H
7
8
#include <cstdint>
9
#include <memory>
10
#include <optional>
11
#include <semaphore>
12
#include <string>
13
#include <vector>
14
15
#include "
ActsToolInterfaces/IGnnPipelineTool.h
"
16
#include "
ActsInterop/Logger.h
"
17
#include "
AthenaBaseComps/AthAlgTool.h
"
18
#include "
CxxUtils/checker_macros.h
"
19
#include "GaudiKernel/IChronoStatSvc.h"
20
#include "GaudiKernel/ServiceHandle.h"
21
22
class
PixelID
;
23
class
SCT_ID
;
24
25
namespace
ActsPlugins
{
26
class
GnnPipeline;
27
}
// namespace ActsPlugins
28
29
30
namespace
ActsTrk
{
31
32
class
GnnPipelineTool
:
public
extends<AthAlgTool, IGnnPipelineTool> {
33
public
:
34
GnnPipelineTool
(
const
std::string&
type
,
const
std::string& name,
35
const
IInterface* parent);
36
virtual
~GnnPipelineTool
();
37
38
StatusCode
initialize
()
override
;
39
40
StatusCode
buildSeed
(
41
const
std::vector<const xAOD::SpacePointContainer*>&
42
spacePointCollections,
43
ActsTrk::SeedContainer
& seeds)
const override
;
44
45
private
:
46
Gaudi::Property<std::string>
m_moduleMapPath
{
this
,
"moduleMapPath"
,
""
,
47
"Path to the module map files"
};
48
Gaudi::Property<std::string>
m_gnnPath
{
this
,
"gnnPath"
,
""
,
49
"Path to the gnn file"
};
50
Gaudi::Property<bool>
m_usePhiOverlapSps
{
51
this
,
"usePhiOverlapSps"
,
false
,
52
"Whether to use phi overlap spacepoints"
};
53
Gaudi::Property<unsigned int>
m_maxGpuInstances
{
54
this
,
"maxGpuInstances"
, 1,
55
"Number of events that can be on GPU in parallel"
};
56
Gaudi::Property<unsigned int>
m_numTrtContexts
{
57
this
,
"numTrtContexts"
, 1,
"Number of TensorRT contexts to allocate"
};
58
Gaudi::Property<double>
m_edgeCut
{
this
,
"edgeCut"
, 0.5,
59
"Edge cut to apply after the GNN"
};
60
Gaudi::Property<unsigned int>
m_minCandidateMeasurements
{
61
this
,
"minCandidateMeasurements"
, 7,
62
"Minimum number of spacepoints to cut for in the GNN candidates"
};
63
Gaudi::Property<int>
m_cudaDeviceIndex
{
this
,
"cudaDeviceIndex"
, 0,
64
"CUDA device index for GNN inference"
};
65
66
const
Acts::Logger&
logger
()
const
{
return
*
m_logger
; }
67
std::unique_ptr<const Acts::Logger>
m_logger
;
68
69
ServiceHandle<IChronoStatSvc>
m_chronoSvc
{
"ChronoStatSvc"
, name()};
70
71
const
PixelID
*
m_pixelIdHelper
{
nullptr
};
72
const
SCT_ID
*
m_stripIdHelper
{
nullptr
};
73
74
StatusCode
buildFeatures
(
75
const
std::vector<const xAOD::SpacePointContainer*>&
76
spacePointCollections,
77
std::vector<float>& features, std::vector<std::uint64_t>& moduleIds,
78
std::vector<int>& ids,
79
std::vector<const xAOD::SpacePoint*>& allSPPtrs,
80
std::size_t nFeatures = 12)
const
;
81
82
std::unique_ptr<ActsPlugins::GnnPipeline>
m_gnnPipeline
;
83
mutable
std::optional<std::counting_semaphore<>> m_gpuInstanceCount
84
ATLAS_THREAD_SAFE
{};
85
};
86
87
}
// namespace ActsTrk
88
89
#endif
AthAlgTool.h
IGnnPipelineTool.h
Logger.h
checker_macros.h
Define macros for attributes used to control the static checker.
ActsTrk::GnnPipelineTool::m_gnnPath
Gaudi::Property< std::string > m_gnnPath
Definition
GnnPipelineTool.h:48
ActsTrk::GnnPipelineTool::buildSeed
StatusCode buildSeed(const std::vector< const xAOD::SpacePointContainer * > &spacePointCollections, ActsTrk::SeedContainer &seeds) const override
Definition
GnnPipelineTool.cxx:174
ActsTrk::GnnPipelineTool::m_stripIdHelper
const SCT_ID * m_stripIdHelper
Definition
GnnPipelineTool.h:72
ActsTrk::GnnPipelineTool::~GnnPipelineTool
virtual ~GnnPipelineTool()
ActsTrk::GnnPipelineTool::m_usePhiOverlapSps
Gaudi::Property< bool > m_usePhiOverlapSps
Definition
GnnPipelineTool.h:50
ActsTrk::GnnPipelineTool::ATLAS_THREAD_SAFE
std::optional< std::counting_semaphore<> > m_gpuInstanceCount ATLAS_THREAD_SAFE
Definition
GnnPipelineTool.h:84
ActsTrk::GnnPipelineTool::initialize
StatusCode initialize() override
Definition
GnnPipelineTool.cxx:168
ActsTrk::GnnPipelineTool::m_moduleMapPath
Gaudi::Property< std::string > m_moduleMapPath
Definition
GnnPipelineTool.h:46
ActsTrk::GnnPipelineTool::m_maxGpuInstances
Gaudi::Property< unsigned int > m_maxGpuInstances
Definition
GnnPipelineTool.h:53
ActsTrk::GnnPipelineTool::m_minCandidateMeasurements
Gaudi::Property< unsigned int > m_minCandidateMeasurements
Definition
GnnPipelineTool.h:60
ActsTrk::GnnPipelineTool::m_chronoSvc
ServiceHandle< IChronoStatSvc > m_chronoSvc
Definition
GnnPipelineTool.h:69
ActsTrk::GnnPipelineTool::m_logger
std::unique_ptr< const Acts::Logger > m_logger
Definition
GnnPipelineTool.h:67
ActsTrk::GnnPipelineTool::GnnPipelineTool
GnnPipelineTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition
GnnPipelineTool.cxx:26
ActsTrk::GnnPipelineTool::m_numTrtContexts
Gaudi::Property< unsigned int > m_numTrtContexts
Definition
GnnPipelineTool.h:56
ActsTrk::GnnPipelineTool::logger
const Acts::Logger & logger() const
Definition
GnnPipelineTool.h:66
ActsTrk::GnnPipelineTool::m_cudaDeviceIndex
Gaudi::Property< int > m_cudaDeviceIndex
Definition
GnnPipelineTool.h:63
ActsTrk::GnnPipelineTool::m_edgeCut
Gaudi::Property< double > m_edgeCut
Definition
GnnPipelineTool.h:58
ActsTrk::GnnPipelineTool::m_pixelIdHelper
const PixelID * m_pixelIdHelper
Definition
GnnPipelineTool.h:71
ActsTrk::GnnPipelineTool::buildFeatures
StatusCode buildFeatures(const std::vector< const xAOD::SpacePointContainer * > &spacePointCollections, std::vector< float > &features, std::vector< std::uint64_t > &moduleIds, std::vector< int > &ids, std::vector< const xAOD::SpacePoint * > &allSPPtrs, std::size_t nFeatures=12) const
Definition
GnnFeatures.h:48
ActsTrk::GnnPipelineTool::m_gnnPipeline
std::unique_ptr< ActsPlugins::GnnPipeline > m_gnnPipeline
Definition
GnnPipelineTool.h:82
PixelID
This is an Identifier helper class for the Pixel subdetector.
Definition
PixelID.h:69
SCT_ID
This is an Identifier helper class for the SCT subdetector.
Definition
SCT_ID.h:68
ServiceHandle
Definition
ClusterMakerTool.h:36
ActsPlugins
Definition
GnnPipelineTool.h:25
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition
MdtCalibInput.h:31
ActsTrk::SeedContainer
Definition
SeedContainer.h:67
type
Generated on
for ATLAS Offline Software by
1.17.0