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-2020 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 /// The ctor to read from stdin
41 ReaderHEPEVT(std::istream &);
42//
43// Functions
44//
45public:
46 /** @brief Find and read event header line from file
47 *
48 */
49 virtual bool read_hepevt_event_header();
50 /** @brief read particle from file
51 *
52 * @param[in] i Particle id
53 */
54 virtual bool read_hepevt_particle(int i);
55
56 /// @brief skip events
57 bool skip(const int) override;
58
59
60 /** @brief Read event from file*/
61 bool read_event(GenEvent &evt) override;
62
63
64 /** @brief Close file stream */
65 void close() override;
66
67 /** @brief Get stream error state */
68 bool failed() override;
69
70public:
71 char* hepevtbuffer; //!< Pointer to HEPEVT Fortran common block/C struct
72private:
73 std::ifstream m_file; //!< Input file
74 std::istream* m_stream; //!< For ctor when reading from stdin
75 bool m_isstream; //!< toggles usage of m_file or m_stream
76};
77
78} // namespace HepMC3
79
80#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:75
bool read_event(GenEvent &evt) override
Read event from file.
ReaderHEPEVT(const std::string &filename)
Default constructor.
Definition: ReaderHEPEVT.cc:20
bool failed() override
Get stream error state.
bool skip(const int) override
skip events
Definition: ReaderHEPEVT.cc:49
std::ifstream m_file
Input file.
Definition: ReaderHEPEVT.h:73
virtual bool read_hepevt_particle(int i)
read particle from file
Definition: ReaderHEPEVT.cc:97
virtual bool read_hepevt_event_header()
Find and read event header line from file.
Definition: ReaderHEPEVT.cc:67
void close() override
Close file stream.
char * hepevtbuffer
Pointer to HEPEVT Fortran common block/C struct.
Definition: ReaderHEPEVT.h:71
std::istream * m_stream
For ctor when reading from stdin.
Definition: ReaderHEPEVT.h:74
Base class for all I/O readers.
Definition: Reader.h:25
HepMC3 main namespace.