ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
DataModelTest
DataModelTestDataRead
src
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
"
13
#include "
DataModelTestDataRead/HVec.h
"
14
#include "
DataModelTestDataRead/HView.h
"
15
#include "
DataModelTestDataRead/H.h
"
16
#include "
DataModelTestDataRead/HAuxContainer.h
"
17
#include "
StoreGate/ReadHandle.h
"
18
#include "
StoreGate/WriteHandle.h
"
19
#include <memory>
20
#include <sstream>
21
22
23
namespace
DMTest
{
24
25
29
StatusCode
xAODTestReadHVec::initialize
()
30
{
31
ATH_CHECK
(
m_hvecKey
.initialize() );
32
ATH_CHECK
(
m_hviewKey
.initialize(
SG::AllowEmpty
) );
33
ATH_CHECK
(
m_vecWriteKey
.initialize(
SG::AllowEmpty
) );
34
ATH_CHECK
(
m_viewWriteKey
.initialize(
SG::AllowEmpty
) );
35
return
StatusCode::SUCCESS;
36
}
37
38
42
StatusCode
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
73
SG::WriteHandle<DMTest::HVec>
writevec (
m_vecWriteKey
, ctx);
74
SG::WriteHandle<DMTest::HView>
writeview (
m_viewWriteKey
, ctx);
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
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition
AthMsgStreamMacros.h:31
HAuxContainer.h
Test for xAOD schema evolution.
HVec.h
HView.h
H.h
Test for xAOD schema evolution.
ReadHandle.h
Handle class for reading from StoreGate.
WriteHandle.h
Handle class for recording to StoreGate.
h
Header file for AthHistogramAlgorithm.
DMTest::xAODTestReadHVec::m_hviewKey
SG::ReadHandleKey< DMTest::HVec > m_hviewKey
Definition
xAODTestReadHVec.h:53
DMTest::xAODTestReadHVec::initialize
virtual StatusCode initialize() override
Algorithm initialization; called at the beginning of the job.
Definition
xAODTestReadHVec.cxx:29
DMTest::xAODTestReadHVec::m_hvecKey
SG::ReadHandleKey< DMTest::HVec > m_hvecKey
Definition
xAODTestReadHVec.h:51
DMTest::xAODTestReadHVec::m_viewWriteKey
SG::WriteHandleKey< DMTest::HView > m_viewWriteKey
Definition
xAODTestReadHVec.h:57
DMTest::xAODTestReadHVec::execute
virtual StatusCode execute(const EventContext &ctx) const override
Algorithm event processing.
Definition
xAODTestReadHVec.cxx:42
DMTest::xAODTestReadHVec::m_vecWriteKey
SG::WriteHandleKey< DMTest::HVec > m_vecWriteKey
Definition
xAODTestReadHVec.h:55
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
SG::WriteHandle
Definition
StoreGate/StoreGate/WriteHandle.h:73
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
DMTest
Definition
B.h:23
DMTest::HVec
HVec_v2 HVec
Definition
DataModelTestDataRead/DataModelTestDataRead/HVec.h:26
DMTest::H
H_v2 H
Definition
DataModelTestDataRead/DataModelTestDataRead/H.h:26
SG::AllowEmpty
@ AllowEmpty
Definition
StoreGate/StoreGate/VarHandleKey.h:27
SG::get
const T * get(const ReadCondHandleKey< T > &key, const EventContext &ctx)
Convenience function to retrieve an object given a ReadCondHandleKey.
Definition
ReadCondHandle.h:282
xAODTestReadHVec.h
Algorithm to test reading xAOD data with schema evolution (HVec/HView).
Generated on
for ATLAS Offline Software by
1.17.0