HepMC3 event record library
Reader.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_READER_H
7 #define HEPMC3_READER_H
8 ///
9 /// @file Reader.h
10 /// @brief Definition of interface \b Reader
11 ///
12 /// @class HepMC3::Reader
13 /// @brief Base class for all I/O readers
14 ///
15 /// @ingroup IO
16 ///
17 
18 #include "HepMC3/GenRunInfo.h"
19 
20 namespace HepMC3 {
21 
22  // Forward declaration
23  class GenEvent;
24 
25  class Reader {
26  public:
27 
28  /// Virtual destructor
29  virtual ~Reader() {}
30 
31  /// Fill next event from input into @a evt
32  virtual bool read_event(GenEvent& evt) = 0;
33  virtual bool failed()=0;
34  virtual void close()=0;
35 
36  /// Get the global GenRunInfo object.
37  shared_ptr<GenRunInfo> run_info() const {
38  return m_run_info;
39  }
40 
41  protected:
42 
43  /// Set the global GenRunInfo object.
44  void set_run_info(shared_ptr<GenRunInfo> run) {
45  m_run_info = run;
46  }
47 
48  private:
49 
50  /// The global GenRunInfo object.
51  shared_ptr<GenRunInfo> m_run_info;
52 
53  };
54 
55 
56 } // namespace HepMC3
57 
58 #endif
Definition of class GenRunInfo.
HepMC3 main namespace.
Definition: WriterDOT.h:19
shared_ptr< GenRunInfo > run_info() const
Get the global GenRunInfo object.
Definition: Reader.h:37
virtual bool read_event(GenEvent &evt)=0
Fill next event from input into evt.
virtual ~Reader()
Virtual destructor.
Definition: Reader.h:29
shared_ptr< GenRunInfo > m_run_info
The global GenRunInfo object.
Definition: Reader.h:51
Stores event-related information.
Definition: GenEvent.h:42
void set_run_info(shared_ptr< GenRunInfo > run)
Set the global GenRunInfo object.
Definition: Reader.h:44
Base class for all I/O readers.
Definition: Reader.h:25