ATLAS Offline Software
FPGADataFormatTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3  */
4 
5 #ifndef EFTRACKING_FPGA_INTEGRATION_FPGADATAFORMATTOOL_H
6 #define EFTRACKING_FPGA_INTEGRATION_FPGADATAFORMATTOOL_H
7 
9 
14 #include "InDetIdentifier/SCT_ID.h"
17 #include <cinttypes>
20 
22 : public extends<AthAlgTool, IEFTrackingFPGADataFormatTool> {
23  public:
24  using extends::extends;
25 
26  virtual StatusCode initialize() override;
27 
32  const PixelRDO_Container &pixelRDO,
33  std::vector<uint64_t> &encodedData,
34  const std::vector<IdentifierHash>& hashList,
35  const EventContext &ctx) const override;
40  const SCT_RDO_Container &stripRDO,
41  std::vector<uint64_t> &encodedData,
42  const std::vector<IdentifierHash>& hashList,
43  const EventContext &ctx) const override;
44 
46  const FPGATrackSimTrackCollection* tracks,
47  std::vector<uint64_t> &encodedData,
48  const EventContext &ctx
49  ) const override;
50 
52  const FPGATrackSimHitCollection* hitsInSlices,
53  bool doPixel,
54  bool doStrip,
55  std::vector<uint64_t> &encodedData,
56  const EventContext &ctx
57  ) const override;
58 
60  const FPGATrackSimHitCollection* allHits,
61  bool doPixel,
62  bool doStrip,
63  std::vector<uint64_t> &encodedData,
64  const EventContext &ctx
65  ) const override;
66 
67  private:
68  const PixelID* m_pixelId = nullptr;
69  const SCT_ID* m_sctId = nullptr;
70 
73 
74  // Helper function for converting pixel RDO
76  const PixelRDO_Container &pixelRDO,
77  std::vector<uint64_t> &encodedData,
78  const std::vector<IdentifierHash>& hashList,
79  const EventContext &ctx
80  ) const;
81 
82  // Helper function for converting strip RDO
84  const SCT_RDO_Container &stripRDO,
85  std::vector<uint64_t> &encodedData,
86  const std::vector<IdentifierHash>& hashList,
87  const EventContext &ctx
88  ) const;
89 
91  const FPGATrackSimTrackCollection* tracks,
92  std::vector<uint64_t> &encodedData,
93  const EventContext &ctx
94  ) const;
95 
97  const FPGATrackSimHitCollection* hitsInSlices,
98  bool doPixel,
99  bool doStrip,
100  std::vector<uint64_t> &encodedData,
101  const EventContext &ctx /*ctx*/
102  ) const;
103 
106  bool doPixel,
107  bool doStrip,
108  std::vector<uint64_t> &encodedData,
109  const EventContext &ctx /*ctx*/
110  ) const;
111 
112 
113  // Helper function for common header and Footer info
114  StatusCode fillHeader(std::vector<uint64_t> &encodedData) const;
115  StatusCode fillFooter(std::vector<uint64_t> &encodedData) const;
116 
117  // For module
118  StatusCode fillModuleHeader(const InDetDD::SiDetectorElement* sielement, std::vector<uint64_t> &encodedData) const;
119 
120  void fillHit(const FPGATrackSimHit* hit, bool isLast, bool isLastofSlice, std::vector<uint64_t> &encodedData) const;
121 
122 
123 };
124 
125 #endif // EFTRACKING_FPGA_INTEGRATION_FPGADATAFORMATTOOL_H
PixelID.h
This is an Identifier helper class for the Pixel subdetector. This class is a factory for creating co...
FPGADataFormatTool::convertStripHitsToFPGADataFormat
virtual StatusCode convertStripHitsToFPGADataFormat(const SCT_RDO_Container &stripRDO, std::vector< uint64_t > &encodedData, const std::vector< IdentifierHash > &hashList, const EventContext &ctx) const override
Covert the Strip RDOs to the test vector format as requited by FPGA EF tracking alogrithms.
Definition: FPGADataFormatTool.cxx:39
FPGADataFormatTool::fillFooter
StatusCode fillFooter(std::vector< uint64_t > &encodedData) const
Definition: FPGADataFormatTool.cxx:488
SCT_ID.h
This is an Identifier helper class for the SCT subdetector. This class is a factory for creating comp...
FPGADataFormatTool::fillHeader
StatusCode fillHeader(std::vector< uint64_t > &encodedData) const
Definition: FPGADataFormatTool.cxx:471
TRTCalib_Extractor.hits
hits
Definition: TRTCalib_Extractor.py:35
FPGADataFormatTool::convertFPGASlices
StatusCode convertFPGASlices(const FPGATrackSimHitCollection *hitsInSlices, bool doPixel, bool doStrip, std::vector< uint64_t > &encodedData, const EventContext &ctx) const
Definition: FPGADataFormatTool.cxx:82
FPGATrackSimHitCollection.h
FPGADataFormatTool
Definition: FPGADataFormatTool.h:22
FPGADataFormatTool::convertFPGASliceToFPGADataFormat
virtual StatusCode convertFPGASliceToFPGADataFormat(const FPGATrackSimHitCollection *hitsInSlices, bool doPixel, bool doStrip, std::vector< uint64_t > &encodedData, const EventContext &ctx) const override
Definition: FPGADataFormatTool.cxx:60
FPGADataFormatTool::convertFPGATracks
StatusCode convertFPGATracks(const FPGATrackSimTrackCollection *tracks, std::vector< uint64_t > &encodedData, const EventContext &ctx) const
Definition: FPGADataFormatTool.cxx:214
FPGADataFormatTool::initialize
virtual StatusCode initialize() override
Definition: FPGADataFormatTool.cxx:9
IEFTrackingFPGADataFormatTool.h
FPGADataFormatTool::m_PIX_mgr
const InDetDD::SiDetectorManager * m_PIX_mgr
Definition: FPGADataFormatTool.h:71
InDetRawDataContainer
Definition: InDetRawDataContainer.h:27
FPGADataFormatTool::convertPixelHitsToFPGADataFormat
virtual StatusCode convertPixelHitsToFPGADataFormat(const PixelRDO_Container &pixelRDO, std::vector< uint64_t > &encodedData, const std::vector< IdentifierHash > &hashList, const EventContext &ctx) const override
Covert the Pixel RDOs to the test vector format as requited by FPGA EF tracking alogrithms.
Definition: FPGADataFormatTool.cxx:20
FPGADataFormatTool::convertStripRDO
StatusCode convertStripRDO(const SCT_RDO_Container &stripRDO, std::vector< uint64_t > &encodedData, const std::vector< IdentifierHash > &hashList, const EventContext &ctx) const
Definition: FPGADataFormatTool.cxx:339
FPGADataFormatTool::convertFPGATracksToFPGADataFormat
virtual StatusCode convertFPGATracksToFPGADataFormat(const FPGATrackSimTrackCollection *tracks, std::vector< uint64_t > &encodedData, const EventContext &ctx) const override
Definition: FPGADataFormatTool.cxx:196
FPGATrackSimHit
Definition: FPGATrackSimHit.h:41
FPGATrackSimHitCollection
std::vector< FPGATrackSimHit > FPGATrackSimHitCollection
Definition: FPGATrackSimHitCollection.h:13
SCT_RDO_Container.h
FPGATrackSimTrackCollection.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
FPGADataFormatTool::fillModuleHeader
StatusCode fillModuleHeader(const InDetDD::SiDetectorElement *sielement, std::vector< uint64_t > &encodedData) const
Definition: FPGADataFormatTool.cxx:505
FPGADataFormatTool::fillHit
void fillHit(const FPGATrackSimHit *hit, bool isLast, bool isLastofSlice, std::vector< uint64_t > &encodedData) const
Definition: FPGADataFormatTool.cxx:516
FPGADataFormatTool::convertFPGAHitsToFPGADataFormat
virtual StatusCode convertFPGAHitsToFPGADataFormat(const FPGATrackSimHitCollection *allHits, bool doPixel, bool doStrip, std::vector< uint64_t > &encodedData, const EventContext &ctx) const override
Definition: FPGADataFormatTool.cxx:130
FPGADataFormatTool::m_pixelId
const PixelID * m_pixelId
Definition: FPGADataFormatTool.h:68
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
FPGADataFormatTool::m_sctId
const SCT_ID * m_sctId
Definition: FPGADataFormatTool.h:69
PixelRDO_Container.h
SiDetectorElement.h
FPGATrackSimTrackCollection
std::vector< FPGATrackSimTrack > FPGATrackSimTrackCollection
Definition: FPGATrackSimTrackCollection.h:13
SCT_ID
Definition: SCT_ID.h:68
InDetDD::SiDetectorManager
Definition: SiDetectorManager.h:60
FPGADataFormatTool::convertFPGAHits
StatusCode convertFPGAHits(const FPGATrackSimHitCollection *hits, bool doPixel, bool doStrip, std::vector< uint64_t > &encodedData, const EventContext &ctx) const
Definition: FPGADataFormatTool.cxx:152
FPGADataFormatTool::convertPixelRDO
StatusCode convertPixelRDO(const PixelRDO_Container &pixelRDO, std::vector< uint64_t > &encodedData, const std::vector< IdentifierHash > &hashList, const EventContext &ctx) const
Definition: FPGADataFormatTool.cxx:285
SiDetectorManager.h
FPGADataFormatTool::m_SCT_mgr
const InDetDD::SiDetectorManager * m_SCT_mgr
Definition: FPGADataFormatTool.h:72
PixelID
Definition: PixelID.h:67