ATLAS Offline Software
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 
17 #include "EFTrackingDataFormats.h"
18 
22 
23 class PassThroughTool : public extends<AthAlgTool, IEFTrackingFPGAIntegrationTool>
24 {
25 public:
26  using extends::extends;
27 
28  StatusCode initialize() override;
29 
37  const EventContext &ctx) const;
38 
47  std::vector<EFTrackingDataFormats::StripCluster> &ef_sc,
48  unsigned long N) const;
49 
58  std::vector<EFTrackingDataFormats::PixelCluster> &ef_pc,
59  unsigned long N) const;
60 
68  const xAOD::SpacePointContainer *sp,
69  std::vector<EFTrackingDataFormats::SpacePoint> &ef_sp,
70  std::vector<std::vector<const xAOD::UncalibratedMeasurement *>> &sp_meas,
71  unsigned long N, bool isStrip) const;
72 
82  const std::vector<EFTrackingDataFormats::StripCluster> &inputSC,
84  // PixelCluster
85  const std::vector<EFTrackingDataFormats::PixelCluster> &inputPC,
87  // Strip SpacePoint
88  const std::vector<EFTrackingDataFormats::SpacePoint> &inputSSP,
90  // Pixel SpacePoint
91  const std::vector<EFTrackingDataFormats::SpacePoint> &inputPSP,
93  // Metadata
95  const;
96 
102  const std::vector<EFTrackingDataFormats::StripCluster> &inputSC,
104  // PixelCluster
105  const std::vector<EFTrackingDataFormats::PixelCluster> &inputPC,
107  // Metadata
109  const;
110 
116  bool runSW() const { return m_runSW; }
117 
118 private:
119  Gaudi::Property<bool> m_runSW{this, "RunSW", true, "Run software mode"};
120  Gaudi::Property<bool> m_doSpacepoints{this, "DoSpacepoints", false, "Do spacepoints"};
121  Gaudi::Property<bool> m_clusterOnlyPassThrouth{this, "ClusterOnlyPassThrough", false,
122  "Use the cluster-only pass-through kernel"};
123 
125  this, "StripClusterContainerKey", "ITkStripClusters",
126  "Key for Strip Cluster Containers"};
128  this, "PixelClusterContainerKey", "ITkPixelClusters",
129  "Key for Pixel Cluster Containers"};
130 };
131 
132 #endif // EFTRACKING_FPGA_INTEGRATION__PASSTHROUGH_TOOL_H
EFTrackingDataFormats::StripClusterAuxInput
The StripClusterAuxInput struct is used to simplify the creaction of the xAOD::StripClusterContainer.
Definition: EFTrackingDataFormats.h:186
PassThroughTool::m_runSW
Gaudi::Property< bool > m_runSW
Software mode, not running on the FPGA.
Definition: PassThroughTool.h:119
EFTrackingDataFormats::PixelClusterAuxInput
The PixelClusterAuxInput struct is used to simplify the creaction of the xAOD::PixelClusterContainer.
Definition: EFTrackingDataFormats.h:200
JetTiledMap::N
@ N
Definition: TiledEtaPhiMap.h:44
PassThroughTool::m_stripClustersKey
SG::ReadHandleKey< xAOD::StripClusterContainer > m_stripClustersKey
Definition: PassThroughTool.h:124
SG::ReadHandleKey< xAOD::StripClusterContainer >
PassThroughTool::passThroughSW_clusterOnly
StatusCode passThroughSW_clusterOnly(const std::vector< EFTrackingDataFormats::StripCluster > &inputSC, EFTrackingDataFormats::StripClusterOutput &ef_scOutput, const std::vector< EFTrackingDataFormats::PixelCluster > &inputPC, EFTrackingDataFormats::PixelClusterOutput &ef_pcOutput, EFTrackingDataFormats::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:669
PassThroughTool::passThroughSW
StatusCode passThroughSW(const std::vector< EFTrackingDataFormats::StripCluster > &inputSC, EFTrackingDataFormats::StripClusterOutput &ef_scOutput, const std::vector< EFTrackingDataFormats::PixelCluster > &inputPC, EFTrackingDataFormats::PixelClusterOutput &ef_pcOutput, const std::vector< EFTrackingDataFormats::SpacePoint > &inputSSP, EFTrackingDataFormats::SpacePointOutput &ef_sspOutput, const std::vector< EFTrackingDataFormats::SpacePoint > &inputPSP, EFTrackingDataFormats::SpacePointOutput &ef_pspOutput, EFTrackingDataFormats::Metadata *metadata) const
Software version of the pass-through kernel.
Definition: PassThroughTool.cxx:499
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
PassThroughTool::getInputClusterData
StatusCode getInputClusterData(const xAOD::StripClusterContainer *sc, std::vector< EFTrackingDataFormats::StripCluster > &ef_sc, unsigned long N) const
Convert the strip cluster from xAOD container to simple std::vector of EFTrackingDataFormats::StripCl...
Definition: PassThroughTool.cxx:323
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:120
EFTrackingDataFormats::Metadata
The structure of the Metadata containing data after clusterization.
Definition: EFTrackingDataFormats.h:102
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
EFTrackingDataFormats::PixelClusterOutput
The PixelClusters struct contains the output arrays from the FPGA.
Definition: EFTrackingDataFormats.h:136
PixelClusterContainer.h
AthAlgTool.h
PassThroughTool::initialize
StatusCode initialize() override
Definition: PassThroughTool.cxx:17
EFTrackingDataFormats::StripClusterOutput
The StripClusters struct contains the output arrays from the FPGA.
Definition: EFTrackingDataFormats.h:121
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
PassThroughTool::m_clusterOnlyPassThrouth
Gaudi::Property< bool > m_clusterOnlyPassThrouth
Use the cluster-only pass through tool.
Definition: PassThroughTool.h:121
dumpTgcDigiThreshold.isStrip
list isStrip
Definition: dumpTgcDigiThreshold.py:33
PassThroughTool::runSW
bool runSW() const
A getter for the m_runSW property.
Definition: PassThroughTool.h:116
SpacePointContainer.h
StripClusterContainer.h
PassThroughTool::m_pixelClustersKey
SG::ReadHandleKey< xAOD::PixelClusterContainer > m_pixelClustersKey
Definition: PassThroughTool.h:127
IEFTrackingFPGAIntegrationTool.h
PassThroughTool::runPassThrough
StatusCode runPassThrough(EFTrackingDataFormats::StripClusterAuxInput &scAux, EFTrackingDataFormats::PixelClusterAuxInput &pxAux, EFTrackingDataFormats::Metadata *metadata, const EventContext &ctx) const
Call this function at the DataPreparationPipeline to run the pass-through kernels.
Definition: PassThroughTool.cxx:26
PassThroughTool::getInputSpacePointData
StatusCode getInputSpacePointData(const xAOD::SpacePointContainer *sp, std::vector< EFTrackingDataFormats::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 EFTrackingDataFormats::SpacePoin...
Definition: PassThroughTool.cxx:432
PassThroughTool
Definition: PassThroughTool.h:24
python.SystemOfUnits.pc
float pc
Definition: SystemOfUnits.py:99
EFTrackingDataFormats::SpacePointOutput
The Pixel/Strip SpacePoints struct contains the output arrays from the FPGA.
Definition: EFTrackingDataFormats.h:166
EFTrackingDataFormats.h