Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
OutputConversionTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
11 #ifndef EFTRACKING_FPGA_INTEGRATION__OUTPUT_CONVERSION_TOOL_H
12 #define EFTRACKING_FPGA_INTEGRATION__OUTPUT_CONVERSION_TOOL_H
13 
17 
19 {
20  // define the FSM for the output conversion
21  enum class FSM
22  {
23  Unknown,
26  GlobalHits,
27  PixelEDM,
28  StripEDM,
29  Error
30  };
31 }
32 
33 class OutputConversionTool : public extends<AthAlgTool, IEFTrackingFPGAIntegrationTool>
34 {
35 public:
36  using extends::extends;
37  StatusCode initialize() override;
38 
39  // User-level functions to decode the clusters/L2G/SpacePoints
40  StatusCode decodePixelEDM(const std::vector<uint64_t> &bytestream,
43 
44  StatusCode decodeStripEDM(const std::vector<uint64_t> &bytestream,
47 
48  StatusCode decodeSpacePoints(const std::vector<uint64_t> &bytestream, EFTrackingTransient::Metadata *metadata) const;
49 
54  StatusCode decodeFPGAoutput(const std::vector<uint64_t> &bytestream,
59 };
60 
61 #endif // EFTRACKING_FPGA_INTEGRATION__OUTPUT_CONVERSION_TOOL_H
EFTrackingTransient::PixelClusterAuxInput
The PixelClusterAuxInput struct is used to simplify the creaction of the xAOD::PixelClusterContainer.
Definition: EFTrackingTransient.h:222
OutputConversion::FSM::EventFooter
@ EventFooter
OutputConversionTool::decodeStripEDM
StatusCode decodeStripEDM(const std::vector< uint64_t > &bytestream, EFTrackingTransient::Metadata *metadata, EFTrackingTransient::StripClusterAuxInput &scAux) const
Definition: OutputConversionTool.cxx:400
OutputConversion
Definition: OutputConversionTool.h:19
OutputConversion::FSM::GlobalHits
@ GlobalHits
L1Topo::blockType
L1Topo::BlockTypes blockType(const uint32_t word, uint32_t offset=28, uint32_t size=0x0f)
Function to return the block type of a data word from L1Topo
Definition: BlockTypes.cxx:9
EFTrackingTransient::Metadata
The structure of the Metadata containing data after clusterization.
Definition: EFTrackingTransient.h:118
OutputConversion::FSM::Unknown
@ Unknown
python.checkMetadata.metadata
metadata
Definition: checkMetadata.py:175
OutputConversion::FSM::EventHeader
@ EventHeader
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
OutputConversionTool::initialize
StatusCode initialize() override
Definition: OutputConversionTool.cxx:13
AthAlgTool.h
OutputConversionTool::decodeFPGAoutput
StatusCode decodeFPGAoutput(const std::vector< uint64_t > &bytestream, EFTrackingTransient::Metadata *metadata, EFTrackingTransient::PixelClusterAuxInput *pcAux=nullptr, EFTrackingTransient::StripClusterAuxInput *scAux=nullptr, OutputConversion::FSM blockType=OutputConversion::FSM::Unknown) const
Decode the FPGA output based on the type.
Definition: OutputConversionTool.cxx:19
EFTrackingTransient::StripClusterAuxInput
The StripClusterAuxInput struct is used to simplify the creaction of the xAOD::StripClusterContainer.
Definition: EFTrackingTransient.h:207
EFTrackingTransient.h
OutputConversion::FSM::Error
@ Error
OutputConversion::FSM::PixelEDM
@ PixelEDM
OutputConversionTool::decodeSpacePoints
StatusCode decodeSpacePoints(const std::vector< uint64_t > &bytestream, EFTrackingTransient::Metadata *metadata) const
Definition: OutputConversionTool.cxx:408
OutputConversion::FSM
FSM
Definition: OutputConversionTool.h:22
IEFTrackingFPGAIntegrationTool.h
OutputConversionTool::decodePixelEDM
StatusCode decodePixelEDM(const std::vector< uint64_t > &bytestream, EFTrackingTransient::Metadata *metadata, EFTrackingTransient::PixelClusterAuxInput &pcAux) const
Definition: OutputConversionTool.cxx:392
OutputConversion::FSM::StripEDM
@ StripEDM
OutputConversionTool
Definition: OutputConversionTool.h:34