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 // Functions
39 //
40 public:
41 
42  /** @brief Write particle to file
43  *
44  * @param[in] index Particle to be serialized
45  * @param[in] iflong Format of record
46  */
47 
48  virtual void write_hepevt_particle( int index, bool iflong=true );
49  /** @brief Write event header to file
50  *
51  */
52  virtual void write_hepevt_event_header();
53 
54  /** @brief Write event to file
55  *
56  * @param[in] evt Event to be serialized
57  */
58  void write_event(const GenEvent &evt);
59 
60  /** @brief Close file stream */
61  void close();
62 
63  /** @brief Get stream error state flag */
64  bool failed();
65 
66 public:
67  FILE* m_file; //!< File to write. Need to be public to be accessible by children.
68 
69 private:
70  char* hepevtbuffer; //!< Pointer to HEPEVT Fortran common block/C struct
71  int m_events_count; //!< Events count. Needed to generate unique object name
72 };
73 
74 } // namespace HepMC3
75 #endif
char * hepevtbuffer
Pointer to HEPEVT Fortran common block/C struct.
Definition: WriterHEPEVT.h:70
int m_events_count
Events count. Needed to generate unique object name.
Definition: WriterHEPEVT.h:71
virtual void write_hepevt_particle(int index, bool iflong=true)
Write particle to file.
Definition: WriterHEPEVT.cc:26
WriterHEPEVT(const std::string &filename)
Default constructor.
Definition: WriterHEPEVT.cc:19
Definition of struct GenEventData.
void write_event(const GenEvent &evt)
Write event to file.
Definition: WriterHEPEVT.cc:48
FILE * m_file
File to write. Need to be public to be accessible by children.
Definition: WriterHEPEVT.h:67
GenEvent I/O serialization for HEPEVT files.
Definition: WriterHEPEVT.h:27
bool failed()
Get stream error state flag.
Definition: WriterHEPEVT.cc:62
virtual void write_hepevt_event_header()
Write event header to file.
Definition: WriterHEPEVT.cc:43
void close()
Close file stream.
Definition: WriterHEPEVT.cc:57
Stores event-related information.
Definition: GenEvent.h:42
Definition of interface Writer.
Base class for all I/O writers.
Definition: Writer.h:25
Definition of class GenEvent.