ATLAS Offline Software
Loading...
Searching...
No Matches
TruthVertexPrinterAlg.cxx
Go to the documentation of this file.
1// Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3// Local include(s).
5
6// Framework include(s).
9
10// EDM include(s).
12
13// System include(s).
14#include <iomanip>
15#include <sstream>
16
17namespace xAODReader {
18
20
21 // Initialize the handle.
22 ATH_CHECK(m_key.initialize());
23
24 // Return gracefully.
25 return StatusCode::SUCCESS;
26}
27
28StatusCode TruthVertexPrinterAlg::execute(const EventContext& ctx) const {
29
30 // Print a header.
32 "----------------------------------------------------------------------"
33 "-");
34 ANA_MSG_INFO(" \"" << m_key.key() << "\"");
36 "----------------------------------------------------------------------"
37 "-");
39 " uniqueID | status | x | y | z | t "
40 " ");
42 "----------------------------------------------------------------------"
43 "-");
44
45 // Access the input container.
46 auto container = SG::makeHandle(m_key, ctx);
47
48 // Print the particles one by one.
49 for (const xAOD::TruthVertex* vertex : *container) {\
50
51 // Construct a string with code copied from xAODTruthReader.
52 std::ostringstream ss;
53 ss.width(9);
54 ss << HepMC::uniqueID(vertex) << " | ";
55 ss.width(5);
56 ss << HepMC::status(vertex) << " | ";
57 ss.width(9);
58 ss.precision(2);
59 ss.setf(std::ios::scientific, std::ios::floatfield);
60 ss.setf(std::ios_base::showpos);
61 ss << vertex->x() << " | ";
62 ss.width(9);
63 ss.precision(2);
64 ss << vertex->y() << " | ";
65 ss.width(9);
66 ss.precision(2);
67 ss << vertex->z() << " | ";
68 ss.width(9);
69 ss.precision(2);
70 ss << vertex->t();
71
72 // Properly print the constructed string.
73 ANA_MSG_INFO(" " << ss.str());
74 }
75
76 // Print a footer.
78 "----------------------------------------------------------------------"
79 "-");
80
81 // Return gracefully.
82 return StatusCode::SUCCESS;
83}
84
85} // namespace xAODReader
#define ATH_CHECK
Evaluate an expression and check for errors.
Handle class for reading from StoreGate.
#define ANA_MSG_INFO(xmsg)
Macro printing info messages.
static Double_t ss
SG::ReadHandleKey< xAOD::TruthVertexContainer > m_key
The key of the truth vertex container to print.
virtual StatusCode execute(const EventContext &ctx) const override
Function executing the algorithm.
virtual StatusCode initialize() override
Function initialising the algorithm.
int uniqueID(const T &p)
int status(const T &p)
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
TruthVertex_v1 TruthVertex
Typedef to implementation.
Definition TruthVertex.h:15