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
29namespace HepMC3
30{
31
32class ReaderHEPEVT : public Reader
33{
34//
35// Constructors
36//
37public:
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//
47public:
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
73public:
74 char* hepevtbuffer; //!< Pointer to HEPEVT Fortran common block/C struct
75private:
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
Definition of struct GenEventData.
Definition of class GenEvent.
Definition of class GenRunInfo.
Definition of interface Reader.
Stores event-related information.
Definition: GenEvent.h:41
GenEvent I/O parsing and serialization for HEPEVT files.
Definition: ReaderHEPEVT.h:33
bool m_isstream
toggles usage of m_file or m_stream
Definition: ReaderHEPEVT.h:78
bool read_event(GenEvent &evt) override
Read event from file.
ReaderHEPEVT(const std::string &filename)
Default constructor.
Definition: ReaderHEPEVT.cc:18
bool failed() override
Get stream error state.
bool skip(const int) override
skip events
Definition: ReaderHEPEVT.cc:47
std::ifstream m_file
Input file.
Definition: ReaderHEPEVT.h:76
virtual bool read_hepevt_particle(int i)
read particle from file
Definition: ReaderHEPEVT.cc:95
virtual bool read_hepevt_event_header()
Find and read event header line from file.
Definition: ReaderHEPEVT.cc:65
void close() override
Close file stream.
char * hepevtbuffer
Pointer to HEPEVT Fortran common block/C struct.
Definition: ReaderHEPEVT.h:74
std::istream * m_stream
For ctor when reading from stdin.
Definition: ReaderHEPEVT.h:77
bool m_vertices_positions_present
true if vertex positions are available
Definition: ReaderHEPEVT.h:79
Base class for all I/O readers.
Definition: Reader.h:25
HepMC3 main namespace.