ATLAS Offline Software
Loading...
Searching...
No Matches
xAODTestReadJVec.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 "xAODTestReadJVec.h"
16#include "AthLinks/ElementLink.h"
17#include <sstream>
18
19
20namespace {
21
22
26template <class CONT>
27std::string formEL (const ElementLink<CONT>& el)
28{
29 std::ostringstream ss;
30 ss << "(" << el.dataID() << ":";
31 if (static_cast<int>(el.index()) == -1) {
32 ss << "inv";
33 }
34 else {
35 ss << el.index();
36 }
37 ss << ")";
38 return ss.str();
39}
40
41
45template <class T>
46std::string form_vec_elt (const T& x)
47{
48 std::ostringstream ss;
49 ss << x;
50 return ss.str();
51}
52
53
54
58std::string form_vec_elt (const std::string& x)
59{
60 return "'" + x + "'";
61}
62
63
67template <class CONT>
68std::string form_vec_elt (const ElementLink<CONT>& x)
69{
70 return formEL (x);
71}
72
73
77template <class RANGE>
78std::string formJVec (const RANGE& r) {
79 std::ostringstream ss;
80 ss << "[";
81 std::string sep;
82 for (const auto & elt : r) {
83 ss << sep;
84 sep = " ";
85 ss << form_vec_elt (elt);
86 }
87 ss << "]";
88 return ss.str();
89}
90
91
92}
93
94
95namespace DMTest {
96
97
102{
104 ATH_CHECK( m_jvecInfoKey.initialize (SG::AllowEmpty) );
107 return StatusCode::SUCCESS;
108}
109
110
114StatusCode xAODTestReadJVec::execute (const EventContext& ctx) const
115{
116 if (!m_jvecContainerKey.empty()) {
119 for (const JVec* jvec : *jveccont) {
120 ATH_CHECK( dumpJVec (*jvec) );
121 ATH_CHECK( dumpDecor (ctx, *jvec) );
122 }
123 }
124
125 if (!m_jvecInfoKey.empty()) {
126 SG::ReadHandle<JVec> jvecinfo (m_jvecInfoKey, ctx);
128 ATH_CHECK( dumpJVec (*jvecinfo) );
129 ATH_CHECK( dumpInfoDecor (ctx, *jvecinfo) );
130 }
131
132 return StatusCode::SUCCESS;
133}
134
135
139StatusCode xAODTestReadJVec::dumpJVec (const JVec& jvec) const
140{
141 std::ostringstream ss;
142 ss << " ivec: " << formJVec (jvec.ivec());
143 ss << " fvec: " << formJVec (jvec.fvec());
144 ss << " svec: " << formJVec (jvec.svec());
145 ss << " lvec: " << formJVec (jvec.lvec());
146 ATH_MSG_INFO( ss.str() );
147 return StatusCode::SUCCESS;
148}
149
150
154StatusCode
155xAODTestReadJVec::dumpDecor (const EventContext& ctx,
156 const JVec& jvec) const
157{
158 std::ostringstream ss;
159 if (!m_jvecDecorKey.empty()) {
161 ss << " decorJVec: " << formJVec (decor (jvec));
162 }
163
164 ATH_MSG_INFO( ss.str() );
165 return StatusCode::SUCCESS;
166}
167
168
172StatusCode
173xAODTestReadJVec::dumpInfoDecor (const EventContext& ctx,
174 const JVec& jvec) const
175{
176 std::ostringstream ss;
177 if (!m_jvecInfoDecorKey.empty()) {
179 ss << " decorJVec: " << formJVec (decor (jvec));
180 }
181
182 ATH_MSG_INFO( ss.str() );
183 return StatusCode::SUCCESS;
184}
185
186
187} // namespace DMTest
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_INFO(x)
Auxiliary variable type allowing storage as a jagged vector. That is, the payloads for all the DataVe...
static Double_t ss
Handle class for reading a decoration on an object.
Handle class for reading from StoreGate.
#define x
stringRange_t svec() const
Definition JVec_v1.cxx:43
intRange_t ivec() const
Definition JVec_v1.cxx:19
linkRange_t lvec() const
Definition JVec_v1.cxx:55
floatRange_t fvec() const
Definition JVec_v1.cxx:31
SG::ReadHandleKey< DMTest::JVecContainer > m_jvecContainerKey
SG::ReadDecorHandleKey< DMTest::JVec > m_jvecInfoDecorKey
StatusCode dumpJVec(const JVec &jvec) const
Dump a JVec object.
SG::ReadHandleKey< DMTest::JVec > m_jvecInfoKey
virtual StatusCode initialize() override
Algorithm initialization; called at the beginning of the job.
virtual StatusCode execute(const EventContext &ctx) const override
Algorithm event processing.
StatusCode dumpInfoDecor(const EventContext &ctx, const JVec &jvec) const
Dump decorations from a standalone JVec object.
StatusCode dumpDecor(const EventContext &ctx, const JVec &jvec) const
Dump decorations from a JVec object.
SG::ReadDecorHandleKey< DMTest::JVecContainer > m_jvecDecorKey
Handle class for reading a decoration on an object.
int r
Definition globals.cxx:22
Definition B.h:23
JVec_v1 JVec
Definition JVec.h:23
For testing jagged vectors.