12 #include "HepMC3/Print.h"
71 const bool full_event)
72 :
HepMcInterface(name, full_event), filename_(path / (name +
".asciiv3")) {
85 const int32_t event_number,
88 logg[
LOutput].debug() <<
"Writing event " << event_number <<
" with "
89 <<
event_.particles().size() <<
" particles and "
90 <<
event_.vertices().size() <<
" vertices to output "
Base class for output handlers that need the HepMC3 structure.
void at_eventend(const Particles &particles, const int32_t event_number, const EventInfo &event) override
Add the final particles information of an event to the central vertex.
HepMC3::GenEvent event_
The event.
void at_eventend(const Particles &particles, const int32_t event_number, const EventInfo &event) override
Add the final particles information of an event to the central vertex.
HepMcOutput(const bf::path &path, std::string name, const bool full_event)
Create HepMC particle output.
const bf::path filename_
Filename of output.
bf::path filename_unfinished_
Filename of output as long as simulation is still running.
~HepMcOutput()
Destructor renames file.
std::unique_ptr< HepMC3::WriterAscii > output_file_
Pointer to Ascii HepMC3 output file.
The Particles class abstracts the storage and manipulation of particles.
std::array< einhard::Logger<>, std::tuple_size< LogArea::AreaTuple >::value > logg
An array that stores all pre-configured Logger objects.
static constexpr int LOutput
Structure to contain custom data for output.