Index: external/ProMC/ProMCHeader.pb.h
===================================================================
--- external/ProMC/ProMCHeader.pb.h	(revision 6b9b91f918d5107900757f5c811e8cc86596d82e)
+++ external/ProMC/ProMCHeader.pb.h	(revision 6b9b91f918d5107900757f5c811e8cc86596d82e)
@@ -0,0 +1,1792 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: ProMCHeader.proto
+
+#ifndef PROTOBUF_ProMCHeader_2eproto__INCLUDED
+#define PROTOBUF_ProMCHeader_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_ProMCHeader_2eproto();
+void protobuf_AssignDesc_ProMCHeader_2eproto();
+void protobuf_ShutdownFile_ProMCHeader_2eproto();
+
+class ProMCHeader;
+class ProMCHeader_ParticleData;
+class ProMCHeader_MetaInt;
+class ProMCHeader_MetaFloat;
+
+// ===================================================================
+
+class ProMCHeader_ParticleData : public ::google::protobuf::Message {
+ public:
+  ProMCHeader_ParticleData();
+  virtual ~ProMCHeader_ParticleData();
+
+  ProMCHeader_ParticleData(const ProMCHeader_ParticleData& from);
+
+  inline ProMCHeader_ParticleData& operator=(const ProMCHeader_ParticleData& 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 ProMCHeader_ParticleData& default_instance();
+
+  void Swap(ProMCHeader_ParticleData* other);
+
+  // implements Message ----------------------------------------------
+
+  ProMCHeader_ParticleData* New() const;
+  void CopyFrom(const ::google::protobuf::Message& from);
+  void MergeFrom(const ::google::protobuf::Message& from);
+  void CopyFrom(const ProMCHeader_ParticleData& from);
+  void MergeFrom(const ProMCHeader_ParticleData& 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 -------------------------------------------------------
+
+  // required sint32 id = 1;
+  inline bool has_id() const;
+  inline void clear_id();
+  static const int kIdFieldNumber = 1;
+  inline ::google::protobuf::int32 id() const;
+  inline void set_id(::google::protobuf::int32 value);
+
+  // required double mass = 2;
+  inline bool has_mass() const;
+  inline void clear_mass();
+  static const int kMassFieldNumber = 2;
+  inline double mass() const;
+  inline void set_mass(double value);
+
+  // required string name = 3;
+  inline bool has_name() const;
+  inline void clear_name();
+  static const int kNameFieldNumber = 3;
+  inline const ::std::string& name() const;
+  inline void set_name(const ::std::string& value);
+  inline void set_name(const char* value);
+  inline void set_name(const char* value, size_t size);
+  inline ::std::string* mutable_name();
+  inline ::std::string* release_name();
+  inline void set_allocated_name(::std::string* name);
+
+  // optional float width = 4;
+  inline bool has_width() const;
+  inline void clear_width();
+  static const int kWidthFieldNumber = 4;
+  inline float width() const;
+  inline void set_width(float value);
+
+  // optional float lifetime = 5;
+  inline bool has_lifetime() const;
+  inline void clear_lifetime();
+  static const int kLifetimeFieldNumber = 5;
+  inline float lifetime() const;
+  inline void set_lifetime(float value);
+
+  // optional sint32 charge = 6;
+  inline bool has_charge() const;
+  inline void clear_charge();
+  static const int kChargeFieldNumber = 6;
+  inline ::google::protobuf::int32 charge() const;
+  inline void set_charge(::google::protobuf::int32 value);
+
+  // @@protoc_insertion_point(class_scope:promc.ProMCHeader.ParticleData)
+ private:
+  inline void set_has_id();
+  inline void clear_has_id();
+  inline void set_has_mass();
+  inline void clear_has_mass();
+  inline void set_has_name();
+  inline void clear_has_name();
+  inline void set_has_width();
+  inline void clear_has_width();
+  inline void set_has_lifetime();
+  inline void clear_has_lifetime();
+  inline void set_has_charge();
+  inline void clear_has_charge();
+
+  ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+  double mass_;
+  ::google::protobuf::int32 id_;
+  float width_;
+  ::std::string* name_;
+  float lifetime_;
+  ::google::protobuf::int32 charge_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(6 + 31) / 32];
+
+  friend void  protobuf_AddDesc_ProMCHeader_2eproto();
+  friend void protobuf_AssignDesc_ProMCHeader_2eproto();
+  friend void protobuf_ShutdownFile_ProMCHeader_2eproto();
+
+  void InitAsDefaultInstance();
+  static ProMCHeader_ParticleData* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class ProMCHeader_MetaInt : public ::google::protobuf::Message {
+ public:
+  ProMCHeader_MetaInt();
+  virtual ~ProMCHeader_MetaInt();
+
+  ProMCHeader_MetaInt(const ProMCHeader_MetaInt& from);
+
+  inline ProMCHeader_MetaInt& operator=(const ProMCHeader_MetaInt& 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 ProMCHeader_MetaInt& default_instance();
+
+  void Swap(ProMCHeader_MetaInt* other);
+
+  // implements Message ----------------------------------------------
+
+  ProMCHeader_MetaInt* New() const;
+  void CopyFrom(const ::google::protobuf::Message& from);
+  void MergeFrom(const ::google::protobuf::Message& from);
+  void CopyFrom(const ProMCHeader_MetaInt& from);
+  void MergeFrom(const ProMCHeader_MetaInt& 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 -------------------------------------------------------
+
+  // required string key = 1;
+  inline bool has_key() const;
+  inline void clear_key();
+  static const int kKeyFieldNumber = 1;
+  inline const ::std::string& key() const;
+  inline void set_key(const ::std::string& value);
+  inline void set_key(const char* value);
+  inline void set_key(const char* value, size_t size);
+  inline ::std::string* mutable_key();
+  inline ::std::string* release_key();
+  inline void set_allocated_key(::std::string* key);
+
+  // required sint64 value = 2;
+  inline bool has_value() const;
+  inline void clear_value();
+  static const int kValueFieldNumber = 2;
+  inline ::google::protobuf::int64 value() const;
+  inline void set_value(::google::protobuf::int64 value);
+
+  // @@protoc_insertion_point(class_scope:promc.ProMCHeader.MetaInt)
+ private:
+  inline void set_has_key();
+  inline void clear_has_key();
+  inline void set_has_value();
+  inline void clear_has_value();
+
+  ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+  ::std::string* key_;
+  ::google::protobuf::int64 value_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
+
+  friend void  protobuf_AddDesc_ProMCHeader_2eproto();
+  friend void protobuf_AssignDesc_ProMCHeader_2eproto();
+  friend void protobuf_ShutdownFile_ProMCHeader_2eproto();
+
+  void InitAsDefaultInstance();
+  static ProMCHeader_MetaInt* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class ProMCHeader_MetaFloat : public ::google::protobuf::Message {
+ public:
+  ProMCHeader_MetaFloat();
+  virtual ~ProMCHeader_MetaFloat();
+
+  ProMCHeader_MetaFloat(const ProMCHeader_MetaFloat& from);
+
+  inline ProMCHeader_MetaFloat& operator=(const ProMCHeader_MetaFloat& 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 ProMCHeader_MetaFloat& default_instance();
+
+  void Swap(ProMCHeader_MetaFloat* other);
+
+  // implements Message ----------------------------------------------
+
+  ProMCHeader_MetaFloat* New() const;
+  void CopyFrom(const ::google::protobuf::Message& from);
+  void MergeFrom(const ::google::protobuf::Message& from);
+  void CopyFrom(const ProMCHeader_MetaFloat& from);
+  void MergeFrom(const ProMCHeader_MetaFloat& 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 -------------------------------------------------------
+
+  // required string key = 1;
+  inline bool has_key() const;
+  inline void clear_key();
+  static const int kKeyFieldNumber = 1;
+  inline const ::std::string& key() const;
+  inline void set_key(const ::std::string& value);
+  inline void set_key(const char* value);
+  inline void set_key(const char* value, size_t size);
+  inline ::std::string* mutable_key();
+  inline ::std::string* release_key();
+  inline void set_allocated_key(::std::string* key);
+
+  // required double value = 2;
+  inline bool has_value() const;
+  inline void clear_value();
+  static const int kValueFieldNumber = 2;
+  inline double value() const;
+  inline void set_value(double value);
+
+  // @@protoc_insertion_point(class_scope:promc.ProMCHeader.MetaFloat)
+ private:
+  inline void set_has_key();
+  inline void clear_has_key();
+  inline void set_has_value();
+  inline void clear_has_value();
+
+  ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+  ::std::string* key_;
+  double value_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
+
+  friend void  protobuf_AddDesc_ProMCHeader_2eproto();
+  friend void protobuf_AssignDesc_ProMCHeader_2eproto();
+  friend void protobuf_ShutdownFile_ProMCHeader_2eproto();
+
+  void InitAsDefaultInstance();
+  static ProMCHeader_MetaFloat* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class ProMCHeader : public ::google::protobuf::Message {
+ public:
+  ProMCHeader();
+  virtual ~ProMCHeader();
+
+  ProMCHeader(const ProMCHeader& from);
+
+  inline ProMCHeader& operator=(const ProMCHeader& 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 ProMCHeader& default_instance();
+
+  void Swap(ProMCHeader* other);
+
+  // implements Message ----------------------------------------------
+
+  ProMCHeader* New() const;
+  void CopyFrom(const ::google::protobuf::Message& from);
+  void MergeFrom(const ::google::protobuf::Message& from);
+  void CopyFrom(const ProMCHeader& from);
+  void MergeFrom(const ProMCHeader& 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 ProMCHeader_ParticleData ParticleData;
+  typedef ProMCHeader_MetaInt MetaInt;
+  typedef ProMCHeader_MetaFloat MetaFloat;
+
+  // accessors -------------------------------------------------------
+
+  // optional int32 id1 = 1;
+  inline bool has_id1() const;
+  inline void clear_id1();
+  static const int kId1FieldNumber = 1;
+  inline ::google::protobuf::int32 id1() const;
+  inline void set_id1(::google::protobuf::int32 value);
+
+  // optional int32 id2 = 2;
+  inline bool has_id2() const;
+  inline void clear_id2();
+  static const int kId2FieldNumber = 2;
+  inline ::google::protobuf::int32 id2() const;
+  inline void set_id2(::google::protobuf::int32 value);
+
+  // optional int32 pdf_id1 = 3;
+  inline bool has_pdf_id1() const;
+  inline void clear_pdf_id1();
+  static const int kPdfId1FieldNumber = 3;
+  inline ::google::protobuf::int32 pdf_id1() const;
+  inline void set_pdf_id1(::google::protobuf::int32 value);
+
+  // optional int32 pdf_id2 = 4;
+  inline bool has_pdf_id2() const;
+  inline void clear_pdf_id2();
+  static const int kPdfId2FieldNumber = 4;
+  inline ::google::protobuf::int32 pdf_id2() const;
+  inline void set_pdf_id2(::google::protobuf::int32 value);
+
+  // optional double x1 = 5;
+  inline bool has_x1() const;
+  inline void clear_x1();
+  static const int kX1FieldNumber = 5;
+  inline double x1() const;
+  inline void set_x1(double value);
+
+  // optional double x2 = 6;
+  inline bool has_x2() const;
+  inline void clear_x2();
+  static const int kX2FieldNumber = 6;
+  inline double x2() const;
+  inline void set_x2(double value);
+
+  // optional double scalepdf = 7;
+  inline bool has_scalepdf() const;
+  inline void clear_scalepdf();
+  static const int kScalepdfFieldNumber = 7;
+  inline double scalepdf() const;
+  inline void set_scalepdf(double value);
+
+  // optional int32 pdf1 = 8;
+  inline bool has_pdf1() const;
+  inline void clear_pdf1();
+  static const int kPdf1FieldNumber = 8;
+  inline ::google::protobuf::int32 pdf1() const;
+  inline void set_pdf1(::google::protobuf::int32 value);
+
+  // optional int32 pdf2 = 9;
+  inline bool has_pdf2() const;
+  inline void clear_pdf2();
+  static const int kPdf2FieldNumber = 9;
+  inline ::google::protobuf::int32 pdf2() const;
+  inline void set_pdf2(::google::protobuf::int32 value);
+
+  // optional double eCM = 10;
+  inline bool has_ecm() const;
+  inline void clear_ecm();
+  static const int kECMFieldNumber = 10;
+  inline double ecm() const;
+  inline void set_ecm(double value);
+
+  // optional double s = 11;
+  inline bool has_s() const;
+  inline void clear_s();
+  static const int kSFieldNumber = 11;
+  inline double s() const;
+  inline void set_s(double value);
+
+  // optional string name = 12;
+  inline bool has_name() const;
+  inline void clear_name();
+  static const int kNameFieldNumber = 12;
+  inline const ::std::string& name() const;
+  inline void set_name(const ::std::string& value);
+  inline void set_name(const char* value);
+  inline void set_name(const char* value, size_t size);
+  inline ::std::string* mutable_name();
+  inline ::std::string* release_name();
+  inline void set_allocated_name(::std::string* name);
+
+  // optional int32 code = 13;
+  inline bool has_code() const;
+  inline void clear_code();
+  static const int kCodeFieldNumber = 13;
+  inline ::google::protobuf::int32 code() const;
+  inline void set_code(::google::protobuf::int32 value);
+
+  // optional double cross_section = 14;
+  inline bool has_cross_section() const;
+  inline void clear_cross_section();
+  static const int kCrossSectionFieldNumber = 14;
+  inline double cross_section() const;
+  inline void set_cross_section(double value);
+
+  // optional double cross_section_error = 15;
+  inline bool has_cross_section_error() const;
+  inline void clear_cross_section_error();
+  static const int kCrossSectionErrorFieldNumber = 15;
+  inline double cross_section_error() const;
+  inline void set_cross_section_error(double value);
+
+  // optional int32 MomentumUnit = 16;
+  inline bool has_momentumunit() const;
+  inline void clear_momentumunit();
+  static const int kMomentumUnitFieldNumber = 16;
+  inline ::google::protobuf::int32 momentumunit() const;
+  inline void set_momentumunit(::google::protobuf::int32 value);
+
+  // optional int32 LengthUnit = 17;
+  inline bool has_lengthunit() const;
+  inline void clear_lengthunit();
+  static const int kLengthUnitFieldNumber = 17;
+  inline ::google::protobuf::int32 lengthunit() const;
+  inline void set_lengthunit(::google::protobuf::int32 value);
+
+  // optional string NameMomentumUnit = 18;
+  inline bool has_namemomentumunit() const;
+  inline void clear_namemomentumunit();
+  static const int kNameMomentumUnitFieldNumber = 18;
+  inline const ::std::string& namemomentumunit() const;
+  inline void set_namemomentumunit(const ::std::string& value);
+  inline void set_namemomentumunit(const char* value);
+  inline void set_namemomentumunit(const char* value, size_t size);
+  inline ::std::string* mutable_namemomentumunit();
+  inline ::std::string* release_namemomentumunit();
+  inline void set_allocated_namemomentumunit(::std::string* namemomentumunit);
+
+  // optional string NameLengthUnit = 19;
+  inline bool has_namelengthunit() const;
+  inline void clear_namelengthunit();
+  static const int kNameLengthUnitFieldNumber = 19;
+  inline const ::std::string& namelengthunit() const;
+  inline void set_namelengthunit(const ::std::string& value);
+  inline void set_namelengthunit(const char* value);
+  inline void set_namelengthunit(const char* value, size_t size);
+  inline ::std::string* mutable_namelengthunit();
+  inline ::std::string* release_namelengthunit();
+  inline void set_allocated_namelengthunit(::std::string* namelengthunit);
+
+  // optional double weight = 20;
+  inline bool has_weight() const;
+  inline void clear_weight();
+  static const int kWeightFieldNumber = 20;
+  inline double weight() const;
+  inline void set_weight(double value);
+
+  // optional double requested_events = 21;
+  inline bool has_requested_events() const;
+  inline void clear_requested_events();
+  static const int kRequestedEventsFieldNumber = 21;
+  inline double requested_events() const;
+  inline void set_requested_events(double value);
+
+  // repeated .promc.ProMCHeader.ParticleData particleData = 30;
+  inline int particledata_size() const;
+  inline void clear_particledata();
+  static const int kParticleDataFieldNumber = 30;
+  inline const ::promc::ProMCHeader_ParticleData& particledata(int index) const;
+  inline ::promc::ProMCHeader_ParticleData* mutable_particledata(int index);
+  inline ::promc::ProMCHeader_ParticleData* add_particledata();
+  inline const ::google::protobuf::RepeatedPtrField< ::promc::ProMCHeader_ParticleData >&
+      particledata() const;
+  inline ::google::protobuf::RepeatedPtrField< ::promc::ProMCHeader_ParticleData >*
+      mutable_particledata();
+
+  // repeated .promc.ProMCHeader.MetaInt metaInt = 31;
+  inline int metaint_size() const;
+  inline void clear_metaint();
+  static const int kMetaIntFieldNumber = 31;
+  inline const ::promc::ProMCHeader_MetaInt& metaint(int index) const;
+  inline ::promc::ProMCHeader_MetaInt* mutable_metaint(int index);
+  inline ::promc::ProMCHeader_MetaInt* add_metaint();
+  inline const ::google::protobuf::RepeatedPtrField< ::promc::ProMCHeader_MetaInt >&
+      metaint() const;
+  inline ::google::protobuf::RepeatedPtrField< ::promc::ProMCHeader_MetaInt >*
+      mutable_metaint();
+
+  // repeated .promc.ProMCHeader.MetaFloat metaFloat = 32;
+  inline int metafloat_size() const;
+  inline void clear_metafloat();
+  static const int kMetaFloatFieldNumber = 32;
+  inline const ::promc::ProMCHeader_MetaFloat& metafloat(int index) const;
+  inline ::promc::ProMCHeader_MetaFloat* mutable_metafloat(int index);
+  inline ::promc::ProMCHeader_MetaFloat* add_metafloat();
+  inline const ::google::protobuf::RepeatedPtrField< ::promc::ProMCHeader_MetaFloat >&
+      metafloat() const;
+  inline ::google::protobuf::RepeatedPtrField< ::promc::ProMCHeader_MetaFloat >*
+      mutable_metafloat();
+
+  // @@protoc_insertion_point(class_scope:promc.ProMCHeader)
+ private:
+  inline void set_has_id1();
+  inline void clear_has_id1();
+  inline void set_has_id2();
+  inline void clear_has_id2();
+  inline void set_has_pdf_id1();
+  inline void clear_has_pdf_id1();
+  inline void set_has_pdf_id2();
+  inline void clear_has_pdf_id2();
+  inline void set_has_x1();
+  inline void clear_has_x1();
+  inline void set_has_x2();
+  inline void clear_has_x2();
+  inline void set_has_scalepdf();
+  inline void clear_has_scalepdf();
+  inline void set_has_pdf1();
+  inline void clear_has_pdf1();
+  inline void set_has_pdf2();
+  inline void clear_has_pdf2();
+  inline void set_has_ecm();
+  inline void clear_has_ecm();
+  inline void set_has_s();
+  inline void clear_has_s();
+  inline void set_has_name();
+  inline void clear_has_name();
+  inline void set_has_code();
+  inline void clear_has_code();
+  inline void set_has_cross_section();
+  inline void clear_has_cross_section();
+  inline void set_has_cross_section_error();
+  inline void clear_has_cross_section_error();
+  inline void set_has_momentumunit();
+  inline void clear_has_momentumunit();
+  inline void set_has_lengthunit();
+  inline void clear_has_lengthunit();
+  inline void set_has_namemomentumunit();
+  inline void clear_has_namemomentumunit();
+  inline void set_has_namelengthunit();
+  inline void clear_has_namelengthunit();
+  inline void set_has_weight();
+  inline void clear_has_weight();
+  inline void set_has_requested_events();
+  inline void clear_has_requested_events();
+
+  ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+  ::google::protobuf::int32 id1_;
+  ::google::protobuf::int32 id2_;
+  ::google::protobuf::int32 pdf_id1_;
+  ::google::protobuf::int32 pdf_id2_;
+  double x1_;
+  double x2_;
+  double scalepdf_;
+  ::google::protobuf::int32 pdf1_;
+  ::google::protobuf::int32 pdf2_;
+  double ecm_;
+  double s_;
+  ::std::string* name_;
+  double cross_section_;
+  ::google::protobuf::int32 code_;
+  ::google::protobuf::int32 momentumunit_;
+  double cross_section_error_;
+  ::std::string* namemomentumunit_;
+  ::std::string* namelengthunit_;
+  double weight_;
+  double requested_events_;
+  ::google::protobuf::RepeatedPtrField< ::promc::ProMCHeader_ParticleData > particledata_;
+  ::google::protobuf::RepeatedPtrField< ::promc::ProMCHeader_MetaInt > metaint_;
+  ::google::protobuf::RepeatedPtrField< ::promc::ProMCHeader_MetaFloat > metafloat_;
+  ::google::protobuf::int32 lengthunit_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(24 + 31) / 32];
+
+  friend void  protobuf_AddDesc_ProMCHeader_2eproto();
+  friend void protobuf_AssignDesc_ProMCHeader_2eproto();
+  friend void protobuf_ShutdownFile_ProMCHeader_2eproto();
+
+  void InitAsDefaultInstance();
+  static ProMCHeader* default_instance_;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+// ProMCHeader_ParticleData
+
+// required sint32 id = 1;
+inline bool ProMCHeader_ParticleData::has_id() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void ProMCHeader_ParticleData::set_has_id() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void ProMCHeader_ParticleData::clear_has_id() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void ProMCHeader_ParticleData::clear_id() {
+  id_ = 0;
+  clear_has_id();
+}
+inline ::google::protobuf::int32 ProMCHeader_ParticleData::id() const {
+  return id_;
+}
+inline void ProMCHeader_ParticleData::set_id(::google::protobuf::int32 value) {
+  set_has_id();
+  id_ = value;
+}
+
+// required double mass = 2;
+inline bool ProMCHeader_ParticleData::has_mass() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void ProMCHeader_ParticleData::set_has_mass() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void ProMCHeader_ParticleData::clear_has_mass() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void ProMCHeader_ParticleData::clear_mass() {
+  mass_ = 0;
+  clear_has_mass();
+}
+inline double ProMCHeader_ParticleData::mass() const {
+  return mass_;
+}
+inline void ProMCHeader_ParticleData::set_mass(double value) {
+  set_has_mass();
+  mass_ = value;
+}
+
+// required string name = 3;
+inline bool ProMCHeader_ParticleData::has_name() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void ProMCHeader_ParticleData::set_has_name() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void ProMCHeader_ParticleData::clear_has_name() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void ProMCHeader_ParticleData::clear_name() {
+  if (name_ != &::google::protobuf::internal::kEmptyString) {
+    name_->clear();
+  }
+  clear_has_name();
+}
+inline const ::std::string& ProMCHeader_ParticleData::name() const {
+  return *name_;
+}
+inline void ProMCHeader_ParticleData::set_name(const ::std::string& value) {
+  set_has_name();
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
+    name_ = new ::std::string;
+  }
+  name_->assign(value);
+}
+inline void ProMCHeader_ParticleData::set_name(const char* value) {
+  set_has_name();
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
+    name_ = new ::std::string;
+  }
+  name_->assign(value);
+}
+inline void ProMCHeader_ParticleData::set_name(const char* value, size_t size) {
+  set_has_name();
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
+    name_ = new ::std::string;
+  }
+  name_->assign(reinterpret_cast<const char*>(value), size);
+}
+inline ::std::string* ProMCHeader_ParticleData::mutable_name() {
+  set_has_name();
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
+    name_ = new ::std::string;
+  }
+  return name_;
+}
+inline ::std::string* ProMCHeader_ParticleData::release_name() {
+  clear_has_name();
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
+    return NULL;
+  } else {
+    ::std::string* temp = name_;
+    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+    return temp;
+  }
+}
+inline void ProMCHeader_ParticleData::set_allocated_name(::std::string* name) {
+  if (name_ != &::google::protobuf::internal::kEmptyString) {
+    delete name_;
+  }
+  if (name) {
+    set_has_name();
+    name_ = name;
+  } else {
+    clear_has_name();
+    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  }
+}
+
+// optional float width = 4;
+inline bool ProMCHeader_ParticleData::has_width() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+inline void ProMCHeader_ParticleData::set_has_width() {
+  _has_bits_[0] |= 0x00000008u;
+}
+inline void ProMCHeader_ParticleData::clear_has_width() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+inline void ProMCHeader_ParticleData::clear_width() {
+  width_ = 0;
+  clear_has_width();
+}
+inline float ProMCHeader_ParticleData::width() const {
+  return width_;
+}
+inline void ProMCHeader_ParticleData::set_width(float value) {
+  set_has_width();
+  width_ = value;
+}
+
+// optional float lifetime = 5;
+inline bool ProMCHeader_ParticleData::has_lifetime() const {
+  return (_has_bits_[0] & 0x00000010u) != 0;
+}
+inline void ProMCHeader_ParticleData::set_has_lifetime() {
+  _has_bits_[0] |= 0x00000010u;
+}
+inline void ProMCHeader_ParticleData::clear_has_lifetime() {
+  _has_bits_[0] &= ~0x00000010u;
+}
+inline void ProMCHeader_ParticleData::clear_lifetime() {
+  lifetime_ = 0;
+  clear_has_lifetime();
+}
+inline float ProMCHeader_ParticleData::lifetime() const {
+  return lifetime_;
+}
+inline void ProMCHeader_ParticleData::set_lifetime(float value) {
+  set_has_lifetime();
+  lifetime_ = value;
+}
+
+// optional sint32 charge = 6;
+inline bool ProMCHeader_ParticleData::has_charge() const {
+  return (_has_bits_[0] & 0x00000020u) != 0;
+}
+inline void ProMCHeader_ParticleData::set_has_charge() {
+  _has_bits_[0] |= 0x00000020u;
+}
+inline void ProMCHeader_ParticleData::clear_has_charge() {
+  _has_bits_[0] &= ~0x00000020u;
+}
+inline void ProMCHeader_ParticleData::clear_charge() {
+  charge_ = 0;
+  clear_has_charge();
+}
+inline ::google::protobuf::int32 ProMCHeader_ParticleData::charge() const {
+  return charge_;
+}
+inline void ProMCHeader_ParticleData::set_charge(::google::protobuf::int32 value) {
+  set_has_charge();
+  charge_ = value;
+}
+
+// -------------------------------------------------------------------
+
+// ProMCHeader_MetaInt
+
+// required string key = 1;
+inline bool ProMCHeader_MetaInt::has_key() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void ProMCHeader_MetaInt::set_has_key() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void ProMCHeader_MetaInt::clear_has_key() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void ProMCHeader_MetaInt::clear_key() {
+  if (key_ != &::google::protobuf::internal::kEmptyString) {
+    key_->clear();
+  }
+  clear_has_key();
+}
+inline const ::std::string& ProMCHeader_MetaInt::key() const {
+  return *key_;
+}
+inline void ProMCHeader_MetaInt::set_key(const ::std::string& value) {
+  set_has_key();
+  if (key_ == &::google::protobuf::internal::kEmptyString) {
+    key_ = new ::std::string;
+  }
+  key_->assign(value);
+}
+inline void ProMCHeader_MetaInt::set_key(const char* value) {
+  set_has_key();
+  if (key_ == &::google::protobuf::internal::kEmptyString) {
+    key_ = new ::std::string;
+  }
+  key_->assign(value);
+}
+inline void ProMCHeader_MetaInt::set_key(const char* value, size_t size) {
+  set_has_key();
+  if (key_ == &::google::protobuf::internal::kEmptyString) {
+    key_ = new ::std::string;
+  }
+  key_->assign(reinterpret_cast<const char*>(value), size);
+}
+inline ::std::string* ProMCHeader_MetaInt::mutable_key() {
+  set_has_key();
+  if (key_ == &::google::protobuf::internal::kEmptyString) {
+    key_ = new ::std::string;
+  }
+  return key_;
+}
+inline ::std::string* ProMCHeader_MetaInt::release_key() {
+  clear_has_key();
+  if (key_ == &::google::protobuf::internal::kEmptyString) {
+    return NULL;
+  } else {
+    ::std::string* temp = key_;
+    key_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+    return temp;
+  }
+}
+inline void ProMCHeader_MetaInt::set_allocated_key(::std::string* key) {
+  if (key_ != &::google::protobuf::internal::kEmptyString) {
+    delete key_;
+  }
+  if (key) {
+    set_has_key();
+    key_ = key;
+  } else {
+    clear_has_key();
+    key_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  }
+}
+
+// required sint64 value = 2;
+inline bool ProMCHeader_MetaInt::has_value() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void ProMCHeader_MetaInt::set_has_value() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void ProMCHeader_MetaInt::clear_has_value() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void ProMCHeader_MetaInt::clear_value() {
+  value_ = GOOGLE_LONGLONG(0);
+  clear_has_value();
+}
+inline ::google::protobuf::int64 ProMCHeader_MetaInt::value() const {
+  return value_;
+}
+inline void ProMCHeader_MetaInt::set_value(::google::protobuf::int64 value) {
+  set_has_value();
+  value_ = value;
+}
+
+// -------------------------------------------------------------------
+
+// ProMCHeader_MetaFloat
+
+// required string key = 1;
+inline bool ProMCHeader_MetaFloat::has_key() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void ProMCHeader_MetaFloat::set_has_key() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void ProMCHeader_MetaFloat::clear_has_key() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void ProMCHeader_MetaFloat::clear_key() {
+  if (key_ != &::google::protobuf::internal::kEmptyString) {
+    key_->clear();
+  }
+  clear_has_key();
+}
+inline const ::std::string& ProMCHeader_MetaFloat::key() const {
+  return *key_;
+}
+inline void ProMCHeader_MetaFloat::set_key(const ::std::string& value) {
+  set_has_key();
+  if (key_ == &::google::protobuf::internal::kEmptyString) {
+    key_ = new ::std::string;
+  }
+  key_->assign(value);
+}
+inline void ProMCHeader_MetaFloat::set_key(const char* value) {
+  set_has_key();
+  if (key_ == &::google::protobuf::internal::kEmptyString) {
+    key_ = new ::std::string;
+  }
+  key_->assign(value);
+}
+inline void ProMCHeader_MetaFloat::set_key(const char* value, size_t size) {
+  set_has_key();
+  if (key_ == &::google::protobuf::internal::kEmptyString) {
+    key_ = new ::std::string;
+  }
+  key_->assign(reinterpret_cast<const char*>(value), size);
+}
+inline ::std::string* ProMCHeader_MetaFloat::mutable_key() {
+  set_has_key();
+  if (key_ == &::google::protobuf::internal::kEmptyString) {
+    key_ = new ::std::string;
+  }
+  return key_;
+}
+inline ::std::string* ProMCHeader_MetaFloat::release_key() {
+  clear_has_key();
+  if (key_ == &::google::protobuf::internal::kEmptyString) {
+    return NULL;
+  } else {
+    ::std::string* temp = key_;
+    key_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+    return temp;
+  }
+}
+inline void ProMCHeader_MetaFloat::set_allocated_key(::std::string* key) {
+  if (key_ != &::google::protobuf::internal::kEmptyString) {
+    delete key_;
+  }
+  if (key) {
+    set_has_key();
+    key_ = key;
+  } else {
+    clear_has_key();
+    key_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  }
+}
+
+// required double value = 2;
+inline bool ProMCHeader_MetaFloat::has_value() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void ProMCHeader_MetaFloat::set_has_value() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void ProMCHeader_MetaFloat::clear_has_value() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void ProMCHeader_MetaFloat::clear_value() {
+  value_ = 0;
+  clear_has_value();
+}
+inline double ProMCHeader_MetaFloat::value() const {
+  return value_;
+}
+inline void ProMCHeader_MetaFloat::set_value(double value) {
+  set_has_value();
+  value_ = value;
+}
+
+// -------------------------------------------------------------------
+
+// ProMCHeader
+
+// optional int32 id1 = 1;
+inline bool ProMCHeader::has_id1() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void ProMCHeader::set_has_id1() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void ProMCHeader::clear_has_id1() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void ProMCHeader::clear_id1() {
+  id1_ = 0;
+  clear_has_id1();
+}
+inline ::google::protobuf::int32 ProMCHeader::id1() const {
+  return id1_;
+}
+inline void ProMCHeader::set_id1(::google::protobuf::int32 value) {
+  set_has_id1();
+  id1_ = value;
+}
+
+// optional int32 id2 = 2;
+inline bool ProMCHeader::has_id2() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void ProMCHeader::set_has_id2() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void ProMCHeader::clear_has_id2() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void ProMCHeader::clear_id2() {
+  id2_ = 0;
+  clear_has_id2();
+}
+inline ::google::protobuf::int32 ProMCHeader::id2() const {
+  return id2_;
+}
+inline void ProMCHeader::set_id2(::google::protobuf::int32 value) {
+  set_has_id2();
+  id2_ = value;
+}
+
+// optional int32 pdf_id1 = 3;
+inline bool ProMCHeader::has_pdf_id1() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void ProMCHeader::set_has_pdf_id1() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void ProMCHeader::clear_has_pdf_id1() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void ProMCHeader::clear_pdf_id1() {
+  pdf_id1_ = 0;
+  clear_has_pdf_id1();
+}
+inline ::google::protobuf::int32 ProMCHeader::pdf_id1() const {
+  return pdf_id1_;
+}
+inline void ProMCHeader::set_pdf_id1(::google::protobuf::int32 value) {
+  set_has_pdf_id1();
+  pdf_id1_ = value;
+}
+
+// optional int32 pdf_id2 = 4;
+inline bool ProMCHeader::has_pdf_id2() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+inline void ProMCHeader::set_has_pdf_id2() {
+  _has_bits_[0] |= 0x00000008u;
+}
+inline void ProMCHeader::clear_has_pdf_id2() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+inline void ProMCHeader::clear_pdf_id2() {
+  pdf_id2_ = 0;
+  clear_has_pdf_id2();
+}
+inline ::google::protobuf::int32 ProMCHeader::pdf_id2() const {
+  return pdf_id2_;
+}
+inline void ProMCHeader::set_pdf_id2(::google::protobuf::int32 value) {
+  set_has_pdf_id2();
+  pdf_id2_ = value;
+}
+
+// optional double x1 = 5;
+inline bool ProMCHeader::has_x1() const {
+  return (_has_bits_[0] & 0x00000010u) != 0;
+}
+inline void ProMCHeader::set_has_x1() {
+  _has_bits_[0] |= 0x00000010u;
+}
+inline void ProMCHeader::clear_has_x1() {
+  _has_bits_[0] &= ~0x00000010u;
+}
+inline void ProMCHeader::clear_x1() {
+  x1_ = 0;
+  clear_has_x1();
+}
+inline double ProMCHeader::x1() const {
+  return x1_;
+}
+inline void ProMCHeader::set_x1(double value) {
+  set_has_x1();
+  x1_ = value;
+}
+
+// optional double x2 = 6;
+inline bool ProMCHeader::has_x2() const {
+  return (_has_bits_[0] & 0x00000020u) != 0;
+}
+inline void ProMCHeader::set_has_x2() {
+  _has_bits_[0] |= 0x00000020u;
+}
+inline void ProMCHeader::clear_has_x2() {
+  _has_bits_[0] &= ~0x00000020u;
+}
+inline void ProMCHeader::clear_x2() {
+  x2_ = 0;
+  clear_has_x2();
+}
+inline double ProMCHeader::x2() const {
+  return x2_;
+}
+inline void ProMCHeader::set_x2(double value) {
+  set_has_x2();
+  x2_ = value;
+}
+
+// optional double scalepdf = 7;
+inline bool ProMCHeader::has_scalepdf() const {
+  return (_has_bits_[0] & 0x00000040u) != 0;
+}
+inline void ProMCHeader::set_has_scalepdf() {
+  _has_bits_[0] |= 0x00000040u;
+}
+inline void ProMCHeader::clear_has_scalepdf() {
+  _has_bits_[0] &= ~0x00000040u;
+}
+inline void ProMCHeader::clear_scalepdf() {
+  scalepdf_ = 0;
+  clear_has_scalepdf();
+}
+inline double ProMCHeader::scalepdf() const {
+  return scalepdf_;
+}
+inline void ProMCHeader::set_scalepdf(double value) {
+  set_has_scalepdf();
+  scalepdf_ = value;
+}
+
+// optional int32 pdf1 = 8;
+inline bool ProMCHeader::has_pdf1() const {
+  return (_has_bits_[0] & 0x00000080u) != 0;
+}
+inline void ProMCHeader::set_has_pdf1() {
+  _has_bits_[0] |= 0x00000080u;
+}
+inline void ProMCHeader::clear_has_pdf1() {
+  _has_bits_[0] &= ~0x00000080u;
+}
+inline void ProMCHeader::clear_pdf1() {
+  pdf1_ = 0;
+  clear_has_pdf1();
+}
+inline ::google::protobuf::int32 ProMCHeader::pdf1() const {
+  return pdf1_;
+}
+inline void ProMCHeader::set_pdf1(::google::protobuf::int32 value) {
+  set_has_pdf1();
+  pdf1_ = value;
+}
+
+// optional int32 pdf2 = 9;
+inline bool ProMCHeader::has_pdf2() const {
+  return (_has_bits_[0] & 0x00000100u) != 0;
+}
+inline void ProMCHeader::set_has_pdf2() {
+  _has_bits_[0] |= 0x00000100u;
+}
+inline void ProMCHeader::clear_has_pdf2() {
+  _has_bits_[0] &= ~0x00000100u;
+}
+inline void ProMCHeader::clear_pdf2() {
+  pdf2_ = 0;
+  clear_has_pdf2();
+}
+inline ::google::protobuf::int32 ProMCHeader::pdf2() const {
+  return pdf2_;
+}
+inline void ProMCHeader::set_pdf2(::google::protobuf::int32 value) {
+  set_has_pdf2();
+  pdf2_ = value;
+}
+
+// optional double eCM = 10;
+inline bool ProMCHeader::has_ecm() const {
+  return (_has_bits_[0] & 0x00000200u) != 0;
+}
+inline void ProMCHeader::set_has_ecm() {
+  _has_bits_[0] |= 0x00000200u;
+}
+inline void ProMCHeader::clear_has_ecm() {
+  _has_bits_[0] &= ~0x00000200u;
+}
+inline void ProMCHeader::clear_ecm() {
+  ecm_ = 0;
+  clear_has_ecm();
+}
+inline double ProMCHeader::ecm() const {
+  return ecm_;
+}
+inline void ProMCHeader::set_ecm(double value) {
+  set_has_ecm();
+  ecm_ = value;
+}
+
+// optional double s = 11;
+inline bool ProMCHeader::has_s() const {
+  return (_has_bits_[0] & 0x00000400u) != 0;
+}
+inline void ProMCHeader::set_has_s() {
+  _has_bits_[0] |= 0x00000400u;
+}
+inline void ProMCHeader::clear_has_s() {
+  _has_bits_[0] &= ~0x00000400u;
+}
+inline void ProMCHeader::clear_s() {
+  s_ = 0;
+  clear_has_s();
+}
+inline double ProMCHeader::s() const {
+  return s_;
+}
+inline void ProMCHeader::set_s(double value) {
+  set_has_s();
+  s_ = value;
+}
+
+// optional string name = 12;
+inline bool ProMCHeader::has_name() const {
+  return (_has_bits_[0] & 0x00000800u) != 0;
+}
+inline void ProMCHeader::set_has_name() {
+  _has_bits_[0] |= 0x00000800u;
+}
+inline void ProMCHeader::clear_has_name() {
+  _has_bits_[0] &= ~0x00000800u;
+}
+inline void ProMCHeader::clear_name() {
+  if (name_ != &::google::protobuf::internal::kEmptyString) {
+    name_->clear();
+  }
+  clear_has_name();
+}
+inline const ::std::string& ProMCHeader::name() const {
+  return *name_;
+}
+inline void ProMCHeader::set_name(const ::std::string& value) {
+  set_has_name();
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
+    name_ = new ::std::string;
+  }
+  name_->assign(value);
+}
+inline void ProMCHeader::set_name(const char* value) {
+  set_has_name();
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
+    name_ = new ::std::string;
+  }
+  name_->assign(value);
+}
+inline void ProMCHeader::set_name(const char* value, size_t size) {
+  set_has_name();
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
+    name_ = new ::std::string;
+  }
+  name_->assign(reinterpret_cast<const char*>(value), size);
+}
+inline ::std::string* ProMCHeader::mutable_name() {
+  set_has_name();
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
+    name_ = new ::std::string;
+  }
+  return name_;
+}
+inline ::std::string* ProMCHeader::release_name() {
+  clear_has_name();
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
+    return NULL;
+  } else {
+    ::std::string* temp = name_;
+    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+    return temp;
+  }
+}
+inline void ProMCHeader::set_allocated_name(::std::string* name) {
+  if (name_ != &::google::protobuf::internal::kEmptyString) {
+    delete name_;
+  }
+  if (name) {
+    set_has_name();
+    name_ = name;
+  } else {
+    clear_has_name();
+    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  }
+}
+
+// optional int32 code = 13;
+inline bool ProMCHeader::has_code() const {
+  return (_has_bits_[0] & 0x00001000u) != 0;
+}
+inline void ProMCHeader::set_has_code() {
+  _has_bits_[0] |= 0x00001000u;
+}
+inline void ProMCHeader::clear_has_code() {
+  _has_bits_[0] &= ~0x00001000u;
+}
+inline void ProMCHeader::clear_code() {
+  code_ = 0;
+  clear_has_code();
+}
+inline ::google::protobuf::int32 ProMCHeader::code() const {
+  return code_;
+}
+inline void ProMCHeader::set_code(::google::protobuf::int32 value) {
+  set_has_code();
+  code_ = value;
+}
+
+// optional double cross_section = 14;
+inline bool ProMCHeader::has_cross_section() const {
+  return (_has_bits_[0] & 0x00002000u) != 0;
+}
+inline void ProMCHeader::set_has_cross_section() {
+  _has_bits_[0] |= 0x00002000u;
+}
+inline void ProMCHeader::clear_has_cross_section() {
+  _has_bits_[0] &= ~0x00002000u;
+}
+inline void ProMCHeader::clear_cross_section() {
+  cross_section_ = 0;
+  clear_has_cross_section();
+}
+inline double ProMCHeader::cross_section() const {
+  return cross_section_;
+}
+inline void ProMCHeader::set_cross_section(double value) {
+  set_has_cross_section();
+  cross_section_ = value;
+}
+
+// optional double cross_section_error = 15;
+inline bool ProMCHeader::has_cross_section_error() const {
+  return (_has_bits_[0] & 0x00004000u) != 0;
+}
+inline void ProMCHeader::set_has_cross_section_error() {
+  _has_bits_[0] |= 0x00004000u;
+}
+inline void ProMCHeader::clear_has_cross_section_error() {
+  _has_bits_[0] &= ~0x00004000u;
+}
+inline void ProMCHeader::clear_cross_section_error() {
+  cross_section_error_ = 0;
+  clear_has_cross_section_error();
+}
+inline double ProMCHeader::cross_section_error() const {
+  return cross_section_error_;
+}
+inline void ProMCHeader::set_cross_section_error(double value) {
+  set_has_cross_section_error();
+  cross_section_error_ = value;
+}
+
+// optional int32 MomentumUnit = 16;
+inline bool ProMCHeader::has_momentumunit() const {
+  return (_has_bits_[0] & 0x00008000u) != 0;
+}
+inline void ProMCHeader::set_has_momentumunit() {
+  _has_bits_[0] |= 0x00008000u;
+}
+inline void ProMCHeader::clear_has_momentumunit() {
+  _has_bits_[0] &= ~0x00008000u;
+}
+inline void ProMCHeader::clear_momentumunit() {
+  momentumunit_ = 0;
+  clear_has_momentumunit();
+}
+inline ::google::protobuf::int32 ProMCHeader::momentumunit() const {
+  return momentumunit_;
+}
+inline void ProMCHeader::set_momentumunit(::google::protobuf::int32 value) {
+  set_has_momentumunit();
+  momentumunit_ = value;
+}
+
+// optional int32 LengthUnit = 17;
+inline bool ProMCHeader::has_lengthunit() const {
+  return (_has_bits_[0] & 0x00010000u) != 0;
+}
+inline void ProMCHeader::set_has_lengthunit() {
+  _has_bits_[0] |= 0x00010000u;
+}
+inline void ProMCHeader::clear_has_lengthunit() {
+  _has_bits_[0] &= ~0x00010000u;
+}
+inline void ProMCHeader::clear_lengthunit() {
+  lengthunit_ = 0;
+  clear_has_lengthunit();
+}
+inline ::google::protobuf::int32 ProMCHeader::lengthunit() const {
+  return lengthunit_;
+}
+inline void ProMCHeader::set_lengthunit(::google::protobuf::int32 value) {
+  set_has_lengthunit();
+  lengthunit_ = value;
+}
+
+// optional string NameMomentumUnit = 18;
+inline bool ProMCHeader::has_namemomentumunit() const {
+  return (_has_bits_[0] & 0x00020000u) != 0;
+}
+inline void ProMCHeader::set_has_namemomentumunit() {
+  _has_bits_[0] |= 0x00020000u;
+}
+inline void ProMCHeader::clear_has_namemomentumunit() {
+  _has_bits_[0] &= ~0x00020000u;
+}
+inline void ProMCHeader::clear_namemomentumunit() {
+  if (namemomentumunit_ != &::google::protobuf::internal::kEmptyString) {
+    namemomentumunit_->clear();
+  }
+  clear_has_namemomentumunit();
+}
+inline const ::std::string& ProMCHeader::namemomentumunit() const {
+  return *namemomentumunit_;
+}
+inline void ProMCHeader::set_namemomentumunit(const ::std::string& value) {
+  set_has_namemomentumunit();
+  if (namemomentumunit_ == &::google::protobuf::internal::kEmptyString) {
+    namemomentumunit_ = new ::std::string;
+  }
+  namemomentumunit_->assign(value);
+}
+inline void ProMCHeader::set_namemomentumunit(const char* value) {
+  set_has_namemomentumunit();
+  if (namemomentumunit_ == &::google::protobuf::internal::kEmptyString) {
+    namemomentumunit_ = new ::std::string;
+  }
+  namemomentumunit_->assign(value);
+}
+inline void ProMCHeader::set_namemomentumunit(const char* value, size_t size) {
+  set_has_namemomentumunit();
+  if (namemomentumunit_ == &::google::protobuf::internal::kEmptyString) {
+    namemomentumunit_ = new ::std::string;
+  }
+  namemomentumunit_->assign(reinterpret_cast<const char*>(value), size);
+}
+inline ::std::string* ProMCHeader::mutable_namemomentumunit() {
+  set_has_namemomentumunit();
+  if (namemomentumunit_ == &::google::protobuf::internal::kEmptyString) {
+    namemomentumunit_ = new ::std::string;
+  }
+  return namemomentumunit_;
+}
+inline ::std::string* ProMCHeader::release_namemomentumunit() {
+  clear_has_namemomentumunit();
+  if (namemomentumunit_ == &::google::protobuf::internal::kEmptyString) {
+    return NULL;
+  } else {
+    ::std::string* temp = namemomentumunit_;
+    namemomentumunit_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+    return temp;
+  }
+}
+inline void ProMCHeader::set_allocated_namemomentumunit(::std::string* namemomentumunit) {
+  if (namemomentumunit_ != &::google::protobuf::internal::kEmptyString) {
+    delete namemomentumunit_;
+  }
+  if (namemomentumunit) {
+    set_has_namemomentumunit();
+    namemomentumunit_ = namemomentumunit;
+  } else {
+    clear_has_namemomentumunit();
+    namemomentumunit_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  }
+}
+
+// optional string NameLengthUnit = 19;
+inline bool ProMCHeader::has_namelengthunit() const {
+  return (_has_bits_[0] & 0x00040000u) != 0;
+}
+inline void ProMCHeader::set_has_namelengthunit() {
+  _has_bits_[0] |= 0x00040000u;
+}
+inline void ProMCHeader::clear_has_namelengthunit() {
+  _has_bits_[0] &= ~0x00040000u;
+}
+inline void ProMCHeader::clear_namelengthunit() {
+  if (namelengthunit_ != &::google::protobuf::internal::kEmptyString) {
+    namelengthunit_->clear();
+  }
+  clear_has_namelengthunit();
+}
+inline const ::std::string& ProMCHeader::namelengthunit() const {
+  return *namelengthunit_;
+}
+inline void ProMCHeader::set_namelengthunit(const ::std::string& value) {
+  set_has_namelengthunit();
+  if (namelengthunit_ == &::google::protobuf::internal::kEmptyString) {
+    namelengthunit_ = new ::std::string;
+  }
+  namelengthunit_->assign(value);
+}
+inline void ProMCHeader::set_namelengthunit(const char* value) {
+  set_has_namelengthunit();
+  if (namelengthunit_ == &::google::protobuf::internal::kEmptyString) {
+    namelengthunit_ = new ::std::string;
+  }
+  namelengthunit_->assign(value);
+}
+inline void ProMCHeader::set_namelengthunit(const char* value, size_t size) {
+  set_has_namelengthunit();
+  if (namelengthunit_ == &::google::protobuf::internal::kEmptyString) {
+    namelengthunit_ = new ::std::string;
+  }
+  namelengthunit_->assign(reinterpret_cast<const char*>(value), size);
+}
+inline ::std::string* ProMCHeader::mutable_namelengthunit() {
+  set_has_namelengthunit();
+  if (namelengthunit_ == &::google::protobuf::internal::kEmptyString) {
+    namelengthunit_ = new ::std::string;
+  }
+  return namelengthunit_;
+}
+inline ::std::string* ProMCHeader::release_namelengthunit() {
+  clear_has_namelengthunit();
+  if (namelengthunit_ == &::google::protobuf::internal::kEmptyString) {
+    return NULL;
+  } else {
+    ::std::string* temp = namelengthunit_;
+    namelengthunit_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+    return temp;
+  }
+}
+inline void ProMCHeader::set_allocated_namelengthunit(::std::string* namelengthunit) {
+  if (namelengthunit_ != &::google::protobuf::internal::kEmptyString) {
+    delete namelengthunit_;
+  }
+  if (namelengthunit) {
+    set_has_namelengthunit();
+    namelengthunit_ = namelengthunit;
+  } else {
+    clear_has_namelengthunit();
+    namelengthunit_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  }
+}
+
+// optional double weight = 20;
+inline bool ProMCHeader::has_weight() const {
+  return (_has_bits_[0] & 0x00080000u) != 0;
+}
+inline void ProMCHeader::set_has_weight() {
+  _has_bits_[0] |= 0x00080000u;
+}
+inline void ProMCHeader::clear_has_weight() {
+  _has_bits_[0] &= ~0x00080000u;
+}
+inline void ProMCHeader::clear_weight() {
+  weight_ = 0;
+  clear_has_weight();
+}
+inline double ProMCHeader::weight() const {
+  return weight_;
+}
+inline void ProMCHeader::set_weight(double value) {
+  set_has_weight();
+  weight_ = value;
+}
+
+// optional double requested_events = 21;
+inline bool ProMCHeader::has_requested_events() const {
+  return (_has_bits_[0] & 0x00100000u) != 0;
+}
+inline void ProMCHeader::set_has_requested_events() {
+  _has_bits_[0] |= 0x00100000u;
+}
+inline void ProMCHeader::clear_has_requested_events() {
+  _has_bits_[0] &= ~0x00100000u;
+}
+inline void ProMCHeader::clear_requested_events() {
+  requested_events_ = 0;
+  clear_has_requested_events();
+}
+inline double ProMCHeader::requested_events() const {
+  return requested_events_;
+}
+inline void ProMCHeader::set_requested_events(double value) {
+  set_has_requested_events();
+  requested_events_ = value;
+}
+
+// repeated .promc.ProMCHeader.ParticleData particleData = 30;
+inline int ProMCHeader::particledata_size() const {
+  return particledata_.size();
+}
+inline void ProMCHeader::clear_particledata() {
+  particledata_.Clear();
+}
+inline const ::promc::ProMCHeader_ParticleData& ProMCHeader::particledata(int index) const {
+  return particledata_.Get(index);
+}
+inline ::promc::ProMCHeader_ParticleData* ProMCHeader::mutable_particledata(int index) {
+  return particledata_.Mutable(index);
+}
+inline ::promc::ProMCHeader_ParticleData* ProMCHeader::add_particledata() {
+  return particledata_.Add();
+}
+inline const ::google::protobuf::RepeatedPtrField< ::promc::ProMCHeader_ParticleData >&
+ProMCHeader::particledata() const {
+  return particledata_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::promc::ProMCHeader_ParticleData >*
+ProMCHeader::mutable_particledata() {
+  return &particledata_;
+}
+
+// repeated .promc.ProMCHeader.MetaInt metaInt = 31;
+inline int ProMCHeader::metaint_size() const {
+  return metaint_.size();
+}
+inline void ProMCHeader::clear_metaint() {
+  metaint_.Clear();
+}
+inline const ::promc::ProMCHeader_MetaInt& ProMCHeader::metaint(int index) const {
+  return metaint_.Get(index);
+}
+inline ::promc::ProMCHeader_MetaInt* ProMCHeader::mutable_metaint(int index) {
+  return metaint_.Mutable(index);
+}
+inline ::promc::ProMCHeader_MetaInt* ProMCHeader::add_metaint() {
+  return metaint_.Add();
+}
+inline const ::google::protobuf::RepeatedPtrField< ::promc::ProMCHeader_MetaInt >&
+ProMCHeader::metaint() const {
+  return metaint_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::promc::ProMCHeader_MetaInt >*
+ProMCHeader::mutable_metaint() {
+  return &metaint_;
+}
+
+// repeated .promc.ProMCHeader.MetaFloat metaFloat = 32;
+inline int ProMCHeader::metafloat_size() const {
+  return metafloat_.size();
+}
+inline void ProMCHeader::clear_metafloat() {
+  metafloat_.Clear();
+}
+inline const ::promc::ProMCHeader_MetaFloat& ProMCHeader::metafloat(int index) const {
+  return metafloat_.Get(index);
+}
+inline ::promc::ProMCHeader_MetaFloat* ProMCHeader::mutable_metafloat(int index) {
+  return metafloat_.Mutable(index);
+}
+inline ::promc::ProMCHeader_MetaFloat* ProMCHeader::add_metafloat() {
+  return metafloat_.Add();
+}
+inline const ::google::protobuf::RepeatedPtrField< ::promc::ProMCHeader_MetaFloat >&
+ProMCHeader::metafloat() const {
+  return metafloat_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::promc::ProMCHeader_MetaFloat >*
+ProMCHeader::mutable_metafloat() {
+  return &metafloat_;
+}
+
+
+// @@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_ProMCHeader_2eproto__INCLUDED
