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 
13 #ifndef EFTRACKING_FPGA_INTEGRATION_DATAPREPARATIONPIPELINE_H
14 #define EFTRACKING_FPGA_INTEGRATION_DATAPREPARATIONPIPELINE_H
15 
16 // EFTracking include
17 #include "EFTrackingDataFormats.h"
18 #include "IntegrationBase.h"
19 #include "xAODContainerMaker.h"
20 #include "PassThroughTool.h"
21 #include "TestVectorTool.h"
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<xAODContainerMaker> m_xAODContainerMaker{
90  this, "xAODMaker", "xAODContainerMaker",
91  "tool to make cluster"};
92 
93  ToolHandle<PassThroughTool> m_passThroughTool{
94  this, "PassThroughTool", "PassThroughTool",
95  "The pass through tool"};
96 
97  ToolHandle<TestVectorTool> m_testVectorTool{
98  this, "TestVectorTool", "TestVectorTool",
99  "Tool to prepare test vector"};
100 };
101 
102 #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_pixelClusteringKernelName
Gaudi::Property< std::string > m_pixelClusteringKernelName
Pixle clustering kernel name.
Definition: DataPreparationPipeline.h:64
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:66
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
The base class for EFTracking 2nd demonstrator integration.
PassThroughTool.h
Tool for the passing through functionality.
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
xAODContainerMaker.h
Tool for making xAOD container.
DataPreparationPipeline::m_passThroughTool
ToolHandle< PassThroughTool > m_passThroughTool
Tool handle for PassThroughTool.
Definition: DataPreparationPipeline.h:93
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
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
This is the class for the data preparation pipeline.
Definition: DataPreparationPipeline.h:37
DataPreparationPipeline::setupBuffers
StatusCode setupBuffers()
Definition: DataPreparationPipeline.cxx:142
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:97
DataPreparationPipeline::m_spacepointInBuff
cl::Buffer m_spacepointInBuff
Buffer for spacepoint input.
Definition: DataPreparationPipeline.h:54
SpacePointContainer.h
StripClusterContainer.h
TestVectorTool.h
Tool for test vector.
DataPreparationPipeline::setupKernelArgs
StatusCode setupKernelArgs()
Definition: DataPreparationPipeline.cxx:180
DataPreparationPipeline::m_pixelClusteringKernel
cl::Kernel m_pixelClusteringKernel
Kernel for pixel clustering.
Definition: DataPreparationPipeline.h:48
DataPreparationPipeline::m_xAODContainerMaker
ToolHandle< xAODContainerMaker > m_xAODContainerMaker
Tool handle for xAODContainerMaker.
Definition: DataPreparationPipeline.h:89
EFTrackingDataFormats.h
DataPreparationPipeline::m_pxlClusteringInBuff
cl::Buffer m_pxlClusteringInBuff
Buffer for pixel clustering input.
Definition: DataPreparationPipeline.h:51