HepMC event record
include/HepMC/WriterHEPEVT.h
1 // -*- C++ -*-
2 #ifndef HEPMC_WRITERHEPEVT_H
3 #define HEPMC_WRITERHEPEVT_H
4 /**
5  * @file WriterHEPEVT.h
6  * @brief Definition of \b class WriterHEPEVT
7  *
8  * @class HepMC::WriterHEPEVT
9  * @brief GenEvent I/O serialization for HEPEVT files
10  *
11  *
12  * @ingroup IO
13  *
14  */
15 #include "HepMC/Writer.h"
16 #include "HepMC/GenEvent.h"
17 #include "HepMC/Data/GenEventData.h"
18 
19 #include <fstream>
20 namespace HepMC
21 {
22 
23 class WriterHEPEVT : public Writer
24 {
25 //
26 // Constructors
27 //
28 public:
29  /** @brief Default constructor
30  * @warning If file exists, it will be overwritten
31  */
32  WriterHEPEVT(const std::string &filename);
33 //
34 // Functions
35 //
36 public:
37 
38  /** @brief Write particle to file
39  *
40  * @param[in] index Particle to be serialized
41  * @param[in] iflong Format of record
42  */
43 
44  virtual void write_hepevt_particle( int index, bool iflong=true );
45  /** @brief Write event header to file
46  *
47  */
48  virtual void write_hepevt_event_header();
49 
50  /** @brief Write event to file
51  *
52  * @param[in] evt Event to be serialized
53  */
54  void write_event(const GenEvent &evt);
55 
56  /** @brief Close file stream */
57  void close();
58 
59  /** @brief Get stream error state flag */
60  bool failed();
61 
62 public:
63  FILE* m_file; //!< File to write. Need to be public to be accessible by children.
64 
65 private:
66  char* hepevtbuffer; //!< Pointer to HEPEVT Fortran common block/C struct
67  int m_events_count; //!< Events count. Needed to generate unique object name
68 };
69 
70 } // namespace HepMC
71 #endif
bool failed()
Get stream error state flag.
Definition: WriterHEPEVT.cc:59
virtual void write_hepevt_particle(int index, bool iflong=true)
Write particle to file.
Definition: WriterHEPEVT.cc:23
virtual void write_hepevt_event_header()
Write event header to file.
Definition: WriterHEPEVT.cc:40
void write_event(const GenEvent &evt)
Write event to file.
Definition: WriterHEPEVT.cc:45
void close()
Close file stream.
Definition: WriterHEPEVT.cc:54
int m_events_count
Events count. Needed to generate unique object name.
char * hepevtbuffer
Pointer to HEPEVT Fortran common block/C struct.
Definition of template class SmartPointer.
WriterHEPEVT(const std::string &filename)
Default constructor.
Definition: WriterHEPEVT.cc:16
FILE * m_file
File to write. Need to be public to be accessible by children.