HepMC3 event record library
|
Parser for HepMC2 I/O files.
Definition at line 30 of file ReaderAsciiHepMC2.h.
#include <ReaderAsciiHepMC2.h>
Public Member Functions | |
ReaderAsciiHepMC2 (const std::string &filename) | |
Default constructor. | |
ReaderAsciiHepMC2 (std::istream &) | |
The ctor to read from stream. | |
ReaderAsciiHepMC2 (std::shared_ptr< std::istream > s_stream) | |
The ctor to read from temp stream. | |
~ReaderAsciiHepMC2 () | |
Destructor. | |
bool | skip (const int) override |
skip events | |
bool | read_event (GenEvent &evt) override |
Implementation of Reader::read_event. | |
bool | failed () override |
Return status of the stream. | |
void | close () override |
Close file stream. | |
virtual std::shared_ptr< GenRunInfo > | run_info () const |
Get the global GenRunInfo object. | |
virtual void | set_options (const std::map< std::string, std::string > &options) |
Set options. | |
virtual std::map< std::string, std::string > | get_options () const |
Get options. | |
virtual void | set_run_info (std::shared_ptr< GenRunInfo > run) |
Set the global GenRunInfo object. | |
Protected Attributes | |
std::map< std::string, std::string > | m_options |
Options. | |
Private Member Functions | |
int | parse_vertex_information (const char *buf) |
Parse vertex. | |
int | parse_particle_information (const char *buf) |
Parse particle. | |
bool | parse_weight_names (const char *buf) |
Parse weight names. | |
bool | parse_xs_info (GenEvent &evt, const char *buf) |
Parse pdf information. | |
Static Private Member Functions | |
static int | parse_event_information (GenEvent &evt, const char *buf) |
Parse event. | |
static bool | parse_units (GenEvent &evt, const char *buf) |
Parse units. | |
static bool | parse_heavy_ion (GenEvent &evt, const char *buf) |
Parse heavy ion information. | |
static bool | parse_pdf_info (GenEvent &evt, const char *buf) |
Parse pdf information. | |
Private Attributes | |
std::ifstream | m_file |
Input file. | |
std::shared_ptr< std::istream > | m_shared_stream = nullptr |
For ctor when reading from temp stream. | |
std::istream * | m_stream = nullptr |
For ctor when reading from stream. | |
bool | m_isstream |
toggles usage of m_file or m_stream | |
std::vector< GenVertexPtr > | m_vertex_cache |
Vertex cache. | |
std::vector< int > | m_vertex_barcodes |
Old vertex barcodes. | |
std::vector< GenParticlePtr > | m_particle_cache |
Particle cache. | |
std::vector< int > | m_end_vertex_barcodes |
Old end vertex barcodes. | |
GenEvent * | m_event_ghost = nullptr |
To save particle and verstex attributes. | |
std::vector< GenParticlePtr > | m_particle_cache_ghost |
Particle cache for attributes. | |
std::vector< GenVertexPtr > | m_vertex_cache_ghost |
Vertex cache for attributes. | |
std::shared_ptr< GenRunInfo > | m_run_info |
The global GenRunInfo object. | |
ReaderAsciiHepMC2 | ( | const std::string & | filename | ) |
Default constructor.
Definition at line 25 of file ReaderAsciiHepMC2.cc.
References m_event_ghost, m_file, m_isstream, and Reader::set_run_info().
ReaderAsciiHepMC2 | ( | std::istream & | stream | ) |
The ctor to read from stream.
Definition at line 34 of file ReaderAsciiHepMC2.cc.
References m_event_ghost, m_isstream, m_stream, and Reader::set_run_info().
ReaderAsciiHepMC2 | ( | std::shared_ptr< std::istream > | s_stream | ) |
The ctor to read from temp stream.
Definition at line 44 of file ReaderAsciiHepMC2.cc.
References m_event_ghost, m_isstream, m_shared_stream, m_stream, and Reader::set_run_info().
~ReaderAsciiHepMC2 | ( | ) |
Destructor.
Definition at line 55 of file ReaderAsciiHepMC2.cc.
References close(), m_event_ghost, and m_isstream.
|
overridevirtual |
Close file stream.
Implements Reader.
Definition at line 749 of file ReaderAsciiHepMC2.cc.
References m_event_ghost, and m_file.
|
overridevirtual |
Return status of the stream.
Implements Reader.
Definition at line 747 of file ReaderAsciiHepMC2.cc.
References m_file, m_isstream, and m_stream.
|
inlinevirtualinherited |
Get options.
Reimplemented in ReaderPlugin.
Definition at line 53 of file Reader.h.
References m_options.
|
staticprivate |
Parse event.
Helper routine for parsing event information
[out] | evt | Event that will be filled with new data |
[in] | buf | Line of text that needs to be parsed |
Definition at line 343 of file ReaderAsciiHepMC2.cc.
References GenEvent::add_attribute(), GenEvent::event_number(), HEPMC3_DEBUG, GenEvent::set_event_number(), and GenEvent::weights().
|
staticprivate |
Parse heavy ion information.
Helper routine for parsing heavy ion information
[out] | evt | Event that will be filled with new data |
[in] | buf | Line of text that needs to be parsed |
Definition at line 657 of file ReaderAsciiHepMC2.cc.
References GenEvent::add_attribute().
|
private |
Parse particle.
Helper routine for parsing single particle information
[in] | buf | Line of text that needs to be parsed |
Definition at line 511 of file ReaderAsciiHepMC2.cc.
References HEPMC3_DEBUG, m_end_vertex_barcodes, m_event_ghost, m_particle_cache, m_particle_cache_ghost, m_vertex_barcodes, and m_vertex_cache.
|
staticprivate |
Parse pdf information.
Helper routine for parsing pdf information
[out] | evt | Event that will be filled with new data |
[in] | buf | Line of text that needs to be parsed |
Definition at line 708 of file ReaderAsciiHepMC2.cc.
References GenEvent::add_attribute().
|
staticprivate |
Parse units.
Helper routine for parsing unit information
[out] | evt | Event that will be filled with unit information |
[in] | buf | Line of text that needs to be parsed |
Definition at line 424 of file ReaderAsciiHepMC2.cc.
References HEPMC3_DEBUG, GenEvent::length_unit(), Units::length_unit(), GenEvent::momentum_unit(), Units::momentum_unit(), Units::name(), and GenEvent::set_units().
|
private |
Parse vertex.
Helper routine for parsing single event information
[in] | buf | Line of text that needs to be parsed |
Definition at line 444 of file ReaderAsciiHepMC2.cc.
References HEPMC3_DEBUG, m_event_ghost, m_vertex_barcodes, m_vertex_cache, and m_vertex_cache_ghost.
|
private |
Parse weight names.
Helper routine for parsing weight names
[in] | buf | Line of text that needs to be parsed |
Definition at line 623 of file ReaderAsciiHepMC2.cc.
References Reader::run_info().
|
private |
Parse pdf information.
Helper routine for parsing cross-section information
[out] | evt | Event that will be filled with new data |
[in] | buf | Line of text that needs to be parsed |
Definition at line 603 of file ReaderAsciiHepMC2.cc.
References GenEvent::add_attribute(), Reader::m_options, and GenEvent::weights().
|
overridevirtual |
Implementation of Reader::read_event.
HepMC2 files produced with Pythia8 are known to have wrong information about number of particles in vertex. Hence '<' sign
HepMC2 files produced with Pythia8 are known to have wrong information about number of particles in vertex. Hence '<' sign
Implements Reader.
Definition at line 72 of file ReaderAsciiHepMC2.cc.
References GenEvent::add_attribute(), GenEvent::add_tree(), GenEvent::attribute(), GenEvent::clear(), failed(), HEPMC3_DEBUG, HEPMC3_ERROR_LEVEL, HEPMC3_WARNING_LEVEL, m_end_vertex_barcodes, m_event_ghost, m_file, m_isstream, Reader::m_options, m_particle_cache, m_particle_cache_ghost, m_stream, m_vertex_barcodes, m_vertex_cache, m_vertex_cache_ghost, parse_event_information(), parse_heavy_ion(), parse_particle_information(), parse_pdf_info(), parse_units(), parse_vertex_information(), parse_weight_names(), parse_xs_info(), GenEvent::remove_attribute(), GenEvent::reserve(), Reader::run_info(), GenEvent::set_run_info(), and GenEvent::weights().
|
inlinevirtualinherited |
Get the global GenRunInfo object.
Reimplemented in ReaderGZ< T >, and ReaderPlugin.
Definition at line 44 of file Reader.h.
References m_run_info.
|
inlinevirtualinherited |
Set options.
Reimplemented in ReaderPlugin.
Definition at line 51 of file Reader.h.
References m_options.
|
inlinevirtualinherited |
Set the global GenRunInfo object.
Reimplemented in ReaderGZ< T >, and ReaderPlugin.
Definition at line 56 of file Reader.h.
References m_run_info.
|
overridevirtual |
skip events
Reimplemented from Reader.
Definition at line 57 of file ReaderAsciiHepMC2.cc.
References failed(), m_file, m_isstream, and m_stream.
|
private |
Old end vertex barcodes.
Definition at line 140 of file ReaderAsciiHepMC2.h.
|
private |
To save particle and verstex attributes.
Definition at line 142 of file ReaderAsciiHepMC2.h.
|
private |
Input file.
Definition at line 131 of file ReaderAsciiHepMC2.h.
|
private |
toggles usage of m_file or m_stream
Definition at line 134 of file ReaderAsciiHepMC2.h.
|
protectedinherited |
|
private |
Particle cache.
Definition at line 139 of file ReaderAsciiHepMC2.h.
|
private |
Particle cache for attributes.
Definition at line 143 of file ReaderAsciiHepMC2.h.
|
privateinherited |
The global GenRunInfo object.
|
private |
For ctor when reading from temp stream.
Definition at line 132 of file ReaderAsciiHepMC2.h.
|
private |
For ctor when reading from stream.
Definition at line 133 of file ReaderAsciiHepMC2.h.
|
private |
Old vertex barcodes.
Definition at line 137 of file ReaderAsciiHepMC2.h.
|
private |
Vertex cache.
Definition at line 136 of file ReaderAsciiHepMC2.h.
|
private |
Vertex cache for attributes.
Definition at line 144 of file ReaderAsciiHepMC2.h.