HepMC3 event record library
ReaderHEPEVT.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_READERHEPEVT_H
7 #define HEPMC3_READERHEPEVT_H
8 /**
9  * @file ReaderHEPEVT.h
10  * @brief Definition of \b class ReaderHEPEVT
11  *
12  * @class HepMC3::ReaderHEPEVT
13  * @brief GenEvent I/O parsing and serialization for HEPEVT files
14  *
15  *
16  * @ingroup IO
17  *
18  */
19 #include <set>
20 #include <string>
21 #include <fstream>
22 #include <istream>
23 #include "HepMC3/Reader.h"
24 #include "HepMC3/GenEvent.h"
25 #include "HepMC3/GenRunInfo.h"
27 
28 
29 namespace HepMC3
30 {
31 
32 class ReaderHEPEVT : public Reader
33 {
34 //
35 // Constructors
36 //
37 public:
38  /** @brief Default constructor */
39  ReaderHEPEVT(const std::string &filename);
40 #ifndef HEPMC3_PYTHON_BINDINGS
41  /// The ctor to read from stdin
42  ReaderHEPEVT(std::istream &);
43 #endif
44 //
45 // Functions
46 //
47 public:
48  /** @brief Find and read event header line from file
49  *
50  */
51  virtual bool read_hepevt_event_header();
52  /** @brief read particle from file
53  *
54  * @param[in] i Particle id
55  * @param[in] iflong Event style
56  */
57  virtual bool read_hepevt_particle(int i);
58 
59  /// @brief skip events
60  bool skip(const int) override;
61 
62 
63  /** @brief Read event from file*/
64  bool read_event(GenEvent &evt) override;
65 
66 
67  /** @brief Close file stream */
68  void close() override;
69 
70  /** @brief Get stream error state */
71  bool failed() override;
72 
73 public:
74  char* hepevtbuffer; //!< Pointer to HEPEVT Fortran common block/C struct
75 private:
76  std::ifstream m_file; //!< Input file
77  std::istream* m_stream; //!< For ctor when reading from stdin
78  bool m_isstream; //!< toggles usage of m_file or m_stream
79  bool m_vertices_positions_present; //!< true if vertex positions are available
80 };
81 
82 } // namespace HepMC3
83 
84 #endif
GenEvent.h
Definition of class GenEvent.
HepMC3::GenEvent
Stores event-related information.
Definition: GenEvent.h:41
HepMC3::ReaderHEPEVT::m_file
std::ifstream m_file
Input file.
Definition: ReaderHEPEVT.h:76
HepMC3::ReaderHEPEVT::read_hepevt_particle
virtual bool read_hepevt_particle(int i)
read particle from file
Definition: ReaderHEPEVT.cc:95
HepMC3::ReaderHEPEVT::m_vertices_positions_present
bool m_vertices_positions_present
true if vertex positions are available
Definition: ReaderHEPEVT.h:79
HepMC3
HepMC3 main namespace.
Definition: AnalysisExample.h:18
HepMC3::ReaderHEPEVT::skip
bool skip(const int) override
skip events
Definition: ReaderHEPEVT.cc:47
HepMC3::ReaderHEPEVT::hepevtbuffer
char * hepevtbuffer
Pointer to HEPEVT Fortran common block/C struct.
Definition: ReaderHEPEVT.h:74
HepMC3::Reader
Base class for all I/O readers.
Definition: Reader.h:25
GenRunInfo.h
Definition of class GenRunInfo.
HepMC3::ReaderHEPEVT::ReaderHEPEVT
ReaderHEPEVT(const std::string &filename)
Default constructor.
Definition: ReaderHEPEVT.cc:18
HepMC3::ReaderHEPEVT::failed
bool failed() override
Get stream error state.
Definition: ReaderHEPEVT.cc:174
HepMC3::ReaderHEPEVT::close
void close() override
Close file stream.
Definition: ReaderHEPEVT.cc:167
HepMC3::ReaderHEPEVT
GenEvent I/O parsing and serialization for HEPEVT files.
Definition: ReaderHEPEVT.h:32
HepMC3::ReaderHEPEVT::read_event
bool read_event(GenEvent &evt) override
Read event from file.
Definition: ReaderHEPEVT.cc:140
HepMC3::ReaderHEPEVT::m_isstream
bool m_isstream
toggles usage of m_file or m_stream
Definition: ReaderHEPEVT.h:78
HepMC3::ReaderHEPEVT::m_stream
std::istream * m_stream
For ctor when reading from stdin.
Definition: ReaderHEPEVT.h:77
Reader.h
Definition of interface Reader.
GenEventData.h
Definition of struct GenEventData.
HepMC3::ReaderHEPEVT::read_hepevt_event_header
virtual bool read_hepevt_event_header()
Find and read event header line from file.
Definition: ReaderHEPEVT.cc:65