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.