ATLAS Offline Software
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  GTracks,
28  Slices,
29  PixelEDM,
30  StripEDM,
31  Error
32  };
33 }
34 
35 class OutputConversionTool : public extends<AthAlgTool, IEFTrackingFPGAIntegrationTool>
36 {
37 public:
38  using extends::extends;
39  StatusCode initialize() override;
40 
41  // User-level functions to decode the clusters/L2G/SpacePoints
42  StatusCode decodePixelEDM(const std::vector<uint64_t> &bytestream,
45 
46  StatusCode decodeStripEDM(const std::vector<uint64_t> &bytestream,
49 
50  StatusCode decodeSpacePoints(const std::vector<uint64_t> &bytestream, EFTrackingTransient::Metadata *metadata) const;
51 
52  StatusCode decodeSlices(const std::vector<uint64_t> &bytestream, EFTrackingTransient::Metadata *metadata) const;
53 
54  StatusCode decodeGTracks(const std::vector<uint64_t> &bytestream, EFTrackingTransient::Metadata *metadata) const;
55 
56 
61  StatusCode decodeFPGAoutput(const std::vector<uint64_t> &bytestream,
66 };
67 
68 #endif // EFTRACKING_FPGA_INTEGRATION__OUTPUT_CONVERSION_TOOL_H
OutputConversionTool::decodeSlices
StatusCode decodeSlices(const std::vector< uint64_t > &bytestream, EFTrackingTransient::Metadata *metadata) const
Definition: OutputConversionTool.cxx:501
EFTrackingTransient::PixelClusterAuxInput
The PixelClusterAuxInput struct is used to simplify the creaction of the xAOD::PixelClusterContainer.
Definition: EFTrackingTransient.h:226
OutputConversion::FSM::EventFooter
@ EventFooter
OutputConversionTool::decodeStripEDM
StatusCode decodeStripEDM(const std::vector< uint64_t > &bytestream, EFTrackingTransient::Metadata *metadata, EFTrackingTransient::StripClusterAuxInput &scAux) const
Definition: OutputConversionTool.cxx:486
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:124
OutputConversion::FSM::Unknown
@ Unknown
OutputConversion::FSM::GTracks
@ GTracks
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::decodeGTracks
StatusCode decodeGTracks(const std::vector< uint64_t > &bytestream, EFTrackingTransient::Metadata *metadata) const
Definition: OutputConversionTool.cxx:508
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:211
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:494
OutputConversion::FSM
FSM
Definition: OutputConversionTool.h:22
IEFTrackingFPGAIntegrationTool.h
OutputConversion::FSM::Slices
@ Slices
OutputConversionTool::decodePixelEDM
StatusCode decodePixelEDM(const std::vector< uint64_t > &bytestream, EFTrackingTransient::Metadata *metadata, EFTrackingTransient::PixelClusterAuxInput &pcAux) const
Definition: OutputConversionTool.cxx:478
OutputConversion::FSM::StripEDM
@ StripEDM
OutputConversionTool
Definition: OutputConversionTool.h:36