Index: external/ProMC/ProMC.pb.h
===================================================================
--- external/ProMC/ProMC.pb.h	(revision 6b9b91f918d5107900757f5c811e8cc86596d82e)
+++ external/ProMC/ProMC.pb.h	(revision 6b9b91f918d5107900757f5c811e8cc86596d82e)
@@ -0,0 +1,1540 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: ProMC.proto
+
+#ifndef PROTOBUF_ProMC_2eproto__INCLUDED
+#define PROTOBUF_ProMC_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 2005000
+#error This file was generated by a newer version of protoc which is
+#error incompatible with your Protocol Buffer headers.  Please update
+#error your headers.
+#endif
+#if 2005000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers.  Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h>
+#include <google/protobuf/extension_set.h>
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+
+namespace promc {
+
+// Internal implementation detail -- do not call these.
+void  protobuf_AddDesc_ProMC_2eproto();
+void protobuf_AssignDesc_ProMC_2eproto();
+void protobuf_ShutdownFile_ProMC_2eproto();
+
+class ProMCEvent;
+class ProMCEvent_Event;
+class ProMCEvent_Particles;
+
+// ===================================================================
+
+class ProMCEvent_Event : public ::google::protobuf::Message {
+ public:
+  ProMCEvent_Event();
+  virtual ~ProMCEvent_Event();
+
+  ProMCEvent_Event(const ProMCEvent_Event& from);
+
+  inline ProMCEvent_Event& operator=(const ProMCEvent_Event& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _unknown_fields_;
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return &_unknown_fields_;
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const ProMCEvent_Event& default_instance();
+
+  void Swap(ProMCEvent_Event* other);
+
+  // implements Message ----------------------------------------------
+
+  ProMCEvent_Event* New() const;
+  void CopyFrom(const ::google::protobuf::Message& from);
+  void MergeFrom(const ::google::protobuf::Message& from);
+  void CopyFrom(const ProMCEvent_Event& from);
+  void MergeFrom(const ProMCEvent_Event& from);
+  void Clear();
+  bool IsInitialized() const;
+
+  int ByteSize() const;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input);
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+  int GetCachedSize() const { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const;
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // optional int32 Number = 1;
+  inline bool has_number() const;
+  inline void clear_number();
+  static const int kNumberFieldNumber = 1;
+  inline ::google::protobuf::int32 number() const;
+  inline void set_number(::google::protobuf::int32 value);
+
+  // optional int32 Process_ID = 2;
+  inline bool has_process_id() const;
+  inline void clear_process_id();
+  static const int kProcessIDFieldNumber = 2;
+  inline ::google::protobuf::int32 process_id() const;
+  inline void set_process_id(::google::protobuf::int32 value);
+
+  // optional int32 MPI = 3;
+  inline bool has_mpi() const;
+  inline void clear_mpi();
+  static const int kMPIFieldNumber = 3;
+  inline ::google::protobuf::int32 mpi() const;
+  inline void set_mpi(::google::protobuf::int32 value);
+
+  // optional int32 ID1 = 4;
+  inline bool has_id1() const;
+  inline void clear_id1();
+  static const int kID1FieldNumber = 4;
+  inline ::google::protobuf::int32 id1() const;
+  inline void set_id1(::google::protobuf::int32 value);
+
+  // optional int32 ID2 = 5;
+  inline bool has_id2() const;
+  inline void clear_id2();
+  static const int kID2FieldNumber = 5;
+  inline ::google::protobuf::int32 id2() const;
+  inline void set_id2(::google::protobuf::int32 value);
+
+  // optional float PDF1 = 6;
+  inline bool has_pdf1() const;
+  inline void clear_pdf1();
+  static const int kPDF1FieldNumber = 6;
+  inline float pdf1() const;
+  inline void set_pdf1(float value);
+
+  // optional float PDF2 = 7;
+  inline bool has_pdf2() const;
+  inline void clear_pdf2();
+  static const int kPDF2FieldNumber = 7;
+  inline float pdf2() const;
+  inline void set_pdf2(float value);
+
+  // optional float X1 = 8;
+  inline bool has_x1() const;
+  inline void clear_x1();
+  static const int kX1FieldNumber = 8;
+  inline float x1() const;
+  inline void set_x1(float value);
+
+  // optional float X2 = 9;
+  inline bool has_x2() const;
+  inline void clear_x2();
+  static const int kX2FieldNumber = 9;
+  inline float x2() const;
+  inline void set_x2(float value);
+
+  // optional float Scale_PDF = 10;
+  inline bool has_scale_pdf() const;
+  inline void clear_scale_pdf();
+  static const int kScalePDFFieldNumber = 10;
+  inline float scale_pdf() const;
+  inline void set_scale_pdf(float value);
+
+  // optional float Alpha_QED = 11;
+  inline bool has_alpha_qed() const;
+  inline void clear_alpha_qed();
+  static const int kAlphaQEDFieldNumber = 11;
+  inline float alpha_qed() const;
+  inline void set_alpha_qed(float value);
+
+  // optional float Scale = 12;
+  inline bool has_scale() const;
+  inline void clear_scale();
+  static const int kScaleFieldNumber = 12;
+  inline float scale() const;
+  inline void set_scale(float value);
+
+  // optional float Alpha_QCD = 13;
+  inline bool has_alpha_qcd() const;
+  inline void clear_alpha_qcd();
+  static const int kAlphaQCDFieldNumber = 13;
+  inline float alpha_qcd() const;
+  inline void set_alpha_qcd(float value);
+
+  // optional double Weight = 14;
+  inline bool has_weight() const;
+  inline void clear_weight();
+  static const int kWeightFieldNumber = 14;
+  inline double weight() const;
+  inline void set_weight(double value);
+
+  // @@protoc_insertion_point(class_scope:promc.ProMCEvent.Event)
+ private:
+  inline void set_has_number();
+  inline void clear_has_number();
+  inline void set_has_process_id();
+  inline void clear_has_process_id();
+  inline void set_has_mpi();
+  inline void clear_has_mpi();
+  inline void set_has_id1();
+  inline void clear_has_id1();
+  inline void set_has_id2();
+  inline void clear_has_id2();
+  inline void set_has_pdf1();
+  inline void clear_has_pdf1();
+  inline void set_has_pdf2();
+  inline void clear_has_pdf2();
+  inline void set_has_x1();
+  inline void clear_has_x1();
+  inline void set_has_x2();
+  inline void clear_has_x2();
+  inline void set_has_scale_pdf();
+  inline void clear_has_scale_pdf();
+  inline void set_has_alpha_qed();
+  inline void clear_has_alpha_qed();
+  inline void set_has_scale();
+  inline void clear_has_scale();
+  inline void set_has_alpha_qcd();
+  inline void clear_has_alpha_qcd();
+  inline void set_has_weight();
+  inline void clear_has_weight();
+
+  ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+  ::google::protobuf::int32 number_;
+  ::google::protobuf::int32 process_id_;
+  ::google::protobuf::int32 mpi_;
+  ::google::protobuf::int32 id1_;
+  ::google::protobuf::int32 id2_;
+  float pdf1_;
+  float pdf2_;
+  float x1_;
+  float x2_;
+  float scale_pdf_;
+  float alpha_qed_;
+  float scale_;
+  double weight_;
+  float alpha_qcd_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(14 + 31) / 32];
+
+  friend void  protobuf_AddDesc_ProMC_2eproto();
+  friend void protobuf_AssignDesc_ProMC_2eproto();
+  friend void protobuf_ShutdownFile_ProMC_2eproto();
+
+  void InitAsDefaultInstance();
+  static ProMCEvent_Event* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class ProMCEvent_Particles : public ::google::protobuf::Message {
+ public:
+  ProMCEvent_Particles();
+  virtual ~ProMCEvent_Particles();
+
+  ProMCEvent_Particles(const ProMCEvent_Particles& from);
+
+  inline ProMCEvent_Particles& operator=(const ProMCEvent_Particles& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _unknown_fields_;
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return &_unknown_fields_;
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const ProMCEvent_Particles& default_instance();
+
+  void Swap(ProMCEvent_Particles* other);
+
+  // implements Message ----------------------------------------------
+
+  ProMCEvent_Particles* New() const;
+  void CopyFrom(const ::google::protobuf::Message& from);
+  void MergeFrom(const ::google::protobuf::Message& from);
+  void CopyFrom(const ProMCEvent_Particles& from);
+  void MergeFrom(const ProMCEvent_Particles& from);
+  void Clear();
+  bool IsInitialized() const;
+
+  int ByteSize() const;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input);
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+  int GetCachedSize() const { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const;
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // repeated uint32 id = 1 [packed = true];
+  inline int id_size() const;
+  inline void clear_id();
+  static const int kIdFieldNumber = 1;
+  inline ::google::protobuf::uint32 id(int index) const;
+  inline void set_id(int index, ::google::protobuf::uint32 value);
+  inline void add_id(::google::protobuf::uint32 value);
+  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+      id() const;
+  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+      mutable_id();
+
+  // repeated sint32 pdg_id = 2 [packed = true];
+  inline int pdg_id_size() const;
+  inline void clear_pdg_id();
+  static const int kPdgIdFieldNumber = 2;
+  inline ::google::protobuf::int32 pdg_id(int index) const;
+  inline void set_pdg_id(int index, ::google::protobuf::int32 value);
+  inline void add_pdg_id(::google::protobuf::int32 value);
+  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+      pdg_id() const;
+  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+      mutable_pdg_id();
+
+  // repeated uint32 status = 3 [packed = true];
+  inline int status_size() const;
+  inline void clear_status();
+  static const int kStatusFieldNumber = 3;
+  inline ::google::protobuf::uint32 status(int index) const;
+  inline void set_status(int index, ::google::protobuf::uint32 value);
+  inline void add_status(::google::protobuf::uint32 value);
+  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+      status() const;
+  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+      mutable_status();
+
+  // repeated uint64 mass = 4 [packed = true];
+  inline int mass_size() const;
+  inline void clear_mass();
+  static const int kMassFieldNumber = 4;
+  inline ::google::protobuf::uint64 mass(int index) const;
+  inline void set_mass(int index, ::google::protobuf::uint64 value);
+  inline void add_mass(::google::protobuf::uint64 value);
+  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
+      mass() const;
+  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
+      mutable_mass();
+
+  // repeated sint64 Px = 5 [packed = true];
+  inline int px_size() const;
+  inline void clear_px();
+  static const int kPxFieldNumber = 5;
+  inline ::google::protobuf::int64 px(int index) const;
+  inline void set_px(int index, ::google::protobuf::int64 value);
+  inline void add_px(::google::protobuf::int64 value);
+  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
+      px() const;
+  inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
+      mutable_px();
+
+  // repeated sint64 Py = 6 [packed = true];
+  inline int py_size() const;
+  inline void clear_py();
+  static const int kPyFieldNumber = 6;
+  inline ::google::protobuf::int64 py(int index) const;
+  inline void set_py(int index, ::google::protobuf::int64 value);
+  inline void add_py(::google::protobuf::int64 value);
+  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
+      py() const;
+  inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
+      mutable_py();
+
+  // repeated sint64 Pz = 7 [packed = true];
+  inline int pz_size() const;
+  inline void clear_pz();
+  static const int kPzFieldNumber = 7;
+  inline ::google::protobuf::int64 pz(int index) const;
+  inline void set_pz(int index, ::google::protobuf::int64 value);
+  inline void add_pz(::google::protobuf::int64 value);
+  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
+      pz() const;
+  inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
+      mutable_pz();
+
+  // repeated uint32 mother1 = 8 [packed = true];
+  inline int mother1_size() const;
+  inline void clear_mother1();
+  static const int kMother1FieldNumber = 8;
+  inline ::google::protobuf::uint32 mother1(int index) const;
+  inline void set_mother1(int index, ::google::protobuf::uint32 value);
+  inline void add_mother1(::google::protobuf::uint32 value);
+  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+      mother1() const;
+  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+      mutable_mother1();
+
+  // repeated uint32 mother2 = 9 [packed = true];
+  inline int mother2_size() const;
+  inline void clear_mother2();
+  static const int kMother2FieldNumber = 9;
+  inline ::google::protobuf::uint32 mother2(int index) const;
+  inline void set_mother2(int index, ::google::protobuf::uint32 value);
+  inline void add_mother2(::google::protobuf::uint32 value);
+  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+      mother2() const;
+  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+      mutable_mother2();
+
+  // repeated uint32 daughter1 = 10 [packed = true];
+  inline int daughter1_size() const;
+  inline void clear_daughter1();
+  static const int kDaughter1FieldNumber = 10;
+  inline ::google::protobuf::uint32 daughter1(int index) const;
+  inline void set_daughter1(int index, ::google::protobuf::uint32 value);
+  inline void add_daughter1(::google::protobuf::uint32 value);
+  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+      daughter1() const;
+  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+      mutable_daughter1();
+
+  // repeated uint32 daughter2 = 11 [packed = true];
+  inline int daughter2_size() const;
+  inline void clear_daughter2();
+  static const int kDaughter2FieldNumber = 11;
+  inline ::google::protobuf::uint32 daughter2(int index) const;
+  inline void set_daughter2(int index, ::google::protobuf::uint32 value);
+  inline void add_daughter2(::google::protobuf::uint32 value);
+  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+      daughter2() const;
+  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+      mutable_daughter2();
+
+  // repeated sint32 barcode = 12 [packed = true];
+  inline int barcode_size() const;
+  inline void clear_barcode();
+  static const int kBarcodeFieldNumber = 12;
+  inline ::google::protobuf::int32 barcode(int index) const;
+  inline void set_barcode(int index, ::google::protobuf::int32 value);
+  inline void add_barcode(::google::protobuf::int32 value);
+  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+      barcode() const;
+  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+      mutable_barcode();
+
+  // repeated sint32 X = 13 [packed = true];
+  inline int x_size() const;
+  inline void clear_x();
+  static const int kXFieldNumber = 13;
+  inline ::google::protobuf::int32 x(int index) const;
+  inline void set_x(int index, ::google::protobuf::int32 value);
+  inline void add_x(::google::protobuf::int32 value);
+  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+      x() const;
+  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+      mutable_x();
+
+  // repeated sint32 Y = 14 [packed = true];
+  inline int y_size() const;
+  inline void clear_y();
+  static const int kYFieldNumber = 14;
+  inline ::google::protobuf::int32 y(int index) const;
+  inline void set_y(int index, ::google::protobuf::int32 value);
+  inline void add_y(::google::protobuf::int32 value);
+  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+      y() const;
+  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+      mutable_y();
+
+  // repeated sint32 Z = 15 [packed = true];
+  inline int z_size() const;
+  inline void clear_z();
+  static const int kZFieldNumber = 15;
+  inline ::google::protobuf::int32 z(int index) const;
+  inline void set_z(int index, ::google::protobuf::int32 value);
+  inline void add_z(::google::protobuf::int32 value);
+  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+      z() const;
+  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+      mutable_z();
+
+  // repeated uint32 T = 16 [packed = true];
+  inline int t_size() const;
+  inline void clear_t();
+  static const int kTFieldNumber = 16;
+  inline ::google::protobuf::uint32 t(int index) const;
+  inline void set_t(int index, ::google::protobuf::uint32 value);
+  inline void add_t(::google::protobuf::uint32 value);
+  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+      t() const;
+  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+      mutable_t();
+
+  // repeated uint64 weight = 17 [packed = true];
+  inline int weight_size() const;
+  inline void clear_weight();
+  static const int kWeightFieldNumber = 17;
+  inline ::google::protobuf::uint64 weight(int index) const;
+  inline void set_weight(int index, ::google::protobuf::uint64 value);
+  inline void add_weight(::google::protobuf::uint64 value);
+  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
+      weight() const;
+  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
+      mutable_weight();
+
+  // repeated sint32 charge = 18 [packed = true];
+  inline int charge_size() const;
+  inline void clear_charge();
+  static const int kChargeFieldNumber = 18;
+  inline ::google::protobuf::int32 charge(int index) const;
+  inline void set_charge(int index, ::google::protobuf::int32 value);
+  inline void add_charge(::google::protobuf::int32 value);
+  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+      charge() const;
+  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+      mutable_charge();
+
+  // @@protoc_insertion_point(class_scope:promc.ProMCEvent.Particles)
+ private:
+
+  ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > id_;
+  mutable int _id_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > pdg_id_;
+  mutable int _pdg_id_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > status_;
+  mutable int _status_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > mass_;
+  mutable int _mass_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > px_;
+  mutable int _px_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > py_;
+  mutable int _py_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > pz_;
+  mutable int _pz_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > mother1_;
+  mutable int _mother1_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > mother2_;
+  mutable int _mother2_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > daughter1_;
+  mutable int _daughter1_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > daughter2_;
+  mutable int _daughter2_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > barcode_;
+  mutable int _barcode_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > x_;
+  mutable int _x_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > y_;
+  mutable int _y_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > z_;
+  mutable int _z_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > t_;
+  mutable int _t_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > weight_;
+  mutable int _weight_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > charge_;
+  mutable int _charge_cached_byte_size_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(18 + 31) / 32];
+
+  friend void  protobuf_AddDesc_ProMC_2eproto();
+  friend void protobuf_AssignDesc_ProMC_2eproto();
+  friend void protobuf_ShutdownFile_ProMC_2eproto();
+
+  void InitAsDefaultInstance();
+  static ProMCEvent_Particles* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class ProMCEvent : public ::google::protobuf::Message {
+ public:
+  ProMCEvent();
+  virtual ~ProMCEvent();
+
+  ProMCEvent(const ProMCEvent& from);
+
+  inline ProMCEvent& operator=(const ProMCEvent& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _unknown_fields_;
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return &_unknown_fields_;
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const ProMCEvent& default_instance();
+
+  void Swap(ProMCEvent* other);
+
+  // implements Message ----------------------------------------------
+
+  ProMCEvent* New() const;
+  void CopyFrom(const ::google::protobuf::Message& from);
+  void MergeFrom(const ::google::protobuf::Message& from);
+  void CopyFrom(const ProMCEvent& from);
+  void MergeFrom(const ProMCEvent& from);
+  void Clear();
+  bool IsInitialized() const;
+
+  int ByteSize() const;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input);
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+  int GetCachedSize() const { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const;
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const;
+
+  // nested types ----------------------------------------------------
+
+  typedef ProMCEvent_Event Event;
+  typedef ProMCEvent_Particles Particles;
+
+  // accessors -------------------------------------------------------
+
+  // optional .promc.ProMCEvent.Event event = 1;
+  inline bool has_event() const;
+  inline void clear_event();
+  static const int kEventFieldNumber = 1;
+  inline const ::promc::ProMCEvent_Event& event() const;
+  inline ::promc::ProMCEvent_Event* mutable_event();
+  inline ::promc::ProMCEvent_Event* release_event();
+  inline void set_allocated_event(::promc::ProMCEvent_Event* event);
+
+  // optional .promc.ProMCEvent.Particles particles = 2;
+  inline bool has_particles() const;
+  inline void clear_particles();
+  static const int kParticlesFieldNumber = 2;
+  inline const ::promc::ProMCEvent_Particles& particles() const;
+  inline ::promc::ProMCEvent_Particles* mutable_particles();
+  inline ::promc::ProMCEvent_Particles* release_particles();
+  inline void set_allocated_particles(::promc::ProMCEvent_Particles* particles);
+
+  // @@protoc_insertion_point(class_scope:promc.ProMCEvent)
+ private:
+  inline void set_has_event();
+  inline void clear_has_event();
+  inline void set_has_particles();
+  inline void clear_has_particles();
+
+  ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+  ::promc::ProMCEvent_Event* event_;
+  ::promc::ProMCEvent_Particles* particles_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
+
+  friend void  protobuf_AddDesc_ProMC_2eproto();
+  friend void protobuf_AssignDesc_ProMC_2eproto();
+  friend void protobuf_ShutdownFile_ProMC_2eproto();
+
+  void InitAsDefaultInstance();
+  static ProMCEvent* default_instance_;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+// ProMCEvent_Event
+
+// optional int32 Number = 1;
+inline bool ProMCEvent_Event::has_number() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void ProMCEvent_Event::set_has_number() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void ProMCEvent_Event::clear_has_number() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void ProMCEvent_Event::clear_number() {
+  number_ = 0;
+  clear_has_number();
+}
+inline ::google::protobuf::int32 ProMCEvent_Event::number() const {
+  return number_;
+}
+inline void ProMCEvent_Event::set_number(::google::protobuf::int32 value) {
+  set_has_number();
+  number_ = value;
+}
+
+// optional int32 Process_ID = 2;
+inline bool ProMCEvent_Event::has_process_id() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void ProMCEvent_Event::set_has_process_id() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void ProMCEvent_Event::clear_has_process_id() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void ProMCEvent_Event::clear_process_id() {
+  process_id_ = 0;
+  clear_has_process_id();
+}
+inline ::google::protobuf::int32 ProMCEvent_Event::process_id() const {
+  return process_id_;
+}
+inline void ProMCEvent_Event::set_process_id(::google::protobuf::int32 value) {
+  set_has_process_id();
+  process_id_ = value;
+}
+
+// optional int32 MPI = 3;
+inline bool ProMCEvent_Event::has_mpi() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void ProMCEvent_Event::set_has_mpi() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void ProMCEvent_Event::clear_has_mpi() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void ProMCEvent_Event::clear_mpi() {
+  mpi_ = 0;
+  clear_has_mpi();
+}
+inline ::google::protobuf::int32 ProMCEvent_Event::mpi() const {
+  return mpi_;
+}
+inline void ProMCEvent_Event::set_mpi(::google::protobuf::int32 value) {
+  set_has_mpi();
+  mpi_ = value;
+}
+
+// optional int32 ID1 = 4;
+inline bool ProMCEvent_Event::has_id1() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+inline void ProMCEvent_Event::set_has_id1() {
+  _has_bits_[0] |= 0x00000008u;
+}
+inline void ProMCEvent_Event::clear_has_id1() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+inline void ProMCEvent_Event::clear_id1() {
+  id1_ = 0;
+  clear_has_id1();
+}
+inline ::google::protobuf::int32 ProMCEvent_Event::id1() const {
+  return id1_;
+}
+inline void ProMCEvent_Event::set_id1(::google::protobuf::int32 value) {
+  set_has_id1();
+  id1_ = value;
+}
+
+// optional int32 ID2 = 5;
+inline bool ProMCEvent_Event::has_id2() const {
+  return (_has_bits_[0] & 0x00000010u) != 0;
+}
+inline void ProMCEvent_Event::set_has_id2() {
+  _has_bits_[0] |= 0x00000010u;
+}
+inline void ProMCEvent_Event::clear_has_id2() {
+  _has_bits_[0] &= ~0x00000010u;
+}
+inline void ProMCEvent_Event::clear_id2() {
+  id2_ = 0;
+  clear_has_id2();
+}
+inline ::google::protobuf::int32 ProMCEvent_Event::id2() const {
+  return id2_;
+}
+inline void ProMCEvent_Event::set_id2(::google::protobuf::int32 value) {
+  set_has_id2();
+  id2_ = value;
+}
+
+// optional float PDF1 = 6;
+inline bool ProMCEvent_Event::has_pdf1() const {
+  return (_has_bits_[0] & 0x00000020u) != 0;
+}
+inline void ProMCEvent_Event::set_has_pdf1() {
+  _has_bits_[0] |= 0x00000020u;
+}
+inline void ProMCEvent_Event::clear_has_pdf1() {
+  _has_bits_[0] &= ~0x00000020u;
+}
+inline void ProMCEvent_Event::clear_pdf1() {
+  pdf1_ = 0;
+  clear_has_pdf1();
+}
+inline float ProMCEvent_Event::pdf1() const {
+  return pdf1_;
+}
+inline void ProMCEvent_Event::set_pdf1(float value) {
+  set_has_pdf1();
+  pdf1_ = value;
+}
+
+// optional float PDF2 = 7;
+inline bool ProMCEvent_Event::has_pdf2() const {
+  return (_has_bits_[0] & 0x00000040u) != 0;
+}
+inline void ProMCEvent_Event::set_has_pdf2() {
+  _has_bits_[0] |= 0x00000040u;
+}
+inline void ProMCEvent_Event::clear_has_pdf2() {
+  _has_bits_[0] &= ~0x00000040u;
+}
+inline void ProMCEvent_Event::clear_pdf2() {
+  pdf2_ = 0;
+  clear_has_pdf2();
+}
+inline float ProMCEvent_Event::pdf2() const {
+  return pdf2_;
+}
+inline void ProMCEvent_Event::set_pdf2(float value) {
+  set_has_pdf2();
+  pdf2_ = value;
+}
+
+// optional float X1 = 8;
+inline bool ProMCEvent_Event::has_x1() const {
+  return (_has_bits_[0] & 0x00000080u) != 0;
+}
+inline void ProMCEvent_Event::set_has_x1() {
+  _has_bits_[0] |= 0x00000080u;
+}
+inline void ProMCEvent_Event::clear_has_x1() {
+  _has_bits_[0] &= ~0x00000080u;
+}
+inline void ProMCEvent_Event::clear_x1() {
+  x1_ = 0;
+  clear_has_x1();
+}
+inline float ProMCEvent_Event::x1() const {
+  return x1_;
+}
+inline void ProMCEvent_Event::set_x1(float value) {
+  set_has_x1();
+  x1_ = value;
+}
+
+// optional float X2 = 9;
+inline bool ProMCEvent_Event::has_x2() const {
+  return (_has_bits_[0] & 0x00000100u) != 0;
+}
+inline void ProMCEvent_Event::set_has_x2() {
+  _has_bits_[0] |= 0x00000100u;
+}
+inline void ProMCEvent_Event::clear_has_x2() {
+  _has_bits_[0] &= ~0x00000100u;
+}
+inline void ProMCEvent_Event::clear_x2() {
+  x2_ = 0;
+  clear_has_x2();
+}
+inline float ProMCEvent_Event::x2() const {
+  return x2_;
+}
+inline void ProMCEvent_Event::set_x2(float value) {
+  set_has_x2();
+  x2_ = value;
+}
+
+// optional float Scale_PDF = 10;
+inline bool ProMCEvent_Event::has_scale_pdf() const {
+  return (_has_bits_[0] & 0x00000200u) != 0;
+}
+inline void ProMCEvent_Event::set_has_scale_pdf() {
+  _has_bits_[0] |= 0x00000200u;
+}
+inline void ProMCEvent_Event::clear_has_scale_pdf() {
+  _has_bits_[0] &= ~0x00000200u;
+}
+inline void ProMCEvent_Event::clear_scale_pdf() {
+  scale_pdf_ = 0;
+  clear_has_scale_pdf();
+}
+inline float ProMCEvent_Event::scale_pdf() const {
+  return scale_pdf_;
+}
+inline void ProMCEvent_Event::set_scale_pdf(float value) {
+  set_has_scale_pdf();
+  scale_pdf_ = value;
+}
+
+// optional float Alpha_QED = 11;
+inline bool ProMCEvent_Event::has_alpha_qed() const {
+  return (_has_bits_[0] & 0x00000400u) != 0;
+}
+inline void ProMCEvent_Event::set_has_alpha_qed() {
+  _has_bits_[0] |= 0x00000400u;
+}
+inline void ProMCEvent_Event::clear_has_alpha_qed() {
+  _has_bits_[0] &= ~0x00000400u;
+}
+inline void ProMCEvent_Event::clear_alpha_qed() {
+  alpha_qed_ = 0;
+  clear_has_alpha_qed();
+}
+inline float ProMCEvent_Event::alpha_qed() const {
+  return alpha_qed_;
+}
+inline void ProMCEvent_Event::set_alpha_qed(float value) {
+  set_has_alpha_qed();
+  alpha_qed_ = value;
+}
+
+// optional float Scale = 12;
+inline bool ProMCEvent_Event::has_scale() const {
+  return (_has_bits_[0] & 0x00000800u) != 0;
+}
+inline void ProMCEvent_Event::set_has_scale() {
+  _has_bits_[0] |= 0x00000800u;
+}
+inline void ProMCEvent_Event::clear_has_scale() {
+  _has_bits_[0] &= ~0x00000800u;
+}
+inline void ProMCEvent_Event::clear_scale() {
+  scale_ = 0;
+  clear_has_scale();
+}
+inline float ProMCEvent_Event::scale() const {
+  return scale_;
+}
+inline void ProMCEvent_Event::set_scale(float value) {
+  set_has_scale();
+  scale_ = value;
+}
+
+// optional float Alpha_QCD = 13;
+inline bool ProMCEvent_Event::has_alpha_qcd() const {
+  return (_has_bits_[0] & 0x00001000u) != 0;
+}
+inline void ProMCEvent_Event::set_has_alpha_qcd() {
+  _has_bits_[0] |= 0x00001000u;
+}
+inline void ProMCEvent_Event::clear_has_alpha_qcd() {
+  _has_bits_[0] &= ~0x00001000u;
+}
+inline void ProMCEvent_Event::clear_alpha_qcd() {
+  alpha_qcd_ = 0;
+  clear_has_alpha_qcd();
+}
+inline float ProMCEvent_Event::alpha_qcd() const {
+  return alpha_qcd_;
+}
+inline void ProMCEvent_Event::set_alpha_qcd(float value) {
+  set_has_alpha_qcd();
+  alpha_qcd_ = value;
+}
+
+// optional double Weight = 14;
+inline bool ProMCEvent_Event::has_weight() const {
+  return (_has_bits_[0] & 0x00002000u) != 0;
+}
+inline void ProMCEvent_Event::set_has_weight() {
+  _has_bits_[0] |= 0x00002000u;
+}
+inline void ProMCEvent_Event::clear_has_weight() {
+  _has_bits_[0] &= ~0x00002000u;
+}
+inline void ProMCEvent_Event::clear_weight() {
+  weight_ = 0;
+  clear_has_weight();
+}
+inline double ProMCEvent_Event::weight() const {
+  return weight_;
+}
+inline void ProMCEvent_Event::set_weight(double value) {
+  set_has_weight();
+  weight_ = value;
+}
+
+// -------------------------------------------------------------------
+
+// ProMCEvent_Particles
+
+// repeated uint32 id = 1 [packed = true];
+inline int ProMCEvent_Particles::id_size() const {
+  return id_.size();
+}
+inline void ProMCEvent_Particles::clear_id() {
+  id_.Clear();
+}
+inline ::google::protobuf::uint32 ProMCEvent_Particles::id(int index) const {
+  return id_.Get(index);
+}
+inline void ProMCEvent_Particles::set_id(int index, ::google::protobuf::uint32 value) {
+  id_.Set(index, value);
+}
+inline void ProMCEvent_Particles::add_id(::google::protobuf::uint32 value) {
+  id_.Add(value);
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+ProMCEvent_Particles::id() const {
+  return id_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+ProMCEvent_Particles::mutable_id() {
+  return &id_;
+}
+
+// repeated sint32 pdg_id = 2 [packed = true];
+inline int ProMCEvent_Particles::pdg_id_size() const {
+  return pdg_id_.size();
+}
+inline void ProMCEvent_Particles::clear_pdg_id() {
+  pdg_id_.Clear();
+}
+inline ::google::protobuf::int32 ProMCEvent_Particles::pdg_id(int index) const {
+  return pdg_id_.Get(index);
+}
+inline void ProMCEvent_Particles::set_pdg_id(int index, ::google::protobuf::int32 value) {
+  pdg_id_.Set(index, value);
+}
+inline void ProMCEvent_Particles::add_pdg_id(::google::protobuf::int32 value) {
+  pdg_id_.Add(value);
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+ProMCEvent_Particles::pdg_id() const {
+  return pdg_id_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+ProMCEvent_Particles::mutable_pdg_id() {
+  return &pdg_id_;
+}
+
+// repeated uint32 status = 3 [packed = true];
+inline int ProMCEvent_Particles::status_size() const {
+  return status_.size();
+}
+inline void ProMCEvent_Particles::clear_status() {
+  status_.Clear();
+}
+inline ::google::protobuf::uint32 ProMCEvent_Particles::status(int index) const {
+  return status_.Get(index);
+}
+inline void ProMCEvent_Particles::set_status(int index, ::google::protobuf::uint32 value) {
+  status_.Set(index, value);
+}
+inline void ProMCEvent_Particles::add_status(::google::protobuf::uint32 value) {
+  status_.Add(value);
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+ProMCEvent_Particles::status() const {
+  return status_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+ProMCEvent_Particles::mutable_status() {
+  return &status_;
+}
+
+// repeated uint64 mass = 4 [packed = true];
+inline int ProMCEvent_Particles::mass_size() const {
+  return mass_.size();
+}
+inline void ProMCEvent_Particles::clear_mass() {
+  mass_.Clear();
+}
+inline ::google::protobuf::uint64 ProMCEvent_Particles::mass(int index) const {
+  return mass_.Get(index);
+}
+inline void ProMCEvent_Particles::set_mass(int index, ::google::protobuf::uint64 value) {
+  mass_.Set(index, value);
+}
+inline void ProMCEvent_Particles::add_mass(::google::protobuf::uint64 value) {
+  mass_.Add(value);
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
+ProMCEvent_Particles::mass() const {
+  return mass_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
+ProMCEvent_Particles::mutable_mass() {
+  return &mass_;
+}
+
+// repeated sint64 Px = 5 [packed = true];
+inline int ProMCEvent_Particles::px_size() const {
+  return px_.size();
+}
+inline void ProMCEvent_Particles::clear_px() {
+  px_.Clear();
+}
+inline ::google::protobuf::int64 ProMCEvent_Particles::px(int index) const {
+  return px_.Get(index);
+}
+inline void ProMCEvent_Particles::set_px(int index, ::google::protobuf::int64 value) {
+  px_.Set(index, value);
+}
+inline void ProMCEvent_Particles::add_px(::google::protobuf::int64 value) {
+  px_.Add(value);
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
+ProMCEvent_Particles::px() const {
+  return px_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
+ProMCEvent_Particles::mutable_px() {
+  return &px_;
+}
+
+// repeated sint64 Py = 6 [packed = true];
+inline int ProMCEvent_Particles::py_size() const {
+  return py_.size();
+}
+inline void ProMCEvent_Particles::clear_py() {
+  py_.Clear();
+}
+inline ::google::protobuf::int64 ProMCEvent_Particles::py(int index) const {
+  return py_.Get(index);
+}
+inline void ProMCEvent_Particles::set_py(int index, ::google::protobuf::int64 value) {
+  py_.Set(index, value);
+}
+inline void ProMCEvent_Particles::add_py(::google::protobuf::int64 value) {
+  py_.Add(value);
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
+ProMCEvent_Particles::py() const {
+  return py_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
+ProMCEvent_Particles::mutable_py() {
+  return &py_;
+}
+
+// repeated sint64 Pz = 7 [packed = true];
+inline int ProMCEvent_Particles::pz_size() const {
+  return pz_.size();
+}
+inline void ProMCEvent_Particles::clear_pz() {
+  pz_.Clear();
+}
+inline ::google::protobuf::int64 ProMCEvent_Particles::pz(int index) const {
+  return pz_.Get(index);
+}
+inline void ProMCEvent_Particles::set_pz(int index, ::google::protobuf::int64 value) {
+  pz_.Set(index, value);
+}
+inline void ProMCEvent_Particles::add_pz(::google::protobuf::int64 value) {
+  pz_.Add(value);
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
+ProMCEvent_Particles::pz() const {
+  return pz_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
+ProMCEvent_Particles::mutable_pz() {
+  return &pz_;
+}
+
+// repeated uint32 mother1 = 8 [packed = true];
+inline int ProMCEvent_Particles::mother1_size() const {
+  return mother1_.size();
+}
+inline void ProMCEvent_Particles::clear_mother1() {
+  mother1_.Clear();
+}
+inline ::google::protobuf::uint32 ProMCEvent_Particles::mother1(int index) const {
+  return mother1_.Get(index);
+}
+inline void ProMCEvent_Particles::set_mother1(int index, ::google::protobuf::uint32 value) {
+  mother1_.Set(index, value);
+}
+inline void ProMCEvent_Particles::add_mother1(::google::protobuf::uint32 value) {
+  mother1_.Add(value);
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+ProMCEvent_Particles::mother1() const {
+  return mother1_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+ProMCEvent_Particles::mutable_mother1() {
+  return &mother1_;
+}
+
+// repeated uint32 mother2 = 9 [packed = true];
+inline int ProMCEvent_Particles::mother2_size() const {
+  return mother2_.size();
+}
+inline void ProMCEvent_Particles::clear_mother2() {
+  mother2_.Clear();
+}
+inline ::google::protobuf::uint32 ProMCEvent_Particles::mother2(int index) const {
+  return mother2_.Get(index);
+}
+inline void ProMCEvent_Particles::set_mother2(int index, ::google::protobuf::uint32 value) {
+  mother2_.Set(index, value);
+}
+inline void ProMCEvent_Particles::add_mother2(::google::protobuf::uint32 value) {
+  mother2_.Add(value);
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+ProMCEvent_Particles::mother2() const {
+  return mother2_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+ProMCEvent_Particles::mutable_mother2() {
+  return &mother2_;
+}
+
+// repeated uint32 daughter1 = 10 [packed = true];
+inline int ProMCEvent_Particles::daughter1_size() const {
+  return daughter1_.size();
+}
+inline void ProMCEvent_Particles::clear_daughter1() {
+  daughter1_.Clear();
+}
+inline ::google::protobuf::uint32 ProMCEvent_Particles::daughter1(int index) const {
+  return daughter1_.Get(index);
+}
+inline void ProMCEvent_Particles::set_daughter1(int index, ::google::protobuf::uint32 value) {
+  daughter1_.Set(index, value);
+}
+inline void ProMCEvent_Particles::add_daughter1(::google::protobuf::uint32 value) {
+  daughter1_.Add(value);
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+ProMCEvent_Particles::daughter1() const {
+  return daughter1_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+ProMCEvent_Particles::mutable_daughter1() {
+  return &daughter1_;
+}
+
+// repeated uint32 daughter2 = 11 [packed = true];
+inline int ProMCEvent_Particles::daughter2_size() const {
+  return daughter2_.size();
+}
+inline void ProMCEvent_Particles::clear_daughter2() {
+  daughter2_.Clear();
+}
+inline ::google::protobuf::uint32 ProMCEvent_Particles::daughter2(int index) const {
+  return daughter2_.Get(index);
+}
+inline void ProMCEvent_Particles::set_daughter2(int index, ::google::protobuf::uint32 value) {
+  daughter2_.Set(index, value);
+}
+inline void ProMCEvent_Particles::add_daughter2(::google::protobuf::uint32 value) {
+  daughter2_.Add(value);
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+ProMCEvent_Particles::daughter2() const {
+  return daughter2_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+ProMCEvent_Particles::mutable_daughter2() {
+  return &daughter2_;
+}
+
+// repeated sint32 barcode = 12 [packed = true];
+inline int ProMCEvent_Particles::barcode_size() const {
+  return barcode_.size();
+}
+inline void ProMCEvent_Particles::clear_barcode() {
+  barcode_.Clear();
+}
+inline ::google::protobuf::int32 ProMCEvent_Particles::barcode(int index) const {
+  return barcode_.Get(index);
+}
+inline void ProMCEvent_Particles::set_barcode(int index, ::google::protobuf::int32 value) {
+  barcode_.Set(index, value);
+}
+inline void ProMCEvent_Particles::add_barcode(::google::protobuf::int32 value) {
+  barcode_.Add(value);
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+ProMCEvent_Particles::barcode() const {
+  return barcode_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+ProMCEvent_Particles::mutable_barcode() {
+  return &barcode_;
+}
+
+// repeated sint32 X = 13 [packed = true];
+inline int ProMCEvent_Particles::x_size() const {
+  return x_.size();
+}
+inline void ProMCEvent_Particles::clear_x() {
+  x_.Clear();
+}
+inline ::google::protobuf::int32 ProMCEvent_Particles::x(int index) const {
+  return x_.Get(index);
+}
+inline void ProMCEvent_Particles::set_x(int index, ::google::protobuf::int32 value) {
+  x_.Set(index, value);
+}
+inline void ProMCEvent_Particles::add_x(::google::protobuf::int32 value) {
+  x_.Add(value);
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+ProMCEvent_Particles::x() const {
+  return x_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+ProMCEvent_Particles::mutable_x() {
+  return &x_;
+}
+
+// repeated sint32 Y = 14 [packed = true];
+inline int ProMCEvent_Particles::y_size() const {
+  return y_.size();
+}
+inline void ProMCEvent_Particles::clear_y() {
+  y_.Clear();
+}
+inline ::google::protobuf::int32 ProMCEvent_Particles::y(int index) const {
+  return y_.Get(index);
+}
+inline void ProMCEvent_Particles::set_y(int index, ::google::protobuf::int32 value) {
+  y_.Set(index, value);
+}
+inline void ProMCEvent_Particles::add_y(::google::protobuf::int32 value) {
+  y_.Add(value);
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+ProMCEvent_Particles::y() const {
+  return y_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+ProMCEvent_Particles::mutable_y() {
+  return &y_;
+}
+
+// repeated sint32 Z = 15 [packed = true];
+inline int ProMCEvent_Particles::z_size() const {
+  return z_.size();
+}
+inline void ProMCEvent_Particles::clear_z() {
+  z_.Clear();
+}
+inline ::google::protobuf::int32 ProMCEvent_Particles::z(int index) const {
+  return z_.Get(index);
+}
+inline void ProMCEvent_Particles::set_z(int index, ::google::protobuf::int32 value) {
+  z_.Set(index, value);
+}
+inline void ProMCEvent_Particles::add_z(::google::protobuf::int32 value) {
+  z_.Add(value);
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+ProMCEvent_Particles::z() const {
+  return z_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+ProMCEvent_Particles::mutable_z() {
+  return &z_;
+}
+
+// repeated uint32 T = 16 [packed = true];
+inline int ProMCEvent_Particles::t_size() const {
+  return t_.size();
+}
+inline void ProMCEvent_Particles::clear_t() {
+  t_.Clear();
+}
+inline ::google::protobuf::uint32 ProMCEvent_Particles::t(int index) const {
+  return t_.Get(index);
+}
+inline void ProMCEvent_Particles::set_t(int index, ::google::protobuf::uint32 value) {
+  t_.Set(index, value);
+}
+inline void ProMCEvent_Particles::add_t(::google::protobuf::uint32 value) {
+  t_.Add(value);
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+ProMCEvent_Particles::t() const {
+  return t_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+ProMCEvent_Particles::mutable_t() {
+  return &t_;
+}
+
+// repeated uint64 weight = 17 [packed = true];
+inline int ProMCEvent_Particles::weight_size() const {
+  return weight_.size();
+}
+inline void ProMCEvent_Particles::clear_weight() {
+  weight_.Clear();
+}
+inline ::google::protobuf::uint64 ProMCEvent_Particles::weight(int index) const {
+  return weight_.Get(index);
+}
+inline void ProMCEvent_Particles::set_weight(int index, ::google::protobuf::uint64 value) {
+  weight_.Set(index, value);
+}
+inline void ProMCEvent_Particles::add_weight(::google::protobuf::uint64 value) {
+  weight_.Add(value);
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
+ProMCEvent_Particles::weight() const {
+  return weight_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
+ProMCEvent_Particles::mutable_weight() {
+  return &weight_;
+}
+
+// repeated sint32 charge = 18 [packed = true];
+inline int ProMCEvent_Particles::charge_size() const {
+  return charge_.size();
+}
+inline void ProMCEvent_Particles::clear_charge() {
+  charge_.Clear();
+}
+inline ::google::protobuf::int32 ProMCEvent_Particles::charge(int index) const {
+  return charge_.Get(index);
+}
+inline void ProMCEvent_Particles::set_charge(int index, ::google::protobuf::int32 value) {
+  charge_.Set(index, value);
+}
+inline void ProMCEvent_Particles::add_charge(::google::protobuf::int32 value) {
+  charge_.Add(value);
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+ProMCEvent_Particles::charge() const {
+  return charge_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+ProMCEvent_Particles::mutable_charge() {
+  return &charge_;
+}
+
+// -------------------------------------------------------------------
+
+// ProMCEvent
+
+// optional .promc.ProMCEvent.Event event = 1;
+inline bool ProMCEvent::has_event() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void ProMCEvent::set_has_event() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void ProMCEvent::clear_has_event() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void ProMCEvent::clear_event() {
+  if (event_ != NULL) event_->::promc::ProMCEvent_Event::Clear();
+  clear_has_event();
+}
+inline const ::promc::ProMCEvent_Event& ProMCEvent::event() const {
+  return event_ != NULL ? *event_ : *default_instance_->event_;
+}
+inline ::promc::ProMCEvent_Event* ProMCEvent::mutable_event() {
+  set_has_event();
+  if (event_ == NULL) event_ = new ::promc::ProMCEvent_Event;
+  return event_;
+}
+inline ::promc::ProMCEvent_Event* ProMCEvent::release_event() {
+  clear_has_event();
+  ::promc::ProMCEvent_Event* temp = event_;
+  event_ = NULL;
+  return temp;
+}
+inline void ProMCEvent::set_allocated_event(::promc::ProMCEvent_Event* event) {
+  delete event_;
+  event_ = event;
+  if (event) {
+    set_has_event();
+  } else {
+    clear_has_event();
+  }
+}
+
+// optional .promc.ProMCEvent.Particles particles = 2;
+inline bool ProMCEvent::has_particles() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void ProMCEvent::set_has_particles() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void ProMCEvent::clear_has_particles() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void ProMCEvent::clear_particles() {
+  if (particles_ != NULL) particles_->::promc::ProMCEvent_Particles::Clear();
+  clear_has_particles();
+}
+inline const ::promc::ProMCEvent_Particles& ProMCEvent::particles() const {
+  return particles_ != NULL ? *particles_ : *default_instance_->particles_;
+}
+inline ::promc::ProMCEvent_Particles* ProMCEvent::mutable_particles() {
+  set_has_particles();
+  if (particles_ == NULL) particles_ = new ::promc::ProMCEvent_Particles;
+  return particles_;
+}
+inline ::promc::ProMCEvent_Particles* ProMCEvent::release_particles() {
+  clear_has_particles();
+  ::promc::ProMCEvent_Particles* temp = particles_;
+  particles_ = NULL;
+  return temp;
+}
+inline void ProMCEvent::set_allocated_particles(::promc::ProMCEvent_Particles* particles) {
+  delete particles_;
+  particles_ = particles;
+  if (particles) {
+    set_has_particles();
+  } else {
+    clear_has_particles();
+  }
+}
+
+
+// @@protoc_insertion_point(namespace_scope)
+
+}  // namespace promc
+
+#ifndef SWIG
+namespace google {
+namespace protobuf {
+
+
+}  // namespace google
+}  // namespace protobuf
+#endif  // SWIG
+
+// @@protoc_insertion_point(global_scope)
+
+#endif  // PROTOBUF_ProMC_2eproto__INCLUDED
