ATLAS Offline Software
Loading...
Searching...
No Matches
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
17#include <cinttypes>
20
22: public extends<AthAlgTool, IEFTrackingFPGADataFormatTool> {
23 public:
24 using extends::extends;
25
26 virtual StatusCode initialize() override;
27
31 virtual StatusCode convertPixelHitsToFPGADataFormat(
32 const PixelRDO_Container &pixelRDO,
33 std::vector<uint64_t> &encodedData,
34 const std::vector<IdentifierHash>& hashList,
35 const EventContext &ctx) const override;
39 virtual StatusCode convertStripHitsToFPGADataFormat(
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
45 virtual StatusCode convertFPGATracksToFPGADataFormat(
46 const FPGATrackSimTrackCollection* tracks,
47 std::vector<uint64_t> &encodedData,
48 const EventContext &ctx
49 ) const override;
50
51 virtual StatusCode convertFPGASliceToFPGADataFormat(
52 const FPGATrackSimHitCollection* hitsInSlices,
53 bool doPixel,
54 bool doStrip,
55 std::vector<uint64_t> &encodedData,
56 const EventContext &ctx
57 ) const override;
58
59 virtual StatusCode convertFPGAHitsToFPGADataFormat(
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
75 StatusCode convertPixelRDO(
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
83 StatusCode convertStripRDO(
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
90 StatusCode convertFPGATracks(
91 const FPGATrackSimTrackCollection* tracks,
92 std::vector<uint64_t> &encodedData,
93 const EventContext &ctx
94 ) const;
95
96 StatusCode convertFPGASlices(
97 const FPGATrackSimHitCollection* hitsInSlices,
98 bool doPixel,
99 bool doStrip,
100 std::vector<uint64_t> &encodedData,
101 const EventContext &ctx /*ctx*/
102 ) const;
103
104 StatusCode convertFPGAHits(
105 const FPGATrackSimHitCollection* hits,
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
std::vector< FPGATrackSimHit > FPGATrackSimHitCollection
std::vector< FPGATrackSimTrack > FPGATrackSimTrackCollection
This is an Identifier helper class for the Pixel subdetector.
InDetRawDataContainer< InDetRawDataCollection< PixelRDORawData > > PixelRDO_Container
This is an Identifier helper class for the SCT subdetector.
InDetRawDataContainer< InDetRawDataCollection< SCT_RDORawData > > SCT_RDO_Container
void fillHit(const FPGATrackSimHit *hit, bool isLast, bool isLastofSlice, std::vector< uint64_t > &encodedData) const
virtual StatusCode initialize() override
StatusCode convertStripRDO(const SCT_RDO_Container &stripRDO, std::vector< uint64_t > &encodedData, const std::vector< IdentifierHash > &hashList, const EventContext &ctx) const
virtual StatusCode convertFPGAHitsToFPGADataFormat(const FPGATrackSimHitCollection *allHits, bool doPixel, bool doStrip, std::vector< uint64_t > &encodedData, const EventContext &ctx) const override
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.
virtual StatusCode convertFPGATracksToFPGADataFormat(const FPGATrackSimTrackCollection *tracks, std::vector< uint64_t > &encodedData, const EventContext &ctx) const override
StatusCode convertFPGAHits(const FPGATrackSimHitCollection *hits, bool doPixel, bool doStrip, std::vector< uint64_t > &encodedData, const EventContext &ctx) const
StatusCode convertPixelRDO(const PixelRDO_Container &pixelRDO, std::vector< uint64_t > &encodedData, const std::vector< IdentifierHash > &hashList, const EventContext &ctx) const
StatusCode fillFooter(std::vector< uint64_t > &encodedData) const
StatusCode convertFPGATracks(const FPGATrackSimTrackCollection *tracks, std::vector< uint64_t > &encodedData, const EventContext &ctx) const
StatusCode fillModuleHeader(const InDetDD::SiDetectorElement *sielement, std::vector< uint64_t > &encodedData) const
const InDetDD::SiDetectorManager * m_PIX_mgr
StatusCode convertFPGASlices(const FPGATrackSimHitCollection *hitsInSlices, bool doPixel, bool doStrip, std::vector< uint64_t > &encodedData, const EventContext &ctx) const
virtual StatusCode convertFPGASliceToFPGADataFormat(const FPGATrackSimHitCollection *hitsInSlices, bool doPixel, bool doStrip, std::vector< uint64_t > &encodedData, const EventContext &ctx) const override
const PixelID * m_pixelId
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.
StatusCode fillHeader(std::vector< uint64_t > &encodedData) const
const InDetDD::SiDetectorManager * m_SCT_mgr
Class to hold geometrical description of a silicon detector element.
Base class for Pixel and SCT Detector managers.
This is an Identifier helper class for the Pixel subdetector.
Definition PixelID.h:67
This is an Identifier helper class for the SCT subdetector.
Definition SCT_ID.h:68