78 std::array<char, 512> buf_e;
79 bool eventline =
false;
85 if ( strlen(buf_e.data()) == 0 )
return false;
86 std::stringstream st_e(buf_e.data());
91 if (!(st_e >> attr))
break;
92 if (attr ==
' ') {
continue; }
96 eventline =
static_cast<bool>(st_e >> m_i >> m_p);
108 std::array<char, 512> buf_p;
109 std::array<char, 512> buf_v;
110 std::array<int, 6> intcodes;
111 std::array<double, 5> fltcodes1;
112 std::array<double, 5> fltcodes2;
114 if ( strlen(buf_p.data()) == 0 )
return false;
115 if (
m_options.count(
"vertices_positions_are_absent") == 0)
118 if ( strlen(buf_v.data()) == 0 )
return false;
120 std::stringstream st_p(buf_p.data());
121 std::stringstream st_v(buf_v.data());
122 if (
m_options.count(
"vertices_positions_are_absent") == 0)
124 if (!
static_cast<bool>(st_p >> intcodes[0] >> intcodes[1] >> intcodes[2] >> intcodes[3] >> intcodes[4] >> intcodes[5] >> fltcodes1[0] >> fltcodes1[1] >> fltcodes1[2] >> fltcodes1[3] >> fltcodes1[4])) {
HEPMC3_ERROR(
"ReaderHEPEVT: HEPMC3_ERROR reading particle momenta");
return false;}
125 if (!
static_cast<bool>(st_v >> fltcodes2[0] >> fltcodes2[1] >> fltcodes2[2] >> fltcodes2[3])) {
HEPMC3_ERROR(
"ReaderHEPEVT: HEPMC3_ERROR reading particle vertex");
return false;}
129 if (!
static_cast<bool>(st_p>> intcodes[0]>> intcodes[1] >> intcodes[4] >> intcodes[5] >> fltcodes1[0] >> fltcodes1[1] >> fltcodes1[2] >> fltcodes1[4])) {
HEPMC3_ERROR(
"ReaderHEPEVT: HEPMC3_ERROR reading particle momenta");
return false;}
132 fltcodes1[3] = std::sqrt(fltcodes1[0]*fltcodes1[0]+fltcodes1[1]*fltcodes1[1]+fltcodes1[2]*fltcodes1[2]+fltcodes1[4]*fltcodes1[4]);
142 m_hepevt_interface.set_momentum(i, fltcodes1[0], fltcodes1[1], fltcodes1[2], fltcodes1[3]);
144 m_hepevt_interface.set_position(i, fltcodes2[0], fltcodes2[1], fltcodes2[2], fltcodes2[3]);
160 std::shared_ptr<GenRunInfo> g = std::make_shared<GenRunInfo>();
161 std::vector<std::string> weightnames(1,
"0");
162 std::vector<double> wts(1,1.0);
163 g->set_weight_names(weightnames);