ATLAS Offline Software
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 
6 #include "AthenaKernel/Chrono.h"
7 
9 {
11  {
12  ATH_CHECK(m_xaodClusterMaker.retrieve());
13 
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 uint64_t *stripClusters = (*stripOutput).data();
31  const uint64_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
EFTrackingFPGAIntegration::F100EDMConversionAlg::m_FPGAPixelOutput
SG::ReadHandleKey< std::vector< uint64_t > > m_FPGAPixelOutput
Definition: F100EDMConversionAlg.h:43
EFTrackingFPGAIntegration::F100EDMConversionAlg::m_xaodClusterMaker
ToolHandle< xAODClusterMaker > m_xaodClusterMaker
Tool for creating xAOD containers.
Definition: F100EDMConversionAlg.h:36
Chrono.h
Exception-safe IChronoSvc caller.
EFTrackingFPGAIntegration::F100EDMConversionAlg::initialize
virtual StatusCode initialize() override
Definition: F100EDMConversionAlg.cxx:10
EFTrackingFPGAIntegration::F100EDMConversionAlg::execute
virtual StatusCode execute(const EventContext &ctx) const
Definition: F100EDMConversionAlg.cxx:21
python.checkMetadata.metadata
metadata
Definition: checkMetadata.py:175
SG::get
const T * get(const ReadCondHandleKey< T > &key, const EventContext &ctx)
Convenience function to retrieve an object given a ReadCondHandleKey.
Definition: ReadCondHandle.h:287
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
xAOD::uint64_t
uint64_t
Definition: EventInfo_v1.cxx:123
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
EFTrackingFPGAIntegration
The class for enconding RDO to FPGA format.
Definition: BenchmarkAlg.h:28
EFTrackingFPGAIntegration::F100EDMConversionAlg::m_FPGAStripOutput
SG::ReadHandleKey< std::vector< uint64_t > > m_FPGAStripOutput
Definition: F100EDMConversionAlg.h:44
F100EDMConversionAlg.h