HepMC3 event record library
ReaderLHEF.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_READERLHEF_H
7 #define HEPMC3_READERLHEF_H
8 /**
9  * @file ReaderLHEF.h
10  * @brief Definition of \b class ReaderLHEF
11  *
12  * @class HepMC3::ReaderLHEF
13  * @brief GenEvent I/O parsing and serialization for LHEF files
14  *
15  *
16  * @ingroup IO
17  *
18  */
19 #include "HepMC3/Reader.h"
20 #include "HepMC3/GenEvent.h"
21 #include <deque>
22 #include <string>
23 #include <fstream>
24 #include <istream>
25 #include "HepMC3/LHEFAttributes.h"
26 #include "HepMC3/GenEvent.h"
27 #include "HepMC3/GenParticle.h"
28 #include "HepMC3/GenVertex.h"
29 #include <iomanip>
30 
31 
32 namespace HepMC3
33 {
34 class ReaderLHEF : public Reader
35 {
36 public:
37  /// The ctor to read from stream
38  ReaderLHEF(std::istream &);
39 private:
40  void init(); ///< Init helper
41 public:
42  /** @brief Constructor */
43  ReaderLHEF(const std::string& filename);
44  /// @brief skip events
45  bool skip(const int) override;
46  /** @brief Reading event */
47  bool read_event(GenEvent& ev) override;
48  /** @brief Close */
49  void close() override;
50  /** @brief State */
51  bool failed() override;
52  /** @brief Destructor */
53  ~ReaderLHEF() ;
54 private:
55  std::shared_ptr<LHEF::Reader> m_reader; ///< The actual reader
56  std::shared_ptr<HEPRUPAttribute> m_hepr; ///< Holder of attributes
57  int m_neve; ///< Event counter
58  bool m_failed; ///< State of reader
59  std::deque<GenEvent> m_storage; ///<storage used for subevents.
60 };
61 }
62 #endif
HepMC3::ReaderLHEF::skip
bool skip(const int) override
skip events
Definition: ReaderLHEF.cc:25
GenEvent.h
Definition of class GenEvent.
HepMC3::ReaderLHEF::init
void init()
Init helper.
Definition: ReaderLHEF.cc:37
HepMC3::ReaderLHEF::m_hepr
std::shared_ptr< HEPRUPAttribute > m_hepr
Holder of attributes.
Definition: ReaderLHEF.h:56
HepMC3::GenEvent
Stores event-related information.
Definition: GenEvent.h:41
GenVertex.h
Definition of class GenVertex.
HepMC3
HepMC3 main namespace.
Definition: AnalysisExample.h:19
LHEFAttributes.h
Definition of class HEPRUPAttribute and class HEPEUAttribute.
HepMC3::ReaderLHEF::~ReaderLHEF
~ReaderLHEF()
Destructor.
Definition: ReaderLHEF.cc:95
GenParticle.h
Definition of class GenParticle.
HepMC3::ReaderLHEF::close
void close() override
Close.
Definition: ReaderLHEF.cc:183
HepMC3::Reader
Base class for all I/O readers.
Definition: Reader.h:25
HepMC3::ReaderLHEF::read_event
bool read_event(GenEvent &ev) override
Reading event.
Definition: ReaderLHEF.cc:97
HepMC3::ReaderLHEF
GenEvent I/O parsing and serialization for LHEF files.
Definition: ReaderLHEF.h:35
HepMC3::ReaderLHEF::m_storage
std::deque< GenEvent > m_storage
storage used for subevents.
Definition: ReaderLHEF.h:59
HepMC3::ReaderLHEF::m_neve
int m_neve
Event counter.
Definition: ReaderLHEF.h:57
HepMC3::ReaderLHEF::m_reader
std::shared_ptr< LHEF::Reader > m_reader
The actual reader.
Definition: ReaderLHEF.h:55
HepMC3::ReaderLHEF::failed
bool failed() override
State.
Definition: ReaderLHEF.cc:180
HepMC3::ReaderLHEF::m_failed
bool m_failed
State of reader.
Definition: ReaderLHEF.h:58
Reader.h
Definition of interface Reader.
HepMC3::ReaderLHEF::ReaderLHEF
ReaderLHEF(std::istream &)
The ctor to read from stream.
Definition: ReaderLHEF.cc:19