ATLAS Offline Software
DataPreparationPipeline.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
12 #ifndef EFTRACKING_FPGA_INTEGRATION_DATAPREPARATIONPIPELINE_H
13 #define EFTRACKING_FPGA_INTEGRATION_DATAPREPARATIONPIPELINE_H
14 
15 // EFTracking include
22 
23 // Athena include
28 
37 {
38 public:
39  using IntegrationBase::IntegrationBase;
40  StatusCode initialize() override final;
41  StatusCode execute(const EventContext &ctx) const override final;
42 
45 
46 private:
47  // OpenCL kernel objects
49  cl::Kernel m_spacepointKernel;
50 
51  cl::Buffer m_pxlClusteringInBuff;
53 
54  cl::Buffer m_spacepointInBuff;
55  cl::Buffer m_spacepointOutBuff;
56 
57  // Kernel related properties
58  Gaudi::Property<std::string> m_xclbin{
59  this, "xclbin", "",
60  "xclbin path and name"};
61  Gaudi::Property<std::string> m_passThroughKernelName{this,
62  "PassThroughKernelName", "",
63  "Pass through kernel name"};
64  Gaudi::Property<std::string> m_pixelClusteringKernelName{this,
65  "PixelClusteringKernelName", "",
66  "Pixel Clustering kernel name"};
67  Gaudi::Property<std::string> m_spacepointKernelName{this,
68  "SpacepointKernelName", "",
69  "Spacepoint kernel name"};
70 
71  // Test vector related properties
72  Gaudi::Property<std::string> m_pixelClusterTVPath{this, "PixelClusterTV", "",
73  "Path to pixel cluster test vector"};
74  Gaudi::Property<std::string> m_pixelClusterRefTVPath{this, "PixelClusterRefTV", "",
75  "Path to pixel cluster reference test vector"};
76 
77  Gaudi::Property<std::string> m_spacepointTVPath{this, "SpacepointTV", "",
78  "Path to spacepoint test vector"};
79  Gaudi::Property<std::string> m_spacepointRefTVPath{this, "SpacepointRefTV", "",
80  "Path to spacepoint reference test vector"};
81 
82  // Flags
83  Gaudi::Property<bool> m_usePassThrough{
84  this, "RunPassThrough", false,
85  "Use the passthrough tool instead of data prep pipeline"};
86  Gaudi::Property<bool> m_useTV{this, "UseTV", false, "Use test vector"};
87 
88  // Tool handles
89  ToolHandle<xAODClusterMaker> m_xAODClusterMaker{
90  this, "xAODClusterMaker", "xAODClusterMaker",
91  "tool to make cluster"};
92 
93  ToolHandle<xAODSpacePointMaker> m_xAODSpacePointMaker{
94  this, "xAODSpacePointMaker", "xAODSpacePointMaker",
95  "tool to make space point"};
96 
97  ToolHandle<PassThroughTool> m_passThroughTool{
98  this, "PassThroughTool", "PassThroughTool",
99  "The pass through tool"};
100 
101  ToolHandle<TestVectorTool> m_testVectorTool{
102  this, "TestVectorTool", "TestVectorTool",
103  "Tool to prepare test vector"};
104 };
105 
106 #endif // EFTRACKING_FPGA_INTEGRATION_DATAPREPARATIONPIPELINE_H
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
DataPreparationPipeline::m_pixelClusterRefTVPath
Gaudi::Property< std::string > m_pixelClusterRefTVPath
Pixel cluster reference test vector.
Definition: DataPreparationPipeline.h:74
IntegrationBase
The base class for the EFTracking FPGA integration development.
Definition: IntegrationBase.h:38
DataPreparationPipeline::m_xAODSpacePointMaker
ToolHandle< xAODSpacePointMaker > m_xAODSpacePointMaker
Tool handle for xAODSpacePointMaker.
Definition: DataPreparationPipeline.h:93
DataPreparationPipeline::m_pixelClusteringKernelName
Gaudi::Property< std::string > m_pixelClusteringKernelName
Pixle clustering kernel name.
Definition: DataPreparationPipeline.h:64
xAODSpacePointMaker.h
DataPreparationPipeline::m_spacepointOutBuff
cl::Buffer m_spacepointOutBuff
Buffer for spacepoint output.
Definition: DataPreparationPipeline.h:55
DataPreparationPipeline::execute
StatusCode execute(const EventContext &ctx) const override final
Should be overriden by derived classes to perform meaningful work.
Definition: DataPreparationPipeline.cxx:67
DataPreparationPipeline::m_pixelClusterTVPath
Gaudi::Property< std::string > m_pixelClusterTVPath
Pixel cluster test vector.
Definition: DataPreparationPipeline.h:72
DataPreparationPipeline::m_pxlClusteringOutBuff
cl::Buffer m_pxlClusteringOutBuff
Buffer for pixel clustering output.
Definition: DataPreparationPipeline.h:52
IntegrationBase.h
PassThroughTool.h
DataPreparationPipeline::m_spacepointTVPath
Gaudi::Property< std::string > m_spacepointTVPath
Spacepoint test vector.
Definition: DataPreparationPipeline.h:77
DataPreparationPipeline::m_spacepointRefTVPath
Gaudi::Property< std::string > m_spacepointRefTVPath
Spacepoint reference test vector.
Definition: DataPreparationPipeline.h:79
DataPreparationPipeline::m_passThroughTool
ToolHandle< PassThroughTool > m_passThroughTool
Tool handle for PassThroughTool.
Definition: DataPreparationPipeline.h:97
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
PixelClusterContainer.h
DataPreparationPipeline::m_useTV
Gaudi::Property< bool > m_useTV
Use test vector.
Definition: DataPreparationPipeline.h:86
DataPreparationPipeline::m_spacepointKernel
cl::Kernel m_spacepointKernel
Kernel for spacepoint.
Definition: DataPreparationPipeline.h:49
DataPreparationPipeline::m_passThroughKernelName
Gaudi::Property< std::string > m_passThroughKernelName
Pass through kernel name.
Definition: DataPreparationPipeline.h:61
DataPreparationPipeline::m_xclbin
Gaudi::Property< std::string > m_xclbin
Path and name of the xclbin file.
Definition: DataPreparationPipeline.h:58
EFTrackingTransient.h
DataPreparationPipeline::m_spacepointKernelName
Gaudi::Property< std::string > m_spacepointKernelName
Spacepoint kernel name.
Definition: DataPreparationPipeline.h:67
DataPreparationPipeline::initialize
StatusCode initialize() override final
Detect the OpenCL devices and prepare OpenCL context.
Definition: DataPreparationPipeline.cxx:17
DataPreparationPipeline
Class for the data preparation pipeline.
Definition: DataPreparationPipeline.h:37
DataPreparationPipeline::setupBuffers
StatusCode setupBuffers()
Definition: DataPreparationPipeline.cxx:152
DataPreparationPipeline::m_usePassThrough
Gaudi::Property< bool > m_usePassThrough
Use the pass through tool instead of data prep pipeline.
Definition: DataPreparationPipeline.h:83
DataPreparationPipeline::m_testVectorTool
ToolHandle< TestVectorTool > m_testVectorTool
Tool handle for TestVectorTool.
Definition: DataPreparationPipeline.h:101
DataPreparationPipeline::m_spacepointInBuff
cl::Buffer m_spacepointInBuff
Buffer for spacepoint input.
Definition: DataPreparationPipeline.h:54
xAODClusterMaker.h
SpacePointContainer.h
StripClusterContainer.h
DataPreparationPipeline::m_xAODClusterMaker
ToolHandle< xAODClusterMaker > m_xAODClusterMaker
Tool handle for xAODClusterMaker.
Definition: DataPreparationPipeline.h:89
TestVectorTool.h
DataPreparationPipeline::setupKernelArgs
StatusCode setupKernelArgs()
Definition: DataPreparationPipeline.cxx:190
DataPreparationPipeline::m_pixelClusteringKernel
cl::Kernel m_pixelClusteringKernel
Kernel for pixel clustering.
Definition: DataPreparationPipeline.h:48
DataPreparationPipeline::m_pxlClusteringInBuff
cl::Buffer m_pxlClusteringInBuff
Buffer for pixel clustering input.
Definition: DataPreparationPipeline.h:51