Index: external/ProMC/ProMCStat.pb.cc
===================================================================
--- external/ProMC/ProMCStat.pb.cc	(revision 6b9b91f918d5107900757f5c811e8cc86596d82e)
+++ external/ProMC/ProMCStat.pb.cc	(revision 6b9b91f918d5107900757f5c811e8cc86596d82e)
@@ -0,0 +1,1012 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: ProMCStat.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "ProMCStat.pb.h"
+
+#include <algorithm>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/once.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/wire_format_lite_inl.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/reflection_ops.h>
+#include <google/protobuf/wire_format.h>
+// @@protoc_insertion_point(includes)
+
+namespace promc {
+
+namespace {
+
+const ::google::protobuf::Descriptor* ProMCStat_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  ProMCStat_reflection_ = NULL;
+const ::google::protobuf::Descriptor* ProMCStat_ProcessData_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  ProMCStat_ProcessData_reflection_ = NULL;
+
+}  // namespace
+
+
+void protobuf_AssignDesc_ProMCStat_2eproto() {
+  protobuf_AddDesc_ProMCStat_2eproto();
+  const ::google::protobuf::FileDescriptor* file =
+    ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
+      "ProMCStat.proto");
+  GOOGLE_CHECK(file != NULL);
+  ProMCStat_descriptor_ = file->message_type(0);
+  static const int ProMCStat_offsets_[9] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCStat, nevents_requested_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCStat, nevents_failed_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCStat, cross_section_accumulated_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCStat, cross_section_error_accumulated_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCStat, luminosity_accumulated_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCStat, ntried_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCStat, nselected_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCStat, naccepted_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCStat, processdata_),
+  };
+  ProMCStat_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      ProMCStat_descriptor_,
+      ProMCStat::default_instance_,
+      ProMCStat_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCStat, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCStat, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(ProMCStat));
+  ProMCStat_ProcessData_descriptor_ = ProMCStat_descriptor_->nested_type(0);
+  static const int ProMCStat_ProcessData_offsets_[4] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCStat_ProcessData, id_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCStat_ProcessData, cross_section_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCStat_ProcessData, cross_section_error_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCStat_ProcessData, name_),
+  };
+  ProMCStat_ProcessData_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      ProMCStat_ProcessData_descriptor_,
+      ProMCStat_ProcessData::default_instance_,
+      ProMCStat_ProcessData_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCStat_ProcessData, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCStat_ProcessData, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(ProMCStat_ProcessData));
+}
+
+namespace {
+
+GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
+inline void protobuf_AssignDescriptorsOnce() {
+  ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
+                 &protobuf_AssignDesc_ProMCStat_2eproto);
+}
+
+void protobuf_RegisterTypes(const ::std::string&) {
+  protobuf_AssignDescriptorsOnce();
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    ProMCStat_descriptor_, &ProMCStat::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    ProMCStat_ProcessData_descriptor_, &ProMCStat_ProcessData::default_instance());
+}
+
+}  // namespace
+
+void protobuf_ShutdownFile_ProMCStat_2eproto() {
+  delete ProMCStat::default_instance_;
+  delete ProMCStat_reflection_;
+  delete ProMCStat_ProcessData::default_instance_;
+  delete ProMCStat_ProcessData_reflection_;
+}
+
+void protobuf_AddDesc_ProMCStat_2eproto() {
+  static bool already_here = false;
+  if (already_here) return;
+  already_here = true;
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+    "\n\017ProMCStat.proto\022\005promc\"\360\002\n\tProMCStat\022\031"
+    "\n\021nevents_requested\030\001 \001(\005\022\026\n\016nevents_fai"
+    "led\030\002 \001(\005\022!\n\031cross_section_accumulated\030\003"
+    " \001(\001\022\'\n\037cross_section_error_accumulated\030"
+    "\004 \001(\001\022\036\n\026luminosity_accumulated\030\005 \001(\001\022\016\n"
+    "\006nTried\030\006 \001(\005\022\021\n\tnSelected\030\007 \001(\005\022\021\n\tnAcc"
+    "epted\030\010 \001(\005\0221\n\013processData\030\n \003(\0132\034.promc"
+    ".ProMCStat.ProcessData\032[\n\013ProcessData\022\n\n"
+    "\002id\030\001 \002(\021\022\025\n\rcross_section\030\002 \002(\001\022\033\n\023cros"
+    "s_section_error\030\003 \002(\001\022\014\n\004name\030\004 \002(\tB\031\n\010p"
+    "romc.ioB\rProMCStatFile", 422);
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+    "ProMCStat.proto", &protobuf_RegisterTypes);
+  ProMCStat::default_instance_ = new ProMCStat();
+  ProMCStat_ProcessData::default_instance_ = new ProMCStat_ProcessData();
+  ProMCStat::default_instance_->InitAsDefaultInstance();
+  ProMCStat_ProcessData::default_instance_->InitAsDefaultInstance();
+  ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_ProMCStat_2eproto);
+}
+
+// Force AddDescriptors() to be called at static initialization time.
+struct StaticDescriptorInitializer_ProMCStat_2eproto {
+  StaticDescriptorInitializer_ProMCStat_2eproto() {
+    protobuf_AddDesc_ProMCStat_2eproto();
+  }
+} static_descriptor_initializer_ProMCStat_2eproto_;
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int ProMCStat_ProcessData::kIdFieldNumber;
+const int ProMCStat_ProcessData::kCrossSectionFieldNumber;
+const int ProMCStat_ProcessData::kCrossSectionErrorFieldNumber;
+const int ProMCStat_ProcessData::kNameFieldNumber;
+#endif  // !_MSC_VER
+
+ProMCStat_ProcessData::ProMCStat_ProcessData()
+  : ::google::protobuf::Message() {
+  SharedCtor();
+}
+
+void ProMCStat_ProcessData::InitAsDefaultInstance() {
+}
+
+ProMCStat_ProcessData::ProMCStat_ProcessData(const ProMCStat_ProcessData& from)
+  : ::google::protobuf::Message() {
+  SharedCtor();
+  MergeFrom(from);
+}
+
+void ProMCStat_ProcessData::SharedCtor() {
+  _cached_size_ = 0;
+  id_ = 0;
+  cross_section_ = 0;
+  cross_section_error_ = 0;
+  name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+ProMCStat_ProcessData::~ProMCStat_ProcessData() {
+  SharedDtor();
+}
+
+void ProMCStat_ProcessData::SharedDtor() {
+  if (name_ != &::google::protobuf::internal::kEmptyString) {
+    delete name_;
+  }
+  if (this != default_instance_) {
+  }
+}
+
+void ProMCStat_ProcessData::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* ProMCStat_ProcessData::descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return ProMCStat_ProcessData_descriptor_;
+}
+
+const ProMCStat_ProcessData& ProMCStat_ProcessData::default_instance() {
+  if (default_instance_ == NULL) protobuf_AddDesc_ProMCStat_2eproto();
+  return *default_instance_;
+}
+
+ProMCStat_ProcessData* ProMCStat_ProcessData::default_instance_ = NULL;
+
+ProMCStat_ProcessData* ProMCStat_ProcessData::New() const {
+  return new ProMCStat_ProcessData;
+}
+
+void ProMCStat_ProcessData::Clear() {
+  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    id_ = 0;
+    cross_section_ = 0;
+    cross_section_error_ = 0;
+    if (has_name()) {
+      if (name_ != &::google::protobuf::internal::kEmptyString) {
+        name_->clear();
+      }
+    }
+  }
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+  mutable_unknown_fields()->Clear();
+}
+
+bool ProMCStat_ProcessData::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
+  ::google::protobuf::uint32 tag;
+  while ((tag = input->ReadTag()) != 0) {
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required sint32 id = 1;
+      case 1: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_SINT32>(
+                 input, &id_)));
+          set_has_id();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(17)) goto parse_cross_section;
+        break;
+      }
+
+      // required double cross_section = 2;
+      case 2: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED64) {
+         parse_cross_section:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
+                 input, &cross_section_)));
+          set_has_cross_section();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(25)) goto parse_cross_section_error;
+        break;
+      }
+
+      // required double cross_section_error = 3;
+      case 3: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED64) {
+         parse_cross_section_error:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
+                 input, &cross_section_error_)));
+          set_has_cross_section_error();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(34)) goto parse_name;
+        break;
+      }
+
+      // required string name = 4;
+      case 4: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_name:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_name()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+            this->name().data(), this->name().length(),
+            ::google::protobuf::internal::WireFormat::PARSE);
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectAtEnd()) return true;
+        break;
+      }
+
+      default: {
+      handle_uninterpreted:
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          return true;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+  return true;
+#undef DO_
+}
+
+void ProMCStat_ProcessData::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // required sint32 id = 1;
+  if (has_id()) {
+    ::google::protobuf::internal::WireFormatLite::WriteSInt32(1, this->id(), output);
+  }
+
+  // required double cross_section = 2;
+  if (has_cross_section()) {
+    ::google::protobuf::internal::WireFormatLite::WriteDouble(2, this->cross_section(), output);
+  }
+
+  // required double cross_section_error = 3;
+  if (has_cross_section_error()) {
+    ::google::protobuf::internal::WireFormatLite::WriteDouble(3, this->cross_section_error(), output);
+  }
+
+  // required string name = 4;
+  if (has_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->name().data(), this->name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    ::google::protobuf::internal::WireFormatLite::WriteString(
+      4, this->name(), output);
+  }
+
+  if (!unknown_fields().empty()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+}
+
+::google::protobuf::uint8* ProMCStat_ProcessData::SerializeWithCachedSizesToArray(
+    ::google::protobuf::uint8* target) const {
+  // required sint32 id = 1;
+  if (has_id()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteSInt32ToArray(1, this->id(), target);
+  }
+
+  // required double cross_section = 2;
+  if (has_cross_section()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(2, this->cross_section(), target);
+  }
+
+  // required double cross_section_error = 3;
+  if (has_cross_section_error()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(3, this->cross_section_error(), target);
+  }
+
+  // required string name = 4;
+  if (has_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->name().data(), this->name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        4, this->name(), target);
+  }
+
+  if (!unknown_fields().empty()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  return target;
+}
+
+int ProMCStat_ProcessData::ByteSize() const {
+  int total_size = 0;
+
+  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    // required sint32 id = 1;
+    if (has_id()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::SInt32Size(
+          this->id());
+    }
+
+    // required double cross_section = 2;
+    if (has_cross_section()) {
+      total_size += 1 + 8;
+    }
+
+    // required double cross_section_error = 3;
+    if (has_cross_section_error()) {
+      total_size += 1 + 8;
+    }
+
+    // required string name = 4;
+    if (has_name()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::StringSize(
+          this->name());
+    }
+
+  }
+  if (!unknown_fields().empty()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = total_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void ProMCStat_ProcessData::MergeFrom(const ::google::protobuf::Message& from) {
+  GOOGLE_CHECK_NE(&from, this);
+  const ProMCStat_ProcessData* source =
+    ::google::protobuf::internal::dynamic_cast_if_available<const ProMCStat_ProcessData*>(
+      &from);
+  if (source == NULL) {
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+    MergeFrom(*source);
+  }
+}
+
+void ProMCStat_ProcessData::MergeFrom(const ProMCStat_ProcessData& from) {
+  GOOGLE_CHECK_NE(&from, this);
+  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    if (from.has_id()) {
+      set_id(from.id());
+    }
+    if (from.has_cross_section()) {
+      set_cross_section(from.cross_section());
+    }
+    if (from.has_cross_section_error()) {
+      set_cross_section_error(from.cross_section_error());
+    }
+    if (from.has_name()) {
+      set_name(from.name());
+    }
+  }
+  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
+}
+
+void ProMCStat_ProcessData::CopyFrom(const ::google::protobuf::Message& from) {
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void ProMCStat_ProcessData::CopyFrom(const ProMCStat_ProcessData& from) {
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool ProMCStat_ProcessData::IsInitialized() const {
+  if ((_has_bits_[0] & 0x0000000f) != 0x0000000f) return false;
+
+  return true;
+}
+
+void ProMCStat_ProcessData::Swap(ProMCStat_ProcessData* other) {
+  if (other != this) {
+    std::swap(id_, other->id_);
+    std::swap(cross_section_, other->cross_section_);
+    std::swap(cross_section_error_, other->cross_section_error_);
+    std::swap(name_, other->name_);
+    std::swap(_has_bits_[0], other->_has_bits_[0]);
+    _unknown_fields_.Swap(&other->_unknown_fields_);
+    std::swap(_cached_size_, other->_cached_size_);
+  }
+}
+
+::google::protobuf::Metadata ProMCStat_ProcessData::GetMetadata() const {
+  protobuf_AssignDescriptorsOnce();
+  ::google::protobuf::Metadata metadata;
+  metadata.descriptor = ProMCStat_ProcessData_descriptor_;
+  metadata.reflection = ProMCStat_ProcessData_reflection_;
+  return metadata;
+}
+
+
+// -------------------------------------------------------------------
+
+#ifndef _MSC_VER
+const int ProMCStat::kNeventsRequestedFieldNumber;
+const int ProMCStat::kNeventsFailedFieldNumber;
+const int ProMCStat::kCrossSectionAccumulatedFieldNumber;
+const int ProMCStat::kCrossSectionErrorAccumulatedFieldNumber;
+const int ProMCStat::kLuminosityAccumulatedFieldNumber;
+const int ProMCStat::kNTriedFieldNumber;
+const int ProMCStat::kNSelectedFieldNumber;
+const int ProMCStat::kNAcceptedFieldNumber;
+const int ProMCStat::kProcessDataFieldNumber;
+#endif  // !_MSC_VER
+
+ProMCStat::ProMCStat()
+  : ::google::protobuf::Message() {
+  SharedCtor();
+}
+
+void ProMCStat::InitAsDefaultInstance() {
+}
+
+ProMCStat::ProMCStat(const ProMCStat& from)
+  : ::google::protobuf::Message() {
+  SharedCtor();
+  MergeFrom(from);
+}
+
+void ProMCStat::SharedCtor() {
+  _cached_size_ = 0;
+  nevents_requested_ = 0;
+  nevents_failed_ = 0;
+  cross_section_accumulated_ = 0;
+  cross_section_error_accumulated_ = 0;
+  luminosity_accumulated_ = 0;
+  ntried_ = 0;
+  nselected_ = 0;
+  naccepted_ = 0;
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+ProMCStat::~ProMCStat() {
+  SharedDtor();
+}
+
+void ProMCStat::SharedDtor() {
+  if (this != default_instance_) {
+  }
+}
+
+void ProMCStat::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* ProMCStat::descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return ProMCStat_descriptor_;
+}
+
+const ProMCStat& ProMCStat::default_instance() {
+  if (default_instance_ == NULL) protobuf_AddDesc_ProMCStat_2eproto();
+  return *default_instance_;
+}
+
+ProMCStat* ProMCStat::default_instance_ = NULL;
+
+ProMCStat* ProMCStat::New() const {
+  return new ProMCStat;
+}
+
+void ProMCStat::Clear() {
+  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    nevents_requested_ = 0;
+    nevents_failed_ = 0;
+    cross_section_accumulated_ = 0;
+    cross_section_error_accumulated_ = 0;
+    luminosity_accumulated_ = 0;
+    ntried_ = 0;
+    nselected_ = 0;
+    naccepted_ = 0;
+  }
+  processdata_.Clear();
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+  mutable_unknown_fields()->Clear();
+}
+
+bool ProMCStat::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
+  ::google::protobuf::uint32 tag;
+  while ((tag = input->ReadTag()) != 0) {
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // optional int32 nevents_requested = 1;
+      case 1: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &nevents_requested_)));
+          set_has_nevents_requested();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(16)) goto parse_nevents_failed;
+        break;
+      }
+
+      // optional int32 nevents_failed = 2;
+      case 2: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_nevents_failed:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &nevents_failed_)));
+          set_has_nevents_failed();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(25)) goto parse_cross_section_accumulated;
+        break;
+      }
+
+      // optional double cross_section_accumulated = 3;
+      case 3: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED64) {
+         parse_cross_section_accumulated:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
+                 input, &cross_section_accumulated_)));
+          set_has_cross_section_accumulated();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(33)) goto parse_cross_section_error_accumulated;
+        break;
+      }
+
+      // optional double cross_section_error_accumulated = 4;
+      case 4: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED64) {
+         parse_cross_section_error_accumulated:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
+                 input, &cross_section_error_accumulated_)));
+          set_has_cross_section_error_accumulated();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(41)) goto parse_luminosity_accumulated;
+        break;
+      }
+
+      // optional double luminosity_accumulated = 5;
+      case 5: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED64) {
+         parse_luminosity_accumulated:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
+                 input, &luminosity_accumulated_)));
+          set_has_luminosity_accumulated();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(48)) goto parse_nTried;
+        break;
+      }
+
+      // optional int32 nTried = 6;
+      case 6: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_nTried:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &ntried_)));
+          set_has_ntried();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(56)) goto parse_nSelected;
+        break;
+      }
+
+      // optional int32 nSelected = 7;
+      case 7: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_nSelected:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &nselected_)));
+          set_has_nselected();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(64)) goto parse_nAccepted;
+        break;
+      }
+
+      // optional int32 nAccepted = 8;
+      case 8: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_nAccepted:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &naccepted_)));
+          set_has_naccepted();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(82)) goto parse_processData;
+        break;
+      }
+
+      // repeated .promc.ProMCStat.ProcessData processData = 10;
+      case 10: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_processData:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+                input, add_processdata()));
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(82)) goto parse_processData;
+        if (input->ExpectAtEnd()) return true;
+        break;
+      }
+
+      default: {
+      handle_uninterpreted:
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          return true;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+  return true;
+#undef DO_
+}
+
+void ProMCStat::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // optional int32 nevents_requested = 1;
+  if (has_nevents_requested()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->nevents_requested(), output);
+  }
+
+  // optional int32 nevents_failed = 2;
+  if (has_nevents_failed()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->nevents_failed(), output);
+  }
+
+  // optional double cross_section_accumulated = 3;
+  if (has_cross_section_accumulated()) {
+    ::google::protobuf::internal::WireFormatLite::WriteDouble(3, this->cross_section_accumulated(), output);
+  }
+
+  // optional double cross_section_error_accumulated = 4;
+  if (has_cross_section_error_accumulated()) {
+    ::google::protobuf::internal::WireFormatLite::WriteDouble(4, this->cross_section_error_accumulated(), output);
+  }
+
+  // optional double luminosity_accumulated = 5;
+  if (has_luminosity_accumulated()) {
+    ::google::protobuf::internal::WireFormatLite::WriteDouble(5, this->luminosity_accumulated(), output);
+  }
+
+  // optional int32 nTried = 6;
+  if (has_ntried()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(6, this->ntried(), output);
+  }
+
+  // optional int32 nSelected = 7;
+  if (has_nselected()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(7, this->nselected(), output);
+  }
+
+  // optional int32 nAccepted = 8;
+  if (has_naccepted()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(8, this->naccepted(), output);
+  }
+
+  // repeated .promc.ProMCStat.ProcessData processData = 10;
+  for (int i = 0; i < this->processdata_size(); i++) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      10, this->processdata(i), output);
+  }
+
+  if (!unknown_fields().empty()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+}
+
+::google::protobuf::uint8* ProMCStat::SerializeWithCachedSizesToArray(
+    ::google::protobuf::uint8* target) const {
+  // optional int32 nevents_requested = 1;
+  if (has_nevents_requested()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->nevents_requested(), target);
+  }
+
+  // optional int32 nevents_failed = 2;
+  if (has_nevents_failed()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->nevents_failed(), target);
+  }
+
+  // optional double cross_section_accumulated = 3;
+  if (has_cross_section_accumulated()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(3, this->cross_section_accumulated(), target);
+  }
+
+  // optional double cross_section_error_accumulated = 4;
+  if (has_cross_section_error_accumulated()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(4, this->cross_section_error_accumulated(), target);
+  }
+
+  // optional double luminosity_accumulated = 5;
+  if (has_luminosity_accumulated()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(5, this->luminosity_accumulated(), target);
+  }
+
+  // optional int32 nTried = 6;
+  if (has_ntried()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(6, this->ntried(), target);
+  }
+
+  // optional int32 nSelected = 7;
+  if (has_nselected()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(7, this->nselected(), target);
+  }
+
+  // optional int32 nAccepted = 8;
+  if (has_naccepted()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(8, this->naccepted(), target);
+  }
+
+  // repeated .promc.ProMCStat.ProcessData processData = 10;
+  for (int i = 0; i < this->processdata_size(); i++) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      WriteMessageNoVirtualToArray(
+        10, this->processdata(i), target);
+  }
+
+  if (!unknown_fields().empty()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  return target;
+}
+
+int ProMCStat::ByteSize() const {
+  int total_size = 0;
+
+  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    // optional int32 nevents_requested = 1;
+    if (has_nevents_requested()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+          this->nevents_requested());
+    }
+
+    // optional int32 nevents_failed = 2;
+    if (has_nevents_failed()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+          this->nevents_failed());
+    }
+
+    // optional double cross_section_accumulated = 3;
+    if (has_cross_section_accumulated()) {
+      total_size += 1 + 8;
+    }
+
+    // optional double cross_section_error_accumulated = 4;
+    if (has_cross_section_error_accumulated()) {
+      total_size += 1 + 8;
+    }
+
+    // optional double luminosity_accumulated = 5;
+    if (has_luminosity_accumulated()) {
+      total_size += 1 + 8;
+    }
+
+    // optional int32 nTried = 6;
+    if (has_ntried()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+          this->ntried());
+    }
+
+    // optional int32 nSelected = 7;
+    if (has_nselected()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+          this->nselected());
+    }
+
+    // optional int32 nAccepted = 8;
+    if (has_naccepted()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+          this->naccepted());
+    }
+
+  }
+  // repeated .promc.ProMCStat.ProcessData processData = 10;
+  total_size += 1 * this->processdata_size();
+  for (int i = 0; i < this->processdata_size(); i++) {
+    total_size +=
+      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+        this->processdata(i));
+  }
+
+  if (!unknown_fields().empty()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = total_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void ProMCStat::MergeFrom(const ::google::protobuf::Message& from) {
+  GOOGLE_CHECK_NE(&from, this);
+  const ProMCStat* source =
+    ::google::protobuf::internal::dynamic_cast_if_available<const ProMCStat*>(
+      &from);
+  if (source == NULL) {
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+    MergeFrom(*source);
+  }
+}
+
+void ProMCStat::MergeFrom(const ProMCStat& from) {
+  GOOGLE_CHECK_NE(&from, this);
+  processdata_.MergeFrom(from.processdata_);
+  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    if (from.has_nevents_requested()) {
+      set_nevents_requested(from.nevents_requested());
+    }
+    if (from.has_nevents_failed()) {
+      set_nevents_failed(from.nevents_failed());
+    }
+    if (from.has_cross_section_accumulated()) {
+      set_cross_section_accumulated(from.cross_section_accumulated());
+    }
+    if (from.has_cross_section_error_accumulated()) {
+      set_cross_section_error_accumulated(from.cross_section_error_accumulated());
+    }
+    if (from.has_luminosity_accumulated()) {
+      set_luminosity_accumulated(from.luminosity_accumulated());
+    }
+    if (from.has_ntried()) {
+      set_ntried(from.ntried());
+    }
+    if (from.has_nselected()) {
+      set_nselected(from.nselected());
+    }
+    if (from.has_naccepted()) {
+      set_naccepted(from.naccepted());
+    }
+  }
+  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
+}
+
+void ProMCStat::CopyFrom(const ::google::protobuf::Message& from) {
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void ProMCStat::CopyFrom(const ProMCStat& from) {
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool ProMCStat::IsInitialized() const {
+
+  for (int i = 0; i < processdata_size(); i++) {
+    if (!this->processdata(i).IsInitialized()) return false;
+  }
+  return true;
+}
+
+void ProMCStat::Swap(ProMCStat* other) {
+  if (other != this) {
+    std::swap(nevents_requested_, other->nevents_requested_);
+    std::swap(nevents_failed_, other->nevents_failed_);
+    std::swap(cross_section_accumulated_, other->cross_section_accumulated_);
+    std::swap(cross_section_error_accumulated_, other->cross_section_error_accumulated_);
+    std::swap(luminosity_accumulated_, other->luminosity_accumulated_);
+    std::swap(ntried_, other->ntried_);
+    std::swap(nselected_, other->nselected_);
+    std::swap(naccepted_, other->naccepted_);
+    processdata_.Swap(&other->processdata_);
+    std::swap(_has_bits_[0], other->_has_bits_[0]);
+    _unknown_fields_.Swap(&other->_unknown_fields_);
+    std::swap(_cached_size_, other->_cached_size_);
+  }
+}
+
+::google::protobuf::Metadata ProMCStat::GetMetadata() const {
+  protobuf_AssignDescriptorsOnce();
+  ::google::protobuf::Metadata metadata;
+  metadata.descriptor = ProMCStat_descriptor_;
+  metadata.reflection = ProMCStat_reflection_;
+  return metadata;
+}
+
+
+// @@protoc_insertion_point(namespace_scope)
+
+}  // namespace promc
+
+// @@protoc_insertion_point(global_scope)
