ATLAS Offline Software
Loading...
Searching...
No Matches
F100EDMConversionAlg.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4
7
9{
11 {
12 ATH_CHECK(m_xaodClusterMaker.retrieve());
13
14 ATH_CHECK(m_FPGAPixelOutput.initialize());
15 ATH_CHECK(m_FPGAStripOutput.initialize());
16
17
18 return StatusCode::SUCCESS;
19 }
20
21 StatusCode F100EDMConversionAlg::execute(const EventContext &ctx) const
22 {
23 ATH_MSG_DEBUG("Executing F100EDMConversionAlg");
24
25
26 auto pixelOutput = SG::get(m_FPGAPixelOutput, ctx);
27 auto stripOutput = SG::get(m_FPGAStripOutput, ctx);
28
29 // use 64-bit pointer to access output
30 const uint32_t *stripClusters = (*stripOutput).data();
31 const uint32_t *pixelClusters = (*pixelOutput).data();
32
33 unsigned int numStripClusters = stripClusters[0];
34 ATH_MSG_DEBUG("numStripClusters: " << numStripClusters);
35
36 unsigned int numPixelClusters = pixelClusters[0];
37 ATH_MSG_DEBUG("numPixelClusters: " << numPixelClusters);
38
39 std::unique_ptr<EFTrackingTransient::Metadata> metadata = std::make_unique<EFTrackingTransient::Metadata>();
40
41 metadata->numOfStripClusters = numStripClusters;
42 metadata->scRdoIndexSize = numStripClusters;
43 metadata->numOfPixelClusters = numPixelClusters;
44 metadata->pcRdoIndexSize = numPixelClusters;
45
46 // make strip cluster
47 ATH_CHECK(m_xaodClusterMaker->makeStripClusterContainer(stripClusters, metadata.get(), ctx));
48
49 // Make pixel cluster
50 ATH_CHECK(m_xaodClusterMaker->makePixelClusterContainer(pixelClusters, metadata.get(), ctx));
51
52
53
54 return StatusCode::SUCCESS;
55 }
56
57} // namespace EFTrackingFPGAIntegration
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_DEBUG(x)
Exception-safe IChronoSvc caller.
SG::ReadHandleKey< std::vector< uint32_t > > m_FPGAPixelOutput
ToolHandle< xAODClusterMaker > m_xaodClusterMaker
Tool for creating xAOD containers.
virtual StatusCode execute(const EventContext &ctx) const
SG::ReadHandleKey< std::vector< uint32_t > > m_FPGAStripOutput
The class for enconding RDO to FPGA format.
const T * get(const ReadCondHandleKey< T > &key, const EventContext &ctx)
Convenience function to retrieve an object given a ReadCondHandleKey.