Loading [MathJax]/jax/output/SVG/config.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
PassThroughTool.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__PASSTHROUGH_TOOL_H
13 #define EFTRACKING_FPGA_INTEGRATION__PASSTHROUGH_TOOL_H
14 
18 
22 
23 class PassThroughTool : public extends<AthAlgTool, IEFTrackingFPGAIntegrationTool>
24 {
25 public:
26  using extends::extends;
27 
28  StatusCode initialize() override;
29 
40  const EventContext &ctx) const;
41 
50  std::vector<EFTrackingTransient::StripCluster> &ef_sc,
51  unsigned long N) const;
52 
61  std::vector<EFTrackingTransient::PixelCluster> &ef_pc,
62  unsigned long N) const;
63 
71  const xAOD::SpacePointContainer *sp,
72  std::vector<EFTrackingTransient::SpacePoint> &ef_sp,
73  std::vector<std::vector<const xAOD::UncalibratedMeasurement *>> &sp_meas,
74  unsigned long N, bool isStrip) const;
75 
85  const std::vector<EFTrackingTransient::StripCluster> &inputSC,
87  // PixelCluster
88  const std::vector<EFTrackingTransient::PixelCluster> &inputPC,
90  // Strip SpacePoint
91  const std::vector<EFTrackingTransient::SpacePoint> &inputSSP,
93  // Pixel SpacePoint
94  const std::vector<EFTrackingTransient::SpacePoint> &inputPSP,
96  // Metadata
98  const;
99 
105  const std::vector<EFTrackingTransient::StripCluster> &inputSC,
107  // PixelCluster
108  const std::vector<EFTrackingTransient::PixelCluster> &inputPC,
110  // Metadata
112  const;
113 
119  bool runSW() const { return m_runSW; }
120 
121 
122 private:
123  Gaudi::Property<bool> m_runSW{this, "RunSW", true, "Run software mode"};
124  Gaudi::Property<bool> m_doSpacepoints{this, "DoSpacepoints", false, "Do spacepoints"};
125  Gaudi::Property<bool> m_clusterOnlyPassThrough{this, "ClusterOnlyPassThrough", false,
126  "Use the cluster-only pass-through kernel"};
127  Gaudi::Property<unsigned int> m_maxClusterNum{this, "MaxClusterNum", 500000,
128  "Maximum number of clusters that can be processed"};
129  Gaudi::Property<unsigned int> m_maxSpacePointNum{this, "MaxSpacePointNum", 500000,
130  "Maximum number of space points that can be processed"};
131 
132 
134  this, "StripClusterContainerKey", "ITkStripClusters",
135  "Key for Strip Cluster Containers"};
137  this, "PixelClusterContainerKey", "ITkPixelClusters",
138  "Key for Pixel Cluster Containers"};
140  this, "SpacePointContainerKey", "ITkPixelSpacePoints",
141  "Key for Space Point Containers"};
142 
143 };
144 
145 #endif // EFTRACKING_FPGA_INTEGRATION__PASSTHROUGH_TOOL_H
PassThroughTool::m_runSW
Gaudi::Property< bool > m_runSW
Software mode, not running on the FPGA.
Definition: PassThroughTool.h:123
EFTrackingTransient::PixelClusterAuxInput
The PixelClusterAuxInput struct is used to simplify the creaction of the xAOD::PixelClusterContainer.
Definition: EFTrackingTransient.h:218
EFTrackingTransient::SpacePointAuxInput
The SpacePointAuxInput struct is used to simplify the creaction of the xAOD::SpacePointContainer.
Definition: EFTrackingTransient.h:246
PassThroughTool::passThroughSW_clusterOnly
StatusCode passThroughSW_clusterOnly(const std::vector< EFTrackingTransient::StripCluster > &inputSC, EFTrackingTransient::StripClusterOutput &ef_scOutput, const std::vector< EFTrackingTransient::PixelCluster > &inputPC, EFTrackingTransient::PixelClusterOutput &ef_pcOutput, EFTrackingTransient::Metadata *metadata) const
This is a cluster-only version (sw) of the pass-through kernel This is used for cluter level studies.
Definition: PassThroughTool.cxx:843
PassThroughTool::m_spacePointsKey
SG::ReadHandleKey< xAOD::SpacePointContainer > m_spacePointsKey
Definition: PassThroughTool.h:139
EFTrackingTransient::Metadata
The structure of the Metadata containing data after clusterization.
Definition: EFTrackingTransient.h:116
JetTiledMap::N
@ N
Definition: TiledEtaPhiMap.h:44
PassThroughTool::m_stripClustersKey
SG::ReadHandleKey< xAOD::StripClusterContainer > m_stripClustersKey
Definition: PassThroughTool.h:133
SG::ReadHandleKey< xAOD::StripClusterContainer >
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
python.checkMetadata.metadata
metadata
Definition: checkMetadata.py:175
PassThroughTool::m_doSpacepoints
Gaudi::Property< bool > m_doSpacepoints
Temporary flag before spacepoints are ready.
Definition: PassThroughTool.h:124
PassThroughTool::m_maxSpacePointNum
Gaudi::Property< unsigned int > m_maxSpacePointNum
Definition: PassThroughTool.h:129
PassThroughTool::getInputClusterData
StatusCode getInputClusterData(const xAOD::StripClusterContainer *sc, std::vector< EFTrackingTransient::StripCluster > &ef_sc, unsigned long N) const
Convert the strip cluster from xAOD container to simple std::vector of EFTrackingTransient::StripClus...
Definition: PassThroughTool.cxx:448
PassThroughTool::m_clusterOnlyPassThrough
Gaudi::Property< bool > m_clusterOnlyPassThrough
Use the cluster-only pass through tool
Definition: PassThroughTool.h:125
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
PixelClusterContainer.h
AthAlgTool.h
PassThroughTool::initialize
StatusCode initialize() override
Definition: PassThroughTool.cxx:13
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
dumpTgcDigiThreshold.isStrip
list isStrip
Definition: dumpTgcDigiThreshold.py:33
EFTrackingTransient::StripClusterOutput
The StripClusters struct contains the output arrays from the FPGA.
Definition: EFTrackingTransient.h:136
EFTrackingTransient::StripClusterAuxInput
The StripClusterAuxInput struct is used to simplify the creaction of the xAOD::StripClusterContainer.
Definition: EFTrackingTransient.h:203
EFTrackingTransient.h
PassThroughTool::getInputSpacePointData
StatusCode getInputSpacePointData(const xAOD::SpacePointContainer *sp, std::vector< EFTrackingTransient::SpacePoint > &ef_sp, std::vector< std::vector< const xAOD::UncalibratedMeasurement * >> &sp_meas, unsigned long N, bool isStrip) const
Convert the space point from xAOD container to simple std::vector of EFTrackingTransient::SpacePoint.
Definition: PassThroughTool.cxx:555
EFTrackingTransient::SpacePointOutput
The Pixel/Strip SpacePoints struct contains the output arrays from the FPGA.
Definition: EFTrackingTransient.h:181
PassThroughTool::passThroughSW
StatusCode passThroughSW(const std::vector< EFTrackingTransient::StripCluster > &inputSC, EFTrackingTransient::StripClusterOutput &ef_scOutput, const std::vector< EFTrackingTransient::PixelCluster > &inputPC, EFTrackingTransient::PixelClusterOutput &ef_pcOutput, const std::vector< EFTrackingTransient::SpacePoint > &inputSSP, EFTrackingTransient::SpacePointOutput &ef_sspOutput, const std::vector< EFTrackingTransient::SpacePoint > &inputPSP, EFTrackingTransient::SpacePointOutput &ef_pspOutput, EFTrackingTransient::Metadata *metadata) const
Software version of the pass-through kernel.
Definition: PassThroughTool.cxx:622
PassThroughTool::runSW
bool runSW() const
A getter for the m_runSW property.
Definition: PassThroughTool.h:119
EFTrackingTransient::PixelClusterOutput
The PixelClusters struct contains the output arrays from the FPGA.
Definition: EFTrackingTransient.h:152
SpacePointContainer.h
StripClusterContainer.h
PassThroughTool::m_pixelClustersKey
SG::ReadHandleKey< xAOD::PixelClusterContainer > m_pixelClustersKey
Definition: PassThroughTool.h:136
IEFTrackingFPGAIntegrationTool.h
PassThroughTool::runPassThrough
StatusCode runPassThrough(EFTrackingTransient::StripClusterAuxInput &scAux, EFTrackingTransient::PixelClusterAuxInput &pxAux, EFTrackingTransient::SpacePointAuxInput &stripSpAux, EFTrackingTransient::SpacePointAuxInput &pixelSpAux, EFTrackingTransient::Metadata *metadata, const EventContext &ctx) const
Call this function at the DataPreparationPipeline to run the pass-through kernels.
Definition: PassThroughTool.cxx:23
PassThroughTool::m_maxClusterNum
Gaudi::Property< unsigned int > m_maxClusterNum
Definition: PassThroughTool.h:127
PassThroughTool
Definition: PassThroughTool.h:24
python.SystemOfUnits.pc
float pc
Definition: SystemOfUnits.py:113