Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ CMakeLists.txt	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
@@ -7,5 +7,5 @@
 
 # Declare ROOT dependency
-find_package(ROOT COMPONENTS EG Eve GenVector Hist Physics Matrix Graf RIO Tree Gpad RGL MathCore)
+find_package(ROOT COMPONENTS EG Eve Geom Gui GuiHtml GenVector Hist Physics Matrix Graf RIO Tree Gpad RGL MathCore)
 include(${ROOT_USE_FILE})
 
Index: Makefile
===================================================================
--- Makefile	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ Makefile	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
@@ -17,23 +17,23 @@
 CXXFLAGS += $(ROOTCFLAGS) -Wno-write-strings -D_FILE_OFFSET_BITS=64 -DDROP_CGAL -I. -Iexternal -Iexternal/tcl
 DELPHES_LIBS = $(shell $(RC) --libs) -lEG $(SYSLIBS)
-DISPLAY_LIBS = $(shell $(RC) --evelibs) $(SYSLIBS)
+DISPLAY_LIBS = $(shell $(RC) --evelibs) -lGuiHtml  $(SYSLIBS)
 
 ifneq ($(CMSSW_FWLITE_INCLUDE_PATH),)
 HAS_CMSSW = true
 CXXFLAGS += -std=c++0x -I$(subst :, -I,$(CMSSW_FWLITE_INCLUDE_PATH))
-DELPHES_LIBS += -L$(subst include,lib,$(subst :, -L,$(CMSSW_FWLITE_INCLUDE_PATH)))
+OPT_LIBS += -L$(subst include,lib,$(subst :, -L,$(CMSSW_FWLITE_INCLUDE_PATH)))
 ifneq ($(CMSSW_RELEASE_BASE),)
 CXXFLAGS += -I$(CMSSW_RELEASE_BASE)/src
 endif
 ifneq ($(LD_LIBRARY_PATH),)
-DELPHES_LIBS += -L$(subst include,lib,$(subst :, -L,$(LD_LIBRARY_PATH)))
-endif
-DELPHES_LIBS += -lGenVector -lFWCoreFWLite -lDataFormatsFWLite -lDataFormatsPatCandidates -lDataFormatsLuminosity -lSimDataFormatsGeneratorProducts -lCommonToolsUtils
+OPT_LIBS += -L$(subst include,lib,$(subst :, -L,$(LD_LIBRARY_PATH)))
+endif
+OPT_LIBS += -lGenVector -lFWCoreFWLite -lDataFormatsFWLite -lDataFormatsPatCandidates -lDataFormatsLuminosity -lSimDataFormatsGeneratorProducts -lCommonToolsUtils
 endif
 
 ifneq ($(PROMC),)
 HAS_PROMC = true
-CXXFLAGS += -I$(PROMC)/include
-DELPHES_LIBS += -L$(PROMC)/lib -lprotoc -lprotobuf -lprotobuf-lite -lcbook -lz
+CXXFLAGS += -I$(PROMC)/include -I$(PROMC)/src
+OPT_LIBS += -L$(PROMC)/lib -lpromc -lprotoc -lprotobuf -lprotobuf-lite -lcbook -lz
 endif
 
@@ -41,12 +41,15 @@
 HAS_PYTHIA8 = true
 CXXFLAGS += -I$(PYTHIA8)/include
-DELPHES_LIBS += -L$(PYTHIA8)/lib -lpythia8 -lLHAPDF -lgfortran -lz
+OPT_LIBS += -L$(PYTHIA8)/lib -lpythia8 -lLHAPDF -lgfortran -lz
 else
 ifneq ($(PYTHIA8DATA),)
 HAS_PYTHIA8 = true
 CXXFLAGS += -I$(PYTHIA8DATA)/../include
-DELPHES_LIBS += -L$(PYTHIA8DATA)/../lib -lpythia8 -lLHAPDF -lgfortran -lz
-endif
-endif
+OPT_LIBS += -L$(PYTHIA8DATA)/../lib -lpythia8 -lLHAPDF -lgfortran -lz
+endif
+endif
+
+DELPHES_LIBS += $(OPT_LIBS)
+DISPLAY_LIBS += $(OPT_LIBS)
 
 ###
@@ -238,6 +241,5 @@
 	external/ExRootAnalysis/ExRootTreeWriter.h \
 	external/ExRootAnalysis/ExRootTreeBranch.h \
-	external/ExRootAnalysis/ExRootProgressBar.h \
-	external/ProMC/ProMCBook.h
+	external/ExRootAnalysis/ExRootProgressBar.h
 EXECUTABLE +=  \
 	DelphesProMC$(ExeSuf)
@@ -245,26 +247,4 @@
 EXECUTABLE_OBJ +=  \
 	tmp/readers/DelphesProMC.$(ObjSuf)
-
-tmp/external/ProMC/ProMCBook.$(ObjSuf): \
-	external/ProMC/ProMCBook.$(SrcSuf)
-tmp/external/ProMC/ProMC.pb.$(ObjSuf): \
-	external/ProMC/ProMC.pb.$(SrcSuf)
-tmp/external/ProMC/ProMCStat.pb.$(ObjSuf): \
-	external/ProMC/ProMCStat.pb.$(SrcSuf)
-tmp/external/ProMC/ProMCHeader.pb.$(ObjSuf): \
-	external/ProMC/ProMCHeader.pb.$(SrcSuf)
-tmp/external/ProMC/ProMCDescription.pb.$(ObjSuf): \
-	external/ProMC/ProMCDescription.pb.$(SrcSuf)
-DELPHES_OBJ +=  \
-	tmp/external/ProMC/ProMCBook.$(ObjSuf) \
-	tmp/external/ProMC/ProMC.pb.$(ObjSuf) \
-	tmp/external/ProMC/ProMCStat.pb.$(ObjSuf) \
-	tmp/external/ProMC/ProMCHeader.pb.$(ObjSuf) \
-	tmp/external/ProMC/ProMCDescription.pb.$(ObjSuf)
-
-ifeq ($(HAS_PYTHIA8),true)
-DELPHES_OBJ +=  \
-	
-endif
 
 endif
@@ -381,5 +361,10 @@
 	display/DisplayLinkDef.h \
 	display/DelphesDisplay.h \
-	display/DelphesCaloData.h
+	display/DelphesCaloData.h \
+	display/DelphesBranchElement.h \
+	display/Delphes3DGeometry.h \
+	display/DelphesEventDisplay.h \
+	display/DelphesHtmlSummary.h \
+	display/DelphesPlotSummary.h
 DisplayDict$(PcmSuf): \
 	tmp/display/DisplayDict$(PcmSuf) \
@@ -1235,4 +1220,28 @@
 	display/DelphesDisplay.$(SrcSuf) \
 	display/DelphesDisplay.h
+tmp/display/DelphesPlotSummary.$(ObjSuf): \
+	display/DelphesPlotSummary.$(SrcSuf) \
+	display/DelphesPlotSummary.h
+tmp/display/DelphesBranchElement.$(ObjSuf): \
+	display/DelphesBranchElement.$(SrcSuf) \
+	display/DelphesBranchElement.h \
+	classes/DelphesClasses.h
+tmp/display/DelphesEventDisplay.$(ObjSuf): \
+	display/DelphesEventDisplay.$(SrcSuf) \
+	external/ExRootAnalysis/ExRootConfReader.h \
+	external/ExRootAnalysis/ExRootTreeReader.h \
+	display/DelphesCaloData.h \
+	display/DelphesBranchElement.h \
+	display/Delphes3DGeometry.h \
+	display/DelphesEventDisplay.h \
+	classes/DelphesClasses.h
+tmp/display/DelphesHtmlSummary.$(ObjSuf): \
+	display/DelphesHtmlSummary.$(SrcSuf) \
+	display/DelphesHtmlSummary.h
+tmp/display/Delphes3DGeometry.$(ObjSuf): \
+	display/Delphes3DGeometry.$(SrcSuf) \
+	display/Delphes3DGeometry.h \
+	external/ExRootAnalysis/ExRootConfReader.h \
+	classes/DelphesClasses.h
 tmp/display/DelphesCaloData.$(ObjSuf): \
 	display/DelphesCaloData.$(SrcSuf) \
@@ -1240,4 +1249,9 @@
 DISPLAY_OBJ +=  \
 	tmp/display/DelphesDisplay.$(ObjSuf) \
+	tmp/display/DelphesPlotSummary.$(ObjSuf) \
+	tmp/display/DelphesBranchElement.$(ObjSuf) \
+	tmp/display/DelphesEventDisplay.$(ObjSuf) \
+	tmp/display/DelphesHtmlSummary.$(ObjSuf) \
+	tmp/display/Delphes3DGeometry.$(ObjSuf) \
 	tmp/display/DelphesCaloData.$(ObjSuf)
 
@@ -1461,4 +1475,8 @@
 	@touch $@
 
+display/DelphesBranchElement.h: \
+	display/DelphesCaloData.h
+	@touch $@
+
 external/fastjet/internal/DynamicNearestNeighbours.hh: \
 	external/fastjet/internal/numconsts.hh
@@ -1500,4 +1518,12 @@
 	@touch $@
 
+display/DelphesEventDisplay.h: \
+	external/ExRootAnalysis/ExRootTreeReader.h \
+	display/DelphesDisplay.h \
+	display/Delphes3DGeometry.h \
+	display/DelphesHtmlSummary.h \
+	display/DelphesPlotSummary.h
+	@touch $@
+
 modules/TauTagging.h: \
 	classes/DelphesModule.h
@@ -1584,4 +1610,8 @@
 modules/Hector.h: \
 	classes/DelphesModule.h
+	@touch $@
+
+display/DelphesPlotSummary.h: \
+	external/ExRootAnalysis/ExRootTreeReader.h
 	@touch $@
 
Index: classes/ClassesLinkDef.h
===================================================================
--- classes/ClassesLinkDef.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/ClassesLinkDef.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesClasses.cc
===================================================================
--- classes/DelphesClasses.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesClasses.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesClasses.h
===================================================================
--- classes/DelphesClasses.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesClasses.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesFactory.cc
===================================================================
--- classes/DelphesFactory.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesFactory.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesFactory.h
===================================================================
--- classes/DelphesFactory.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesFactory.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesFormula.cc
===================================================================
--- classes/DelphesFormula.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesFormula.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesFormula.h
===================================================================
--- classes/DelphesFormula.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesFormula.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesHepMCReader.cc
===================================================================
--- classes/DelphesHepMCReader.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesHepMCReader.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesHepMCReader.h
===================================================================
--- classes/DelphesHepMCReader.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesHepMCReader.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesLHEFReader.cc
===================================================================
--- classes/DelphesLHEFReader.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesLHEFReader.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesLHEFReader.h
===================================================================
--- classes/DelphesLHEFReader.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesLHEFReader.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesModule.cc
===================================================================
--- classes/DelphesModule.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesModule.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesModule.h
===================================================================
--- classes/DelphesModule.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesModule.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesPileUpReader.cc
===================================================================
--- classes/DelphesPileUpReader.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesPileUpReader.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesPileUpReader.h
===================================================================
--- classes/DelphesPileUpReader.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesPileUpReader.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesPileUpWriter.cc
===================================================================
--- classes/DelphesPileUpWriter.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesPileUpWriter.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesPileUpWriter.h
===================================================================
--- classes/DelphesPileUpWriter.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesPileUpWriter.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesSTDHEPReader.cc
===================================================================
--- classes/DelphesSTDHEPReader.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesSTDHEPReader.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesSTDHEPReader.h
===================================================================
--- classes/DelphesSTDHEPReader.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesSTDHEPReader.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesStream.cc
===================================================================
--- classes/DelphesStream.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesStream.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesStream.h
===================================================================
--- classes/DelphesStream.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesStream.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesTF2.cc
===================================================================
--- classes/DelphesTF2.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesTF2.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/DelphesTF2.h
===================================================================
--- classes/DelphesTF2.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/DelphesTF2.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: classes/SortableObject.h
===================================================================
--- classes/SortableObject.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ classes/SortableObject.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: converters/hepmc2pileup.cpp
===================================================================
--- converters/hepmc2pileup.cpp	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ converters/hepmc2pileup.cpp	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: converters/lhco2root.cpp
===================================================================
--- converters/lhco2root.cpp	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ converters/lhco2root.cpp	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: converters/pileup2root.cpp
===================================================================
--- converters/pileup2root.cpp	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ converters/pileup2root.cpp	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: converters/root2lhco.cpp
===================================================================
--- converters/root2lhco.cpp	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ converters/root2lhco.cpp	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: converters/root2pileup.cpp
===================================================================
--- converters/root2pileup.cpp	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ converters/root2pileup.cpp	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: converters/stdhep2pileup.cpp
===================================================================
--- converters/stdhep2pileup.cpp	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ converters/stdhep2pileup.cpp	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: display/DelphesCaloData.cc
===================================================================
--- display/DelphesCaloData.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ display/DelphesCaloData.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: display/DelphesCaloData.h
===================================================================
--- display/DelphesCaloData.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ display/DelphesCaloData.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: display/DelphesDisplay.cc
===================================================================
--- display/DelphesDisplay.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ display/DelphesDisplay.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: display/DelphesDisplay.h
===================================================================
--- display/DelphesDisplay.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ display/DelphesDisplay.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: display/DisplayLinkDef.h
===================================================================
--- display/DisplayLinkDef.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ display/DisplayLinkDef.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: doc/GPLv3_header.txt
===================================================================
--- doc/GPLv3_header.txt	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ doc/GPLv3_header.txt	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: doc/genMakefile.tcl
===================================================================
--- doc/genMakefile.tcl	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ doc/genMakefile.tcl	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
@@ -208,23 +208,23 @@
 CXXFLAGS += $(ROOTCFLAGS) -Wno-write-strings -D_FILE_OFFSET_BITS=64 -DDROP_CGAL -I. -Iexternal -Iexternal/tcl
 DELPHES_LIBS = $(shell $(RC) --libs) -lEG $(SYSLIBS)
-DISPLAY_LIBS = $(shell $(RC) --evelibs) $(SYSLIBS)
+DISPLAY_LIBS = $(shell $(RC) --evelibs) -lGuiHtml  $(SYSLIBS)
 
 ifneq ($(CMSSW_FWLITE_INCLUDE_PATH),)
 HAS_CMSSW = true
 CXXFLAGS += -std=c++0x -I$(subst :, -I,$(CMSSW_FWLITE_INCLUDE_PATH))
-DELPHES_LIBS += -L$(subst include,lib,$(subst :, -L,$(CMSSW_FWLITE_INCLUDE_PATH)))
+OPT_LIBS += -L$(subst include,lib,$(subst :, -L,$(CMSSW_FWLITE_INCLUDE_PATH)))
 ifneq ($(CMSSW_RELEASE_BASE),)
 CXXFLAGS += -I$(CMSSW_RELEASE_BASE)/src
 endif
 ifneq ($(LD_LIBRARY_PATH),)
-DELPHES_LIBS += -L$(subst include,lib,$(subst :, -L,$(LD_LIBRARY_PATH)))
-endif
-DELPHES_LIBS += -lGenVector -lFWCoreFWLite -lDataFormatsFWLite -lDataFormatsPatCandidates -lDataFormatsLuminosity -lSimDataFormatsGeneratorProducts -lCommonToolsUtils
+OPT_LIBS += -L$(subst include,lib,$(subst :, -L,$(LD_LIBRARY_PATH)))
+endif
+OPT_LIBS += -lGenVector -lFWCoreFWLite -lDataFormatsFWLite -lDataFormatsPatCandidates -lDataFormatsLuminosity -lSimDataFormatsGeneratorProducts -lCommonToolsUtils
 endif
 
 ifneq ($(PROMC),)
 HAS_PROMC = true
-CXXFLAGS += -I$(PROMC)/include
-DELPHES_LIBS += -L$(PROMC)/lib -lprotoc -lprotobuf -lprotobuf-lite -lcbook -lz
+CXXFLAGS += -I$(PROMC)/include -I$(PROMC)/src
+OPT_LIBS += -L$(PROMC)/lib -lpromc -lprotoc -lprotobuf -lprotobuf-lite -lcbook -lz
 endif
 
@@ -232,12 +232,15 @@
 HAS_PYTHIA8 = true
 CXXFLAGS += -I$(PYTHIA8)/include
-DELPHES_LIBS += -L$(PYTHIA8)/lib -lpythia8 -lLHAPDF -lgfortran -lz
+OPT_LIBS += -L$(PYTHIA8)/lib -lpythia8 -lLHAPDF -lgfortran -lz
 else
 ifneq ($(PYTHIA8DATA),)
 HAS_PYTHIA8 = true
 CXXFLAGS += -I$(PYTHIA8DATA)/../include
-DELPHES_LIBS += -L$(PYTHIA8DATA)/../lib -lpythia8 -lLHAPDF -lgfortran -lz
-endif
-endif
+OPT_LIBS += -L$(PYTHIA8DATA)/../lib -lpythia8 -lLHAPDF -lgfortran -lz
+endif
+endif
+
+DELPHES_LIBS += $(OPT_LIBS)
+DISPLAY_LIBS += $(OPT_LIBS)
 
 ###
@@ -268,5 +271,4 @@
 puts {ifeq ($(HAS_PROMC),true)}
 executableDeps {readers/DelphesProMC.cpp}
-sourceDeps {DELPHES} {external/ProMC/*.cc}
 puts {endif}
 puts {}
Index: examples/Example1.cpp
===================================================================
--- examples/Example1.cpp	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ examples/Example1.cpp	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: examples/Example1.py
===================================================================
--- examples/Example1.py	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
+++ examples/Example1.py	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
@@ -0,0 +1,60 @@
+#!/usr/bin/env python
+
+import sys
+
+import ROOT
+
+if len(sys.argv) < 2:
+  print " Usage: Example1.py input_file"
+  sys.exit(1)
+
+ROOT.gSystem.Load("libDelphes")
+
+inputFile = sys.argv[1]
+
+# Create chain of root trees
+chain = ROOT.TChain("Delphes")
+chain.Add(inputFile)
+
+# Create object of class ExRootTreeReader
+treeReader = ROOT.ExRootTreeReader(chain)
+numberOfEntries = treeReader.GetEntries()
+
+# Get pointers to branches used in this analysis
+branchJet = treeReader.UseBranch("Jet")
+branchElectron = treeReader.UseBranch("Electron")
+
+# Book histograms
+histJetPT = ROOT.TH1F("jet_pt", "jet P_{T}", 100, 0.0, 100.0)
+histMass = ROOT.TH1F("mass", "M_{inv}(e_{1}, e_{2})", 100, 40.0, 140.0)
+
+# Loop over all events
+for entry in range(0, numberOfEntries):
+  # Load selected branches with data from specified event
+  treeReader.ReadEntry(entry)
+
+  # If event contains at least 1 jet
+  if branchJet.GetEntries() > 0:
+    # Take first jet
+    jet = branchJet.At(0)
+    
+    # Plot jet transverse momentum
+    histJetPT.Fill(jet.PT)
+    
+    # Print jet transverse momentum
+    print jet.PT
+
+  # If event contains at least 2 electrons
+  if branchElectron.GetEntries() > 1:
+    # Take first two electrons
+    elec1 = branchElectron.At(0)
+    elec2 = branchElectron.At(1)
+
+    # Plot their invariant mass
+    histMass.Fill(((elec1.P4()) + (elec2.P4())).M())
+
+# Show resulting histograms
+histJetPT.Draw()
+histMass.Draw()
+
+raw_input("Press Enter to continue...")
Index: ternal/ProMC/ProMC.pb.cc
===================================================================
--- external/ProMC/ProMC.pb.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ 	(revision )
@@ -1,2520 +1,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: ProMC.proto
-
-#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
-#include "ProMC.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* ProMCEvent_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  ProMCEvent_reflection_ = NULL;
-const ::google::protobuf::Descriptor* ProMCEvent_Event_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  ProMCEvent_Event_reflection_ = NULL;
-const ::google::protobuf::Descriptor* ProMCEvent_Particles_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  ProMCEvent_Particles_reflection_ = NULL;
-
-}  // namespace
-
-
-void protobuf_AssignDesc_ProMC_2eproto() {
-  protobuf_AddDesc_ProMC_2eproto();
-  const ::google::protobuf::FileDescriptor* file =
-    ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
-      "ProMC.proto");
-  GOOGLE_CHECK(file != NULL);
-  ProMCEvent_descriptor_ = file->message_type(0);
-  static const int ProMCEvent_offsets_[2] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent, event_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent, particles_),
-  };
-  ProMCEvent_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      ProMCEvent_descriptor_,
-      ProMCEvent::default_instance_,
-      ProMCEvent_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(ProMCEvent));
-  ProMCEvent_Event_descriptor_ = ProMCEvent_descriptor_->nested_type(0);
-  static const int ProMCEvent_Event_offsets_[14] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Event, number_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Event, process_id_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Event, mpi_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Event, id1_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Event, id2_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Event, pdf1_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Event, pdf2_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Event, x1_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Event, x2_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Event, scale_pdf_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Event, alpha_qed_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Event, scale_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Event, alpha_qcd_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Event, weight_),
-  };
-  ProMCEvent_Event_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      ProMCEvent_Event_descriptor_,
-      ProMCEvent_Event::default_instance_,
-      ProMCEvent_Event_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Event, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Event, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(ProMCEvent_Event));
-  ProMCEvent_Particles_descriptor_ = ProMCEvent_descriptor_->nested_type(1);
-  static const int ProMCEvent_Particles_offsets_[18] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Particles, id_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Particles, pdg_id_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Particles, status_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Particles, mass_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Particles, px_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Particles, py_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Particles, pz_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Particles, mother1_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Particles, mother2_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Particles, daughter1_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Particles, daughter2_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Particles, barcode_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Particles, x_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Particles, y_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Particles, z_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Particles, t_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Particles, weight_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Particles, charge_),
-  };
-  ProMCEvent_Particles_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      ProMCEvent_Particles_descriptor_,
-      ProMCEvent_Particles::default_instance_,
-      ProMCEvent_Particles_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Particles, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCEvent_Particles, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(ProMCEvent_Particles));
-}
-
-namespace {
-
-GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
-inline void protobuf_AssignDescriptorsOnce() {
-  ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
-                 &protobuf_AssignDesc_ProMC_2eproto);
-}
-
-void protobuf_RegisterTypes(const ::std::string&) {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    ProMCEvent_descriptor_, &ProMCEvent::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    ProMCEvent_Event_descriptor_, &ProMCEvent_Event::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    ProMCEvent_Particles_descriptor_, &ProMCEvent_Particles::default_instance());
-}
-
-}  // namespace
-
-void protobuf_ShutdownFile_ProMC_2eproto() {
-  delete ProMCEvent::default_instance_;
-  delete ProMCEvent_reflection_;
-  delete ProMCEvent_Event::default_instance_;
-  delete ProMCEvent_Event_reflection_;
-  delete ProMCEvent_Particles::default_instance_;
-  delete ProMCEvent_Particles_reflection_;
-}
-
-void protobuf_AddDesc_ProMC_2eproto() {
-  static bool already_here = false;
-  if (already_here) return;
-  already_here = true;
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
-    "\n\013ProMC.proto\022\005promc\"\236\005\n\nProMCEvent\022&\n\005e"
-    "vent\030\001 \001(\0132\027.promc.ProMCEvent.Event\022.\n\tp"
-    "articles\030\002 \001(\0132\033.promc.ProMCEvent.Partic"
-    "les\032\336\001\n\005Event\022\016\n\006Number\030\001 \001(\005\022\022\n\nProcess"
-    "_ID\030\002 \001(\005\022\013\n\003MPI\030\003 \001(\005\022\013\n\003ID1\030\004 \001(\005\022\013\n\003I"
-    "D2\030\005 \001(\005\022\014\n\004PDF1\030\006 \001(\002\022\014\n\004PDF2\030\007 \001(\002\022\n\n\002"
-    "X1\030\010 \001(\002\022\n\n\002X2\030\t \001(\002\022\021\n\tScale_PDF\030\n \001(\002\022"
-    "\021\n\tAlpha_QED\030\013 \001(\002\022\r\n\005Scale\030\014 \001(\002\022\021\n\tAlp"
-    "ha_QCD\030\r \001(\002\022\016\n\006Weight\030\016 \001(\001\032\326\002\n\tParticl"
-    "es\022\016\n\002id\030\001 \003(\rB\002\020\001\022\022\n\006pdg_id\030\002 \003(\021B\002\020\001\022\022"
-    "\n\006status\030\003 \003(\rB\002\020\001\022\020\n\004mass\030\004 \003(\004B\002\020\001\022\016\n\002"
-    "Px\030\005 \003(\022B\002\020\001\022\016\n\002Py\030\006 \003(\022B\002\020\001\022\016\n\002Pz\030\007 \003(\022"
-    "B\002\020\001\022\023\n\007mother1\030\010 \003(\rB\002\020\001\022\023\n\007mother2\030\t \003"
-    "(\rB\002\020\001\022\025\n\tdaughter1\030\n \003(\rB\002\020\001\022\025\n\tdaughte"
-    "r2\030\013 \003(\rB\002\020\001\022\023\n\007barcode\030\014 \003(\021B\002\020\001\022\r\n\001X\030\r"
-    " \003(\021B\002\020\001\022\r\n\001Y\030\016 \003(\021B\002\020\001\022\r\n\001Z\030\017 \003(\021B\002\020\001\022\r"
-    "\n\001T\030\020 \003(\rB\002\020\001\022\022\n\006weight\030\021 \003(\004B\002\020\001\022\022\n\006cha"
-    "rge\030\022 \003(\021B\002\020\001B\021\n\010promc.ioB\005ProMC", 712);
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
-    "ProMC.proto", &protobuf_RegisterTypes);
-  ProMCEvent::default_instance_ = new ProMCEvent();
-  ProMCEvent_Event::default_instance_ = new ProMCEvent_Event();
-  ProMCEvent_Particles::default_instance_ = new ProMCEvent_Particles();
-  ProMCEvent::default_instance_->InitAsDefaultInstance();
-  ProMCEvent_Event::default_instance_->InitAsDefaultInstance();
-  ProMCEvent_Particles::default_instance_->InitAsDefaultInstance();
-  ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_ProMC_2eproto);
-}
-
-// Force AddDescriptors() to be called at static initialization time.
-struct StaticDescriptorInitializer_ProMC_2eproto {
-  StaticDescriptorInitializer_ProMC_2eproto() {
-    protobuf_AddDesc_ProMC_2eproto();
-  }
-} static_descriptor_initializer_ProMC_2eproto_;
-
-// ===================================================================
-
-#ifndef _MSC_VER
-const int ProMCEvent_Event::kNumberFieldNumber;
-const int ProMCEvent_Event::kProcessIDFieldNumber;
-const int ProMCEvent_Event::kMPIFieldNumber;
-const int ProMCEvent_Event::kID1FieldNumber;
-const int ProMCEvent_Event::kID2FieldNumber;
-const int ProMCEvent_Event::kPDF1FieldNumber;
-const int ProMCEvent_Event::kPDF2FieldNumber;
-const int ProMCEvent_Event::kX1FieldNumber;
-const int ProMCEvent_Event::kX2FieldNumber;
-const int ProMCEvent_Event::kScalePDFFieldNumber;
-const int ProMCEvent_Event::kAlphaQEDFieldNumber;
-const int ProMCEvent_Event::kScaleFieldNumber;
-const int ProMCEvent_Event::kAlphaQCDFieldNumber;
-const int ProMCEvent_Event::kWeightFieldNumber;
-#endif  // !_MSC_VER
-
-ProMCEvent_Event::ProMCEvent_Event()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void ProMCEvent_Event::InitAsDefaultInstance() {
-}
-
-ProMCEvent_Event::ProMCEvent_Event(const ProMCEvent_Event& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void ProMCEvent_Event::SharedCtor() {
-  _cached_size_ = 0;
-  number_ = 0;
-  process_id_ = 0;
-  mpi_ = 0;
-  id1_ = 0;
-  id2_ = 0;
-  pdf1_ = 0;
-  pdf2_ = 0;
-  x1_ = 0;
-  x2_ = 0;
-  scale_pdf_ = 0;
-  alpha_qed_ = 0;
-  scale_ = 0;
-  alpha_qcd_ = 0;
-  weight_ = 0;
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-ProMCEvent_Event::~ProMCEvent_Event() {
-  SharedDtor();
-}
-
-void ProMCEvent_Event::SharedDtor() {
-  if (this != default_instance_) {
-  }
-}
-
-void ProMCEvent_Event::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* ProMCEvent_Event::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return ProMCEvent_Event_descriptor_;
-}
-
-const ProMCEvent_Event& ProMCEvent_Event::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_ProMC_2eproto();
-  return *default_instance_;
-}
-
-ProMCEvent_Event* ProMCEvent_Event::default_instance_ = NULL;
-
-ProMCEvent_Event* ProMCEvent_Event::New() const {
-  return new ProMCEvent_Event;
-}
-
-void ProMCEvent_Event::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    number_ = 0;
-    process_id_ = 0;
-    mpi_ = 0;
-    id1_ = 0;
-    id2_ = 0;
-    pdf1_ = 0;
-    pdf2_ = 0;
-    x1_ = 0;
-  }
-  if (_has_bits_[8 / 32] & (0xffu << (8 % 32))) {
-    x2_ = 0;
-    scale_pdf_ = 0;
-    alpha_qed_ = 0;
-    scale_ = 0;
-    alpha_qcd_ = 0;
-    weight_ = 0;
-  }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool ProMCEvent_Event::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 Number = 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, &number_)));
-          set_has_number();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(16)) goto parse_Process_ID;
-        break;
-      }
-
-      // optional int32 Process_ID = 2;
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_Process_ID:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &process_id_)));
-          set_has_process_id();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(24)) goto parse_MPI;
-        break;
-      }
-
-      // optional int32 MPI = 3;
-      case 3: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_MPI:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &mpi_)));
-          set_has_mpi();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(32)) goto parse_ID1;
-        break;
-      }
-
-      // optional int32 ID1 = 4;
-      case 4: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_ID1:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &id1_)));
-          set_has_id1();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(40)) goto parse_ID2;
-        break;
-      }
-
-      // optional int32 ID2 = 5;
-      case 5: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_ID2:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &id2_)));
-          set_has_id2();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(53)) goto parse_PDF1;
-        break;
-      }
-
-      // optional float PDF1 = 6;
-      case 6: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED32) {
-         parse_PDF1:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
-                 input, &pdf1_)));
-          set_has_pdf1();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(61)) goto parse_PDF2;
-        break;
-      }
-
-      // optional float PDF2 = 7;
-      case 7: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED32) {
-         parse_PDF2:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
-                 input, &pdf2_)));
-          set_has_pdf2();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(69)) goto parse_X1;
-        break;
-      }
-
-      // optional float X1 = 8;
-      case 8: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED32) {
-         parse_X1:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
-                 input, &x1_)));
-          set_has_x1();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(77)) goto parse_X2;
-        break;
-      }
-
-      // optional float X2 = 9;
-      case 9: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED32) {
-         parse_X2:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
-                 input, &x2_)));
-          set_has_x2();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(85)) goto parse_Scale_PDF;
-        break;
-      }
-
-      // optional float Scale_PDF = 10;
-      case 10: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED32) {
-         parse_Scale_PDF:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
-                 input, &scale_pdf_)));
-          set_has_scale_pdf();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(93)) goto parse_Alpha_QED;
-        break;
-      }
-
-      // optional float Alpha_QED = 11;
-      case 11: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED32) {
-         parse_Alpha_QED:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
-                 input, &alpha_qed_)));
-          set_has_alpha_qed();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(101)) goto parse_Scale;
-        break;
-      }
-
-      // optional float Scale = 12;
-      case 12: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED32) {
-         parse_Scale:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
-                 input, &scale_)));
-          set_has_scale();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(109)) goto parse_Alpha_QCD;
-        break;
-      }
-
-      // optional float Alpha_QCD = 13;
-      case 13: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED32) {
-         parse_Alpha_QCD:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
-                 input, &alpha_qcd_)));
-          set_has_alpha_qcd();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(113)) goto parse_Weight;
-        break;
-      }
-
-      // optional double Weight = 14;
-      case 14: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED64) {
-         parse_Weight:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
-                 input, &weight_)));
-          set_has_weight();
-        } 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 ProMCEvent_Event::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // optional int32 Number = 1;
-  if (has_number()) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->number(), output);
-  }
-
-  // optional int32 Process_ID = 2;
-  if (has_process_id()) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->process_id(), output);
-  }
-
-  // optional int32 MPI = 3;
-  if (has_mpi()) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->mpi(), output);
-  }
-
-  // optional int32 ID1 = 4;
-  if (has_id1()) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->id1(), output);
-  }
-
-  // optional int32 ID2 = 5;
-  if (has_id2()) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->id2(), output);
-  }
-
-  // optional float PDF1 = 6;
-  if (has_pdf1()) {
-    ::google::protobuf::internal::WireFormatLite::WriteFloat(6, this->pdf1(), output);
-  }
-
-  // optional float PDF2 = 7;
-  if (has_pdf2()) {
-    ::google::protobuf::internal::WireFormatLite::WriteFloat(7, this->pdf2(), output);
-  }
-
-  // optional float X1 = 8;
-  if (has_x1()) {
-    ::google::protobuf::internal::WireFormatLite::WriteFloat(8, this->x1(), output);
-  }
-
-  // optional float X2 = 9;
-  if (has_x2()) {
-    ::google::protobuf::internal::WireFormatLite::WriteFloat(9, this->x2(), output);
-  }
-
-  // optional float Scale_PDF = 10;
-  if (has_scale_pdf()) {
-    ::google::protobuf::internal::WireFormatLite::WriteFloat(10, this->scale_pdf(), output);
-  }
-
-  // optional float Alpha_QED = 11;
-  if (has_alpha_qed()) {
-    ::google::protobuf::internal::WireFormatLite::WriteFloat(11, this->alpha_qed(), output);
-  }
-
-  // optional float Scale = 12;
-  if (has_scale()) {
-    ::google::protobuf::internal::WireFormatLite::WriteFloat(12, this->scale(), output);
-  }
-
-  // optional float Alpha_QCD = 13;
-  if (has_alpha_qcd()) {
-    ::google::protobuf::internal::WireFormatLite::WriteFloat(13, this->alpha_qcd(), output);
-  }
-
-  // optional double Weight = 14;
-  if (has_weight()) {
-    ::google::protobuf::internal::WireFormatLite::WriteDouble(14, this->weight(), output);
-  }
-
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* ProMCEvent_Event::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // optional int32 Number = 1;
-  if (has_number()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->number(), target);
-  }
-
-  // optional int32 Process_ID = 2;
-  if (has_process_id()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->process_id(), target);
-  }
-
-  // optional int32 MPI = 3;
-  if (has_mpi()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->mpi(), target);
-  }
-
-  // optional int32 ID1 = 4;
-  if (has_id1()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->id1(), target);
-  }
-
-  // optional int32 ID2 = 5;
-  if (has_id2()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(5, this->id2(), target);
-  }
-
-  // optional float PDF1 = 6;
-  if (has_pdf1()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(6, this->pdf1(), target);
-  }
-
-  // optional float PDF2 = 7;
-  if (has_pdf2()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(7, this->pdf2(), target);
-  }
-
-  // optional float X1 = 8;
-  if (has_x1()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(8, this->x1(), target);
-  }
-
-  // optional float X2 = 9;
-  if (has_x2()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(9, this->x2(), target);
-  }
-
-  // optional float Scale_PDF = 10;
-  if (has_scale_pdf()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(10, this->scale_pdf(), target);
-  }
-
-  // optional float Alpha_QED = 11;
-  if (has_alpha_qed()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(11, this->alpha_qed(), target);
-  }
-
-  // optional float Scale = 12;
-  if (has_scale()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(12, this->scale(), target);
-  }
-
-  // optional float Alpha_QCD = 13;
-  if (has_alpha_qcd()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(13, this->alpha_qcd(), target);
-  }
-
-  // optional double Weight = 14;
-  if (has_weight()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(14, this->weight(), target);
-  }
-
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int ProMCEvent_Event::ByteSize() const {
-  int total_size = 0;
-
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // optional int32 Number = 1;
-    if (has_number()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->number());
-    }
-
-    // optional int32 Process_ID = 2;
-    if (has_process_id()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->process_id());
-    }
-
-    // optional int32 MPI = 3;
-    if (has_mpi()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->mpi());
-    }
-
-    // optional int32 ID1 = 4;
-    if (has_id1()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->id1());
-    }
-
-    // optional int32 ID2 = 5;
-    if (has_id2()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->id2());
-    }
-
-    // optional float PDF1 = 6;
-    if (has_pdf1()) {
-      total_size += 1 + 4;
-    }
-
-    // optional float PDF2 = 7;
-    if (has_pdf2()) {
-      total_size += 1 + 4;
-    }
-
-    // optional float X1 = 8;
-    if (has_x1()) {
-      total_size += 1 + 4;
-    }
-
-  }
-  if (_has_bits_[8 / 32] & (0xffu << (8 % 32))) {
-    // optional float X2 = 9;
-    if (has_x2()) {
-      total_size += 1 + 4;
-    }
-
-    // optional float Scale_PDF = 10;
-    if (has_scale_pdf()) {
-      total_size += 1 + 4;
-    }
-
-    // optional float Alpha_QED = 11;
-    if (has_alpha_qed()) {
-      total_size += 1 + 4;
-    }
-
-    // optional float Scale = 12;
-    if (has_scale()) {
-      total_size += 1 + 4;
-    }
-
-    // optional float Alpha_QCD = 13;
-    if (has_alpha_qcd()) {
-      total_size += 1 + 4;
-    }
-
-    // optional double Weight = 14;
-    if (has_weight()) {
-      total_size += 1 + 8;
-    }
-
-  }
-  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 ProMCEvent_Event::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const ProMCEvent_Event* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const ProMCEvent_Event*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void ProMCEvent_Event::MergeFrom(const ProMCEvent_Event& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_number()) {
-      set_number(from.number());
-    }
-    if (from.has_process_id()) {
-      set_process_id(from.process_id());
-    }
-    if (from.has_mpi()) {
-      set_mpi(from.mpi());
-    }
-    if (from.has_id1()) {
-      set_id1(from.id1());
-    }
-    if (from.has_id2()) {
-      set_id2(from.id2());
-    }
-    if (from.has_pdf1()) {
-      set_pdf1(from.pdf1());
-    }
-    if (from.has_pdf2()) {
-      set_pdf2(from.pdf2());
-    }
-    if (from.has_x1()) {
-      set_x1(from.x1());
-    }
-  }
-  if (from._has_bits_[8 / 32] & (0xffu << (8 % 32))) {
-    if (from.has_x2()) {
-      set_x2(from.x2());
-    }
-    if (from.has_scale_pdf()) {
-      set_scale_pdf(from.scale_pdf());
-    }
-    if (from.has_alpha_qed()) {
-      set_alpha_qed(from.alpha_qed());
-    }
-    if (from.has_scale()) {
-      set_scale(from.scale());
-    }
-    if (from.has_alpha_qcd()) {
-      set_alpha_qcd(from.alpha_qcd());
-    }
-    if (from.has_weight()) {
-      set_weight(from.weight());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void ProMCEvent_Event::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void ProMCEvent_Event::CopyFrom(const ProMCEvent_Event& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool ProMCEvent_Event::IsInitialized() const {
-
-  return true;
-}
-
-void ProMCEvent_Event::Swap(ProMCEvent_Event* other) {
-  if (other != this) {
-    std::swap(number_, other->number_);
-    std::swap(process_id_, other->process_id_);
-    std::swap(mpi_, other->mpi_);
-    std::swap(id1_, other->id1_);
-    std::swap(id2_, other->id2_);
-    std::swap(pdf1_, other->pdf1_);
-    std::swap(pdf2_, other->pdf2_);
-    std::swap(x1_, other->x1_);
-    std::swap(x2_, other->x2_);
-    std::swap(scale_pdf_, other->scale_pdf_);
-    std::swap(alpha_qed_, other->alpha_qed_);
-    std::swap(scale_, other->scale_);
-    std::swap(alpha_qcd_, other->alpha_qcd_);
-    std::swap(weight_, other->weight_);
-    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 ProMCEvent_Event::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = ProMCEvent_Event_descriptor_;
-  metadata.reflection = ProMCEvent_Event_reflection_;
-  return metadata;
-}
-
-
-// -------------------------------------------------------------------
-
-#ifndef _MSC_VER
-const int ProMCEvent_Particles::kIdFieldNumber;
-const int ProMCEvent_Particles::kPdgIdFieldNumber;
-const int ProMCEvent_Particles::kStatusFieldNumber;
-const int ProMCEvent_Particles::kMassFieldNumber;
-const int ProMCEvent_Particles::kPxFieldNumber;
-const int ProMCEvent_Particles::kPyFieldNumber;
-const int ProMCEvent_Particles::kPzFieldNumber;
-const int ProMCEvent_Particles::kMother1FieldNumber;
-const int ProMCEvent_Particles::kMother2FieldNumber;
-const int ProMCEvent_Particles::kDaughter1FieldNumber;
-const int ProMCEvent_Particles::kDaughter2FieldNumber;
-const int ProMCEvent_Particles::kBarcodeFieldNumber;
-const int ProMCEvent_Particles::kXFieldNumber;
-const int ProMCEvent_Particles::kYFieldNumber;
-const int ProMCEvent_Particles::kZFieldNumber;
-const int ProMCEvent_Particles::kTFieldNumber;
-const int ProMCEvent_Particles::kWeightFieldNumber;
-const int ProMCEvent_Particles::kChargeFieldNumber;
-#endif  // !_MSC_VER
-
-ProMCEvent_Particles::ProMCEvent_Particles()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void ProMCEvent_Particles::InitAsDefaultInstance() {
-}
-
-ProMCEvent_Particles::ProMCEvent_Particles(const ProMCEvent_Particles& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void ProMCEvent_Particles::SharedCtor() {
-  _cached_size_ = 0;
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-ProMCEvent_Particles::~ProMCEvent_Particles() {
-  SharedDtor();
-}
-
-void ProMCEvent_Particles::SharedDtor() {
-  if (this != default_instance_) {
-  }
-}
-
-void ProMCEvent_Particles::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* ProMCEvent_Particles::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return ProMCEvent_Particles_descriptor_;
-}
-
-const ProMCEvent_Particles& ProMCEvent_Particles::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_ProMC_2eproto();
-  return *default_instance_;
-}
-
-ProMCEvent_Particles* ProMCEvent_Particles::default_instance_ = NULL;
-
-ProMCEvent_Particles* ProMCEvent_Particles::New() const {
-  return new ProMCEvent_Particles;
-}
-
-void ProMCEvent_Particles::Clear() {
-  id_.Clear();
-  pdg_id_.Clear();
-  status_.Clear();
-  mass_.Clear();
-  px_.Clear();
-  py_.Clear();
-  pz_.Clear();
-  mother1_.Clear();
-  mother2_.Clear();
-  daughter1_.Clear();
-  daughter2_.Clear();
-  barcode_.Clear();
-  x_.Clear();
-  y_.Clear();
-  z_.Clear();
-  t_.Clear();
-  weight_.Clear();
-  charge_.Clear();
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool ProMCEvent_Particles::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)) {
-      // repeated uint32 id = 1 [packed = true];
-      case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
-                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 input, this->mutable_id())));
-        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
-                   == ::google::protobuf::internal::WireFormatLite::
-                      WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
-                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 1, 10, input, this->mutable_id())));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(18)) goto parse_pdg_id;
-        break;
-      }
-
-      // repeated sint32 pdg_id = 2 [packed = true];
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_pdg_id:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_SINT32>(
-                 input, this->mutable_pdg_id())));
-        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
-                   == ::google::protobuf::internal::WireFormatLite::
-                      WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_SINT32>(
-                 1, 18, input, this->mutable_pdg_id())));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(26)) goto parse_status;
-        break;
-      }
-
-      // repeated uint32 status = 3 [packed = true];
-      case 3: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_status:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
-                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 input, this->mutable_status())));
-        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
-                   == ::google::protobuf::internal::WireFormatLite::
-                      WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
-                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 1, 26, input, this->mutable_status())));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(34)) goto parse_mass;
-        break;
-      }
-
-      // repeated uint64 mass = 4 [packed = true];
-      case 4: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_mass:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
-                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
-                 input, this->mutable_mass())));
-        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
-                   == ::google::protobuf::internal::WireFormatLite::
-                      WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
-                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
-                 1, 34, input, this->mutable_mass())));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(42)) goto parse_Px;
-        break;
-      }
-
-      // repeated sint64 Px = 5 [packed = true];
-      case 5: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_Px:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
-                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_SINT64>(
-                 input, this->mutable_px())));
-        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
-                   == ::google::protobuf::internal::WireFormatLite::
-                      WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
-                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_SINT64>(
-                 1, 42, input, this->mutable_px())));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(50)) goto parse_Py;
-        break;
-      }
-
-      // repeated sint64 Py = 6 [packed = true];
-      case 6: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_Py:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
-                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_SINT64>(
-                 input, this->mutable_py())));
-        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
-                   == ::google::protobuf::internal::WireFormatLite::
-                      WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
-                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_SINT64>(
-                 1, 50, input, this->mutable_py())));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(58)) goto parse_Pz;
-        break;
-      }
-
-      // repeated sint64 Pz = 7 [packed = true];
-      case 7: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_Pz:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
-                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_SINT64>(
-                 input, this->mutable_pz())));
-        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
-                   == ::google::protobuf::internal::WireFormatLite::
-                      WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
-                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_SINT64>(
-                 1, 58, input, this->mutable_pz())));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(66)) goto parse_mother1;
-        break;
-      }
-
-      // repeated uint32 mother1 = 8 [packed = true];
-      case 8: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_mother1:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
-                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 input, this->mutable_mother1())));
-        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
-                   == ::google::protobuf::internal::WireFormatLite::
-                      WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
-                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 1, 66, input, this->mutable_mother1())));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(74)) goto parse_mother2;
-        break;
-      }
-
-      // repeated uint32 mother2 = 9 [packed = true];
-      case 9: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_mother2:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
-                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 input, this->mutable_mother2())));
-        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
-                   == ::google::protobuf::internal::WireFormatLite::
-                      WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
-                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 1, 74, input, this->mutable_mother2())));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(82)) goto parse_daughter1;
-        break;
-      }
-
-      // repeated uint32 daughter1 = 10 [packed = true];
-      case 10: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_daughter1:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
-                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 input, this->mutable_daughter1())));
-        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
-                   == ::google::protobuf::internal::WireFormatLite::
-                      WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
-                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 1, 82, input, this->mutable_daughter1())));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(90)) goto parse_daughter2;
-        break;
-      }
-
-      // repeated uint32 daughter2 = 11 [packed = true];
-      case 11: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_daughter2:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
-                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 input, this->mutable_daughter2())));
-        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
-                   == ::google::protobuf::internal::WireFormatLite::
-                      WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
-                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 1, 90, input, this->mutable_daughter2())));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(98)) goto parse_barcode;
-        break;
-      }
-
-      // repeated sint32 barcode = 12 [packed = true];
-      case 12: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_barcode:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_SINT32>(
-                 input, this->mutable_barcode())));
-        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
-                   == ::google::protobuf::internal::WireFormatLite::
-                      WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_SINT32>(
-                 1, 98, input, this->mutable_barcode())));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(106)) goto parse_X;
-        break;
-      }
-
-      // repeated sint32 X = 13 [packed = true];
-      case 13: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_X:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_SINT32>(
-                 input, this->mutable_x())));
-        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
-                   == ::google::protobuf::internal::WireFormatLite::
-                      WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_SINT32>(
-                 1, 106, input, this->mutable_x())));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(114)) goto parse_Y;
-        break;
-      }
-
-      // repeated sint32 Y = 14 [packed = true];
-      case 14: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_Y:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_SINT32>(
-                 input, this->mutable_y())));
-        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
-                   == ::google::protobuf::internal::WireFormatLite::
-                      WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_SINT32>(
-                 1, 114, input, this->mutable_y())));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(122)) goto parse_Z;
-        break;
-      }
-
-      // repeated sint32 Z = 15 [packed = true];
-      case 15: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_Z:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_SINT32>(
-                 input, this->mutable_z())));
-        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
-                   == ::google::protobuf::internal::WireFormatLite::
-                      WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_SINT32>(
-                 1, 122, input, this->mutable_z())));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(130)) goto parse_T;
-        break;
-      }
-
-      // repeated uint32 T = 16 [packed = true];
-      case 16: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_T:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
-                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 input, this->mutable_t())));
-        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
-                   == ::google::protobuf::internal::WireFormatLite::
-                      WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
-                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 2, 130, input, this->mutable_t())));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(138)) goto parse_weight;
-        break;
-      }
-
-      // repeated uint64 weight = 17 [packed = true];
-      case 17: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_weight:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
-                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
-                 input, this->mutable_weight())));
-        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
-                   == ::google::protobuf::internal::WireFormatLite::
-                      WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
-                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
-                 2, 138, input, this->mutable_weight())));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(146)) goto parse_charge;
-        break;
-      }
-
-      // repeated sint32 charge = 18 [packed = true];
-      case 18: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_charge:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_SINT32>(
-                 input, this->mutable_charge())));
-        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
-                   == ::google::protobuf::internal::WireFormatLite::
-                      WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_SINT32>(
-                 2, 146, input, this->mutable_charge())));
-        } 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 ProMCEvent_Particles::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // repeated uint32 id = 1 [packed = true];
-  if (this->id_size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteTag(1, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
-    output->WriteVarint32(_id_cached_byte_size_);
-  }
-  for (int i = 0; i < this->id_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
-      this->id(i), output);
-  }
-
-  // repeated sint32 pdg_id = 2 [packed = true];
-  if (this->pdg_id_size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteTag(2, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
-    output->WriteVarint32(_pdg_id_cached_byte_size_);
-  }
-  for (int i = 0; i < this->pdg_id_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteSInt32NoTag(
-      this->pdg_id(i), output);
-  }
-
-  // repeated uint32 status = 3 [packed = true];
-  if (this->status_size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteTag(3, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
-    output->WriteVarint32(_status_cached_byte_size_);
-  }
-  for (int i = 0; i < this->status_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
-      this->status(i), output);
-  }
-
-  // repeated uint64 mass = 4 [packed = true];
-  if (this->mass_size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteTag(4, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
-    output->WriteVarint32(_mass_cached_byte_size_);
-  }
-  for (int i = 0; i < this->mass_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteUInt64NoTag(
-      this->mass(i), output);
-  }
-
-  // repeated sint64 Px = 5 [packed = true];
-  if (this->px_size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteTag(5, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
-    output->WriteVarint32(_px_cached_byte_size_);
-  }
-  for (int i = 0; i < this->px_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteSInt64NoTag(
-      this->px(i), output);
-  }
-
-  // repeated sint64 Py = 6 [packed = true];
-  if (this->py_size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteTag(6, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
-    output->WriteVarint32(_py_cached_byte_size_);
-  }
-  for (int i = 0; i < this->py_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteSInt64NoTag(
-      this->py(i), output);
-  }
-
-  // repeated sint64 Pz = 7 [packed = true];
-  if (this->pz_size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteTag(7, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
-    output->WriteVarint32(_pz_cached_byte_size_);
-  }
-  for (int i = 0; i < this->pz_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteSInt64NoTag(
-      this->pz(i), output);
-  }
-
-  // repeated uint32 mother1 = 8 [packed = true];
-  if (this->mother1_size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteTag(8, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
-    output->WriteVarint32(_mother1_cached_byte_size_);
-  }
-  for (int i = 0; i < this->mother1_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
-      this->mother1(i), output);
-  }
-
-  // repeated uint32 mother2 = 9 [packed = true];
-  if (this->mother2_size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteTag(9, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
-    output->WriteVarint32(_mother2_cached_byte_size_);
-  }
-  for (int i = 0; i < this->mother2_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
-      this->mother2(i), output);
-  }
-
-  // repeated uint32 daughter1 = 10 [packed = true];
-  if (this->daughter1_size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteTag(10, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
-    output->WriteVarint32(_daughter1_cached_byte_size_);
-  }
-  for (int i = 0; i < this->daughter1_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
-      this->daughter1(i), output);
-  }
-
-  // repeated uint32 daughter2 = 11 [packed = true];
-  if (this->daughter2_size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteTag(11, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
-    output->WriteVarint32(_daughter2_cached_byte_size_);
-  }
-  for (int i = 0; i < this->daughter2_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
-      this->daughter2(i), output);
-  }
-
-  // repeated sint32 barcode = 12 [packed = true];
-  if (this->barcode_size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteTag(12, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
-    output->WriteVarint32(_barcode_cached_byte_size_);
-  }
-  for (int i = 0; i < this->barcode_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteSInt32NoTag(
-      this->barcode(i), output);
-  }
-
-  // repeated sint32 X = 13 [packed = true];
-  if (this->x_size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteTag(13, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
-    output->WriteVarint32(_x_cached_byte_size_);
-  }
-  for (int i = 0; i < this->x_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteSInt32NoTag(
-      this->x(i), output);
-  }
-
-  // repeated sint32 Y = 14 [packed = true];
-  if (this->y_size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteTag(14, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
-    output->WriteVarint32(_y_cached_byte_size_);
-  }
-  for (int i = 0; i < this->y_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteSInt32NoTag(
-      this->y(i), output);
-  }
-
-  // repeated sint32 Z = 15 [packed = true];
-  if (this->z_size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteTag(15, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
-    output->WriteVarint32(_z_cached_byte_size_);
-  }
-  for (int i = 0; i < this->z_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteSInt32NoTag(
-      this->z(i), output);
-  }
-
-  // repeated uint32 T = 16 [packed = true];
-  if (this->t_size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteTag(16, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
-    output->WriteVarint32(_t_cached_byte_size_);
-  }
-  for (int i = 0; i < this->t_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
-      this->t(i), output);
-  }
-
-  // repeated uint64 weight = 17 [packed = true];
-  if (this->weight_size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteTag(17, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
-    output->WriteVarint32(_weight_cached_byte_size_);
-  }
-  for (int i = 0; i < this->weight_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteUInt64NoTag(
-      this->weight(i), output);
-  }
-
-  // repeated sint32 charge = 18 [packed = true];
-  if (this->charge_size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteTag(18, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
-    output->WriteVarint32(_charge_cached_byte_size_);
-  }
-  for (int i = 0; i < this->charge_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteSInt32NoTag(
-      this->charge(i), output);
-  }
-
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* ProMCEvent_Particles::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // repeated uint32 id = 1 [packed = true];
-  if (this->id_size() > 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
-      1,
-      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
-      target);
-    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
-      _id_cached_byte_size_, target);
-  }
-  for (int i = 0; i < this->id_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteUInt32NoTagToArray(this->id(i), target);
-  }
-
-  // repeated sint32 pdg_id = 2 [packed = true];
-  if (this->pdg_id_size() > 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
-      2,
-      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
-      target);
-    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
-      _pdg_id_cached_byte_size_, target);
-  }
-  for (int i = 0; i < this->pdg_id_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteSInt32NoTagToArray(this->pdg_id(i), target);
-  }
-
-  // repeated uint32 status = 3 [packed = true];
-  if (this->status_size() > 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
-      3,
-      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
-      target);
-    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
-      _status_cached_byte_size_, target);
-  }
-  for (int i = 0; i < this->status_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteUInt32NoTagToArray(this->status(i), target);
-  }
-
-  // repeated uint64 mass = 4 [packed = true];
-  if (this->mass_size() > 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
-      4,
-      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
-      target);
-    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
-      _mass_cached_byte_size_, target);
-  }
-  for (int i = 0; i < this->mass_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteUInt64NoTagToArray(this->mass(i), target);
-  }
-
-  // repeated sint64 Px = 5 [packed = true];
-  if (this->px_size() > 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
-      5,
-      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
-      target);
-    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
-      _px_cached_byte_size_, target);
-  }
-  for (int i = 0; i < this->px_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteSInt64NoTagToArray(this->px(i), target);
-  }
-
-  // repeated sint64 Py = 6 [packed = true];
-  if (this->py_size() > 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
-      6,
-      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
-      target);
-    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
-      _py_cached_byte_size_, target);
-  }
-  for (int i = 0; i < this->py_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteSInt64NoTagToArray(this->py(i), target);
-  }
-
-  // repeated sint64 Pz = 7 [packed = true];
-  if (this->pz_size() > 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
-      7,
-      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
-      target);
-    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
-      _pz_cached_byte_size_, target);
-  }
-  for (int i = 0; i < this->pz_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteSInt64NoTagToArray(this->pz(i), target);
-  }
-
-  // repeated uint32 mother1 = 8 [packed = true];
-  if (this->mother1_size() > 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
-      8,
-      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
-      target);
-    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
-      _mother1_cached_byte_size_, target);
-  }
-  for (int i = 0; i < this->mother1_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteUInt32NoTagToArray(this->mother1(i), target);
-  }
-
-  // repeated uint32 mother2 = 9 [packed = true];
-  if (this->mother2_size() > 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
-      9,
-      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
-      target);
-    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
-      _mother2_cached_byte_size_, target);
-  }
-  for (int i = 0; i < this->mother2_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteUInt32NoTagToArray(this->mother2(i), target);
-  }
-
-  // repeated uint32 daughter1 = 10 [packed = true];
-  if (this->daughter1_size() > 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
-      10,
-      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
-      target);
-    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
-      _daughter1_cached_byte_size_, target);
-  }
-  for (int i = 0; i < this->daughter1_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteUInt32NoTagToArray(this->daughter1(i), target);
-  }
-
-  // repeated uint32 daughter2 = 11 [packed = true];
-  if (this->daughter2_size() > 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
-      11,
-      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
-      target);
-    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
-      _daughter2_cached_byte_size_, target);
-  }
-  for (int i = 0; i < this->daughter2_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteUInt32NoTagToArray(this->daughter2(i), target);
-  }
-
-  // repeated sint32 barcode = 12 [packed = true];
-  if (this->barcode_size() > 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
-      12,
-      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
-      target);
-    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
-      _barcode_cached_byte_size_, target);
-  }
-  for (int i = 0; i < this->barcode_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteSInt32NoTagToArray(this->barcode(i), target);
-  }
-
-  // repeated sint32 X = 13 [packed = true];
-  if (this->x_size() > 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
-      13,
-      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
-      target);
-    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
-      _x_cached_byte_size_, target);
-  }
-  for (int i = 0; i < this->x_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteSInt32NoTagToArray(this->x(i), target);
-  }
-
-  // repeated sint32 Y = 14 [packed = true];
-  if (this->y_size() > 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
-      14,
-      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
-      target);
-    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
-      _y_cached_byte_size_, target);
-  }
-  for (int i = 0; i < this->y_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteSInt32NoTagToArray(this->y(i), target);
-  }
-
-  // repeated sint32 Z = 15 [packed = true];
-  if (this->z_size() > 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
-      15,
-      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
-      target);
-    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
-      _z_cached_byte_size_, target);
-  }
-  for (int i = 0; i < this->z_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteSInt32NoTagToArray(this->z(i), target);
-  }
-
-  // repeated uint32 T = 16 [packed = true];
-  if (this->t_size() > 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
-      16,
-      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
-      target);
-    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
-      _t_cached_byte_size_, target);
-  }
-  for (int i = 0; i < this->t_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteUInt32NoTagToArray(this->t(i), target);
-  }
-
-  // repeated uint64 weight = 17 [packed = true];
-  if (this->weight_size() > 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
-      17,
-      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
-      target);
-    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
-      _weight_cached_byte_size_, target);
-  }
-  for (int i = 0; i < this->weight_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteUInt64NoTagToArray(this->weight(i), target);
-  }
-
-  // repeated sint32 charge = 18 [packed = true];
-  if (this->charge_size() > 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
-      18,
-      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
-      target);
-    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
-      _charge_cached_byte_size_, target);
-  }
-  for (int i = 0; i < this->charge_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteSInt32NoTagToArray(this->charge(i), target);
-  }
-
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int ProMCEvent_Particles::ByteSize() const {
-  int total_size = 0;
-
-  // repeated uint32 id = 1 [packed = true];
-  {
-    int data_size = 0;
-    for (int i = 0; i < this->id_size(); i++) {
-      data_size += ::google::protobuf::internal::WireFormatLite::
-        UInt32Size(this->id(i));
-    }
-    if (data_size > 0) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
-    }
-    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _id_cached_byte_size_ = data_size;
-    GOOGLE_SAFE_CONCURRENT_WRITES_END();
-    total_size += data_size;
-  }
-
-  // repeated sint32 pdg_id = 2 [packed = true];
-  {
-    int data_size = 0;
-    for (int i = 0; i < this->pdg_id_size(); i++) {
-      data_size += ::google::protobuf::internal::WireFormatLite::
-        SInt32Size(this->pdg_id(i));
-    }
-    if (data_size > 0) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
-    }
-    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _pdg_id_cached_byte_size_ = data_size;
-    GOOGLE_SAFE_CONCURRENT_WRITES_END();
-    total_size += data_size;
-  }
-
-  // repeated uint32 status = 3 [packed = true];
-  {
-    int data_size = 0;
-    for (int i = 0; i < this->status_size(); i++) {
-      data_size += ::google::protobuf::internal::WireFormatLite::
-        UInt32Size(this->status(i));
-    }
-    if (data_size > 0) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
-    }
-    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _status_cached_byte_size_ = data_size;
-    GOOGLE_SAFE_CONCURRENT_WRITES_END();
-    total_size += data_size;
-  }
-
-  // repeated uint64 mass = 4 [packed = true];
-  {
-    int data_size = 0;
-    for (int i = 0; i < this->mass_size(); i++) {
-      data_size += ::google::protobuf::internal::WireFormatLite::
-        UInt64Size(this->mass(i));
-    }
-    if (data_size > 0) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
-    }
-    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _mass_cached_byte_size_ = data_size;
-    GOOGLE_SAFE_CONCURRENT_WRITES_END();
-    total_size += data_size;
-  }
-
-  // repeated sint64 Px = 5 [packed = true];
-  {
-    int data_size = 0;
-    for (int i = 0; i < this->px_size(); i++) {
-      data_size += ::google::protobuf::internal::WireFormatLite::
-        SInt64Size(this->px(i));
-    }
-    if (data_size > 0) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
-    }
-    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _px_cached_byte_size_ = data_size;
-    GOOGLE_SAFE_CONCURRENT_WRITES_END();
-    total_size += data_size;
-  }
-
-  // repeated sint64 Py = 6 [packed = true];
-  {
-    int data_size = 0;
-    for (int i = 0; i < this->py_size(); i++) {
-      data_size += ::google::protobuf::internal::WireFormatLite::
-        SInt64Size(this->py(i));
-    }
-    if (data_size > 0) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
-    }
-    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _py_cached_byte_size_ = data_size;
-    GOOGLE_SAFE_CONCURRENT_WRITES_END();
-    total_size += data_size;
-  }
-
-  // repeated sint64 Pz = 7 [packed = true];
-  {
-    int data_size = 0;
-    for (int i = 0; i < this->pz_size(); i++) {
-      data_size += ::google::protobuf::internal::WireFormatLite::
-        SInt64Size(this->pz(i));
-    }
-    if (data_size > 0) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
-    }
-    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _pz_cached_byte_size_ = data_size;
-    GOOGLE_SAFE_CONCURRENT_WRITES_END();
-    total_size += data_size;
-  }
-
-  // repeated uint32 mother1 = 8 [packed = true];
-  {
-    int data_size = 0;
-    for (int i = 0; i < this->mother1_size(); i++) {
-      data_size += ::google::protobuf::internal::WireFormatLite::
-        UInt32Size(this->mother1(i));
-    }
-    if (data_size > 0) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
-    }
-    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _mother1_cached_byte_size_ = data_size;
-    GOOGLE_SAFE_CONCURRENT_WRITES_END();
-    total_size += data_size;
-  }
-
-  // repeated uint32 mother2 = 9 [packed = true];
-  {
-    int data_size = 0;
-    for (int i = 0; i < this->mother2_size(); i++) {
-      data_size += ::google::protobuf::internal::WireFormatLite::
-        UInt32Size(this->mother2(i));
-    }
-    if (data_size > 0) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
-    }
-    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _mother2_cached_byte_size_ = data_size;
-    GOOGLE_SAFE_CONCURRENT_WRITES_END();
-    total_size += data_size;
-  }
-
-  // repeated uint32 daughter1 = 10 [packed = true];
-  {
-    int data_size = 0;
-    for (int i = 0; i < this->daughter1_size(); i++) {
-      data_size += ::google::protobuf::internal::WireFormatLite::
-        UInt32Size(this->daughter1(i));
-    }
-    if (data_size > 0) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
-    }
-    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _daughter1_cached_byte_size_ = data_size;
-    GOOGLE_SAFE_CONCURRENT_WRITES_END();
-    total_size += data_size;
-  }
-
-  // repeated uint32 daughter2 = 11 [packed = true];
-  {
-    int data_size = 0;
-    for (int i = 0; i < this->daughter2_size(); i++) {
-      data_size += ::google::protobuf::internal::WireFormatLite::
-        UInt32Size(this->daughter2(i));
-    }
-    if (data_size > 0) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
-    }
-    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _daughter2_cached_byte_size_ = data_size;
-    GOOGLE_SAFE_CONCURRENT_WRITES_END();
-    total_size += data_size;
-  }
-
-  // repeated sint32 barcode = 12 [packed = true];
-  {
-    int data_size = 0;
-    for (int i = 0; i < this->barcode_size(); i++) {
-      data_size += ::google::protobuf::internal::WireFormatLite::
-        SInt32Size(this->barcode(i));
-    }
-    if (data_size > 0) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
-    }
-    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _barcode_cached_byte_size_ = data_size;
-    GOOGLE_SAFE_CONCURRENT_WRITES_END();
-    total_size += data_size;
-  }
-
-  // repeated sint32 X = 13 [packed = true];
-  {
-    int data_size = 0;
-    for (int i = 0; i < this->x_size(); i++) {
-      data_size += ::google::protobuf::internal::WireFormatLite::
-        SInt32Size(this->x(i));
-    }
-    if (data_size > 0) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
-    }
-    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _x_cached_byte_size_ = data_size;
-    GOOGLE_SAFE_CONCURRENT_WRITES_END();
-    total_size += data_size;
-  }
-
-  // repeated sint32 Y = 14 [packed = true];
-  {
-    int data_size = 0;
-    for (int i = 0; i < this->y_size(); i++) {
-      data_size += ::google::protobuf::internal::WireFormatLite::
-        SInt32Size(this->y(i));
-    }
-    if (data_size > 0) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
-    }
-    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _y_cached_byte_size_ = data_size;
-    GOOGLE_SAFE_CONCURRENT_WRITES_END();
-    total_size += data_size;
-  }
-
-  // repeated sint32 Z = 15 [packed = true];
-  {
-    int data_size = 0;
-    for (int i = 0; i < this->z_size(); i++) {
-      data_size += ::google::protobuf::internal::WireFormatLite::
-        SInt32Size(this->z(i));
-    }
-    if (data_size > 0) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
-    }
-    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _z_cached_byte_size_ = data_size;
-    GOOGLE_SAFE_CONCURRENT_WRITES_END();
-    total_size += data_size;
-  }
-
-  // repeated uint32 T = 16 [packed = true];
-  {
-    int data_size = 0;
-    for (int i = 0; i < this->t_size(); i++) {
-      data_size += ::google::protobuf::internal::WireFormatLite::
-        UInt32Size(this->t(i));
-    }
-    if (data_size > 0) {
-      total_size += 2 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
-    }
-    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _t_cached_byte_size_ = data_size;
-    GOOGLE_SAFE_CONCURRENT_WRITES_END();
-    total_size += data_size;
-  }
-
-  // repeated uint64 weight = 17 [packed = true];
-  {
-    int data_size = 0;
-    for (int i = 0; i < this->weight_size(); i++) {
-      data_size += ::google::protobuf::internal::WireFormatLite::
-        UInt64Size(this->weight(i));
-    }
-    if (data_size > 0) {
-      total_size += 2 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
-    }
-    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _weight_cached_byte_size_ = data_size;
-    GOOGLE_SAFE_CONCURRENT_WRITES_END();
-    total_size += data_size;
-  }
-
-  // repeated sint32 charge = 18 [packed = true];
-  {
-    int data_size = 0;
-    for (int i = 0; i < this->charge_size(); i++) {
-      data_size += ::google::protobuf::internal::WireFormatLite::
-        SInt32Size(this->charge(i));
-    }
-    if (data_size > 0) {
-      total_size += 2 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
-    }
-    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _charge_cached_byte_size_ = data_size;
-    GOOGLE_SAFE_CONCURRENT_WRITES_END();
-    total_size += data_size;
-  }
-
-  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 ProMCEvent_Particles::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const ProMCEvent_Particles* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const ProMCEvent_Particles*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void ProMCEvent_Particles::MergeFrom(const ProMCEvent_Particles& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  id_.MergeFrom(from.id_);
-  pdg_id_.MergeFrom(from.pdg_id_);
-  status_.MergeFrom(from.status_);
-  mass_.MergeFrom(from.mass_);
-  px_.MergeFrom(from.px_);
-  py_.MergeFrom(from.py_);
-  pz_.MergeFrom(from.pz_);
-  mother1_.MergeFrom(from.mother1_);
-  mother2_.MergeFrom(from.mother2_);
-  daughter1_.MergeFrom(from.daughter1_);
-  daughter2_.MergeFrom(from.daughter2_);
-  barcode_.MergeFrom(from.barcode_);
-  x_.MergeFrom(from.x_);
-  y_.MergeFrom(from.y_);
-  z_.MergeFrom(from.z_);
-  t_.MergeFrom(from.t_);
-  weight_.MergeFrom(from.weight_);
-  charge_.MergeFrom(from.charge_);
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void ProMCEvent_Particles::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void ProMCEvent_Particles::CopyFrom(const ProMCEvent_Particles& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool ProMCEvent_Particles::IsInitialized() const {
-
-  return true;
-}
-
-void ProMCEvent_Particles::Swap(ProMCEvent_Particles* other) {
-  if (other != this) {
-    id_.Swap(&other->id_);
-    pdg_id_.Swap(&other->pdg_id_);
-    status_.Swap(&other->status_);
-    mass_.Swap(&other->mass_);
-    px_.Swap(&other->px_);
-    py_.Swap(&other->py_);
-    pz_.Swap(&other->pz_);
-    mother1_.Swap(&other->mother1_);
-    mother2_.Swap(&other->mother2_);
-    daughter1_.Swap(&other->daughter1_);
-    daughter2_.Swap(&other->daughter2_);
-    barcode_.Swap(&other->barcode_);
-    x_.Swap(&other->x_);
-    y_.Swap(&other->y_);
-    z_.Swap(&other->z_);
-    t_.Swap(&other->t_);
-    weight_.Swap(&other->weight_);
-    charge_.Swap(&other->charge_);
-    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 ProMCEvent_Particles::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = ProMCEvent_Particles_descriptor_;
-  metadata.reflection = ProMCEvent_Particles_reflection_;
-  return metadata;
-}
-
-
-// -------------------------------------------------------------------
-
-#ifndef _MSC_VER
-const int ProMCEvent::kEventFieldNumber;
-const int ProMCEvent::kParticlesFieldNumber;
-#endif  // !_MSC_VER
-
-ProMCEvent::ProMCEvent()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void ProMCEvent::InitAsDefaultInstance() {
-  event_ = const_cast< ::promc::ProMCEvent_Event*>(&::promc::ProMCEvent_Event::default_instance());
-  particles_ = const_cast< ::promc::ProMCEvent_Particles*>(&::promc::ProMCEvent_Particles::default_instance());
-}
-
-ProMCEvent::ProMCEvent(const ProMCEvent& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void ProMCEvent::SharedCtor() {
-  _cached_size_ = 0;
-  event_ = NULL;
-  particles_ = NULL;
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-ProMCEvent::~ProMCEvent() {
-  SharedDtor();
-}
-
-void ProMCEvent::SharedDtor() {
-  if (this != default_instance_) {
-    delete event_;
-    delete particles_;
-  }
-}
-
-void ProMCEvent::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* ProMCEvent::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return ProMCEvent_descriptor_;
-}
-
-const ProMCEvent& ProMCEvent::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_ProMC_2eproto();
-  return *default_instance_;
-}
-
-ProMCEvent* ProMCEvent::default_instance_ = NULL;
-
-ProMCEvent* ProMCEvent::New() const {
-  return new ProMCEvent;
-}
-
-void ProMCEvent::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (has_event()) {
-      if (event_ != NULL) event_->::promc::ProMCEvent_Event::Clear();
-    }
-    if (has_particles()) {
-      if (particles_ != NULL) particles_->::promc::ProMCEvent_Particles::Clear();
-    }
-  }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool ProMCEvent::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 .promc.ProMCEvent.Event event = 1;
-      case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-               input, mutable_event()));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(18)) goto parse_particles;
-        break;
-      }
-
-      // optional .promc.ProMCEvent.Particles particles = 2;
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_particles:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-               input, mutable_particles()));
-        } 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 ProMCEvent::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // optional .promc.ProMCEvent.Event event = 1;
-  if (has_event()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      1, this->event(), output);
-  }
-
-  // optional .promc.ProMCEvent.Particles particles = 2;
-  if (has_particles()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      2, this->particles(), output);
-  }
-
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* ProMCEvent::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // optional .promc.ProMCEvent.Event event = 1;
-  if (has_event()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        1, this->event(), target);
-  }
-
-  // optional .promc.ProMCEvent.Particles particles = 2;
-  if (has_particles()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        2, this->particles(), target);
-  }
-
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int ProMCEvent::ByteSize() const {
-  int total_size = 0;
-
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // optional .promc.ProMCEvent.Event event = 1;
-    if (has_event()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->event());
-    }
-
-    // optional .promc.ProMCEvent.Particles particles = 2;
-    if (has_particles()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->particles());
-    }
-
-  }
-  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 ProMCEvent::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const ProMCEvent* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const ProMCEvent*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void ProMCEvent::MergeFrom(const ProMCEvent& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_event()) {
-      mutable_event()->::promc::ProMCEvent_Event::MergeFrom(from.event());
-    }
-    if (from.has_particles()) {
-      mutable_particles()->::promc::ProMCEvent_Particles::MergeFrom(from.particles());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void ProMCEvent::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void ProMCEvent::CopyFrom(const ProMCEvent& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool ProMCEvent::IsInitialized() const {
-
-  return true;
-}
-
-void ProMCEvent::Swap(ProMCEvent* other) {
-  if (other != this) {
-    std::swap(event_, other->event_);
-    std::swap(particles_, other->particles_);
-    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 ProMCEvent::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = ProMCEvent_descriptor_;
-  metadata.reflection = ProMCEvent_reflection_;
-  return metadata;
-}
-
-
-// @@protoc_insertion_point(namespace_scope)
-
-}  // namespace promc
-
-// @@protoc_insertion_point(global_scope)
Index: ternal/ProMC/ProMC.pb.h
===================================================================
--- external/ProMC/ProMC.pb.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ 	(revision )
@@ -1,1540 +1,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: ProMC.proto
-
-#ifndef PROTOBUF_ProMC_2eproto__INCLUDED
-#define PROTOBUF_ProMC_2eproto__INCLUDED
-
-#include <string>
-
-#include <google/protobuf/stubs/common.h>
-
-#if GOOGLE_PROTOBUF_VERSION < 2005000
-#error This file was generated by a newer version of protoc which is
-#error incompatible with your Protocol Buffer headers.  Please update
-#error your headers.
-#endif
-#if 2005000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
-#error This file was generated by an older version of protoc which is
-#error incompatible with your Protocol Buffer headers.  Please
-#error regenerate this file with a newer version of protoc.
-#endif
-
-#include <google/protobuf/generated_message_util.h>
-#include <google/protobuf/message.h>
-#include <google/protobuf/repeated_field.h>
-#include <google/protobuf/extension_set.h>
-#include <google/protobuf/unknown_field_set.h>
-// @@protoc_insertion_point(includes)
-
-namespace promc {
-
-// Internal implementation detail -- do not call these.
-void  protobuf_AddDesc_ProMC_2eproto();
-void protobuf_AssignDesc_ProMC_2eproto();
-void protobuf_ShutdownFile_ProMC_2eproto();
-
-class ProMCEvent;
-class ProMCEvent_Event;
-class ProMCEvent_Particles;
-
-// ===================================================================
-
-class ProMCEvent_Event : public ::google::protobuf::Message {
- public:
-  ProMCEvent_Event();
-  virtual ~ProMCEvent_Event();
-
-  ProMCEvent_Event(const ProMCEvent_Event& from);
-
-  inline ProMCEvent_Event& operator=(const ProMCEvent_Event& from) {
-    CopyFrom(from);
-    return *this;
-  }
-
-  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
-  }
-
-  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
-  }
-
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const ProMCEvent_Event& default_instance();
-
-  void Swap(ProMCEvent_Event* other);
-
-  // implements Message ----------------------------------------------
-
-  ProMCEvent_Event* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const ProMCEvent_Event& from);
-  void MergeFrom(const ProMCEvent_Event& from);
-  void Clear();
-  bool IsInitialized() const;
-
-  int ByteSize() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // optional int32 Number = 1;
-  inline bool has_number() const;
-  inline void clear_number();
-  static const int kNumberFieldNumber = 1;
-  inline ::google::protobuf::int32 number() const;
-  inline void set_number(::google::protobuf::int32 value);
-
-  // optional int32 Process_ID = 2;
-  inline bool has_process_id() const;
-  inline void clear_process_id();
-  static const int kProcessIDFieldNumber = 2;
-  inline ::google::protobuf::int32 process_id() const;
-  inline void set_process_id(::google::protobuf::int32 value);
-
-  // optional int32 MPI = 3;
-  inline bool has_mpi() const;
-  inline void clear_mpi();
-  static const int kMPIFieldNumber = 3;
-  inline ::google::protobuf::int32 mpi() const;
-  inline void set_mpi(::google::protobuf::int32 value);
-
-  // optional int32 ID1 = 4;
-  inline bool has_id1() const;
-  inline void clear_id1();
-  static const int kID1FieldNumber = 4;
-  inline ::google::protobuf::int32 id1() const;
-  inline void set_id1(::google::protobuf::int32 value);
-
-  // optional int32 ID2 = 5;
-  inline bool has_id2() const;
-  inline void clear_id2();
-  static const int kID2FieldNumber = 5;
-  inline ::google::protobuf::int32 id2() const;
-  inline void set_id2(::google::protobuf::int32 value);
-
-  // optional float PDF1 = 6;
-  inline bool has_pdf1() const;
-  inline void clear_pdf1();
-  static const int kPDF1FieldNumber = 6;
-  inline float pdf1() const;
-  inline void set_pdf1(float value);
-
-  // optional float PDF2 = 7;
-  inline bool has_pdf2() const;
-  inline void clear_pdf2();
-  static const int kPDF2FieldNumber = 7;
-  inline float pdf2() const;
-  inline void set_pdf2(float value);
-
-  // optional float X1 = 8;
-  inline bool has_x1() const;
-  inline void clear_x1();
-  static const int kX1FieldNumber = 8;
-  inline float x1() const;
-  inline void set_x1(float value);
-
-  // optional float X2 = 9;
-  inline bool has_x2() const;
-  inline void clear_x2();
-  static const int kX2FieldNumber = 9;
-  inline float x2() const;
-  inline void set_x2(float value);
-
-  // optional float Scale_PDF = 10;
-  inline bool has_scale_pdf() const;
-  inline void clear_scale_pdf();
-  static const int kScalePDFFieldNumber = 10;
-  inline float scale_pdf() const;
-  inline void set_scale_pdf(float value);
-
-  // optional float Alpha_QED = 11;
-  inline bool has_alpha_qed() const;
-  inline void clear_alpha_qed();
-  static const int kAlphaQEDFieldNumber = 11;
-  inline float alpha_qed() const;
-  inline void set_alpha_qed(float value);
-
-  // optional float Scale = 12;
-  inline bool has_scale() const;
-  inline void clear_scale();
-  static const int kScaleFieldNumber = 12;
-  inline float scale() const;
-  inline void set_scale(float value);
-
-  // optional float Alpha_QCD = 13;
-  inline bool has_alpha_qcd() const;
-  inline void clear_alpha_qcd();
-  static const int kAlphaQCDFieldNumber = 13;
-  inline float alpha_qcd() const;
-  inline void set_alpha_qcd(float value);
-
-  // optional double Weight = 14;
-  inline bool has_weight() const;
-  inline void clear_weight();
-  static const int kWeightFieldNumber = 14;
-  inline double weight() const;
-  inline void set_weight(double value);
-
-  // @@protoc_insertion_point(class_scope:promc.ProMCEvent.Event)
- private:
-  inline void set_has_number();
-  inline void clear_has_number();
-  inline void set_has_process_id();
-  inline void clear_has_process_id();
-  inline void set_has_mpi();
-  inline void clear_has_mpi();
-  inline void set_has_id1();
-  inline void clear_has_id1();
-  inline void set_has_id2();
-  inline void clear_has_id2();
-  inline void set_has_pdf1();
-  inline void clear_has_pdf1();
-  inline void set_has_pdf2();
-  inline void clear_has_pdf2();
-  inline void set_has_x1();
-  inline void clear_has_x1();
-  inline void set_has_x2();
-  inline void clear_has_x2();
-  inline void set_has_scale_pdf();
-  inline void clear_has_scale_pdf();
-  inline void set_has_alpha_qed();
-  inline void clear_has_alpha_qed();
-  inline void set_has_scale();
-  inline void clear_has_scale();
-  inline void set_has_alpha_qcd();
-  inline void clear_has_alpha_qcd();
-  inline void set_has_weight();
-  inline void clear_has_weight();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
-  ::google::protobuf::int32 number_;
-  ::google::protobuf::int32 process_id_;
-  ::google::protobuf::int32 mpi_;
-  ::google::protobuf::int32 id1_;
-  ::google::protobuf::int32 id2_;
-  float pdf1_;
-  float pdf2_;
-  float x1_;
-  float x2_;
-  float scale_pdf_;
-  float alpha_qed_;
-  float scale_;
-  double weight_;
-  float alpha_qcd_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(14 + 31) / 32];
-
-  friend void  protobuf_AddDesc_ProMC_2eproto();
-  friend void protobuf_AssignDesc_ProMC_2eproto();
-  friend void protobuf_ShutdownFile_ProMC_2eproto();
-
-  void InitAsDefaultInstance();
-  static ProMCEvent_Event* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class ProMCEvent_Particles : public ::google::protobuf::Message {
- public:
-  ProMCEvent_Particles();
-  virtual ~ProMCEvent_Particles();
-
-  ProMCEvent_Particles(const ProMCEvent_Particles& from);
-
-  inline ProMCEvent_Particles& operator=(const ProMCEvent_Particles& from) {
-    CopyFrom(from);
-    return *this;
-  }
-
-  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
-  }
-
-  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
-  }
-
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const ProMCEvent_Particles& default_instance();
-
-  void Swap(ProMCEvent_Particles* other);
-
-  // implements Message ----------------------------------------------
-
-  ProMCEvent_Particles* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const ProMCEvent_Particles& from);
-  void MergeFrom(const ProMCEvent_Particles& from);
-  void Clear();
-  bool IsInitialized() const;
-
-  int ByteSize() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // repeated uint32 id = 1 [packed = true];
-  inline int id_size() const;
-  inline void clear_id();
-  static const int kIdFieldNumber = 1;
-  inline ::google::protobuf::uint32 id(int index) const;
-  inline void set_id(int index, ::google::protobuf::uint32 value);
-  inline void add_id(::google::protobuf::uint32 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-      id() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-      mutable_id();
-
-  // repeated sint32 pdg_id = 2 [packed = true];
-  inline int pdg_id_size() const;
-  inline void clear_pdg_id();
-  static const int kPdgIdFieldNumber = 2;
-  inline ::google::protobuf::int32 pdg_id(int index) const;
-  inline void set_pdg_id(int index, ::google::protobuf::int32 value);
-  inline void add_pdg_id(::google::protobuf::int32 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
-      pdg_id() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
-      mutable_pdg_id();
-
-  // repeated uint32 status = 3 [packed = true];
-  inline int status_size() const;
-  inline void clear_status();
-  static const int kStatusFieldNumber = 3;
-  inline ::google::protobuf::uint32 status(int index) const;
-  inline void set_status(int index, ::google::protobuf::uint32 value);
-  inline void add_status(::google::protobuf::uint32 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-      status() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-      mutable_status();
-
-  // repeated uint64 mass = 4 [packed = true];
-  inline int mass_size() const;
-  inline void clear_mass();
-  static const int kMassFieldNumber = 4;
-  inline ::google::protobuf::uint64 mass(int index) const;
-  inline void set_mass(int index, ::google::protobuf::uint64 value);
-  inline void add_mass(::google::protobuf::uint64 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
-      mass() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
-      mutable_mass();
-
-  // repeated sint64 Px = 5 [packed = true];
-  inline int px_size() const;
-  inline void clear_px();
-  static const int kPxFieldNumber = 5;
-  inline ::google::protobuf::int64 px(int index) const;
-  inline void set_px(int index, ::google::protobuf::int64 value);
-  inline void add_px(::google::protobuf::int64 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
-      px() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
-      mutable_px();
-
-  // repeated sint64 Py = 6 [packed = true];
-  inline int py_size() const;
-  inline void clear_py();
-  static const int kPyFieldNumber = 6;
-  inline ::google::protobuf::int64 py(int index) const;
-  inline void set_py(int index, ::google::protobuf::int64 value);
-  inline void add_py(::google::protobuf::int64 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
-      py() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
-      mutable_py();
-
-  // repeated sint64 Pz = 7 [packed = true];
-  inline int pz_size() const;
-  inline void clear_pz();
-  static const int kPzFieldNumber = 7;
-  inline ::google::protobuf::int64 pz(int index) const;
-  inline void set_pz(int index, ::google::protobuf::int64 value);
-  inline void add_pz(::google::protobuf::int64 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
-      pz() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
-      mutable_pz();
-
-  // repeated uint32 mother1 = 8 [packed = true];
-  inline int mother1_size() const;
-  inline void clear_mother1();
-  static const int kMother1FieldNumber = 8;
-  inline ::google::protobuf::uint32 mother1(int index) const;
-  inline void set_mother1(int index, ::google::protobuf::uint32 value);
-  inline void add_mother1(::google::protobuf::uint32 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-      mother1() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-      mutable_mother1();
-
-  // repeated uint32 mother2 = 9 [packed = true];
-  inline int mother2_size() const;
-  inline void clear_mother2();
-  static const int kMother2FieldNumber = 9;
-  inline ::google::protobuf::uint32 mother2(int index) const;
-  inline void set_mother2(int index, ::google::protobuf::uint32 value);
-  inline void add_mother2(::google::protobuf::uint32 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-      mother2() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-      mutable_mother2();
-
-  // repeated uint32 daughter1 = 10 [packed = true];
-  inline int daughter1_size() const;
-  inline void clear_daughter1();
-  static const int kDaughter1FieldNumber = 10;
-  inline ::google::protobuf::uint32 daughter1(int index) const;
-  inline void set_daughter1(int index, ::google::protobuf::uint32 value);
-  inline void add_daughter1(::google::protobuf::uint32 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-      daughter1() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-      mutable_daughter1();
-
-  // repeated uint32 daughter2 = 11 [packed = true];
-  inline int daughter2_size() const;
-  inline void clear_daughter2();
-  static const int kDaughter2FieldNumber = 11;
-  inline ::google::protobuf::uint32 daughter2(int index) const;
-  inline void set_daughter2(int index, ::google::protobuf::uint32 value);
-  inline void add_daughter2(::google::protobuf::uint32 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-      daughter2() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-      mutable_daughter2();
-
-  // repeated sint32 barcode = 12 [packed = true];
-  inline int barcode_size() const;
-  inline void clear_barcode();
-  static const int kBarcodeFieldNumber = 12;
-  inline ::google::protobuf::int32 barcode(int index) const;
-  inline void set_barcode(int index, ::google::protobuf::int32 value);
-  inline void add_barcode(::google::protobuf::int32 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
-      barcode() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
-      mutable_barcode();
-
-  // repeated sint32 X = 13 [packed = true];
-  inline int x_size() const;
-  inline void clear_x();
-  static const int kXFieldNumber = 13;
-  inline ::google::protobuf::int32 x(int index) const;
-  inline void set_x(int index, ::google::protobuf::int32 value);
-  inline void add_x(::google::protobuf::int32 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
-      x() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
-      mutable_x();
-
-  // repeated sint32 Y = 14 [packed = true];
-  inline int y_size() const;
-  inline void clear_y();
-  static const int kYFieldNumber = 14;
-  inline ::google::protobuf::int32 y(int index) const;
-  inline void set_y(int index, ::google::protobuf::int32 value);
-  inline void add_y(::google::protobuf::int32 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
-      y() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
-      mutable_y();
-
-  // repeated sint32 Z = 15 [packed = true];
-  inline int z_size() const;
-  inline void clear_z();
-  static const int kZFieldNumber = 15;
-  inline ::google::protobuf::int32 z(int index) const;
-  inline void set_z(int index, ::google::protobuf::int32 value);
-  inline void add_z(::google::protobuf::int32 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
-      z() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
-      mutable_z();
-
-  // repeated uint32 T = 16 [packed = true];
-  inline int t_size() const;
-  inline void clear_t();
-  static const int kTFieldNumber = 16;
-  inline ::google::protobuf::uint32 t(int index) const;
-  inline void set_t(int index, ::google::protobuf::uint32 value);
-  inline void add_t(::google::protobuf::uint32 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-      t() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-      mutable_t();
-
-  // repeated uint64 weight = 17 [packed = true];
-  inline int weight_size() const;
-  inline void clear_weight();
-  static const int kWeightFieldNumber = 17;
-  inline ::google::protobuf::uint64 weight(int index) const;
-  inline void set_weight(int index, ::google::protobuf::uint64 value);
-  inline void add_weight(::google::protobuf::uint64 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
-      weight() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
-      mutable_weight();
-
-  // repeated sint32 charge = 18 [packed = true];
-  inline int charge_size() const;
-  inline void clear_charge();
-  static const int kChargeFieldNumber = 18;
-  inline ::google::protobuf::int32 charge(int index) const;
-  inline void set_charge(int index, ::google::protobuf::int32 value);
-  inline void add_charge(::google::protobuf::int32 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
-      charge() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
-      mutable_charge();
-
-  // @@protoc_insertion_point(class_scope:promc.ProMCEvent.Particles)
- private:
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
-  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > id_;
-  mutable int _id_cached_byte_size_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > pdg_id_;
-  mutable int _pdg_id_cached_byte_size_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > status_;
-  mutable int _status_cached_byte_size_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > mass_;
-  mutable int _mass_cached_byte_size_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > px_;
-  mutable int _px_cached_byte_size_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > py_;
-  mutable int _py_cached_byte_size_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > pz_;
-  mutable int _pz_cached_byte_size_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > mother1_;
-  mutable int _mother1_cached_byte_size_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > mother2_;
-  mutable int _mother2_cached_byte_size_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > daughter1_;
-  mutable int _daughter1_cached_byte_size_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > daughter2_;
-  mutable int _daughter2_cached_byte_size_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > barcode_;
-  mutable int _barcode_cached_byte_size_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > x_;
-  mutable int _x_cached_byte_size_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > y_;
-  mutable int _y_cached_byte_size_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > z_;
-  mutable int _z_cached_byte_size_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > t_;
-  mutable int _t_cached_byte_size_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > weight_;
-  mutable int _weight_cached_byte_size_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > charge_;
-  mutable int _charge_cached_byte_size_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(18 + 31) / 32];
-
-  friend void  protobuf_AddDesc_ProMC_2eproto();
-  friend void protobuf_AssignDesc_ProMC_2eproto();
-  friend void protobuf_ShutdownFile_ProMC_2eproto();
-
-  void InitAsDefaultInstance();
-  static ProMCEvent_Particles* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class ProMCEvent : public ::google::protobuf::Message {
- public:
-  ProMCEvent();
-  virtual ~ProMCEvent();
-
-  ProMCEvent(const ProMCEvent& from);
-
-  inline ProMCEvent& operator=(const ProMCEvent& from) {
-    CopyFrom(from);
-    return *this;
-  }
-
-  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
-  }
-
-  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
-  }
-
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const ProMCEvent& default_instance();
-
-  void Swap(ProMCEvent* other);
-
-  // implements Message ----------------------------------------------
-
-  ProMCEvent* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const ProMCEvent& from);
-  void MergeFrom(const ProMCEvent& from);
-  void Clear();
-  bool IsInitialized() const;
-
-  int ByteSize() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const;
-
-  // nested types ----------------------------------------------------
-
-  typedef ProMCEvent_Event Event;
-  typedef ProMCEvent_Particles Particles;
-
-  // accessors -------------------------------------------------------
-
-  // optional .promc.ProMCEvent.Event event = 1;
-  inline bool has_event() const;
-  inline void clear_event();
-  static const int kEventFieldNumber = 1;
-  inline const ::promc::ProMCEvent_Event& event() const;
-  inline ::promc::ProMCEvent_Event* mutable_event();
-  inline ::promc::ProMCEvent_Event* release_event();
-  inline void set_allocated_event(::promc::ProMCEvent_Event* event);
-
-  // optional .promc.ProMCEvent.Particles particles = 2;
-  inline bool has_particles() const;
-  inline void clear_particles();
-  static const int kParticlesFieldNumber = 2;
-  inline const ::promc::ProMCEvent_Particles& particles() const;
-  inline ::promc::ProMCEvent_Particles* mutable_particles();
-  inline ::promc::ProMCEvent_Particles* release_particles();
-  inline void set_allocated_particles(::promc::ProMCEvent_Particles* particles);
-
-  // @@protoc_insertion_point(class_scope:promc.ProMCEvent)
- private:
-  inline void set_has_event();
-  inline void clear_has_event();
-  inline void set_has_particles();
-  inline void clear_has_particles();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
-  ::promc::ProMCEvent_Event* event_;
-  ::promc::ProMCEvent_Particles* particles_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
-
-  friend void  protobuf_AddDesc_ProMC_2eproto();
-  friend void protobuf_AssignDesc_ProMC_2eproto();
-  friend void protobuf_ShutdownFile_ProMC_2eproto();
-
-  void InitAsDefaultInstance();
-  static ProMCEvent* default_instance_;
-};
-// ===================================================================
-
-
-// ===================================================================
-
-// ProMCEvent_Event
-
-// optional int32 Number = 1;
-inline bool ProMCEvent_Event::has_number() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void ProMCEvent_Event::set_has_number() {
-  _has_bits_[0] |= 0x00000001u;
-}
-inline void ProMCEvent_Event::clear_has_number() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-inline void ProMCEvent_Event::clear_number() {
-  number_ = 0;
-  clear_has_number();
-}
-inline ::google::protobuf::int32 ProMCEvent_Event::number() const {
-  return number_;
-}
-inline void ProMCEvent_Event::set_number(::google::protobuf::int32 value) {
-  set_has_number();
-  number_ = value;
-}
-
-// optional int32 Process_ID = 2;
-inline bool ProMCEvent_Event::has_process_id() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void ProMCEvent_Event::set_has_process_id() {
-  _has_bits_[0] |= 0x00000002u;
-}
-inline void ProMCEvent_Event::clear_has_process_id() {
-  _has_bits_[0] &= ~0x00000002u;
-}
-inline void ProMCEvent_Event::clear_process_id() {
-  process_id_ = 0;
-  clear_has_process_id();
-}
-inline ::google::protobuf::int32 ProMCEvent_Event::process_id() const {
-  return process_id_;
-}
-inline void ProMCEvent_Event::set_process_id(::google::protobuf::int32 value) {
-  set_has_process_id();
-  process_id_ = value;
-}
-
-// optional int32 MPI = 3;
-inline bool ProMCEvent_Event::has_mpi() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
-}
-inline void ProMCEvent_Event::set_has_mpi() {
-  _has_bits_[0] |= 0x00000004u;
-}
-inline void ProMCEvent_Event::clear_has_mpi() {
-  _has_bits_[0] &= ~0x00000004u;
-}
-inline void ProMCEvent_Event::clear_mpi() {
-  mpi_ = 0;
-  clear_has_mpi();
-}
-inline ::google::protobuf::int32 ProMCEvent_Event::mpi() const {
-  return mpi_;
-}
-inline void ProMCEvent_Event::set_mpi(::google::protobuf::int32 value) {
-  set_has_mpi();
-  mpi_ = value;
-}
-
-// optional int32 ID1 = 4;
-inline bool ProMCEvent_Event::has_id1() const {
-  return (_has_bits_[0] & 0x00000008u) != 0;
-}
-inline void ProMCEvent_Event::set_has_id1() {
-  _has_bits_[0] |= 0x00000008u;
-}
-inline void ProMCEvent_Event::clear_has_id1() {
-  _has_bits_[0] &= ~0x00000008u;
-}
-inline void ProMCEvent_Event::clear_id1() {
-  id1_ = 0;
-  clear_has_id1();
-}
-inline ::google::protobuf::int32 ProMCEvent_Event::id1() const {
-  return id1_;
-}
-inline void ProMCEvent_Event::set_id1(::google::protobuf::int32 value) {
-  set_has_id1();
-  id1_ = value;
-}
-
-// optional int32 ID2 = 5;
-inline bool ProMCEvent_Event::has_id2() const {
-  return (_has_bits_[0] & 0x00000010u) != 0;
-}
-inline void ProMCEvent_Event::set_has_id2() {
-  _has_bits_[0] |= 0x00000010u;
-}
-inline void ProMCEvent_Event::clear_has_id2() {
-  _has_bits_[0] &= ~0x00000010u;
-}
-inline void ProMCEvent_Event::clear_id2() {
-  id2_ = 0;
-  clear_has_id2();
-}
-inline ::google::protobuf::int32 ProMCEvent_Event::id2() const {
-  return id2_;
-}
-inline void ProMCEvent_Event::set_id2(::google::protobuf::int32 value) {
-  set_has_id2();
-  id2_ = value;
-}
-
-// optional float PDF1 = 6;
-inline bool ProMCEvent_Event::has_pdf1() const {
-  return (_has_bits_[0] & 0x00000020u) != 0;
-}
-inline void ProMCEvent_Event::set_has_pdf1() {
-  _has_bits_[0] |= 0x00000020u;
-}
-inline void ProMCEvent_Event::clear_has_pdf1() {
-  _has_bits_[0] &= ~0x00000020u;
-}
-inline void ProMCEvent_Event::clear_pdf1() {
-  pdf1_ = 0;
-  clear_has_pdf1();
-}
-inline float ProMCEvent_Event::pdf1() const {
-  return pdf1_;
-}
-inline void ProMCEvent_Event::set_pdf1(float value) {
-  set_has_pdf1();
-  pdf1_ = value;
-}
-
-// optional float PDF2 = 7;
-inline bool ProMCEvent_Event::has_pdf2() const {
-  return (_has_bits_[0] & 0x00000040u) != 0;
-}
-inline void ProMCEvent_Event::set_has_pdf2() {
-  _has_bits_[0] |= 0x00000040u;
-}
-inline void ProMCEvent_Event::clear_has_pdf2() {
-  _has_bits_[0] &= ~0x00000040u;
-}
-inline void ProMCEvent_Event::clear_pdf2() {
-  pdf2_ = 0;
-  clear_has_pdf2();
-}
-inline float ProMCEvent_Event::pdf2() const {
-  return pdf2_;
-}
-inline void ProMCEvent_Event::set_pdf2(float value) {
-  set_has_pdf2();
-  pdf2_ = value;
-}
-
-// optional float X1 = 8;
-inline bool ProMCEvent_Event::has_x1() const {
-  return (_has_bits_[0] & 0x00000080u) != 0;
-}
-inline void ProMCEvent_Event::set_has_x1() {
-  _has_bits_[0] |= 0x00000080u;
-}
-inline void ProMCEvent_Event::clear_has_x1() {
-  _has_bits_[0] &= ~0x00000080u;
-}
-inline void ProMCEvent_Event::clear_x1() {
-  x1_ = 0;
-  clear_has_x1();
-}
-inline float ProMCEvent_Event::x1() const {
-  return x1_;
-}
-inline void ProMCEvent_Event::set_x1(float value) {
-  set_has_x1();
-  x1_ = value;
-}
-
-// optional float X2 = 9;
-inline bool ProMCEvent_Event::has_x2() const {
-  return (_has_bits_[0] & 0x00000100u) != 0;
-}
-inline void ProMCEvent_Event::set_has_x2() {
-  _has_bits_[0] |= 0x00000100u;
-}
-inline void ProMCEvent_Event::clear_has_x2() {
-  _has_bits_[0] &= ~0x00000100u;
-}
-inline void ProMCEvent_Event::clear_x2() {
-  x2_ = 0;
-  clear_has_x2();
-}
-inline float ProMCEvent_Event::x2() const {
-  return x2_;
-}
-inline void ProMCEvent_Event::set_x2(float value) {
-  set_has_x2();
-  x2_ = value;
-}
-
-// optional float Scale_PDF = 10;
-inline bool ProMCEvent_Event::has_scale_pdf() const {
-  return (_has_bits_[0] & 0x00000200u) != 0;
-}
-inline void ProMCEvent_Event::set_has_scale_pdf() {
-  _has_bits_[0] |= 0x00000200u;
-}
-inline void ProMCEvent_Event::clear_has_scale_pdf() {
-  _has_bits_[0] &= ~0x00000200u;
-}
-inline void ProMCEvent_Event::clear_scale_pdf() {
-  scale_pdf_ = 0;
-  clear_has_scale_pdf();
-}
-inline float ProMCEvent_Event::scale_pdf() const {
-  return scale_pdf_;
-}
-inline void ProMCEvent_Event::set_scale_pdf(float value) {
-  set_has_scale_pdf();
-  scale_pdf_ = value;
-}
-
-// optional float Alpha_QED = 11;
-inline bool ProMCEvent_Event::has_alpha_qed() const {
-  return (_has_bits_[0] & 0x00000400u) != 0;
-}
-inline void ProMCEvent_Event::set_has_alpha_qed() {
-  _has_bits_[0] |= 0x00000400u;
-}
-inline void ProMCEvent_Event::clear_has_alpha_qed() {
-  _has_bits_[0] &= ~0x00000400u;
-}
-inline void ProMCEvent_Event::clear_alpha_qed() {
-  alpha_qed_ = 0;
-  clear_has_alpha_qed();
-}
-inline float ProMCEvent_Event::alpha_qed() const {
-  return alpha_qed_;
-}
-inline void ProMCEvent_Event::set_alpha_qed(float value) {
-  set_has_alpha_qed();
-  alpha_qed_ = value;
-}
-
-// optional float Scale = 12;
-inline bool ProMCEvent_Event::has_scale() const {
-  return (_has_bits_[0] & 0x00000800u) != 0;
-}
-inline void ProMCEvent_Event::set_has_scale() {
-  _has_bits_[0] |= 0x00000800u;
-}
-inline void ProMCEvent_Event::clear_has_scale() {
-  _has_bits_[0] &= ~0x00000800u;
-}
-inline void ProMCEvent_Event::clear_scale() {
-  scale_ = 0;
-  clear_has_scale();
-}
-inline float ProMCEvent_Event::scale() const {
-  return scale_;
-}
-inline void ProMCEvent_Event::set_scale(float value) {
-  set_has_scale();
-  scale_ = value;
-}
-
-// optional float Alpha_QCD = 13;
-inline bool ProMCEvent_Event::has_alpha_qcd() const {
-  return (_has_bits_[0] & 0x00001000u) != 0;
-}
-inline void ProMCEvent_Event::set_has_alpha_qcd() {
-  _has_bits_[0] |= 0x00001000u;
-}
-inline void ProMCEvent_Event::clear_has_alpha_qcd() {
-  _has_bits_[0] &= ~0x00001000u;
-}
-inline void ProMCEvent_Event::clear_alpha_qcd() {
-  alpha_qcd_ = 0;
-  clear_has_alpha_qcd();
-}
-inline float ProMCEvent_Event::alpha_qcd() const {
-  return alpha_qcd_;
-}
-inline void ProMCEvent_Event::set_alpha_qcd(float value) {
-  set_has_alpha_qcd();
-  alpha_qcd_ = value;
-}
-
-// optional double Weight = 14;
-inline bool ProMCEvent_Event::has_weight() const {
-  return (_has_bits_[0] & 0x00002000u) != 0;
-}
-inline void ProMCEvent_Event::set_has_weight() {
-  _has_bits_[0] |= 0x00002000u;
-}
-inline void ProMCEvent_Event::clear_has_weight() {
-  _has_bits_[0] &= ~0x00002000u;
-}
-inline void ProMCEvent_Event::clear_weight() {
-  weight_ = 0;
-  clear_has_weight();
-}
-inline double ProMCEvent_Event::weight() const {
-  return weight_;
-}
-inline void ProMCEvent_Event::set_weight(double value) {
-  set_has_weight();
-  weight_ = value;
-}
-
-// -------------------------------------------------------------------
-
-// ProMCEvent_Particles
-
-// repeated uint32 id = 1 [packed = true];
-inline int ProMCEvent_Particles::id_size() const {
-  return id_.size();
-}
-inline void ProMCEvent_Particles::clear_id() {
-  id_.Clear();
-}
-inline ::google::protobuf::uint32 ProMCEvent_Particles::id(int index) const {
-  return id_.Get(index);
-}
-inline void ProMCEvent_Particles::set_id(int index, ::google::protobuf::uint32 value) {
-  id_.Set(index, value);
-}
-inline void ProMCEvent_Particles::add_id(::google::protobuf::uint32 value) {
-  id_.Add(value);
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-ProMCEvent_Particles::id() const {
-  return id_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-ProMCEvent_Particles::mutable_id() {
-  return &id_;
-}
-
-// repeated sint32 pdg_id = 2 [packed = true];
-inline int ProMCEvent_Particles::pdg_id_size() const {
-  return pdg_id_.size();
-}
-inline void ProMCEvent_Particles::clear_pdg_id() {
-  pdg_id_.Clear();
-}
-inline ::google::protobuf::int32 ProMCEvent_Particles::pdg_id(int index) const {
-  return pdg_id_.Get(index);
-}
-inline void ProMCEvent_Particles::set_pdg_id(int index, ::google::protobuf::int32 value) {
-  pdg_id_.Set(index, value);
-}
-inline void ProMCEvent_Particles::add_pdg_id(::google::protobuf::int32 value) {
-  pdg_id_.Add(value);
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
-ProMCEvent_Particles::pdg_id() const {
-  return pdg_id_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
-ProMCEvent_Particles::mutable_pdg_id() {
-  return &pdg_id_;
-}
-
-// repeated uint32 status = 3 [packed = true];
-inline int ProMCEvent_Particles::status_size() const {
-  return status_.size();
-}
-inline void ProMCEvent_Particles::clear_status() {
-  status_.Clear();
-}
-inline ::google::protobuf::uint32 ProMCEvent_Particles::status(int index) const {
-  return status_.Get(index);
-}
-inline void ProMCEvent_Particles::set_status(int index, ::google::protobuf::uint32 value) {
-  status_.Set(index, value);
-}
-inline void ProMCEvent_Particles::add_status(::google::protobuf::uint32 value) {
-  status_.Add(value);
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-ProMCEvent_Particles::status() const {
-  return status_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-ProMCEvent_Particles::mutable_status() {
-  return &status_;
-}
-
-// repeated uint64 mass = 4 [packed = true];
-inline int ProMCEvent_Particles::mass_size() const {
-  return mass_.size();
-}
-inline void ProMCEvent_Particles::clear_mass() {
-  mass_.Clear();
-}
-inline ::google::protobuf::uint64 ProMCEvent_Particles::mass(int index) const {
-  return mass_.Get(index);
-}
-inline void ProMCEvent_Particles::set_mass(int index, ::google::protobuf::uint64 value) {
-  mass_.Set(index, value);
-}
-inline void ProMCEvent_Particles::add_mass(::google::protobuf::uint64 value) {
-  mass_.Add(value);
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
-ProMCEvent_Particles::mass() const {
-  return mass_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
-ProMCEvent_Particles::mutable_mass() {
-  return &mass_;
-}
-
-// repeated sint64 Px = 5 [packed = true];
-inline int ProMCEvent_Particles::px_size() const {
-  return px_.size();
-}
-inline void ProMCEvent_Particles::clear_px() {
-  px_.Clear();
-}
-inline ::google::protobuf::int64 ProMCEvent_Particles::px(int index) const {
-  return px_.Get(index);
-}
-inline void ProMCEvent_Particles::set_px(int index, ::google::protobuf::int64 value) {
-  px_.Set(index, value);
-}
-inline void ProMCEvent_Particles::add_px(::google::protobuf::int64 value) {
-  px_.Add(value);
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
-ProMCEvent_Particles::px() const {
-  return px_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
-ProMCEvent_Particles::mutable_px() {
-  return &px_;
-}
-
-// repeated sint64 Py = 6 [packed = true];
-inline int ProMCEvent_Particles::py_size() const {
-  return py_.size();
-}
-inline void ProMCEvent_Particles::clear_py() {
-  py_.Clear();
-}
-inline ::google::protobuf::int64 ProMCEvent_Particles::py(int index) const {
-  return py_.Get(index);
-}
-inline void ProMCEvent_Particles::set_py(int index, ::google::protobuf::int64 value) {
-  py_.Set(index, value);
-}
-inline void ProMCEvent_Particles::add_py(::google::protobuf::int64 value) {
-  py_.Add(value);
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
-ProMCEvent_Particles::py() const {
-  return py_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
-ProMCEvent_Particles::mutable_py() {
-  return &py_;
-}
-
-// repeated sint64 Pz = 7 [packed = true];
-inline int ProMCEvent_Particles::pz_size() const {
-  return pz_.size();
-}
-inline void ProMCEvent_Particles::clear_pz() {
-  pz_.Clear();
-}
-inline ::google::protobuf::int64 ProMCEvent_Particles::pz(int index) const {
-  return pz_.Get(index);
-}
-inline void ProMCEvent_Particles::set_pz(int index, ::google::protobuf::int64 value) {
-  pz_.Set(index, value);
-}
-inline void ProMCEvent_Particles::add_pz(::google::protobuf::int64 value) {
-  pz_.Add(value);
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
-ProMCEvent_Particles::pz() const {
-  return pz_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
-ProMCEvent_Particles::mutable_pz() {
-  return &pz_;
-}
-
-// repeated uint32 mother1 = 8 [packed = true];
-inline int ProMCEvent_Particles::mother1_size() const {
-  return mother1_.size();
-}
-inline void ProMCEvent_Particles::clear_mother1() {
-  mother1_.Clear();
-}
-inline ::google::protobuf::uint32 ProMCEvent_Particles::mother1(int index) const {
-  return mother1_.Get(index);
-}
-inline void ProMCEvent_Particles::set_mother1(int index, ::google::protobuf::uint32 value) {
-  mother1_.Set(index, value);
-}
-inline void ProMCEvent_Particles::add_mother1(::google::protobuf::uint32 value) {
-  mother1_.Add(value);
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-ProMCEvent_Particles::mother1() const {
-  return mother1_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-ProMCEvent_Particles::mutable_mother1() {
-  return &mother1_;
-}
-
-// repeated uint32 mother2 = 9 [packed = true];
-inline int ProMCEvent_Particles::mother2_size() const {
-  return mother2_.size();
-}
-inline void ProMCEvent_Particles::clear_mother2() {
-  mother2_.Clear();
-}
-inline ::google::protobuf::uint32 ProMCEvent_Particles::mother2(int index) const {
-  return mother2_.Get(index);
-}
-inline void ProMCEvent_Particles::set_mother2(int index, ::google::protobuf::uint32 value) {
-  mother2_.Set(index, value);
-}
-inline void ProMCEvent_Particles::add_mother2(::google::protobuf::uint32 value) {
-  mother2_.Add(value);
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-ProMCEvent_Particles::mother2() const {
-  return mother2_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-ProMCEvent_Particles::mutable_mother2() {
-  return &mother2_;
-}
-
-// repeated uint32 daughter1 = 10 [packed = true];
-inline int ProMCEvent_Particles::daughter1_size() const {
-  return daughter1_.size();
-}
-inline void ProMCEvent_Particles::clear_daughter1() {
-  daughter1_.Clear();
-}
-inline ::google::protobuf::uint32 ProMCEvent_Particles::daughter1(int index) const {
-  return daughter1_.Get(index);
-}
-inline void ProMCEvent_Particles::set_daughter1(int index, ::google::protobuf::uint32 value) {
-  daughter1_.Set(index, value);
-}
-inline void ProMCEvent_Particles::add_daughter1(::google::protobuf::uint32 value) {
-  daughter1_.Add(value);
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-ProMCEvent_Particles::daughter1() const {
-  return daughter1_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-ProMCEvent_Particles::mutable_daughter1() {
-  return &daughter1_;
-}
-
-// repeated uint32 daughter2 = 11 [packed = true];
-inline int ProMCEvent_Particles::daughter2_size() const {
-  return daughter2_.size();
-}
-inline void ProMCEvent_Particles::clear_daughter2() {
-  daughter2_.Clear();
-}
-inline ::google::protobuf::uint32 ProMCEvent_Particles::daughter2(int index) const {
-  return daughter2_.Get(index);
-}
-inline void ProMCEvent_Particles::set_daughter2(int index, ::google::protobuf::uint32 value) {
-  daughter2_.Set(index, value);
-}
-inline void ProMCEvent_Particles::add_daughter2(::google::protobuf::uint32 value) {
-  daughter2_.Add(value);
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-ProMCEvent_Particles::daughter2() const {
-  return daughter2_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-ProMCEvent_Particles::mutable_daughter2() {
-  return &daughter2_;
-}
-
-// repeated sint32 barcode = 12 [packed = true];
-inline int ProMCEvent_Particles::barcode_size() const {
-  return barcode_.size();
-}
-inline void ProMCEvent_Particles::clear_barcode() {
-  barcode_.Clear();
-}
-inline ::google::protobuf::int32 ProMCEvent_Particles::barcode(int index) const {
-  return barcode_.Get(index);
-}
-inline void ProMCEvent_Particles::set_barcode(int index, ::google::protobuf::int32 value) {
-  barcode_.Set(index, value);
-}
-inline void ProMCEvent_Particles::add_barcode(::google::protobuf::int32 value) {
-  barcode_.Add(value);
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
-ProMCEvent_Particles::barcode() const {
-  return barcode_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
-ProMCEvent_Particles::mutable_barcode() {
-  return &barcode_;
-}
-
-// repeated sint32 X = 13 [packed = true];
-inline int ProMCEvent_Particles::x_size() const {
-  return x_.size();
-}
-inline void ProMCEvent_Particles::clear_x() {
-  x_.Clear();
-}
-inline ::google::protobuf::int32 ProMCEvent_Particles::x(int index) const {
-  return x_.Get(index);
-}
-inline void ProMCEvent_Particles::set_x(int index, ::google::protobuf::int32 value) {
-  x_.Set(index, value);
-}
-inline void ProMCEvent_Particles::add_x(::google::protobuf::int32 value) {
-  x_.Add(value);
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
-ProMCEvent_Particles::x() const {
-  return x_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
-ProMCEvent_Particles::mutable_x() {
-  return &x_;
-}
-
-// repeated sint32 Y = 14 [packed = true];
-inline int ProMCEvent_Particles::y_size() const {
-  return y_.size();
-}
-inline void ProMCEvent_Particles::clear_y() {
-  y_.Clear();
-}
-inline ::google::protobuf::int32 ProMCEvent_Particles::y(int index) const {
-  return y_.Get(index);
-}
-inline void ProMCEvent_Particles::set_y(int index, ::google::protobuf::int32 value) {
-  y_.Set(index, value);
-}
-inline void ProMCEvent_Particles::add_y(::google::protobuf::int32 value) {
-  y_.Add(value);
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
-ProMCEvent_Particles::y() const {
-  return y_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
-ProMCEvent_Particles::mutable_y() {
-  return &y_;
-}
-
-// repeated sint32 Z = 15 [packed = true];
-inline int ProMCEvent_Particles::z_size() const {
-  return z_.size();
-}
-inline void ProMCEvent_Particles::clear_z() {
-  z_.Clear();
-}
-inline ::google::protobuf::int32 ProMCEvent_Particles::z(int index) const {
-  return z_.Get(index);
-}
-inline void ProMCEvent_Particles::set_z(int index, ::google::protobuf::int32 value) {
-  z_.Set(index, value);
-}
-inline void ProMCEvent_Particles::add_z(::google::protobuf::int32 value) {
-  z_.Add(value);
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
-ProMCEvent_Particles::z() const {
-  return z_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
-ProMCEvent_Particles::mutable_z() {
-  return &z_;
-}
-
-// repeated uint32 T = 16 [packed = true];
-inline int ProMCEvent_Particles::t_size() const {
-  return t_.size();
-}
-inline void ProMCEvent_Particles::clear_t() {
-  t_.Clear();
-}
-inline ::google::protobuf::uint32 ProMCEvent_Particles::t(int index) const {
-  return t_.Get(index);
-}
-inline void ProMCEvent_Particles::set_t(int index, ::google::protobuf::uint32 value) {
-  t_.Set(index, value);
-}
-inline void ProMCEvent_Particles::add_t(::google::protobuf::uint32 value) {
-  t_.Add(value);
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-ProMCEvent_Particles::t() const {
-  return t_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-ProMCEvent_Particles::mutable_t() {
-  return &t_;
-}
-
-// repeated uint64 weight = 17 [packed = true];
-inline int ProMCEvent_Particles::weight_size() const {
-  return weight_.size();
-}
-inline void ProMCEvent_Particles::clear_weight() {
-  weight_.Clear();
-}
-inline ::google::protobuf::uint64 ProMCEvent_Particles::weight(int index) const {
-  return weight_.Get(index);
-}
-inline void ProMCEvent_Particles::set_weight(int index, ::google::protobuf::uint64 value) {
-  weight_.Set(index, value);
-}
-inline void ProMCEvent_Particles::add_weight(::google::protobuf::uint64 value) {
-  weight_.Add(value);
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
-ProMCEvent_Particles::weight() const {
-  return weight_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
-ProMCEvent_Particles::mutable_weight() {
-  return &weight_;
-}
-
-// repeated sint32 charge = 18 [packed = true];
-inline int ProMCEvent_Particles::charge_size() const {
-  return charge_.size();
-}
-inline void ProMCEvent_Particles::clear_charge() {
-  charge_.Clear();
-}
-inline ::google::protobuf::int32 ProMCEvent_Particles::charge(int index) const {
-  return charge_.Get(index);
-}
-inline void ProMCEvent_Particles::set_charge(int index, ::google::protobuf::int32 value) {
-  charge_.Set(index, value);
-}
-inline void ProMCEvent_Particles::add_charge(::google::protobuf::int32 value) {
-  charge_.Add(value);
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
-ProMCEvent_Particles::charge() const {
-  return charge_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
-ProMCEvent_Particles::mutable_charge() {
-  return &charge_;
-}
-
-// -------------------------------------------------------------------
-
-// ProMCEvent
-
-// optional .promc.ProMCEvent.Event event = 1;
-inline bool ProMCEvent::has_event() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void ProMCEvent::set_has_event() {
-  _has_bits_[0] |= 0x00000001u;
-}
-inline void ProMCEvent::clear_has_event() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-inline void ProMCEvent::clear_event() {
-  if (event_ != NULL) event_->::promc::ProMCEvent_Event::Clear();
-  clear_has_event();
-}
-inline const ::promc::ProMCEvent_Event& ProMCEvent::event() const {
-  return event_ != NULL ? *event_ : *default_instance_->event_;
-}
-inline ::promc::ProMCEvent_Event* ProMCEvent::mutable_event() {
-  set_has_event();
-  if (event_ == NULL) event_ = new ::promc::ProMCEvent_Event;
-  return event_;
-}
-inline ::promc::ProMCEvent_Event* ProMCEvent::release_event() {
-  clear_has_event();
-  ::promc::ProMCEvent_Event* temp = event_;
-  event_ = NULL;
-  return temp;
-}
-inline void ProMCEvent::set_allocated_event(::promc::ProMCEvent_Event* event) {
-  delete event_;
-  event_ = event;
-  if (event) {
-    set_has_event();
-  } else {
-    clear_has_event();
-  }
-}
-
-// optional .promc.ProMCEvent.Particles particles = 2;
-inline bool ProMCEvent::has_particles() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void ProMCEvent::set_has_particles() {
-  _has_bits_[0] |= 0x00000002u;
-}
-inline void ProMCEvent::clear_has_particles() {
-  _has_bits_[0] &= ~0x00000002u;
-}
-inline void ProMCEvent::clear_particles() {
-  if (particles_ != NULL) particles_->::promc::ProMCEvent_Particles::Clear();
-  clear_has_particles();
-}
-inline const ::promc::ProMCEvent_Particles& ProMCEvent::particles() const {
-  return particles_ != NULL ? *particles_ : *default_instance_->particles_;
-}
-inline ::promc::ProMCEvent_Particles* ProMCEvent::mutable_particles() {
-  set_has_particles();
-  if (particles_ == NULL) particles_ = new ::promc::ProMCEvent_Particles;
-  return particles_;
-}
-inline ::promc::ProMCEvent_Particles* ProMCEvent::release_particles() {
-  clear_has_particles();
-  ::promc::ProMCEvent_Particles* temp = particles_;
-  particles_ = NULL;
-  return temp;
-}
-inline void ProMCEvent::set_allocated_particles(::promc::ProMCEvent_Particles* particles) {
-  delete particles_;
-  particles_ = particles;
-  if (particles) {
-    set_has_particles();
-  } else {
-    clear_has_particles();
-  }
-}
-
-
-// @@protoc_insertion_point(namespace_scope)
-
-}  // namespace promc
-
-#ifndef SWIG
-namespace google {
-namespace protobuf {
-
-
-}  // namespace google
-}  // namespace protobuf
-#endif  // SWIG
-
-// @@protoc_insertion_point(global_scope)
-
-#endif  // PROTOBUF_ProMC_2eproto__INCLUDED
Index: ternal/ProMC/ProMCBook.cc
===================================================================
--- external/ProMC/ProMCBook.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ 	(revision )
@@ -1,611 +1,0 @@
-/* ---------------------------------------------------------------------------
-** This software is in the public domain, furnished "as is", without technical
-** support, and with no warranty, express or implied, as to its usefulness for
-** any purpose.
-**
-**  A library for HEP events storage and processing based on Google's ProtocolBuffers 
-**
-** Author: S.Chekanov (ANL). chekanov@anl.gov
-** Copyright  March, 2013 
-** -------------------------------------------------------------------------*/
-
-
-
-#include "ProMCBook.h"
-
-bool replace(std::string& str, const std::string& from, const std::string& to) {
-	size_t start_pos = str.find(from);
-	if(start_pos == std::string::npos)
-		return false;
-	str.replace(start_pos, from.length(), to);
-	return true;
-}
-
-
-
-ProMCBook::ProMCBook(){ nev=0; isToWrite=false; }
-
-ProMCBook::~ProMCBook(){ }
-
-ProMCBook::ProMCBook(const char* filename, const char* option){
-
-	open(filename,option);
-
-}
-
-
-/* This is a function to read or write ProMC file */
-void ProMCBook::open(const char* filename, const char* option) {
-
-	//cout << "PoMC Version: " << PROMCBOOK_VERSION << endl;
-
-
-	GOOGLE_PROTOBUF_VERIFY_VERSION;
-	nev=0;
-
-	if (strcmp(option,"w")==0) {
-		isToWrite=true;
-		cout << "ProMCBook: Writing file = " << filename << endl;
-		outzip = new ZipOutputStream(filename);
-		description="none";
-
-		outzip->putNextEntry( "version" ) ;
-		std::stringstream out;
-		out << current_version;
-		(*outzip) << out.str();
-
-
-	}  else if (strcmp(option,"r")==0) {
-		isToWrite=false;
-		ifstream file(filename);
-		if (!file)
-		{
-			cout << "-> Error: File =" << filename << " does not exist " << endl;
-			cout << "->        The program will exit.." << endl;
-			exit(1);
-		}
-		file.close();
-		cout << "ProMCBook: Reading file = " << filename << endl;
-
-
-		zfile = new ZipFile( filename );
-		unsigned nlength=zfile->size();
-		// reverse iteration over all entries
-		// we loop until the last event is found.
-		// this is triggered by promc_description entry which follows
-		// after the last event
-		ConstEntries entries =zfile->entries() ;
-		ConstEntries::iterator it ;
-		vector<string> metatext;
-		for( it = entries.end() ; it != entries.begin();) {
-			--it;
-			// cout << *(*it) << endl ;
-			std::stringstream sout;
-			sout << *(*it);
-			string ss=sout.str();
-			metatext.push_back(ss);
-			std::size_t found = ss.find("promc_description");
-			if (found != std::string::npos) {
-				// istream * stt= zf.getInputStream(ss);
-				//  cout << stt->rdbuf() << endl;
-				// cout << "Contents of entry 1: " << cout << stt->rdbuf() << endl;
-				// sentry=ss;
-				//ConstEntryPointer ent = zf.getEntry(ss, FileCollection::MATCH );
-				//if ( ent == 0 ) break;
-				//auto_ptr< istream > is( zf.getInputStream( ent ) ) ;
-				//cout << "Contents of entry 1: " << ent->getName() << " :" << endl ;
-				//cout << is->rdbuf() ;
-				break;
-			}
-		}
-
-
-		// calculate the total number of entries from the file
-		nev=nlength-metatext.size()-3; // 3 is the count for version,description,header
-                // this is intresting: to get promc_nevents, you must call previous entry promc_description
-                istream * stt = zfile->getInputStream( "promc_description", FileCollection::IGNORE ); 
-		// ConstEntryPointer ent = zfile->getEntry( "promc_description", FileCollection::IGNORE ) ;
-		if ( stt != 0 ) {
-			// auto_ptr< istream > is( zfile->getInputStream( ent ) ) ;
-			//  cout << is->rdbuf() ;
-			 std::stringstream sout;
-			 sout << stt->rdbuf();
-			 string ss=sout.str();
-                         cout << "DEBUG=" << ss << endl;
-			// int nnev = atoi(ss.c_str());
-		}
-
-
-		// do not close to allow for random access. Close at the very end.
-		// zfile->close();
-
-
-
-		// read it
-		inpzip = new ZipInputStream(filename);
-		try {
-			// version
-			std::stringstream sout;
-			sout << inpzip->rdbuf();
-			string ss=sout.str();
-			version = atoi(ss.c_str());
-
-
-			next();
-
-
-
-
-			try {
-
-				ProMCDescription h;
-				std::stringstream sout;
-				sout << inpzip->rdbuf();
-				h.ParseFromIstream(&sout);
-
-				// get info
-				version = h.version();
-				description=h.description();
-				timestamp=h.timestamp();
-				requested_nev=h.events();
-				cout << "ProMCBook: version     = " << version << endl;
-				cout << "ProMCBook: Nr entries  = " << nev << endl;
-				cout << "ProMCBook: description = " << description << endl;
-
-
-			} catch( IOException &e ) {
-				cerr << "IOException caught in fetching description:" << endl ;
-				cerr << e.what() << endl ;
-			}
-			catch( ... ) {
-				cerr << "Unspecified exception caught in fetching description:" << endl ;
-			}
-
-
-
-
-
-
-
-
-		} catch( IOException &e ) {
-			cerr << "IOException caught in ProMCBook:" << endl ;
-			cerr << e.what() << endl ;
-		}
-		catch( ... ) {
-			cerr << "Unspecified exception caught in ProMCBook:" << endl ;
-		}
-
-	}
-
-
-
-	/*
-	  try {
-	    zipios::ConstEntryPointer entry =inpzip->getNextEntry() ;
-	    if(entry->isValid()) { 
-	          std::stringstream sout;
-	          sout << inpzip->rdbuf();
-	          header.ParseFromIstream(&sout);
-	    }
-	  } catch( IOException &e ) {
-	    cerr << "IOException caught in ProMCBook:" << endl ;
-	    cerr << e.what() << endl ;
-	   }
-	   catch( ... ) {
-	      cerr << "Unspecified exception caught in ProMCBook:" << endl ;
-	  }
-	*/
-
-
-}
-
-
-
-
-/**
-
-Return the number of records.
-
-@return Return the size of all records (excluding metadata)
-**/
-unsigned int  ProMCBook::size()
-{
-	return  nev;
-}
-
-
-
-
-/**
- Get the next record.
- 
- @return 0 if the record was extracted OK. 6, or 7 if there is a problem
-
-**/
-
-int  ProMCBook::next(){
-
-
-	try {
-		if (inpzip == NULL) return 1;
-		if (inpzip->eof()) return 2;
-		if (inpzip->fail()) return 3;
-		if (inpzip->bad()) return 4;
-		zipios::ConstEntryPointer entry =inpzip->getNextEntry() ;
-		if(!entry->isValid()) return 5;
-
-	} catch( IOException &e ) {
-		// cerr << "IOException caught in main:" << endl ;
-		// cerr << e.what() << endl ;
-		return 6;
-	}
-	catch( ... ) {
-		//cerr << "Unspecified exception caught in main:" << endl ;
-		return 7;
-	}
-
-
-	return 0;
-}
-
-
-
-/**
- Get the record with the header file.
- @param Header file record.
-**/
-ProMCHeader ProMCBook::getHeader(){
-
-	// go to next event
-	next();
-
-	ProMCHeader h;
-
-	try {
-		std::stringstream sout;
-		sout << inpzip->rdbuf();
-		h.ParseFromIstream(&sout);
-	} catch( IOException &e ) {
-		cerr << "IOException caught in main:" << endl ;
-		cerr << e.what() << endl ;
-	}
-	catch( ... ) {
-		cerr << "Unspecified exception caught in main:" << endl ;
-	}
-
-	return h;
-
-}
-
-
-
-/**
- Get a data record (event) using a random access. 
- Use a key to extract the record. The key value
- runs from "0" to size()-1. 
-
- @param key (long) of the record
- @return ProMCEvent record corresponding to this key.
-**/
-ProMCEvent ProMCBook::event(long  idx){
-
-  ProMCEvent eve;
-
-  idx=idx-1;
-
-  std::stringstream ss;
-  ss << idx;
-  string key=ss.str();
-
-  if (idx==-1) key="header";
-
-   
-
-   try {
-
-                istream * stt = zfile->getInputStream( key, FileCollection::IGNORE );
-                std::stringstream sout;
-                sout << stt->rdbuf();
-                eve.ParseFromIstream(&sout);
-                return eve;
-              }  catch( ... ) {
-                cerr << "Unspecified exception caught in main for the key:" << key << endl ;
-                return eve; 
-              }
-}
-
-
-/**
-  Get the next record. Make sure you can next() first.
-  @return ProMCEvent record.
-
-**/
-ProMCEvent ProMCBook::get(){
-
-	ProMCEvent eve;
-
-	try {
-
-		std::stringstream sout;
-		sout << inpzip->rdbuf();
-		eve.ParseFromIstream(&sout);
-		return eve;
-
-		//   if (inpzip->good())
-		//                    return eve;
-
-
-	} catch( IOException &e ) {
-		cerr << "IOException caught in main:" << endl ;
-		cerr << e.what() << endl ;
-	}
-	catch( ... ) {
-		cerr << "Unspecified exception caught in main:" << endl ;
-	}
-
-
-	/*
-	   zipios::ConstEntryPointer entry =inpzip->getNextEntry() ;
-
-	  if (entry->isValid()) {
-
-	    ProMCEvent eve;
-
-	    // entry->toString().c_str()
-	    fstream input;
-	    input<<entry;
-	//    std::istream *str = &zipstream;
-
-	    eve.ParseFromIstream(&input);
-	    
-
-	   } 
-	*/
-
-	return eve;
-
-}
-
-
-
-/**
- Clear all streams (dummmy)
-**/
-void ProMCBook::clear()
-{
-
-}
-
-/**
- Set a header file.
- 
- @param h Header file.
-
-**/
-void ProMCBook::setHeader( ProMCHeader h ) {
-
-	std::string out;
-	if (!h.SerializeToString(&out)) {
-		cerr << "Failed to write header" << endl;
-	}
-	outzip->putNextEntry( "header" ) ;
-	(*outzip) << out;
-	h.Clear();
-}
-
-
-/**
-  Set statistics information
-  @param h Statistics info
-**/
-void ProMCBook::setStatistics( ProMCStat h ) {
-	hStat=h;
-}
-
-
-/**
-
- Set the description information.
-  @param requested_events Requested events (not the actual!)
-  @param describe description
-
-**/
-void ProMCBook::setDescription( int requested_events, string  describe ) {
-
-
-	description=describe;
-
-	std::time_t t = std::time(0);  // t is an integer type
-
-	ProMCDescription  eve;
-	eve.set_version(current_version);
-	eve.set_description(description);
-	eve.set_events(requested_events);
-	eve.set_timestamp((int)t);
-	std::string out;
-	if (!eve.SerializeToString(&out)) {
-		cerr << "Failed to write description" << endl;
-	}
-	outzip->putNextEntry( "description" ) ;
-	(*outzip) << out;
-	eve.Clear();
-
-
-
-}
-
-
-
-
-
-/**
- Write an event.
- 
- @param eve Event to be written.
-
-**/
-void ProMCBook::write( ProMCEvent eve ) {
-
-	std::string out;
-	if (!eve.SerializeToString(&out)) {
-		cerr << "Failed to write event" << endl;
-	}
-
-	std::stringstream sout;
-	sout << nev;
-	outzip->putNextEntry( sout.str() ) ;
-	(*outzip) << out;
-	nev++;
-	eve.Clear();
-}
-
-
-
-/**
- Close all files and write metadata.
-
-**/
-void ProMCBook::close() {
-
-
-	if (isToWrite==true) {
-
-
-
-		cout << " ##### Closing ProMC ##### " << endl;
-		string filename;
-
-
-		// description. always comes after the last event
-		outzip->putNextEntry( "promc_description" ) ;
-		std::stringstream out2;
-		out2 << description;
-		(*outzip) << out2.str();
-
-		// write number of processed events
-		outzip->putNextEntry( "promc_nevents" ) ;
-		std::stringstream out1;
-		out1 << nev;
-		(*outzip) << out1.str();
-
-
-		// write statistics
-		std::string outS;
-		if (!hStat.SerializeToString(&outS)) {
-			cerr << "Failed to write statistics information" << endl;
-			ProMCStat stat; // write dummy stattistics
-			stat.SerializeToString(&outS);
-			outzip->putNextEntry( "statistics" ) ;
-			(*outzip) << outS;
-			stat.Clear();
-		}
-		outzip->putNextEntry( "statistics" ) ;
-		(*outzip) << outS;
-
-
-
-		bool ierr=false;
-
-		filename="proto/ProMCHeader.proto";
-		ifstream ifs2( filename.c_str(), ios::in | ios::binary ) ;
-		if(!ifs2.fail()) {
-			replace(filename, "proto/", "");
-			outzip->putNextEntry(filename);
-			(*outzip) << ifs2.rdbuf() ;
-			ifs2.close();
-			if (outzip->fail())
-				cout << " Problem with writing "<< filename << endl;
-			//ierr=true;
-		} else {
-			cout << " Header file=" << filename << " not found" << endl;
-			ierr=true;
-		}
-
-		filename="proto/ProMC.proto";
-		ifstream ifs3( filename.c_str(), ios::in | ios::binary ) ;
-		if(!ifs3.fail()) {
-			replace(filename, "proto/", "");
-			outzip->putNextEntry(filename);
-			(*outzip) << ifs3.rdbuf() ;
-			ifs3.close();
-			if (outzip->fail())
-				cout << " Problem with writing "<< filename << endl;
-			//ierr=true;
-		} else {
-			cout << " Event record file=" << filename << " not found" << endl;
-			ierr=true;
-		}
-
-
-		filename="proto/ProMCStat.proto";
-		ifstream ifs4( filename.c_str(), ios::in | ios::binary ) ;
-		if(!ifs4.fail()) {
-			replace(filename, "proto/", "");
-			outzip->putNextEntry(filename);
-			(*outzip) << ifs4.rdbuf() ;
-			ifs4.close();
-			if (outzip->fail())
-				cout << " Problem with writing "<< filename << endl;
-			//ierr=true;
-		} else {
-			cout << " Statistics file=" << filename << " not found" << endl;
-			ierr=true;
-		}
-
-
-		filename="proto/ProMCDescription.proto";
-		ifstream ifs5( filename.c_str(), ios::in | ios::binary ) ;
-		if(!ifs5.fail()) {
-			replace(filename, "proto/", "");
-			outzip->putNextEntry(filename);
-			(*outzip) << ifs5.rdbuf() ;
-			ifs5.close();
-			if (outzip->fail())
-				cout << " Problem with writing "<< filename << endl;
-			//ierr=true;
-		} else {
-			cout << " Description file=" << filename << " not found" << endl;
-			ierr=true;
-		}
-
-
-		if (ierr){
-			cout << " -> Warning: Not self-describing file format." << endl;
-			cout << "    To make it self-describing, put *.proto files to the directory proto/" << endl;
-		}
-
-
-
-		// write a log file if exists. Always the last one.
-		filename="logfile.txt";
-		ifstream ifs1( filename.c_str(), ios::in | ios::binary );
-		if(!ifs1.fail()) {
-			outzip->putNextEntry(filename);
-			(*outzip) << ifs1.rdbuf() ;
-			ifs1.close();
-			cout << " Info: File=" << filename << " is attached" << endl;
-			if (outzip->fail() || outzip->bad())
-				cout << "Problem with writing "<< filename << endl;
-		} else {
-			cout << " Info: File=" << filename << " not found. No logfile info is written" << endl;
-		}
-
-
-
-		outzip->close();
-		cout << " ##### ProMC file is closed #####" << endl;
-
-	}
-
-
-	// delete outzip;
-	// delete inpzip;
-	if (isToWrite==false) { zfile->close();
-		                inpzip->close(); };
-	clear();
-}
-
-
-
-
Index: ternal/ProMC/ProMCBook.h
===================================================================
--- external/ProMC/ProMCBook.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ 	(revision )
@@ -1,93 +1,0 @@
-/* ---------------------------------------------------------------------------
-** This software is in the public domain, furnished "as is", without technical
-** support, and with no warranty, express or implied, as to its usefulness for
-** any purpose.
-**
-**  A library for HEP events storage and processing based on Google's ProtocolBuffers 
-**
-** Author: S.Chekanov (ANL). chekanov@anl.gov
-** Copyright  2012 
-** -------------------------------------------------------------------------*/
-
-
-#ifndef ProMCBook_H 
-#define ProMCBook_H
-
-#include <string>
-#include <iostream>
-#include <fstream>
-#include <iomanip>
-#include "zipios++/zipios-config.h"
-#include "zipios++/meta-iostreams.h"
-#include "zipios++/zipoutputstream.h"
-#include "zipios++/zipfile.h"
-#include "zipios++/zipinputstream.h"
-#include <ctime>
-#include <iostream>
-#include <fstream>
-#include <exception>
-#include "ProMC.pb.h"
-#include "ProMCHeader.pb.h"
-#include "ProMCStat.pb.h"
-#include "ProMCDescription.pb.h"
-
-using namespace promc;
-using namespace std;
-using namespace zipios ;
-
-
-
-using std::cerr ;
-using std::cout ;
-using std::endl ;
-using std::ios ;
-using std::string ;
-using std::exception ;
-using std::istream;
-using std::ofstream;
-using std::ifstream;
-using std::setw;
-
-
-class ProMCBook{
-public:
-
-     ProMCBook();
-     ~ProMCBook();
-     ProMCBook(const char* filename, const char * option);
-     void open(const char* filename, const char * option);
-     ProMCEvent get();
-     ProMCEvent event(long idx);
-     int  next();
-     int  getTimestamp() { return timestamp; };
-     int  getVersion() { return version; }; 
-     string getDescription() { return description; };
-     void setDescription(int events, string s);
-     int  getEvents() { return nev; };
-     int  getEventsRequested() { return requested_nev; };
-     ProMCHeader getHeader();
-     void  setHeader(ProMCHeader h);
-     void  setStatistics(ProMCStat h);
-     void  close();
-     void  write(ProMCEvent e ); // write histogram if any
-     void  clear();
-     unsigned int  size(); // all size
-     static const int current_version=2;
-
-
-private:
-
-     int  timestamp;
-     int  version;
-     string description; 
-     ProMCStat hStat;
-     unsigned long nev;
-     unsigned long requested_nev; 
-     ZipOutputStream *outzip;
-     ZipInputStream *inpzip;
-     bool isToWrite;
-     ZipFile *zfile;
-
-};
-
-#endif
Index: ternal/ProMC/ProMCDescription.pb.cc
===================================================================
--- external/ProMC/ProMCDescription.pb.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ 	(revision )
@@ -1,452 +1,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: ProMCDescription.proto
-
-#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
-#include "ProMCDescription.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* ProMCDescription_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  ProMCDescription_reflection_ = NULL;
-
-}  // namespace
-
-
-void protobuf_AssignDesc_ProMCDescription_2eproto() {
-  protobuf_AddDesc_ProMCDescription_2eproto();
-  const ::google::protobuf::FileDescriptor* file =
-    ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
-      "ProMCDescription.proto");
-  GOOGLE_CHECK(file != NULL);
-  ProMCDescription_descriptor_ = file->message_type(0);
-  static const int ProMCDescription_offsets_[4] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCDescription, version_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCDescription, events_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCDescription, description_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCDescription, timestamp_),
-  };
-  ProMCDescription_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      ProMCDescription_descriptor_,
-      ProMCDescription::default_instance_,
-      ProMCDescription_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCDescription, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCDescription, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(ProMCDescription));
-}
-
-namespace {
-
-GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
-inline void protobuf_AssignDescriptorsOnce() {
-  ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
-                 &protobuf_AssignDesc_ProMCDescription_2eproto);
-}
-
-void protobuf_RegisterTypes(const ::std::string&) {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    ProMCDescription_descriptor_, &ProMCDescription::default_instance());
-}
-
-}  // namespace
-
-void protobuf_ShutdownFile_ProMCDescription_2eproto() {
-  delete ProMCDescription::default_instance_;
-  delete ProMCDescription_reflection_;
-}
-
-void protobuf_AddDesc_ProMCDescription_2eproto() {
-  static bool already_here = false;
-  if (already_here) return;
-  already_here = true;
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
-    "\n\026ProMCDescription.proto\022\005promc\"[\n\020ProMC"
-    "Description\022\017\n\007version\030\001 \002(\004\022\016\n\006events\030\002"
-    " \002(\004\022\023\n\013description\030\003 \002(\t\022\021\n\ttimestamp\030\004"
-    " \002(\004B \n\010promc.ioB\024ProMCDescriptionFile", 158);
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
-    "ProMCDescription.proto", &protobuf_RegisterTypes);
-  ProMCDescription::default_instance_ = new ProMCDescription();
-  ProMCDescription::default_instance_->InitAsDefaultInstance();
-  ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_ProMCDescription_2eproto);
-}
-
-// Force AddDescriptors() to be called at static initialization time.
-struct StaticDescriptorInitializer_ProMCDescription_2eproto {
-  StaticDescriptorInitializer_ProMCDescription_2eproto() {
-    protobuf_AddDesc_ProMCDescription_2eproto();
-  }
-} static_descriptor_initializer_ProMCDescription_2eproto_;
-
-// ===================================================================
-
-#ifndef _MSC_VER
-const int ProMCDescription::kVersionFieldNumber;
-const int ProMCDescription::kEventsFieldNumber;
-const int ProMCDescription::kDescriptionFieldNumber;
-const int ProMCDescription::kTimestampFieldNumber;
-#endif  // !_MSC_VER
-
-ProMCDescription::ProMCDescription()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void ProMCDescription::InitAsDefaultInstance() {
-}
-
-ProMCDescription::ProMCDescription(const ProMCDescription& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void ProMCDescription::SharedCtor() {
-  _cached_size_ = 0;
-  version_ = GOOGLE_ULONGLONG(0);
-  events_ = GOOGLE_ULONGLONG(0);
-  description_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  timestamp_ = GOOGLE_ULONGLONG(0);
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-ProMCDescription::~ProMCDescription() {
-  SharedDtor();
-}
-
-void ProMCDescription::SharedDtor() {
-  if (description_ != &::google::protobuf::internal::kEmptyString) {
-    delete description_;
-  }
-  if (this != default_instance_) {
-  }
-}
-
-void ProMCDescription::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* ProMCDescription::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return ProMCDescription_descriptor_;
-}
-
-const ProMCDescription& ProMCDescription::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_ProMCDescription_2eproto();
-  return *default_instance_;
-}
-
-ProMCDescription* ProMCDescription::default_instance_ = NULL;
-
-ProMCDescription* ProMCDescription::New() const {
-  return new ProMCDescription;
-}
-
-void ProMCDescription::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    version_ = GOOGLE_ULONGLONG(0);
-    events_ = GOOGLE_ULONGLONG(0);
-    if (has_description()) {
-      if (description_ != &::google::protobuf::internal::kEmptyString) {
-        description_->clear();
-      }
-    }
-    timestamp_ = GOOGLE_ULONGLONG(0);
-  }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool ProMCDescription::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 uint64 version = 1;
-      case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
-                 input, &version_)));
-          set_has_version();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(16)) goto parse_events;
-        break;
-      }
-
-      // required uint64 events = 2;
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_events:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
-                 input, &events_)));
-          set_has_events();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(26)) goto parse_description;
-        break;
-      }
-
-      // required string description = 3;
-      case 3: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_description:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_description()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->description().data(), this->description().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(32)) goto parse_timestamp;
-        break;
-      }
-
-      // required uint64 timestamp = 4;
-      case 4: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_timestamp:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
-                 input, &timestamp_)));
-          set_has_timestamp();
-        } 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 ProMCDescription::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // required uint64 version = 1;
-  if (has_version()) {
-    ::google::protobuf::internal::WireFormatLite::WriteUInt64(1, this->version(), output);
-  }
-
-  // required uint64 events = 2;
-  if (has_events()) {
-    ::google::protobuf::internal::WireFormatLite::WriteUInt64(2, this->events(), output);
-  }
-
-  // required string description = 3;
-  if (has_description()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->description().data(), this->description().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      3, this->description(), output);
-  }
-
-  // required uint64 timestamp = 4;
-  if (has_timestamp()) {
-    ::google::protobuf::internal::WireFormatLite::WriteUInt64(4, this->timestamp(), output);
-  }
-
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* ProMCDescription::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // required uint64 version = 1;
-  if (has_version()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(1, this->version(), target);
-  }
-
-  // required uint64 events = 2;
-  if (has_events()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(2, this->events(), target);
-  }
-
-  // required string description = 3;
-  if (has_description()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->description().data(), this->description().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        3, this->description(), target);
-  }
-
-  // required uint64 timestamp = 4;
-  if (has_timestamp()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(4, this->timestamp(), target);
-  }
-
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int ProMCDescription::ByteSize() const {
-  int total_size = 0;
-
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // required uint64 version = 1;
-    if (has_version()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::UInt64Size(
-          this->version());
-    }
-
-    // required uint64 events = 2;
-    if (has_events()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::UInt64Size(
-          this->events());
-    }
-
-    // required string description = 3;
-    if (has_description()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->description());
-    }
-
-    // required uint64 timestamp = 4;
-    if (has_timestamp()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::UInt64Size(
-          this->timestamp());
-    }
-
-  }
-  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 ProMCDescription::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const ProMCDescription* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const ProMCDescription*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void ProMCDescription::MergeFrom(const ProMCDescription& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_version()) {
-      set_version(from.version());
-    }
-    if (from.has_events()) {
-      set_events(from.events());
-    }
-    if (from.has_description()) {
-      set_description(from.description());
-    }
-    if (from.has_timestamp()) {
-      set_timestamp(from.timestamp());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void ProMCDescription::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void ProMCDescription::CopyFrom(const ProMCDescription& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool ProMCDescription::IsInitialized() const {
-  if ((_has_bits_[0] & 0x0000000f) != 0x0000000f) return false;
-
-  return true;
-}
-
-void ProMCDescription::Swap(ProMCDescription* other) {
-  if (other != this) {
-    std::swap(version_, other->version_);
-    std::swap(events_, other->events_);
-    std::swap(description_, other->description_);
-    std::swap(timestamp_, other->timestamp_);
-    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 ProMCDescription::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = ProMCDescription_descriptor_;
-  metadata.reflection = ProMCDescription_reflection_;
-  return metadata;
-}
-
-
-// @@protoc_insertion_point(namespace_scope)
-
-}  // namespace promc
-
-// @@protoc_insertion_point(global_scope)
Index: ternal/ProMC/ProMCDescription.pb.h
===================================================================
--- external/ProMC/ProMCDescription.pb.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ 	(revision )
@@ -1,314 +1,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: ProMCDescription.proto
-
-#ifndef PROTOBUF_ProMCDescription_2eproto__INCLUDED
-#define PROTOBUF_ProMCDescription_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_ProMCDescription_2eproto();
-void protobuf_AssignDesc_ProMCDescription_2eproto();
-void protobuf_ShutdownFile_ProMCDescription_2eproto();
-
-class ProMCDescription;
-
-// ===================================================================
-
-class ProMCDescription : public ::google::protobuf::Message {
- public:
-  ProMCDescription();
-  virtual ~ProMCDescription();
-
-  ProMCDescription(const ProMCDescription& from);
-
-  inline ProMCDescription& operator=(const ProMCDescription& 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 ProMCDescription& default_instance();
-
-  void Swap(ProMCDescription* other);
-
-  // implements Message ----------------------------------------------
-
-  ProMCDescription* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const ProMCDescription& from);
-  void MergeFrom(const ProMCDescription& 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 uint64 version = 1;
-  inline bool has_version() const;
-  inline void clear_version();
-  static const int kVersionFieldNumber = 1;
-  inline ::google::protobuf::uint64 version() const;
-  inline void set_version(::google::protobuf::uint64 value);
-
-  // required uint64 events = 2;
-  inline bool has_events() const;
-  inline void clear_events();
-  static const int kEventsFieldNumber = 2;
-  inline ::google::protobuf::uint64 events() const;
-  inline void set_events(::google::protobuf::uint64 value);
-
-  // required string description = 3;
-  inline bool has_description() const;
-  inline void clear_description();
-  static const int kDescriptionFieldNumber = 3;
-  inline const ::std::string& description() const;
-  inline void set_description(const ::std::string& value);
-  inline void set_description(const char* value);
-  inline void set_description(const char* value, size_t size);
-  inline ::std::string* mutable_description();
-  inline ::std::string* release_description();
-  inline void set_allocated_description(::std::string* description);
-
-  // required uint64 timestamp = 4;
-  inline bool has_timestamp() const;
-  inline void clear_timestamp();
-  static const int kTimestampFieldNumber = 4;
-  inline ::google::protobuf::uint64 timestamp() const;
-  inline void set_timestamp(::google::protobuf::uint64 value);
-
-  // @@protoc_insertion_point(class_scope:promc.ProMCDescription)
- private:
-  inline void set_has_version();
-  inline void clear_has_version();
-  inline void set_has_events();
-  inline void clear_has_events();
-  inline void set_has_description();
-  inline void clear_has_description();
-  inline void set_has_timestamp();
-  inline void clear_has_timestamp();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
-  ::google::protobuf::uint64 version_;
-  ::google::protobuf::uint64 events_;
-  ::std::string* description_;
-  ::google::protobuf::uint64 timestamp_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32];
-
-  friend void  protobuf_AddDesc_ProMCDescription_2eproto();
-  friend void protobuf_AssignDesc_ProMCDescription_2eproto();
-  friend void protobuf_ShutdownFile_ProMCDescription_2eproto();
-
-  void InitAsDefaultInstance();
-  static ProMCDescription* default_instance_;
-};
-// ===================================================================
-
-
-// ===================================================================
-
-// ProMCDescription
-
-// required uint64 version = 1;
-inline bool ProMCDescription::has_version() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void ProMCDescription::set_has_version() {
-  _has_bits_[0] |= 0x00000001u;
-}
-inline void ProMCDescription::clear_has_version() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-inline void ProMCDescription::clear_version() {
-  version_ = GOOGLE_ULONGLONG(0);
-  clear_has_version();
-}
-inline ::google::protobuf::uint64 ProMCDescription::version() const {
-  return version_;
-}
-inline void ProMCDescription::set_version(::google::protobuf::uint64 value) {
-  set_has_version();
-  version_ = value;
-}
-
-// required uint64 events = 2;
-inline bool ProMCDescription::has_events() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void ProMCDescription::set_has_events() {
-  _has_bits_[0] |= 0x00000002u;
-}
-inline void ProMCDescription::clear_has_events() {
-  _has_bits_[0] &= ~0x00000002u;
-}
-inline void ProMCDescription::clear_events() {
-  events_ = GOOGLE_ULONGLONG(0);
-  clear_has_events();
-}
-inline ::google::protobuf::uint64 ProMCDescription::events() const {
-  return events_;
-}
-inline void ProMCDescription::set_events(::google::protobuf::uint64 value) {
-  set_has_events();
-  events_ = value;
-}
-
-// required string description = 3;
-inline bool ProMCDescription::has_description() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
-}
-inline void ProMCDescription::set_has_description() {
-  _has_bits_[0] |= 0x00000004u;
-}
-inline void ProMCDescription::clear_has_description() {
-  _has_bits_[0] &= ~0x00000004u;
-}
-inline void ProMCDescription::clear_description() {
-  if (description_ != &::google::protobuf::internal::kEmptyString) {
-    description_->clear();
-  }
-  clear_has_description();
-}
-inline const ::std::string& ProMCDescription::description() const {
-  return *description_;
-}
-inline void ProMCDescription::set_description(const ::std::string& value) {
-  set_has_description();
-  if (description_ == &::google::protobuf::internal::kEmptyString) {
-    description_ = new ::std::string;
-  }
-  description_->assign(value);
-}
-inline void ProMCDescription::set_description(const char* value) {
-  set_has_description();
-  if (description_ == &::google::protobuf::internal::kEmptyString) {
-    description_ = new ::std::string;
-  }
-  description_->assign(value);
-}
-inline void ProMCDescription::set_description(const char* value, size_t size) {
-  set_has_description();
-  if (description_ == &::google::protobuf::internal::kEmptyString) {
-    description_ = new ::std::string;
-  }
-  description_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* ProMCDescription::mutable_description() {
-  set_has_description();
-  if (description_ == &::google::protobuf::internal::kEmptyString) {
-    description_ = new ::std::string;
-  }
-  return description_;
-}
-inline ::std::string* ProMCDescription::release_description() {
-  clear_has_description();
-  if (description_ == &::google::protobuf::internal::kEmptyString) {
-    return NULL;
-  } else {
-    ::std::string* temp = description_;
-    description_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-    return temp;
-  }
-}
-inline void ProMCDescription::set_allocated_description(::std::string* description) {
-  if (description_ != &::google::protobuf::internal::kEmptyString) {
-    delete description_;
-  }
-  if (description) {
-    set_has_description();
-    description_ = description;
-  } else {
-    clear_has_description();
-    description_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  }
-}
-
-// required uint64 timestamp = 4;
-inline bool ProMCDescription::has_timestamp() const {
-  return (_has_bits_[0] & 0x00000008u) != 0;
-}
-inline void ProMCDescription::set_has_timestamp() {
-  _has_bits_[0] |= 0x00000008u;
-}
-inline void ProMCDescription::clear_has_timestamp() {
-  _has_bits_[0] &= ~0x00000008u;
-}
-inline void ProMCDescription::clear_timestamp() {
-  timestamp_ = GOOGLE_ULONGLONG(0);
-  clear_has_timestamp();
-}
-inline ::google::protobuf::uint64 ProMCDescription::timestamp() const {
-  return timestamp_;
-}
-inline void ProMCDescription::set_timestamp(::google::protobuf::uint64 value) {
-  set_has_timestamp();
-  timestamp_ = value;
-}
-
-
-// @@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_ProMCDescription_2eproto__INCLUDED
Index: ternal/ProMC/ProMCHeader.pb.cc
===================================================================
--- external/ProMC/ProMCHeader.pb.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ 	(revision )
@@ -1,2353 +1,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: ProMCHeader.proto
-
-#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
-#include "ProMCHeader.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* ProMCHeader_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  ProMCHeader_reflection_ = NULL;
-const ::google::protobuf::Descriptor* ProMCHeader_ParticleData_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  ProMCHeader_ParticleData_reflection_ = NULL;
-const ::google::protobuf::Descriptor* ProMCHeader_MetaInt_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  ProMCHeader_MetaInt_reflection_ = NULL;
-const ::google::protobuf::Descriptor* ProMCHeader_MetaFloat_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  ProMCHeader_MetaFloat_reflection_ = NULL;
-
-}  // namespace
-
-
-void protobuf_AssignDesc_ProMCHeader_2eproto() {
-  protobuf_AddDesc_ProMCHeader_2eproto();
-  const ::google::protobuf::FileDescriptor* file =
-    ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
-      "ProMCHeader.proto");
-  GOOGLE_CHECK(file != NULL);
-  ProMCHeader_descriptor_ = file->message_type(0);
-  static const int ProMCHeader_offsets_[24] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, id1_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, id2_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, pdf_id1_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, pdf_id2_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, x1_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, x2_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, scalepdf_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, pdf1_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, pdf2_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, ecm_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, s_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, name_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, code_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, cross_section_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, cross_section_error_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, momentumunit_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, lengthunit_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, namemomentumunit_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, namelengthunit_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, weight_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, requested_events_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, particledata_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, metaint_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, metafloat_),
-  };
-  ProMCHeader_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      ProMCHeader_descriptor_,
-      ProMCHeader::default_instance_,
-      ProMCHeader_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(ProMCHeader));
-  ProMCHeader_ParticleData_descriptor_ = ProMCHeader_descriptor_->nested_type(0);
-  static const int ProMCHeader_ParticleData_offsets_[6] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader_ParticleData, id_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader_ParticleData, mass_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader_ParticleData, name_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader_ParticleData, width_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader_ParticleData, lifetime_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader_ParticleData, charge_),
-  };
-  ProMCHeader_ParticleData_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      ProMCHeader_ParticleData_descriptor_,
-      ProMCHeader_ParticleData::default_instance_,
-      ProMCHeader_ParticleData_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader_ParticleData, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader_ParticleData, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(ProMCHeader_ParticleData));
-  ProMCHeader_MetaInt_descriptor_ = ProMCHeader_descriptor_->nested_type(1);
-  static const int ProMCHeader_MetaInt_offsets_[2] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader_MetaInt, key_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader_MetaInt, value_),
-  };
-  ProMCHeader_MetaInt_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      ProMCHeader_MetaInt_descriptor_,
-      ProMCHeader_MetaInt::default_instance_,
-      ProMCHeader_MetaInt_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader_MetaInt, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader_MetaInt, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(ProMCHeader_MetaInt));
-  ProMCHeader_MetaFloat_descriptor_ = ProMCHeader_descriptor_->nested_type(2);
-  static const int ProMCHeader_MetaFloat_offsets_[2] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader_MetaFloat, key_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader_MetaFloat, value_),
-  };
-  ProMCHeader_MetaFloat_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      ProMCHeader_MetaFloat_descriptor_,
-      ProMCHeader_MetaFloat::default_instance_,
-      ProMCHeader_MetaFloat_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader_MetaFloat, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProMCHeader_MetaFloat, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(ProMCHeader_MetaFloat));
-}
-
-namespace {
-
-GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
-inline void protobuf_AssignDescriptorsOnce() {
-  ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
-                 &protobuf_AssignDesc_ProMCHeader_2eproto);
-}
-
-void protobuf_RegisterTypes(const ::std::string&) {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    ProMCHeader_descriptor_, &ProMCHeader::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    ProMCHeader_ParticleData_descriptor_, &ProMCHeader_ParticleData::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    ProMCHeader_MetaInt_descriptor_, &ProMCHeader_MetaInt::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    ProMCHeader_MetaFloat_descriptor_, &ProMCHeader_MetaFloat::default_instance());
-}
-
-}  // namespace
-
-void protobuf_ShutdownFile_ProMCHeader_2eproto() {
-  delete ProMCHeader::default_instance_;
-  delete ProMCHeader_reflection_;
-  delete ProMCHeader_ParticleData::default_instance_;
-  delete ProMCHeader_ParticleData_reflection_;
-  delete ProMCHeader_MetaInt::default_instance_;
-  delete ProMCHeader_MetaInt_reflection_;
-  delete ProMCHeader_MetaFloat::default_instance_;
-  delete ProMCHeader_MetaFloat_reflection_;
-}
-
-void protobuf_AddDesc_ProMCHeader_2eproto() {
-  static bool already_here = false;
-  if (already_here) return;
-  already_here = true;
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
-    "\n\021ProMCHeader.proto\022\005promc\"\313\005\n\013ProMCHead"
-    "er\022\013\n\003id1\030\001 \001(\005\022\013\n\003id2\030\002 \001(\005\022\017\n\007pdf_id1\030"
-    "\003 \001(\005\022\017\n\007pdf_id2\030\004 \001(\005\022\n\n\002x1\030\005 \001(\001\022\n\n\002x2"
-    "\030\006 \001(\001\022\020\n\010scalepdf\030\007 \001(\001\022\014\n\004pdf1\030\010 \001(\005\022\014"
-    "\n\004pdf2\030\t \001(\005\022\013\n\003eCM\030\n \001(\001\022\t\n\001s\030\013 \001(\001\022\014\n\004"
-    "name\030\014 \001(\t\022\014\n\004code\030\r \001(\005\022\025\n\rcross_sectio"
-    "n\030\016 \001(\001\022\033\n\023cross_section_error\030\017 \001(\001\022\024\n\014"
-    "MomentumUnit\030\020 \001(\005\022\022\n\nLengthUnit\030\021 \001(\005\022\030"
-    "\n\020NameMomentumUnit\030\022 \001(\t\022\026\n\016NameLengthUn"
-    "it\030\023 \001(\t\022\016\n\006weight\030\024 \001(\001\022\030\n\020requested_ev"
-    "ents\030\025 \001(\001\0225\n\014particleData\030\036 \003(\0132\037.promc"
-    ".ProMCHeader.ParticleData\022+\n\007metaInt\030\037 \003"
-    "(\0132\032.promc.ProMCHeader.MetaInt\022/\n\tmetaFl"
-    "oat\030  \003(\0132\034.promc.ProMCHeader.MetaFloat\032"
-    "g\n\014ParticleData\022\n\n\002id\030\001 \002(\021\022\014\n\004mass\030\002 \002("
-    "\001\022\014\n\004name\030\003 \002(\t\022\r\n\005width\030\004 \001(\002\022\020\n\010lifeti"
-    "me\030\005 \001(\002\022\016\n\006charge\030\006 \001(\021\032%\n\007MetaInt\022\013\n\003k"
-    "ey\030\001 \002(\t\022\r\n\005value\030\002 \002(\022\032\'\n\tMetaFloat\022\013\n\003"
-    "key\030\001 \002(\t\022\r\n\005value\030\002 \002(\001B\033\n\010promc.ioB\017Pr"
-    "oMCHeaderFile", 773);
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
-    "ProMCHeader.proto", &protobuf_RegisterTypes);
-  ProMCHeader::default_instance_ = new ProMCHeader();
-  ProMCHeader_ParticleData::default_instance_ = new ProMCHeader_ParticleData();
-  ProMCHeader_MetaInt::default_instance_ = new ProMCHeader_MetaInt();
-  ProMCHeader_MetaFloat::default_instance_ = new ProMCHeader_MetaFloat();
-  ProMCHeader::default_instance_->InitAsDefaultInstance();
-  ProMCHeader_ParticleData::default_instance_->InitAsDefaultInstance();
-  ProMCHeader_MetaInt::default_instance_->InitAsDefaultInstance();
-  ProMCHeader_MetaFloat::default_instance_->InitAsDefaultInstance();
-  ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_ProMCHeader_2eproto);
-}
-
-// Force AddDescriptors() to be called at static initialization time.
-struct StaticDescriptorInitializer_ProMCHeader_2eproto {
-  StaticDescriptorInitializer_ProMCHeader_2eproto() {
-    protobuf_AddDesc_ProMCHeader_2eproto();
-  }
-} static_descriptor_initializer_ProMCHeader_2eproto_;
-
-// ===================================================================
-
-#ifndef _MSC_VER
-const int ProMCHeader_ParticleData::kIdFieldNumber;
-const int ProMCHeader_ParticleData::kMassFieldNumber;
-const int ProMCHeader_ParticleData::kNameFieldNumber;
-const int ProMCHeader_ParticleData::kWidthFieldNumber;
-const int ProMCHeader_ParticleData::kLifetimeFieldNumber;
-const int ProMCHeader_ParticleData::kChargeFieldNumber;
-#endif  // !_MSC_VER
-
-ProMCHeader_ParticleData::ProMCHeader_ParticleData()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void ProMCHeader_ParticleData::InitAsDefaultInstance() {
-}
-
-ProMCHeader_ParticleData::ProMCHeader_ParticleData(const ProMCHeader_ParticleData& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void ProMCHeader_ParticleData::SharedCtor() {
-  _cached_size_ = 0;
-  id_ = 0;
-  mass_ = 0;
-  name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  width_ = 0;
-  lifetime_ = 0;
-  charge_ = 0;
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-ProMCHeader_ParticleData::~ProMCHeader_ParticleData() {
-  SharedDtor();
-}
-
-void ProMCHeader_ParticleData::SharedDtor() {
-  if (name_ != &::google::protobuf::internal::kEmptyString) {
-    delete name_;
-  }
-  if (this != default_instance_) {
-  }
-}
-
-void ProMCHeader_ParticleData::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* ProMCHeader_ParticleData::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return ProMCHeader_ParticleData_descriptor_;
-}
-
-const ProMCHeader_ParticleData& ProMCHeader_ParticleData::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_ProMCHeader_2eproto();
-  return *default_instance_;
-}
-
-ProMCHeader_ParticleData* ProMCHeader_ParticleData::default_instance_ = NULL;
-
-ProMCHeader_ParticleData* ProMCHeader_ParticleData::New() const {
-  return new ProMCHeader_ParticleData;
-}
-
-void ProMCHeader_ParticleData::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    id_ = 0;
-    mass_ = 0;
-    if (has_name()) {
-      if (name_ != &::google::protobuf::internal::kEmptyString) {
-        name_->clear();
-      }
-    }
-    width_ = 0;
-    lifetime_ = 0;
-    charge_ = 0;
-  }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool ProMCHeader_ParticleData::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_mass;
-        break;
-      }
-
-      // required double mass = 2;
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED64) {
-         parse_mass:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
-                 input, &mass_)));
-          set_has_mass();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(26)) goto parse_name;
-        break;
-      }
-
-      // required string name = 3;
-      case 3: {
-        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->ExpectTag(37)) goto parse_width;
-        break;
-      }
-
-      // optional float width = 4;
-      case 4: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED32) {
-         parse_width:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
-                 input, &width_)));
-          set_has_width();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(45)) goto parse_lifetime;
-        break;
-      }
-
-      // optional float lifetime = 5;
-      case 5: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED32) {
-         parse_lifetime:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
-                 input, &lifetime_)));
-          set_has_lifetime();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(48)) goto parse_charge;
-        break;
-      }
-
-      // optional sint32 charge = 6;
-      case 6: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_charge:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_SINT32>(
-                 input, &charge_)));
-          set_has_charge();
-        } 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 ProMCHeader_ParticleData::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 mass = 2;
-  if (has_mass()) {
-    ::google::protobuf::internal::WireFormatLite::WriteDouble(2, this->mass(), output);
-  }
-
-  // required string name = 3;
-  if (has_name()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->name().data(), this->name().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      3, this->name(), output);
-  }
-
-  // optional float width = 4;
-  if (has_width()) {
-    ::google::protobuf::internal::WireFormatLite::WriteFloat(4, this->width(), output);
-  }
-
-  // optional float lifetime = 5;
-  if (has_lifetime()) {
-    ::google::protobuf::internal::WireFormatLite::WriteFloat(5, this->lifetime(), output);
-  }
-
-  // optional sint32 charge = 6;
-  if (has_charge()) {
-    ::google::protobuf::internal::WireFormatLite::WriteSInt32(6, this->charge(), output);
-  }
-
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* ProMCHeader_ParticleData::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 mass = 2;
-  if (has_mass()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(2, this->mass(), target);
-  }
-
-  // required string name = 3;
-  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(
-        3, this->name(), target);
-  }
-
-  // optional float width = 4;
-  if (has_width()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(4, this->width(), target);
-  }
-
-  // optional float lifetime = 5;
-  if (has_lifetime()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(5, this->lifetime(), target);
-  }
-
-  // optional sint32 charge = 6;
-  if (has_charge()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteSInt32ToArray(6, this->charge(), target);
-  }
-
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int ProMCHeader_ParticleData::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 mass = 2;
-    if (has_mass()) {
-      total_size += 1 + 8;
-    }
-
-    // required string name = 3;
-    if (has_name()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->name());
-    }
-
-    // optional float width = 4;
-    if (has_width()) {
-      total_size += 1 + 4;
-    }
-
-    // optional float lifetime = 5;
-    if (has_lifetime()) {
-      total_size += 1 + 4;
-    }
-
-    // optional sint32 charge = 6;
-    if (has_charge()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::SInt32Size(
-          this->charge());
-    }
-
-  }
-  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 ProMCHeader_ParticleData::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const ProMCHeader_ParticleData* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const ProMCHeader_ParticleData*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void ProMCHeader_ParticleData::MergeFrom(const ProMCHeader_ParticleData& 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_mass()) {
-      set_mass(from.mass());
-    }
-    if (from.has_name()) {
-      set_name(from.name());
-    }
-    if (from.has_width()) {
-      set_width(from.width());
-    }
-    if (from.has_lifetime()) {
-      set_lifetime(from.lifetime());
-    }
-    if (from.has_charge()) {
-      set_charge(from.charge());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void ProMCHeader_ParticleData::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void ProMCHeader_ParticleData::CopyFrom(const ProMCHeader_ParticleData& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool ProMCHeader_ParticleData::IsInitialized() const {
-  if ((_has_bits_[0] & 0x00000007) != 0x00000007) return false;
-
-  return true;
-}
-
-void ProMCHeader_ParticleData::Swap(ProMCHeader_ParticleData* other) {
-  if (other != this) {
-    std::swap(id_, other->id_);
-    std::swap(mass_, other->mass_);
-    std::swap(name_, other->name_);
-    std::swap(width_, other->width_);
-    std::swap(lifetime_, other->lifetime_);
-    std::swap(charge_, other->charge_);
-    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 ProMCHeader_ParticleData::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = ProMCHeader_ParticleData_descriptor_;
-  metadata.reflection = ProMCHeader_ParticleData_reflection_;
-  return metadata;
-}
-
-
-// -------------------------------------------------------------------
-
-#ifndef _MSC_VER
-const int ProMCHeader_MetaInt::kKeyFieldNumber;
-const int ProMCHeader_MetaInt::kValueFieldNumber;
-#endif  // !_MSC_VER
-
-ProMCHeader_MetaInt::ProMCHeader_MetaInt()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void ProMCHeader_MetaInt::InitAsDefaultInstance() {
-}
-
-ProMCHeader_MetaInt::ProMCHeader_MetaInt(const ProMCHeader_MetaInt& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void ProMCHeader_MetaInt::SharedCtor() {
-  _cached_size_ = 0;
-  key_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  value_ = GOOGLE_LONGLONG(0);
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-ProMCHeader_MetaInt::~ProMCHeader_MetaInt() {
-  SharedDtor();
-}
-
-void ProMCHeader_MetaInt::SharedDtor() {
-  if (key_ != &::google::protobuf::internal::kEmptyString) {
-    delete key_;
-  }
-  if (this != default_instance_) {
-  }
-}
-
-void ProMCHeader_MetaInt::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* ProMCHeader_MetaInt::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return ProMCHeader_MetaInt_descriptor_;
-}
-
-const ProMCHeader_MetaInt& ProMCHeader_MetaInt::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_ProMCHeader_2eproto();
-  return *default_instance_;
-}
-
-ProMCHeader_MetaInt* ProMCHeader_MetaInt::default_instance_ = NULL;
-
-ProMCHeader_MetaInt* ProMCHeader_MetaInt::New() const {
-  return new ProMCHeader_MetaInt;
-}
-
-void ProMCHeader_MetaInt::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (has_key()) {
-      if (key_ != &::google::protobuf::internal::kEmptyString) {
-        key_->clear();
-      }
-    }
-    value_ = GOOGLE_LONGLONG(0);
-  }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool ProMCHeader_MetaInt::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 string key = 1;
-      case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_key()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->key().data(), this->key().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(16)) goto parse_value;
-        break;
-      }
-
-      // required sint64 value = 2;
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_value:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_SINT64>(
-                 input, &value_)));
-          set_has_value();
-        } 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 ProMCHeader_MetaInt::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // required string key = 1;
-  if (has_key()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->key().data(), this->key().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      1, this->key(), output);
-  }
-
-  // required sint64 value = 2;
-  if (has_value()) {
-    ::google::protobuf::internal::WireFormatLite::WriteSInt64(2, this->value(), output);
-  }
-
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* ProMCHeader_MetaInt::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // required string key = 1;
-  if (has_key()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->key().data(), this->key().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        1, this->key(), target);
-  }
-
-  // required sint64 value = 2;
-  if (has_value()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteSInt64ToArray(2, this->value(), target);
-  }
-
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int ProMCHeader_MetaInt::ByteSize() const {
-  int total_size = 0;
-
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // required string key = 1;
-    if (has_key()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->key());
-    }
-
-    // required sint64 value = 2;
-    if (has_value()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::SInt64Size(
-          this->value());
-    }
-
-  }
-  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 ProMCHeader_MetaInt::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const ProMCHeader_MetaInt* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const ProMCHeader_MetaInt*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void ProMCHeader_MetaInt::MergeFrom(const ProMCHeader_MetaInt& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_key()) {
-      set_key(from.key());
-    }
-    if (from.has_value()) {
-      set_value(from.value());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void ProMCHeader_MetaInt::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void ProMCHeader_MetaInt::CopyFrom(const ProMCHeader_MetaInt& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool ProMCHeader_MetaInt::IsInitialized() const {
-  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
-
-  return true;
-}
-
-void ProMCHeader_MetaInt::Swap(ProMCHeader_MetaInt* other) {
-  if (other != this) {
-    std::swap(key_, other->key_);
-    std::swap(value_, other->value_);
-    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 ProMCHeader_MetaInt::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = ProMCHeader_MetaInt_descriptor_;
-  metadata.reflection = ProMCHeader_MetaInt_reflection_;
-  return metadata;
-}
-
-
-// -------------------------------------------------------------------
-
-#ifndef _MSC_VER
-const int ProMCHeader_MetaFloat::kKeyFieldNumber;
-const int ProMCHeader_MetaFloat::kValueFieldNumber;
-#endif  // !_MSC_VER
-
-ProMCHeader_MetaFloat::ProMCHeader_MetaFloat()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void ProMCHeader_MetaFloat::InitAsDefaultInstance() {
-}
-
-ProMCHeader_MetaFloat::ProMCHeader_MetaFloat(const ProMCHeader_MetaFloat& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void ProMCHeader_MetaFloat::SharedCtor() {
-  _cached_size_ = 0;
-  key_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  value_ = 0;
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-ProMCHeader_MetaFloat::~ProMCHeader_MetaFloat() {
-  SharedDtor();
-}
-
-void ProMCHeader_MetaFloat::SharedDtor() {
-  if (key_ != &::google::protobuf::internal::kEmptyString) {
-    delete key_;
-  }
-  if (this != default_instance_) {
-  }
-}
-
-void ProMCHeader_MetaFloat::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* ProMCHeader_MetaFloat::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return ProMCHeader_MetaFloat_descriptor_;
-}
-
-const ProMCHeader_MetaFloat& ProMCHeader_MetaFloat::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_ProMCHeader_2eproto();
-  return *default_instance_;
-}
-
-ProMCHeader_MetaFloat* ProMCHeader_MetaFloat::default_instance_ = NULL;
-
-ProMCHeader_MetaFloat* ProMCHeader_MetaFloat::New() const {
-  return new ProMCHeader_MetaFloat;
-}
-
-void ProMCHeader_MetaFloat::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (has_key()) {
-      if (key_ != &::google::protobuf::internal::kEmptyString) {
-        key_->clear();
-      }
-    }
-    value_ = 0;
-  }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool ProMCHeader_MetaFloat::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 string key = 1;
-      case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_key()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->key().data(), this->key().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(17)) goto parse_value;
-        break;
-      }
-
-      // required double value = 2;
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED64) {
-         parse_value:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
-                 input, &value_)));
-          set_has_value();
-        } 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 ProMCHeader_MetaFloat::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // required string key = 1;
-  if (has_key()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->key().data(), this->key().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      1, this->key(), output);
-  }
-
-  // required double value = 2;
-  if (has_value()) {
-    ::google::protobuf::internal::WireFormatLite::WriteDouble(2, this->value(), output);
-  }
-
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* ProMCHeader_MetaFloat::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // required string key = 1;
-  if (has_key()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->key().data(), this->key().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        1, this->key(), target);
-  }
-
-  // required double value = 2;
-  if (has_value()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(2, this->value(), target);
-  }
-
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int ProMCHeader_MetaFloat::ByteSize() const {
-  int total_size = 0;
-
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // required string key = 1;
-    if (has_key()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->key());
-    }
-
-    // required double value = 2;
-    if (has_value()) {
-      total_size += 1 + 8;
-    }
-
-  }
-  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 ProMCHeader_MetaFloat::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const ProMCHeader_MetaFloat* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const ProMCHeader_MetaFloat*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void ProMCHeader_MetaFloat::MergeFrom(const ProMCHeader_MetaFloat& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_key()) {
-      set_key(from.key());
-    }
-    if (from.has_value()) {
-      set_value(from.value());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void ProMCHeader_MetaFloat::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void ProMCHeader_MetaFloat::CopyFrom(const ProMCHeader_MetaFloat& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool ProMCHeader_MetaFloat::IsInitialized() const {
-  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
-
-  return true;
-}
-
-void ProMCHeader_MetaFloat::Swap(ProMCHeader_MetaFloat* other) {
-  if (other != this) {
-    std::swap(key_, other->key_);
-    std::swap(value_, other->value_);
-    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 ProMCHeader_MetaFloat::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = ProMCHeader_MetaFloat_descriptor_;
-  metadata.reflection = ProMCHeader_MetaFloat_reflection_;
-  return metadata;
-}
-
-
-// -------------------------------------------------------------------
-
-#ifndef _MSC_VER
-const int ProMCHeader::kId1FieldNumber;
-const int ProMCHeader::kId2FieldNumber;
-const int ProMCHeader::kPdfId1FieldNumber;
-const int ProMCHeader::kPdfId2FieldNumber;
-const int ProMCHeader::kX1FieldNumber;
-const int ProMCHeader::kX2FieldNumber;
-const int ProMCHeader::kScalepdfFieldNumber;
-const int ProMCHeader::kPdf1FieldNumber;
-const int ProMCHeader::kPdf2FieldNumber;
-const int ProMCHeader::kECMFieldNumber;
-const int ProMCHeader::kSFieldNumber;
-const int ProMCHeader::kNameFieldNumber;
-const int ProMCHeader::kCodeFieldNumber;
-const int ProMCHeader::kCrossSectionFieldNumber;
-const int ProMCHeader::kCrossSectionErrorFieldNumber;
-const int ProMCHeader::kMomentumUnitFieldNumber;
-const int ProMCHeader::kLengthUnitFieldNumber;
-const int ProMCHeader::kNameMomentumUnitFieldNumber;
-const int ProMCHeader::kNameLengthUnitFieldNumber;
-const int ProMCHeader::kWeightFieldNumber;
-const int ProMCHeader::kRequestedEventsFieldNumber;
-const int ProMCHeader::kParticleDataFieldNumber;
-const int ProMCHeader::kMetaIntFieldNumber;
-const int ProMCHeader::kMetaFloatFieldNumber;
-#endif  // !_MSC_VER
-
-ProMCHeader::ProMCHeader()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void ProMCHeader::InitAsDefaultInstance() {
-}
-
-ProMCHeader::ProMCHeader(const ProMCHeader& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void ProMCHeader::SharedCtor() {
-  _cached_size_ = 0;
-  id1_ = 0;
-  id2_ = 0;
-  pdf_id1_ = 0;
-  pdf_id2_ = 0;
-  x1_ = 0;
-  x2_ = 0;
-  scalepdf_ = 0;
-  pdf1_ = 0;
-  pdf2_ = 0;
-  ecm_ = 0;
-  s_ = 0;
-  name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  code_ = 0;
-  cross_section_ = 0;
-  cross_section_error_ = 0;
-  momentumunit_ = 0;
-  lengthunit_ = 0;
-  namemomentumunit_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  namelengthunit_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  weight_ = 0;
-  requested_events_ = 0;
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-ProMCHeader::~ProMCHeader() {
-  SharedDtor();
-}
-
-void ProMCHeader::SharedDtor() {
-  if (name_ != &::google::protobuf::internal::kEmptyString) {
-    delete name_;
-  }
-  if (namemomentumunit_ != &::google::protobuf::internal::kEmptyString) {
-    delete namemomentumunit_;
-  }
-  if (namelengthunit_ != &::google::protobuf::internal::kEmptyString) {
-    delete namelengthunit_;
-  }
-  if (this != default_instance_) {
-  }
-}
-
-void ProMCHeader::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* ProMCHeader::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return ProMCHeader_descriptor_;
-}
-
-const ProMCHeader& ProMCHeader::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_ProMCHeader_2eproto();
-  return *default_instance_;
-}
-
-ProMCHeader* ProMCHeader::default_instance_ = NULL;
-
-ProMCHeader* ProMCHeader::New() const {
-  return new ProMCHeader;
-}
-
-void ProMCHeader::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    id1_ = 0;
-    id2_ = 0;
-    pdf_id1_ = 0;
-    pdf_id2_ = 0;
-    x1_ = 0;
-    x2_ = 0;
-    scalepdf_ = 0;
-    pdf1_ = 0;
-  }
-  if (_has_bits_[8 / 32] & (0xffu << (8 % 32))) {
-    pdf2_ = 0;
-    ecm_ = 0;
-    s_ = 0;
-    if (has_name()) {
-      if (name_ != &::google::protobuf::internal::kEmptyString) {
-        name_->clear();
-      }
-    }
-    code_ = 0;
-    cross_section_ = 0;
-    cross_section_error_ = 0;
-    momentumunit_ = 0;
-  }
-  if (_has_bits_[16 / 32] & (0xffu << (16 % 32))) {
-    lengthunit_ = 0;
-    if (has_namemomentumunit()) {
-      if (namemomentumunit_ != &::google::protobuf::internal::kEmptyString) {
-        namemomentumunit_->clear();
-      }
-    }
-    if (has_namelengthunit()) {
-      if (namelengthunit_ != &::google::protobuf::internal::kEmptyString) {
-        namelengthunit_->clear();
-      }
-    }
-    weight_ = 0;
-    requested_events_ = 0;
-  }
-  particledata_.Clear();
-  metaint_.Clear();
-  metafloat_.Clear();
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool ProMCHeader::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 id1 = 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, &id1_)));
-          set_has_id1();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(16)) goto parse_id2;
-        break;
-      }
-
-      // optional int32 id2 = 2;
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_id2:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &id2_)));
-          set_has_id2();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(24)) goto parse_pdf_id1;
-        break;
-      }
-
-      // optional int32 pdf_id1 = 3;
-      case 3: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_pdf_id1:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &pdf_id1_)));
-          set_has_pdf_id1();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(32)) goto parse_pdf_id2;
-        break;
-      }
-
-      // optional int32 pdf_id2 = 4;
-      case 4: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_pdf_id2:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &pdf_id2_)));
-          set_has_pdf_id2();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(41)) goto parse_x1;
-        break;
-      }
-
-      // optional double x1 = 5;
-      case 5: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED64) {
-         parse_x1:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
-                 input, &x1_)));
-          set_has_x1();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(49)) goto parse_x2;
-        break;
-      }
-
-      // optional double x2 = 6;
-      case 6: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED64) {
-         parse_x2:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
-                 input, &x2_)));
-          set_has_x2();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(57)) goto parse_scalepdf;
-        break;
-      }
-
-      // optional double scalepdf = 7;
-      case 7: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED64) {
-         parse_scalepdf:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
-                 input, &scalepdf_)));
-          set_has_scalepdf();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(64)) goto parse_pdf1;
-        break;
-      }
-
-      // optional int32 pdf1 = 8;
-      case 8: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_pdf1:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &pdf1_)));
-          set_has_pdf1();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(72)) goto parse_pdf2;
-        break;
-      }
-
-      // optional int32 pdf2 = 9;
-      case 9: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_pdf2:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &pdf2_)));
-          set_has_pdf2();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(81)) goto parse_eCM;
-        break;
-      }
-
-      // optional double eCM = 10;
-      case 10: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED64) {
-         parse_eCM:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
-                 input, &ecm_)));
-          set_has_ecm();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(89)) goto parse_s;
-        break;
-      }
-
-      // optional double s = 11;
-      case 11: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED64) {
-         parse_s:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
-                 input, &s_)));
-          set_has_s();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(98)) goto parse_name;
-        break;
-      }
-
-      // optional string name = 12;
-      case 12: {
-        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->ExpectTag(104)) goto parse_code;
-        break;
-      }
-
-      // optional int32 code = 13;
-      case 13: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_code:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &code_)));
-          set_has_code();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(113)) goto parse_cross_section;
-        break;
-      }
-
-      // optional double cross_section = 14;
-      case 14: {
-        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(121)) goto parse_cross_section_error;
-        break;
-      }
-
-      // optional double cross_section_error = 15;
-      case 15: {
-        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(128)) goto parse_MomentumUnit;
-        break;
-      }
-
-      // optional int32 MomentumUnit = 16;
-      case 16: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_MomentumUnit:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &momentumunit_)));
-          set_has_momentumunit();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(136)) goto parse_LengthUnit;
-        break;
-      }
-
-      // optional int32 LengthUnit = 17;
-      case 17: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_LengthUnit:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &lengthunit_)));
-          set_has_lengthunit();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(146)) goto parse_NameMomentumUnit;
-        break;
-      }
-
-      // optional string NameMomentumUnit = 18;
-      case 18: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_NameMomentumUnit:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_namemomentumunit()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->namemomentumunit().data(), this->namemomentumunit().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(154)) goto parse_NameLengthUnit;
-        break;
-      }
-
-      // optional string NameLengthUnit = 19;
-      case 19: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_NameLengthUnit:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_namelengthunit()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->namelengthunit().data(), this->namelengthunit().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(161)) goto parse_weight;
-        break;
-      }
-
-      // optional double weight = 20;
-      case 20: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED64) {
-         parse_weight:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
-                 input, &weight_)));
-          set_has_weight();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(169)) goto parse_requested_events;
-        break;
-      }
-
-      // optional double requested_events = 21;
-      case 21: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED64) {
-         parse_requested_events:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
-                 input, &requested_events_)));
-          set_has_requested_events();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(242)) goto parse_particleData;
-        break;
-      }
-
-      // repeated .promc.ProMCHeader.ParticleData particleData = 30;
-      case 30: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_particleData:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-                input, add_particledata()));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(242)) goto parse_particleData;
-        if (input->ExpectTag(250)) goto parse_metaInt;
-        break;
-      }
-
-      // repeated .promc.ProMCHeader.MetaInt metaInt = 31;
-      case 31: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_metaInt:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-                input, add_metaint()));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(250)) goto parse_metaInt;
-        if (input->ExpectTag(258)) goto parse_metaFloat;
-        break;
-      }
-
-      // repeated .promc.ProMCHeader.MetaFloat metaFloat = 32;
-      case 32: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_metaFloat:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-                input, add_metafloat()));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(258)) goto parse_metaFloat;
-        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 ProMCHeader::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // optional int32 id1 = 1;
-  if (has_id1()) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->id1(), output);
-  }
-
-  // optional int32 id2 = 2;
-  if (has_id2()) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->id2(), output);
-  }
-
-  // optional int32 pdf_id1 = 3;
-  if (has_pdf_id1()) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->pdf_id1(), output);
-  }
-
-  // optional int32 pdf_id2 = 4;
-  if (has_pdf_id2()) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->pdf_id2(), output);
-  }
-
-  // optional double x1 = 5;
-  if (has_x1()) {
-    ::google::protobuf::internal::WireFormatLite::WriteDouble(5, this->x1(), output);
-  }
-
-  // optional double x2 = 6;
-  if (has_x2()) {
-    ::google::protobuf::internal::WireFormatLite::WriteDouble(6, this->x2(), output);
-  }
-
-  // optional double scalepdf = 7;
-  if (has_scalepdf()) {
-    ::google::protobuf::internal::WireFormatLite::WriteDouble(7, this->scalepdf(), output);
-  }
-
-  // optional int32 pdf1 = 8;
-  if (has_pdf1()) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(8, this->pdf1(), output);
-  }
-
-  // optional int32 pdf2 = 9;
-  if (has_pdf2()) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(9, this->pdf2(), output);
-  }
-
-  // optional double eCM = 10;
-  if (has_ecm()) {
-    ::google::protobuf::internal::WireFormatLite::WriteDouble(10, this->ecm(), output);
-  }
-
-  // optional double s = 11;
-  if (has_s()) {
-    ::google::protobuf::internal::WireFormatLite::WriteDouble(11, this->s(), output);
-  }
-
-  // optional string name = 12;
-  if (has_name()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->name().data(), this->name().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      12, this->name(), output);
-  }
-
-  // optional int32 code = 13;
-  if (has_code()) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(13, this->code(), output);
-  }
-
-  // optional double cross_section = 14;
-  if (has_cross_section()) {
-    ::google::protobuf::internal::WireFormatLite::WriteDouble(14, this->cross_section(), output);
-  }
-
-  // optional double cross_section_error = 15;
-  if (has_cross_section_error()) {
-    ::google::protobuf::internal::WireFormatLite::WriteDouble(15, this->cross_section_error(), output);
-  }
-
-  // optional int32 MomentumUnit = 16;
-  if (has_momentumunit()) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(16, this->momentumunit(), output);
-  }
-
-  // optional int32 LengthUnit = 17;
-  if (has_lengthunit()) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(17, this->lengthunit(), output);
-  }
-
-  // optional string NameMomentumUnit = 18;
-  if (has_namemomentumunit()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->namemomentumunit().data(), this->namemomentumunit().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      18, this->namemomentumunit(), output);
-  }
-
-  // optional string NameLengthUnit = 19;
-  if (has_namelengthunit()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->namelengthunit().data(), this->namelengthunit().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      19, this->namelengthunit(), output);
-  }
-
-  // optional double weight = 20;
-  if (has_weight()) {
-    ::google::protobuf::internal::WireFormatLite::WriteDouble(20, this->weight(), output);
-  }
-
-  // optional double requested_events = 21;
-  if (has_requested_events()) {
-    ::google::protobuf::internal::WireFormatLite::WriteDouble(21, this->requested_events(), output);
-  }
-
-  // repeated .promc.ProMCHeader.ParticleData particleData = 30;
-  for (int i = 0; i < this->particledata_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      30, this->particledata(i), output);
-  }
-
-  // repeated .promc.ProMCHeader.MetaInt metaInt = 31;
-  for (int i = 0; i < this->metaint_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      31, this->metaint(i), output);
-  }
-
-  // repeated .promc.ProMCHeader.MetaFloat metaFloat = 32;
-  for (int i = 0; i < this->metafloat_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      32, this->metafloat(i), output);
-  }
-
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* ProMCHeader::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // optional int32 id1 = 1;
-  if (has_id1()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->id1(), target);
-  }
-
-  // optional int32 id2 = 2;
-  if (has_id2()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->id2(), target);
-  }
-
-  // optional int32 pdf_id1 = 3;
-  if (has_pdf_id1()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->pdf_id1(), target);
-  }
-
-  // optional int32 pdf_id2 = 4;
-  if (has_pdf_id2()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->pdf_id2(), target);
-  }
-
-  // optional double x1 = 5;
-  if (has_x1()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(5, this->x1(), target);
-  }
-
-  // optional double x2 = 6;
-  if (has_x2()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(6, this->x2(), target);
-  }
-
-  // optional double scalepdf = 7;
-  if (has_scalepdf()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(7, this->scalepdf(), target);
-  }
-
-  // optional int32 pdf1 = 8;
-  if (has_pdf1()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(8, this->pdf1(), target);
-  }
-
-  // optional int32 pdf2 = 9;
-  if (has_pdf2()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(9, this->pdf2(), target);
-  }
-
-  // optional double eCM = 10;
-  if (has_ecm()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(10, this->ecm(), target);
-  }
-
-  // optional double s = 11;
-  if (has_s()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(11, this->s(), target);
-  }
-
-  // optional string name = 12;
-  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(
-        12, this->name(), target);
-  }
-
-  // optional int32 code = 13;
-  if (has_code()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(13, this->code(), target);
-  }
-
-  // optional double cross_section = 14;
-  if (has_cross_section()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(14, this->cross_section(), target);
-  }
-
-  // optional double cross_section_error = 15;
-  if (has_cross_section_error()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(15, this->cross_section_error(), target);
-  }
-
-  // optional int32 MomentumUnit = 16;
-  if (has_momentumunit()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(16, this->momentumunit(), target);
-  }
-
-  // optional int32 LengthUnit = 17;
-  if (has_lengthunit()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(17, this->lengthunit(), target);
-  }
-
-  // optional string NameMomentumUnit = 18;
-  if (has_namemomentumunit()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->namemomentumunit().data(), this->namemomentumunit().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        18, this->namemomentumunit(), target);
-  }
-
-  // optional string NameLengthUnit = 19;
-  if (has_namelengthunit()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->namelengthunit().data(), this->namelengthunit().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        19, this->namelengthunit(), target);
-  }
-
-  // optional double weight = 20;
-  if (has_weight()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(20, this->weight(), target);
-  }
-
-  // optional double requested_events = 21;
-  if (has_requested_events()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(21, this->requested_events(), target);
-  }
-
-  // repeated .promc.ProMCHeader.ParticleData particleData = 30;
-  for (int i = 0; i < this->particledata_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        30, this->particledata(i), target);
-  }
-
-  // repeated .promc.ProMCHeader.MetaInt metaInt = 31;
-  for (int i = 0; i < this->metaint_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        31, this->metaint(i), target);
-  }
-
-  // repeated .promc.ProMCHeader.MetaFloat metaFloat = 32;
-  for (int i = 0; i < this->metafloat_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        32, this->metafloat(i), target);
-  }
-
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int ProMCHeader::ByteSize() const {
-  int total_size = 0;
-
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // optional int32 id1 = 1;
-    if (has_id1()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->id1());
-    }
-
-    // optional int32 id2 = 2;
-    if (has_id2()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->id2());
-    }
-
-    // optional int32 pdf_id1 = 3;
-    if (has_pdf_id1()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->pdf_id1());
-    }
-
-    // optional int32 pdf_id2 = 4;
-    if (has_pdf_id2()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->pdf_id2());
-    }
-
-    // optional double x1 = 5;
-    if (has_x1()) {
-      total_size += 1 + 8;
-    }
-
-    // optional double x2 = 6;
-    if (has_x2()) {
-      total_size += 1 + 8;
-    }
-
-    // optional double scalepdf = 7;
-    if (has_scalepdf()) {
-      total_size += 1 + 8;
-    }
-
-    // optional int32 pdf1 = 8;
-    if (has_pdf1()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->pdf1());
-    }
-
-  }
-  if (_has_bits_[8 / 32] & (0xffu << (8 % 32))) {
-    // optional int32 pdf2 = 9;
-    if (has_pdf2()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->pdf2());
-    }
-
-    // optional double eCM = 10;
-    if (has_ecm()) {
-      total_size += 1 + 8;
-    }
-
-    // optional double s = 11;
-    if (has_s()) {
-      total_size += 1 + 8;
-    }
-
-    // optional string name = 12;
-    if (has_name()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->name());
-    }
-
-    // optional int32 code = 13;
-    if (has_code()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->code());
-    }
-
-    // optional double cross_section = 14;
-    if (has_cross_section()) {
-      total_size += 1 + 8;
-    }
-
-    // optional double cross_section_error = 15;
-    if (has_cross_section_error()) {
-      total_size += 1 + 8;
-    }
-
-    // optional int32 MomentumUnit = 16;
-    if (has_momentumunit()) {
-      total_size += 2 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->momentumunit());
-    }
-
-  }
-  if (_has_bits_[16 / 32] & (0xffu << (16 % 32))) {
-    // optional int32 LengthUnit = 17;
-    if (has_lengthunit()) {
-      total_size += 2 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->lengthunit());
-    }
-
-    // optional string NameMomentumUnit = 18;
-    if (has_namemomentumunit()) {
-      total_size += 2 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->namemomentumunit());
-    }
-
-    // optional string NameLengthUnit = 19;
-    if (has_namelengthunit()) {
-      total_size += 2 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->namelengthunit());
-    }
-
-    // optional double weight = 20;
-    if (has_weight()) {
-      total_size += 2 + 8;
-    }
-
-    // optional double requested_events = 21;
-    if (has_requested_events()) {
-      total_size += 2 + 8;
-    }
-
-  }
-  // repeated .promc.ProMCHeader.ParticleData particleData = 30;
-  total_size += 2 * this->particledata_size();
-  for (int i = 0; i < this->particledata_size(); i++) {
-    total_size +=
-      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-        this->particledata(i));
-  }
-
-  // repeated .promc.ProMCHeader.MetaInt metaInt = 31;
-  total_size += 2 * this->metaint_size();
-  for (int i = 0; i < this->metaint_size(); i++) {
-    total_size +=
-      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-        this->metaint(i));
-  }
-
-  // repeated .promc.ProMCHeader.MetaFloat metaFloat = 32;
-  total_size += 2 * this->metafloat_size();
-  for (int i = 0; i < this->metafloat_size(); i++) {
-    total_size +=
-      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-        this->metafloat(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 ProMCHeader::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const ProMCHeader* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const ProMCHeader*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void ProMCHeader::MergeFrom(const ProMCHeader& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  particledata_.MergeFrom(from.particledata_);
-  metaint_.MergeFrom(from.metaint_);
-  metafloat_.MergeFrom(from.metafloat_);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_id1()) {
-      set_id1(from.id1());
-    }
-    if (from.has_id2()) {
-      set_id2(from.id2());
-    }
-    if (from.has_pdf_id1()) {
-      set_pdf_id1(from.pdf_id1());
-    }
-    if (from.has_pdf_id2()) {
-      set_pdf_id2(from.pdf_id2());
-    }
-    if (from.has_x1()) {
-      set_x1(from.x1());
-    }
-    if (from.has_x2()) {
-      set_x2(from.x2());
-    }
-    if (from.has_scalepdf()) {
-      set_scalepdf(from.scalepdf());
-    }
-    if (from.has_pdf1()) {
-      set_pdf1(from.pdf1());
-    }
-  }
-  if (from._has_bits_[8 / 32] & (0xffu << (8 % 32))) {
-    if (from.has_pdf2()) {
-      set_pdf2(from.pdf2());
-    }
-    if (from.has_ecm()) {
-      set_ecm(from.ecm());
-    }
-    if (from.has_s()) {
-      set_s(from.s());
-    }
-    if (from.has_name()) {
-      set_name(from.name());
-    }
-    if (from.has_code()) {
-      set_code(from.code());
-    }
-    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_momentumunit()) {
-      set_momentumunit(from.momentumunit());
-    }
-  }
-  if (from._has_bits_[16 / 32] & (0xffu << (16 % 32))) {
-    if (from.has_lengthunit()) {
-      set_lengthunit(from.lengthunit());
-    }
-    if (from.has_namemomentumunit()) {
-      set_namemomentumunit(from.namemomentumunit());
-    }
-    if (from.has_namelengthunit()) {
-      set_namelengthunit(from.namelengthunit());
-    }
-    if (from.has_weight()) {
-      set_weight(from.weight());
-    }
-    if (from.has_requested_events()) {
-      set_requested_events(from.requested_events());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void ProMCHeader::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void ProMCHeader::CopyFrom(const ProMCHeader& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool ProMCHeader::IsInitialized() const {
-
-  for (int i = 0; i < particledata_size(); i++) {
-    if (!this->particledata(i).IsInitialized()) return false;
-  }
-  for (int i = 0; i < metaint_size(); i++) {
-    if (!this->metaint(i).IsInitialized()) return false;
-  }
-  for (int i = 0; i < metafloat_size(); i++) {
-    if (!this->metafloat(i).IsInitialized()) return false;
-  }
-  return true;
-}
-
-void ProMCHeader::Swap(ProMCHeader* other) {
-  if (other != this) {
-    std::swap(id1_, other->id1_);
-    std::swap(id2_, other->id2_);
-    std::swap(pdf_id1_, other->pdf_id1_);
-    std::swap(pdf_id2_, other->pdf_id2_);
-    std::swap(x1_, other->x1_);
-    std::swap(x2_, other->x2_);
-    std::swap(scalepdf_, other->scalepdf_);
-    std::swap(pdf1_, other->pdf1_);
-    std::swap(pdf2_, other->pdf2_);
-    std::swap(ecm_, other->ecm_);
-    std::swap(s_, other->s_);
-    std::swap(name_, other->name_);
-    std::swap(code_, other->code_);
-    std::swap(cross_section_, other->cross_section_);
-    std::swap(cross_section_error_, other->cross_section_error_);
-    std::swap(momentumunit_, other->momentumunit_);
-    std::swap(lengthunit_, other->lengthunit_);
-    std::swap(namemomentumunit_, other->namemomentumunit_);
-    std::swap(namelengthunit_, other->namelengthunit_);
-    std::swap(weight_, other->weight_);
-    std::swap(requested_events_, other->requested_events_);
-    particledata_.Swap(&other->particledata_);
-    metaint_.Swap(&other->metaint_);
-    metafloat_.Swap(&other->metafloat_);
-    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 ProMCHeader::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = ProMCHeader_descriptor_;
-  metadata.reflection = ProMCHeader_reflection_;
-  return metadata;
-}
-
-
-// @@protoc_insertion_point(namespace_scope)
-
-}  // namespace promc
-
-// @@protoc_insertion_point(global_scope)
Index: ternal/ProMC/ProMCHeader.pb.h
===================================================================
--- external/ProMC/ProMCHeader.pb.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ 	(revision )
@@ -1,1792 +1,0 @@
-// 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
Index: ternal/ProMC/ProMCStat.pb.cc
===================================================================
--- external/ProMC/ProMCStat.pb.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ 	(revision )
@@ -1,1012 +1,0 @@
-// 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)
Index: ternal/ProMC/ProMCStat.pb.h
===================================================================
--- external/ProMC/ProMCStat.pb.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ 	(revision )
@@ -1,687 +1,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: ProMCStat.proto
-
-#ifndef PROTOBUF_ProMCStat_2eproto__INCLUDED
-#define PROTOBUF_ProMCStat_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_ProMCStat_2eproto();
-void protobuf_AssignDesc_ProMCStat_2eproto();
-void protobuf_ShutdownFile_ProMCStat_2eproto();
-
-class ProMCStat;
-class ProMCStat_ProcessData;
-
-// ===================================================================
-
-class ProMCStat_ProcessData : public ::google::protobuf::Message {
- public:
-  ProMCStat_ProcessData();
-  virtual ~ProMCStat_ProcessData();
-
-  ProMCStat_ProcessData(const ProMCStat_ProcessData& from);
-
-  inline ProMCStat_ProcessData& operator=(const ProMCStat_ProcessData& 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 ProMCStat_ProcessData& default_instance();
-
-  void Swap(ProMCStat_ProcessData* other);
-
-  // implements Message ----------------------------------------------
-
-  ProMCStat_ProcessData* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const ProMCStat_ProcessData& from);
-  void MergeFrom(const ProMCStat_ProcessData& 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 cross_section = 2;
-  inline bool has_cross_section() const;
-  inline void clear_cross_section();
-  static const int kCrossSectionFieldNumber = 2;
-  inline double cross_section() const;
-  inline void set_cross_section(double value);
-
-  // required double cross_section_error = 3;
-  inline bool has_cross_section_error() const;
-  inline void clear_cross_section_error();
-  static const int kCrossSectionErrorFieldNumber = 3;
-  inline double cross_section_error() const;
-  inline void set_cross_section_error(double value);
-
-  // required string name = 4;
-  inline bool has_name() const;
-  inline void clear_name();
-  static const int kNameFieldNumber = 4;
-  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);
-
-  // @@protoc_insertion_point(class_scope:promc.ProMCStat.ProcessData)
- private:
-  inline void set_has_id();
-  inline void clear_has_id();
-  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_name();
-  inline void clear_has_name();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
-  double cross_section_;
-  double cross_section_error_;
-  ::std::string* name_;
-  ::google::protobuf::int32 id_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32];
-
-  friend void  protobuf_AddDesc_ProMCStat_2eproto();
-  friend void protobuf_AssignDesc_ProMCStat_2eproto();
-  friend void protobuf_ShutdownFile_ProMCStat_2eproto();
-
-  void InitAsDefaultInstance();
-  static ProMCStat_ProcessData* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class ProMCStat : public ::google::protobuf::Message {
- public:
-  ProMCStat();
-  virtual ~ProMCStat();
-
-  ProMCStat(const ProMCStat& from);
-
-  inline ProMCStat& operator=(const ProMCStat& 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 ProMCStat& default_instance();
-
-  void Swap(ProMCStat* other);
-
-  // implements Message ----------------------------------------------
-
-  ProMCStat* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const ProMCStat& from);
-  void MergeFrom(const ProMCStat& 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 ProMCStat_ProcessData ProcessData;
-
-  // accessors -------------------------------------------------------
-
-  // optional int32 nevents_requested = 1;
-  inline bool has_nevents_requested() const;
-  inline void clear_nevents_requested();
-  static const int kNeventsRequestedFieldNumber = 1;
-  inline ::google::protobuf::int32 nevents_requested() const;
-  inline void set_nevents_requested(::google::protobuf::int32 value);
-
-  // optional int32 nevents_failed = 2;
-  inline bool has_nevents_failed() const;
-  inline void clear_nevents_failed();
-  static const int kNeventsFailedFieldNumber = 2;
-  inline ::google::protobuf::int32 nevents_failed() const;
-  inline void set_nevents_failed(::google::protobuf::int32 value);
-
-  // optional double cross_section_accumulated = 3;
-  inline bool has_cross_section_accumulated() const;
-  inline void clear_cross_section_accumulated();
-  static const int kCrossSectionAccumulatedFieldNumber = 3;
-  inline double cross_section_accumulated() const;
-  inline void set_cross_section_accumulated(double value);
-
-  // optional double cross_section_error_accumulated = 4;
-  inline bool has_cross_section_error_accumulated() const;
-  inline void clear_cross_section_error_accumulated();
-  static const int kCrossSectionErrorAccumulatedFieldNumber = 4;
-  inline double cross_section_error_accumulated() const;
-  inline void set_cross_section_error_accumulated(double value);
-
-  // optional double luminosity_accumulated = 5;
-  inline bool has_luminosity_accumulated() const;
-  inline void clear_luminosity_accumulated();
-  static const int kLuminosityAccumulatedFieldNumber = 5;
-  inline double luminosity_accumulated() const;
-  inline void set_luminosity_accumulated(double value);
-
-  // optional int32 nTried = 6;
-  inline bool has_ntried() const;
-  inline void clear_ntried();
-  static const int kNTriedFieldNumber = 6;
-  inline ::google::protobuf::int32 ntried() const;
-  inline void set_ntried(::google::protobuf::int32 value);
-
-  // optional int32 nSelected = 7;
-  inline bool has_nselected() const;
-  inline void clear_nselected();
-  static const int kNSelectedFieldNumber = 7;
-  inline ::google::protobuf::int32 nselected() const;
-  inline void set_nselected(::google::protobuf::int32 value);
-
-  // optional int32 nAccepted = 8;
-  inline bool has_naccepted() const;
-  inline void clear_naccepted();
-  static const int kNAcceptedFieldNumber = 8;
-  inline ::google::protobuf::int32 naccepted() const;
-  inline void set_naccepted(::google::protobuf::int32 value);
-
-  // repeated .promc.ProMCStat.ProcessData processData = 10;
-  inline int processdata_size() const;
-  inline void clear_processdata();
-  static const int kProcessDataFieldNumber = 10;
-  inline const ::promc::ProMCStat_ProcessData& processdata(int index) const;
-  inline ::promc::ProMCStat_ProcessData* mutable_processdata(int index);
-  inline ::promc::ProMCStat_ProcessData* add_processdata();
-  inline const ::google::protobuf::RepeatedPtrField< ::promc::ProMCStat_ProcessData >&
-      processdata() const;
-  inline ::google::protobuf::RepeatedPtrField< ::promc::ProMCStat_ProcessData >*
-      mutable_processdata();
-
-  // @@protoc_insertion_point(class_scope:promc.ProMCStat)
- private:
-  inline void set_has_nevents_requested();
-  inline void clear_has_nevents_requested();
-  inline void set_has_nevents_failed();
-  inline void clear_has_nevents_failed();
-  inline void set_has_cross_section_accumulated();
-  inline void clear_has_cross_section_accumulated();
-  inline void set_has_cross_section_error_accumulated();
-  inline void clear_has_cross_section_error_accumulated();
-  inline void set_has_luminosity_accumulated();
-  inline void clear_has_luminosity_accumulated();
-  inline void set_has_ntried();
-  inline void clear_has_ntried();
-  inline void set_has_nselected();
-  inline void clear_has_nselected();
-  inline void set_has_naccepted();
-  inline void clear_has_naccepted();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
-  ::google::protobuf::int32 nevents_requested_;
-  ::google::protobuf::int32 nevents_failed_;
-  double cross_section_accumulated_;
-  double cross_section_error_accumulated_;
-  double luminosity_accumulated_;
-  ::google::protobuf::int32 ntried_;
-  ::google::protobuf::int32 nselected_;
-  ::google::protobuf::RepeatedPtrField< ::promc::ProMCStat_ProcessData > processdata_;
-  ::google::protobuf::int32 naccepted_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(9 + 31) / 32];
-
-  friend void  protobuf_AddDesc_ProMCStat_2eproto();
-  friend void protobuf_AssignDesc_ProMCStat_2eproto();
-  friend void protobuf_ShutdownFile_ProMCStat_2eproto();
-
-  void InitAsDefaultInstance();
-  static ProMCStat* default_instance_;
-};
-// ===================================================================
-
-
-// ===================================================================
-
-// ProMCStat_ProcessData
-
-// required sint32 id = 1;
-inline bool ProMCStat_ProcessData::has_id() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void ProMCStat_ProcessData::set_has_id() {
-  _has_bits_[0] |= 0x00000001u;
-}
-inline void ProMCStat_ProcessData::clear_has_id() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-inline void ProMCStat_ProcessData::clear_id() {
-  id_ = 0;
-  clear_has_id();
-}
-inline ::google::protobuf::int32 ProMCStat_ProcessData::id() const {
-  return id_;
-}
-inline void ProMCStat_ProcessData::set_id(::google::protobuf::int32 value) {
-  set_has_id();
-  id_ = value;
-}
-
-// required double cross_section = 2;
-inline bool ProMCStat_ProcessData::has_cross_section() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void ProMCStat_ProcessData::set_has_cross_section() {
-  _has_bits_[0] |= 0x00000002u;
-}
-inline void ProMCStat_ProcessData::clear_has_cross_section() {
-  _has_bits_[0] &= ~0x00000002u;
-}
-inline void ProMCStat_ProcessData::clear_cross_section() {
-  cross_section_ = 0;
-  clear_has_cross_section();
-}
-inline double ProMCStat_ProcessData::cross_section() const {
-  return cross_section_;
-}
-inline void ProMCStat_ProcessData::set_cross_section(double value) {
-  set_has_cross_section();
-  cross_section_ = value;
-}
-
-// required double cross_section_error = 3;
-inline bool ProMCStat_ProcessData::has_cross_section_error() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
-}
-inline void ProMCStat_ProcessData::set_has_cross_section_error() {
-  _has_bits_[0] |= 0x00000004u;
-}
-inline void ProMCStat_ProcessData::clear_has_cross_section_error() {
-  _has_bits_[0] &= ~0x00000004u;
-}
-inline void ProMCStat_ProcessData::clear_cross_section_error() {
-  cross_section_error_ = 0;
-  clear_has_cross_section_error();
-}
-inline double ProMCStat_ProcessData::cross_section_error() const {
-  return cross_section_error_;
-}
-inline void ProMCStat_ProcessData::set_cross_section_error(double value) {
-  set_has_cross_section_error();
-  cross_section_error_ = value;
-}
-
-// required string name = 4;
-inline bool ProMCStat_ProcessData::has_name() const {
-  return (_has_bits_[0] & 0x00000008u) != 0;
-}
-inline void ProMCStat_ProcessData::set_has_name() {
-  _has_bits_[0] |= 0x00000008u;
-}
-inline void ProMCStat_ProcessData::clear_has_name() {
-  _has_bits_[0] &= ~0x00000008u;
-}
-inline void ProMCStat_ProcessData::clear_name() {
-  if (name_ != &::google::protobuf::internal::kEmptyString) {
-    name_->clear();
-  }
-  clear_has_name();
-}
-inline const ::std::string& ProMCStat_ProcessData::name() const {
-  return *name_;
-}
-inline void ProMCStat_ProcessData::set_name(const ::std::string& value) {
-  set_has_name();
-  if (name_ == &::google::protobuf::internal::kEmptyString) {
-    name_ = new ::std::string;
-  }
-  name_->assign(value);
-}
-inline void ProMCStat_ProcessData::set_name(const char* value) {
-  set_has_name();
-  if (name_ == &::google::protobuf::internal::kEmptyString) {
-    name_ = new ::std::string;
-  }
-  name_->assign(value);
-}
-inline void ProMCStat_ProcessData::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* ProMCStat_ProcessData::mutable_name() {
-  set_has_name();
-  if (name_ == &::google::protobuf::internal::kEmptyString) {
-    name_ = new ::std::string;
-  }
-  return name_;
-}
-inline ::std::string* ProMCStat_ProcessData::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 ProMCStat_ProcessData::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);
-  }
-}
-
-// -------------------------------------------------------------------
-
-// ProMCStat
-
-// optional int32 nevents_requested = 1;
-inline bool ProMCStat::has_nevents_requested() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void ProMCStat::set_has_nevents_requested() {
-  _has_bits_[0] |= 0x00000001u;
-}
-inline void ProMCStat::clear_has_nevents_requested() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-inline void ProMCStat::clear_nevents_requested() {
-  nevents_requested_ = 0;
-  clear_has_nevents_requested();
-}
-inline ::google::protobuf::int32 ProMCStat::nevents_requested() const {
-  return nevents_requested_;
-}
-inline void ProMCStat::set_nevents_requested(::google::protobuf::int32 value) {
-  set_has_nevents_requested();
-  nevents_requested_ = value;
-}
-
-// optional int32 nevents_failed = 2;
-inline bool ProMCStat::has_nevents_failed() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void ProMCStat::set_has_nevents_failed() {
-  _has_bits_[0] |= 0x00000002u;
-}
-inline void ProMCStat::clear_has_nevents_failed() {
-  _has_bits_[0] &= ~0x00000002u;
-}
-inline void ProMCStat::clear_nevents_failed() {
-  nevents_failed_ = 0;
-  clear_has_nevents_failed();
-}
-inline ::google::protobuf::int32 ProMCStat::nevents_failed() const {
-  return nevents_failed_;
-}
-inline void ProMCStat::set_nevents_failed(::google::protobuf::int32 value) {
-  set_has_nevents_failed();
-  nevents_failed_ = value;
-}
-
-// optional double cross_section_accumulated = 3;
-inline bool ProMCStat::has_cross_section_accumulated() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
-}
-inline void ProMCStat::set_has_cross_section_accumulated() {
-  _has_bits_[0] |= 0x00000004u;
-}
-inline void ProMCStat::clear_has_cross_section_accumulated() {
-  _has_bits_[0] &= ~0x00000004u;
-}
-inline void ProMCStat::clear_cross_section_accumulated() {
-  cross_section_accumulated_ = 0;
-  clear_has_cross_section_accumulated();
-}
-inline double ProMCStat::cross_section_accumulated() const {
-  return cross_section_accumulated_;
-}
-inline void ProMCStat::set_cross_section_accumulated(double value) {
-  set_has_cross_section_accumulated();
-  cross_section_accumulated_ = value;
-}
-
-// optional double cross_section_error_accumulated = 4;
-inline bool ProMCStat::has_cross_section_error_accumulated() const {
-  return (_has_bits_[0] & 0x00000008u) != 0;
-}
-inline void ProMCStat::set_has_cross_section_error_accumulated() {
-  _has_bits_[0] |= 0x00000008u;
-}
-inline void ProMCStat::clear_has_cross_section_error_accumulated() {
-  _has_bits_[0] &= ~0x00000008u;
-}
-inline void ProMCStat::clear_cross_section_error_accumulated() {
-  cross_section_error_accumulated_ = 0;
-  clear_has_cross_section_error_accumulated();
-}
-inline double ProMCStat::cross_section_error_accumulated() const {
-  return cross_section_error_accumulated_;
-}
-inline void ProMCStat::set_cross_section_error_accumulated(double value) {
-  set_has_cross_section_error_accumulated();
-  cross_section_error_accumulated_ = value;
-}
-
-// optional double luminosity_accumulated = 5;
-inline bool ProMCStat::has_luminosity_accumulated() const {
-  return (_has_bits_[0] & 0x00000010u) != 0;
-}
-inline void ProMCStat::set_has_luminosity_accumulated() {
-  _has_bits_[0] |= 0x00000010u;
-}
-inline void ProMCStat::clear_has_luminosity_accumulated() {
-  _has_bits_[0] &= ~0x00000010u;
-}
-inline void ProMCStat::clear_luminosity_accumulated() {
-  luminosity_accumulated_ = 0;
-  clear_has_luminosity_accumulated();
-}
-inline double ProMCStat::luminosity_accumulated() const {
-  return luminosity_accumulated_;
-}
-inline void ProMCStat::set_luminosity_accumulated(double value) {
-  set_has_luminosity_accumulated();
-  luminosity_accumulated_ = value;
-}
-
-// optional int32 nTried = 6;
-inline bool ProMCStat::has_ntried() const {
-  return (_has_bits_[0] & 0x00000020u) != 0;
-}
-inline void ProMCStat::set_has_ntried() {
-  _has_bits_[0] |= 0x00000020u;
-}
-inline void ProMCStat::clear_has_ntried() {
-  _has_bits_[0] &= ~0x00000020u;
-}
-inline void ProMCStat::clear_ntried() {
-  ntried_ = 0;
-  clear_has_ntried();
-}
-inline ::google::protobuf::int32 ProMCStat::ntried() const {
-  return ntried_;
-}
-inline void ProMCStat::set_ntried(::google::protobuf::int32 value) {
-  set_has_ntried();
-  ntried_ = value;
-}
-
-// optional int32 nSelected = 7;
-inline bool ProMCStat::has_nselected() const {
-  return (_has_bits_[0] & 0x00000040u) != 0;
-}
-inline void ProMCStat::set_has_nselected() {
-  _has_bits_[0] |= 0x00000040u;
-}
-inline void ProMCStat::clear_has_nselected() {
-  _has_bits_[0] &= ~0x00000040u;
-}
-inline void ProMCStat::clear_nselected() {
-  nselected_ = 0;
-  clear_has_nselected();
-}
-inline ::google::protobuf::int32 ProMCStat::nselected() const {
-  return nselected_;
-}
-inline void ProMCStat::set_nselected(::google::protobuf::int32 value) {
-  set_has_nselected();
-  nselected_ = value;
-}
-
-// optional int32 nAccepted = 8;
-inline bool ProMCStat::has_naccepted() const {
-  return (_has_bits_[0] & 0x00000080u) != 0;
-}
-inline void ProMCStat::set_has_naccepted() {
-  _has_bits_[0] |= 0x00000080u;
-}
-inline void ProMCStat::clear_has_naccepted() {
-  _has_bits_[0] &= ~0x00000080u;
-}
-inline void ProMCStat::clear_naccepted() {
-  naccepted_ = 0;
-  clear_has_naccepted();
-}
-inline ::google::protobuf::int32 ProMCStat::naccepted() const {
-  return naccepted_;
-}
-inline void ProMCStat::set_naccepted(::google::protobuf::int32 value) {
-  set_has_naccepted();
-  naccepted_ = value;
-}
-
-// repeated .promc.ProMCStat.ProcessData processData = 10;
-inline int ProMCStat::processdata_size() const {
-  return processdata_.size();
-}
-inline void ProMCStat::clear_processdata() {
-  processdata_.Clear();
-}
-inline const ::promc::ProMCStat_ProcessData& ProMCStat::processdata(int index) const {
-  return processdata_.Get(index);
-}
-inline ::promc::ProMCStat_ProcessData* ProMCStat::mutable_processdata(int index) {
-  return processdata_.Mutable(index);
-}
-inline ::promc::ProMCStat_ProcessData* ProMCStat::add_processdata() {
-  return processdata_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::promc::ProMCStat_ProcessData >&
-ProMCStat::processdata() const {
-  return processdata_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::promc::ProMCStat_ProcessData >*
-ProMCStat::mutable_processdata() {
-  return &processdata_;
-}
-
-
-// @@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_ProMCStat_2eproto__INCLUDED
Index: modules/BTagging.cc
===================================================================
--- modules/BTagging.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/BTagging.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/BTagging.h
===================================================================
--- modules/BTagging.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/BTagging.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/Calorimeter.cc
===================================================================
--- modules/Calorimeter.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/Calorimeter.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/Calorimeter.h
===================================================================
--- modules/Calorimeter.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/Calorimeter.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/Cloner.cc
===================================================================
--- modules/Cloner.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/Cloner.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/Cloner.h
===================================================================
--- modules/Cloner.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/Cloner.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/ConstituentFilter.cc
===================================================================
--- modules/ConstituentFilter.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/ConstituentFilter.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/ConstituentFilter.h
===================================================================
--- modules/ConstituentFilter.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/ConstituentFilter.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/Delphes.cc
===================================================================
--- modules/Delphes.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/Delphes.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/Delphes.h
===================================================================
--- modules/Delphes.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/Delphes.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/Efficiency.cc
===================================================================
--- modules/Efficiency.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/Efficiency.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/Efficiency.h
===================================================================
--- modules/Efficiency.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/Efficiency.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/EnergyScale.cc
===================================================================
--- modules/EnergyScale.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/EnergyScale.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/EnergyScale.h
===================================================================
--- modules/EnergyScale.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/EnergyScale.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/EnergySmearing.cc
===================================================================
--- modules/EnergySmearing.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/EnergySmearing.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/EnergySmearing.h
===================================================================
--- modules/EnergySmearing.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/EnergySmearing.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/ExampleModule.cc
===================================================================
--- modules/ExampleModule.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/ExampleModule.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/ExampleModule.h
===================================================================
--- modules/ExampleModule.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/ExampleModule.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/FastJetFinder.cc
===================================================================
--- modules/FastJetFinder.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/FastJetFinder.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/FastJetFinder.h
===================================================================
--- modules/FastJetFinder.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/FastJetFinder.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/Hector.cc
===================================================================
--- modules/Hector.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/Hector.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/Hector.h
===================================================================
--- modules/Hector.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/Hector.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/ImpactParameterSmearing.cc
===================================================================
--- modules/ImpactParameterSmearing.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/ImpactParameterSmearing.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/ImpactParameterSmearing.h
===================================================================
--- modules/ImpactParameterSmearing.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/ImpactParameterSmearing.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/Isolation.cc
===================================================================
--- modules/Isolation.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/Isolation.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/Isolation.h
===================================================================
--- modules/Isolation.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/Isolation.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/JetPileUpSubtractor.cc
===================================================================
--- modules/JetPileUpSubtractor.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/JetPileUpSubtractor.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/JetPileUpSubtractor.h
===================================================================
--- modules/JetPileUpSubtractor.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/JetPileUpSubtractor.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/LeptonDressing.cc
===================================================================
--- modules/LeptonDressing.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/LeptonDressing.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/LeptonDressing.h
===================================================================
--- modules/LeptonDressing.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/LeptonDressing.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/Merger.cc
===================================================================
--- modules/Merger.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/Merger.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/Merger.h
===================================================================
--- modules/Merger.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/Merger.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/ModulesLinkDef.h
===================================================================
--- modules/ModulesLinkDef.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/ModulesLinkDef.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/MomentumSmearing.cc
===================================================================
--- modules/MomentumSmearing.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/MomentumSmearing.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/MomentumSmearing.h
===================================================================
--- modules/MomentumSmearing.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/MomentumSmearing.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/ParticlePropagator.cc
===================================================================
--- modules/ParticlePropagator.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/ParticlePropagator.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
@@ -158,5 +158,5 @@
     if(TMath::Abs(q) < 1.0E-9 || TMath::Abs(fBz) < 1.0E-9)
     {
-      // solve pt2*t^2 + 2*(px*x + py*y)*t + (fRadius2 - x*x - y*y) = 0
+      // solve pt2*t^2 + 2*(px*x + py*y)*t - (fRadius2 - x*x - y*y) = 0
       tmp = px*y - py*x;
       discr2 = pt2*fRadius2 - tmp*tmp;
Index: modules/ParticlePropagator.h
===================================================================
--- modules/ParticlePropagator.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/ParticlePropagator.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/PileUpJetID.cc
===================================================================
--- modules/PileUpJetID.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/PileUpJetID.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/PileUpJetID.h
===================================================================
--- modules/PileUpJetID.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/PileUpJetID.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/PileUpMerger.cc
===================================================================
--- modules/PileUpMerger.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/PileUpMerger.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/PileUpMerger.h
===================================================================
--- modules/PileUpMerger.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/PileUpMerger.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/PileUpMergerPythia8.cc
===================================================================
--- modules/PileUpMergerPythia8.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/PileUpMergerPythia8.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
@@ -132,5 +132,5 @@
     dphi = gRandom->Uniform(-TMath::Pi(), TMath::Pi());
 
-    for(i = 0; i < fPythia->event.size(); ++i)
+    for(i = 1; i < fPythia->event.size(); ++i)
     {
       Pythia8::Particle &particle = fPythia->event[i];
Index: modules/PileUpMergerPythia8.h
===================================================================
--- modules/PileUpMergerPythia8.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/PileUpMergerPythia8.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/Pythia8LinkDef.h
===================================================================
--- modules/Pythia8LinkDef.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/Pythia8LinkDef.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/SimpleCalorimeter.cc
===================================================================
--- modules/SimpleCalorimeter.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/SimpleCalorimeter.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/SimpleCalorimeter.h
===================================================================
--- modules/SimpleCalorimeter.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/SimpleCalorimeter.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/StatusPidFilter.cc
===================================================================
--- modules/StatusPidFilter.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/StatusPidFilter.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/StatusPidFilter.h
===================================================================
--- modules/StatusPidFilter.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/StatusPidFilter.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/TauTagging.cc
===================================================================
--- modules/TauTagging.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/TauTagging.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/TauTagging.h
===================================================================
--- modules/TauTagging.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/TauTagging.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/TimeSmearing.cc
===================================================================
--- modules/TimeSmearing.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/TimeSmearing.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/TimeSmearing.h
===================================================================
--- modules/TimeSmearing.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/TimeSmearing.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/TrackCountingBTagging.cc
===================================================================
--- modules/TrackCountingBTagging.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/TrackCountingBTagging.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/TrackCountingBTagging.h
===================================================================
--- modules/TrackCountingBTagging.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/TrackCountingBTagging.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/TrackPileUpSubtractor.cc
===================================================================
--- modules/TrackPileUpSubtractor.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/TrackPileUpSubtractor.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/TrackPileUpSubtractor.h
===================================================================
--- modules/TrackPileUpSubtractor.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/TrackPileUpSubtractor.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/TreeWriter.cc
===================================================================
--- modules/TreeWriter.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/TreeWriter.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/TreeWriter.h
===================================================================
--- modules/TreeWriter.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/TreeWriter.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/UniqueObjectFinder.cc
===================================================================
--- modules/UniqueObjectFinder.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/UniqueObjectFinder.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/UniqueObjectFinder.h
===================================================================
--- modules/UniqueObjectFinder.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/UniqueObjectFinder.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/Weighter.cc
===================================================================
--- modules/Weighter.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/Weighter.cc	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: modules/Weighter.h
===================================================================
--- modules/Weighter.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ modules/Weighter.h	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: readers/DelphesCMSFWLite.cpp
===================================================================
--- readers/DelphesCMSFWLite.cpp	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ readers/DelphesCMSFWLite.cpp	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: readers/DelphesHepMC.cpp
===================================================================
--- readers/DelphesHepMC.cpp	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ readers/DelphesHepMC.cpp	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: readers/DelphesLHEF.cpp
===================================================================
--- readers/DelphesLHEF.cpp	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ readers/DelphesLHEF.cpp	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
Index: readers/DelphesProMC.cpp
===================================================================
--- readers/DelphesProMC.cpp	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ readers/DelphesProMC.cpp	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
@@ -47,7 +47,7 @@
 #include "ExRootAnalysis/ExRootProgressBar.h"
 
-#include "ProMC/ProMC.pb.h"
-#include "ProMC/ProMCBook.h"
-#include "ProMC/ProMCHeader.pb.h"
+#include "ProMC.pb.h"
+#include "ProMCBook.h"
+#include "ProMCHeader.pb.h"
 
 using namespace std;
@@ -55,7 +55,8 @@
 //---------------------------------------------------------------------------
 
-void ConvertInput(ProMCEvent &event, ExRootTreeBranch *branch, DelphesFactory *factory,
-  TObjArray *allParticleOutputArray, TObjArray *stableParticleOutputArray, TObjArray *partonOutputArray,
-  TStopwatch *readStopWatch, TStopwatch *procStopWatch)
+void ConvertInput(ProMCEvent &event, double momentumUnit, double positionUnit,
+  ExRootTreeBranch *branch, DelphesFactory *factory,
+  TObjArray *allParticleOutputArray, TObjArray *stableParticleOutputArray,
+  TObjArray *partonOutputArray, TStopwatch *readStopWatch, TStopwatch *procStopWatch)
 {
   Int_t i;
@@ -107,6 +108,13 @@
     pid = mutableParticles->pdg_id(i);
     status = mutableParticles->status(i);
-    px = mutableParticles->px(i); py = mutableParticles->py(i); pz = mutableParticles->pz(i); mass = mutableParticles->mass(i);
-    x = mutableParticles->x(i); y = mutableParticles->y(i); z = mutableParticles->z(i); t = mutableParticles->t(i);
+
+    px = mutableParticles->px(i)/momentumUnit;
+    py = mutableParticles->py(i)/momentumUnit;
+    pz = mutableParticles->pz(i)/momentumUnit;
+    mass = mutableParticles->mass(i)/momentumUnit;
+    x = mutableParticles->x(i)/positionUnit;
+    y = mutableParticles->y(i)/positionUnit;
+    z = mutableParticles->z(i)/positionUnit;
+    t = mutableParticles->t(i)/positionUnit;
 
     candidate = factory->NewCandidate();
@@ -172,4 +180,5 @@
   Int_t i;
   Long64_t eventCounter, numberOfEvents;
+  double momentumUnit = 1.0, positionUnit = 1.0;
 
   if(argc < 4)
@@ -224,4 +233,11 @@
       inputFile = new ProMCBook(argv[i], "r");
 
+      ProMCHeader header = inputFile->getHeader();
+
+      momentumUnit = static_cast<double>(header.momentumunit());
+      positionUnit = static_cast<double>(header.lengthunit());
+
+
+
       if(inputFile == NULL)
       {
@@ -248,7 +264,8 @@
 
         procStopWatch.Start();
-        ConvertInput(event, branchEvent, factory,
-          allParticleOutputArray, stableParticleOutputArray, partonOutputArray,
-          &readStopWatch, &procStopWatch);
+        ConvertInput(event, momentumUnit, positionUnit,
+          branchEvent, factory,
+          allParticleOutputArray, stableParticleOutputArray,
+          partonOutputArray, &readStopWatch, &procStopWatch);
         modularDelphes->ProcessTask();
         procStopWatch.Stop();
Index: readers/DelphesProMC.py
===================================================================
--- readers/DelphesProMC.py	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ readers/DelphesProMC.py	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
@@ -134,5 +134,5 @@
 ################################################################################
 
-if len(sys.argv) < 2:
+if len(sys.argv) < 4:
   print " Usage: DelphesProMC.py config_file output_file input_file(s)"
   sys.exit(1)
Index: readers/DelphesPythia8.cpp
===================================================================
--- readers/DelphesPythia8.cpp	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ readers/DelphesPythia8.cpp	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
@@ -89,5 +89,5 @@
   pdg = TDatabasePDG::Instance();
 
-  for(i = 0; i < pythia->event.size(); ++i)
+  for(i = 1; i < pythia->event.size(); ++i)
   {
     Pythia8::Particle &particle = pythia->event[i];
Index: readers/DelphesSTDHEP.cpp
===================================================================
--- readers/DelphesSTDHEP.cpp	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
+++ readers/DelphesSTDHEP.cpp	(revision f6b6ee7f127179b618ac5b4e3d7440af180c9dc1)
