ATLAS Offline Software
Loading...
Searching...
No Matches
xAODTestReadHVec.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
10
11
12#include "xAODTestReadHVec.h"
19#include <memory>
20#include <sstream>
21
22
23namespace DMTest {
24
25
30{
31 ATH_CHECK( m_hvecKey.initialize() );
32 ATH_CHECK( m_hviewKey.initialize(SG::AllowEmpty) );
35 return StatusCode::SUCCESS;
36}
37
38
42StatusCode xAODTestReadHVec::execute (const EventContext& ctx) const
43{
44 const DMTest::HVec* hvec = SG::get (m_hvecKey, ctx);
45 std::ostringstream ost1;
46 ost1 << m_hvecKey.key() << ":";
47 for (const H* h : *hvec)
48 ost1 << " " << h->aFloat();
49 ATH_MSG_INFO (ost1.str());
50
51 if (!m_hviewKey.empty()) {
52 const DMTest::HVec* hview = SG::get (m_hviewKey, ctx);
53 std::ostringstream ost2;
54 ost2 << m_hviewKey.key() << ":";
55 for (const H* h : *hview)
56 ost2 << " " << h->aFloat();
57 ATH_MSG_INFO (ost2.str());
58
59
60 if (!m_vecWriteKey.key().empty()) {
61 auto vecnew = std::make_unique<HVec>();
62 auto store = std::make_unique<HAuxContainer>();
63 vecnew->setStore (store.get());
64 for (size_t i = 0; i < hview->size(); i++) {
65 vecnew->push_back (new H);
66 *vecnew->back() = *(*hview)[i];
67 }
68
69 auto viewnew = std::make_unique<HView>();
70 for (size_t i = 0; i < vecnew->size(); i++)
71 viewnew->push_back (vecnew->at(vecnew->size()-1-i));
72
75 ATH_CHECK( writevec.record (std::move(vecnew), std::move(store)) );
76 ATH_CHECK( writeview.record (std::move(viewnew)) );
77 }
78 }
79
80 return StatusCode::SUCCESS;
81}
82
83
84} // namespace DMTest
85
#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)