HepMC3 event record library
WriterHEPEVT.h
Go to the documentation of this file.
1// -*- C++ -*-
2//
3// This file is part of HepMC
4// Copyright (C) 2014-2019 The HepMC collaboration (see AUTHORS for details)
5//
6#ifndef HEPMC3_WRITERHEPEVT_H
7#define HEPMC3_WRITERHEPEVT_H
8/**
9 * @file WriterHEPEVT.h
10 * @brief Definition of \b class WriterHEPEVT
11 *
12 * @class HepMC3::WriterHEPEVT
13 * @brief GenEvent I/O serialization for HEPEVT files
14 *
15 *
16 * @ingroup IO
17 *
18 */
19#include "HepMC3/Writer.h"
20#include "HepMC3/GenEvent.h"
22
23#include <fstream>
24namespace HepMC3
25{
26
27class WriterHEPEVT : public Writer
28{
29//
30// Constructors
31//
32public:
33 /** @brief Default constructor
34 * @warning If file exists, it will be overwritten
35 */
36 WriterHEPEVT(const std::string &filename);
37
38 /// @brief Constructor from ostream
39 WriterHEPEVT(std::ostream& stream);
40
41//
42// Functions
43//
44public:
45
46 /** @brief Write particle to file
47 *
48 * @param[in] index Particle to be serialized
49 * @param[in] iflong Format of record
50 */
51
52 virtual void write_hepevt_particle( int index, bool iflong=true );
53 /** @brief Write event header to file
54 *
55 */
56 virtual void write_hepevt_event_header();
57
58 /** @brief Write event to file
59 *
60 * @param[in] evt Event to be serialized
61 */
62 void write_event(const GenEvent &evt);
63
64 /** @brief Close file stream */
65 void close();
66
67 /** @brief Get stream error state flag */
68 bool failed();
69 /** @brief set flag if vertex positions are available */
70 void set_vertices_positions_present(bool iflong);
71
72 /** @brief get flag if vertex positions are available */
74
75protected:
76 std::ofstream m_file; //!< Output file
77 std::ostream* m_stream; //!< Output stream
78 char* hepevtbuffer; //!< Pointer to HEPEVT Fortran common block/C struct
79 int m_events_count; //!< Events count. Needed to generate unique object name
80 bool m_vertices_positions_present; //!< true if vertex positions are available
81};
82
83} // namespace HepMC3
84#endif
Definition of struct GenEventData.
Definition of class GenEvent.
Definition of interface Writer.
Stores event-related information.
Definition: GenEvent.h:42
GenEvent I/O serialization for HEPEVT files.
Definition: WriterHEPEVT.h:28
WriterHEPEVT(const std::string &filename)
Default constructor.
Definition: WriterHEPEVT.cc:20
bool get_vertices_positions_present() const
get flag if vertex positions are available
Definition: WriterHEPEVT.cc:85
void set_vertices_positions_present(bool iflong)
set flag if vertex positions are available
Definition: WriterHEPEVT.cc:83
virtual void write_hepevt_event_header()
Write event header to file.
Definition: WriterHEPEVT.cc:53
void close()
Close file stream.
Definition: WriterHEPEVT.cc:71
int m_events_count
Events count. Needed to generate unique object name.
Definition: WriterHEPEVT.h:79
virtual void write_hepevt_particle(int index, bool iflong=true)
Write particle to file.
Definition: WriterHEPEVT.cc:32
std::ofstream m_file
Output file.
Definition: WriterHEPEVT.h:76
bool failed()
Get stream error state flag.
Definition: WriterHEPEVT.cc:78
void write_event(const GenEvent &evt)
Write event to file.
Definition: WriterHEPEVT.cc:62
char * hepevtbuffer
Pointer to HEPEVT Fortran common block/C struct.
Definition: WriterHEPEVT.h:78
bool m_vertices_positions_present
true if vertex positions are available
Definition: WriterHEPEVT.h:80
std::ostream * m_stream
Output stream.
Definition: WriterHEPEVT.h:77
Base class for all I/O writers.
Definition: Writer.h:25
HepMC3 main namespace.
Definition: ReaderGZ.h:28