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-2020 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  ///Constructor
28  Reader() {}
29 
30  /// Virtual destructor
31  virtual ~Reader() {}
32 
33  /// skip or fast forward reading of some events
34  virtual bool skip(const int) { return !failed();}
35 
36  /// Fill next event from input into @a evt
37  virtual bool read_event(GenEvent& evt) = 0;
38  /** @brief Get file and/or stream error state */
39  virtual bool failed()=0;
40  /** @brief Close file and/or stream */
41  virtual void close()=0;
42 
43  /// Get the global GenRunInfo object.
44  std::shared_ptr<GenRunInfo> run_info() const {
45  return m_run_info;
46  }
47 
48 ///deleted copy constructor
49  Reader(const Reader&) = delete;
50 ///deleted copy assignment operator
51  Reader& operator = (const Reader &) = delete;
52  /// Set options
53  void set_options(const std::map<std::string, std::string>& options)
54  {
55  m_options=options;
56  }
57  /// Set options
58  std::map<std::string, std::string> get_options() const
59  {
60  return m_options;
61  }
62 protected:
63  /// Set the global GenRunInfo object.
64  void set_run_info(std::shared_ptr<GenRunInfo> run) {
65  m_run_info = run;
66  }
67  /// options
68  std::map<std::string, std::string> m_options;
69 private:
70  /// The global GenRunInfo object.
71  std::shared_ptr<GenRunInfo> m_run_info;
72 };
73 
74 
75 } // namespace HepMC3
76 
77 #endif
Definition of class GenRunInfo.
std::map< std::string, std::string > m_options
options
Definition: Reader.h:68
Reader()
Constructor.
Definition: Reader.h:28
virtual void close()=0
Close file and/or stream.
virtual bool failed()=0
Get file and/or stream error state.
virtual bool read_event(GenEvent &evt)=0
Fill next event from input into evt.
virtual bool skip(const int)
skip or fast forward reading of some events
Definition: Reader.h:34
std::shared_ptr< GenRunInfo > m_run_info
The global GenRunInfo object.
Definition: Reader.h:71
virtual ~Reader()
Virtual destructor.
Definition: Reader.h:31
Stores event-related information.
Definition: GenEvent.h:41
std::shared_ptr< GenRunInfo > run_info() const
Get the global GenRunInfo object.
Definition: Reader.h:44
void set_options(const std::map< std::string, std::string > &options)
Set options.
Definition: Reader.h:53
void set_run_info(std::shared_ptr< GenRunInfo > run)
Set the global GenRunInfo object.
Definition: Reader.h:64
Base class for all I/O readers.
Definition: Reader.h:25
std::map< std::string, std::string > get_options() const
Set options.
Definition: Reader.h:58
Reader & operator=(const Reader &)=delete
deleted copy assignment operator