ATLAS Offline Software
Loading...
Searching...
No Matches
xAODTestWrite.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 "xAODTestWrite.h"
13#include "xAODTestWriteHelper.h"
23#include "AthLinks/ElementLink.h"
25
26
27namespace DMTest {
28
29
34{
35 ATH_CHECK( m_cvecKey.initialize() );
36 ATH_CHECK( m_ctrigKey.initialize() );
37 ATH_CHECK( m_gvecKey.initialize (SG::AllowEmpty) );
38 ATH_CHECK( m_cvecWDKey.initialize() );
39 return StatusCode::SUCCESS;
40}
41
42
46StatusCode xAODTestWrite::execute (const EventContext& ctx) const
47{
48 unsigned int count = ctx.eventID().event_number() + 1;
49
51
52 auto trig_coll = std::make_unique<DMTest::CVec>();
53 auto trig_store = std::make_unique<DMTest::CTrigAuxContainer>();
54 trig_coll->setStore (trig_store.get());
55
56 static const C::Accessor<int> anInt2 ("anInt2");
57 static const C::Accessor<ElementLink<DMTest::CVec> > cEL ("cEL");
58
59 //static const C::Decorator<SG::PackedElement<unsigned int> > dpInt1 ("dpInt1");
60 //static const C::Decorator<SG::PackedElement<std::vector<float> > > dpvFloat ("dpvFloat");
61 static const C::Decorator<unsigned int> dpInt1 ("dpInt1");
62 static const C::Decorator<std::vector<float> > dpvFloat ("dpvFloat");
63
64 for (int i=0; i < 8; i++) {
65 trig_coll->push_back (new DMTest::C);
66 C& c = *trig_coll->back();
67 c.setAnInt (count * 500 + i+1);
68 c.setAFloat (count * 600 + (float)i*0.1);
69
70 anInt2(c) = count*700 + i+1;
71 }
72
74 CHECK( ctrig.record (std::move (trig_coll), std::move (trig_store)) );
75
76 if (!m_gvecKey.empty()) {
77 auto gcont = std::make_unique<DMTest::GVec>();
78 auto gstore = std::make_unique<DMTest::GAuxContainer>();
79 gcont->setStore (gstore.get());
80
81 for (int i=0; i < 10; i++) {
82 gcont->push_back (new DMTest::G);
83 G& g = *gcont->back();
84 g.setAnInt (count * 700 + i+1);
85 g.setgFloat (count * 700 + 100 + i+0.5);
86 std::vector<double> v;
87 for (int j=0; j<i; j++) {
88 v.push_back (count * 700 + 100*j + i+0.5);
89 }
90 g.setgvFloat (v);
91 }
92
94 CHECK( gvec.record (std::move (gcont), std::move (gstore)) );
95 }
96
98
99 return StatusCode::SUCCESS;
100}
101
102
107 const EventContext& ctx) const
108{
109 auto coll = std::make_unique<DMTest::CVecWithData>();
110 auto store = std::make_unique<DMTest::CAuxContainer>();
111 coll->setStore (store.get());
112
113 coll->meta1 = count + 1000;
114 for (int i=0; i < 10; i++) {
115 coll->push_back (new DMTest::C);
116 C& c = *coll->back();
117 c.setAnInt (count * 200 + i+1);
118 }
119
121 CHECK( cvecWD.record (std::move (coll), std::move (store)) );
122
123 return StatusCode::SUCCESS;
124}
125
126
127} // namespace DMTest
128
#define ATH_CHECK
Evaluate an expression and check for errors.
Hold information about an option setting request.
Class used for testing xAOD data reading/writing.
Class used for testing xAOD data reading/writing.
Test writing a container with metadata.
Class used for testing xAOD data reading/writing.
Class used for testing xAOD data reading/writing.
Helpers for checking error return status codes and reporting errors.
#define CHECK(...)
Evaluate an expression and check for errors.
Test for xAOD auto schema evolution.
Test for xAOD auto schema evolution.
virtual StatusCode initialize() override
Algorithm initialization; called at the beginning of the job.
SG::WriteHandleKey< DMTest::CVec > m_ctrigKey
SG::WriteHandleKey< DMTest::GVec > m_gvecKey
SG::ReadHandleKey< DMTest::CVec > m_cvecKey
StatusCode write_cvec_with_data(unsigned int count, const EventContext &ctx) const
Test writing container with additional data.
SG::WriteHandleKey< DMTest::CVecWithData > m_cvecWDKey
virtual StatusCode execute(const EventContext &ctx) const override
Algorithm event processing.
SG::Accessor< T, ALLOC > Accessor
Definition AuxElement.h:572
SG::Decorator< T, ALLOC > Decorator
class to provide type-safe access to aux data.
Definition AuxElement.h:135
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
int count(std::string s, const std::string &regx)
count how many occurances of a regx are in a string
Definition hcg.cxx:146
Definition B.h:23
C_v1 C
Definition C.h:26
Test recording ViewVector w/o having CLASS_DEF visible in compilation unit.
Algorithm to test writing xAOD classes with auxiliary data.