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>
24 namespace HepMC3
25 {
26 
27 class WriterHEPEVT : public Writer
28 {
29 //
30 // Constructors
31 //
32 public:
33  /** @brief Default constructor
34  * @warning If file exists, it will be overwritten
35  */
36  WriterHEPEVT(const std::string &filename);
37 
38 #ifndef HEPMC3_PYTHON_BINDINGS
39  /// @brief Constructor from ostream
40  WriterHEPEVT(std::ostream& stream);
41 #endif
42 //
43 // Functions
44 //
45 public:
46 
47  /** @brief Write particle to file
48  *
49  * @param[in] index Particle to be serialized
50  * @param[in] iflong Format of record
51  */
52 
53  virtual void write_hepevt_particle( int index, bool iflong=true );
54  /** @brief Write event header to file
55  *
56  */
57  virtual void write_hepevt_event_header();
58 
59  /** @brief Write event to file
60  *
61  * @param[in] evt Event to be serialized
62  */
63  void write_event(const GenEvent &evt) override;
64 
65  /** @brief Close file stream */
66  void close() override;
67 
68  /** @brief Get stream error state flag */
69  bool failed() override;
70  /** @brief set flag if vertex positions are available */
71  void set_vertices_positions_present(bool iflong);
72 
73  /** @brief get flag if vertex positions are available */
74  bool get_vertices_positions_present() const;
75 
76 protected:
77  std::ofstream m_file; //!< Output file
78  std::ostream* m_stream; //!< Output stream
79  char* hepevtbuffer; //!< Pointer to HEPEVT Fortran common block/C struct
80  int m_events_count; //!< Events count. Needed to generate unique object name
81  bool m_vertices_positions_present; //!< true if vertex positions are available
82 };
83 
84 } // namespace HepMC3
85 #endif
GenEvent.h
Definition of class GenEvent.
HepMC3::WriterHEPEVT::failed
bool failed() override
Get stream error state flag.
Definition: WriterHEPEVT.cc:80
HepMC3::WriterHEPEVT::set_vertices_positions_present
void set_vertices_positions_present(bool iflong)
set flag if vertex positions are available
Definition: WriterHEPEVT.cc:85
HepMC3::WriterHEPEVT::write_event
void write_event(const GenEvent &evt) override
Write event to file.
Definition: WriterHEPEVT.cc:64
HepMC3::GenEvent
Stores event-related information.
Definition: GenEvent.h:41
HepMC3
HepMC3 main namespace.
Definition: AnalysisExample.h:19
Writer.h
Definition of interface Writer.
HepMC3::WriterHEPEVT::hepevtbuffer
char * hepevtbuffer
Pointer to HEPEVT Fortran common block/C struct.
Definition: WriterHEPEVT.h:79
HepMC3::WriterHEPEVT::m_vertices_positions_present
bool m_vertices_positions_present
true if vertex positions are available
Definition: WriterHEPEVT.h:81
HepMC3::WriterHEPEVT
GenEvent I/O serialization for HEPEVT files.
Definition: WriterHEPEVT.h:28
HepMC3::WriterHEPEVT::m_events_count
int m_events_count
Events count. Needed to generate unique object name.
Definition: WriterHEPEVT.h:80
HepMC3::WriterHEPEVT::WriterHEPEVT
WriterHEPEVT(const std::string &filename)
Default constructor.
Definition: WriterHEPEVT.cc:20
HepMC3::WriterHEPEVT::write_hepevt_particle
virtual void write_hepevt_particle(int index, bool iflong=true)
Write particle to file.
Definition: WriterHEPEVT.cc:34
HepMC3::WriterHEPEVT::m_file
std::ofstream m_file
Output file.
Definition: WriterHEPEVT.h:77
HepMC3::WriterHEPEVT::get_vertices_positions_present
bool get_vertices_positions_present() const
get flag if vertex positions are available
Definition: WriterHEPEVT.cc:87
HepMC3::Writer
Base class for all I/O writers.
Definition: Writer.h:25
HepMC3::WriterHEPEVT::m_stream
std::ostream * m_stream
Output stream.
Definition: WriterHEPEVT.h:78
HepMC3::WriterHEPEVT::close
void close() override
Close file stream.
Definition: WriterHEPEVT.cc:73
GenEventData.h
Definition of struct GenEventData.
HepMC3::WriterHEPEVT::write_hepevt_event_header
virtual void write_hepevt_event_header()
Write event header to file.
Definition: WriterHEPEVT.cc:55