ATLAS Offline Software
Loading...
Searching...
No Matches
xAODTestReadHVec.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
10
11
12#include "xAODTestReadHVec.h"
19#include <memory>
20#include <print>
21#include <sstream>
22
23
24namespace DMTest {
25
26
31{
32 ATH_CHECK( m_hvecKey.initialize() );
33 ATH_CHECK( m_hviewKey.initialize(SG::AllowEmpty) );
36 return StatusCode::SUCCESS;
37}
38
39
43StatusCode xAODTestReadHVec::execute (const EventContext& ctx) const
44{
45 const DMTest::HVec* hvec = SG::get (m_hvecKey, ctx);
46 std::ostringstream ost1;
47 std::print (ost1, "{}:", m_hvecKey.key());
48 for (const H* h : *hvec)
49 std::print (ost1, " {}", h->aFloat());
50 ATH_MSG_INFO (ost1.str());
51
52 if (!m_hviewKey.empty()) {
53 const DMTest::HVec* hview = SG::get (m_hviewKey, ctx);
54 std::ostringstream ost2;
55 std::print (ost2, "{}:", m_hviewKey.key());
56 for (const H* h : *hview)
57 std::print (ost2, " {}", h->aFloat());
58 ATH_MSG_INFO (ost2.str());
59
60
61 if (!m_vecWriteKey.key().empty()) {
62 auto vecnew = std::make_unique<HVec>();
63 auto store = std::make_unique<HAuxContainer>();
64 vecnew->setStore (store.get());
65 for (size_t i = 0; i < hview->size(); i++) {
66 vecnew->push_back (new H);
67 *vecnew->back() = *(*hview)[i];
68 }
69
70 auto viewnew = std::make_unique<HView>();
71 for (size_t i = 0; i < vecnew->size(); i++)
72 viewnew->push_back (vecnew->at(vecnew->size()-1-i));
73
76 ATH_CHECK( writevec.record (std::move(vecnew), std::move(store)) );
77 ATH_CHECK( writeview.record (std::move(viewnew)) );
78 }
79 }
80
81 return StatusCode::SUCCESS;
82}
83
84
85} // namespace DMTest
86
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_INFO(x,...)
Test for xAOD schema evolution.
Test for xAOD schema evolution.
Handle class for reading from StoreGate.
Handle class for recording to StoreGate.
Header file for AthHistogramAlgorithm.
SG::ReadHandleKey< DMTest::HVec > m_hviewKey
virtual StatusCode initialize() override
Algorithm initialization; called at the beginning of the job.
SG::ReadHandleKey< DMTest::HVec > m_hvecKey
SG::WriteHandleKey< DMTest::HView > m_viewWriteKey
virtual StatusCode execute(const EventContext &ctx) const override
Algorithm event processing.
SG::WriteHandleKey< DMTest::HVec > m_vecWriteKey
size_type size() const noexcept
Returns the number of elements in the collection.
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
Definition B.h:23
const T * get(const ReadCondHandleKey< T > &key, const EventContext &ctx)
Convenience function to retrieve an object given a ReadCondHandleKey.
Algorithm to test reading xAOD data with schema evolution (HVec/HView).