152 if (
m_msg_type != HepMC3_pb::MessageDigest::Header) {
156 HepMC3_pb::Header Header_pb;
169 m_file_header.m_protobuf_version_maj = Header_pb.protobuf_version_maj();
170 m_file_header.m_protobuf_version_min = Header_pb.protobuf_version_min();
171 m_file_header.m_protobuf_version_patch = Header_pb.protobuf_version_patch();
181 if (
m_msg_type != HepMC3_pb::MessageDigest::RunInfo) {
187 HepMC3_pb::GenRunInfoData GenRunInfo_pb;
200 vector_size = GenRunInfo_pb.weight_names_size();
201 for (
int it = 0; it < vector_size; ++it) {
202 gridata.
weight_names.push_back(GenRunInfo_pb.weight_names(it));
205 vector_size = GenRunInfo_pb.tool_name_size();
206 for (
int it = 0; it < vector_size; ++it) {
207 gridata.
tool_name.push_back(GenRunInfo_pb.tool_name(it));
210 vector_size = GenRunInfo_pb.tool_version_size();
211 for (
int it = 0; it < vector_size; ++it) {
212 gridata.
tool_version.push_back(GenRunInfo_pb.tool_version(it));
215 vector_size = GenRunInfo_pb.tool_description_size();
216 for (
int it = 0; it < vector_size; ++it) {
220 vector_size = GenRunInfo_pb.attribute_name_size();
221 for (
int it = 0; it < vector_size; ++it) {
222 gridata.
attribute_name.push_back(GenRunInfo_pb.attribute_name(it));
225 vector_size = GenRunInfo_pb.attribute_string_size();
226 for (
int it = 0; it < vector_size; ++it) {
239 if (
m_msg_type != HepMC3_pb::MessageDigest::Event) {
253 HepMC3_pb::GenEventData ged_pb;
261 m_evdata.event_number = ged_pb.event_number();
263 switch (ged_pb.momentum_unit()) {
264 case HepMC3_pb::GenEventData::MEV: {
265 m_evdata.momentum_unit = HepMC3::Units::MEV;
268 case HepMC3_pb::GenEventData::GEV: {
269 m_evdata.momentum_unit = HepMC3::Units::GEV;
273 HEPMC3_ERROR(
"Unknown momentum unit: " << ged_pb.momentum_unit());
278 switch (ged_pb.length_unit()) {
279 case HepMC3_pb::GenEventData::MM: {
280 m_evdata.length_unit = HepMC3::Units::MM;
283 case HepMC3_pb::GenEventData::CM: {
284 m_evdata.length_unit = HepMC3::Units::CM;
288 HEPMC3_ERROR(
"Unknown length unit: " << ged_pb.length_unit());
296 vector_size = ged_pb.particles_size();
297 for (
int it = 0; it < vector_size; ++it) {
298 auto particle_pb = ged_pb.particles(it);
302 pdata.
pid = particle_pb.pid();
303 pdata.
status = particle_pb.status();
305 pdata.
mass = particle_pb.mass();
308 particle_pb.momentum().m_v1(), particle_pb.momentum().m_v2(),
309 particle_pb.momentum().m_v3(), particle_pb.momentum().m_v4()};
311 m_evdata.particles.push_back(pdata);
315 vector_size = ged_pb.vertices_size();
316 for (
int it = 0; it < vector_size; ++it) {
317 auto vertex_pb = ged_pb.vertices(it);
321 vdata.
status = vertex_pb.status();
324 vertex_pb.position().m_v1(), vertex_pb.position().m_v2(),
325 vertex_pb.position().m_v3(), vertex_pb.position().m_v4()};
331 vector_size = ged_pb.weights_size();
332 for (
int it = 0; it < vector_size; ++it) {
333 m_evdata.weights.push_back(ged_pb.weights(it));
337 vector_size = ged_pb.links1_size();
338 for (
int it = 0; it < vector_size; ++it) {
339 m_evdata.links1.push_back(ged_pb.links1(it));
343 vector_size = ged_pb.links2_size();
344 for (
int it = 0; it < vector_size; ++it) {
345 m_evdata.links2.push_back(ged_pb.links2(it));
350 ged_pb.event_pos().m_v3(), ged_pb.event_pos().m_v4()};
353 vector_size = ged_pb.attribute_id_size();
354 for (
int it = 0; it < vector_size; ++it) {
355 m_evdata.attribute_id.push_back(ged_pb.attribute_id(it));
359 vector_size = ged_pb.attribute_name_size();
360 for (
int it = 0; it < vector_size; ++it) {
361 m_evdata.attribute_name.push_back(ged_pb.attribute_name(it));
365 vector_size = ged_pb.attribute_string_size();
366 for (
int it = 0; it < vector_size; ++it) {
367 m_evdata.attribute_string.push_back(ged_pb.attribute_string(it));
Stores serializable particle information.
bool is_mass_set
Check if generated mass is set.