6 #ifndef HEPMC3_READERCOMPRESSEDASCII_H 7 #define HEPMC3_READERCOMPRESSEDASCII_H 8 #include "Rivet/Tools/RivetHepMC.hh" 18 #include "HepMC3/Reader.h" 19 #include "HepMC3/GenEvent.h" 27 class ReaderCompressedAscii :
public HepMC3::Reader {
31 typedef HepMC3::GenParticlePtr GenParticlePtr;
32 typedef HepMC3::GenVertexPtr GenVertexPtr;
38 ReaderCompressedAscii(
const std::string& filename);
41 ReaderCompressedAscii(std::istream &);
44 ~ReaderCompressedAscii();
49 bool read_event(GenEvent& evt);
62 std::string unescape(
const std::string& s);
71 std::pair<int,int> parse_event_information();
76 bool parse_weight_values();
81 bool parse_precision();
86 bool parse_vertex_information();
91 bool parse_particle_information();
96 bool parse_attribute();
101 bool parse_run_attribute();
107 bool parse_weight_names();
120 bool read_position(GenVertexPtr v = GenVertexPtr());
126 bool read_momentum(GenParticlePtr p);
133 std::ifstream m_file;
134 std::istream* m_stream;
136 std::istringstream is;
140 double m_precision_phi;
141 double m_precision_eta;
142 double m_precision_e;
143 double m_precision_m;
144 bool m_using_integers;
146 map<long,long> m_masses;
149 vector<GenParticlePtr> m_particles;
153 map<int,GenVertexPtr> m_vertices;
155 map<int, std::vector<int> > m_vpin;
158 std::map< std::string, shared_ptr<HepMC3::Attribute> > m_global_attributes;
Definition: MC_Cent_pPb.hh:10