Index: trunk/code/jetspectrum.cc
===================================================================
--- trunk/code/jetspectrum.cc	(revision 451)
+++ trunk/code/jetspectrum.cc	(revision 452)
@@ -1,150 +1,148 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 #include "Rivet/Tools/Logging.hh"
-#include "Rivet/RivetAIDA.hh"
 #include "Rivet/Tools/ParticleIdUtils.hh"
 #include <boost/lexical_cast.hpp>
 namespace Rivet {
 
 
   /// @brief jet pt spectrum
   class JETSPECTRUM : public Analysis {
   public:
 
     /// Constructor
     JETSPECTRUM()
       : Analysis("JETSPECTRUM"),
         _sumWeightSelected1(0.0),_sumWeightSelected2(0.0)
     {
-      setBeams(PROTON, PROTON);
       setNeedsCrossSection(true);
     }
 
     /// Book projections and histograms
     void init() {
       ChargedFinalState cfs(-0.9, 0.9, 0.150*GeV);
 
 	addProjection(cfs, "CFS");
       addProjection(FastJets(cfs, FastJets::ANTIKT, 0.2), "Jets1");
       addProjection(FastJets(cfs, FastJets::ANTIKT, 0.3), "Jets2");
 
-      pt_02 = bookHistogram1D("jetspec1", 24, 30.0, 150.0,
+      pt_02 = bookHisto1D("jetspec1", 24, 30.0, 150.0,
                                    "jet spectrum R=0.2",
                                    "$p_\\perp\\ [GeV]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}p_\\perp$");
-      pt_03 = bookHistogram1D("jetspec2", 24, 30.0, 150.0,
+      pt_03 = bookHisto1D("jetspec2", 24, 30.0, 150.0,
                                    "jet spectrum R=0.3",
                                    "$p_\\perp\\ [GeV]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}p_\\perp$");
-      n_02  = bookHistogram1D("njet1", 20, 0.0, 20.0,
+      n_02  = bookHisto1D("njet1", 20, 0.0, 20.0,
                                    "number of jet2 R=0.2",
                                    "$N_\\mathrm{jet}$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}N_\\mathrm{jet}$");
-      n_03  = bookHistogram1D("njet2", 20, 0.0, 20.0,
+      n_03  = bookHisto1D("njet2", 20, 0.0, 20.0,
                                    "number of jet2 R=0.3",
                                    "$N_\\mathrm{jet}$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}N_\\mathrm{jet}$");
     }
 
 
     /// Do the analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
 // 	const double sigma = 15.;
 // 	 std::cout<<std::endl<<"new event "<<std::endl;
       const FastJets& fastjets1 = applyProjection<FastJets>(event, "Jets1");
 /*	std::list<Jet> jetlist1;
 	foreach (Jet jet , fastjets1.jets()){
 // 	  std::cout<<"Et before: "<<jet.EtSum()<<" , "<<jet.momentum().Et()<<std::endl;
 	  double r1(1.0*rand()/RAND_MAX), r2(1.0*rand()/RAND_MAX);
 	  double fluc(max(sqrt(-2.*log(r1))*cos(2.*M_PI*r2)*sigma,-jet.totalEnergy()));
 	  const FourMomentum mom(fluc,0,0,0);
 	  jet.addParticle(mom);
 	  jetlist1.push_back(jet);
 // 	  std::cout<<"Et after: "<<jet.EtSum()<<" , "<<jet.momentum().Et()<<std::endl;
 	  }
 // 	std::cout<<std::endl<<jetlist.front().EtSum()<<std::endl;
 	jetlist1.sort(cmpJetsByPt);
 // 	std::cout<<jetlist.front().EtSum()<<std::endl<<std::endl;*/
       const Jets alljets1 = fastjets1.jetsByPt();
       Jets jets1;
       foreach (Jet jet, alljets1) {
 //       foreach (Jet jet, jetlist1) {
 // 	  std::cout<<"Et final: "<<jet.EtSum()<<" , "<<jet.momentum().Et()<<std::endl;
         if (fabs(jet.momentum().eta())<0.5 && jet.momentum().Et()>30.)
           jets1.push_back(jet);
       }
 
       const FastJets& fastjets2 = applyProjection<FastJets>(event, "Jets2");
 /*	std::list<Jet> jetlist2;
 	foreach (Jet jet , fastjets2.jets()){
 // 	  std::cout<<"Et before: "<<jet.EtSum()<<" , "<<jet.momentum().Et()<<std::endl;
 	  double r1(1.0*rand()/RAND_MAX), r2(1.0*rand()/RAND_MAX);
 	  double fluc(max(sqrt(-2.*log(r1))*cos(2.*M_PI*r2)*sigma,-jet.totalEnergy()));
 	  const FourMomentum mom(fluc,0,0,0);
 	  jet.addParticle(mom);
 	  jetlist2.push_back(jet);
 // 	  std::cout<<"Et after: "<<jet.EtSum()<<" , "<<jet.momentum().Et()<<std::endl;
 	  }
 // 	std::cout<<std::endl<<jetlist.front().EtSum()<<std::endl;
 	jetlist2.sort(cmpJetsByPt);
 // 	std::cout<<jetlist.front().EtSum()<<std::endl<<std::endl;*/
       const Jets alljets2 = fastjets2.jetsByPt();
       Jets jets2;
       foreach (Jet jet, alljets2) {
 //       foreach (Jet jet, jetlist2) {
 // 	  std::cout<<"Et final: "<<jet.EtSum()<<" , "<<jet.momentum().Et()<<std::endl;
         if (fabs(jet.momentum().eta())<0.5 && jet.momentum().Et()>30.)
           jets2.push_back(jet);
       }
 
 	n_02->fill(jets1.size(),weight);
       if (jets1.size() > 0) {
 	  _sumWeightSelected1 += event.weight();
 	  foreach (Jet jet, jets1){
 	    pt_02->fill(jet.momentum().pT(),weight);
 	  }
 	}
 	  
 	n_03->fill(jets2.size(),weight);
       if (jets2.size() > 0) {
 	  _sumWeightSelected2 += event.weight();
 	  foreach (Jet jet, jets2){
 	    pt_03->fill(jet.momentum().pT(),weight);
 	  }	  
 	}
 		
     }
 	
 	
     /// Finalize
     void finalize() {
 /*      scale(pt_02,1./_sumWeightSelected1);
       scale(pt_03,1./_sumWeightSelected2);*/
       scale(pt_02,crossSection()/sumOfWeights());
       scale(pt_03,crossSection()/sumOfWeights());
       scale(n_02,1./sumOfWeights());
       scale(n_03,1./sumOfWeights());
       getLog() << Log::DEBUG << "sumOfWeights()     = " << sumOfWeights() << std::endl;
     }
     
     
   private:
 
     double _sumWeightSelected1;
     double _sumWeightSelected2;
 
-    AIDA::IHistogram1D * pt_02;
-    AIDA::IHistogram1D * pt_03;
-    AIDA::IHistogram1D * n_02;
-    AIDA::IHistogram1D * n_03;
+    Histo1DPtr pt_02;
+    Histo1DPtr pt_03;
+    Histo1DPtr n_02;
+    Histo1DPtr n_03;
   };
 
 
 
   // This global object acts as a hook for the plugin system
   AnalysisBuilder<JETSPECTRUM> plugin_JETSPECTRUM;
 
 }
Index: trunk/code/ALICE_2012_I1127497.cc
===================================================================
--- trunk/code/ALICE_2012_I1127497.cc	(revision 451)
+++ trunk/code/ALICE_2012_I1127497.cc	(revision 452)
@@ -1,83 +1,81 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Tools/Logging.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
-#include "Rivet/RivetAIDA.hh"
 
 namespace Rivet {
 
 
   /// @brief ALICE charged hadron spectra in pp and PbPb
   class ALICE_2012_I1127497 : public Analysis {
   public:
 
     /// Constructor
     ALICE_2012_I1127497()
       : Analysis("ALICE_2012_I1127497")
     {
-      setBeams(PROTON, PROTON);
       setNeedsCrossSection(true);
     }
 
     /// Book projections and histograms
     void init() {
 
       _centedges += 0.0, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8;
 	_ncentbins = 9;
 
       ChargedFinalState cfs(-0.8, 0.8, 0.15*GeV);
       addProjection(cfs, "CFS");
 
       for (size_t i = 0; i < _ncentbins; ++i) {
 	  _sumwtcentbins[i] = 0.;
-        _h_pT[i]     = bookHistogram1D(i+1, 1, 1);
-        _h_ratios[i] = bookHistogram1D(i+16, 1, 1);
+        _h_pT[i]     = bookHisto1D(i+1, 1, 1);
+        _h_ratios[i] = bookHisto1D(i+16, 1, 1);
 	}
     }
 
 
     /// Do the analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
-	const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
+	const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
 
 	for (size_t i = 0; i < _ncentbins; ++i) {
 	  if (cent < 0. || (cent >= _centedges[i] && cent < _centedges[i+1])) {
 	    _sumwtcentbins[i] += weight;
 
           const ChargedFinalState& cfs = applyProjection<ChargedFinalState>(event, "CFS");
           foreach (const Particle& p, cfs.particles()) {
             const double pT = p.momentum().pT() / GeV;
             _h_pT[i]->fill(pT, weight/pT);
             _h_ratios[i]->fill(pT, weight/pT);
 	    }
 	  }
       }
     }
 
 
     /// Finalize
     void finalize() {
 	for (size_t i = 0; i < _ncentbins; ++i) {
 	  // factor 2.5 to convert from mb to GeV^-2
         scale(_h_pT[i],    (_sumwtcentbins[i]==0.?0.:crossSection()*2.5/(millibarn*2.*M_PI*1.6*_sumwtcentbins[i])));
         scale(_h_ratios[i],(_sumwtcentbins[i]==0.?0.:crossSection()*2.5/(millibarn*2.*M_PI*1.6*_sumwtcentbins[i])));
 	}
     }
 
   private:
 
     vector<double> _centedges;
     double _ncentbins;
     double _sumwtcentbins[9];
 
-    AIDA::IHistogram1D * _h_pT[9];
-    AIDA::IHistogram1D * _h_ratios[9];
+    Histo1DPtr  _h_pT[9];
+    Histo1DPtr  _h_ratios[9];
   };
 
 
 
   // This global object acts as a hook for the plugin system
   AnalysisBuilder<ALICE_2012_I1127497> plugin_ALICE_2012_I1127497;
 
 }
Index: trunk/code/CMS_2013_I1256590_GRIDSUB2.yoda
===================================================================
--- trunk/code/CMS_2013_I1256590_GRIDSUB2.yoda	(revision 0)
+++ trunk/code/CMS_2013_I1256590_GRIDSUB2.yoda	(revision 452)
@@ -0,0 +1,206 @@
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_GRIDSUB2/d01-x01-y03
+Path=/REF/CMS_2013_I1256590_GRIDSUB2/d01-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-02	2.500000e-02	2.500000e-02	9.996849e-01	1.534981e-02	1.496040e-02
+7.500000e-02	2.500000e-02	2.500000e-02	9.914790e-01	4.180134e-02	4.529186e-02
+1.250000e-01	2.500000e-02	2.500000e-02	9.037203e-01	4.181550e-02	3.772316e-02
+1.750000e-01	2.500000e-02	2.500000e-02	1.016727e+00	5.312961e-02	5.671926e-02
+2.250000e-01	2.500000e-02	2.500000e-02	1.273673e+00	1.439611e-01	1.400741e-01
+2.750000e-01	2.500000e-02	2.500000e-02	1.382885e+00	1.060964e-01	1.097498e-01
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_GRIDSUB2/d01-x01-y02
+Path=/REF/CMS_2013_I1256590_GRIDSUB2/d01-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-02	2.500000e-02	2.500000e-02	1.266784e+01	0.000000e+00	0.000000e+00
+7.500000e-02	2.500000e-02	2.500000e-02	4.565196e+00	0.000000e+00	0.000000e+00
+1.250000e-01	2.500000e-02	2.500000e-02	1.470847e+00	0.000000e+00	0.000000e+00
+1.750000e-01	2.500000e-02	2.500000e-02	6.714706e-01	0.000000e+00	0.000000e+00
+2.250000e-01	2.500000e-02	2.500000e-02	3.694601e-01	0.000000e+00	0.000000e+00
+2.750000e-01	2.500000e-02	2.500000e-02	2.007718e-01	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_GRIDSUB2/d01-x01-y01
+Path=/REF/CMS_2013_I1256590_GRIDSUB2/d01-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-02	2.500000e-02	2.500000e-02	1.266784e+01	0.000000e+00	0.000000e+00
+7.500000e-02	2.500000e-02	2.500000e-02	4.565196e+00	0.000000e+00	0.000000e+00
+1.250000e-01	2.500000e-02	2.500000e-02	1.298714e+00	0.000000e+00	0.000000e+00
+1.750000e-01	2.500000e-02	2.500000e-02	6.883952e-01	0.000000e+00	0.000000e+00
+2.250000e-01	2.500000e-02	2.500000e-02	4.738880e-01	0.000000e+00	0.000000e+00
+2.750000e-01	2.500000e-02	2.500000e-02	2.774874e-01	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_GRIDSUB2/d03-x01-y01
+Path=/REF/CMS_2013_I1256590_GRIDSUB2/d03-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-01	2.500000e-01	2.500000e-01	4.589493e-02	2.640026e-02	2.607364e-02
+7.500000e-01	2.500000e-01	2.500000e-01	3.302992e-01	1.372295e-01	1.308755e-01
+1.250000e+00	2.500000e-01	2.500000e-01	7.553553e-01	2.064520e-01	2.113501e-01
+1.750000e+00	2.500000e-01	2.500000e-01	1.219367e+00	1.948854e-01	1.904400e-01
+2.250000e+00	2.500000e-01	2.500000e-01	1.560549e+00	1.710532e-01	1.668595e-01
+2.750000e+00	2.500000e-01	2.500000e-01	1.804274e+00	2.437255e-01	2.817904e-01
+3.250000e+00	2.500000e-01	2.500000e-01	2.086064e+00	4.080724e-01	3.258002e-01
+3.750000e+00	2.500000e-01	2.500000e-01	2.447121e+00	4.787017e-01	4.655116e-01
+4.250000e+00	2.500000e-01	2.500000e-01	2.556013e+00	3.771229e-01	3.566198e-01
+4.750000e+00	2.500000e-01	2.500000e-01	1.273626e+00	4.731263e-01	4.790329e-01
+5.250000e+00	2.500000e-01	2.500000e-01	1.213483e-01	5.143852e-02	1.293548e-01
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_GRIDSUB2/d03-x01-y03
+Path=/REF/CMS_2013_I1256590_GRIDSUB2/d03-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-01	2.500000e-01	2.500000e-01	9.511278e-01	2.506266e-01	2.631579e-01
+7.500000e-01	2.500000e-01	2.500000e-01	9.949875e-01	1.817043e-01	1.879699e-01
+1.250000e+00	2.500000e-01	2.500000e-01	8.508772e-01	1.190476e-01	1.190476e-01
+1.750000e+00	2.500000e-01	2.500000e-01	8.132832e-01	1.002506e-01	9.398496e-02
+2.250000e+00	2.500000e-01	2.500000e-01	7.380952e-01	8.145363e-02	8.145363e-02
+2.750000e+00	2.500000e-01	2.500000e-01	7.506266e-01	8.145363e-02	8.145363e-02
+3.250000e+00	2.500000e-01	2.500000e-01	8.508772e-01	8.771930e-02	8.771930e-02
+3.750000e+00	2.500000e-01	2.500000e-01	1.095238e+00	1.190476e-01	1.127820e-01
+4.250000e+00	2.500000e-01	2.500000e-01	1.508772e+00	1.879699e-01	1.879699e-01
+4.750000e+00	2.500000e-01	2.500000e-01	1.765664e+00	3.320802e-01	3.320802e-01
+5.250000e+00	2.500000e-01	2.500000e-01	2.223058e+00	6.892231e-01	6.892231e-01
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_GRIDSUB2/d03-x01-y02
+Path=/REF/CMS_2013_I1256590_GRIDSUB2/d03-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-01	2.500000e-01	2.500000e-01	4.793716e-02	0.000000e+00	0.000000e+00
+7.500000e-01	2.500000e-01	2.500000e-01	3.302992e-01	0.000000e+00	0.000000e+00
+1.250000e+00	2.500000e-01	2.500000e-01	8.990452e-01	0.000000e+00	0.000000e+00
+1.750000e+00	2.500000e-01	2.500000e-01	1.494066e+00	0.000000e+00	0.000000e+00
+2.250000e+00	2.500000e-01	2.500000e-01	2.147498e+00	0.000000e+00	0.000000e+00
+2.750000e+00	2.500000e-01	2.500000e-01	2.447121e+00	0.000000e+00	0.000000e+00
+3.250000e+00	2.500000e-01	2.500000e-01	2.447121e+00	0.000000e+00	0.000000e+00
+3.750000e+00	2.500000e-01	2.500000e-01	2.243057e+00	0.000000e+00	0.000000e+00
+4.250000e+00	2.500000e-01	2.500000e-01	1.702521e+00	0.000000e+00	0.000000e+00
+4.750000e+00	2.500000e-01	2.500000e-01	7.231755e-01	0.000000e+00	0.000000e+00
+5.250000e+00	2.500000e-01	2.500000e-01	5.462544e-02	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_GRIDSUB2/d04-x01-y02
+Path=/REF/CMS_2013_I1256590_GRIDSUB2/d04-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+1.097304e+00	9.730405e-02	9.730405e-02	9.843526e-01	0.000000e+00	0.000000e+00
+1.310850e+00	1.162410e-01	1.162410e-01	1.032045e+00	0.000000e+00	0.000000e+00
+1.565954e+00	1.388630e-01	1.388630e-01	1.032045e+00	0.000000e+00	0.000000e+00
+1.870703e+00	1.658865e-01	1.658865e-01	9.689500e-01	0.000000e+00	0.000000e+00
+2.234760e+00	1.981700e-01	1.981700e-01	9.537884e-01	0.000000e+00	0.000000e+00
+2.669665e+00	2.367350e-01	2.367350e-01	8.407319e-01	0.000000e+00	0.000000e+00
+3.189208e+00	2.828065e-01	2.828065e-01	7.648242e-01	0.000000e+00	0.000000e+00
+3.809856e+00	3.378430e-01	3.378430e-01	6.132976e-01	0.000000e+00	0.000000e+00
+4.551290e+00	4.035905e-01	4.035905e-01	5.238152e-01	0.000000e+00	0.000000e+00
+5.437013e+00	4.821335e-01	4.821335e-01	4.473886e-01	0.000000e+00	0.000000e+00
+6.495107e+00	5.759600e-01	5.759600e-01	3.644549e-01	0.000000e+00	0.000000e+00
+7.759116e+00	6.880480e-01	6.880480e-01	2.922493e-01	0.000000e+00	0.000000e+00
+9.269112e+00	8.219480e-01	8.219480e-01	2.418587e-01	0.000000e+00	0.000000e+00
+1.107298e+01	9.819200e-01	9.819200e-01	1.764312e-01	0.000000e+00	0.000000e+00
+1.322790e+01	1.173000e+00	1.173000e+00	1.370839e-01	0.000000e+00	0.000000e+00
+1.580216e+01	1.401255e+00	1.401255e+00	1.015896e-01	0.000000e+00	0.000000e+00
+1.887738e+01	1.673970e+00	1.673970e+00	6.957701e-02	0.000000e+00	0.000000e+00
+2.255110e+01	1.999745e+00	1.999745e+00	4.917913e-02	0.000000e+00	0.000000e+00
+2.693975e+01	2.388910e+00	2.388910e+00	3.368195e-02	0.000000e+00	0.000000e+00
+3.218248e+01	2.853820e+00	2.853820e+00	2.306820e-02	0.000000e+00	0.000000e+00
+3.844549e+01	3.409190e+00	3.409190e+00	1.287031e-02	0.000000e+00	0.000000e+00
+4.592735e+01	4.072655e+00	4.072655e+00	6.532336e-03	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_GRIDSUB2/d04-x01-y03
+Path=/REF/CMS_2013_I1256590_GRIDSUB2/d04-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+1.097304e+00	9.730405e-02	9.730405e-02	1.050239e+00	5.598086e-01	5.645933e-01
+1.310850e+00	1.162410e-01	1.162410e-01	6.339713e-01	4.354067e-01	4.354067e-01
+1.565954e+00	1.388630e-01	1.388630e-01	6.818182e-01	3.636364e-01	3.684211e-01
+1.870703e+00	1.658865e-01	1.658865e-01	4.043062e-01	2.918660e-01	2.918660e-01
+2.234760e+00	1.981700e-01	1.981700e-01	2.224880e-01	2.344498e-01	2.392344e-01
+2.669665e+00	2.367350e-01	2.367350e-01	5.502392e-02	1.818182e-01	1.866029e-01
+3.189208e+00	2.828065e-01	2.828065e-01	-5.502392e-02	1.387560e-01	1.435407e-01
+3.809856e+00	3.378430e-01	3.378430e-01	-6.937799e-02	1.052632e-01	1.004785e-01
+4.551290e+00	4.035905e-01	4.035905e-01	-9.808612e-02	7.177033e-02	7.177033e-02
+5.437013e+00	4.821335e-01	4.821335e-01	-1.028708e-01	5.263158e-02	5.263158e-02
+6.495107e+00	5.759600e-01	5.759600e-01	-8.851675e-02	3.827751e-02	3.349282e-02
+7.759116e+00	6.880480e-01	6.880480e-01	-8.373206e-02	2.870813e-02	2.392344e-02
+9.269112e+00	8.219480e-01	8.219480e-01	-6.937799e-02	1.435407e-02	2.392344e-02
+1.107298e+01	9.819200e-01	9.819200e-01	-4.066986e-02	1.913876e-02	1.435407e-02
+1.322790e+01	1.173000e+00	1.173000e+00	-3.588517e-02	1.435407e-02	1.435407e-02
+1.580216e+01	1.401255e+00	1.401255e+00	-2.631579e-02	9.569378e-03	1.435407e-02
+1.887738e+01	1.673970e+00	1.673970e+00	-7.177033e-03	1.435407e-02	4.784689e-03
+2.255110e+01	1.999745e+00	1.999745e+00	-7.177033e-03	9.569378e-03	4.784689e-03
+2.693975e+01	2.388910e+00	2.388910e+00	-2.392344e-03	0.000000e+00	0.000000e+00
+3.218248e+01	2.853820e+00	2.853820e+00	2.392344e-03	0.000000e+00	0.000000e+00
+3.844549e+01	3.409190e+00	3.409190e+00	2.392344e-03	0.000000e+00	0.000000e+00
+4.592735e+01	4.072655e+00	4.072655e+00	-2.392344e-03	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_GRIDSUB2/d04-x01-y01
+Path=/REF/CMS_2013_I1256590_GRIDSUB2/d04-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+1.097304e+00	9.730405e-02	9.730405e-02	2.033383e+00	4.782024e-01	4.627072e-01
+1.310850e+00	1.162410e-01	1.162410e-01	1.656449e+00	3.489591e-01	3.451167e-01
+1.565954e+00	1.388630e-01	1.388630e-01	1.709530e+00	2.947629e-01	3.238530e-01
+1.870703e+00	1.658865e-01	1.658865e-01	1.370839e+00	2.541162e-01	2.341778e-01
+2.234760e+00	1.981700e-01	1.981700e-01	1.189440e+00	2.204898e-01	1.813987e-01
+2.669665e+00	2.367350e-01	2.367350e-01	8.954777e-01	1.774117e-01	1.696391e-01
+3.189208e+00	2.828065e-01	2.828065e-01	7.068302e-01	1.400369e-01	1.339018e-01
+3.809856e+00	3.378430e-01	3.378430e-01	5.491943e-01	1.088062e-01	1.040393e-01
+4.551290e+00	4.035905e-01	4.035905e-01	4.267141e-01	8.454043e-02	8.890473e-02
+5.437013e+00	4.821335e-01	4.821335e-01	3.421737e-01	6.779131e-02	5.845289e-02
+6.495107e+00	5.759600e-01	5.759600e-01	2.700890e-01	4.656965e-02	4.613880e-02
+7.759116e+00	6.880480e-01	6.880480e-01	2.065706e-01	3.561760e-02	3.528807e-02
+9.269112e+00	8.219480e-01	8.219480e-01	1.709530e-01	2.947629e-02	2.607165e-02
+1.107298e+01	9.819200e-01	9.819200e-01	1.328274e-01	2.115517e-02	2.269066e-02
+1.322790e+01	1.173000e+00	1.173000e+00	1.015896e-01	1.883195e-02	1.924512e-02
+1.580216e+01	1.401255e+00	1.401255e+00	7.648242e-02	1.611232e-02	1.593491e-02
+1.887738e+01	1.673970e+00	1.673970e+00	5.667932e-02	1.332960e-02	1.073732e-02
+2.255110e+01	1.999745e+00	1.999745e+00	4.006265e-02	1.083773e-02	1.149923e-02
+2.693975e+01	2.388910e+00	2.388910e+00	2.831749e-02	8.615028e-03	9.295896e-03
+3.218248e+01	2.853820e+00	2.853820e+00	1.909070e-02	6.620015e-03	6.266981e-03
+3.844549e+01	3.409190e+00	3.409190e+00	1.170828e-02	4.750580e-03	4.856209e-03
+4.592735e+01	4.072655e+00	4.072655e+00	6.636175e-03	2.933691e-03	3.207351e-03
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_GRIDSUB2/d02-x01-y01
+Path=/REF/CMS_2013_I1256590_GRIDSUB2/d02-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-02	2.500000e-02	2.500000e-02	6.375449e-01	0.000000e+00	0.000000e+00
+7.500000e-02	2.500000e-02	2.500000e-02	8.643001e-01	0.000000e+00	0.000000e+00
+1.250000e-01	2.500000e-02	2.500000e-02	9.278651e-01	0.000000e+00	0.000000e+00
+1.750000e-01	2.500000e-02	2.500000e-02	9.612714e-01	0.000000e+00	0.000000e+00
+2.250000e-01	2.500000e-02	2.500000e-02	9.858084e-01	0.000000e+00	0.000000e+00
+2.750000e-01	2.500000e-02	2.500000e-02	9.979320e-01	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_GRIDSUB2/d02-x01-y02
+Path=/REF/CMS_2013_I1256590_GRIDSUB2/d02-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-02	2.500000e-02	2.500000e-02	6.357711e-01	0.000000e+00	0.000000e+00
+7.500000e-02	2.500000e-02	2.500000e-02	8.678478e-01	0.000000e+00	0.000000e+00
+1.250000e-01	2.500000e-02	2.500000e-02	9.366820e-01	0.000000e+00	0.000000e+00
+1.750000e-01	2.500000e-02	2.500000e-02	9.700882e-01	0.000000e+00	0.000000e+00
+2.250000e-01	2.500000e-02	2.500000e-02	9.892897e-01	0.000000e+00	0.000000e+00
+2.750000e-01	2.500000e-02	2.500000e-02	9.978656e-01	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
Index: trunk/code/ATLAS_2014_I1300152.yoda
===================================================================
--- trunk/code/ATLAS_2014_I1300152.yoda	(revision 0)
+++ trunk/code/ATLAS_2014_I1300152.yoda	(revision 452)
@@ -0,0 +1,1440 @@
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d06-x01-y07
+Path=/REF/ATLAS_2014_I1300152/d06-x01-y07
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.083066e+00	5.635186e-02	9.803626e-02
+3.111899e+00	4.448028e-01	4.448028e-01	8.016450e-01	3.659074e-02	9.632093e-02
+4.149868e+00	5.931660e-01	5.931660e-01	6.013213e-01	1.973869e-02	7.676178e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.480562e-01	1.180333e-02	5.719387e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.164973e-01	8.337622e-03	3.803439e-02
+9.841483e+00	1.406703e+00	1.406703e+00	2.206025e-01	5.828233e-03	1.997105e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.400461e-01	2.785391e-03	9.651644e-03
+1.750161e+01	2.501612e+00	2.501612e+00	8.656407e-02	2.285576e-03	2.335632e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.971875e-02	6.622681e-04	6.641676e-04
+3.112401e+01	4.448745e+00	4.448745e+00	2.600896e-02	1.354348e-03	7.014633e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.247519e-02	1.264959e-03	3.363849e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.235976e-03	8.341495e-04	1.774649e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.774985e-03	3.413658e-04	6.005767e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.638162e-04	9.661307e-05	6.270803e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d06-x01-y06
+Path=/REF/ATLAS_2014_I1300152/d06-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.151227e+00	5.270690e-02	1.041990e-01
+3.111899e+00	4.448028e-01	4.448028e-01	8.693235e-01	2.298139e-02	1.043929e-01
+4.149868e+00	5.931660e-01	5.931660e-01	6.306895e-01	1.254730e-02	8.046705e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.167423e-01	1.101924e-02	5.316517e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.064054e-01	6.097484e-03	3.451944e-02
+9.841483e+00	1.406703e+00	1.406703e+00	2.079422e-01	4.142618e-03	2.035239e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.355806e-01	2.698061e-03	1.032008e-02
+1.750161e+01	2.501612e+00	2.501612e+00	8.380387e-02	2.756343e-03	2.834585e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.878021e-02	1.289020e-03	9.818150e-04
+3.112401e+01	4.448745e+00	4.448745e+00	2.551799e-02	1.650589e-03	6.877824e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.257078e-02	1.274526e-03	3.389626e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.491668e-03	9.061841e-04	1.857821e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.899326e-03	3.654590e-04	9.062889e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.996307e-04	1.040843e-04	3.090155e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d06-x01-y05
+Path=/REF/ATLAS_2014_I1300152/d06-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.231865e+00	4.835530e-02	1.115878e-01
+3.111899e+00	4.448028e-01	4.448028e-01	8.937112e-01	2.366500e-02	1.072879e-01
+4.149868e+00	5.931660e-01	5.931660e-01	6.440624e-01	1.702990e-02	8.216513e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.519256e-01	1.489822e-02	5.764222e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.108227e-01	8.223655e-03	3.499389e-02
+9.841483e+00	1.406703e+00	1.406703e+00	2.053831e-01	6.774006e-03	1.858949e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.321364e-01	2.633141e-03	1.005076e-02
+1.750161e+01	2.501612e+00	2.501612e+00	8.501202e-02	2.248761e-03	2.290340e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.915428e-02	9.800580e-04	1.324283e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.588587e-02	1.835034e-03	5.208656e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.266718e-02	1.284491e-03	3.414166e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.388002e-03	8.286225e-04	1.452838e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.875940e-03	3.506268e-04	6.365785e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.836994e-04	1.058536e-04	2.310020e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d06-x01-y04
+Path=/REF/ATLAS_2014_I1300152/d06-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.292028e+00	7.539191e-02	1.170377e-01
+3.111899e+00	4.448028e-01	4.448028e-01	9.187728e-01	3.024861e-02	1.103483e-01
+4.149868e+00	5.931660e-01	5.931660e-01	6.319081e-01	2.080762e-02	8.061456e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.288424e-01	8.541035e-03	5.472233e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.009117e-01	5.984862e-03	3.613128e-02
+9.841483e+00	1.406703e+00	1.406703e+00	2.069581e-01	5.451984e-03	2.026369e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.331497e-01	4.368550e-03	9.185110e-03
+1.750161e+01	2.501612e+00	2.501612e+00	8.285244e-02	1.641051e-03	2.810543e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.887446e-02	6.480568e-04	6.564884e-04
+3.112401e+01	4.448745e+00	4.448745e+00	2.643489e-02	1.543214e-03	5.323650e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.310967e-02	1.249082e-03	3.536440e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.765439e-03	9.184717e-04	2.352599e-04
+7.381112e+01	1.055027e+01	1.055027e+01	2.034338e-03	3.912631e-04	9.714270e-05
+9.843070e+01	1.406930e+01	1.406930e+01	5.245384e-04	1.174914e-04	3.618127e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d06-x01-y03
+Path=/REF/ATLAS_2014_I1300152/d06-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.301936e+00	5.942632e-02	1.179669e-01
+3.111899e+00	4.448028e-01	4.448028e-01	9.508729e-01	3.120777e-02	1.213839e-01
+4.149868e+00	5.931660e-01	5.931660e-01	6.496281e-01	1.710282e-02	8.784219e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.379379e-01	8.736580e-03	5.587467e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.012006e-01	5.962554e-03	3.393681e-02
+9.841483e+00	1.406703e+00	1.406703e+00	2.017007e-01	3.995068e-03	1.681381e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.297666e-01	1.717792e-03	9.882213e-03
+1.750161e+01	2.501612e+00	2.501612e+00	8.293244e-02	1.642182e-03	2.243359e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.924926e-02	1.296590e-03	6.643127e-04
+3.112401e+01	4.448745e+00	4.448745e+00	2.628440e-02	1.532768e-03	5.303836e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.277665e-02	1.218514e-03	3.446603e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.507592e-03	8.464410e-04	2.247383e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.956359e-03	3.656399e-04	9.346491e-05
+9.843070e+01	1.406930e+01	1.406930e+01	5.392506e-04	1.151754e-04	2.954944e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d06-x01-y02
+Path=/REF/ATLAS_2014_I1300152/d06-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.383872e+00	8.067828e-02	1.353958e-01
+3.111899e+00	4.448028e-01	4.448028e-01	9.973186e-01	3.273212e-02	1.273192e-01
+4.149868e+00	5.931660e-01	5.931660e-01	6.546098e-01	2.147730e-02	8.851581e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.383607e-01	1.153838e-02	5.595073e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.014931e-01	9.893411e-03	3.170849e-02
+9.841483e+00	1.406703e+00	1.406703e+00	2.005524e-01	5.277780e-03	1.814982e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.290285e-01	2.555657e-03	8.906215e-03
+1.750161e+01	2.501612e+00	2.501612e+00	8.356888e-02	2.200581e-03	2.835330e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.995925e-02	9.895387e-04	1.009250e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.756812e-02	1.607192e-03	7.450965e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.349039e-02	1.286584e-03	4.563773e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.738154e-03	8.818481e-04	2.743751e-04
+7.381112e+01	1.055027e+01	1.055027e+01	2.024699e-03	3.894092e-04	8.266536e-05
+9.843070e+01	1.406930e+01	1.406930e+01	5.433859e-04	1.160754e-04	3.743911e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d06-x01-y01
+Path=/REF/ATLAS_2014_I1300152/d06-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.357749e+00	7.060045e-02	1.229826e-01
+3.111899e+00	4.448028e-01	4.448028e-01	1.011685e+00	4.617792e-02	1.215454e-01
+4.149868e+00	5.931660e-01	5.931660e-01	6.640469e-01	2.178692e-02	8.977925e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.358653e-01	1.429808e-02	5.564046e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.017842e-01	1.183968e-02	2.956684e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.980843e-01	5.216062e-03	1.794335e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.274406e-01	3.354448e-03	1.061730e-02
+1.750161e+01	2.501612e+00	2.501612e+00	8.090374e-02	1.613535e-03	2.178728e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.869013e-02	1.287434e-03	6.493237e-04
+3.112401e+01	4.448745e+00	4.448745e+00	2.686780e-02	1.737337e-03	5.404704e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.350341e-02	1.368948e-03	3.638779e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.859889e-03	9.988944e-04	2.388071e-04
+7.381112e+01	1.055027e+01	1.055027e+01	2.040237e-03	3.923792e-04	1.118595e-04
+9.843070e+01	1.406930e+01	1.406930e+01	5.331285e-04	1.138561e-04	4.441265e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d10-x01-y06
+Path=/REF/ATLAS_2014_I1300152/d10-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.052452e+00	2.899787e-02	3.240938e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.069510e+00	2.388060e-02	2.558635e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.016631e+00	2.899787e-02	2.729211e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.262260e-01	2.388060e-02	3.240938e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.569296e-01	2.899787e-02	2.729211e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.518124e-01	2.729211e-02	2.899787e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.603412e-01	3.411514e-02	3.411514e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.808102e-01	3.240938e-02	3.070362e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.927505e-01	3.411514e-02	3.240938e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.688699e-01	4.093817e-02	3.923241e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.016631e+00	4.605544e-02	4.605544e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.062687e+00	5.970149e-02	5.970149e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.083156e+00	9.381663e-02	9.381663e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.120682e+00	1.620469e-01	1.620469e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d09-x01-y01
+Path=/REF/ATLAS_2014_I1300152/d09-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.256111e+00	7.148587e-02	8.510988e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.167488e+00	4.425532e-02	5.617720e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.014185e+00	4.595395e-02	6.468784e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.647114e-01	2.723404e-02	2.723404e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.628975e-01	2.553191e-02	2.723754e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.253388e-01	2.553191e-02	2.383328e-02
+8.984721e-02	1.029240e-02	1.029240e-02	8.741631e-01	2.553191e-02	2.723754e-02
+1.130952e-01	1.295555e-02	1.295555e-02	8.842641e-01	3.234043e-02	3.404255e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.369182e-01	2.723404e-02	2.552842e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.674446e-01	3.063480e-02	2.893617e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.006482e+00	4.085456e-02	3.914894e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.001263e+00	3.914544e-02	3.914544e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.014769e+00	3.744331e-02	4.254970e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.050402e+00	5.276596e-02	5.106732e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.108162e+00	7.829787e-02	7.659924e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.159114e+00	1.259574e-01	1.259609e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.201555e+00	2.025497e-01	2.059574e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d09-x01-y02
+Path=/REF/ATLAS_2014_I1300152/d09-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.211915e+00	3.574468e-02	9.531915e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.142128e+00	4.085106e-02	6.127660e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.011064e+00	2.893617e-02	5.446809e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.463830e-01	2.893617e-02	3.574468e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.634043e-01	2.893617e-02	2.553191e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.480851e-01	2.893617e-02	2.723404e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.055319e-01	3.063830e-02	3.063830e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.055319e-01	3.404255e-02	3.404255e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.497872e-01	2.723404e-02	2.553191e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.753191e-01	3.063830e-02	3.063830e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.009362e+00	4.085106e-02	3.914894e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.017872e+00	4.085106e-02	4.085106e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.031489e+00	4.085106e-02	4.595745e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.055319e+00	5.276596e-02	5.276596e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.092766e+00	7.829787e-02	8.000000e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.120000e+00	1.191489e-01	1.191489e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.142128e+00	1.957447e-01	1.957447e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d09-x01-y03
+Path=/REF/ATLAS_2014_I1300152/d09-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.162553e+00	3.404255e-02	7.829787e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.113191e+00	3.914894e-02	4.595745e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.016170e+00	2.893617e-02	4.085106e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.872340e-01	3.063830e-02	2.723404e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.770213e-01	2.723404e-02	2.723404e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.259574e-01	2.382979e-02	2.553191e-02
+8.984721e-02	1.029240e-02	1.029240e-02	8.936170e-01	3.063830e-02	2.893617e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.106383e-01	3.404255e-02	3.404255e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.514894e-01	2.382979e-02	2.723404e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.531915e-01	2.893617e-02	3.234043e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.736170e-01	4.085106e-02	3.914894e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.736170e-01	3.914894e-02	3.914894e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.838298e-01	3.914894e-02	4.595745e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.021277e+00	5.446809e-02	5.106383e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.089362e+00	7.829787e-02	7.829787e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.159149e+00	1.242553e-01	1.276596e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.222128e+00	2.110638e-01	2.076596e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d09-x01-y04
+Path=/REF/ATLAS_2014_I1300152/d09-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.166738e+00	3.582090e-02	6.311301e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.069510e+00	3.582090e-02	3.752665e-02
+3.578878e-02	4.099764e-03	4.099764e-03	9.671642e-01	2.899787e-02	4.264392e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.552239e-01	2.899787e-02	2.899787e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.808102e-01	2.729211e-02	2.899787e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.620469e-01	2.899787e-02	2.729211e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.279318e-01	3.240938e-02	3.411514e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.296375e-01	3.582090e-02	3.411514e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.432836e-01	2.899787e-02	2.729211e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.586354e-01	3.240938e-02	3.240938e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.961620e-01	4.093817e-02	4.093817e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.961620e-01	4.093817e-02	4.093817e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.011514e+00	4.093817e-02	4.093817e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.060981e+00	5.458422e-02	5.458422e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.122388e+00	8.017058e-02	8.187633e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.173561e+00	1.313433e-01	1.330490e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.219616e+00	2.149254e-01	2.149254e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d09-x01-y05
+Path=/REF/ATLAS_2014_I1300152/d09-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.130917e+00	3.411514e-02	3.923241e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.078038e+00	3.923241e-02	3.923241e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.002985e+00	3.582090e-02	4.093817e-02
+4.504913e-02	5.160577e-03	5.160577e-03	1.009808e+00	3.070362e-02	3.070362e-02
+5.670558e-02	6.495875e-03	6.495875e-03	1.014925e+00	3.240938e-02	3.240938e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.637527e-01	2.899787e-02	2.729211e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.057569e-01	3.411514e-02	3.582090e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.211087e-01	3.582090e-02	3.752665e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.569296e-01	3.240938e-02	2.899787e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.756930e-01	3.582090e-02	3.752665e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.927505e-01	4.434968e-02	4.264392e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.569296e-01	4.093817e-02	4.434968e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.535181e-01	4.093817e-02	3.923241e-02
+4.498632e-01	5.153382e-02	5.153382e-02	9.671642e-01	5.799574e-02	5.628998e-02
+5.662652e-01	6.486819e-02	6.486819e-02	9.995736e-01	8.017058e-02	7.846482e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.030277e+00	1.228145e-01	1.211087e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.059275e+00	1.978678e-01	1.978678e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d09-x01-y06
+Path=/REF/ATLAS_2014_I1300152/d09-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.115565e+00	6.993603e-02	5.117271e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.052452e+00	4.093817e-02	4.264392e-02
+3.578878e-02	4.099764e-03	4.099764e-03	9.773987e-01	3.411514e-02	3.923241e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.466951e-01	3.582090e-02	3.582090e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.654584e-01	3.070362e-02	3.070362e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.808102e-01	3.582090e-02	3.411514e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.535181e-01	3.923241e-02	3.923241e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.535181e-01	3.752665e-02	3.923241e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.569296e-01	3.240938e-02	3.411514e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.688699e-01	3.923241e-02	4.093817e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.008102e+00	4.946695e-02	5.458422e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.825160e-01	4.776119e-02	4.605544e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.791045e-01	4.605544e-02	4.946695e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.030277e+00	6.652452e-02	6.652452e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.096802e+00	9.211087e-02	9.381663e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.141151e+00	1.535181e-01	1.518124e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.178678e+00	2.422175e-01	2.439232e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d10-x01-y01
+Path=/REF/ATLAS_2014_I1300152/d10-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.274200e+00	4.093817e-02	7.505330e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.229851e+00	4.946695e-02	4.946695e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.052452e+00	2.558635e-02	3.240938e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.535181e-01	2.046908e-02	2.388060e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.245203e-01	2.388060e-02	1.876333e-02
+9.841483e+00	1.406703e+00	1.406703e+00	8.938166e-01	2.046908e-02	2.046908e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.194030e-01	2.388060e-02	2.729211e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.432836e-01	2.388060e-02	2.217484e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.705757e-01	2.388060e-02	2.388060e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.023454e+00	2.899787e-02	3.582090e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.086567e+00	4.434968e-02	4.264392e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.118977e+00	5.287846e-02	5.287846e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.153092e+00	7.846482e-02	7.675906e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.175267e+00	1.364606e-01	1.364606e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d07-x01-y04
+Path=/REF/ATLAS_2014_I1300152/d07-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.168443e+00	3.752665e-02	6.993603e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.062687e+00	3.923241e-02	4.093817e-02
+3.578878e-02	4.099764e-03	4.099764e-03	9.944563e-01	3.240938e-02	3.240938e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.637527e-01	2.899787e-02	3.070362e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.620469e-01	3.582090e-02	3.582090e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.654584e-01	3.240938e-02	3.240938e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.501066e-01	3.240938e-02	3.411514e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.194030e-01	3.070362e-02	3.070362e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.245203e-01	3.582090e-02	3.411514e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.654584e-01	4.093817e-02	4.093817e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.018337e+00	5.117271e-02	4.946695e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.026866e+00	4.605544e-02	4.605544e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.045629e+00	6.140725e-02	5.970149e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.076333e+00	7.505330e-02	7.675906e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.113859e+00	9.211087e-02	9.211087e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.139446e+00	1.347548e-01	1.347548e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.166738e+00	2.081023e-01	2.081023e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d07-x01-y05
+Path=/REF/ATLAS_2014_I1300152/d07-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.110448e+00	3.752665e-02	3.923241e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.096802e+00	4.264392e-02	4.264392e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.047335e+00	3.582090e-02	3.752665e-02
+4.504913e-02	5.160577e-03	5.160577e-03	1.014925e+00	3.240938e-02	3.240938e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.876333e-01	3.923241e-02	3.582090e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.535181e-01	3.582090e-02	3.411514e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.296375e-01	3.582090e-02	3.411514e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.296375e-01	3.411514e-02	3.411514e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.620469e-01	3.582090e-02	3.752665e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.944563e-01	4.434968e-02	4.264392e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.008102e+00	4.946695e-02	5.117271e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.773987e-01	4.605544e-02	4.605544e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.893390e-01	5.970149e-02	5.970149e-02
+4.498632e-01	5.153382e-02	5.153382e-02	9.978678e-01	7.505330e-02	7.505330e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.028571e+00	8.699360e-02	8.528785e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.055864e+00	1.296375e-01	1.279318e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.086567e+00	1.995736e-01	1.978678e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d07-x01-y02
+Path=/REF/ATLAS_2014_I1300152/d07-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.219616e+00	3.752665e-02	1.057569e-01
+2.843201e-02	3.257012e-03	3.257012e-03	1.147974e+00	4.264392e-02	5.628998e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.030277e+00	3.070362e-02	4.434968e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.705757e-01	2.729211e-02	2.729211e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.552239e-01	3.240938e-02	3.240938e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.381663e-01	3.070362e-02	2.899787e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.108742e-01	3.070362e-02	3.070362e-02
+1.130952e-01	1.295555e-02	1.295555e-02	8.955224e-01	2.729211e-02	2.729211e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.466951e-01	3.240938e-02	3.240938e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.893390e-01	4.093817e-02	3.923241e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.037100e+00	5.117271e-02	5.117271e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.050746e+00	4.434968e-02	4.434968e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.059275e+00	5.970149e-02	5.799574e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.064392e+00	7.334755e-02	7.164179e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.088273e+00	8.528785e-02	8.528785e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.110448e+00	1.194030e-01	1.159915e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.132623e+00	1.791045e-01	1.808102e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d07-x01-y03
+Path=/REF/ATLAS_2014_I1300152/d07-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.155260e+00	3.582090e-02	7.846482e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.112504e+00	3.923241e-02	4.434618e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.028810e+00	3.411164e-02	3.411514e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.775248e-01	2.899787e-02	2.900137e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.603552e-01	3.240938e-02	3.240938e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.329510e-01	2.899787e-02	3.070362e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.021353e-01	3.070362e-02	2.900137e-02
+1.130952e-01	1.295555e-02	1.295555e-02	8.952002e-01	2.729211e-02	2.900137e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.377320e-01	3.582790e-02	3.411164e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.683235e-01	4.093466e-02	3.753366e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.012561e+00	4.946345e-02	4.946345e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.012449e+00	4.434968e-02	4.434968e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.012337e+00	5.799574e-02	5.799223e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.025871e+00	7.334405e-02	7.163829e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.063286e+00	8.528434e-02	8.528434e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.093877e+00	1.211122e-01	1.211052e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.122763e+00	1.825230e-01	1.825160e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d05-x01-y04
+Path=/REF/ATLAS_2014_I1300152/d05-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.244456e+02	3.275202e+00	1.401034e+01
+2.843201e-02	3.257012e-03	3.257012e-03	9.342479e+01	3.063304e+00	1.191336e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.783690e+01	-9.106933e-01	1.019583e+01
+4.504913e-02	5.160577e-03	5.160577e-03	5.230361e+01	1.376544e+00	6.669661e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.900484e+01	7.724681e-01	4.681564e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.908743e+01	5.760596e-01	3.059659e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.140429e+01	7.018247e-01	1.782993e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.463669e+01	2.898711e-01	1.009205e+00
+1.423585e-01	1.630780e-02	1.630780e-02	9.876280e+00	2.599273e-01	3.348113e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.575859e+00	8.710982e-02	1.328623e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.123346e+00	1.085196e-01	8.331038e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.418742e+00	1.859899e-01	6.537792e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.372305e+00	1.552026e-01	1.842285e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.998090e-01	1.113856e-01	1.891564e-02
+5.662652e-01	6.486819e-02	6.486819e-02	3.081782e-01	6.576581e-02	1.905977e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.089092e-01	2.605038e-02	1.065608e-02
+8.972195e-01	1.027805e-01	1.027805e-01	2.365577e-02	6.248428e-03	3.016540e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d05-x01-y05
+Path=/REF/ATLAS_2014_I1300152/d05-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.187356e+02	3.893219e+00	1.336750e+01
+2.843201e-02	3.257012e-03	3.257012e-03	9.656341e+01	2.541389e+00	1.231359e+01
+3.578878e-02	4.099764e-03	4.099764e-03	7.249286e+01	1.907892e+00	9.244157e+00
+4.504913e-02	5.160577e-03	5.160577e-03	5.478651e+01	1.441890e+00	6.986275e+00
+5.670558e-02	6.495875e-03	6.495875e-03	4.004730e+01	7.931134e-01	4.806685e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.888560e+01	7.602210e-01	2.826275e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.083480e+01	5.483375e-01	1.886550e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.482880e+01	3.902695e-01	1.022451e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.027637e+01	2.035175e-01	3.483745e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.796776e+00	2.228594e-01	1.837150e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.094734e+00	1.342622e-01	1.106795e-01
+2.839237e-01	3.252472e-02	3.252472e-02	2.338743e+00	2.225942e-01	9.546125e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.300637e+00	1.470973e-01	6.214497e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.501266e-01	1.034778e-01	2.653644e-02
+5.662652e-01	6.486819e-02	6.486819e-02	2.843967e-01	5.919420e-02	1.160832e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.011772e-01	2.420095e-02	5.543506e-03
+8.972195e-01	1.027805e-01	1.027805e-01	2.197634e-02	5.804825e-03	1.672435e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d05-x01-y06
+Path=/REF/ATLAS_2014_I1300152/d05-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.179117e+02	6.124809e+00	1.327474e+01
+2.843201e-02	3.257012e-03	3.257012e-03	9.213275e+01	1.824635e+00	1.174860e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.962936e+01	1.832529e+00	8.879009e+00
+4.504913e-02	5.160577e-03	5.160577e-03	5.192533e+01	1.028351e+00	6.621424e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.924259e+01	1.032800e+00	4.418011e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.985601e+01	7.857607e-01	3.140504e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.124948e+01	5.592512e-01	1.924098e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.492360e+01	2.955531e-01	1.028987e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.020506e+01	2.021053e-01	4.165434e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.615941e+00	1.741206e-01	1.336722e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.176233e+00	1.369344e-01	8.437893e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.433485e+00	2.316114e-01	3.266893e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.317709e+00	1.490280e-01	3.561730e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.719677e-01	1.069542e-01	2.742793e-02
+5.662652e-01	6.486819e-02	6.486819e-02	2.978973e-01	6.357184e-02	1.842393e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.066892e-01	2.497636e-02	8.119222e-03
+8.972195e-01	1.027805e-01	1.027805e-01	2.332861e-02	6.276094e-03	2.626383e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d05-x01-y07
+Path=/REF/ATLAS_2014_I1300152/d05-x01-y07
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.066577e+02	6.212212e+00	1.280162e+01
+2.843201e-02	3.257012e-03	3.257012e-03	8.790538e+01	3.447352e+00	1.120953e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.960879e+01	2.282401e+00	9.401452e+00
+4.504913e-02	5.160577e-03	5.160577e-03	5.402882e+01	1.421949e+00	6.889657e+00
+5.670558e-02	6.495875e-03	6.495875e-03	4.083230e+01	1.074639e+00	4.596984e+00
+7.137813e-02	8.176681e-03	8.176681e-03	3.024788e+01	5.990417e-01	3.181725e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.240712e+01	4.437600e-01	2.028920e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.594787e+01	3.158383e-01	1.099611e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.068950e+01	2.116994e-01	3.623800e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.838205e+00	1.799702e-01	1.848348e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.038105e+00	1.062762e-01	1.368940e-01
+2.839237e-01	3.252472e-02	3.252472e-02	2.384587e+00	1.979918e-01	4.817952e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.317319e+00	1.411679e-01	4.465785e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.497426e-01	9.976180e-02	3.559943e-02
+5.662652e-01	6.486819e-02	6.486819e-02	2.749091e-01	5.576312e-02	1.895508e-02
+7.127862e-01	8.165282e-02	8.165282e-02	9.586503e-02	2.293031e-02	6.609927e-03
+8.972195e-01	1.027805e-01	1.027805e-01	2.041012e-02	5.590079e-03	2.911602e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d05-x01-y01
+Path=/REF/ATLAS_2014_I1300152/d05-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.331441e+02	7.754895e+00	1.498964e+01
+2.843201e-02	3.257012e-03	3.257012e-03	1.026568e+02	4.025851e+00	1.309060e+01
+3.578878e-02	4.099764e-03	4.099764e-03	7.066843e+01	2.771377e+00	9.544568e+00
+4.504913e-02	5.160577e-03	5.160577e-03	5.234998e+01	1.377765e+00	6.283318e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.903943e+01	1.027453e+00	4.685715e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.834701e+01	9.294696e-01	2.773578e+00
+8.984721e-02	1.029240e-02	1.029240e-02	1.990822e+01	5.239513e-01	1.802649e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.398162e+01	2.768978e-01	9.640374e-01
+1.423585e-01	1.630780e-02	1.630780e-02	9.819346e+00	1.944664e-01	3.328812e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.581690e+00	1.303465e-01	1.329801e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.210386e+00	1.380543e-01	1.138056e-01
+2.839237e-01	3.252472e-02	3.252472e-02	2.469800e+00	2.201174e-01	8.372756e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.355327e+00	1.532825e-01	5.532082e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.865579e-01	1.092765e-01	3.761654e-02
+5.662652e-01	6.486819e-02	6.486819e-02	3.064016e-01	6.698836e-02	2.331766e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.097350e-01	2.735386e-02	1.073688e-02
+8.972195e-01	1.027805e-01	1.027805e-01	2.399460e-02	6.802620e-03	3.059747e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d05-x01-y02
+Path=/REF/ATLAS_2014_I1300152/d05-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.304687e+02	4.277936e+00	1.468843e+01
+2.843201e-02	3.257012e-03	3.257012e-03	1.012670e+02	4.617929e+00	1.291338e+01
+3.578878e-02	4.099764e-03	4.099764e-03	7.159598e+01	2.347559e+00	9.129789e+00
+4.504913e-02	5.160577e-03	5.160577e-03	5.268464e+01	1.727476e+00	6.718249e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.902789e+01	1.279685e+00	4.393840e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.852822e+01	9.354114e-01	2.583174e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.057704e+01	6.747001e-01	1.714082e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.435530e+01	5.629662e-01	8.878261e-01
+1.423585e-01	1.630780e-02	1.630780e-02	1.014923e+01	2.009996e-01	3.440644e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.757594e+00	1.778487e-01	1.365342e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.209143e+00	1.650683e-01	8.504386e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.485588e+00	2.063779e-01	1.187624e-01
+3.573889e-01	4.094048e-02	4.094048e-02	1.391550e+00	1.491226e-01	6.648879e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.909468e-01	1.099750e-01	3.785701e-02
+5.662652e-01	6.486819e-02	6.486819e-02	3.002448e-01	6.407281e-02	2.070198e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.061055e-01	2.591624e-02	8.838669e-03
+8.972195e-01	1.027805e-01	1.027805e-01	2.289364e-02	6.270284e-03	2.577413e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d05-x01-y03
+Path=/REF/ATLAS_2014_I1300152/d05-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.236551e+02	4.054525e+00	1.392134e+01
+2.843201e-02	3.257012e-03	3.257012e-03	9.791759e+01	3.210618e+00	1.322487e+01
+3.578878e-02	4.099764e-03	4.099764e-03	7.157483e+01	1.417498e+00	9.666987e+00
+4.504913e-02	5.160577e-03	5.160577e-03	5.302143e+01	7.023702e-01	6.761196e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.927738e+01	5.203041e-01	4.714276e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.833027e+01	3.752886e-01	2.980014e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.029846e+01	2.688919e-01	1.837985e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.435106e+01	1.901072e-01	9.895102e-01
+1.423585e-01	1.630780e-02	1.630780e-02	1.007880e+01	1.996048e-01	3.416769e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.666107e+00	1.320184e-01	4.459623e-02
+2.255601e-01	2.583891e-02	2.583891e-02	4.124564e+00	1.085517e-01	8.333499e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.435643e+00	2.170732e-01	6.583475e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.336583e+00	1.432322e-01	4.531088e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.636541e-01	9.813965e-02	3.636164e-02
+5.662652e-01	6.486819e-02	6.486819e-02	2.942117e-01	5.967849e-02	1.819599e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.053693e-01	2.520366e-02	7.265247e-03
+8.972195e-01	1.027805e-01	1.027805e-01	2.273478e-02	6.116337e-03	2.224457e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d07-x01-y01
+Path=/REF/ATLAS_2014_I1300152/d07-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.241791e+00	7.675906e-02	1.006397e-01
+2.843201e-02	3.257012e-03	3.257012e-03	1.166738e+00	4.264392e-02	5.287846e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.016631e+00	3.240938e-02	5.458422e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.688699e-01	2.729211e-02	2.899787e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.620469e-01	3.240938e-02	3.070362e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.347548e-01	2.899787e-02	3.070362e-02
+8.984721e-02	1.029240e-02	1.029240e-02	8.869936e-01	2.899787e-02	3.070362e-02
+1.130952e-01	1.295555e-02	1.295555e-02	8.801706e-01	2.729211e-02	2.729211e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.194030e-01	3.070362e-02	3.070362e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.688699e-01	3.923241e-02	3.752665e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.038806e+00	5.117271e-02	5.628998e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.035394e+00	4.264392e-02	4.434968e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.033689e+00	5.628998e-02	5.628998e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.054158e+00	7.164179e-02	7.164179e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.105330e+00	8.699360e-02	8.528785e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.147974e+00	1.211087e-01	1.211087e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.185501e+00	1.859275e-01	1.842217e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d02-x01-y03
+Path=/REF/ATLAS_2014_I1300152/d02-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.060427e+00	4.835147e-02	8.066197e-02
+3.111899e+00	4.448028e-01	4.448028e-01	7.593731e-01	2.489908e-02	1.025427e-01
+4.149868e+00	5.931660e-01	5.931660e-01	5.259578e-01	1.723710e-02	8.310537e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.667265e-01	7.252761e-03	5.794086e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.591359e-01	5.126359e-03	3.696700e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.782902e-01	3.528005e-03	2.408011e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.178563e-01	1.559283e-03	1.326631e-02
+1.750161e+01	2.501612e+00	2.501612e+00	7.738958e-02	2.035503e-03	5.333266e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.598072e-02	9.133926e-04	1.240207e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.521855e-02	6.654947e-04	5.079481e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.243175e-02	9.574827e-04	3.342430e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.363267e-03	7.931078e-04	2.186336e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.807938e-03	3.667662e-04	8.628876e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.139845e-04	1.011103e-04	2.850976e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d02-x01-y02
+Path=/REF/ATLAS_2014_I1300152/d02-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.082172e+00	5.620095e-02	9.787647e-02
+3.111899e+00	4.448028e-01	4.448028e-01	7.801294e-01	2.557122e-02	1.053703e-01
+4.149868e+00	5.931660e-01	5.931660e-01	5.296360e-01	1.736623e-02	7.960729e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.668349e-01	9.650499e-03	5.796512e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.609467e-01	6.862007e-03	3.722532e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.795361e-01	3.552658e-03	2.425180e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.210777e-01	2.392569e-03	1.363344e-02
+1.750161e+01	2.501612e+00	2.501612e+00	7.845215e-02	2.063451e-03	5.969866e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.755382e-02	1.250762e-03	1.283729e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.625567e-02	6.905772e-04	7.092315e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.320452e-02	9.352602e-04	4.462671e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.658793e-03	8.367019e-04	1.916401e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.894893e-03	3.844063e-04	6.401896e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.281454e-04	1.045780e-04	2.643361e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d02-x01-y01
+Path=/REF/ATLAS_2014_I1300152/d02-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.104364e+00	5.735343e-02	9.192080e-02
+3.111899e+00	4.448028e-01	4.448028e-01	7.961270e-01	3.122142e-02	1.075209e-01
+4.149868e+00	5.931660e-01	5.931660e-01	5.369019e-01	2.104972e-02	8.069251e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.620846e-01	9.531441e-03	5.720043e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.575661e-01	6.777314e-03	3.673977e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.772102e-01	3.509545e-03	2.392862e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.187150e-01	2.349131e-03	1.424954e-02
+1.750161e+01	2.501612e+00	2.501612e+00	7.640959e-02	5.116008e-04	5.806624e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.662557e-02	9.223709e-04	1.259206e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.608890e-02	5.165326e-04	5.263710e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.312064e-02	1.090481e-03	3.533672e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.660499e-03	8.371427e-04	1.527418e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.882857e-03	3.919056e-04	7.680944e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.197903e-04	1.025337e-04	2.001843e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d02-x01-y07
+Path=/REF/ATLAS_2014_I1300152/d02-x01-y07
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	8.965473e-01	5.225189e-02	6.813706e-02
+3.111899e+00	4.448028e-01	4.448028e-01	6.593723e-01	3.008951e-02	8.899713e-02
+4.149868e+00	5.931660e-01	5.931660e-01	5.149349e-01	2.019401e-02	7.739433e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.837967e-01	1.258431e-02	5.768189e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.803887e-01	5.549865e-03	3.999882e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.968113e-01	3.896657e-03	2.658035e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.292349e-01	3.399843e-03	1.454873e-02
+1.750161e+01	2.501612e+00	2.501612e+00	8.099143e-02	2.130680e-03	6.162607e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.812075e-02	9.556399e-04	1.296824e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.535725e-02	5.037137e-04	3.388350e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.200991e-02	8.507102e-04	2.413540e-04
+5.534942e+01	7.911430e+00	7.911430e+00	4.978086e-03	7.077219e-04	1.342134e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.601571e-03	3.163608e-04	5.425715e-05
+9.843070e+01	1.406930e+01	1.406930e+01	3.642952e-04	8.897284e-05	3.564403e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d02-x01-y06
+Path=/REF/ATLAS_2014_I1300152/d02-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	9.459489e-01	4.325784e-02	7.187449e-02
+3.111899e+00	4.448028e-01	4.448028e-01	7.145097e-01	1.887859e-02	9.104548e-02
+4.149868e+00	5.931660e-01	5.931660e-01	5.254914e-01	1.045023e-02	8.297726e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.591449e-01	9.489235e-03	5.670582e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.712768e-01	5.399230e-03	4.075002e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.878920e-01	4.961367e-03	2.536145e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.242034e-01	2.469984e-03	1.397227e-02
+1.750161e+01	2.501612e+00	2.501612e+00	7.835897e-02	1.556576e-03	5.958534e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.718170e-02	1.244826e-03	1.594579e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.453306e-02	8.064037e-04	8.285659e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.233818e-02	1.025829e-03	3.321522e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.430447e-03	7.722152e-04	1.834990e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.818430e-03	3.784792e-04	6.142513e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.163868e-04	1.037901e-04	1.986344e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d02-x01-y05
+Path=/REF/ATLAS_2014_I1300152/d02-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.004750e+00	3.951620e-02	7.635434e-02
+3.111899e+00	4.448028e-01	4.448028e-01	7.243160e-01	1.914163e-02	9.773978e-02
+4.149868e+00	5.931660e-01	5.931660e-01	5.291663e-01	1.741090e-02	7.948227e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.789345e-01	1.001624e-02	5.689755e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.677624e-01	7.077663e-03	4.021522e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.793769e-01	4.739450e-03	2.285234e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.209704e-01	2.409665e-03	1.450587e-02
+1.750161e+01	2.501612e+00	2.501612e+00	7.943441e-02	2.100092e-03	6.034579e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.719565e-02	1.552090e-03	1.270539e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.470449e-02	4.918296e-04	4.967490e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.177903e-02	9.069066e-04	4.795554e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.081699e-03	7.514702e-04	1.368319e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.724473e-03	3.498034e-04	7.018781e-05
+9.843070e+01	1.406930e+01	1.406930e+01	3.975142e-04	1.010757e-04	2.174937e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d02-x01-y04
+Path=/REF/ATLAS_2014_I1300152/d02-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.053074e+00	6.126362e-02	8.781754e-02
+3.111899e+00	4.448028e-01	4.448028e-01	7.441141e-01	1.966889e-02	1.004161e-01
+4.149868e+00	5.931660e-01	5.931660e-01	5.188399e-01	1.032933e-02	7.792454e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.641837e-01	7.244369e-03	5.471781e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.642935e-01	5.231284e-03	3.971971e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.867538e-01	6.123468e-03	2.241166e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.226306e-01	4.020272e-03	1.471801e-02
+1.750161e+01	2.501612e+00	2.501612e+00	7.685256e-02	2.021796e-03	5.845833e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.627465e-02	6.119756e-04	1.249995e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.521109e-02	3.334131e-04	5.089479e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.276400e-02	1.060055e-03	1.705583e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.617896e-03	7.987359e-04	1.513988e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.893773e-03	3.941608e-04	7.715558e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.222240e-04	1.031406e-04	2.607554e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d03-x01-y02
+Path=/REF/ATLAS_2014_I1300152/d03-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.188034e+00	4.957265e-02	9.059829e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.164103e+00	5.982906e-02	9.572650e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.063248e+00	2.735043e-02	3.760684e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.470085e-01	3.760684e-02	4.615385e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.384615e-01	2.564103e-02	2.564103e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.350427e-01	3.076923e-02	3.076923e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.247863e-01	2.735043e-02	2.905983e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.333333e-01	3.247863e-02	3.247863e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.367521e-01	3.247863e-02	2.905983e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.675214e-01	3.418803e-02	3.589744e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.931624e-01	3.760684e-02	3.931624e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.005128e+00	3.760684e-02	4.102564e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.032479e+00	5.128205e-02	5.128205e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.073504e+00	5.470085e-02	5.811966e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.121368e+00	7.521368e-02	7.350427e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.152137e+00	1.128205e-01	1.128205e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.172650e+00	1.726496e-01	1.743590e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d03-x01-y03
+Path=/REF/ATLAS_2014_I1300152/d03-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.147503e+00	3.751966e-02	7.675557e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.149320e+00	4.093817e-02	5.969800e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.045381e+00	2.729211e-02	3.240589e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.738509e-01	2.899787e-02	3.070362e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.466706e-01	2.558635e-02	2.558635e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.280192e-01	3.069663e-02	3.240589e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.161907e-01	2.899787e-02	2.899437e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.231256e-01	2.899787e-02	3.070362e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.283547e-01	3.069663e-02	3.070362e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.608759e-01	3.582090e-02	3.582439e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.797511e-01	3.923241e-02	3.752665e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.798665e-01	3.752665e-02	3.752316e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.816806e-01	4.946695e-02	4.776119e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.019319e+00	5.629347e-02	5.458422e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.085955e+00	7.164179e-02	7.164878e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.147478e+00	1.125835e-01	1.091649e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.197057e+00	1.756965e-01	1.773917e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d03-x01-y01
+Path=/REF/ATLAS_2014_I1300152/d03-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.228145e+00	4.605544e-02	7.505330e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.163326e+00	4.264392e-02	7.505330e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.054158e+00	2.558635e-02	4.434968e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.773987e-01	2.899787e-02	2.729211e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.398721e-01	2.558635e-02	2.388060e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.040512e-01	3.070362e-02	2.899787e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.023454e-01	2.729211e-02	2.729211e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.125800e-01	3.070362e-02	3.070362e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.159915e-01	2.899787e-02	2.899787e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.586354e-01	3.411514e-02	3.582090e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.927505e-01	3.752665e-02	3.752665e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.011514e+00	3.923241e-02	3.582090e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.033689e+00	5.117271e-02	5.117271e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.057569e+00	5.628998e-02	5.628998e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.096802e+00	7.334755e-02	7.334755e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.134328e+00	1.108742e-01	1.091684e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.163326e+00	1.705757e-01	1.688699e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d03-x01-y06
+Path=/REF/ATLAS_2014_I1300152/d03-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.078038e+00	3.923241e-02	3.923241e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.081450e+00	6.481876e-02	5.628998e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.021748e+00	3.582090e-02	3.411514e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.535181e-01	3.582090e-02	3.582090e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.603412e-01	3.411514e-02	3.240938e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.791045e-01	3.923241e-02	4.093817e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.705757e-01	3.752665e-02	3.752665e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.552239e-01	4.264392e-02	4.264392e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.398721e-01	3.923241e-02	4.093817e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.876333e-01	4.605544e-02	4.434968e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.020043e+00	4.605544e-02	4.946695e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.808102e-01	4.264392e-02	4.093817e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.484009e-01	5.628998e-02	6.652452e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.002985e+00	6.481876e-02	6.311301e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.091684e+00	8.187633e-02	8.017058e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.163326e+00	1.364606e-01	1.313433e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.216205e+00	2.063966e-01	2.046908e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d03-x01-y04
+Path=/REF/ATLAS_2014_I1300152/d03-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.158209e+00	4.434968e-02	5.458422e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.107036e+00	3.923241e-02	6.823028e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.030277e+00	2.729211e-02	2.729211e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.586354e-01	2.899787e-02	3.070362e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.398721e-01	2.729211e-02	2.729211e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.330490e-01	3.240938e-02	3.240938e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.552239e-01	3.240938e-02	2.899787e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.569296e-01	3.411514e-02	3.411514e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.330490e-01	3.240938e-02	3.070362e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.501066e-01	3.582090e-02	3.582090e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.722814e-01	3.923241e-02	4.093817e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.705757e-01	3.752665e-02	3.752665e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.859275e-01	4.946695e-02	4.946695e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.045629e+00	5.799574e-02	5.799574e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.124094e+00	7.675906e-02	7.505330e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.194030e+00	1.211087e-01	1.194030e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.245203e+00	1.927505e-01	1.893390e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d03-x01-y05
+Path=/REF/ATLAS_2014_I1300152/d03-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.085912e+00	5.288197e-02	5.287846e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.102858e+00	4.093116e-02	5.629348e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.031104e+00	2.899787e-02	3.070713e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.917593e-01	3.411514e-02	3.411514e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.745897e-01	3.240938e-02	3.241639e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.301279e-01	3.582440e-02	3.752315e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.197813e-01	3.240938e-02	3.240938e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.401383e-01	3.582090e-02	3.753016e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.349089e-01	3.752665e-02	3.411164e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.825580e-01	4.093817e-02	4.093817e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.002915e+00	4.264042e-02	4.264392e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.601590e-01	4.264392e-02	4.264392e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.446951e-01	5.116921e-02	4.946345e-02
+4.498632e-01	5.153382e-02	5.153382e-02	9.445830e-01	5.629348e-02	5.628998e-02
+5.662652e-01	6.486819e-02	6.486819e-02	9.768803e-01	6.993603e-02	7.163829e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.016001e+00	1.142892e-01	1.159880e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.050004e+00	1.773952e-01	1.756965e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d07-x01-y06
+Path=/REF/ATLAS_2014_I1300152/d07-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.098448e+00	5.287496e-02	5.288897e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.050575e+00	4.435669e-02	4.605894e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.002701e+00	3.923241e-02	3.923241e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.599454e-01	3.752665e-02	3.923591e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.615390e-01	4.093466e-02	4.264392e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.904248e-01	3.923241e-02	3.752665e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.459631e-01	3.582090e-02	3.752665e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.339107e-01	3.581739e-02	3.582090e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.593849e-01	3.923241e-02	3.922891e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.729189e-01	4.776470e-02	4.776119e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.027391e+00	5.628998e-02	5.798873e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.011927e+00	5.458072e-02	5.628648e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.004992e+00	6.310950e-02	6.140375e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.030463e+00	8.187283e-02	8.358559e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.079818e+00	1.057639e-01	1.074627e-01
+7.127862e-01	8.165282e-02	8.165282e-02	1.113821e+00	1.466951e-01	1.466986e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.151239e+00	2.115104e-01	2.115069e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d01-x01-y01
+Path=/REF/ATLAS_2014_I1300152/d01-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	9.790918e+01	5.710681e+00	1.103967e+01
+2.843201e-02	3.257012e-03	3.257012e-03	8.509899e+01	3.886142e+00	1.215859e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.217656e+01	1.638725e+00	9.838882e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.697088e+01	9.315663e-01	7.432720e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.478011e+01	6.897885e-01	5.235545e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.592585e+01	5.141834e-01	3.704177e+00
+8.984721e-02	1.029240e-02	1.029240e-02	1.932570e+01	3.832836e-01	2.614183e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.412009e+01	2.800415e-01	1.697366e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.011206e+01	2.005510e-01	7.707017e-01
+1.791937e-01	2.052744e-02	2.052744e-02	7.050866e+00	1.398387e-01	2.882233e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.660639e+00	1.228358e-01	6.265923e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.881701e+00	9.462277e-02	9.783527e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.677849e+00	1.700146e-01	5.696385e-02
+4.498632e-01	5.153382e-02	5.153382e-02	8.897284e-01	1.164098e-01	4.257467e-02
+5.662652e-01	6.486819e-02	6.486819e-02	4.239970e-01	9.281664e-02	2.326541e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.653749e-01	4.534985e-02	1.260422e-02
+8.972195e-01	1.027805e-01	1.027805e-01	3.988227e-02	1.035101e-02	3.908159e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d01-x01-y02
+Path=/REF/ATLAS_2014_I1300152/d01-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	9.331657e+01	3.064118e+00	1.191787e+01
+2.843201e-02	3.257012e-03	3.257012e-03	8.442275e+01	3.315480e+00	1.270839e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.293056e+01	2.066371e+00	9.473111e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.536950e+01	1.489741e+00	7.179315e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.473489e+01	9.154726e-01	5.496484e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.677120e+01	7.055816e-01	3.824956e+00
+8.984721e-02	1.029240e-02	1.029240e-02	1.995584e+01	5.259560e-01	2.548648e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.438707e+01	2.853365e-01	1.729460e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.030326e+01	2.043430e-01	8.595642e-01
+1.791937e-01	2.052744e-02	2.052744e-02	7.088877e+00	1.405926e-01	2.897771e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.654580e+00	1.226761e-01	9.418145e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.877955e+00	9.449976e-02	9.770807e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.664516e+00	1.485528e-01	6.804160e-02
+4.498632e-01	5.153382e-02	5.153382e-02	9.005179e-01	1.125776e-01	4.309096e-02
+5.662652e-01	6.486819e-02	6.486819e-02	4.320139e-01	9.457160e-02	2.370531e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.673804e-01	4.589980e-02	1.155823e-02
+8.972195e-01	1.027805e-01	1.027805e-01	4.009728e-02	1.040681e-02	3.345172e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d01-x01-y03
+Path=/REF/ATLAS_2014_I1300152/d01-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	9.013512e+01	2.959653e+00	1.083508e+01
+2.843201e-02	3.257012e-03	3.257012e-03	8.319450e+01	2.731753e+00	1.188648e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.160228e+01	8.172153e-01	9.273161e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.653705e+01	9.229621e-01	7.364069e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.492214e+01	4.632769e-01	5.256926e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.655846e+01	3.523243e-01	3.592557e+00
+8.984721e-02	1.029240e-02	1.029240e-02	1.927548e+01	-2.591462e-01	2.901591e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.427274e+01	1.893421e-01	1.715716e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.015336e+01	1.346944e-01	7.738492e-01
+1.791937e-01	2.052744e-02	2.052744e-02	7.032545e+00	1.853497e-01	2.387586e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.556335e+00	1.496106e-01	9.219355e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.798460e+00	7.375621e-02	7.575275e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.586439e+00	1.607521e-01	6.484998e-02
+4.498632e-01	5.153382e-02	5.153382e-02	8.525655e-01	1.065829e-01	4.079638e-02
+5.662652e-01	6.486819e-02	6.486819e-02	4.145081e-01	8.857027e-02	2.274473e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.649452e-01	4.523201e-02	1.257147e-02
+8.972195e-01	1.027805e-01	1.027805e-01	4.085543e-02	1.120356e-02	3.704978e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d01-x01-y04
+Path=/REF/ATLAS_2014_I1300152/d01-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	9.122817e+01	2.404409e+00	1.096648e+01
+2.843201e-02	3.257012e-03	3.257012e-03	8.035814e+01	2.638619e+00	1.148123e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.070604e+01	1.203974e+00	9.138247e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.585999e+01	1.208686e+00	6.903430e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.464463e+01	6.871017e-01	5.482202e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.670163e+01	5.295694e-01	3.815017e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.044277e+01	6.712534e-01	2.765290e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.473812e+01	3.884379e-01	1.771660e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.027649e+01	2.038120e-01	8.573306e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.976660e+00	1.383670e-01	3.338423e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.550411e+00	9.024761e-02	6.117730e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.776222e+00	7.317011e-02	7.515078e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.594991e+00	1.616187e-01	5.415078e-02
+4.498632e-01	5.153382e-02	5.153382e-02	8.803646e-01	1.151846e-01	2.383097e-02
+5.662652e-01	6.486819e-02	6.486819e-02	4.337782e-01	9.721272e-02	1.472700e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.726133e-01	4.816855e-02	7.056039e-03
+8.972195e-01	1.027805e-01	1.027805e-01	4.275476e-02	1.151651e-02	1.747717e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d01-x01-y05
+Path=/REF/ATLAS_2014_I1300152/d01-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	8.579548e+01	2.261225e+00	1.031342e+01
+2.843201e-02	3.257012e-03	3.257012e-03	8.025367e+01	2.115165e+00	1.146631e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.103330e+01	1.608594e+00	9.187511e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.767258e+01	1.565364e+00	7.543757e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.601395e+01	9.491834e-01	5.978348e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.684558e+01	7.075421e-01	3.631396e+00
+8.984721e-02	1.029240e-02	1.029240e-02	1.987811e+01	5.239073e-01	2.538721e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.452370e+01	2.880463e-01	1.745884e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.033189e+01	2.049108e-01	7.874559e-01
+1.791937e-01	2.052744e-02	2.052744e-02	7.204143e+00	1.898724e-01	2.944889e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.698784e+00	1.542880e-01	1.595262e-01
+2.839237e-01	3.252472e-02	3.252472e-02	2.754161e+00	9.043490e-02	7.455359e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.540613e+00	1.374949e-01	6.297673e-02
+4.498632e-01	5.153382e-02	5.153382e-02	8.007524e-01	1.047684e-01	3.831705e-02
+5.662652e-01	6.486819e-02	6.486819e-02	3.790563e-01	8.297872e-02	2.079944e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.478463e-01	4.054308e-02	1.126826e-02
+8.972195e-01	1.027805e-01	1.027805e-01	3.613439e-02	9.378283e-03	3.540894e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d01-x01-y06
+Path=/REF/ATLAS_2014_I1300152/d01-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	8.454726e+01	3.860946e+00	1.079790e+01
+2.843201e-02	3.257012e-03	3.257012e-03	7.803692e+01	2.562400e+00	1.174711e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.054830e+01	1.988148e+00	9.114502e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.574082e+01	9.071707e-01	7.238074e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.548999e+01	9.353739e-01	5.615971e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.809361e+01	7.404350e-01	3.800216e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.080222e+01	5.482632e-01	2.813912e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.469983e+01	2.915394e-01	1.767056e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.031846e+01	2.046444e-01	8.608319e-01
+1.791937e-01	2.052744e-02	2.052744e-02	7.194778e+00	1.896255e-01	3.442795e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.755765e+00	1.561590e-01	1.614607e-01
+2.839237e-01	3.252472e-02	3.252472e-02	2.806236e+00	9.214482e-02	7.596323e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.538610e+00	1.742486e-01	9.529994e-02
+4.498632e-01	5.153382e-02	5.153382e-02	8.435928e-01	1.103735e-01	2.283558e-02
+5.662652e-01	6.486819e-02	6.486819e-02	4.184446e-01	9.160117e-02	2.002312e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.676272e-01	4.677715e-02	8.021183e-03
+8.972195e-01	1.027805e-01	1.027805e-01	4.151975e-02	1.138573e-02	4.068618e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d01-x01-y07
+Path=/REF/ATLAS_2014_I1300152/d01-x01-y07
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	7.793547e+01	3.559011e+00	9.953482e+00
+2.843201e-02	3.257012e-03	3.257012e-03	7.241619e+01	2.843954e+00	1.090101e+01
+3.578878e-02	4.099764e-03	4.099764e-03	5.887585e+01	1.551732e+00	8.862743e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.754871e+01	1.253194e+00	7.893129e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.689271e+01	9.723441e-01	5.553561e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.862480e+01	7.544350e-01	4.089790e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.148050e+01	5.661401e-01	2.743370e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.548627e+01	5.085031e-01	1.746141e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.094333e+01	1.451741e-01	9.129625e-01
+1.791937e-01	2.052744e-02	2.052744e-02	7.330815e+00	2.407127e-01	2.996669e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.624402e+00	1.218807e-01	9.357083e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.840267e+00	7.485806e-02	5.747037e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.610138e+00	1.534592e-01	5.466505e-02
+4.498632e-01	5.153382e-02	5.153382e-02	8.368892e-01	1.094964e-01	4.004625e-02
+5.662652e-01	6.486819e-02	6.486819e-02	3.831542e-01	8.187072e-02	1.833443e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.445375e-01	3.963573e-02	7.931011e-03
+8.972195e-01	1.027805e-01	1.027805e-01	3.416576e-02	8.867348e-03	5.143066e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d10-x01-y03
+Path=/REF/ATLAS_2014_I1300152/d10-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.203480e+00	3.403537e-02	6.296795e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.162769e+00	3.404974e-02	4.595026e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.035249e+00	2.553191e-02	2.723404e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.690062e-01	2.042553e-02	2.042194e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.385079e-01	2.212407e-02	2.382979e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.080061e-01	2.212766e-02	2.553551e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.234653e-01	2.382979e-02	2.553191e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.508394e-01	2.383697e-02	2.212407e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.680007e-01	2.553191e-02	2.553191e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.868642e-01	3.403896e-02	3.404614e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.019345e+00	4.085465e-02	4.084747e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.060336e+00	5.106383e-02	5.106742e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.111540e+00	8.000000e-02	7.829428e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.154233e+00	1.412766e-01	1.429751e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d04-x01-y05
+Path=/REF/ATLAS_2014_I1300152/d04-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.120607e+00	3.411514e-02	3.923241e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.096590e+00	2.558995e-02	2.558276e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.028220e+00	2.388060e-02	2.387701e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.922586e-01	2.388419e-02	2.387701e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.545919e-01	2.217484e-02	2.388060e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.066906e-01	2.387701e-02	2.387701e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.389599e-01	2.900146e-02	2.559354e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.797581e-01	2.558635e-02	2.899787e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.762101e-01	3.412232e-02	3.411514e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.624204e-01	2.900146e-02	3.070362e-02
+4.150537e+01	5.932616e+00	5.932616e+00	9.759300e-01	3.923600e-02	3.752665e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.011607e+00	5.799574e-02	5.629357e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.066051e+00	7.846123e-02	7.846841e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.091501e+00	1.381699e-01	1.279354e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d04-x01-y04
+Path=/REF/ATLAS_2014_I1300152/d04-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.180384e+00	3.411514e-02	5.287846e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.127505e+00	2.558635e-02	2.558635e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.014925e+00	2.217484e-02	2.217484e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.535181e-01	2.217484e-02	2.046908e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.449893e-01	2.388060e-02	2.388060e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.449893e-01	2.217484e-02	2.217484e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.535181e-01	2.388060e-02	2.388060e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.501066e-01	2.558635e-02	2.558635e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.552239e-01	3.070362e-02	3.070362e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.876333e-01	2.899787e-02	3.070362e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.055864e+00	4.093817e-02	4.093817e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.125800e+00	5.970149e-02	5.799574e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.173561e+00	7.846482e-02	8.017058e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.171855e+00	1.279318e-01	1.296375e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d04-x01-y06
+Path=/REF/ATLAS_2014_I1300152/d04-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.054158e+00	3.411514e-02	3.582090e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.076333e+00	2.729211e-02	2.899787e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.026866e+00	2.899787e-02	2.729211e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.381663e-01	2.388060e-02	3.240938e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.688699e-01	2.729211e-02	2.388060e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.501066e-01	2.729211e-02	2.729211e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.620469e-01	2.729211e-02	2.558635e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.688699e-01	3.240938e-02	3.240938e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.791045e-01	3.411514e-02	3.411514e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.620469e-01	3.411514e-02	3.752665e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.020043e+00	4.776119e-02	4.605544e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.083156e+00	6.652452e-02	6.823028e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.118977e+00	9.211087e-02	9.381663e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.144563e+00	1.449893e-01	1.484009e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d04-x01-y01
+Path=/REF/ATLAS_2014_I1300152/d04-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.240010e+00	3.411514e-02	7.847202e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.209166e+00	4.777919e-02	5.289646e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.048684e+00	2.558995e-02	3.071082e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.496136e-01	2.046548e-02	2.388420e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.170639e-01	2.046908e-02	2.046908e-02
+9.841483e+00	1.406703e+00	1.406703e+00	8.981602e-01	2.217484e-02	2.046908e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.184889e-01	2.046908e-02	2.217844e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.439349e-01	2.387700e-02	2.388420e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.659694e-01	2.899787e-02	3.071082e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.025531e+00	2.728851e-02	2.729571e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.088507e+00	4.093457e-02	4.093457e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.125893e+00	5.458782e-02	5.629358e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.164985e+00	7.675906e-02	7.506050e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.158022e+00	1.245239e-01	1.245167e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d10-x01-y04
+Path=/REF/ATLAS_2014_I1300152/d10-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.180384e+00	3.411514e-02	5.458422e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.117271e+00	2.217484e-02	2.558635e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.002985e+00	2.388060e-02	2.388060e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.518124e-01	1.876333e-02	2.217484e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.518124e-01	2.729211e-02	2.217484e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.398721e-01	2.388060e-02	2.388060e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.484009e-01	2.729211e-02	2.729211e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.586354e-01	2.388060e-02	2.558635e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.739872e-01	2.729211e-02	2.558635e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.995736e-01	3.752665e-02	3.752665e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.062687e+00	4.434968e-02	4.264392e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.118977e+00	5.628998e-02	5.799574e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.154797e+00	8.187633e-02	8.017058e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.158209e+00	1.381663e-01	1.381663e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d04-x01-y03
+Path=/REF/ATLAS_2014_I1300152/d04-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.190618e+00	3.411514e-02	6.140725e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.151386e+00	3.240938e-02	4.434968e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.023454e+00	1.876333e-02	3.070362e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.620469e-01	2.388060e-02	2.046908e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.211087e-01	2.217484e-02	2.217484e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.023454e-01	2.217484e-02	2.046908e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.159915e-01	2.217484e-02	2.217484e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.518124e-01	2.558635e-02	2.558635e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.518124e-01	3.240938e-02	2.899787e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.825160e-01	2.899787e-02	3.070362e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.025160e+00	3.923241e-02	4.093817e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.071215e+00	5.458422e-02	5.628998e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.124094e+00	7.505330e-02	7.675906e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.146269e+00	1.262260e-01	1.279318e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d04-x01-y02
+Path=/REF/ATLAS_2014_I1300152/d04-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.215226e+00	3.240938e-02	9.040152e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.184663e+00	3.582449e-02	5.627918e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.032991e+00	2.217484e-02	3.582449e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.649042e-01	2.047268e-02	2.217124e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.360431e-01	2.216764e-02	2.217484e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.140086e-01	2.217124e-02	2.046908e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.431468e-01	2.217844e-02	2.217484e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.705793e-01	2.388420e-02	2.388420e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.826599e-01	3.071082e-02	3.070003e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.033973e+00	2.728851e-02	3.411874e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.098932e+00	4.093817e-02	3.922881e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.138305e+00	5.629358e-02	5.629358e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.184497e+00	7.675906e-02	7.506050e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.189755e+00	1.245203e-01	1.228109e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d10-x01-y05
+Path=/REF/ATLAS_2014_I1300152/d10-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.134328e+00	3.070362e-02	4.093817e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.095096e+00	2.217484e-02	2.388060e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.038806e+00	2.558635e-02	2.388060e-02
+5.534050e+00	7.910155e-01	7.910155e-01	1.002985e+00	2.217484e-02	2.388060e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.739872e-01	2.729211e-02	2.558635e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.194030e-01	2.558635e-02	2.217484e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.364606e-01	2.729211e-02	2.729211e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.756930e-01	2.729211e-02	2.558635e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.876333e-01	2.899787e-02	3.070362e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.773987e-01	3.752665e-02	3.582090e-02
+4.150537e+01	5.932616e+00	5.932616e+00	9.910448e-01	4.264392e-02	4.605544e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.016631e+00	5.117271e-02	5.628998e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.076333e+00	8.017058e-02	8.187633e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.125800e+00	1.603412e-01	1.415778e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d08-x01-y01
+Path=/REF/ATLAS_2014_I1300152/d08-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.253731e+00	3.070362e-02	7.334755e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.258849e+00	6.140725e-02	5.287846e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.100213e+00	2.558635e-02	2.558635e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.671642e-01	2.046908e-02	3.070362e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.381663e-01	2.388060e-02	2.217484e-02
+9.841483e+00	1.406703e+00	1.406703e+00	8.938166e-01	2.217484e-02	2.046908e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.108742e-01	2.388060e-02	2.388060e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.313433e-01	2.388060e-02	2.388060e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.671642e-01	2.899787e-02	3.070362e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.020043e+00	3.752665e-02	3.752665e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.078038e+00	4.776119e-02	4.776119e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.115565e+00	6.311301e-02	6.140725e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.146269e+00	9.040512e-02	9.040512e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.151386e+00	1.603412e-01	1.603412e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d10-x01-y02
+Path=/REF/ATLAS_2014_I1300152/d10-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.237404e+00	3.582090e-02	9.039072e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.196606e+00	3.070362e-02	5.456263e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.041519e+00	2.388060e-02	3.582449e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.683121e-01	1.876333e-02	2.046908e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.445719e-01	2.046548e-02	2.217844e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.088913e-01	2.217484e-02	2.046548e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.295008e-01	2.558276e-02	2.557916e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.688735e-01	2.388060e-02	2.217484e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.928945e-01	2.559355e-02	2.388060e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.047619e+00	3.412234e-02	3.581730e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.098932e+00	4.434608e-02	4.265112e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.119542e+00	5.287487e-02	5.458422e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.169145e+00	8.186914e-02	8.188713e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.235810e+00	1.466951e-01	1.449929e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d08-x01-y03
+Path=/REF/ATLAS_2014_I1300152/d08-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.200853e+00	3.070362e-02	6.311301e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.188913e+00	4.264392e-02	4.605544e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.072921e+00	2.558635e-02	2.558635e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.739872e-01	2.217484e-02	2.388060e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.484009e-01	2.388060e-02	2.388060e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.091684e-01	2.217484e-02	2.217484e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.245203e-01	2.558635e-02	2.558635e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.569296e-01	2.558635e-02	2.558635e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.791045e-01	3.070362e-02	2.899787e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.995736e-01	3.752665e-02	3.752665e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.026866e+00	4.434968e-02	4.776119e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.057569e+00	5.628998e-02	5.970149e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.103625e+00	9.211087e-02	9.040512e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.161620e+00	1.671642e-01	1.654584e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d08-x01-y02
+Path=/REF/ATLAS_2014_I1300152/d08-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.273468e+00	2.729223e-02	9.553361e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.242624e+00	4.093835e-02	5.970536e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.083848e+00	2.900160e-02	2.900160e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.711271e-01	2.046918e-02	2.388790e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.419923e-01	2.388070e-02	2.216774e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.009136e-01	2.217854e-02	2.047277e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.161251e-01	2.388070e-02	2.388070e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.569231e-01	2.388430e-02	2.558287e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.926039e-01	2.899800e-02	2.899800e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.045342e+00	3.922899e-02	3.923259e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.081023e+00	4.434628e-02	4.776141e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.099646e+00	6.140753e-02	6.140393e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.133625e+00	9.211129e-02	9.381345e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.171011e+00	1.671649e-01	1.654592e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d08-x01-y05
+Path=/REF/ATLAS_2014_I1300152/d08-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.138462e+00	3.076923e-02	3.931624e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.117949e+00	3.076923e-02	2.905983e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.066667e+00	2.735043e-02	2.735043e-02
+5.534050e+00	7.910155e-01	7.910155e-01	1.006838e+00	2.393162e-02	2.393162e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.794872e-01	2.735043e-02	2.905983e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.264957e-01	2.393162e-02	2.564103e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.452991e-01	2.905983e-02	2.735043e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.846154e-01	3.076923e-02	2.735043e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.829060e-01	3.247863e-02	3.247863e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.794872e-01	3.931624e-02	3.760684e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.013675e+00	5.128205e-02	5.128205e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.034188e+00	6.324786e-02	6.153846e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.056410e+00	9.401709e-02	9.401709e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.037607e+00	1.589744e-01	1.589744e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d08-x01-y04
+Path=/REF/ATLAS_2014_I1300152/d08-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.193162e+00	3.076923e-02	5.641026e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.147009e+00	3.076923e-02	2.905983e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.039316e+00	2.564103e-02	2.735043e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.555556e-01	2.222222e-02	2.222222e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.487179e-01	2.564103e-02	2.564103e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.418803e-01	2.393162e-02	2.222222e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.470085e-01	2.735043e-02	2.735043e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.606838e-01	2.735043e-02	2.564103e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.743590e-01	3.076923e-02	3.076923e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.008547e+00	3.931624e-02	4.102564e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.054701e+00	4.786325e-02	4.957265e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.105983e+00	6.324786e-02	6.495726e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.145299e+00	9.743590e-02	9.572650e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.131624e+00	1.623932e-01	1.606838e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152/d08-x01-y06
+Path=/REF/ATLAS_2014_I1300152/d08-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.061538e+00	2.905983e-02	3.076923e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.083761e+00	3.076923e-02	3.247863e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.046154e+00	3.418803e-02	3.247863e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.264957e-01	2.735043e-02	3.760684e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.641026e-01	2.735043e-02	2.735043e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.452991e-01	2.735043e-02	3.076923e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.692308e-01	3.418803e-02	2.905983e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.709402e-01	3.247863e-02	2.735043e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.777778e-01	3.418803e-02	3.418803e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.692308e-01	4.444444e-02	4.444444e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.011966e+00	5.470085e-02	5.299145e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.046154e+00	6.666667e-02	6.666667e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.066667e+00	1.008547e-01	9.914530e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.082051e+00	1.692308e-01	1.675214e-01
+END YODA_SCATTER2D
+
Index: trunk/code/CMS_2013_I1256590_4MOMSUB.yoda
===================================================================
--- trunk/code/CMS_2013_I1256590_4MOMSUB.yoda	(revision 0)
+++ trunk/code/CMS_2013_I1256590_4MOMSUB.yoda	(revision 452)
@@ -0,0 +1,206 @@
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_4MOMSUB/d01-x01-y03
+Path=/REF/CMS_2013_I1256590_4MOMSUB/d01-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-02	2.500000e-02	2.500000e-02	9.996849e-01	1.534981e-02	1.496040e-02
+7.500000e-02	2.500000e-02	2.500000e-02	9.914790e-01	4.180134e-02	4.529186e-02
+1.250000e-01	2.500000e-02	2.500000e-02	9.037203e-01	4.181550e-02	3.772316e-02
+1.750000e-01	2.500000e-02	2.500000e-02	1.016727e+00	5.312961e-02	5.671926e-02
+2.250000e-01	2.500000e-02	2.500000e-02	1.273673e+00	1.439611e-01	1.400741e-01
+2.750000e-01	2.500000e-02	2.500000e-02	1.382885e+00	1.060964e-01	1.097498e-01
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_4MOMSUB/d01-x01-y02
+Path=/REF/CMS_2013_I1256590_4MOMSUB/d01-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-02	2.500000e-02	2.500000e-02	1.266784e+01	0.000000e+00	0.000000e+00
+7.500000e-02	2.500000e-02	2.500000e-02	4.565196e+00	0.000000e+00	0.000000e+00
+1.250000e-01	2.500000e-02	2.500000e-02	1.470847e+00	0.000000e+00	0.000000e+00
+1.750000e-01	2.500000e-02	2.500000e-02	6.714706e-01	0.000000e+00	0.000000e+00
+2.250000e-01	2.500000e-02	2.500000e-02	3.694601e-01	0.000000e+00	0.000000e+00
+2.750000e-01	2.500000e-02	2.500000e-02	2.007718e-01	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_4MOMSUB/d01-x01-y01
+Path=/REF/CMS_2013_I1256590_4MOMSUB/d01-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-02	2.500000e-02	2.500000e-02	1.266784e+01	0.000000e+00	0.000000e+00
+7.500000e-02	2.500000e-02	2.500000e-02	4.565196e+00	0.000000e+00	0.000000e+00
+1.250000e-01	2.500000e-02	2.500000e-02	1.298714e+00	0.000000e+00	0.000000e+00
+1.750000e-01	2.500000e-02	2.500000e-02	6.883952e-01	0.000000e+00	0.000000e+00
+2.250000e-01	2.500000e-02	2.500000e-02	4.738880e-01	0.000000e+00	0.000000e+00
+2.750000e-01	2.500000e-02	2.500000e-02	2.774874e-01	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_4MOMSUB/d03-x01-y01
+Path=/REF/CMS_2013_I1256590_4MOMSUB/d03-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-01	2.500000e-01	2.500000e-01	4.589493e-02	2.640026e-02	2.607364e-02
+7.500000e-01	2.500000e-01	2.500000e-01	3.302992e-01	1.372295e-01	1.308755e-01
+1.250000e+00	2.500000e-01	2.500000e-01	7.553553e-01	2.064520e-01	2.113501e-01
+1.750000e+00	2.500000e-01	2.500000e-01	1.219367e+00	1.948854e-01	1.904400e-01
+2.250000e+00	2.500000e-01	2.500000e-01	1.560549e+00	1.710532e-01	1.668595e-01
+2.750000e+00	2.500000e-01	2.500000e-01	1.804274e+00	2.437255e-01	2.817904e-01
+3.250000e+00	2.500000e-01	2.500000e-01	2.086064e+00	4.080724e-01	3.258002e-01
+3.750000e+00	2.500000e-01	2.500000e-01	2.447121e+00	4.787017e-01	4.655116e-01
+4.250000e+00	2.500000e-01	2.500000e-01	2.556013e+00	3.771229e-01	3.566198e-01
+4.750000e+00	2.500000e-01	2.500000e-01	1.273626e+00	4.731263e-01	4.790329e-01
+5.250000e+00	2.500000e-01	2.500000e-01	1.213483e-01	5.143852e-02	1.293548e-01
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_4MOMSUB/d03-x01-y03
+Path=/REF/CMS_2013_I1256590_4MOMSUB/d03-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-01	2.500000e-01	2.500000e-01	9.511278e-01	2.506266e-01	2.631579e-01
+7.500000e-01	2.500000e-01	2.500000e-01	9.949875e-01	1.817043e-01	1.879699e-01
+1.250000e+00	2.500000e-01	2.500000e-01	8.508772e-01	1.190476e-01	1.190476e-01
+1.750000e+00	2.500000e-01	2.500000e-01	8.132832e-01	1.002506e-01	9.398496e-02
+2.250000e+00	2.500000e-01	2.500000e-01	7.380952e-01	8.145363e-02	8.145363e-02
+2.750000e+00	2.500000e-01	2.500000e-01	7.506266e-01	8.145363e-02	8.145363e-02
+3.250000e+00	2.500000e-01	2.500000e-01	8.508772e-01	8.771930e-02	8.771930e-02
+3.750000e+00	2.500000e-01	2.500000e-01	1.095238e+00	1.190476e-01	1.127820e-01
+4.250000e+00	2.500000e-01	2.500000e-01	1.508772e+00	1.879699e-01	1.879699e-01
+4.750000e+00	2.500000e-01	2.500000e-01	1.765664e+00	3.320802e-01	3.320802e-01
+5.250000e+00	2.500000e-01	2.500000e-01	2.223058e+00	6.892231e-01	6.892231e-01
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_4MOMSUB/d03-x01-y02
+Path=/REF/CMS_2013_I1256590_4MOMSUB/d03-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-01	2.500000e-01	2.500000e-01	4.793716e-02	0.000000e+00	0.000000e+00
+7.500000e-01	2.500000e-01	2.500000e-01	3.302992e-01	0.000000e+00	0.000000e+00
+1.250000e+00	2.500000e-01	2.500000e-01	8.990452e-01	0.000000e+00	0.000000e+00
+1.750000e+00	2.500000e-01	2.500000e-01	1.494066e+00	0.000000e+00	0.000000e+00
+2.250000e+00	2.500000e-01	2.500000e-01	2.147498e+00	0.000000e+00	0.000000e+00
+2.750000e+00	2.500000e-01	2.500000e-01	2.447121e+00	0.000000e+00	0.000000e+00
+3.250000e+00	2.500000e-01	2.500000e-01	2.447121e+00	0.000000e+00	0.000000e+00
+3.750000e+00	2.500000e-01	2.500000e-01	2.243057e+00	0.000000e+00	0.000000e+00
+4.250000e+00	2.500000e-01	2.500000e-01	1.702521e+00	0.000000e+00	0.000000e+00
+4.750000e+00	2.500000e-01	2.500000e-01	7.231755e-01	0.000000e+00	0.000000e+00
+5.250000e+00	2.500000e-01	2.500000e-01	5.462544e-02	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_4MOMSUB/d04-x01-y02
+Path=/REF/CMS_2013_I1256590_4MOMSUB/d04-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+1.097304e+00	9.730405e-02	9.730405e-02	9.843526e-01	0.000000e+00	0.000000e+00
+1.310850e+00	1.162410e-01	1.162410e-01	1.032045e+00	0.000000e+00	0.000000e+00
+1.565954e+00	1.388630e-01	1.388630e-01	1.032045e+00	0.000000e+00	0.000000e+00
+1.870703e+00	1.658865e-01	1.658865e-01	9.689500e-01	0.000000e+00	0.000000e+00
+2.234760e+00	1.981700e-01	1.981700e-01	9.537884e-01	0.000000e+00	0.000000e+00
+2.669665e+00	2.367350e-01	2.367350e-01	8.407319e-01	0.000000e+00	0.000000e+00
+3.189208e+00	2.828065e-01	2.828065e-01	7.648242e-01	0.000000e+00	0.000000e+00
+3.809856e+00	3.378430e-01	3.378430e-01	6.132976e-01	0.000000e+00	0.000000e+00
+4.551290e+00	4.035905e-01	4.035905e-01	5.238152e-01	0.000000e+00	0.000000e+00
+5.437013e+00	4.821335e-01	4.821335e-01	4.473886e-01	0.000000e+00	0.000000e+00
+6.495107e+00	5.759600e-01	5.759600e-01	3.644549e-01	0.000000e+00	0.000000e+00
+7.759116e+00	6.880480e-01	6.880480e-01	2.922493e-01	0.000000e+00	0.000000e+00
+9.269112e+00	8.219480e-01	8.219480e-01	2.418587e-01	0.000000e+00	0.000000e+00
+1.107298e+01	9.819200e-01	9.819200e-01	1.764312e-01	0.000000e+00	0.000000e+00
+1.322790e+01	1.173000e+00	1.173000e+00	1.370839e-01	0.000000e+00	0.000000e+00
+1.580216e+01	1.401255e+00	1.401255e+00	1.015896e-01	0.000000e+00	0.000000e+00
+1.887738e+01	1.673970e+00	1.673970e+00	6.957701e-02	0.000000e+00	0.000000e+00
+2.255110e+01	1.999745e+00	1.999745e+00	4.917913e-02	0.000000e+00	0.000000e+00
+2.693975e+01	2.388910e+00	2.388910e+00	3.368195e-02	0.000000e+00	0.000000e+00
+3.218248e+01	2.853820e+00	2.853820e+00	2.306820e-02	0.000000e+00	0.000000e+00
+3.844549e+01	3.409190e+00	3.409190e+00	1.287031e-02	0.000000e+00	0.000000e+00
+4.592735e+01	4.072655e+00	4.072655e+00	6.532336e-03	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_4MOMSUB/d04-x01-y03
+Path=/REF/CMS_2013_I1256590_4MOMSUB/d04-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+1.097304e+00	9.730405e-02	9.730405e-02	1.050239e+00	5.598086e-01	5.645933e-01
+1.310850e+00	1.162410e-01	1.162410e-01	6.339713e-01	4.354067e-01	4.354067e-01
+1.565954e+00	1.388630e-01	1.388630e-01	6.818182e-01	3.636364e-01	3.684211e-01
+1.870703e+00	1.658865e-01	1.658865e-01	4.043062e-01	2.918660e-01	2.918660e-01
+2.234760e+00	1.981700e-01	1.981700e-01	2.224880e-01	2.344498e-01	2.392344e-01
+2.669665e+00	2.367350e-01	2.367350e-01	5.502392e-02	1.818182e-01	1.866029e-01
+3.189208e+00	2.828065e-01	2.828065e-01	-5.502392e-02	1.387560e-01	1.435407e-01
+3.809856e+00	3.378430e-01	3.378430e-01	-6.937799e-02	1.052632e-01	1.004785e-01
+4.551290e+00	4.035905e-01	4.035905e-01	-9.808612e-02	7.177033e-02	7.177033e-02
+5.437013e+00	4.821335e-01	4.821335e-01	-1.028708e-01	5.263158e-02	5.263158e-02
+6.495107e+00	5.759600e-01	5.759600e-01	-8.851675e-02	3.827751e-02	3.349282e-02
+7.759116e+00	6.880480e-01	6.880480e-01	-8.373206e-02	2.870813e-02	2.392344e-02
+9.269112e+00	8.219480e-01	8.219480e-01	-6.937799e-02	1.435407e-02	2.392344e-02
+1.107298e+01	9.819200e-01	9.819200e-01	-4.066986e-02	1.913876e-02	1.435407e-02
+1.322790e+01	1.173000e+00	1.173000e+00	-3.588517e-02	1.435407e-02	1.435407e-02
+1.580216e+01	1.401255e+00	1.401255e+00	-2.631579e-02	9.569378e-03	1.435407e-02
+1.887738e+01	1.673970e+00	1.673970e+00	-7.177033e-03	1.435407e-02	4.784689e-03
+2.255110e+01	1.999745e+00	1.999745e+00	-7.177033e-03	9.569378e-03	4.784689e-03
+2.693975e+01	2.388910e+00	2.388910e+00	-2.392344e-03	0.000000e+00	0.000000e+00
+3.218248e+01	2.853820e+00	2.853820e+00	2.392344e-03	0.000000e+00	0.000000e+00
+3.844549e+01	3.409190e+00	3.409190e+00	2.392344e-03	0.000000e+00	0.000000e+00
+4.592735e+01	4.072655e+00	4.072655e+00	-2.392344e-03	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_4MOMSUB/d04-x01-y01
+Path=/REF/CMS_2013_I1256590_4MOMSUB/d04-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+1.097304e+00	9.730405e-02	9.730405e-02	2.033383e+00	4.782024e-01	4.627072e-01
+1.310850e+00	1.162410e-01	1.162410e-01	1.656449e+00	3.489591e-01	3.451167e-01
+1.565954e+00	1.388630e-01	1.388630e-01	1.709530e+00	2.947629e-01	3.238530e-01
+1.870703e+00	1.658865e-01	1.658865e-01	1.370839e+00	2.541162e-01	2.341778e-01
+2.234760e+00	1.981700e-01	1.981700e-01	1.189440e+00	2.204898e-01	1.813987e-01
+2.669665e+00	2.367350e-01	2.367350e-01	8.954777e-01	1.774117e-01	1.696391e-01
+3.189208e+00	2.828065e-01	2.828065e-01	7.068302e-01	1.400369e-01	1.339018e-01
+3.809856e+00	3.378430e-01	3.378430e-01	5.491943e-01	1.088062e-01	1.040393e-01
+4.551290e+00	4.035905e-01	4.035905e-01	4.267141e-01	8.454043e-02	8.890473e-02
+5.437013e+00	4.821335e-01	4.821335e-01	3.421737e-01	6.779131e-02	5.845289e-02
+6.495107e+00	5.759600e-01	5.759600e-01	2.700890e-01	4.656965e-02	4.613880e-02
+7.759116e+00	6.880480e-01	6.880480e-01	2.065706e-01	3.561760e-02	3.528807e-02
+9.269112e+00	8.219480e-01	8.219480e-01	1.709530e-01	2.947629e-02	2.607165e-02
+1.107298e+01	9.819200e-01	9.819200e-01	1.328274e-01	2.115517e-02	2.269066e-02
+1.322790e+01	1.173000e+00	1.173000e+00	1.015896e-01	1.883195e-02	1.924512e-02
+1.580216e+01	1.401255e+00	1.401255e+00	7.648242e-02	1.611232e-02	1.593491e-02
+1.887738e+01	1.673970e+00	1.673970e+00	5.667932e-02	1.332960e-02	1.073732e-02
+2.255110e+01	1.999745e+00	1.999745e+00	4.006265e-02	1.083773e-02	1.149923e-02
+2.693975e+01	2.388910e+00	2.388910e+00	2.831749e-02	8.615028e-03	9.295896e-03
+3.218248e+01	2.853820e+00	2.853820e+00	1.909070e-02	6.620015e-03	6.266981e-03
+3.844549e+01	3.409190e+00	3.409190e+00	1.170828e-02	4.750580e-03	4.856209e-03
+4.592735e+01	4.072655e+00	4.072655e+00	6.636175e-03	2.933691e-03	3.207351e-03
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_4MOMSUB/d02-x01-y01
+Path=/REF/CMS_2013_I1256590_4MOMSUB/d02-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-02	2.500000e-02	2.500000e-02	6.375449e-01	0.000000e+00	0.000000e+00
+7.500000e-02	2.500000e-02	2.500000e-02	8.643001e-01	0.000000e+00	0.000000e+00
+1.250000e-01	2.500000e-02	2.500000e-02	9.278651e-01	0.000000e+00	0.000000e+00
+1.750000e-01	2.500000e-02	2.500000e-02	9.612714e-01	0.000000e+00	0.000000e+00
+2.250000e-01	2.500000e-02	2.500000e-02	9.858084e-01	0.000000e+00	0.000000e+00
+2.750000e-01	2.500000e-02	2.500000e-02	9.979320e-01	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_4MOMSUB/d02-x01-y02
+Path=/REF/CMS_2013_I1256590_4MOMSUB/d02-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-02	2.500000e-02	2.500000e-02	6.357711e-01	0.000000e+00	0.000000e+00
+7.500000e-02	2.500000e-02	2.500000e-02	8.678478e-01	0.000000e+00	0.000000e+00
+1.250000e-01	2.500000e-02	2.500000e-02	9.366820e-01	0.000000e+00	0.000000e+00
+1.750000e-01	2.500000e-02	2.500000e-02	9.700882e-01	0.000000e+00	0.000000e+00
+2.250000e-01	2.500000e-02	2.500000e-02	9.892897e-01	0.000000e+00	0.000000e+00
+2.750000e-01	2.500000e-02	2.500000e-02	9.978656e-01	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
Index: trunk/code/ATLAS_CONF_2011_075.cc
===================================================================
--- trunk/code/ATLAS_CONF_2011_075.cc	(revision 451)
+++ trunk/code/ATLAS_CONF_2011_075.cc	(revision 452)
@@ -1,345 +1,343 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 #include "Rivet/Tools/Logging.hh"
-#include "Rivet/RivetAIDA.hh"
 #include <boost/lexical_cast.hpp>
 namespace Rivet {
 
 
   /// @brief ATLAS jet yields and fragmentation functions in Pb+Pb at 2.76 ATeV
   class ATLAS_CONF_2011_075 : public Analysis {
   public:
 
     /// Constructor
     ATLAS_CONF_2011_075()
       : Analysis("ATLAS_CONF_2011_075"),
         _sumWeightSelected02(0.0),_sumWeightSelected02_1(0.0),_sumWeightSelected02_2(0.0),_sumWeightSelected02_3(0.0),
         _sumWeightSelected04(0.0),_sumWeightSelected04_1(0.0),_sumWeightSelected04_2(0.0),_sumWeightSelected04_3(0.0),
         _sumWeightSelected02_h(0.0),_sumjets02(0.0),_sumjets04(0.0),_sumEvents02(0.0),_sumEvents04(0.0)
     {
-      setBeams(PROTON, PROTON);
       setNeedsCrossSection(true);
     }
 
     /// Book projections and histograms
     void init() {
       FinalState fs(-5.0, 5.0, 0.*GeV);
       addProjection(fs, "FS");
       ChargedFinalState cfs(-5.0, 5.0, 2.*GeV);
       addProjection(cfs, "CFS");
 	
       FastJets fj02(fs, FastJets::ANTIKT, 0.2);
       FastJets fj04(fs, FastJets::ANTIKT, 0.4);
       fj02.useInvisibles();
       fj04.useInvisibles();
       addProjection(fj02, "Jets02");
       addProjection(fj04, "Jets04");
 	
 
-      _h_jetet04_p = bookHistogram1D(1, 1, 1);
-      _h_jetet04_c = bookHistogram1D(2, 1, 1);
-      _h_jetet02_p = bookHistogram1D(3, 1, 1);
-      _h_jetet02_c = bookHistogram1D(4, 1, 1);
-      _h_jt04_p    = bookHistogram1D(5, 1, 1);
-      _h_jt04_c    = bookHistogram1D(6, 1, 1);
-      _h_jt02_p    = bookHistogram1D(7, 1, 1);
-      _h_jt02_c    = bookHistogram1D(8, 1, 1);
-      _h_z04_p     = bookHistogram1D(9, 1, 1);
-      _h_z04_c     = bookHistogram1D(10, 1, 1);
-      _h_pt04_p    = bookHistogram1D(11, 1, 1);
-      _h_pt04_c    = bookHistogram1D(12, 1, 1);
-      _h_z02_p     = bookHistogram1D(13, 1, 1);
-      _h_z02_c     = bookHistogram1D(14, 1, 1);
-      _h_pt02_p    = bookHistogram1D(15, 1, 1);
-      _h_pt02_c    = bookHistogram1D(16, 1, 1);
-      _h_aj04_1_p  = bookHistogram1D(20, 1, 1);
-      _h_aj04_2_p  = bookHistogram1D(21, 1, 1);
-      _h_aj04_3_p  = bookHistogram1D(22, 1, 1);
-      _h_aj04_1_c  = bookHistogram1D(23, 1, 1);
-      _h_aj04_2_c  = bookHistogram1D(24, 1, 1);
-      _h_aj04_3_c  = bookHistogram1D(25, 1, 1);
-      _h_aj02_1_p  = bookHistogram1D(26, 1, 1);
-      _h_aj02_2_p  = bookHistogram1D(27, 1, 1);
-      _h_aj02_3_p  = bookHistogram1D(28, 1, 1);
-      _h_aj02_1_c  = bookHistogram1D(29, 1, 1);
-      _h_aj02_2_c  = bookHistogram1D(30, 1, 1);
-      _h_aj02_3_c  = bookHistogram1D(31, 1, 1);
-      _h_aj04_0_c  = bookHistogram1D(32, 1, 1);
-      _h_aj04_0_p  = bookHistogram1D(33, 1, 1);
-      _h_aj02_0_c  = bookHistogram1D(34, 1, 1);
-      _h_aj02_0_p  = bookHistogram1D(35, 1, 1);
-      _h_dphi04_c  = bookHistogram1D(36, 1, 1);
-      _h_dphi04_p  = bookHistogram1D(37, 1, 1);
-      _h_dphi02_c  = bookHistogram1D(38, 1, 1);
-      _h_dphi02_p  = bookHistogram1D(39, 1, 1);
+      _h_jetet04_p = bookHisto1D(1, 1, 1);
+      _h_jetet04_c = bookHisto1D(2, 1, 1);
+      _h_jetet02_p = bookHisto1D(3, 1, 1);
+      _h_jetet02_c = bookHisto1D(4, 1, 1);
+      _h_jt04_p    = bookHisto1D(5, 1, 1);
+      _h_jt04_c    = bookHisto1D(6, 1, 1);
+      _h_jt02_p    = bookHisto1D(7, 1, 1);
+      _h_jt02_c    = bookHisto1D(8, 1, 1);
+      _h_z04_p     = bookHisto1D(9, 1, 1);
+      _h_z04_c     = bookHisto1D(10, 1, 1);
+      _h_pt04_p    = bookHisto1D(11, 1, 1);
+      _h_pt04_c    = bookHisto1D(12, 1, 1);
+      _h_z02_p     = bookHisto1D(13, 1, 1);
+      _h_z02_c     = bookHisto1D(14, 1, 1);
+      _h_pt02_p    = bookHisto1D(15, 1, 1);
+      _h_pt02_c    = bookHisto1D(16, 1, 1);
+      _h_aj04_1_p  = bookHisto1D(20, 1, 1);
+      _h_aj04_2_p  = bookHisto1D(21, 1, 1);
+      _h_aj04_3_p  = bookHisto1D(22, 1, 1);
+      _h_aj04_1_c  = bookHisto1D(23, 1, 1);
+      _h_aj04_2_c  = bookHisto1D(24, 1, 1);
+      _h_aj04_3_c  = bookHisto1D(25, 1, 1);
+      _h_aj02_1_p  = bookHisto1D(26, 1, 1);
+      _h_aj02_2_p  = bookHisto1D(27, 1, 1);
+      _h_aj02_3_p  = bookHisto1D(28, 1, 1);
+      _h_aj02_1_c  = bookHisto1D(29, 1, 1);
+      _h_aj02_2_c  = bookHisto1D(30, 1, 1);
+      _h_aj02_3_c  = bookHisto1D(31, 1, 1);
+      _h_aj04_0_c  = bookHisto1D(32, 1, 1);
+      _h_aj04_0_p  = bookHisto1D(33, 1, 1);
+      _h_aj02_0_c  = bookHisto1D(34, 1, 1);
+      _h_aj02_0_p  = bookHisto1D(35, 1, 1);
+      _h_dphi04_c  = bookHisto1D(36, 1, 1);
+      _h_dphi04_p  = bookHisto1D(37, 1, 1);
+      _h_dphi02_c  = bookHisto1D(38, 1, 1);
+      _h_dphi02_p  = bookHisto1D(39, 1, 1);
     }
     
     /// Do the analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
       //	const double cent = event.Impact_Parameter();
-      const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
+      const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
       //      const double cent = -1.;
       const Jets jets02 = applyProjection<FastJets>(event, "Jets02").jetsByEt();
       const Jets jets04 = applyProjection<FastJets>(event, "Jets04").jetsByEt();
       const ChargedFinalState tracks = applyProjection<ChargedFinalState>(event, "CFS");
 
       if (jets02[0].momentum().Et() > 50.*GeV 
 	  && fabs(jets02[0].momentum().eta()) < 2.8) _sumEvents02+=weight;
       foreach (Jet jet, jets02){
 	if (jet.momentum().Et() > 50.*GeV 
 	    && fabs(jet.momentum().eta()) < 2.8){
 	  if (cent<0. || (cent>=0.6 && cent<0.8)) _h_jetet02_p->fill(jet.momentum().Et(),weight);
 	  if (cent<0. || (cent>=0.0 && cent<0.1)) _h_jetet02_c->fill(jet.momentum().Et(),weight);
 	  if (jet.momentum().Et() > 75.*GeV && jet.momentum().Et() < 100.*GeV
 	      && fabs(jet.momentum().eta()) < 2.1) {
 	    _sumjets02 += event.weight();
 	    foreach (Particle track, tracks.particles()){
 	      double dR(deltaR(track,jet));
 	      if (dR < 0.4){
 		double pt(track.momentum().pT());
 		double z(pt*cos(dR)/jet.momentum().Et());
 		double jt(pt*sin(dR));
 		if (cent<0. || (cent>=0.4 && cent<0.8)) _h_jt02_p->fill(jt,weight/jt);
 		if (cent<0. || (cent>=0.0 && cent<0.1)) _h_jt02_c->fill(jt,weight/jt);
 		if (cent<0. || (cent>=0.4 && cent<0.8)) _h_pt02_p->fill(pt,weight);
 		if (cent<0. || (cent>=0.0 && cent<0.1)) _h_pt02_c->fill(pt,weight);
 		if (cent<0. || (cent>=0.4 && cent<0.8)) _h_z02_p->fill(z,weight);
 		if (cent<0. || (cent>=0.0 && cent<0.1)) _h_z02_c->fill(z,weight);
 	      }
 	    }
 	  }
 	}
       }
 	
       if (jets04[0].momentum().Et() > 100.*GeV 
 	  && fabs(jets04[0].momentum().eta()) < 2.8) _sumEvents04+=weight;
       foreach (Jet jet, jets04){
 	if (jet.momentum().Et() > 100.*GeV 
 	    && fabs(jet.momentum().eta()) < 2.8){
 	  if (cent<0. || (cent>=0.6 && cent<0.8)) _h_jetet04_p->fill(jet.momentum().Et(),weight);
 	  if (cent<0. || (cent>=0.0 && cent<0.1)) _h_jetet04_c->fill(jet.momentum().Et(),weight);
 	  if(fabs(jet.momentum().eta()) < 2.1){
 	    _sumjets04 += event.weight();
 	    double dRmin(10.),dR;
 	    FourMomentum newaxis;
 	    foreach (Jet jet02, jets02){
 	      dR=deltaR(jet,jet02);
 	      if (jet.momentum().Et() > 25.*GeV 
 		  && fabs(jet.momentum().eta()) < 2.1
 		  && dR < dRmin){
 		dRmin=dR;
 		newaxis=jet02.momentum();
 	      }
 	    }
 	    foreach (Particle track, tracks.particles()){
 	      dR=deltaR(track,newaxis);
 	      if (dR < 0.4) {
 		double pt(track.momentum().pT());
 		double z(pt*cos(dR)/jet.momentum().Et());
 		double jt(pt*sin(dR));
 		if (cent<0. || (cent>=0.4 && cent<0.8)) _h_jt04_p->fill(jt,weight/jt);
 		if (cent<0. || (cent>=0.0 && cent<0.1)) _h_jt04_c->fill(jt,weight/jt);
 		if (cent<0. || (cent>=0.4 && cent<0.8)) _h_pt04_p->fill(pt,weight);
 		if (cent<0. || (cent>=0.0 && cent<0.1)) _h_pt04_c->fill(pt,weight);
 		if (cent<0. || (cent>=0.4 && cent<0.8)) _h_z04_p->fill(z,weight);
 		if (cent<0. || (cent>=0.0 && cent<0.1)) _h_z04_c->fill(z,weight);
 	      }
 	    }
 	  }
 	}
       }
 	
       Jets jets;
       foreach (Jet jet, jets02) {
         if (fabs(jet.momentum().eta())<2.8 && jet.momentum().Et()>25.)
           jets.push_back(jet);
       }
       if (jets.size() > 1 && jets[0].momentum().Et() > 75.) {
         Jets partners;
         foreach (Jet jet, jets) {
 	  double angle = fabs(jet.momentum().azimuthalAngle() - jets[0].momentum().azimuthalAngle());
 	  if (angle > M_PI) angle = 2.*M_PI-angle;
           if (angle > M_PI/2.) partners.push_back(jet);
         }
         if (partners.size() > 0) {
 	  Jet partner = partners[0];
 	 
 	  const double et1 = jets[0].momentum().Et();
 	  const double et2 = partner.momentum().Et();
 	  const double aj = (et1-et2)/(et1+et2);
 	  double deltaphi = fabs(partner.momentum().azimuthalAngle() - jets[0].momentum().azimuthalAngle());
 	  if (deltaphi > M_PI) deltaphi = 2.*M_PI-deltaphi;
 
 	  if (jets[0].momentum().Et() > 100.) {
 	    _sumWeightSelected02_h += event.weight();
 	    if (cent<0. || (cent>=0.0 && cent<0.1)) _h_dphi02_c->fill(deltaphi,weight);
 	    if (cent<0. || (cent>=0.6 && cent<0.8)) _h_dphi02_p->fill(deltaphi,weight);
 	  }
 	  _sumWeightSelected02 += event.weight();
 	  if (cent<0. || (cent>=0.0 && cent<0.1)) _h_aj02_0_c->fill(aj,weight);
 	  if (cent<0. || (cent>=0.6 && cent<0.8)) _h_aj02_0_p->fill(aj,weight);
 	  if(et1 < 100.*GeV) {
 	    _sumWeightSelected02_1 += weight;
 	    if (cent<0. || (cent>=0.6 && cent<0.8)) _h_aj02_1_p->fill(aj,weight);
 	    if (cent<0. || (cent>=0.0 && cent<0.1)) _h_aj02_1_c->fill(aj,weight);
 	  }
 	  else if(et1 < 125.*GeV) {
 	    _sumWeightSelected02_2 += weight;
 	    if (cent<0. || (cent>=0.6 && cent<0.8)) _h_aj02_2_p->fill(aj,weight);
 	    if (cent<0. || (cent>=0.0 && cent<0.1)) _h_aj02_2_c->fill(aj,weight);
 	  }
 	  else if(et1 < 150.*GeV) {
 	    _sumWeightSelected02_3 += weight;
 	    if (cent<0. || (cent>=0.6 && cent<0.8)) _h_aj02_3_p->fill(aj,weight);
 	    if (cent<0. || (cent>=0.0 && cent<0.1)) _h_aj02_3_c->fill(aj,weight);
 	  }
 	}
       }
 	
       jets.clear();
       foreach (Jet jet, jets04) {
         if (fabs(jet.momentum().eta())<2.8 && jet.momentum().Et()>25.)
           jets.push_back(jet);
       }
       if (jets.size() > 1 && jets[0].momentum().Et() > 100.) {
         Jets partners;
         foreach (Jet jet, jets) {
 	  double angle = fabs(jet.momentum().azimuthalAngle() - jets[0].momentum().azimuthalAngle());
 	  if (angle > M_PI) angle = 2.*M_PI-angle;
           if (angle > M_PI/2.) partners.push_back(jet);
         }
         if (partners.size() > 0) {
 	  Jet partner = partners[0];
 	 
 	  const double et1 = jets[0].momentum().Et();
 	  const double et2 = partner.momentum().Et();
 	  const double aj = (et1-et2)/(et1+et2);
 	  double deltaphi = fabs(partner.momentum().azimuthalAngle() - jets[0].momentum().azimuthalAngle());
 	  if (deltaphi > M_PI) deltaphi = 2.*M_PI-deltaphi;
 
 	  _sumWeightSelected04 += event.weight();
 	  if (cent<0. || (cent>=0.0 && cent<0.1)) _h_dphi04_c->fill(deltaphi,weight);
 	  if (cent<0. || (cent>=0.6 && cent<0.8)) _h_dphi04_p->fill(deltaphi,weight);
 	  if (cent<0. || (cent>=0.0 && cent<0.1)) _h_aj04_0_c->fill(aj,weight);
 	  if (cent<0. || (cent>=0.6 && cent<0.8)) _h_aj04_0_p->fill(aj,weight);
 	  if(et1 < 125.*GeV) {
 	    _sumWeightSelected04_1 += weight;
 	    if (cent<0. || (cent>=0.6 && cent<0.8)) _h_aj04_1_p->fill(aj,weight);
 	    if (cent<0. || (cent>=0.0 && cent<0.1)) _h_aj04_1_c->fill(aj,weight);
 	  }
 	  else if(et1 < 150.*GeV) {
 	    _sumWeightSelected04_2 += weight;
 	    if (cent<0. || (cent>=0.6 && cent<0.8)) _h_aj04_2_p->fill(aj,weight);
 	    if (cent<0. || (cent>=0.0 && cent<0.1)) _h_aj04_2_c->fill(aj,weight);
 	  }
 	  else if(et1 < 200.*GeV) {
 	    _sumWeightSelected04_3 += weight;
 	    if (cent<0. || (cent>=0.6 && cent<0.8)) _h_aj04_3_p->fill(aj,weight);
 	    if (cent<0. || (cent>=0.0 && cent<0.1)) _h_aj04_3_c->fill(aj,weight);
 	  }
 	}
       }
 	
     }
     
     /// Finalize
     void finalize() {
       /*      scale(_h_jetet02_p,1./_sumEvents02);
 	      scale(_h_jetet02_c,1./_sumEvents02);
 	      scale(_h_jetet04_p,1./_sumEvents04);
 	      scale(_h_jetet04_c,1./_sumEvents04);*/
       scale(_h_jetet02_p,crossSection()/sumOfWeights());
       scale(_h_jetet02_c,crossSection()/sumOfWeights());
       scale(_h_jetet04_p,crossSection()/sumOfWeights());
       scale(_h_jetet04_c,crossSection()/sumOfWeights());
       scale(_h_jt02_p,1./_sumjets02);
       scale(_h_jt02_c,1./_sumjets02);
       scale(_h_jt04_p,1./_sumjets04);
       scale(_h_jt04_c,1./_sumjets04);
       scale(_h_pt02_p,1./_sumjets02);
       scale(_h_pt02_c,1./_sumjets02);
       scale(_h_pt04_p,1./_sumjets04);
       scale(_h_pt04_c,1./_sumjets04);
       scale(_h_z02_p,1./_sumjets02);
       scale(_h_z02_c,1./_sumjets02);
       scale(_h_z04_p,1./_sumjets04);
       scale(_h_z04_c,1./_sumjets04);
       scale(_h_aj02_1_p,1./_sumWeightSelected02_1);
       scale(_h_aj02_1_c,1./_sumWeightSelected02_1);
       scale(_h_aj04_1_p,1./_sumWeightSelected04_1);
       scale(_h_aj04_1_c,1./_sumWeightSelected04_1);
       scale(_h_aj02_2_p,1./_sumWeightSelected02_2);
       scale(_h_aj02_2_c,1./_sumWeightSelected02_2);
       scale(_h_aj04_2_p,1./_sumWeightSelected04_2);
       scale(_h_aj04_2_c,1./_sumWeightSelected04_2);
       scale(_h_aj02_3_p,1./_sumWeightSelected02_3);
       scale(_h_aj02_3_c,1./_sumWeightSelected02_3);
       scale(_h_aj04_3_p,1./_sumWeightSelected04_3);
       scale(_h_aj04_3_c,1./_sumWeightSelected04_3);
       scale(_h_aj02_0_c,1./_sumWeightSelected02);
       scale(_h_aj02_0_p,1./_sumWeightSelected02);
       scale(_h_aj04_0_c,1./_sumWeightSelected04);
       scale(_h_aj04_0_p,1./_sumWeightSelected04);
       scale(_h_dphi02_c,1./_sumWeightSelected02_h);
       scale(_h_dphi02_p,1./_sumWeightSelected02_h);
       scale(_h_dphi04_c,1./_sumWeightSelected04);
       scale(_h_dphi04_p,1./_sumWeightSelected04);
     }
     
     
   private:
 
     double _sumWeightSelected02,_sumWeightSelected02_1,_sumWeightSelected02_2,_sumWeightSelected02_3;
     double _sumWeightSelected04,_sumWeightSelected04_1,_sumWeightSelected04_2,_sumWeightSelected04_3;
     double _sumWeightSelected02_h;
     double _sumjets02,_sumjets04;
     double _sumEvents02, _sumEvents04;
 
-    AIDA::IHistogram1D * _h_jetet02_p;
-    AIDA::IHistogram1D * _h_jetet02_c;
-    AIDA::IHistogram1D * _h_jetet04_p;
-    AIDA::IHistogram1D * _h_jetet04_c;
-    AIDA::IHistogram1D * _h_jt02_p;
-    AIDA::IHistogram1D * _h_jt02_c;
-    AIDA::IHistogram1D * _h_jt04_p;
-    AIDA::IHistogram1D * _h_jt04_c;
-    AIDA::IHistogram1D * _h_pt02_p;
-    AIDA::IHistogram1D * _h_pt02_c;
-    AIDA::IHistogram1D * _h_pt04_p;
-    AIDA::IHistogram1D * _h_pt04_c;
-    AIDA::IHistogram1D * _h_z02_p;
-    AIDA::IHistogram1D * _h_z02_c;
-    AIDA::IHistogram1D * _h_z04_p;
-    AIDA::IHistogram1D * _h_z04_c;
-    AIDA::IHistogram1D * _h_aj02_1_p;
-    AIDA::IHistogram1D * _h_aj02_1_c;
-    AIDA::IHistogram1D * _h_aj04_1_p;
-    AIDA::IHistogram1D * _h_aj04_1_c;
-    AIDA::IHistogram1D * _h_aj02_2_p;
-    AIDA::IHistogram1D * _h_aj02_2_c;
-    AIDA::IHistogram1D * _h_aj04_2_p;
-    AIDA::IHistogram1D * _h_aj04_2_c;
-    AIDA::IHistogram1D * _h_aj02_3_p;
-    AIDA::IHistogram1D * _h_aj02_3_c;
-    AIDA::IHistogram1D * _h_aj04_3_p;
-    AIDA::IHistogram1D * _h_aj04_3_c;
-    AIDA::IHistogram1D * _h_aj02_0_c;
-    AIDA::IHistogram1D * _h_aj02_0_p;
-    AIDA::IHistogram1D * _h_aj04_0_c;
-    AIDA::IHistogram1D * _h_aj04_0_p;
-    AIDA::IHistogram1D * _h_dphi02_c;
-    AIDA::IHistogram1D * _h_dphi02_p;
-    AIDA::IHistogram1D * _h_dphi04_c;
-    AIDA::IHistogram1D * _h_dphi04_p;
+    Histo1DPtr _h_jetet02_p;
+    Histo1DPtr _h_jetet02_c;
+    Histo1DPtr _h_jetet04_p;
+    Histo1DPtr _h_jetet04_c;
+    Histo1DPtr _h_jt02_p;
+    Histo1DPtr _h_jt02_c;
+    Histo1DPtr _h_jt04_p;
+    Histo1DPtr _h_jt04_c;
+    Histo1DPtr _h_pt02_p;
+    Histo1DPtr _h_pt02_c;
+    Histo1DPtr _h_pt04_p;
+    Histo1DPtr _h_pt04_c;
+    Histo1DPtr _h_z02_p;
+    Histo1DPtr _h_z02_c;
+    Histo1DPtr _h_z04_p;
+    Histo1DPtr _h_z04_c;
+    Histo1DPtr _h_aj02_1_p;
+    Histo1DPtr _h_aj02_1_c;
+    Histo1DPtr _h_aj04_1_p;
+    Histo1DPtr _h_aj04_1_c;
+    Histo1DPtr _h_aj02_2_p;
+    Histo1DPtr _h_aj02_2_c;
+    Histo1DPtr _h_aj04_2_p;
+    Histo1DPtr _h_aj04_2_c;
+    Histo1DPtr _h_aj02_3_p;
+    Histo1DPtr _h_aj02_3_c;
+    Histo1DPtr _h_aj04_3_p;
+    Histo1DPtr _h_aj04_3_c;
+    Histo1DPtr _h_aj02_0_c;
+    Histo1DPtr _h_aj02_0_p;
+    Histo1DPtr _h_aj04_0_c;
+    Histo1DPtr _h_aj04_0_p;
+    Histo1DPtr _h_dphi02_c;
+    Histo1DPtr _h_dphi02_p;
+    Histo1DPtr _h_dphi04_c;
+    Histo1DPtr _h_dphi04_p;
   };
 
 
 
   // This global object acts as a hook for the plugin system
   AnalysisBuilder<ATLAS_CONF_2011_075> plugin_ATLAS_CONF_2011_075;
 
 }
Index: trunk/code/ATLAS_2012_S1126965.cc
===================================================================
--- trunk/code/ATLAS_2012_S1126965.cc	(revision 451)
+++ trunk/code/ATLAS_2012_S1126965.cc	(revision 452)
@@ -1,107 +1,105 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 #include "Rivet/Tools/Logging.hh"
-#include "Rivet/RivetAIDA.hh"
 #include <boost/lexical_cast.hpp>
 namespace Rivet {
 
 
   /// @brief ATLAS jet yields and fragmentation functions in Pb+Pb at 2.76 ATeV
   class ATLAS_2012_S1126965 : public Analysis {
   public:
 
     /// Constructor
     ATLAS_2012_S1126965()
       : Analysis("ATLAS_2012_S1126965")
     {
-      setBeams(PROTON, PROTON);
       setNeedsCrossSection(true);
     }
 
     /// Book projections and histograms
     void init() {
 
       _centedges += 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8;
 	_jetparams += 0.2, 0.3, 0.4, 0.5;
 
 	_ncentbins = _centedges.size()-1;
 	_njetbins = _jetparams.size();
 	
       FinalState fs(-5.0, 5.0, 0.*GeV);
 	addProjection(fs, "FS");
 	for (size_t j = 0; j < _njetbins; ++j) {
         stringstream ss; ss << "Jets" << j;
         const string pname = ss.str();
         _names[j] = pname;
 
 	  FastJets fj(fs, FastJets::ANTIKT, _jetparams[j]);
 	  fj.useInvisibles();
         addProjection(fj, pname);
 	}
 
       for (size_t i = 0; i < _ncentbins; ++i) {
 	  _sumwtcentbins[i] = 0.;
         for (size_t j = 0; j < _njetbins; ++j) {
           stringstream ss; ss << "jetpt" << _jetparams[j] << "_" << i;
           const string pname = ss.str();
 	    if (i == _ncentbins-1)
-            _histos[i][j] = bookHistogram1D(pname,binEdges(2, 1, j+1));
+            _histos[i][j] = bookHisto1D(pname,refData(2, 1, j+1));
 	    else 
-            _histos[i][j] = bookHistogram1D(pname,binEdges(i+2, 1, j+1));
+            _histos[i][j] = bookHisto1D(pname,refData(i+2, 1, j+1));
         }
       }
     }
     
     /// Do the analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
-	const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
+	const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
 
 	for (size_t j = 0; j < _njetbins; ++j) {
         const Jets jets = applyProjection<FastJets>(event, _names[j]).jetsByPt();
 	
 	  for (size_t i = 0; i < _ncentbins; ++i) {
 	    if (cent < 0. || (cent >= _centedges[i] && cent < _centedges[i+1])) {
 	      _sumwtcentbins[i] += weight;
 		foreach (Jet jet, jets){
 	  	  if (fabs(jet.momentum().eta()) < 2.1) 
 		    _histos[i][j]->fill(jet.momentum().pT(),weight);
 	      }
 	    }
 	  }
 	}
 		
     }
     
     /// Finalize
     void finalize() {
       for (size_t i = 0; i < _ncentbins; ++i) {
         for (size_t j = 0; j < _njetbins; ++j) {
           scale(_histos[i][j],crossSection()/(_sumwtcentbins[i]>0.?_sumwtcentbins[i]:1.));
         }
       }
     }
     
     
   private:
 
     vector<double> _jetparams; 
     vector<double> _centedges;
     double _sumwtcentbins[7];
     size_t _ncentbins, _njetbins;
 
     string _names[4];
 
-    AIDA::IHistogram1D *_histos[7][4];
+    Histo1DPtr _histos[7][4];
 
   };
 
 
 
   // This global object acts as a hook for the plugin system
   AnalysisBuilder<ATLAS_2012_S1126965> plugin_ATLAS_2012_S1126965;
 
 }
Index: trunk/code/CMS_2016_I1496050.cc
===================================================================
--- trunk/code/CMS_2016_I1496050.cc	(revision 451)
+++ trunk/code/CMS_2016_I1496050.cc	(revision 452)
@@ -1,99 +1,98 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
-#include "Rivet/RivetAIDA.hh"
 #include "Rivet/Tools/Logging.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 /// @todo Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...
 
 namespace Rivet {
 
 
   class CMS_2016_I1496050 : public Analysis {
   public:
 
     /// @name Constructors etc.
     //@{
 
     /// Constructor
     CMS_2016_I1496050()
       : Analysis("CMS_2016_I1496050")
     {    }
 
     //@}
 
 
   public:
 
     void init() {
 
       _centedges += 0.0, 0.05, 0.1, 0.3, 0.5, 0.7, 0.9;
 	_ncentbins = 6;
 
 	vector<double> ptbins;
 	ptbins += 12.0, 14.4,19.2, 24.0, 28.8, 35.2, 41.6, 48.0, 60.8,73.6,86.4,103.6,120.8,140,165,250,400;
 
       ChargedFinalState cfs(-1., 1., 0.7*GeV);
       addProjection(cfs, "CFS");
 
       for (size_t i = 0; i < _ncentbins; ++i) {
 	  _sumwtcentbins[i] = 0.;
         stringstream ss; ss << "chpart_pt" << "_" << i;
-        _h_pT[i] = bookHistogram1D(ss.str(), ptbins);
+        _h_pT[i] = bookHisto1D(ss.str(), ptbins);
 	}
     }
 
 
     /// Perform the per-event analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
 
-      const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
+      const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
 
 	for (size_t i = 0; i < _ncentbins; ++i) {
 	  if (cent < 0. || (cent >= _centedges[i] && cent < _centedges[i+1])) {
 	    _sumwtcentbins[i] += weight;
         }
       }
 
       const ChargedFinalState& cfs = applyProjection<ChargedFinalState>(event, "CFS");
       foreach (const Particle& p, cfs.particles()) {
         const double pT = p.momentum().pT() / GeV;
 	  for (size_t i = 0; i < _ncentbins; ++i) {
 	    if (cent < 0. || (cent >= _centedges[i] && cent < _centedges[i+1])) {
             _h_pT[i]->fill(pT, weight/pT);
           }
 	  }
       }
 
     }
 
 
     /// Normalise histograms etc., after the run
     void finalize() {
 
 	for (size_t i = 0; i < _ncentbins; ++i) {
 	  // factor 2.5 to convert from mb to GeV^-2
         scale(_h_pT[i],(_sumwtcentbins[i]==0.?0.:crossSection()*2.5/(millibarn*2.*M_PI*2*_sumwtcentbins[i])));
 	}
 
     }
 
   private:
 
     // Data members like post-cuts event weight counters go here
     vector<double> _centedges;
     double _ncentbins;
     double _sumwtcentbins[6];
 
 
   private:
 
-    AIDA::IHistogram1D * _h_pT[6];
+    Histo1DPtr _h_pT[6];
 
   };
 
   // The hook for the plugin system
   DECLARE_RIVET_PLUGIN(CMS_2016_I1496050);
 
 }
Index: trunk/code/ALICE_GIRTH.info
===================================================================
--- trunk/code/ALICE_GIRTH.info	(revision 0)
+++ trunk/code/ALICE_GIRTH.info	(revision 452)
@@ -0,0 +1,34 @@
+Name: ALICE_GIRTH
+Year: <Insert year of publication>
+Summary: <Insert short ALICE_GIRTH description>
+Experiment: <Insert the experiment name>
+Collider: <Insert the collider name>
+SpiresID: <Insert the Inspire ID>
+Status: UNVALIDATED
+Authors:
+ - Your Name <your@email.address>
+#References:
+# - <Example: Phys.Lett.B639:151-158,2006, Erratum-ibid.B658:285-289,2008>
+# - <Example: doi:10.1016/j.physletb.2006.04.048>
+# - <Example: arXiv:hep-ex/0511054 (plus erratum)>
+RunInfo:
+  <Insert event types (not gen-specific), energy, any kinematic
+  efficiency cut(s) that may be needed; essentially any details needed to set
+  up a generator to reproduce the data.>
+NumEvents: 1000000
+NeedCrossSection: no
+#Beams: <Insert beam pair(s), e.g. [p-, p+] or [[p-, e-], [p-, e+]]>
+#Energies: <Insert list of run energies or beam energy pairs in GeV,
+#           e.g. [1960] or [[8.0, 3.5]] or [630, 1800]. Order pairs to match "Beams">
+#PtCuts: <Insert list of kinematic pT cuts in GeV, e.g. [0, 20]>
+#NeedCrossSection: True
+Description:
+  '<Insert a fairly long description, including what is measured
+  and if possible what it is useful for in terms of MC validation
+  and tuning. Use LaTeX for maths like $\pT > 50\;\GeV$.
+  Use single quotes around the block if required (see http://www.yaml.org)>'
+BibKey: 
+BibTeX: ''
+ToDo:
+ - Implement the analysis, test it, remove this ToDo, and mark as VALIDATED :-)
+
Index: trunk/code/ALICE_GIRTH.yoda
===================================================================
--- trunk/code/ALICE_GIRTH.yoda	(revision 0)
+++ trunk/code/ALICE_GIRTH.yoda	(revision 452)
@@ -0,0 +1,15 @@
+BEGIN YODA_SCATTER2D /REF/ALICE_GIRTH/d01-x01-y01
+Path=/REF/ALICE_GIRTH/d01-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+1.000000e-02	1.000000e-02	1.000000e-02	6.029440e+00	1.576580e+00	1.576580e+00
+2.500000e-02	5.000000e-03	5.000000e-03	1.667840e+01	1.576600e+00	1.576600e+00
+3.500000e-02	5.000000e-03	5.000000e-03	1.820320e+01	1.632900e+00	1.632900e+00
+4.500000e-02	5.000000e-03	5.000000e-03	1.736340e+01	1.632900e+00	1.632900e+00
+5.500000e-02	5.000000e-03	5.000000e-03	1.449650e+01	9.572000e-01	9.572000e-01
+6.500000e-02	5.000000e-03	5.000000e-03	1.101010e+01	1.745500e+00	1.745500e+00
+7.500000e-02	5.000000e-03	5.000000e-03	5.778360e+00	9.572100e-01	9.572100e-01
+1.000000e-01	2.000000e-02	2.000000e-02	1.172950e+00	4.504500e-01	4.504500e-01
+END YODA_SCATTER2D
+
Index: trunk/code/ATLAS_2011_S8888116.cc
===================================================================
--- trunk/code/ATLAS_2011_S8888116.cc	(revision 451)
+++ trunk/code/ATLAS_2011_S8888116.cc	(revision 452)
@@ -1,120 +1,118 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Tools/Logging.hh"
-#include "Rivet/RivetAIDA.hh"
 #include "Rivet/Tools/ParticleIdUtils.hh"
 #include <boost/lexical_cast.hpp>
 namespace Rivet {
 
 
   /// @brief ATLAS dijet asymmetry in PbPb at 2.76 TeV and pp at 7 TeV
   class ATLAS_2011_S8888116 : public Analysis {
   public:
 
     /// Constructor
     ATLAS_2011_S8888116()
       : Analysis("ATLAS_2011_S8888116"),
         _sumWeightSelected(0.0)
     {
-      setBeams(PROTON, PROTON);
     }
 
     /// Book projections and histograms
     void init() {
       VisibleFinalState vfs(-5.0, 5.0, 0.*GeV);
 
 	addProjection(vfs, "VFS");
       addProjection(FastJets(vfs, FastJets::ANTIKT, 0.4), "Jets");
 
       if (fuzzyEquals(sqrtS()/GeV, 7000., 1E-3)) {
-        _h_aj       = bookHistogram1D(2, 1, 1);
-        _h_dphi     = bookHistogram1D(4, 1, 1);
+        _h_aj       = bookHisto1D(2, 1, 1);
+        _h_dphi     = bookHisto1D(4, 1, 1);
       } else if (fuzzyEquals(sqrtS()/GeV, 2760., 1E-3)) {
-        _h_aj       = bookHistogram1D(1, 1, 1);
-        _h_dphi     = bookHistogram1D(3, 1, 1);
+        _h_aj       = bookHisto1D(1, 1, 1);
+        _h_dphi     = bookHisto1D(3, 1, 1);
       }
     }
 
 
     /// Do the analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
-	const double centrality = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
+	const double centrality = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
 // 	const double sigma = 15.;
 // 	 std::cout<<std::endl<<"new event "<<std::endl;
       const FastJets& fastjets = applyProjection<FastJets>(event, "Jets");
 /*	std::list<Jet> jetlist;
 	foreach (Jet jet , fastjets.jets()){
 // 	  std::cout<<"Et before: "<<jet.EtSum()<<" , "<<jet.momentum().Et()<<std::endl;
 	  double r1(1.0*rand()/RAND_MAX), r2(1.0*rand()/RAND_MAX);
 	  double fluc(max(sqrt(-2.*log(r1))*cos(2.*M_PI*r2)*sigma,-jet.totalEnergy()));
 	  const FourMomentum mom(fluc,0,0,0);
 	  jet.addParticle(mom);
 	  jetlist.push_back(jet);
 // 	  std::cout<<"Et after: "<<jet.EtSum()<<" , "<<jet.momentum().Et()<<std::endl;
 	  }
 // 	std::cout<<std::endl<<jetlist.front().EtSum()<<std::endl;
 	jetlist.sort(cmpJetsByEt);
 // 	std::cout<<jetlist.front().EtSum()<<std::endl<<std::endl;*/
      const Jets alljets = fastjets.jetsByEt();
       Jets jets;
       foreach (Jet jet, alljets) {
 //       foreach (Jet jet, jetlist) {
 // 	  std::cout<<"Et final: "<<jet.EtSum()<<" , "<<jet.momentum().Et()<<std::endl;
         if (fabs(jet.momentum().eta())<2.8 && jet.momentum().Et()>25.)
           jets.push_back(jet);
       }
 
       if (jets.size() < 2 || jets[0].momentum().Et() < 100.) vetoEvent;
 
       Jets partners;
       foreach (Jet jet, jets) {
         double angle = deltaPhi(jet,jets[0]);
         if (angle > M_PI/2.) {
 	    partners.push_back(jet);
 	  }
       }
       if (partners.size() < 1) vetoEvent;
 	Jet partner = partners[0];
 	 
 	const double et1 = jets[0].momentum().Et();
 	const double et2 = partner.momentum().Et();
 	const double aj = (et1-et2)/(et1+et2);
 	double deltaphi = fabs(partner.momentum().azimuthalAngle() - jets[0].momentum().azimuthalAngle());
 	if (deltaphi > M_PI) deltaphi = 2.*M_PI-deltaphi;
 
 	_sumWeightSelected += event.weight();
 	
 	if (centrality<0. || (centrality>=0.0 && centrality<0.1)) _h_aj->fill(aj,weight);
 	if (centrality<0. || (centrality>=0.0 && centrality<0.1)) _h_dphi->fill(deltaphi,weight);
 
     }
 	
 	
     /// Finalize
     void finalize() {
 	if (_sumWeightSelected==0.) _sumWeightSelected=1.;
 	
       scale(_h_aj,1./_sumWeightSelected);
       scale(_h_dphi,1./_sumWeightSelected);
       getLog() << Log::DEBUG << "sumOfWeights()     = " << sumOfWeights() << std::endl;
       getLog() << Log::DEBUG << "_sumWeightSelected = " << _sumWeightSelected << std::endl;
     }
     
     
   private:
 
     double _sumWeightSelected;
 
-    AIDA::IHistogram1D * _h_aj;
-    AIDA::IHistogram1D * _h_dphi;
+    Histo1DPtr  _h_aj;
+    Histo1DPtr  _h_dphi;
   };
 
 
 
   // This global object acts as a hook for the plugin system
   AnalysisBuilder<ATLAS_2011_S8888116> plugin_ATLAS_2011_S8888116;
 
 }
Index: trunk/code/CMS_2014_I1299142.info
===================================================================
--- trunk/code/CMS_2014_I1299142.info	(revision 0)
+++ trunk/code/CMS_2014_I1299142.info	(revision 452)
@@ -0,0 +1,50 @@
+Name: CMS_2014_I1299142
+Year: 2014
+Summary: <Insert short CMS_2014_I1299142 description>
+Experiment: CMS
+Collider: LHC
+InspireID: 1299142
+Status: UNVALIDATED
+Authors:
+ - Your Name <your@email.address>
+#References:
+# - <Example: Phys.Lett.B639:151-158,2006, Erratum-ibid.B658:285-289,2008>
+# - <Example: doi:10.1016/j.physletb.2006.04.048>
+# - <Example: arXiv:hep-ex/0511054 (plus erratum)>
+RunInfo:
+  <Insert event types (not gen-specific), energy, any kinematic
+  efficiency cut(s) that may be needed; essentially any details needed to set
+  up a generator to reproduce the data.>
+NumEvents: 1000000
+NeedCrossSection: no
+#Beams: <Insert beam pair(s), e.g. [p-, p+] or [[p-, e-], [p-, e+]]>
+#Energies: <Insert list of run energies or beam energy pairs in GeV,
+#           e.g. [1960] or [[8.0, 3.5]] or [630, 1800]. Order pairs to match "Beams">
+#PtCuts: <Insert list of kinematic pT cuts in GeV, e.g. [0, 20]>
+#NeedCrossSection: True
+Description:
+  '<Insert a fairly long description, including what is measured
+  and if possible what it is useful for in terms of MC validation
+  and tuning. Use LaTeX for maths like $\pT > 50\;\GeV$.
+  Use single quotes around the block if required (see http://www.yaml.org)>'
+BibKey: Chatrchyan:2014ava
+BibTeX: '@article{Chatrchyan:2014ava,
+      author         = "Chatrchyan, Serguei and others",
+      title          = "{Measurement of jet fragmentation in PbPb and pp
+                        collisions at $\sqrt{s_{NN}}=2.76$ TeV}",
+      collaboration  = "CMS",
+      journal        = "Phys. Rev.",
+      volume         = "C90",
+      year           = "2014",
+      number         = "2",
+      pages          = "024908",
+      doi            = "10.1103/PhysRevC.90.024908",
+      eprint         = "1406.0932",
+      archivePrefix  = "arXiv",
+      primaryClass   = "nucl-ex",
+      reportNumber   = "CMS-HIN-12-013, CERN-PH-EP-2014-100",
+      SLACcitation   = "%%CITATION = ARXIV:1406.0932;%%"
+}'
+ToDo:
+ - Implement the analysis, test it, remove this ToDo, and mark as VALIDATED :-)
+
Index: trunk/code/ALICE_GIRTH_GRIDSUB2.yoda
===================================================================
--- trunk/code/ALICE_GIRTH_GRIDSUB2.yoda	(revision 0)
+++ trunk/code/ALICE_GIRTH_GRIDSUB2.yoda	(revision 452)
@@ -0,0 +1,15 @@
+BEGIN YODA_SCATTER2D /REF/ALICE_GIRTH_GRIDSUB2/d01-x01-y01
+Path=/REF/ALICE_GIRTH_GRIDSUB2/d01-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+1.000000e-02	1.000000e-02	1.000000e-02	6.029440e+00	1.576580e+00	1.576580e+00
+2.500000e-02	5.000000e-03	5.000000e-03	1.667840e+01	1.576600e+00	1.576600e+00
+3.500000e-02	5.000000e-03	5.000000e-03	1.820320e+01	1.632900e+00	1.632900e+00
+4.500000e-02	5.000000e-03	5.000000e-03	1.736340e+01	1.632900e+00	1.632900e+00
+5.500000e-02	5.000000e-03	5.000000e-03	1.449650e+01	9.572000e-01	9.572000e-01
+6.500000e-02	5.000000e-03	5.000000e-03	1.101010e+01	1.745500e+00	1.745500e+00
+7.500000e-02	5.000000e-03	5.000000e-03	5.778360e+00	9.572100e-01	9.572100e-01
+1.000000e-01	2.000000e-02	2.000000e-02	1.172950e+00	4.504500e-01	4.504500e-01
+END YODA_SCATTER2D
+
Index: trunk/code/MC_SOFTDROP_4MOMSUB.cc
===================================================================
--- trunk/code/MC_SOFTDROP_4MOMSUB.cc	(revision 451)
+++ trunk/code/MC_SOFTDROP_4MOMSUB.cc	(revision 452)
@@ -1,536 +1,793 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/FastJets.hh"
 //#include "Rivet/Tools/Logging.hh"
 #include "Rivet/Tools/ParticleIdUtils.hh"
 //#include "fastjet/AreaDefinition.hh"
 #include "fastjet/ClusterSequence.hh"
 //#include "fastjet/ClusterSequenceArea.hh"
 #include "fastjet/contrib/SoftDrop.hh"
 #include "fastjet/contrib/Recluster.hh"
 #include "HepMC/GenParticle.h"
 #include "HepMC/GenEvent.h"
 
 #ifndef MODE 
 #define MODE 0
 #endif
 
 namespace Rivet {
 
     using namespace fastjet;
 
     struct PJetComp {
         bool operator() (const PseudoJet& pj1, const PseudoJet& pj2) const
        {return pj1.pt()<pj2.pt();}
     };
 
 #if MODE==0
   class MC_SOFTDROP_4MOMSUB : public Analysis {
 #else
   class MC_SOFTDROP_NOREC : public Analysis {
 #endif
   public:
 
     /// Constructor
 #if MODE==0
     MC_SOFTDROP_4MOMSUB() : Analysis("MC_SOFTDROP_4MOMSUB")
 #else
     MC_SOFTDROP_NOREC() : Analysis("MC_SOFTDROP_NOREC")
 #endif 
     {    
         _zcut = 0.1;  _beta = 0.;
 
     }
 
     /// Book histograms and initialise projections before the run
     void init() {
 
         _jetRs += 0.4;
         _njetRbins = 1;
         
         _girthedges += 0., 0.1, 0.2, 0.3, 1.;
         _ngirthbins = 4;
+	 
+	 _zgbins += 0.1, 0.2, 0.3, 0.4, 0.5;
+	 _nzgbins = 4;
+	 
+	 _dRbins += 0.0, 0.1, 0.2, 0.3, 0.4;
+	 _ndRbins = 4;
         
       // pt binning 
       _ptedges += 140, 160, 180, 200, 250, 300, 500;
       _nptbins = _ptedges.size();
+ 
+      //_area_def = AreaDefinition(active_area_explicit_ghosts, GhostedAreaSpec(3.));      
       
-      _h_pt_sc_bef =  bookHisto1D("sc_pt_bef", 100, 0., 5.);
-      _h_pt_sc_aft  = bookHisto1D("sc_pt_aft", 100, 0., 5.);
+      _h_pt_sc_bef =  bookHisto1D("sc_pt_bef", 100, 0., 15.);
+      _h_pt_sc_aft  = bookHisto1D("sc_pt_aft", 100, 0., 15.);
+      _p_ptvsdR_all = bookProfile1D("pt_vs_dR_all", 20, 0., 1.);
+      _p_ptvsdR_rec = bookProfile1D("pt_vs_dR_rec", 20, 0., 1.);
+      _p_ptvsdR_rat = bookProfile1D("pt_vs_dR_rat", 20, 0., 1.);
+      _h_zg_dR_2d = bookHisto2D("zg_dR_2d", linspace(8, 0.1, 0.5), linspace(20, 0., 0.6));
+      _h_zg_dR_pass_2d = bookHisto2D("zg_dR_pass_2d", linspace(8, 0.1, 0.5), linspace(10, 0.1, 0.6));
       for (size_t k = 0; k < _njetRbins; ++k) {
 	  stringstream ss1; ss1 << "jetpt_R" <<_jetRs[k];
           _h_jetpt[k] = bookHisto1D(ss1.str(), 100, 50., 500.);
 	  stringstream ss2; ss2 << "zg_R" <<_jetRs[k];
           _h_zg[k] = bookHisto1D(ss2.str(), 8, 0.1, 0.5);
 	  stringstream ss3; ss3 << "nstep_R" <<_jetRs[k];
           _h_nstep[k] = bookHisto1D(ss3.str(), 21, -0.5, 20.5);
 	  stringstream ss5; ss5 << "zg_dRcut_R" <<_jetRs[k];
           _h_zgdrcut[k] = bookHisto1D(ss5.str(), 8, 0.1, 0.5);
 	  stringstream ss6; ss6 << "nstep_dRcut_R" <<_jetRs[k];
           _h_nstepdrcut[k] = bookHisto1D(ss6.str(), 21, -0.5, 20.5);
 	  stringstream ss7; ss7 << "groomed_ptratio_R" <<_jetRs[k];
           _h_grptratio[k] = bookHisto1D(ss7.str(), 50, 0., 1.);
 	  stringstream ss8; ss8 << "zg_dRcut_nstep0_R" <<_jetRs[k];
           _h_zgdrcutnstep0[k] = bookHisto1D(ss8.str(), 8, 0.1, 0.5);
-	  //stringstream ss9; ss9 << "deltapt_R" <<_jetRs[k];
-          //_h_deltapt[k] = bookHisto1D(ss9.str(), 50, -0.5, 0.5);
-          for (size_t j = 0; j < _ngirthbins; ++j) {
-	      stringstream ss; ss << "zg_girth" << "_" << j<<"_R"<<_jetRs[k];
-	      _h_zg_girth[j][k] = bookHisto1D(ss.str(), 8, 0.1, 0.5);
-          }
-      /*for (size_t j = 0; j < _nptbins; ++j) {
-	  stringstream ss1; ss1 << "zg" << "_" << j;
-	  _h_zg[j] = bookHisto1D(ss1.str(), 8, 0.1, 0.5);
-	  stringstream ss2; ss2 << "nstep" << "_" << j;
-	  _h_nstep[j] = bookHisto1D(ss2.str(), 21, -0.5, 20.5);
-      }*/
+	  stringstream ss9; ss9 << "zg_all" <<_jetRs[k];
+          _h_zg_all[k] = bookHisto1D(ss9.str(), 10, 0., 0.5);
+	  for (size_t j = 0; j < _ngirthbins; ++j) {
+	    stringstream ss; ss << "zg_girth" << "_" << j<<"_R"<<_jetRs[k];
+	    _h_zg_girth[j][k] = bookHisto1D(ss.str(), 8, 0.1, 0.5);
+	  }
+	  for (size_t j = 0; j < _nzgbins; ++j) {
+	    stringstream ss1; ss1 << "zg_dRbins_" << j<<"_R"<<_jetRs[k];
+	    _h_zg_dRbins[j][k] = bookHisto1D(ss1.str(), 8, 0.1, 0.5);
+	    stringstream ss2; ss2 << "dR_zgbins_" << j<<"_R"<<_jetRs[k];
+	    _h_dR_zgbins[j][k] = bookHisto1D(ss2.str(), 20, 0., 0.6);
+	  }
       }
       _h_deltar[0] = bookHisto1D("deltaR_R0.4", 20, 0., 0.6);
       //_h_deltar[1] = bookHisto1D("deltaR_R1", 20, 0., 1.5);
       _h_girth[0] = bookHisto1D("girth_R0.4",40 , 0., 0.4);
       //_h_girth[1] = bookHisto1D("girth_R1",40 , 0., 1);
       _p_girth_lead_zg[0] = bookProfile1D("g_vs_zg_l_R0.4", 16, 0.1, 0.5);
       //_p_girth_lead_zg[1] = bookProfile1D("g_vs_zg_l_R1", 16, 0.1, 0.5);
       _p_girth_subl_zg[0] = bookProfile1D("g_vs_zg_s_R0.4", 16, 0.1, 0.5);
       //_p_girth_subl_zg[1] = bookProfile1D("g_vs_zg_s_R1", 16, 0.1, 0.5);
+      //_p_area_lead_zg[0] = bookProfile1D("area_vs_zg_l_R0.4", 16, 0.1, 0.5);
+      //_p_area_lead_zg[1] = bookProfile1D("area_vs_zg_l_R1", 16, 0.1, 0.5);
+      //_p_area_subl_zg[0] = bookProfile1D("area_vs_zg_s_R0.4", 16, 0.1, 0.5);
+      //_p_area_subl_zg[1] = bookProfile1D("area_vs_zg_s_R1", 16, 0.1, 0.5);
+      _h_dR_rej[0] = bookHisto1D("dR_rej_R0.4", 20, 0., 0.6);
+      //_h_dR_rej[1] = bookHisto1D("dR_rej_R1", 20, 0., 1.5);
 #if MODE==0
       _p_recen_lead_zg[0] = bookProfile1D("recen_vs_zg_l_R0.4", 16, 0.1, 0.5);
       //_p_recen_lead_zg[1] = bookProfile1D("recen_vs_zg_lead_R1", 16, 0.1, 0.5);
       _p_recen_sublead_zg[0] = bookProfile1D("recen_vs_zg_s_R0.4", 16, 0.1, 0.5);
       //_p_recen_sublead_zg[1] = bookProfile1D("recen_vs_zg_sublead_R1", 16, 0.1, 0.5);
       _p_recpt_lead_zg[0] = bookProfile1D("recpt_vs_zg_l_R0.4", 16, 0.1, 0.5);
       //_p_recpt_lead_zg[1] = bookProfile1D("recpt_vs_zg_lead_R1", 16, 0.1, 0.5);
       _p_recpt_sublead_zg[0] = bookProfile1D("recpt_vs_zg_s_R0.4", 16, 0.1, 0.5);
       //_p_recpt_sublead_zg[1] = bookProfile1D("recpt_vs_zg_sublead_R1", 16, 0.1, 0.5);
       _p_recpt_abs_lead_zg[0] = bookProfile1D("recpt_abs_vs_zg_l_R0.4", 16, 0.1, 0.5);
       //_p_recpt_abs_lead_zg[1] = bookProfile1D("recpt_abs_vs_zg_lead_R1", 16, 0.1, 0.5);
       _p_recpt_abs_sublead_zg[0] = bookProfile1D("recpt_abs_vs_zg_s_R0.4", 16, 0.1, 0.5);
       //_p_recpt_abs_sublead_zg[1] = bookProfile1D("recpt_abs_vs_zg_sublead_R1", 16, 0.1, 0.5);
+      _p_recpt_all_lead_zg[0] = bookProfile1D("recpt_all_vs_zg_l_R0.4", 16, 0.1, 0.5);
+      //_p_recpt_all_lead_zg[1] = bookProfile1D("recpt_all_vs_zg_lead_R1", 16, 0.1, 0.5);
+      _p_recpt_all_sublead_zg[0] = bookProfile1D("recpt_all_vs_zg_s_R0.4", 16, 0.1, 0.5);
+      //_p_recpt_all_sublead_zg[1] = bookProfile1D("recpt_all_vs_zg_sublead_R1", 16, 0.1, 0.5);
+      _p_recpt_all_abs_lead_zg[0] = bookProfile1D("recpt_all_abs_vs_zg_l_R0.4", 16, 0.1, 0.5);
+      //_p_recpt_all_abs_lead_zg[1] = bookProfile1D("recpt_all_abs_vs_zg_lead_R1", 16, 0.1, 0.5);
+      _p_recpt_all_abs_sublead_zg[0] = bookProfile1D("recpt_all_abs_vs_zg_s_R0.4", 16, 0.1, 0.5);
+      //_p_recpt_all_abs_sublead_zg[1] = bookProfile1D("recpt_all_abs_vs_zg_sublead_R1", 16, 0.1, 0.5);
+      _p_recpt_jet_zg[0] =  bookProfile1D("recpt_vs_zg_j_R0.4", 16, 0.1, 0.5);
+      //_p_recpt_jet_zg[1] =  bookProfile1D("recpt_vs_zg_j_R1", 16, 0.1, 0.5);
+      _p_recpt_abs_jet_zg[0] =  bookProfile1D("recpt_abs_vs_zg_j_R0.4", 16, 0.1, 0.5);
+      //_p_recpt_abs_jet_zg[1] =  bookProfile1D("recpt_abs_vs_zg_j_R1", 16, 0.1, 0.5);
+      _p_recpt_all_jet_zg[0] =  bookProfile1D("recpt_all_vs_zg_j_R0.4", 16, 0.1, 0.5);
+      //_p_recpt_all_jet_zg[1] =  bookProfile1D("recpt_all_vs_zg_j_R1", 16, 0.1, 0.5);
+      _p_recpt_all_abs_jet_zg[0] =  bookProfile1D("recpt_all_abs_vs_zg_j_R0.4", 16, 0.1, 0.5);
+      //_p_recpt_all_abs_jet_zg[1] =  bookProfile1D("recpt_all_abs_vs_zg_j_R1", 16, 0.1, 0.5);
+      _h_recpt_jet[0] = bookHisto1D("recpt-dist_j_R0.4",100, 0., 1.);
+      //_h_recpt_jet[1] = bookHisto1D("recpt-dist_j_R1",100, 0., 1.);
+      _h_recpt_abs_jet[0] = bookHisto1D("recpt-dist_abs_j_R0.4",100, 0., 100.);
+      //_h_recpt_abs_jet[1] = bookHisto1D("recpt-dist_abs_j_R1",100, 0., 100.);
 #endif
     }
 
     /// SoftDrop
     PseudoJet SoftDrop(PseudoJet pj, vector<PseudoJet> * scpoint, map<PseudoJet, PseudoJet ,PJetComp> & scmap, 
-                       double & zg, double & dR, int & Nstep, double & gsj) {
+                       double & zg, double & dR, int & Nstep, double & gsj, double wt) {
         int Nsteptot(0);
         PseudoJet pjet, parent1, parent2;
         pjet = contrib::Recluster(cambridge_algorithm, JetDefinition::max_allowable_R)(pj);
         while (pjet.has_parents(parent1,parent2)) {
             //cout<<"unsubtracted pts: "<<parent1.pt()<<"  "<<parent2.pt()<<endl;
             FourMomentum mom1, mom2;
             double pt1, pt2;
             mom1 = SubtractJetMom(parent1, scpoint, scmap);
             mom2 = SubtractJetMom(parent2, scpoint, scmap);
-            if (mom1.E() < 0. || deltaR(mom1.eta(), mom1.phi(), Get4Mom(parent1).eta(), Get4Mom(parent1).phi()) > 1.) pt1 = 0.;
+            if (mom1.E() < 0. || deltaR(mom1.eta(), mom1.phi(ZERO_2PI), Get4Mom(parent1).eta(), Get4Mom(parent1).phi(ZERO_2PI)) > 1.) pt1 = 0.;
             else pt1 = mom1.pT();
-            if (mom2.E() < 0. || deltaR(mom2.eta(), mom2.phi(), Get4Mom(parent2).eta(), Get4Mom(parent2).phi()) > 1.) pt2 = 0.;
+            if (mom2.E() < 0. || deltaR(mom2.eta(), mom2.phi(ZERO_2PI), Get4Mom(parent2).eta(), Get4Mom(parent2).phi(ZERO_2PI)) > 1.) pt2 = 0.;
             else pt2 = mom2.pT();
             //cout<<"subtracted pts: "<<pt1<<"  "<<pt2<<endl;
             if (pt1 == 0. && pt2 == 0.) break;
             zg = min(pt1,pt2)/(pt1+pt2);
             dR = deltaR(parent1.eta(), parent1.phi(), parent2.eta(), parent2.phi());
+	     _h_zg_all[0]->fill(zg,wt);
             if (zg > _zcut*pow(dR,_beta)) {
             double deltar;
                 FourMomentum momsum(mom1+mom2);
-                deltar = deltaR(momsum.eta(),momsum.phi(),mom1.eta(), mom1.phi());
+                deltar = deltaR(momsum.eta(),momsum.phi(ZERO_2PI),mom1.eta(), mom1.phi(ZERO_2PI));
                 gsj = mom1.pT()*deltar;
-                deltar = deltaR(momsum.eta(),momsum.phi(),mom2.eta(), mom2.phi());
+                deltar = deltaR(momsum.eta(),momsum.phi(ZERO_2PI),mom2.eta(), mom2.phi(ZERO_2PI));
                 gsj += mom2.pT()*deltar;
                 gsj /= momsum.pt();
                 return pjet;
             }
+            _h_dR_rej[0]->fill(dR,wt);
             if (pt1 > pt2) {
                 pjet = parent1;
             }
             else {
                 pjet = parent2;
             }
             Nsteptot += 1;
             if (zg > 0.) Nstep += 1;
         }
         //cout<<"mySoftDrop failed.\n";
         return PseudoJet();
     }
     
     /// 4-momentum subtraction
     FourMomentum SubtractJetMom(PseudoJet pjet, const vector<PseudoJet> * scatcenters, map<PseudoJet, PseudoJet, PJetComp> & scmap) {
         if (scatcenters->empty()) return Get4Mom(pjet);
         FourMomentum sub(0.,0.,0.,0.);
         bool fillmap(scmap.empty());
         //cout<<"--------------------------------------------------\n";
         //cout<<"size of map: "<<scmap.size()<<endl;
         foreach (PseudoJet pj, pjet.constituents()) {
-            if (pj.E() < 1e-5) {
+            if (pj.E() < 1e-5 && pj.E() > 1e-7) {
                 if (fillmap) {                    
                     FourMomentum test(Get4Mom(pj));
                     test *= 10000.;
                     //cout<<"Found dummy :"<<Get4Mom(pj)<<endl;
                     double dRmin(10.);
                     PseudoJet matchscatcen;
                     foreach (PseudoJet sc, *scatcenters) {
-                        double dR = deltaR(test.eta(), test.phi(), Get4Mom(sc).eta(),Get4Mom(sc).phi());
+                        double dR = deltaR(test.eta(), test.phi(ZERO_2PI), Get4Mom(sc).eta(),Get4Mom(sc).phi(ZERO_2PI));
                         if (dR < dRmin) {
                             dRmin = dR;
                             matchscatcen = sc;
                         }
                     }
                     if (dRmin < 1e-5) {
                        //cout<<"Found matching scattering centre :"<<Get4Mom(matchscatcen)<<endl;
                         sub += Get4Mom(matchscatcen);
                         map<PseudoJet, PseudoJet, PJetComp>::iterator mapit;
                         mapit = scmap.find(pj);
                         /*if (mapit != scmap.end()) {
                             cout<<"Error: dummy is already in map.\n";
                             cout<<Get4Mom(mapit->first)<<endl;
                             cout<<Get4Mom(mapit->second)<<endl;
                             cout<<Get4Mom(matchscatcen)<<endl;
                         }*/
                         scmap[pj]=matchscatcen;
                    }
                     else cout<<"Error: did not find scattering centre matching dummy.\n";
                 }
                 else {
                     map<PseudoJet, PseudoJet, PJetComp>::iterator mapit;
                     mapit = scmap.find(pj);
-                    if (mapit == scmap.end()) cout<<"Error: did not find matchings scattering centre in map.\n";
+                    if (mapit == scmap.end()) cout<<"Error: did not find matching scattering centre in map.\n";
                     else sub += Get4Mom(mapit->second);
                 }
             }
         }
         //cout<<"size of map: "<<scmap.size()<<endl;
         FourMomentum jetmom(Get4Mom(pjet));
         //cout<<"Original momentum: "<<jetmom<<endl;
         jetmom -= sub;
         //cout<<"subtracted momentum: "<<jetmom<<endl;
         //cout<<"Subtracted pt: "<<subpt<<"    "<<pjet.pt()<<endl;
         return jetmom;
     }
     
 
     /// girth = first moment of jet profile
     double Girth(PseudoJet pjet, FourMomentum jetmom, const vector<PseudoJet> * scatcenters, map<PseudoJet, PseudoJet, PJetComp> & scmap) {
         double firstmom(0.);
         foreach (PseudoJet part, pjet.constituents()) {
-            if (part.E() < 1e-5) {
+            if (part.E() < 1e-5 && part.E() > 1e-7) {
               map<PseudoJet, PseudoJet, PJetComp>::iterator mapit;
               mapit = scmap.find(part);
               if (mapit != scmap.end()) {
-                  double dR(deltaR(jetmom.eta(), jetmom.phi(), Get4Mom(mapit->second).eta(), Get4Mom(mapit->second).phi()));
+                  double dR(deltaR(jetmom.eta(), jetmom.phi(ZERO_2PI), Get4Mom(mapit->second).eta(), Get4Mom(mapit->second).phi(ZERO_2PI)));
                   firstmom -= (mapit->second).pt()*dR;
               }
            }
             else {
-              double dR(deltaR(jetmom.eta(), jetmom.phi(), part.eta(), part.phi()));
+              double dR(deltaR(jetmom.eta(), jetmom.phi(ZERO_2PI), part.eta(), part.phi()));
               firstmom += part.pt()*dR;
             }
         }
         return firstmom/jetmom.pT();
     }
         
         
     /// recoil energy fraction
     double RecEnFrac(PseudoJet pjet, FourMomentum jetmom, vector<FourMomentum> scafter, map<PseudoJet, PseudoJet, PJetComp> & scmap){
         double recE(0.), subE(0.);
         foreach (PseudoJet pj, pjet.constituents()) {
-            if (pj.E() < 1e-5) {
+            if (pj.E() < 1e-5 && pj.E() > 1e-7) {
               map<PseudoJet, PseudoJet, PJetComp>::iterator mapit;
               mapit = scmap.find(pj);
               if (mapit != scmap.end()) {
                   subE += (mapit->second).E();
               }
            }
            else {
                double dRmin(10.), Emin(0.);
                foreach (FourMomentum fmom, scafter) {
-                   double dR(deltaR(Get4Mom(pj).eta(), Get4Mom(pj).phi(), fmom.eta(), fmom.phi()));
+                   double dR(deltaR(Get4Mom(pj).eta(), Get4Mom(pj).phi(ZERO_2PI), fmom.eta(), fmom.phi(ZERO_2PI)));
                    if (dR < dRmin) {
                         dRmin = dR;
                         Emin = fmom.E();
                     }
                 }
                 if (dRmin < 1e-5) {
                         recE += Emin;
                 }
            }                               
         }
         return (recE-subE)/jetmom.E();
     }
 
 
     double RecPtFrac(PseudoJet pjet, FourMomentum jetmom, vector<FourMomentum> scafter, map<PseudoJet, PseudoJet, PJetComp> & scmap){
         FourMomentum recmom(0.,0.,0.,0.), submom(0.,0.,0.,0.);
         foreach (PseudoJet pj, pjet.constituents()) {
-            if (pj.E() < 1e-5) {
+            if (pj.E() < 1e-5 && pj.E() > 1e-7) {
               map<PseudoJet, PseudoJet, PJetComp>::iterator mapit;
               mapit = scmap.find(pj);
               if (mapit != scmap.end()) {
                   submom += Get4Mom(mapit->second);
               }
            }
            else {
                double dRmin(10.);
                FourMomentum momatmin;
                foreach (FourMomentum fmom, scafter) {
-                   double dR(deltaR(Get4Mom(pj).eta(), Get4Mom(pj).phi(), fmom.eta(), fmom.phi()));
+                   double dR(deltaR(Get4Mom(pj).eta(), Get4Mom(pj).phi(ZERO_2PI), fmom.eta(), fmom.phi(ZERO_2PI)));
                    if (dR < dRmin) {
                         dRmin = dR;
                         momatmin = fmom;
                     }
                 }
                 if (dRmin < 1e-5) {
                         recmom += momatmin;
                 }
            }                               
         }
         recmom -= submom;
         double ptfrac(recmom.pT()/jetmom.pt());
-        double dR(deltaR(recmom.eta(), recmom.phi(), jetmom.eta(), jetmom.phi()));
+        double dR(deltaR(recmom.eta(), recmom.phi(ZERO_2PI), jetmom.eta(), jetmom.phi(ZERO_2PI)));
         if (dR > 1.) ptfrac *= -1.;
         return ptfrac;
     }
 
+    
+    void splitParticle(FourMomentum mom0, FourMomentum & mom1, FourMomentum & mom2) {
+	    double m0(mom0.mass());
+	    if (m0 <= 0.) {
+		    mom1=mom0;
+		    return;
+	    }
+	    LorentzTransform cms_boost;
+	    cms_boost = LorentzTransform(mom0.boostVector());
+	    double r1(1.0*rand()/RAND_MAX), r2(1.0*rand()/RAND_MAX);
+	    double theta, phi;
+	    theta = -acos(2.*r1-1.)+M_PI;
+	    phi = r2*2.*M_PI;
+	    mom1.setE(m0/2.);
+	    mom1.setPx(m0/2*sin(theta)*cos(phi));
+	    mom1.setPy(m0/2*sin(theta)*sin(phi));
+	    mom1.setPz(m0/2*cos(theta));
+	    mom2.setE(m0/2.);
+	    mom2.setPx(-m0/2*sin(theta)*cos(phi));
+	    mom2.setPy(-m0/2*sin(theta)*sin(phi));
+	    mom2.setPz(-m0/2*cos(theta));
+	    mom1 = cms_boost.transform(mom1);
+	    mom2 = cms_boost.transform(mom2);
+    }
+    
+    vector<FourMomentum> Rambo(FourMomentum momin, int n) {
+	    //cout<<"------------------------\n";
+	    LorentzTransform cms_boost;
+	    cms_boost = LorentzTransform(momin.boostVector());
+	    vector<FourMomentum> qmoms;
+	    FourMomentum Q;
+	    for (int i=0; i<n; i++) {
+		    FourMomentum q;
+		    double r1(1.0*rand()/RAND_MAX), r2(1.0*rand()/RAND_MAX),
+			r3(1.0*rand()/RAND_MAX), r4(1.0*rand()/RAND_MAX);
+		    double c, phi, q0;
+		    c = 2.*r1-1.;
+		    phi = 2.*M_PI*r2;
+		    q0 = -log(r3*r4);
+		    q.setE(q0);
+		    q.setPx(q0*sqrt(1.-c*c)*cos(phi));
+		    q.setPy(q0*sqrt(1.-c*c)*sin(phi));
+		    q.setPz(q0*c);
+		    qmoms.push_back(q);
+		    Q += q;
+	    }
+	    double b1, b2, b3, x, gamma, a, M;
+	    M = Q.mass();
+	    //cout<<Q.mass2()<<endl;
+	    b1 = -Q.px()/M;
+	    b2 = -Q.py()/M;
+	    b3 = -Q.pz()/M;
+	    x = momin.mass()/M;
+	    //cout<<"w = "<<momin.mass()<<endl;
+	    gamma = Q.E()/M;
+	    a = 1./(1.+gamma);
+	    vector<FourMomentum> pmoms;
+	    FourMomentum ptot;
+	    for (int i=0; i<n; i++) {
+		    double bdotq(b1*qmoms[i].px() + b2*qmoms[i].py() + b3*qmoms[i].pz());
+		    FourMomentum p;
+		    p.setE(x*(gamma*qmoms[i].E() + bdotq));
+		    p.setPx(x*(qmoms[i].px() + b1*qmoms[i].E() + a*bdotq*b1));
+		    p.setPy(x*(qmoms[i].py() + b2*qmoms[i].E() + a*bdotq*b2));
+		    p.setPz(x*(qmoms[i].pz() + b3*qmoms[i].E() + a*bdotq*b3));
+		    p = cms_boost.transform(p);
+		    pmoms.push_back(p);
+		    ptot += p;
+	    }
+	    //cout<<momin<<endl;
+	    //cout<<ptot<<endl;
+	    //cout<<n<<endl;
+	    //for (int i=0; i<n; i++) cout<<pmoms[i]<<endl;
+	    return pmoms;
+    }
+    
         
         
     /// 4-momentum adapter
     FourMomentum Get4Mom(PseudoJet pjet){
         FourMomentum mom(pjet.E(), pjet.px(), pjet.py(), pjet.pz());
         return mom;
     }
     
     /// Perform the per-event analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
 
       PseudoJets pevent, pjets;
 
 //      PseudoJets evnorec;
       list<double> ptsubs;
 //cout<<"==============================\n";
         PseudoJets scatcens; 
         vector<FourMomentum> scafter;
         foreach (const HepMC::GenParticle* p, particles(event.genEvent())) {
             FourMomentum mom(p->momentum());
             if (fabs(mom.eta()) < 4.) {
+               if(p->status() == 1) {
+                   PseudoJet pjet(mom.px(),mom.py(),mom.pz(),mom.E());
+                   pevent.push_back(pjet);
+               }
                if (p->status() == 3) {
+                   _h_pt_sc_bef->fill(mom.pT(),weight);
 #if MODE==0
                    PseudoJet pjet(mom.px(),mom.py(),mom.pz(),mom.E());
                    scatcens.push_back(pjet);
 #endif
-                   _h_pt_sc_bef->fill(mom.pT(),weight);
                }
+               if(p->status() == 4) {
 #if MODE==0
-               if(p->status() != 3) {
                    PseudoJet pjet(mom.px(),mom.py(),mom.pz(),mom.E());
                    pevent.push_back(pjet);
-               }
+                   scafter.push_back(mom);
+                   _h_pt_sc_aft->fill(mom.pT(),weight);
+		     //if (mom.mass() < 0.32) cout<<mom.mass()<<"  "<<mom<<endl;
+		     /*int npart(int(mom.E()));
+		     if (npart > 1 && mom.mass() > 1e-6) {
+			      vector<FourMomentum> newparts;
+			      newparts = Rambo(mom,npart);
+			      for (size_t i=1; i<newparts.size(); i++) {
+					if (fabs(newparts[i].eta()) < 4.) {
+						PseudoJet pjet(newparts[i].px(),newparts[i].py(),newparts[i].pz(),newparts[i].E());
+						pevent.push_back(pjet);
+						scafter.push_back(newparts[i]);
+						_h_pt_sc_aft->fill(newparts[i].pT(),weight);
+					}
+			      }
+		     }
+		     else {
+                           PseudoJet pjet(mom.px(),mom.py(),mom.pz(),mom.E());
+                           pevent.push_back(pjet);
+                           scafter.push_back(mom);
+			      _h_pt_sc_aft->fill(mom.pT(),weight);
+		     }*/
+		     /*FourMomentum mom1,mom2;
+		     splitParticle(mom,mom1,mom2);
+                   PseudoJet pjet1(mom1.px(),mom1.py(),mom1.pz(),mom1.E());
+                   pevent.push_back(pjet1);
+                   scafter.push_back(mom1);
+                   _h_pt_sc_aft->fill(mom1.pT(),weight);
+		     if (mom1 != mom) {
+                     PseudoJet pjet2(mom2.px(),mom2.py(),mom2.pz(),mom2.E());
+                     pevent.push_back(pjet2);
+                     scafter.push_back(mom2);
+                   _h_pt_sc_aft->fill(mom2.pT(),weight);
+		     }*/
 #else
-               if(p->status() == 1) {
-                   PseudoJet pjet(mom.px(),mom.py(),mom.pz(),mom.E());
-                   pevent.push_back(pjet);
-               }
-#endif
-               if (p->status() == 4) {
                    _h_pt_sc_aft->fill(mom.pT(),weight);
-#if MODE==0
-                   scafter.push_back(mom);
-#endif                   
+#endif
                }
-               /*if (p->status() == 1) {
-                   PseudoJet pjet(mom.px(),mom.py(),mom.pz(),mom.E());
-                   evnorec.push_back(pjet);
-               }*/
             }
         }
 
       for (size_t k = 0; k < _njetRbins; ++k) {
       
       JetDefinition jet_def(antikt_algorithm, _jetRs[k]);
+      //ClusterSequenceArea cs(pevent, jet_def, _area_def);
       ClusterSequence cs(pevent, jet_def);
       pjets = sorted_by_pt(cs.inclusive_jets(50.0));
       
       foreach (PseudoJet pjet, pjets) {
-         if (fabs(pjet.eta()) < 2.5) {
+         if (fabs(pjet.eta()) < 2.) {
+		  
+		  // find out whether jet is well separated from other jets
+		  bool sep(true);
+		  if (pjets.size() > 1) {
+			  foreach (PseudoJet pjet2, pjets) {
+				  if (pjet2 == pjet) continue;
+				  if (deltaR(Get4Mom(pjet), Get4Mom(pjet2)) < 2.) sep = false;
+			  }
+		  }
+		  if (sep) {
+			vector<double> ptall, ptrec;
+			ptall.resize(20,0.0);
+			ptrec.resize(20,0.0);
+			foreach (PseudoJet part, pevent) {
+				double dR(deltaR(Get4Mom(part),Get4Mom(pjet)));
+				if (dR < 1.) {
+					int bin;
+					bin = int(dR/0.05);
+					ptall[bin]+=part.pt();
+				}
+			}
+			foreach (FourMomentum sc, scafter) {
+				double dR(deltaR(sc,Get4Mom(pjet)));
+				if (dR < 1.) {
+					int bin;
+					bin = int(dR/0.05);
+					ptrec[bin]+=sc.pT();
+				}
+			}
+			foreach (PseudoJet sub, scatcens) {
+				double dR(deltaR(Get4Mom(sub),Get4Mom(pjet)));
+				if (dR < 1.) {
+					int bin;
+					bin = int(dR/0.05);
+					ptall[bin]-=sub.pt();
+					ptrec[bin]-=sub.pt();
+				}
+			}
+			for (size_t i=0; i<20; ++i) {
+				_p_ptvsdR_all->fill((i+0.5)*0.05, ptall[i],weight);
+				_p_ptvsdR_rec->fill((i+0.5)*0.05, ptrec[i],weight);
+				_p_ptvsdR_rat->fill((i+0.5)*0.05, (ptall[i] > 0.?ptrec[i]/ptall[i]:0.),weight);
+			}
+		  }
+		  
 
              map<PseudoJet, PseudoJet, PJetComp> scmap;
              FourMomentum jetsub  = SubtractJetMom(pjet, &scatcens, scmap);
              double ptsub;
-             if (jetsub.E() < 0. || deltaR(jetsub.eta(), jetsub.phi(), Get4Mom(pjet).eta(), Get4Mom(pjet).phi()) > 1.) ptsub = 0.;
+             if (jetsub.E() < 0. || deltaR(jetsub.eta(), jetsub.phi(ZERO_2PI), Get4Mom(pjet).eta(), Get4Mom(pjet).phi(ZERO_2PI)) > 1.) ptsub = 0.;
              else ptsub = jetsub.pT();
 
              if (ptsub < 50.) continue;
              _h_jetpt[k]->fill(ptsub, weight);
              //ptsubs.push_back(ptsub);
              
              int ptbin(-1);
              for (size_t l = 0; l < _nptbins; ++l) {
       	        if (ptsub >= _ptedges[l] && ptsub < _ptedges[l+1]) ptbin=l;
              }
              if (ptbin < 0) continue;
             
              double g;
              g = Girth(pjet, jetsub, &scatcens, scmap);
              _h_girth[k]->fill(g,weight);
 
              int gbin(-1);
              for (size_t j = 0; j < _ngirthbins; ++j) {
       	        if (g >= _girthedges[j]*_jetRs[k] && g < _girthedges[j+1]*_jetRs[k]) gbin=j;
              }
 
              double zg(0.), dR(0.), gsj(0.);
              int Nstep(0);
-             PseudoJet sd_pjet = SoftDrop(pjet, &scatcens, scmap,zg,dR,Nstep,gsj);
+             PseudoJet sd_pjet = SoftDrop(pjet, &scatcens, scmap,zg,dR,Nstep,gsj,weight);
 
              if (sd_pjet != 0) {
                 _h_grptratio[k]->fill(sd_pjet.pt()/pjet.pt(),weight);
                 _h_zg[k]->fill(zg,weight);
                 _h_deltar[k]->fill(dR,weight);
                 _h_nstep[k]->fill(Nstep,weight);
-                if (dR > 0.1) {
+		  _h_zg_dR_2d->fill(zg,dR,weight);
+		  _h_zg_dR_pass_2d->fill(zg,dR,weight);
+		  int zgbin(-1), dRbin(-1);
+		  for (size_t j = 0; j < _nzgbins; ++j) {
+		    if (zg >= _zgbins[j] && zg < _zgbins[j+1]) zgbin=j;
+		    if (dR >= _dRbins[j] && dR < _dRbins[j+1]) dRbin=j;
+		  }
+		  if (zgbin >= 0) _h_dR_zgbins[zgbin][k]->fill(dR,weight);
+		  if (dRbin >= 0) _h_zg_dRbins[dRbin][k]->fill(zg,weight);
+		  bool passdRcut(false);
+                if (dR > 0.1) passdRcut = true;
+		  if (passdRcut) {
                     _h_zgdrcut[k]->fill(zg,weight);
                     _h_nstepdrcut[k]->fill(Nstep,weight);
                     if (Nstep == 0) _h_zgdrcutnstep0[k]->fill(zg,weight);
                     if (gbin >= 0) _h_zg_girth[gbin][k]->fill(zg,weight);
-
-                    PseudoJet subjet1, subjet2;
-                    if (sd_pjet.has_parents(subjet1,subjet2)){
-                        FourMomentum mom1, mom2;
-                        mom1 = SubtractJetMom(subjet1, &scatcens, scmap);
-                        mom2 = SubtractJetMom(subjet2, &scatcens, scmap);
-                        double pt1, pt2, g1, g2;
-                        pt1 = mom1.pT();
-                        pt2 = mom2.pT();
-                        g1 = Girth(subjet1, mom1, &scatcens, scmap);
-                        g2 = Girth(subjet2, mom2, &scatcens, scmap);
+		  }
+                PseudoJet subjet1, subjet2;
+                if (sd_pjet.has_parents(subjet1,subjet2)){
+                    FourMomentum mom1, mom2;
+                    mom1 = SubtractJetMom(subjet1, &scatcens, scmap);
+                    mom2 = SubtractJetMom(subjet2, &scatcens, scmap);
+                    double pt1, pt2, g1, g2;//, area1, area2;
+                    pt1 = mom1.pT();
+                    pt2 = mom2.pT();
+                    g1 = Girth(subjet1, mom1, &scatcens, scmap);
+                    g2 = Girth(subjet2, mom2, &scatcens, scmap);
+		      //area1 = subjet1.area();
+		      //area2 = subjet2.area();
+		      if (passdRcut) {
                         if (pt1 > pt2) {
                             _p_girth_lead_zg[k]->fill(zg,g1,weight);
                             _p_girth_subl_zg[k]->fill(zg,g2,weight);
-                        }
+			       //_p_area_lead_zg[k]->fill(zg,area1,weight);
+			       //_p_area_subl_zg[k]->fill(zg,area2,weight);
+		          }
                         else {
                             _p_girth_lead_zg[k]->fill(zg,g2,weight);
-                            _p_girth_subl_zg[k]->fill(zg,g1,weight);
-                        }                            
+			       _p_girth_subl_zg[k]->fill(zg,g1,weight);
+			       //_p_area_lead_zg[k]->fill(zg,area2,weight);
+			       //_p_area_subl_zg[k]->fill(zg,area1,weight);
+			   }
+		      }
 #if MODE==0                    
-                        double frac1, frac2,ptfrac1,ptfrac2;
-                        frac1 = RecEnFrac(subjet1, mom1, scafter, scmap);
-                        frac2 = RecEnFrac(subjet2, mom2, scafter, scmap);
-                        ptfrac1 = RecPtFrac(subjet1, mom1, scafter, scmap);
-                        ptfrac2 = RecPtFrac(subjet2, mom2, scafter, scmap);
-                        if (pt1 > pt2) {
+                    double frac1, frac2,ptfrac1,ptfrac2;
+                    frac1 = RecEnFrac(subjet1, mom1, scafter, scmap);
+                    frac2 = RecEnFrac(subjet2, mom2, scafter, scmap);
+		      ptfrac1 = RecPtFrac(subjet1, mom1, scafter, scmap);
+                    ptfrac2 = RecPtFrac(subjet2, mom2, scafter, scmap);
+                    if (pt1 > pt2) {
+			   if (passdRcut) {   
                             _p_recen_lead_zg[k]->fill(zg,frac1,weight);
                             _p_recen_sublead_zg[k]->fill(zg,frac2,weight);
-                            _p_recpt_lead_zg[k]->fill(zg,ptfrac1,weight);
-                            _p_recpt_sublead_zg[k]->fill(zg,ptfrac2,weight);
+			       _p_recpt_lead_zg[k]->fill(zg,ptfrac1,weight);
+				_p_recpt_sublead_zg[k]->fill(zg,ptfrac2,weight);
                             _p_recpt_abs_lead_zg[k]->fill(zg,ptfrac1*pt1,weight);
                             _p_recpt_abs_sublead_zg[k]->fill(zg,ptfrac2*pt2,weight);
                         }
-                        else {
+			   _p_recpt_all_lead_zg[k]->fill(zg,ptfrac1,weight);
+			   _p_recpt_all_sublead_zg[k]->fill(zg,ptfrac2,weight);
+			   _p_recpt_all_abs_lead_zg[k]->fill(zg,ptfrac1*pt1,weight);
+			   _p_recpt_all_abs_sublead_zg[k]->fill(zg,ptfrac2*pt2,weight);
+		      }
+		      else {
+		          if (passdRcut) {
                             _p_recen_lead_zg[k]->fill(zg,frac2,weight);
                             _p_recen_sublead_zg[k]->fill(zg,frac1,weight);
                             _p_recpt_lead_zg[k]->fill(zg,ptfrac2,weight);
                             _p_recpt_sublead_zg[k]->fill(zg,ptfrac1,weight);
                             _p_recpt_abs_lead_zg[k]->fill(zg,ptfrac2*pt2,weight);
                             _p_recpt_abs_sublead_zg[k]->fill(zg,ptfrac1*pt1,weight);
                         }
+			   _p_recpt_all_lead_zg[k]->fill(zg,ptfrac2,weight);
+			   _p_recpt_all_sublead_zg[k]->fill(zg,ptfrac1,weight);
+			   _p_recpt_all_abs_lead_zg[k]->fill(zg,ptfrac2*pt2,weight);
+			   _p_recpt_all_abs_sublead_zg[k]->fill(zg,ptfrac1*pt1,weight);
+		      }
+		      FourMomentum mom;
+		      mom = SubtractJetMom(pjet, &scatcens, scmap);
+                    double ptfrac;
+		      ptfrac = RecPtFrac(pjet,mom,scafter,scmap);
+		      if (passdRcut) {
+		          _p_recpt_jet_zg[k]->fill(zg,ptfrac,weight);
+		          _p_recpt_abs_jet_zg[k]->fill(zg,ptfrac*mom.pT(),weight);
+			   _h_recpt_jet[k]->fill(ptfrac,weight);
+			   _h_recpt_abs_jet[k]->fill(ptfrac*mom.pT(),weight);
+		      }
+		      _p_recpt_all_jet_zg[k]->fill(zg,ptfrac,weight);
+		      _p_recpt_all_abs_jet_zg[k]->fill(zg,ptfrac*mom.pT(),weight);
 #endif                    
-                    }
                 }
              }
              
          } 
       }
       
       
       /*ptsubs.sort();
       ptsubs.reverse();
       ClusterSequence cs2(evnorec, jet_def);
       PseudoJets pjets2 = sorted_by_pt(cs2.inclusive_jets(50.0));
       
       list<double>::iterator listit(ptsubs.begin());
       for (size_t i=0; i<min(ptsubs.size(),pjets2.size()); ++i){
           double deltapt;
           deltapt = (*listit - pjets2[i].pt())/(*listit + pjets2[i].pt());
           _h_deltapt[k]->fill(deltapt,weight);
           listit++;
       }*/
       
       }
       
     }
     
 
     /// Normalise histograms etc., after the run
     void finalize() {
         
         normalize(_h_pt_sc_bef); 
         normalize(_h_pt_sc_aft); 
         for (size_t k = 0; k < _njetRbins; ++k) {
             scale(_h_jetpt[k], crossSection()/sumOfWeights()); 
             normalize(_h_zg[k]); 
             normalize(_h_deltar[k]); 
             normalize(_h_nstep[k]); 
             normalize(_h_zgdrcut[k]); 
             normalize(_h_nstepdrcut[k]); 
             normalize(_h_zgdrcutnstep0[k]); 
             normalize(_h_grptratio[k]); 
             normalize(_h_girth[k]); 
+            normalize(_h_zg_all[k]); 
+            normalize(_h_dR_rej[k]); 
             for (size_t j = 0; j < _ngirthbins; ++j) {
                 normalize(_h_zg_girth[j][k]); 
             }
            //normalize(_h_deltapt[k]); 
-        /*for (size_t j = 0; j < _nptbins; ++j) {
-            normalize(_h_zg[j]); 
-            normalize(_h_nstep[j]); 
-        }*/
-        }
+            for (size_t j = 0; j < _nzgbins; ++j) {
+                normalize(_h_zg_dRbins[j][k]); 
+                normalize(_h_dR_zgbins[j][k]); 
+            }
+#if MODE==0
+            normalize(_h_recpt_jet[k]);
+            normalize(_h_recpt_abs_jet[k]);
+#endif
+	}
 
     }
 
 
 
   private:
 
-    vector<double> _ptedges, _jetRs, _girthedges;
-    size_t _nptbins, _njetRbins, _ngirthbins;
+    //AreaDefinition _area_def;
+
+    vector<double> _ptedges, _jetRs, _girthedges, _zgbins, _dRbins;
+    size_t _nptbins, _njetRbins, _ngirthbins, _nzgbins, _ndRbins;
     double _zcut, _beta;
     
     size_t _nphibins, _netabins;
 
     Histo1DPtr _h_pt_sc_bef;
     Histo1DPtr _h_pt_sc_aft;
+    Profile1DPtr _p_ptvsdR_all, _p_ptvsdR_rec, _p_ptvsdR_rat;
+    Histo2DPtr _h_zg_dR_2d, _h_zg_dR_pass_2d;
     Histo1DPtr _h_jetpt[1];
     //Histo1DPtr _h_zg[7];
     //Histo1DPtr _h_nstep[7];
     Histo1DPtr _h_zg[1];
     Histo1DPtr _h_deltar[1];
     Histo1DPtr _h_nstep[1];
     Histo1DPtr _h_zgdrcut[1];
     Histo1DPtr _h_nstepdrcut[1];
     Histo1DPtr _h_zgdrcutnstep0[1];
     Histo1DPtr _h_grptratio[1];
     Histo1DPtr _h_girth[1];
+    Histo1DPtr _h_zg_all[1];
+    Histo1DPtr _h_dR_rej[1];
     Histo1DPtr _h_zg_girth[4][1];
+    Histo1DPtr _h_zg_dRbins[4][1];
+    Histo1DPtr _h_dR_zgbins[4][1];
     Profile1DPtr _p_girth_lead_zg[1];
     Profile1DPtr _p_girth_subl_zg[1];
+    //Profile1DPtr _p_area_lead_zg[1], _p_area_subl_zg[1];
 #if MODE==0
     Profile1DPtr _p_recen_lead_zg[1];
     Profile1DPtr _p_recen_sublead_zg[1];
     Profile1DPtr _p_recpt_lead_zg[1];
     Profile1DPtr _p_recpt_sublead_zg[1];
     Profile1DPtr _p_recpt_abs_lead_zg[1];
     Profile1DPtr _p_recpt_abs_sublead_zg[1];
+    Profile1DPtr _p_recen_all_lead_zg[1];
+    Profile1DPtr _p_recen_all_sublead_zg[1];
+    Profile1DPtr _p_recpt_all_lead_zg[1];
+    Profile1DPtr _p_recpt_all_sublead_zg[1];
+    Profile1DPtr _p_recpt_all_abs_lead_zg[1];
+    Profile1DPtr _p_recpt_all_abs_sublead_zg[1];
+    Profile1DPtr _p_recpt_jet_zg[1];
+    Profile1DPtr _p_recpt_abs_jet_zg[1];
+    Profile1DPtr _p_recpt_all_jet_zg[1];
+    Profile1DPtr _p_recpt_all_abs_jet_zg[1];
+    Histo1DPtr _h_recpt_jet[1];
+    Histo1DPtr _h_recpt_abs_jet[1];
 #endif
     //Histo1DPtr _h_deltapt[2];
 
 
   };
 
 
 
   // The hook for the plugin system
 #if MODE==0
   DECLARE_RIVET_PLUGIN(MC_SOFTDROP_4MOMSUB);
 #else
   DECLARE_RIVET_PLUGIN(MC_SOFTDROP_NOREC);
 #endif
 }
Index: trunk/code/ATLAS_2014_I1300152_4MOMSUB.yoda
===================================================================
--- trunk/code/ATLAS_2014_I1300152_4MOMSUB.yoda	(revision 0)
+++ trunk/code/ATLAS_2014_I1300152_4MOMSUB.yoda	(revision 452)
@@ -0,0 +1,1440 @@
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB_4MOMSUB/d06-x01-y07
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d06-x01-y07
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.083066e+00	5.635186e-02	9.803626e-02
+3.111899e+00	4.448028e-01	4.448028e-01	8.016450e-01	3.659074e-02	9.632093e-02
+4.149868e+00	5.931660e-01	5.931660e-01	6.013213e-01	1.973869e-02	7.676178e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.480562e-01	1.180333e-02	5.719387e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.164973e-01	8.337622e-03	3.803439e-02
+9.841483e+00	1.406703e+00	1.406703e+00	2.206025e-01	5.828233e-03	1.997105e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.400461e-01	2.785391e-03	9.651644e-03
+1.750161e+01	2.501612e+00	2.501612e+00	8.656407e-02	2.285576e-03	2.335632e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.971875e-02	6.622681e-04	6.641676e-04
+3.112401e+01	4.448745e+00	4.448745e+00	2.600896e-02	1.354348e-03	7.014633e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.247519e-02	1.264959e-03	3.363849e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.235976e-03	8.341495e-04	1.774649e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.774985e-03	3.413658e-04	6.005767e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.638162e-04	9.661307e-05	6.270803e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d06-x01-y06
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d06-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.151227e+00	5.270690e-02	1.041990e-01
+3.111899e+00	4.448028e-01	4.448028e-01	8.693235e-01	2.298139e-02	1.043929e-01
+4.149868e+00	5.931660e-01	5.931660e-01	6.306895e-01	1.254730e-02	8.046705e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.167423e-01	1.101924e-02	5.316517e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.064054e-01	6.097484e-03	3.451944e-02
+9.841483e+00	1.406703e+00	1.406703e+00	2.079422e-01	4.142618e-03	2.035239e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.355806e-01	2.698061e-03	1.032008e-02
+1.750161e+01	2.501612e+00	2.501612e+00	8.380387e-02	2.756343e-03	2.834585e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.878021e-02	1.289020e-03	9.818150e-04
+3.112401e+01	4.448745e+00	4.448745e+00	2.551799e-02	1.650589e-03	6.877824e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.257078e-02	1.274526e-03	3.389626e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.491668e-03	9.061841e-04	1.857821e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.899326e-03	3.654590e-04	9.062889e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.996307e-04	1.040843e-04	3.090155e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d06-x01-y05
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d06-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.231865e+00	4.835530e-02	1.115878e-01
+3.111899e+00	4.448028e-01	4.448028e-01	8.937112e-01	2.366500e-02	1.072879e-01
+4.149868e+00	5.931660e-01	5.931660e-01	6.440624e-01	1.702990e-02	8.216513e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.519256e-01	1.489822e-02	5.764222e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.108227e-01	8.223655e-03	3.499389e-02
+9.841483e+00	1.406703e+00	1.406703e+00	2.053831e-01	6.774006e-03	1.858949e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.321364e-01	2.633141e-03	1.005076e-02
+1.750161e+01	2.501612e+00	2.501612e+00	8.501202e-02	2.248761e-03	2.290340e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.915428e-02	9.800580e-04	1.324283e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.588587e-02	1.835034e-03	5.208656e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.266718e-02	1.284491e-03	3.414166e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.388002e-03	8.286225e-04	1.452838e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.875940e-03	3.506268e-04	6.365785e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.836994e-04	1.058536e-04	2.310020e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d06-x01-y04
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d06-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.292028e+00	7.539191e-02	1.170377e-01
+3.111899e+00	4.448028e-01	4.448028e-01	9.187728e-01	3.024861e-02	1.103483e-01
+4.149868e+00	5.931660e-01	5.931660e-01	6.319081e-01	2.080762e-02	8.061456e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.288424e-01	8.541035e-03	5.472233e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.009117e-01	5.984862e-03	3.613128e-02
+9.841483e+00	1.406703e+00	1.406703e+00	2.069581e-01	5.451984e-03	2.026369e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.331497e-01	4.368550e-03	9.185110e-03
+1.750161e+01	2.501612e+00	2.501612e+00	8.285244e-02	1.641051e-03	2.810543e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.887446e-02	6.480568e-04	6.564884e-04
+3.112401e+01	4.448745e+00	4.448745e+00	2.643489e-02	1.543214e-03	5.323650e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.310967e-02	1.249082e-03	3.536440e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.765439e-03	9.184717e-04	2.352599e-04
+7.381112e+01	1.055027e+01	1.055027e+01	2.034338e-03	3.912631e-04	9.714270e-05
+9.843070e+01	1.406930e+01	1.406930e+01	5.245384e-04	1.174914e-04	3.618127e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d06-x01-y03
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d06-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.301936e+00	5.942632e-02	1.179669e-01
+3.111899e+00	4.448028e-01	4.448028e-01	9.508729e-01	3.120777e-02	1.213839e-01
+4.149868e+00	5.931660e-01	5.931660e-01	6.496281e-01	1.710282e-02	8.784219e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.379379e-01	8.736580e-03	5.587467e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.012006e-01	5.962554e-03	3.393681e-02
+9.841483e+00	1.406703e+00	1.406703e+00	2.017007e-01	3.995068e-03	1.681381e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.297666e-01	1.717792e-03	9.882213e-03
+1.750161e+01	2.501612e+00	2.501612e+00	8.293244e-02	1.642182e-03	2.243359e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.924926e-02	1.296590e-03	6.643127e-04
+3.112401e+01	4.448745e+00	4.448745e+00	2.628440e-02	1.532768e-03	5.303836e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.277665e-02	1.218514e-03	3.446603e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.507592e-03	8.464410e-04	2.247383e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.956359e-03	3.656399e-04	9.346491e-05
+9.843070e+01	1.406930e+01	1.406930e+01	5.392506e-04	1.151754e-04	2.954944e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d06-x01-y02
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d06-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.383872e+00	8.067828e-02	1.353958e-01
+3.111899e+00	4.448028e-01	4.448028e-01	9.973186e-01	3.273212e-02	1.273192e-01
+4.149868e+00	5.931660e-01	5.931660e-01	6.546098e-01	2.147730e-02	8.851581e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.383607e-01	1.153838e-02	5.595073e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.014931e-01	9.893411e-03	3.170849e-02
+9.841483e+00	1.406703e+00	1.406703e+00	2.005524e-01	5.277780e-03	1.814982e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.290285e-01	2.555657e-03	8.906215e-03
+1.750161e+01	2.501612e+00	2.501612e+00	8.356888e-02	2.200581e-03	2.835330e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.995925e-02	9.895387e-04	1.009250e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.756812e-02	1.607192e-03	7.450965e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.349039e-02	1.286584e-03	4.563773e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.738154e-03	8.818481e-04	2.743751e-04
+7.381112e+01	1.055027e+01	1.055027e+01	2.024699e-03	3.894092e-04	8.266536e-05
+9.843070e+01	1.406930e+01	1.406930e+01	5.433859e-04	1.160754e-04	3.743911e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d06-x01-y01
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d06-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.357749e+00	7.060045e-02	1.229826e-01
+3.111899e+00	4.448028e-01	4.448028e-01	1.011685e+00	4.617792e-02	1.215454e-01
+4.149868e+00	5.931660e-01	5.931660e-01	6.640469e-01	2.178692e-02	8.977925e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.358653e-01	1.429808e-02	5.564046e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.017842e-01	1.183968e-02	2.956684e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.980843e-01	5.216062e-03	1.794335e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.274406e-01	3.354448e-03	1.061730e-02
+1.750161e+01	2.501612e+00	2.501612e+00	8.090374e-02	1.613535e-03	2.178728e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.869013e-02	1.287434e-03	6.493237e-04
+3.112401e+01	4.448745e+00	4.448745e+00	2.686780e-02	1.737337e-03	5.404704e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.350341e-02	1.368948e-03	3.638779e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.859889e-03	9.988944e-04	2.388071e-04
+7.381112e+01	1.055027e+01	1.055027e+01	2.040237e-03	3.923792e-04	1.118595e-04
+9.843070e+01	1.406930e+01	1.406930e+01	5.331285e-04	1.138561e-04	4.441265e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d10-x01-y06
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d10-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.052452e+00	2.899787e-02	3.240938e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.069510e+00	2.388060e-02	2.558635e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.016631e+00	2.899787e-02	2.729211e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.262260e-01	2.388060e-02	3.240938e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.569296e-01	2.899787e-02	2.729211e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.518124e-01	2.729211e-02	2.899787e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.603412e-01	3.411514e-02	3.411514e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.808102e-01	3.240938e-02	3.070362e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.927505e-01	3.411514e-02	3.240938e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.688699e-01	4.093817e-02	3.923241e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.016631e+00	4.605544e-02	4.605544e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.062687e+00	5.970149e-02	5.970149e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.083156e+00	9.381663e-02	9.381663e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.120682e+00	1.620469e-01	1.620469e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d09-x01-y01
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d09-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.256111e+00	7.148587e-02	8.510988e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.167488e+00	4.425532e-02	5.617720e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.014185e+00	4.595395e-02	6.468784e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.647114e-01	2.723404e-02	2.723404e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.628975e-01	2.553191e-02	2.723754e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.253388e-01	2.553191e-02	2.383328e-02
+8.984721e-02	1.029240e-02	1.029240e-02	8.741631e-01	2.553191e-02	2.723754e-02
+1.130952e-01	1.295555e-02	1.295555e-02	8.842641e-01	3.234043e-02	3.404255e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.369182e-01	2.723404e-02	2.552842e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.674446e-01	3.063480e-02	2.893617e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.006482e+00	4.085456e-02	3.914894e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.001263e+00	3.914544e-02	3.914544e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.014769e+00	3.744331e-02	4.254970e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.050402e+00	5.276596e-02	5.106732e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.108162e+00	7.829787e-02	7.659924e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.159114e+00	1.259574e-01	1.259609e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.201555e+00	2.025497e-01	2.059574e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d09-x01-y02
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d09-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.211915e+00	3.574468e-02	9.531915e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.142128e+00	4.085106e-02	6.127660e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.011064e+00	2.893617e-02	5.446809e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.463830e-01	2.893617e-02	3.574468e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.634043e-01	2.893617e-02	2.553191e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.480851e-01	2.893617e-02	2.723404e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.055319e-01	3.063830e-02	3.063830e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.055319e-01	3.404255e-02	3.404255e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.497872e-01	2.723404e-02	2.553191e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.753191e-01	3.063830e-02	3.063830e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.009362e+00	4.085106e-02	3.914894e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.017872e+00	4.085106e-02	4.085106e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.031489e+00	4.085106e-02	4.595745e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.055319e+00	5.276596e-02	5.276596e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.092766e+00	7.829787e-02	8.000000e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.120000e+00	1.191489e-01	1.191489e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.142128e+00	1.957447e-01	1.957447e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d09-x01-y03
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d09-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.162553e+00	3.404255e-02	7.829787e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.113191e+00	3.914894e-02	4.595745e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.016170e+00	2.893617e-02	4.085106e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.872340e-01	3.063830e-02	2.723404e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.770213e-01	2.723404e-02	2.723404e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.259574e-01	2.382979e-02	2.553191e-02
+8.984721e-02	1.029240e-02	1.029240e-02	8.936170e-01	3.063830e-02	2.893617e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.106383e-01	3.404255e-02	3.404255e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.514894e-01	2.382979e-02	2.723404e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.531915e-01	2.893617e-02	3.234043e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.736170e-01	4.085106e-02	3.914894e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.736170e-01	3.914894e-02	3.914894e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.838298e-01	3.914894e-02	4.595745e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.021277e+00	5.446809e-02	5.106383e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.089362e+00	7.829787e-02	7.829787e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.159149e+00	1.242553e-01	1.276596e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.222128e+00	2.110638e-01	2.076596e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d09-x01-y04
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d09-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.166738e+00	3.582090e-02	6.311301e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.069510e+00	3.582090e-02	3.752665e-02
+3.578878e-02	4.099764e-03	4.099764e-03	9.671642e-01	2.899787e-02	4.264392e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.552239e-01	2.899787e-02	2.899787e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.808102e-01	2.729211e-02	2.899787e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.620469e-01	2.899787e-02	2.729211e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.279318e-01	3.240938e-02	3.411514e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.296375e-01	3.582090e-02	3.411514e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.432836e-01	2.899787e-02	2.729211e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.586354e-01	3.240938e-02	3.240938e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.961620e-01	4.093817e-02	4.093817e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.961620e-01	4.093817e-02	4.093817e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.011514e+00	4.093817e-02	4.093817e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.060981e+00	5.458422e-02	5.458422e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.122388e+00	8.017058e-02	8.187633e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.173561e+00	1.313433e-01	1.330490e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.219616e+00	2.149254e-01	2.149254e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d09-x01-y05
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d09-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.130917e+00	3.411514e-02	3.923241e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.078038e+00	3.923241e-02	3.923241e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.002985e+00	3.582090e-02	4.093817e-02
+4.504913e-02	5.160577e-03	5.160577e-03	1.009808e+00	3.070362e-02	3.070362e-02
+5.670558e-02	6.495875e-03	6.495875e-03	1.014925e+00	3.240938e-02	3.240938e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.637527e-01	2.899787e-02	2.729211e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.057569e-01	3.411514e-02	3.582090e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.211087e-01	3.582090e-02	3.752665e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.569296e-01	3.240938e-02	2.899787e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.756930e-01	3.582090e-02	3.752665e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.927505e-01	4.434968e-02	4.264392e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.569296e-01	4.093817e-02	4.434968e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.535181e-01	4.093817e-02	3.923241e-02
+4.498632e-01	5.153382e-02	5.153382e-02	9.671642e-01	5.799574e-02	5.628998e-02
+5.662652e-01	6.486819e-02	6.486819e-02	9.995736e-01	8.017058e-02	7.846482e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.030277e+00	1.228145e-01	1.211087e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.059275e+00	1.978678e-01	1.978678e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d09-x01-y06
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d09-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.115565e+00	6.993603e-02	5.117271e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.052452e+00	4.093817e-02	4.264392e-02
+3.578878e-02	4.099764e-03	4.099764e-03	9.773987e-01	3.411514e-02	3.923241e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.466951e-01	3.582090e-02	3.582090e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.654584e-01	3.070362e-02	3.070362e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.808102e-01	3.582090e-02	3.411514e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.535181e-01	3.923241e-02	3.923241e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.535181e-01	3.752665e-02	3.923241e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.569296e-01	3.240938e-02	3.411514e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.688699e-01	3.923241e-02	4.093817e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.008102e+00	4.946695e-02	5.458422e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.825160e-01	4.776119e-02	4.605544e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.791045e-01	4.605544e-02	4.946695e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.030277e+00	6.652452e-02	6.652452e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.096802e+00	9.211087e-02	9.381663e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.141151e+00	1.535181e-01	1.518124e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.178678e+00	2.422175e-01	2.439232e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d10-x01-y01
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d10-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.274200e+00	4.093817e-02	7.505330e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.229851e+00	4.946695e-02	4.946695e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.052452e+00	2.558635e-02	3.240938e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.535181e-01	2.046908e-02	2.388060e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.245203e-01	2.388060e-02	1.876333e-02
+9.841483e+00	1.406703e+00	1.406703e+00	8.938166e-01	2.046908e-02	2.046908e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.194030e-01	2.388060e-02	2.729211e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.432836e-01	2.388060e-02	2.217484e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.705757e-01	2.388060e-02	2.388060e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.023454e+00	2.899787e-02	3.582090e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.086567e+00	4.434968e-02	4.264392e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.118977e+00	5.287846e-02	5.287846e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.153092e+00	7.846482e-02	7.675906e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.175267e+00	1.364606e-01	1.364606e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d07-x01-y04
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d07-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.168443e+00	3.752665e-02	6.993603e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.062687e+00	3.923241e-02	4.093817e-02
+3.578878e-02	4.099764e-03	4.099764e-03	9.944563e-01	3.240938e-02	3.240938e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.637527e-01	2.899787e-02	3.070362e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.620469e-01	3.582090e-02	3.582090e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.654584e-01	3.240938e-02	3.240938e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.501066e-01	3.240938e-02	3.411514e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.194030e-01	3.070362e-02	3.070362e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.245203e-01	3.582090e-02	3.411514e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.654584e-01	4.093817e-02	4.093817e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.018337e+00	5.117271e-02	4.946695e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.026866e+00	4.605544e-02	4.605544e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.045629e+00	6.140725e-02	5.970149e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.076333e+00	7.505330e-02	7.675906e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.113859e+00	9.211087e-02	9.211087e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.139446e+00	1.347548e-01	1.347548e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.166738e+00	2.081023e-01	2.081023e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d07-x01-y05
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d07-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.110448e+00	3.752665e-02	3.923241e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.096802e+00	4.264392e-02	4.264392e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.047335e+00	3.582090e-02	3.752665e-02
+4.504913e-02	5.160577e-03	5.160577e-03	1.014925e+00	3.240938e-02	3.240938e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.876333e-01	3.923241e-02	3.582090e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.535181e-01	3.582090e-02	3.411514e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.296375e-01	3.582090e-02	3.411514e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.296375e-01	3.411514e-02	3.411514e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.620469e-01	3.582090e-02	3.752665e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.944563e-01	4.434968e-02	4.264392e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.008102e+00	4.946695e-02	5.117271e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.773987e-01	4.605544e-02	4.605544e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.893390e-01	5.970149e-02	5.970149e-02
+4.498632e-01	5.153382e-02	5.153382e-02	9.978678e-01	7.505330e-02	7.505330e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.028571e+00	8.699360e-02	8.528785e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.055864e+00	1.296375e-01	1.279318e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.086567e+00	1.995736e-01	1.978678e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d07-x01-y02
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d07-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.219616e+00	3.752665e-02	1.057569e-01
+2.843201e-02	3.257012e-03	3.257012e-03	1.147974e+00	4.264392e-02	5.628998e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.030277e+00	3.070362e-02	4.434968e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.705757e-01	2.729211e-02	2.729211e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.552239e-01	3.240938e-02	3.240938e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.381663e-01	3.070362e-02	2.899787e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.108742e-01	3.070362e-02	3.070362e-02
+1.130952e-01	1.295555e-02	1.295555e-02	8.955224e-01	2.729211e-02	2.729211e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.466951e-01	3.240938e-02	3.240938e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.893390e-01	4.093817e-02	3.923241e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.037100e+00	5.117271e-02	5.117271e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.050746e+00	4.434968e-02	4.434968e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.059275e+00	5.970149e-02	5.799574e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.064392e+00	7.334755e-02	7.164179e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.088273e+00	8.528785e-02	8.528785e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.110448e+00	1.194030e-01	1.159915e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.132623e+00	1.791045e-01	1.808102e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d07-x01-y03
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d07-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.155260e+00	3.582090e-02	7.846482e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.112504e+00	3.923241e-02	4.434618e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.028810e+00	3.411164e-02	3.411514e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.775248e-01	2.899787e-02	2.900137e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.603552e-01	3.240938e-02	3.240938e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.329510e-01	2.899787e-02	3.070362e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.021353e-01	3.070362e-02	2.900137e-02
+1.130952e-01	1.295555e-02	1.295555e-02	8.952002e-01	2.729211e-02	2.900137e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.377320e-01	3.582790e-02	3.411164e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.683235e-01	4.093466e-02	3.753366e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.012561e+00	4.946345e-02	4.946345e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.012449e+00	4.434968e-02	4.434968e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.012337e+00	5.799574e-02	5.799223e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.025871e+00	7.334405e-02	7.163829e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.063286e+00	8.528434e-02	8.528434e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.093877e+00	1.211122e-01	1.211052e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.122763e+00	1.825230e-01	1.825160e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d05-x01-y04
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d05-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.244456e+02	3.275202e+00	1.401034e+01
+2.843201e-02	3.257012e-03	3.257012e-03	9.342479e+01	3.063304e+00	1.191336e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.783690e+01	-9.106933e-01	1.019583e+01
+4.504913e-02	5.160577e-03	5.160577e-03	5.230361e+01	1.376544e+00	6.669661e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.900484e+01	7.724681e-01	4.681564e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.908743e+01	5.760596e-01	3.059659e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.140429e+01	7.018247e-01	1.782993e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.463669e+01	2.898711e-01	1.009205e+00
+1.423585e-01	1.630780e-02	1.630780e-02	9.876280e+00	2.599273e-01	3.348113e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.575859e+00	8.710982e-02	1.328623e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.123346e+00	1.085196e-01	8.331038e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.418742e+00	1.859899e-01	6.537792e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.372305e+00	1.552026e-01	1.842285e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.998090e-01	1.113856e-01	1.891564e-02
+5.662652e-01	6.486819e-02	6.486819e-02	3.081782e-01	6.576581e-02	1.905977e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.089092e-01	2.605038e-02	1.065608e-02
+8.972195e-01	1.027805e-01	1.027805e-01	2.365577e-02	6.248428e-03	3.016540e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d05-x01-y05
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d05-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.187356e+02	3.893219e+00	1.336750e+01
+2.843201e-02	3.257012e-03	3.257012e-03	9.656341e+01	2.541389e+00	1.231359e+01
+3.578878e-02	4.099764e-03	4.099764e-03	7.249286e+01	1.907892e+00	9.244157e+00
+4.504913e-02	5.160577e-03	5.160577e-03	5.478651e+01	1.441890e+00	6.986275e+00
+5.670558e-02	6.495875e-03	6.495875e-03	4.004730e+01	7.931134e-01	4.806685e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.888560e+01	7.602210e-01	2.826275e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.083480e+01	5.483375e-01	1.886550e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.482880e+01	3.902695e-01	1.022451e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.027637e+01	2.035175e-01	3.483745e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.796776e+00	2.228594e-01	1.837150e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.094734e+00	1.342622e-01	1.106795e-01
+2.839237e-01	3.252472e-02	3.252472e-02	2.338743e+00	2.225942e-01	9.546125e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.300637e+00	1.470973e-01	6.214497e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.501266e-01	1.034778e-01	2.653644e-02
+5.662652e-01	6.486819e-02	6.486819e-02	2.843967e-01	5.919420e-02	1.160832e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.011772e-01	2.420095e-02	5.543506e-03
+8.972195e-01	1.027805e-01	1.027805e-01	2.197634e-02	5.804825e-03	1.672435e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d05-x01-y06
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d05-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.179117e+02	6.124809e+00	1.327474e+01
+2.843201e-02	3.257012e-03	3.257012e-03	9.213275e+01	1.824635e+00	1.174860e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.962936e+01	1.832529e+00	8.879009e+00
+4.504913e-02	5.160577e-03	5.160577e-03	5.192533e+01	1.028351e+00	6.621424e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.924259e+01	1.032800e+00	4.418011e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.985601e+01	7.857607e-01	3.140504e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.124948e+01	5.592512e-01	1.924098e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.492360e+01	2.955531e-01	1.028987e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.020506e+01	2.021053e-01	4.165434e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.615941e+00	1.741206e-01	1.336722e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.176233e+00	1.369344e-01	8.437893e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.433485e+00	2.316114e-01	3.266893e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.317709e+00	1.490280e-01	3.561730e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.719677e-01	1.069542e-01	2.742793e-02
+5.662652e-01	6.486819e-02	6.486819e-02	2.978973e-01	6.357184e-02	1.842393e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.066892e-01	2.497636e-02	8.119222e-03
+8.972195e-01	1.027805e-01	1.027805e-01	2.332861e-02	6.276094e-03	2.626383e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d05-x01-y07
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d05-x01-y07
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.066577e+02	6.212212e+00	1.280162e+01
+2.843201e-02	3.257012e-03	3.257012e-03	8.790538e+01	3.447352e+00	1.120953e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.960879e+01	2.282401e+00	9.401452e+00
+4.504913e-02	5.160577e-03	5.160577e-03	5.402882e+01	1.421949e+00	6.889657e+00
+5.670558e-02	6.495875e-03	6.495875e-03	4.083230e+01	1.074639e+00	4.596984e+00
+7.137813e-02	8.176681e-03	8.176681e-03	3.024788e+01	5.990417e-01	3.181725e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.240712e+01	4.437600e-01	2.028920e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.594787e+01	3.158383e-01	1.099611e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.068950e+01	2.116994e-01	3.623800e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.838205e+00	1.799702e-01	1.848348e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.038105e+00	1.062762e-01	1.368940e-01
+2.839237e-01	3.252472e-02	3.252472e-02	2.384587e+00	1.979918e-01	4.817952e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.317319e+00	1.411679e-01	4.465785e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.497426e-01	9.976180e-02	3.559943e-02
+5.662652e-01	6.486819e-02	6.486819e-02	2.749091e-01	5.576312e-02	1.895508e-02
+7.127862e-01	8.165282e-02	8.165282e-02	9.586503e-02	2.293031e-02	6.609927e-03
+8.972195e-01	1.027805e-01	1.027805e-01	2.041012e-02	5.590079e-03	2.911602e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d05-x01-y01
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d05-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.331441e+02	7.754895e+00	1.498964e+01
+2.843201e-02	3.257012e-03	3.257012e-03	1.026568e+02	4.025851e+00	1.309060e+01
+3.578878e-02	4.099764e-03	4.099764e-03	7.066843e+01	2.771377e+00	9.544568e+00
+4.504913e-02	5.160577e-03	5.160577e-03	5.234998e+01	1.377765e+00	6.283318e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.903943e+01	1.027453e+00	4.685715e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.834701e+01	9.294696e-01	2.773578e+00
+8.984721e-02	1.029240e-02	1.029240e-02	1.990822e+01	5.239513e-01	1.802649e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.398162e+01	2.768978e-01	9.640374e-01
+1.423585e-01	1.630780e-02	1.630780e-02	9.819346e+00	1.944664e-01	3.328812e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.581690e+00	1.303465e-01	1.329801e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.210386e+00	1.380543e-01	1.138056e-01
+2.839237e-01	3.252472e-02	3.252472e-02	2.469800e+00	2.201174e-01	8.372756e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.355327e+00	1.532825e-01	5.532082e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.865579e-01	1.092765e-01	3.761654e-02
+5.662652e-01	6.486819e-02	6.486819e-02	3.064016e-01	6.698836e-02	2.331766e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.097350e-01	2.735386e-02	1.073688e-02
+8.972195e-01	1.027805e-01	1.027805e-01	2.399460e-02	6.802620e-03	3.059747e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d05-x01-y02
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d05-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.304687e+02	4.277936e+00	1.468843e+01
+2.843201e-02	3.257012e-03	3.257012e-03	1.012670e+02	4.617929e+00	1.291338e+01
+3.578878e-02	4.099764e-03	4.099764e-03	7.159598e+01	2.347559e+00	9.129789e+00
+4.504913e-02	5.160577e-03	5.160577e-03	5.268464e+01	1.727476e+00	6.718249e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.902789e+01	1.279685e+00	4.393840e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.852822e+01	9.354114e-01	2.583174e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.057704e+01	6.747001e-01	1.714082e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.435530e+01	5.629662e-01	8.878261e-01
+1.423585e-01	1.630780e-02	1.630780e-02	1.014923e+01	2.009996e-01	3.440644e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.757594e+00	1.778487e-01	1.365342e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.209143e+00	1.650683e-01	8.504386e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.485588e+00	2.063779e-01	1.187624e-01
+3.573889e-01	4.094048e-02	4.094048e-02	1.391550e+00	1.491226e-01	6.648879e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.909468e-01	1.099750e-01	3.785701e-02
+5.662652e-01	6.486819e-02	6.486819e-02	3.002448e-01	6.407281e-02	2.070198e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.061055e-01	2.591624e-02	8.838669e-03
+8.972195e-01	1.027805e-01	1.027805e-01	2.289364e-02	6.270284e-03	2.577413e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d05-x01-y03
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d05-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.236551e+02	4.054525e+00	1.392134e+01
+2.843201e-02	3.257012e-03	3.257012e-03	9.791759e+01	3.210618e+00	1.322487e+01
+3.578878e-02	4.099764e-03	4.099764e-03	7.157483e+01	1.417498e+00	9.666987e+00
+4.504913e-02	5.160577e-03	5.160577e-03	5.302143e+01	7.023702e-01	6.761196e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.927738e+01	5.203041e-01	4.714276e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.833027e+01	3.752886e-01	2.980014e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.029846e+01	2.688919e-01	1.837985e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.435106e+01	1.901072e-01	9.895102e-01
+1.423585e-01	1.630780e-02	1.630780e-02	1.007880e+01	1.996048e-01	3.416769e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.666107e+00	1.320184e-01	4.459623e-02
+2.255601e-01	2.583891e-02	2.583891e-02	4.124564e+00	1.085517e-01	8.333499e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.435643e+00	2.170732e-01	6.583475e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.336583e+00	1.432322e-01	4.531088e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.636541e-01	9.813965e-02	3.636164e-02
+5.662652e-01	6.486819e-02	6.486819e-02	2.942117e-01	5.967849e-02	1.819599e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.053693e-01	2.520366e-02	7.265247e-03
+8.972195e-01	1.027805e-01	1.027805e-01	2.273478e-02	6.116337e-03	2.224457e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d07-x01-y01
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d07-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.241791e+00	7.675906e-02	1.006397e-01
+2.843201e-02	3.257012e-03	3.257012e-03	1.166738e+00	4.264392e-02	5.287846e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.016631e+00	3.240938e-02	5.458422e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.688699e-01	2.729211e-02	2.899787e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.620469e-01	3.240938e-02	3.070362e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.347548e-01	2.899787e-02	3.070362e-02
+8.984721e-02	1.029240e-02	1.029240e-02	8.869936e-01	2.899787e-02	3.070362e-02
+1.130952e-01	1.295555e-02	1.295555e-02	8.801706e-01	2.729211e-02	2.729211e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.194030e-01	3.070362e-02	3.070362e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.688699e-01	3.923241e-02	3.752665e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.038806e+00	5.117271e-02	5.628998e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.035394e+00	4.264392e-02	4.434968e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.033689e+00	5.628998e-02	5.628998e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.054158e+00	7.164179e-02	7.164179e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.105330e+00	8.699360e-02	8.528785e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.147974e+00	1.211087e-01	1.211087e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.185501e+00	1.859275e-01	1.842217e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d02-x01-y03
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d02-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.060427e+00	4.835147e-02	8.066197e-02
+3.111899e+00	4.448028e-01	4.448028e-01	7.593731e-01	2.489908e-02	1.025427e-01
+4.149868e+00	5.931660e-01	5.931660e-01	5.259578e-01	1.723710e-02	8.310537e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.667265e-01	7.252761e-03	5.794086e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.591359e-01	5.126359e-03	3.696700e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.782902e-01	3.528005e-03	2.408011e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.178563e-01	1.559283e-03	1.326631e-02
+1.750161e+01	2.501612e+00	2.501612e+00	7.738958e-02	2.035503e-03	5.333266e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.598072e-02	9.133926e-04	1.240207e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.521855e-02	6.654947e-04	5.079481e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.243175e-02	9.574827e-04	3.342430e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.363267e-03	7.931078e-04	2.186336e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.807938e-03	3.667662e-04	8.628876e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.139845e-04	1.011103e-04	2.850976e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d02-x01-y02
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d02-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.082172e+00	5.620095e-02	9.787647e-02
+3.111899e+00	4.448028e-01	4.448028e-01	7.801294e-01	2.557122e-02	1.053703e-01
+4.149868e+00	5.931660e-01	5.931660e-01	5.296360e-01	1.736623e-02	7.960729e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.668349e-01	9.650499e-03	5.796512e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.609467e-01	6.862007e-03	3.722532e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.795361e-01	3.552658e-03	2.425180e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.210777e-01	2.392569e-03	1.363344e-02
+1.750161e+01	2.501612e+00	2.501612e+00	7.845215e-02	2.063451e-03	5.969866e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.755382e-02	1.250762e-03	1.283729e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.625567e-02	6.905772e-04	7.092315e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.320452e-02	9.352602e-04	4.462671e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.658793e-03	8.367019e-04	1.916401e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.894893e-03	3.844063e-04	6.401896e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.281454e-04	1.045780e-04	2.643361e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d02-x01-y01
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d02-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.104364e+00	5.735343e-02	9.192080e-02
+3.111899e+00	4.448028e-01	4.448028e-01	7.961270e-01	3.122142e-02	1.075209e-01
+4.149868e+00	5.931660e-01	5.931660e-01	5.369019e-01	2.104972e-02	8.069251e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.620846e-01	9.531441e-03	5.720043e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.575661e-01	6.777314e-03	3.673977e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.772102e-01	3.509545e-03	2.392862e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.187150e-01	2.349131e-03	1.424954e-02
+1.750161e+01	2.501612e+00	2.501612e+00	7.640959e-02	5.116008e-04	5.806624e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.662557e-02	9.223709e-04	1.259206e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.608890e-02	5.165326e-04	5.263710e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.312064e-02	1.090481e-03	3.533672e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.660499e-03	8.371427e-04	1.527418e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.882857e-03	3.919056e-04	7.680944e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.197903e-04	1.025337e-04	2.001843e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d02-x01-y07
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d02-x01-y07
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	8.965473e-01	5.225189e-02	6.813706e-02
+3.111899e+00	4.448028e-01	4.448028e-01	6.593723e-01	3.008951e-02	8.899713e-02
+4.149868e+00	5.931660e-01	5.931660e-01	5.149349e-01	2.019401e-02	7.739433e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.837967e-01	1.258431e-02	5.768189e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.803887e-01	5.549865e-03	3.999882e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.968113e-01	3.896657e-03	2.658035e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.292349e-01	3.399843e-03	1.454873e-02
+1.750161e+01	2.501612e+00	2.501612e+00	8.099143e-02	2.130680e-03	6.162607e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.812075e-02	9.556399e-04	1.296824e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.535725e-02	5.037137e-04	3.388350e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.200991e-02	8.507102e-04	2.413540e-04
+5.534942e+01	7.911430e+00	7.911430e+00	4.978086e-03	7.077219e-04	1.342134e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.601571e-03	3.163608e-04	5.425715e-05
+9.843070e+01	1.406930e+01	1.406930e+01	3.642952e-04	8.897284e-05	3.564403e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d02-x01-y06
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d02-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	9.459489e-01	4.325784e-02	7.187449e-02
+3.111899e+00	4.448028e-01	4.448028e-01	7.145097e-01	1.887859e-02	9.104548e-02
+4.149868e+00	5.931660e-01	5.931660e-01	5.254914e-01	1.045023e-02	8.297726e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.591449e-01	9.489235e-03	5.670582e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.712768e-01	5.399230e-03	4.075002e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.878920e-01	4.961367e-03	2.536145e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.242034e-01	2.469984e-03	1.397227e-02
+1.750161e+01	2.501612e+00	2.501612e+00	7.835897e-02	1.556576e-03	5.958534e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.718170e-02	1.244826e-03	1.594579e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.453306e-02	8.064037e-04	8.285659e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.233818e-02	1.025829e-03	3.321522e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.430447e-03	7.722152e-04	1.834990e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.818430e-03	3.784792e-04	6.142513e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.163868e-04	1.037901e-04	1.986344e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d02-x01-y05
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d02-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.004750e+00	3.951620e-02	7.635434e-02
+3.111899e+00	4.448028e-01	4.448028e-01	7.243160e-01	1.914163e-02	9.773978e-02
+4.149868e+00	5.931660e-01	5.931660e-01	5.291663e-01	1.741090e-02	7.948227e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.789345e-01	1.001624e-02	5.689755e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.677624e-01	7.077663e-03	4.021522e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.793769e-01	4.739450e-03	2.285234e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.209704e-01	2.409665e-03	1.450587e-02
+1.750161e+01	2.501612e+00	2.501612e+00	7.943441e-02	2.100092e-03	6.034579e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.719565e-02	1.552090e-03	1.270539e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.470449e-02	4.918296e-04	4.967490e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.177903e-02	9.069066e-04	4.795554e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.081699e-03	7.514702e-04	1.368319e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.724473e-03	3.498034e-04	7.018781e-05
+9.843070e+01	1.406930e+01	1.406930e+01	3.975142e-04	1.010757e-04	2.174937e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d02-x01-y04
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d02-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.053074e+00	6.126362e-02	8.781754e-02
+3.111899e+00	4.448028e-01	4.448028e-01	7.441141e-01	1.966889e-02	1.004161e-01
+4.149868e+00	5.931660e-01	5.931660e-01	5.188399e-01	1.032933e-02	7.792454e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.641837e-01	7.244369e-03	5.471781e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.642935e-01	5.231284e-03	3.971971e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.867538e-01	6.123468e-03	2.241166e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.226306e-01	4.020272e-03	1.471801e-02
+1.750161e+01	2.501612e+00	2.501612e+00	7.685256e-02	2.021796e-03	5.845833e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.627465e-02	6.119756e-04	1.249995e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.521109e-02	3.334131e-04	5.089479e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.276400e-02	1.060055e-03	1.705583e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.617896e-03	7.987359e-04	1.513988e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.893773e-03	3.941608e-04	7.715558e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.222240e-04	1.031406e-04	2.607554e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d03-x01-y02
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d03-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.188034e+00	4.957265e-02	9.059829e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.164103e+00	5.982906e-02	9.572650e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.063248e+00	2.735043e-02	3.760684e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.470085e-01	3.760684e-02	4.615385e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.384615e-01	2.564103e-02	2.564103e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.350427e-01	3.076923e-02	3.076923e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.247863e-01	2.735043e-02	2.905983e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.333333e-01	3.247863e-02	3.247863e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.367521e-01	3.247863e-02	2.905983e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.675214e-01	3.418803e-02	3.589744e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.931624e-01	3.760684e-02	3.931624e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.005128e+00	3.760684e-02	4.102564e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.032479e+00	5.128205e-02	5.128205e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.073504e+00	5.470085e-02	5.811966e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.121368e+00	7.521368e-02	7.350427e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.152137e+00	1.128205e-01	1.128205e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.172650e+00	1.726496e-01	1.743590e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d03-x01-y03
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d03-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.147503e+00	3.751966e-02	7.675557e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.149320e+00	4.093817e-02	5.969800e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.045381e+00	2.729211e-02	3.240589e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.738509e-01	2.899787e-02	3.070362e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.466706e-01	2.558635e-02	2.558635e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.280192e-01	3.069663e-02	3.240589e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.161907e-01	2.899787e-02	2.899437e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.231256e-01	2.899787e-02	3.070362e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.283547e-01	3.069663e-02	3.070362e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.608759e-01	3.582090e-02	3.582439e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.797511e-01	3.923241e-02	3.752665e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.798665e-01	3.752665e-02	3.752316e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.816806e-01	4.946695e-02	4.776119e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.019319e+00	5.629347e-02	5.458422e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.085955e+00	7.164179e-02	7.164878e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.147478e+00	1.125835e-01	1.091649e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.197057e+00	1.756965e-01	1.773917e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d03-x01-y01
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d03-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.228145e+00	4.605544e-02	7.505330e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.163326e+00	4.264392e-02	7.505330e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.054158e+00	2.558635e-02	4.434968e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.773987e-01	2.899787e-02	2.729211e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.398721e-01	2.558635e-02	2.388060e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.040512e-01	3.070362e-02	2.899787e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.023454e-01	2.729211e-02	2.729211e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.125800e-01	3.070362e-02	3.070362e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.159915e-01	2.899787e-02	2.899787e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.586354e-01	3.411514e-02	3.582090e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.927505e-01	3.752665e-02	3.752665e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.011514e+00	3.923241e-02	3.582090e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.033689e+00	5.117271e-02	5.117271e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.057569e+00	5.628998e-02	5.628998e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.096802e+00	7.334755e-02	7.334755e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.134328e+00	1.108742e-01	1.091684e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.163326e+00	1.705757e-01	1.688699e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d03-x01-y06
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d03-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.078038e+00	3.923241e-02	3.923241e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.081450e+00	6.481876e-02	5.628998e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.021748e+00	3.582090e-02	3.411514e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.535181e-01	3.582090e-02	3.582090e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.603412e-01	3.411514e-02	3.240938e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.791045e-01	3.923241e-02	4.093817e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.705757e-01	3.752665e-02	3.752665e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.552239e-01	4.264392e-02	4.264392e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.398721e-01	3.923241e-02	4.093817e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.876333e-01	4.605544e-02	4.434968e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.020043e+00	4.605544e-02	4.946695e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.808102e-01	4.264392e-02	4.093817e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.484009e-01	5.628998e-02	6.652452e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.002985e+00	6.481876e-02	6.311301e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.091684e+00	8.187633e-02	8.017058e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.163326e+00	1.364606e-01	1.313433e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.216205e+00	2.063966e-01	2.046908e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d03-x01-y04
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d03-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.158209e+00	4.434968e-02	5.458422e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.107036e+00	3.923241e-02	6.823028e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.030277e+00	2.729211e-02	2.729211e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.586354e-01	2.899787e-02	3.070362e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.398721e-01	2.729211e-02	2.729211e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.330490e-01	3.240938e-02	3.240938e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.552239e-01	3.240938e-02	2.899787e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.569296e-01	3.411514e-02	3.411514e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.330490e-01	3.240938e-02	3.070362e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.501066e-01	3.582090e-02	3.582090e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.722814e-01	3.923241e-02	4.093817e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.705757e-01	3.752665e-02	3.752665e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.859275e-01	4.946695e-02	4.946695e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.045629e+00	5.799574e-02	5.799574e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.124094e+00	7.675906e-02	7.505330e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.194030e+00	1.211087e-01	1.194030e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.245203e+00	1.927505e-01	1.893390e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d03-x01-y05
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d03-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.085912e+00	5.288197e-02	5.287846e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.102858e+00	4.093116e-02	5.629348e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.031104e+00	2.899787e-02	3.070713e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.917593e-01	3.411514e-02	3.411514e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.745897e-01	3.240938e-02	3.241639e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.301279e-01	3.582440e-02	3.752315e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.197813e-01	3.240938e-02	3.240938e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.401383e-01	3.582090e-02	3.753016e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.349089e-01	3.752665e-02	3.411164e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.825580e-01	4.093817e-02	4.093817e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.002915e+00	4.264042e-02	4.264392e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.601590e-01	4.264392e-02	4.264392e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.446951e-01	5.116921e-02	4.946345e-02
+4.498632e-01	5.153382e-02	5.153382e-02	9.445830e-01	5.629348e-02	5.628998e-02
+5.662652e-01	6.486819e-02	6.486819e-02	9.768803e-01	6.993603e-02	7.163829e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.016001e+00	1.142892e-01	1.159880e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.050004e+00	1.773952e-01	1.756965e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d07-x01-y06
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d07-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.098448e+00	5.287496e-02	5.288897e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.050575e+00	4.435669e-02	4.605894e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.002701e+00	3.923241e-02	3.923241e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.599454e-01	3.752665e-02	3.923591e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.615390e-01	4.093466e-02	4.264392e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.904248e-01	3.923241e-02	3.752665e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.459631e-01	3.582090e-02	3.752665e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.339107e-01	3.581739e-02	3.582090e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.593849e-01	3.923241e-02	3.922891e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.729189e-01	4.776470e-02	4.776119e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.027391e+00	5.628998e-02	5.798873e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.011927e+00	5.458072e-02	5.628648e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.004992e+00	6.310950e-02	6.140375e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.030463e+00	8.187283e-02	8.358559e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.079818e+00	1.057639e-01	1.074627e-01
+7.127862e-01	8.165282e-02	8.165282e-02	1.113821e+00	1.466951e-01	1.466986e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.151239e+00	2.115104e-01	2.115069e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d01-x01-y01
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d01-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	9.790918e+01	5.710681e+00	1.103967e+01
+2.843201e-02	3.257012e-03	3.257012e-03	8.509899e+01	3.886142e+00	1.215859e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.217656e+01	1.638725e+00	9.838882e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.697088e+01	9.315663e-01	7.432720e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.478011e+01	6.897885e-01	5.235545e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.592585e+01	5.141834e-01	3.704177e+00
+8.984721e-02	1.029240e-02	1.029240e-02	1.932570e+01	3.832836e-01	2.614183e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.412009e+01	2.800415e-01	1.697366e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.011206e+01	2.005510e-01	7.707017e-01
+1.791937e-01	2.052744e-02	2.052744e-02	7.050866e+00	1.398387e-01	2.882233e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.660639e+00	1.228358e-01	6.265923e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.881701e+00	9.462277e-02	9.783527e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.677849e+00	1.700146e-01	5.696385e-02
+4.498632e-01	5.153382e-02	5.153382e-02	8.897284e-01	1.164098e-01	4.257467e-02
+5.662652e-01	6.486819e-02	6.486819e-02	4.239970e-01	9.281664e-02	2.326541e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.653749e-01	4.534985e-02	1.260422e-02
+8.972195e-01	1.027805e-01	1.027805e-01	3.988227e-02	1.035101e-02	3.908159e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d01-x01-y02
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d01-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	9.331657e+01	3.064118e+00	1.191787e+01
+2.843201e-02	3.257012e-03	3.257012e-03	8.442275e+01	3.315480e+00	1.270839e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.293056e+01	2.066371e+00	9.473111e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.536950e+01	1.489741e+00	7.179315e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.473489e+01	9.154726e-01	5.496484e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.677120e+01	7.055816e-01	3.824956e+00
+8.984721e-02	1.029240e-02	1.029240e-02	1.995584e+01	5.259560e-01	2.548648e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.438707e+01	2.853365e-01	1.729460e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.030326e+01	2.043430e-01	8.595642e-01
+1.791937e-01	2.052744e-02	2.052744e-02	7.088877e+00	1.405926e-01	2.897771e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.654580e+00	1.226761e-01	9.418145e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.877955e+00	9.449976e-02	9.770807e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.664516e+00	1.485528e-01	6.804160e-02
+4.498632e-01	5.153382e-02	5.153382e-02	9.005179e-01	1.125776e-01	4.309096e-02
+5.662652e-01	6.486819e-02	6.486819e-02	4.320139e-01	9.457160e-02	2.370531e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.673804e-01	4.589980e-02	1.155823e-02
+8.972195e-01	1.027805e-01	1.027805e-01	4.009728e-02	1.040681e-02	3.345172e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d01-x01-y03
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d01-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	9.013512e+01	2.959653e+00	1.083508e+01
+2.843201e-02	3.257012e-03	3.257012e-03	8.319450e+01	2.731753e+00	1.188648e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.160228e+01	8.172153e-01	9.273161e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.653705e+01	9.229621e-01	7.364069e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.492214e+01	4.632769e-01	5.256926e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.655846e+01	3.523243e-01	3.592557e+00
+8.984721e-02	1.029240e-02	1.029240e-02	1.927548e+01	-2.591462e-01	2.901591e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.427274e+01	1.893421e-01	1.715716e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.015336e+01	1.346944e-01	7.738492e-01
+1.791937e-01	2.052744e-02	2.052744e-02	7.032545e+00	1.853497e-01	2.387586e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.556335e+00	1.496106e-01	9.219355e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.798460e+00	7.375621e-02	7.575275e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.586439e+00	1.607521e-01	6.484998e-02
+4.498632e-01	5.153382e-02	5.153382e-02	8.525655e-01	1.065829e-01	4.079638e-02
+5.662652e-01	6.486819e-02	6.486819e-02	4.145081e-01	8.857027e-02	2.274473e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.649452e-01	4.523201e-02	1.257147e-02
+8.972195e-01	1.027805e-01	1.027805e-01	4.085543e-02	1.120356e-02	3.704978e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d01-x01-y04
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d01-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	9.122817e+01	2.404409e+00	1.096648e+01
+2.843201e-02	3.257012e-03	3.257012e-03	8.035814e+01	2.638619e+00	1.148123e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.070604e+01	1.203974e+00	9.138247e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.585999e+01	1.208686e+00	6.903430e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.464463e+01	6.871017e-01	5.482202e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.670163e+01	5.295694e-01	3.815017e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.044277e+01	6.712534e-01	2.765290e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.473812e+01	3.884379e-01	1.771660e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.027649e+01	2.038120e-01	8.573306e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.976660e+00	1.383670e-01	3.338423e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.550411e+00	9.024761e-02	6.117730e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.776222e+00	7.317011e-02	7.515078e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.594991e+00	1.616187e-01	5.415078e-02
+4.498632e-01	5.153382e-02	5.153382e-02	8.803646e-01	1.151846e-01	2.383097e-02
+5.662652e-01	6.486819e-02	6.486819e-02	4.337782e-01	9.721272e-02	1.472700e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.726133e-01	4.816855e-02	7.056039e-03
+8.972195e-01	1.027805e-01	1.027805e-01	4.275476e-02	1.151651e-02	1.747717e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d01-x01-y05
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d01-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	8.579548e+01	2.261225e+00	1.031342e+01
+2.843201e-02	3.257012e-03	3.257012e-03	8.025367e+01	2.115165e+00	1.146631e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.103330e+01	1.608594e+00	9.187511e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.767258e+01	1.565364e+00	7.543757e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.601395e+01	9.491834e-01	5.978348e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.684558e+01	7.075421e-01	3.631396e+00
+8.984721e-02	1.029240e-02	1.029240e-02	1.987811e+01	5.239073e-01	2.538721e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.452370e+01	2.880463e-01	1.745884e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.033189e+01	2.049108e-01	7.874559e-01
+1.791937e-01	2.052744e-02	2.052744e-02	7.204143e+00	1.898724e-01	2.944889e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.698784e+00	1.542880e-01	1.595262e-01
+2.839237e-01	3.252472e-02	3.252472e-02	2.754161e+00	9.043490e-02	7.455359e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.540613e+00	1.374949e-01	6.297673e-02
+4.498632e-01	5.153382e-02	5.153382e-02	8.007524e-01	1.047684e-01	3.831705e-02
+5.662652e-01	6.486819e-02	6.486819e-02	3.790563e-01	8.297872e-02	2.079944e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.478463e-01	4.054308e-02	1.126826e-02
+8.972195e-01	1.027805e-01	1.027805e-01	3.613439e-02	9.378283e-03	3.540894e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d01-x01-y06
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d01-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	8.454726e+01	3.860946e+00	1.079790e+01
+2.843201e-02	3.257012e-03	3.257012e-03	7.803692e+01	2.562400e+00	1.174711e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.054830e+01	1.988148e+00	9.114502e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.574082e+01	9.071707e-01	7.238074e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.548999e+01	9.353739e-01	5.615971e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.809361e+01	7.404350e-01	3.800216e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.080222e+01	5.482632e-01	2.813912e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.469983e+01	2.915394e-01	1.767056e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.031846e+01	2.046444e-01	8.608319e-01
+1.791937e-01	2.052744e-02	2.052744e-02	7.194778e+00	1.896255e-01	3.442795e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.755765e+00	1.561590e-01	1.614607e-01
+2.839237e-01	3.252472e-02	3.252472e-02	2.806236e+00	9.214482e-02	7.596323e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.538610e+00	1.742486e-01	9.529994e-02
+4.498632e-01	5.153382e-02	5.153382e-02	8.435928e-01	1.103735e-01	2.283558e-02
+5.662652e-01	6.486819e-02	6.486819e-02	4.184446e-01	9.160117e-02	2.002312e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.676272e-01	4.677715e-02	8.021183e-03
+8.972195e-01	1.027805e-01	1.027805e-01	4.151975e-02	1.138573e-02	4.068618e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d01-x01-y07
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d01-x01-y07
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	7.793547e+01	3.559011e+00	9.953482e+00
+2.843201e-02	3.257012e-03	3.257012e-03	7.241619e+01	2.843954e+00	1.090101e+01
+3.578878e-02	4.099764e-03	4.099764e-03	5.887585e+01	1.551732e+00	8.862743e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.754871e+01	1.253194e+00	7.893129e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.689271e+01	9.723441e-01	5.553561e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.862480e+01	7.544350e-01	4.089790e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.148050e+01	5.661401e-01	2.743370e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.548627e+01	5.085031e-01	1.746141e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.094333e+01	1.451741e-01	9.129625e-01
+1.791937e-01	2.052744e-02	2.052744e-02	7.330815e+00	2.407127e-01	2.996669e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.624402e+00	1.218807e-01	9.357083e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.840267e+00	7.485806e-02	5.747037e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.610138e+00	1.534592e-01	5.466505e-02
+4.498632e-01	5.153382e-02	5.153382e-02	8.368892e-01	1.094964e-01	4.004625e-02
+5.662652e-01	6.486819e-02	6.486819e-02	3.831542e-01	8.187072e-02	1.833443e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.445375e-01	3.963573e-02	7.931011e-03
+8.972195e-01	1.027805e-01	1.027805e-01	3.416576e-02	8.867348e-03	5.143066e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d10-x01-y03
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d10-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.203480e+00	3.403537e-02	6.296795e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.162769e+00	3.404974e-02	4.595026e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.035249e+00	2.553191e-02	2.723404e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.690062e-01	2.042553e-02	2.042194e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.385079e-01	2.212407e-02	2.382979e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.080061e-01	2.212766e-02	2.553551e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.234653e-01	2.382979e-02	2.553191e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.508394e-01	2.383697e-02	2.212407e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.680007e-01	2.553191e-02	2.553191e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.868642e-01	3.403896e-02	3.404614e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.019345e+00	4.085465e-02	4.084747e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.060336e+00	5.106383e-02	5.106742e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.111540e+00	8.000000e-02	7.829428e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.154233e+00	1.412766e-01	1.429751e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d04-x01-y05
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d04-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.120607e+00	3.411514e-02	3.923241e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.096590e+00	2.558995e-02	2.558276e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.028220e+00	2.388060e-02	2.387701e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.922586e-01	2.388419e-02	2.387701e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.545919e-01	2.217484e-02	2.388060e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.066906e-01	2.387701e-02	2.387701e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.389599e-01	2.900146e-02	2.559354e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.797581e-01	2.558635e-02	2.899787e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.762101e-01	3.412232e-02	3.411514e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.624204e-01	2.900146e-02	3.070362e-02
+4.150537e+01	5.932616e+00	5.932616e+00	9.759300e-01	3.923600e-02	3.752665e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.011607e+00	5.799574e-02	5.629357e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.066051e+00	7.846123e-02	7.846841e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.091501e+00	1.381699e-01	1.279354e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d04-x01-y04
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d04-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.180384e+00	3.411514e-02	5.287846e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.127505e+00	2.558635e-02	2.558635e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.014925e+00	2.217484e-02	2.217484e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.535181e-01	2.217484e-02	2.046908e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.449893e-01	2.388060e-02	2.388060e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.449893e-01	2.217484e-02	2.217484e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.535181e-01	2.388060e-02	2.388060e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.501066e-01	2.558635e-02	2.558635e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.552239e-01	3.070362e-02	3.070362e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.876333e-01	2.899787e-02	3.070362e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.055864e+00	4.093817e-02	4.093817e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.125800e+00	5.970149e-02	5.799574e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.173561e+00	7.846482e-02	8.017058e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.171855e+00	1.279318e-01	1.296375e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d04-x01-y06
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d04-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.054158e+00	3.411514e-02	3.582090e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.076333e+00	2.729211e-02	2.899787e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.026866e+00	2.899787e-02	2.729211e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.381663e-01	2.388060e-02	3.240938e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.688699e-01	2.729211e-02	2.388060e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.501066e-01	2.729211e-02	2.729211e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.620469e-01	2.729211e-02	2.558635e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.688699e-01	3.240938e-02	3.240938e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.791045e-01	3.411514e-02	3.411514e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.620469e-01	3.411514e-02	3.752665e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.020043e+00	4.776119e-02	4.605544e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.083156e+00	6.652452e-02	6.823028e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.118977e+00	9.211087e-02	9.381663e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.144563e+00	1.449893e-01	1.484009e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d04-x01-y01
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d04-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.240010e+00	3.411514e-02	7.847202e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.209166e+00	4.777919e-02	5.289646e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.048684e+00	2.558995e-02	3.071082e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.496136e-01	2.046548e-02	2.388420e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.170639e-01	2.046908e-02	2.046908e-02
+9.841483e+00	1.406703e+00	1.406703e+00	8.981602e-01	2.217484e-02	2.046908e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.184889e-01	2.046908e-02	2.217844e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.439349e-01	2.387700e-02	2.388420e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.659694e-01	2.899787e-02	3.071082e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.025531e+00	2.728851e-02	2.729571e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.088507e+00	4.093457e-02	4.093457e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.125893e+00	5.458782e-02	5.629358e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.164985e+00	7.675906e-02	7.506050e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.158022e+00	1.245239e-01	1.245167e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d10-x01-y04
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d10-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.180384e+00	3.411514e-02	5.458422e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.117271e+00	2.217484e-02	2.558635e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.002985e+00	2.388060e-02	2.388060e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.518124e-01	1.876333e-02	2.217484e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.518124e-01	2.729211e-02	2.217484e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.398721e-01	2.388060e-02	2.388060e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.484009e-01	2.729211e-02	2.729211e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.586354e-01	2.388060e-02	2.558635e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.739872e-01	2.729211e-02	2.558635e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.995736e-01	3.752665e-02	3.752665e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.062687e+00	4.434968e-02	4.264392e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.118977e+00	5.628998e-02	5.799574e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.154797e+00	8.187633e-02	8.017058e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.158209e+00	1.381663e-01	1.381663e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d04-x01-y03
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d04-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.190618e+00	3.411514e-02	6.140725e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.151386e+00	3.240938e-02	4.434968e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.023454e+00	1.876333e-02	3.070362e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.620469e-01	2.388060e-02	2.046908e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.211087e-01	2.217484e-02	2.217484e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.023454e-01	2.217484e-02	2.046908e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.159915e-01	2.217484e-02	2.217484e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.518124e-01	2.558635e-02	2.558635e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.518124e-01	3.240938e-02	2.899787e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.825160e-01	2.899787e-02	3.070362e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.025160e+00	3.923241e-02	4.093817e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.071215e+00	5.458422e-02	5.628998e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.124094e+00	7.505330e-02	7.675906e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.146269e+00	1.262260e-01	1.279318e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d04-x01-y02
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d04-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.215226e+00	3.240938e-02	9.040152e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.184663e+00	3.582449e-02	5.627918e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.032991e+00	2.217484e-02	3.582449e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.649042e-01	2.047268e-02	2.217124e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.360431e-01	2.216764e-02	2.217484e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.140086e-01	2.217124e-02	2.046908e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.431468e-01	2.217844e-02	2.217484e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.705793e-01	2.388420e-02	2.388420e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.826599e-01	3.071082e-02	3.070003e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.033973e+00	2.728851e-02	3.411874e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.098932e+00	4.093817e-02	3.922881e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.138305e+00	5.629358e-02	5.629358e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.184497e+00	7.675906e-02	7.506050e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.189755e+00	1.245203e-01	1.228109e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d10-x01-y05
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d10-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.134328e+00	3.070362e-02	4.093817e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.095096e+00	2.217484e-02	2.388060e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.038806e+00	2.558635e-02	2.388060e-02
+5.534050e+00	7.910155e-01	7.910155e-01	1.002985e+00	2.217484e-02	2.388060e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.739872e-01	2.729211e-02	2.558635e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.194030e-01	2.558635e-02	2.217484e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.364606e-01	2.729211e-02	2.729211e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.756930e-01	2.729211e-02	2.558635e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.876333e-01	2.899787e-02	3.070362e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.773987e-01	3.752665e-02	3.582090e-02
+4.150537e+01	5.932616e+00	5.932616e+00	9.910448e-01	4.264392e-02	4.605544e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.016631e+00	5.117271e-02	5.628998e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.076333e+00	8.017058e-02	8.187633e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.125800e+00	1.603412e-01	1.415778e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d08-x01-y01
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d08-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.253731e+00	3.070362e-02	7.334755e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.258849e+00	6.140725e-02	5.287846e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.100213e+00	2.558635e-02	2.558635e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.671642e-01	2.046908e-02	3.070362e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.381663e-01	2.388060e-02	2.217484e-02
+9.841483e+00	1.406703e+00	1.406703e+00	8.938166e-01	2.217484e-02	2.046908e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.108742e-01	2.388060e-02	2.388060e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.313433e-01	2.388060e-02	2.388060e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.671642e-01	2.899787e-02	3.070362e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.020043e+00	3.752665e-02	3.752665e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.078038e+00	4.776119e-02	4.776119e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.115565e+00	6.311301e-02	6.140725e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.146269e+00	9.040512e-02	9.040512e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.151386e+00	1.603412e-01	1.603412e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d10-x01-y02
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d10-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.237404e+00	3.582090e-02	9.039072e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.196606e+00	3.070362e-02	5.456263e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.041519e+00	2.388060e-02	3.582449e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.683121e-01	1.876333e-02	2.046908e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.445719e-01	2.046548e-02	2.217844e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.088913e-01	2.217484e-02	2.046548e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.295008e-01	2.558276e-02	2.557916e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.688735e-01	2.388060e-02	2.217484e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.928945e-01	2.559355e-02	2.388060e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.047619e+00	3.412234e-02	3.581730e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.098932e+00	4.434608e-02	4.265112e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.119542e+00	5.287487e-02	5.458422e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.169145e+00	8.186914e-02	8.188713e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.235810e+00	1.466951e-01	1.449929e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d08-x01-y03
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d08-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.200853e+00	3.070362e-02	6.311301e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.188913e+00	4.264392e-02	4.605544e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.072921e+00	2.558635e-02	2.558635e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.739872e-01	2.217484e-02	2.388060e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.484009e-01	2.388060e-02	2.388060e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.091684e-01	2.217484e-02	2.217484e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.245203e-01	2.558635e-02	2.558635e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.569296e-01	2.558635e-02	2.558635e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.791045e-01	3.070362e-02	2.899787e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.995736e-01	3.752665e-02	3.752665e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.026866e+00	4.434968e-02	4.776119e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.057569e+00	5.628998e-02	5.970149e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.103625e+00	9.211087e-02	9.040512e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.161620e+00	1.671642e-01	1.654584e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d08-x01-y02
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d08-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.273468e+00	2.729223e-02	9.553361e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.242624e+00	4.093835e-02	5.970536e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.083848e+00	2.900160e-02	2.900160e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.711271e-01	2.046918e-02	2.388790e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.419923e-01	2.388070e-02	2.216774e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.009136e-01	2.217854e-02	2.047277e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.161251e-01	2.388070e-02	2.388070e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.569231e-01	2.388430e-02	2.558287e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.926039e-01	2.899800e-02	2.899800e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.045342e+00	3.922899e-02	3.923259e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.081023e+00	4.434628e-02	4.776141e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.099646e+00	6.140753e-02	6.140393e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.133625e+00	9.211129e-02	9.381345e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.171011e+00	1.671649e-01	1.654592e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d08-x01-y05
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d08-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.138462e+00	3.076923e-02	3.931624e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.117949e+00	3.076923e-02	2.905983e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.066667e+00	2.735043e-02	2.735043e-02
+5.534050e+00	7.910155e-01	7.910155e-01	1.006838e+00	2.393162e-02	2.393162e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.794872e-01	2.735043e-02	2.905983e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.264957e-01	2.393162e-02	2.564103e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.452991e-01	2.905983e-02	2.735043e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.846154e-01	3.076923e-02	2.735043e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.829060e-01	3.247863e-02	3.247863e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.794872e-01	3.931624e-02	3.760684e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.013675e+00	5.128205e-02	5.128205e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.034188e+00	6.324786e-02	6.153846e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.056410e+00	9.401709e-02	9.401709e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.037607e+00	1.589744e-01	1.589744e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d08-x01-y04
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d08-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.193162e+00	3.076923e-02	5.641026e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.147009e+00	3.076923e-02	2.905983e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.039316e+00	2.564103e-02	2.735043e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.555556e-01	2.222222e-02	2.222222e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.487179e-01	2.564103e-02	2.564103e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.418803e-01	2.393162e-02	2.222222e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.470085e-01	2.735043e-02	2.735043e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.606838e-01	2.735043e-02	2.564103e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.743590e-01	3.076923e-02	3.076923e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.008547e+00	3.931624e-02	4.102564e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.054701e+00	4.786325e-02	4.957265e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.105983e+00	6.324786e-02	6.495726e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.145299e+00	9.743590e-02	9.572650e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.131624e+00	1.623932e-01	1.606838e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_4MOMSUB/d08-x01-y06
+Path=/REF/ATLAS_2014_I1300152_4MOMSUB/d08-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.061538e+00	2.905983e-02	3.076923e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.083761e+00	3.076923e-02	3.247863e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.046154e+00	3.418803e-02	3.247863e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.264957e-01	2.735043e-02	3.760684e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.641026e-01	2.735043e-02	2.735043e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.452991e-01	2.735043e-02	3.076923e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.692308e-01	3.418803e-02	2.905983e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.709402e-01	3.247863e-02	2.735043e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.777778e-01	3.418803e-02	3.418803e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.692308e-01	4.444444e-02	4.444444e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.011966e+00	5.470085e-02	5.299145e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.046154e+00	6.666667e-02	6.666667e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.066667e+00	1.008547e-01	9.914530e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.082051e+00	1.692308e-01	1.675214e-01
+END YODA_SCATTER2D
+
Index: trunk/code/ATLAS_CONF_2014_025.cc
===================================================================
--- trunk/code/ATLAS_CONF_2014_025.cc	(revision 451)
+++ trunk/code/ATLAS_CONF_2014_025.cc	(revision 452)
@@ -1,204 +1,203 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
-#include "Rivet/RivetAIDA.hh"
 #include "Rivet/Tools/Logging.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/FastJets.hh"
 /// @todo Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...
 
 namespace Rivet {
 
 
   class ATLAS_CONF_2014_025 : public Analysis {
   public:
 
     /// @name Constructors etc.
     //@{
 
     /// Constructor
     ATLAS_CONF_2014_025()
       : Analysis("ATLAS_CONF_2014_025")
     {
-      setBeams(PROTON, PROTON);
       setNeedsCrossSection(true);
     }
 
     //@}
 
 
   public:
 
     /// @name Analysis methods
     //@{
 
     /// Book histograms and initialise projections before the run
     void init() {
 
       _centedges += 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8;
       _centloweredges += 0.0,  0.01, 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6;
       _centupperedges += 0.01, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8;
 
 	_yloweredges1 += 0.0, 0.3, 0.8, 1.2, 0.0;
 	_yupperedges1 += 0.3, 0.8, 1.2, 2.1, 2.1;
 	_yloweredges2 += 0.3, 1.2, 0.0;
 	_yupperedges2 += 0.8, 2.1, 2.1;
 
 	_ptedges += 63., 80., 100., 126., 158.;
 
 	_deltay1 += 0.6, 1.0, 0.8, 1.8, 4.2;
 	_deltay2 += 1.0, 1.8, 4.2;
 
 	_deltapt += 17., 20., 26., 32.;
 
 	_ncentbins1 = 8;
 	_ncentbins2 = 9;
 	_nybins1 = 5;
 	_nybins2 = 3;
 	_nptbins = 4;
 
       FinalState fs(-3.0, 3.0, 0.*GeV);
 	addProjection(fs, "FS");
 	FastJets fj04(fs, FastJets::ANTIKT, 0.4);
 	fj04.useInvisibles();
       addProjection(fj04, "Jets04");
 
       for (size_t i = 0; i < _ncentbins1; ++i) {
 	  _sumwtcentbins1[i] = 0.;
         for (size_t j = 0; j < _nybins1; ++j) {
-          _h_jetspec[i][j] = bookHistogram1D(1, j+1, i+1);
+          _h_jetspec[i][j] = bookHisto1D(1, j+1, i+1);
         }
       }
       for (size_t j = 0; j < _nybins1; ++j) {
-        _h_pp_jetspec[j] = bookHistogram1D(1, j+1, 10);
+        _h_pp_jetspec[j] = bookHisto1D(1, j+1, 10);
       }
       for (size_t i = 0; i < _ncentbins2; ++i) {
 	  _sumwtcentbins2[i] = 0.;
         for (size_t j = 0; j < _nybins2; ++j) {
-          _h_raa_pt[i][j] = bookHistogram1D(2, j+1, i+1);
+          _h_raa_pt[i][j] = bookHisto1D(2, j+1, i+1);
         }
         for (size_t k = 0; k < _nptbins; ++k) {
-          _h_raa_y[i][k] = bookHistogram1D(3, k+1, i+1);
+          _h_raa_y[i][k] = bookHisto1D(3, k+1, i+1);
         }
       }
 
     }
 
 
     /// Perform the per-event analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
-	const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
+	const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
 
-	Jets alljets = applyProjection<FastJets>(event, "Jets04").jetsByPt(32.*GeV, 500.*GeV, -2.1, 2.1);
+      Cut cuts = Cuts::abseta < 2.1 && Cuts::pT > 32*GeV && Cuts::pT < 500.*GeV;
+	Jets alljets = applyProjection<FastJets>(event, "Jets04").jetsByPt(cuts);
 
 // fill jet pt spectra in Pb+Pb
       for (size_t i = 0; i < _ncentbins1; ++i) {
 	  if (cent < 0. || (cent >= _centedges[i] && cent < _centedges[i+1])) {
 	    _sumwtcentbins1[i] += weight;
           for (size_t j = 0; j < _nybins1; ++j) {
 		foreach (Jet jet, alljets) {
 		  double pt(jet.momentum().pT());
 		  double y(abs(jet.momentum().rapidity()));
 		  if (y > _yloweredges1[j] && y < _yupperedges1[j]) {
 		    _h_jetspec[i][j]->fill(pt,weight);
 		  }
 	      }
 	    }
         }
       }
 // fill jet pt spectra in p+p
 	if (cent < 0.) {
         for (size_t j = 0; j < _nybins1; ++j) {
 	    foreach (Jet jet, alljets) {
 		double pt(jet.momentum().pT());
 		double y(abs(jet.momentum().rapidity()));
 		if (y > _yloweredges1[j] && y < _yupperedges1[j]) {
 		  _h_pp_jetspec[j]->fill(pt,weight);
 		}
 	    }
 	  }
       }
 // fill jet pt spectra for R_AA
       for (size_t i = 0; i < _ncentbins2; ++i) {
 	  if (cent < 0. || (cent >= _centloweredges[i] && cent < _centupperedges[i])) {
 	    _sumwtcentbins2[i] += weight;
           for (size_t j = 0; j < _nybins2; ++j) {
 		foreach (Jet jet, alljets) {
 		  double pt(jet.momentum().pT());
 		  double y(abs(jet.momentum().rapidity()));
 		  if (y > _yloweredges2[j] && y < _yupperedges2[j]) {
 		    _h_raa_pt[i][j]->fill(pt,weight);
 		  }
 	      }
 	    }
           for (size_t k = 0; k < _nptbins; ++k) {
 		foreach (Jet jet, alljets) {
 		  double pt(jet.momentum().pT());
 		  double y(abs(jet.momentum().rapidity()));
 		  if (pt > _ptedges[k]*GeV && pt < _ptedges[k+1]*GeV) {
 		    _h_raa_y[i][k]->fill(y,weight);
 		  }
 	      }
 	    }
         }
       }
 
     }
 
 
     /// Normalise histograms etc., after the run
     void finalize() {
 
       for (size_t i = 0; i < _ncentbins1; ++i) {
         for (size_t j = 0; j < _nybins1; ++j) {
           scale(_h_jetspec[i][j],crossSection()/(nanobarn*_deltay1[j]*(_sumwtcentbins1[i]>0.?_sumwtcentbins1[i]:1.)));
         }
       }
       for (size_t j = 0; j < _nybins1; ++j) {
         scale(_h_pp_jetspec[j],crossSection()/(nanobarn*_deltay1[j]*sumOfWeights()));
       }
       for (size_t i = 0; i < _ncentbins2; ++i) {
         for (size_t j = 0; j < _nybins2; ++j) {
           scale(_h_raa_pt[i][j],crossSection()/(nanobarn*_deltay2[j]*(_sumwtcentbins2[i]>0.?_sumwtcentbins2[i]:1.)));
         }
         for (size_t k = 0; k < _nptbins; ++k) {
           scale(_h_raa_y[i][k],crossSection()/(nanobarn*_deltapt[k]*(_sumwtcentbins2[i]>0.?_sumwtcentbins2[i]:1.)));
         }
       }
  
     }
 
     //@}
 
 
   private:
 
     vector<double> _centedges, _centloweredges, _centupperedges;
     vector<double> _yloweredges1, _yupperedges1, _yloweredges2, _yupperedges2;
     vector<double> _ptedges;
     vector<double> _deltay1, _deltay2;
     vector<double> _deltapt;
     double _sumwtcentbins1[8],_sumwtcentbins2[9];
 
     size_t _ncentbins1, _ncentbins2, _nybins1, _nybins2, _nptbins;
 
 
   private:
 
     /// @name Histograms
     //@{
-    AIDA::IHistogram1D *_h_jetspec[8][5];
-    AIDA::IHistogram1D *_h_pp_jetspec[5];
-    AIDA::IHistogram1D *_h_raa_pt[9][3];
-    AIDA::IHistogram1D *_h_raa_y[9][4];
+    Histo1DPtr _h_jetspec[8][5];
+    Histo1DPtr _h_pp_jetspec[5];
+    Histo1DPtr _h_raa_pt[9][3];
+    Histo1DPtr _h_raa_y[9][4];
     //@}
 
 
   };
 
 
 
   // The hook for the plugin system
   DECLARE_RIVET_PLUGIN(ATLAS_CONF_2014_025);
 
 }
Index: trunk/code/CMS_2013_I1256590.cc
===================================================================
--- trunk/code/CMS_2013_I1256590.cc	(revision 451)
+++ trunk/code/CMS_2013_I1256590.cc	(revision 452)
@@ -1,184 +1,444 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
-#include "Rivet/RivetAIDA.hh"
 #include "Rivet/Tools/Logging.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 #include <boost/lexical_cast.hpp>
 #include <map>
 #include <vector>
 /// @todo Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...
 
 namespace Rivet {
 
+using namespace fastjet;
+	
+	struct FourMomComp {
+        bool operator() (const FourMomentum& p1, const FourMomentum& p2) const
+       {return p1.pT()<p2.pT();}
+    };
+
 
-  class CMS_2013_I1256590 : public Analysis {
+    struct jetcomp{
+      bool operator() (const Jet jet1, const Jet jet2) const
+      {
+        if (jet1.momentum().pT() < jet2.momentum().pT()) return true;
+        else return false;
+      }
+    };
+
+#if MODE==0    
+  class CMS_2013_I1256590_4MOMSUB : public Analysis {
+#elif MODE==1
+  class CMS_2013_I1256590_GRIDSUB2 : public Analysis {
+#elif MODE==2
+  class CMS_2013_I1256590_CHARGED : public Analysis {
+#endif
   public:
 
     /// Constructor
-    CMS_2013_I1256590()
-      : Analysis("CMS_2013_I1256590")
+#if MODE==0
+    CMS_2013_I1256590_4MOMSUB() : Analysis("CMS_2013_I1256590_4MOMSUB")
+#elif MODE==1
+    CMS_2013_I1256590_GRIDSUB2() : Analysis("CMS_2013_I1256590_GRIDSUB2")
+#elif MODE==2
+    CMS_2013_I1256590_CHARGED() : Analysis("CMS_2013_I1256590_CHARGED")
+#endif
     {   
-      setBeams(PROTON, PROTON);
-      difvec.resize(6,0.); intvec.resize(6,0.);
-      difvecvac.resize(6,0.); intvecvac.resize(6,0.);
-      Njets=0.;
+      _jetR=0.3; _trackptmin=0.; _deltar = 0.05; _nbins = 6;
+      _delR_center += 0.025, 0.075, 0.125, 0.175, 0.225, 0.275;
+      _nphibins = 120; _netabins = 160;
+      _Njets=0.;
     }
 
   public:
 
     /// Book histograms and initialise projections before the run
     void init() {
 
       FinalState fs(-5.0, 5.0, 0.*GeV);
       addProjection(fs, "FS");
-      ChargedFinalState cfs(-5.0, 5.0, 1.*GeV);
-      addProjection(cfs, "CFS");
 	
-      FastJets fj03(fs, FastJets::CAM, 0.3);
+      FastJets fj03(fs, FastJets::ANTIKT, _jetR);
       addProjection(fj03, "Jets03");
 
-      _d_difjetshape  = bookDataPointSet(1, 1, 1);
-      _d_difjetshapev = bookDataPointSet(1, 1, 2);
-      _d_intjetshape  = bookDataPointSet(2, 1, 1);
-      _d_intjetshapev = bookDataPointSet(2, 1, 2);
-      _h_ffxi         = bookHistogram1D(3, 1, 1);
-      _h_ffxiv        = bookHistogram1D(3, 1, 2);
-      _h_ffpt         = bookHistogram1D(4, 1, 1);
-      _h_ffptv        = bookHistogram1D(4, 1, 2);
+      _p_difjetshape  = bookProfile1D(1, 1, 1);
+      _p_difjetshapev = bookProfile1D(1, 1, 2);
+      _p_intjetshape  = bookProfile1D(2, 1, 1);
+      _p_intjetshapev = bookProfile1D(2, 1, 2);
+      _h_ffxi         = bookHisto1D(3, 1, 1);
+      _h_ffxiv        = bookHisto1D(3, 1, 2);
+      _h_ffpt         = bookHisto1D(4, 1, 1);
+      _h_ffptv        = bookHisto1D(4, 1, 2);
+#if MODE==2
+      _h_scalefac = bookHisto1D("scalefac", 50, 0., 1.);
+#endif
 
     }
 
-    struct jetcomp{
-      bool operator() (const Jet jet1, const Jet jet2) const
-      {
-        if (jet1.momentum().pT() < jet2.momentum().pT()) return true;
-        else return false;
-      }
-    };
-
     double ptsmear(const double pttrue, const double cent) {
       double c(0.0246);
       double s(1.213);
       double n;
       if (cent < 0.  || cent > 0.5) n=0.001;
       if (cent > 0.3 && cent < 0.5) n=3.88;
       if (cent > 0.1 && cent < 0.3) n=5.10;
       if (cent > 0.  && cent < 0.1) n=5.23;
-      //	n=5.23;
+      n=5.23;
       double sigma(sqrt(c*c+s*s/pttrue+n*n/(pttrue*pttrue)));
       double r1(1.0*rand()/RAND_MAX), r2(1.0*rand()/RAND_MAX);
       double fac(max(sqrt(-2.*log(r1))*cos(2.*M_PI*r2)*sigma+1.,0.));
       return fac*pttrue;
     }    
 
+    
+    /// extract thermal momenta, that should be subtracted, from HepMC event
+    vector<FourMomentum> extractThermalMomenta(const Event & event) {
+	 vector<FourMomentum> thermom;
+        foreach (const HepMC::GenParticle* p, particles(event.genEvent())) {
+            FourMomentum mom(p->momentum());
+               if (p->status() == 3) {
+                   thermom.push_back(mom);
+               }
+	 }
+	 return thermom;
+    }
+    
+    
+    /// build map from dummy particles to thermal momenta to speed up subtraction
+    map<FourMomentum, FourMomentum, FourMomComp> buildThMomMap(const Event & event, const vector<FourMomentum> * thermom) {
+	    map<FourMomentum, FourMomentum, FourMomComp> thmap;
+           foreach (const HepMC::GenParticle* p, particles(event.genEvent())) {
+                  FourMomentum mom(p->momentum());
+                  if (mom.E() < 1e-5 && mom.E() > 1e-7) {
+		           FourMomentum dummy(mom);
+                         dummy *= 10000.;
+			    double dRmin(1.);
+			    FourMomentum match;
+			     foreach (FourMomentum tm, *thermom) {
+				     double dR(deltaR(dummy, tm));
+				     if (dR < dRmin) {
+					     dRmin = dR;
+					     match = tm;
+				     }
+			     }
+			     if (dRmin < 1e-5) {
+				     map<FourMomentum, FourMomentum, FourMomComp>::iterator mapit;
+				     mapit = thmap.find(mom);
+				     if (mapit != thmap.end()) {
+						cout<<"Error: dummy is already in map.\n";
+						cout<<mapit->first<<endl;
+						cout<<mapit->second<<endl;
+						cout<<match<<endl;
+				     }
+                                 thmap[mom]=match;				     
+                          }
+		    }
+	    }
+	    return thmap;
+    }
+    
+    
+    /// 4-momentum subtraction
+    FourMomentum SubtractJetMom(Jet jet, map<FourMomentum, FourMomentum, FourMomComp> * tmmap, double fac = 1.) {
+        if (tmmap->empty()) return jet.momentum();
+        FourMomentum sub(0.,0.,0.,0.);
+        foreach (Particle part, jet.constituents()) {
+            if (part.E() < 1e-5 && part.E() > 1e-7) { 
+                    map<FourMomentum, FourMomentum, FourMomComp>::iterator mapit;
+                    mapit = (*tmmap).find(part.momentum());
+                    if (mapit == (*tmmap).end()) cout<<"Error: did not find matching scattering centre in map.\n"<<part.momentum()<<endl;
+                    else sub += mapit->second;
+	     }
+        }
+        FourMomentum jetmom(jet.momentum());
+        //cout<<"Original momentum: "<<jetmom<<endl;
+        jetmom -= sub;
+        //cout<<"subtracted momentum: "<<jetmom<<endl;
+        //cout<<"Subtracted pt: "<<subpt<<"    "<<pjet.pt()<<endl;
+        return jetmom;
+    }
+
+    
+    /// determine fraction of pt carried by charged particles in jet
+    double getScaleFac(const Jet jet, double ptcut, FinalState * fs = NULL) {
+	    Particles parts;
+	    if (fs) parts = fs->particles();
+	    else parts = jet.constituents();
+	    double scalefac;
+	    double ntracks(0.), nparts(0.);
+           FourMomentum chmom(0.,0.,0.,0.), allmom(0.,0.,0.,0.);
+	      foreach (Particle part, parts) {
+		      if (deltaR(part,jet) < _jetR && part.momentum().E() > 1e-5) {
+			      nparts += 1.;
+			      allmom += part.momentum();
+                                  if (PID::charge(part.pdgId()) != 0 && part.pT() > ptcut) {
+			                    ntracks += 1.;
+			                    chmom += part.momentum();				      
+			             }
+		      }
+	      }
+	      scalefac = (nparts>0.?ntracks/nparts:1);
+	      //scalefac = (allmom.pT()>0.?chmom.pT()/allmom.pT():1.);
+	    return scalefac;
+    }
+    
+    
+/// initialise and fill grid for grid subtration    
+    vector<vector<FourMomentum> >  fillGrid(const Event & event, std::set<std::pair<size_t,size_t> > & gridevent) {	    
+	    // initialise grid
+           vector<vector<FourMomentum> >  grid;
+           grid.resize(_nphibins);
+           for (size_t i = 0; i < _nphibins; ++i) {
+                  grid[i].resize(_netabins);
+		    for (size_t k = 0; k < _nphibins; ++k) {
+			    grid[i][k] = FourMomentum(0., 0., 0., 0.);
+		    }
+           }
+
+      // fill grid
+        foreach (const HepMC::GenParticle* p, particles(event.genEvent())) {
+            FourMomentum mom(p->momentum());
+            if (fabs(mom.eta()) < 4.) {
+               size_t phibin, etabin;
+               phibin = int(mom.phi(ZERO_2PI)*_nphibins/(2.*M_PI));
+               etabin = int((mom.eta() + 4.)*_netabins/8.);
+               if (phibin < 0 || phibin > _nphibins-1) {std::cout<<"Error: "<<mom.phi(ZERO_2PI)<<"  --> "<<phibin<<std::endl; exit(1);}
+               if (etabin < 0 || etabin > _netabins-1) {std::cout<<"Error: "<<mom.eta()<<"  --> "<<etabin<<std::endl; exit(1);}
+               if (p->status() == 3) {
+                   grid[phibin][etabin].setE(grid[phibin][etabin].E() - mom.E());
+                   grid[phibin][etabin].setPx(grid[phibin][etabin].px() - mom.px());
+                   grid[phibin][etabin].setPy(grid[phibin][etabin].py() - mom.py());
+                   grid[phibin][etabin].setPz(grid[phibin][etabin].pz() - mom.pz());
+               }
+               else {
+                   grid[phibin][etabin].setE(grid[phibin][etabin].E() + mom.E());
+                   grid[phibin][etabin].setPx(grid[phibin][etabin].px() + mom.px());
+                   grid[phibin][etabin].setPy(grid[phibin][etabin].py() + mom.py());
+                   grid[phibin][etabin].setPz(grid[phibin][etabin].pz() + mom.pz());    
+               }
+               /*double cellphi((phibin+0.5)*2*M_PI/_nphibins), celleta((etabin+0.5)*8./_netabins-4.);
+               double celltheta(2.*atan(exp(-celleta)));
+               if (p->status() == 3) {
+                   double rho(grid[phibin][etabin].E() - mom.E());
+                   grid[phibin][etabin].setE(rho);
+                   grid[phibin][etabin].setPx(fabs(rho)*sin(celltheta)*cos(cellphi));
+                   grid[phibin][etabin].setPy(fabs(rho)*sin(celltheta)*sin(cellphi));
+                   grid[phibin][etabin].setPz(fabs(rho)*cos(celltheta));
+               }
+               else {
+		     // use this for standard recoil treatment
+                   double rho(grid[phibin][etabin].E() + mom.E());
+                   grid[phibin][etabin].setE(rho);
+                   grid[phibin][etabin].setPx(rho*sin(celltheta)*cos(cellphi));
+                   grid[phibin][etabin].setPy(rho*sin(celltheta)*sin(cellphi));
+                   grid[phibin][etabin].setPz(rho*cos(celltheta));
+		 }*/
+               gridevent.insert(std::pair<size_t,size_t>(phibin,etabin));
+	     }
+	 }
+		return grid;
+    }  
+
+
+
+/// 4-momentum adapter
+    FourMomentum Get4Mom(PseudoJet pjet){
+        FourMomentum mom(pjet.E(), pjet.px(), pjet.py(), pjet.pz());
+        return mom;
+    }
+    
+    
+    
+
     /// Perform the per-event analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
-      const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
+      const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
       const Jets jets03 = applyProjection<FastJets>(event, "Jets03").jetsByPt(3.*GeV);
-      const ChargedFinalState tracks = applyProjection<ChargedFinalState>(event, "CFS");
+      const FinalState fs = applyProjection<FinalState>(event, "FS");
 
-      map<Jet, double, jetcomp> jetmap;
+      
+      Jets jetssub;
+#if MODE!=1      
+      vector<FourMomentum> thermom = extractThermalMomenta(event);
+      map<FourMomentum, FourMomentum, FourMomComp> thmommap = buildThMomMap(event, &thermom);
       foreach (Jet jet, jets03) {
+	      FourMomentum jetsub = SubtractJetMom(jet, &thmommap, 1.);
+	      jetssub.push_back(Jet(jetsub));
+      }
+#elif MODE==1
+      PseudoJets pevent, pjets;
+      std::set<std::pair<size_t,size_t> > gridevent;
+      vector<vector<FourMomentum> >  grid = fillGrid(event, gridevent);
+      for (set<pair<size_t,size_t> >::iterator it=gridevent.begin(); it!=gridevent.end(); ++it) {
+          size_t i,k;
+          i = it->first;
+          k = it->second;
+          if (grid[i][k].E() > 0. ) {
+              PseudoJet part(grid[i][k].px(),grid[i][k].py(),grid[i][k].pz(),grid[i][k].E());
+              pevent.push_back(part);
+          }
+      }
+      JetDefinition jet_def(antikt_algorithm, _jetR);
+      ClusterSequence cs(pevent, jet_def);
+      pjets = sorted_by_pt(cs.inclusive_jets(3.*GeV));
+      foreach (PseudoJet pjet, pjets) {
+	      jetssub.push_back(Jet(pjet));
+      }
+#endif
+      
+      
+      map<Jet, double, jetcomp> jetmap;
+      foreach (Jet jet, jetssub) {
 	double ptreco, ptgen;
 	ptgen = jet.momentum().pT();
 	ptreco = ptsmear(ptgen,cent);
 	jetmap[jet] = ptreco;
       }
 
       Jets jets;
-      foreach (Jet jet, jets03) {
+      foreach (Jet jet, jetssub) {
         if (fabs(jet.momentum().eta()) > 0.3 && fabs(jet.momentum().eta()) < 2.0 && jetmap[jet] > 100.*GeV)
           jets.push_back(jet);
       }
 
       //      if (jets.size() == 0) vetoEvent;
 
       foreach (Jet jet, jets) {
-	Njets+=weight;
+	      vector<double> difvec(_nbins, 0.), difvecvac(_nbins, 0.);
+	      vector<double> intvec(_nbins, 0.), intvecvac(_nbins, 0.);
+	_Njets+=weight;
 	double jetpt = jetmap[jet];
+#if MODE==0
+	double scalefac=1.;
+#elif MODE==2
+	double scalefac = getScaleFac(jet, _trackptmin);
+	_h_scalefac->fill(scalefac, weight);
+#endif
 	int bin;
-	foreach (Particle track, tracks.particles()){
-	  double dR(deltaR(track,jet));
-	  if (dR >= 0.3) continue;
-	  bin = int(dR*6./0.3);
-	  if (cent<0. || (cent>=0.0 && cent<0.1)) difvec[bin]+=weight*track.momentum().pT()/jetpt;
-	  if (cent<0.) difvecvac[bin]+=weight*track.momentum().pT()/jetpt;
-	  for (int j=bin; j<6; j++) {
-	    if (cent<0. || (cent>=0.0 && cent<0.1)) intvec[j]+=weight*track.momentum().pT()/jetpt;
-	    if (cent<0.) intvecvac[j]+=weight*track.momentum().pT()/jetpt;
+	foreach (Particle part, fs.particles()){
+	  double dR(deltaR(part,jet));
+	  if (dR >= _jetR) continue;
+	  bin = int(dR*_nbins/_jetR);
+#if MODE!=1
+	  if (part.E() < 1e-5 && part.E() > 1e-7) {
+		double thpt(0.);
+		if (thmommap.find(part.momentum()) == thmommap.end()) cout<<"Error: dummy not found in map.\n";
+		else {
+			thpt = thmommap[part.momentum()].pT();
+		       if (cent<0. || (cent>=0.0 && cent<0.1)) difvec[bin]-=scalefac*thpt/jetpt;
+			if (cent<0.) difvecvac[bin]-=scalefac*thpt/jetpt;
+			for (size_t j=bin; j<_nbins; j++) {
+				if (cent<0. || (cent>=0.0 && cent<0.1)) intvec[j]-=scalefac*thpt/jetpt;
+				if (cent<0.) intvecvac[j]-=scalefac*thpt/jetpt;
+			}
+		}
+	}
+#endif
+#if MODE==0
+	  else {
+		if (cent<0. || (cent>=0.0 && cent<0.1)) difvec[bin]+=part.momentum().pT()/jetpt;
+		if (cent<0.) difvecvac[bin]+=part.momentum().pT()/jetpt;
+		for (size_t j=bin; j<_nbins; j++) {
+			if (cent<0. || (cent>=0.0 && cent<0.1)) intvec[j]+=part.momentum().pT()/jetpt;
+			if (cent<0.) intvecvac[j]+=part.momentum().pT()/jetpt;
+		}
+	  }
+#elif MODE==2
+	  else if ((PID::charge(part.pdgId()) != 0) && (part.pT() > _trackptmin)) {
+	  //else if ((PID::charge(part.pdgId()) != 0)) {
+		if (cent<0. || (cent>=0.0 && cent<0.1)) difvec[bin]+=part.momentum().pT()/jetpt;
+		if (cent<0.) difvecvac[bin]+=part.momentum().pT()/jetpt;
+		for (size_t j=bin; j<_nbins; j++) {
+			if (cent<0. || (cent>=0.0 && cent<0.1)) intvec[j]+=part.momentum().pT()/jetpt;
+			if (cent<0.) intvecvac[j]+=part.momentum().pT()/jetpt;
+		}
 	  }
-          double z,xi;
-	  z = track.momentum().p().dot(jet.momentum().p())/jet.momentum().p().mod()/jet.momentum().p().mod();
-	  z*=jet.momentum().pT()/jetpt;
-	  xi = log(1/z);
-	  if (cent<0. || (cent>=0.0 && cent<0.1)) _h_ffxi->fill(xi,weight);
-	  if (cent<0.) _h_ffxiv->fill(xi,weight);
-	  if (cent<0. || (cent>=0.0 && cent<0.1)) _h_ffpt->fill(track.momentum().pT(),weight);
-	  if (cent<0.) _h_ffptv->fill(track.momentum().pT(),weight);
+#endif
+	  if ((PID::charge(part.pdgId()) != 0) && (part.pT() > _trackptmin)) {
+		double z,xi;
+		z = part.momentum().p3().dot(jet.momentum().p3())/jet.momentum().p3().mod()/jet.momentum().p3().mod();
+		z*=jet.momentum().pT()/jetpt;
+		xi = log(1/z);
+		if (cent<0. || (cent>=0.0 && cent<0.1)) _h_ffxi->fill(xi,weight);
+		if (cent<0.) _h_ffxiv->fill(xi,weight);
+		if (cent<0. || (cent>=0.0 && cent<0.1)) _h_ffpt->fill(part.momentum().pT(),weight);
+		if (cent<0.) _h_ffptv->fill(part.momentum().pT(),weight);
+	  }
+	}
+#if MODE==1
+	foreach (PseudoJet pjet, pevent) {
+		FourMomentum cellmom = Get4Mom(pjet);
+		double dR(deltaR(cellmom,jet));
+		if (dR >= _jetR) continue;
+		bin = int(dR*_nbins/_jetR);
+		if (cent<0. || (cent>=0.0 && cent<0.1)) difvec[bin]+=cellmom.pT()/jetpt;
+		if (cent<0.) difvecvac[bin]+=cellmom.pT()/jetpt;
+		for (size_t j=bin; j<_nbins; j++) {
+			if (cent<0. || (cent>=0.0 && cent<0.1)) intvec[j]+=cellmom.pT()/jetpt;
+			if (cent<0.) intvecvac[j]+=cellmom.pT()/jetpt;
+		}
+	}
+#endif
+	for (size_t i=0; i < _nbins; ++i){
+		_p_difjetshape->fill(_delR_center[i], difvec[i]/_deltar, weight);
+		_p_difjetshapev->fill(_delR_center[i], difvecvac[i]/_deltar, weight);
+		_p_intjetshape->fill(_delR_center[i], intvec[i], weight);
+		_p_intjetshapev->fill(_delR_center[i], intvecvac[i], weight);
 	}
       }
     }
 
 
     /// Normalise histograms etc., after the run
     void finalize() {
 
-      double sum(0.),sumv(0.);
-      for (int j=0; j<6; j++){
-	sum  += difvec[j];
-	sumv += difvecvac[j];
-      }
-      sum *= 0.05; sumv *= 0.05;
-
-      if (sum == 0.) sum = 1.;
-      if (sumv == 0.) sumv = 1.;
-      if (intvec[5] == 0.) intvec[5] = 1.;
-      for (int j=0; j<6; j++){
-	_d_difjetshape->point(j)->coordinate(1)->setValue(difvec[j]/sum);
-	_d_difjetshapev->point(j)->coordinate(1)->setValue(difvecvac[j]/sumv);
-	_d_intjetshape->point(j)->coordinate(1)->setValue(intvec[j]/intvec[5]);
-	_d_intjetshapev->point(j)->coordinate(1)->setValue(intvecvac[j]/intvec[5]);
-      }
-
-      //	normalize(_d_difjetshape);
-      //	normalize(_d_difjetshapev);
-
-      if (Njets==0.) Njets=1.;
-      scale(_h_ffxi,1./Njets);
-      scale(_h_ffxiv,1./Njets);
-      scale(_h_ffpt,1./Njets);
-      scale(_h_ffptv,1./Njets);
+      if (_Njets==0.) _Njets=1.;
+      scale(_h_ffxi,1./_Njets);
+      scale(_h_ffxiv,1./_Njets);
+      scale(_h_ffpt,1./_Njets);
+      scale(_h_ffptv,1./_Njets);
+#if MODE==2
+      normalize(_h_scalefac);
+#endif
     }
 
 
   private:
 
-    double Njets;
-    double _jetR;
-    std::vector<double> difvec;
-    std::vector<double> intvec;
-    std::vector<double> difvecvac;
-    std::vector<double> intvecvac;
+    double _Njets;
+    double _jetR, _trackptmin;
+    double _deltar;
+    vector<double> _delR_center;
+    size_t _nbins;
+    size_t _netabins, _nphibins;
 
   private:
 
-    AIDA::IDataPointSet *_d_intjetshape;
-    AIDA::IDataPointSet *_d_intjetshapev;
-    AIDA::IDataPointSet *_d_difjetshape;
-    AIDA::IDataPointSet *_d_difjetshapev;
-    AIDA::IHistogram1D *_h_ffxi;
-    AIDA::IHistogram1D *_h_ffxiv;
-    AIDA::IHistogram1D *_h_ffpt;
-    AIDA::IHistogram1D *_h_ffptv;
+    Profile1DPtr _p_intjetshape;
+    Profile1DPtr _p_intjetshapev;
+    Profile1DPtr _p_difjetshape;
+    Profile1DPtr _p_difjetshapev;
+    Histo1DPtr _h_ffxi;
+    Histo1DPtr _h_ffxiv;
+    Histo1DPtr _h_ffpt;
+    Histo1DPtr _h_ffptv;
+#if MODE==2
+    Histo1DPtr _h_scalefac;
+#endif    
 
   };
 
 
 
   // The hook for the plugin system
-  DECLARE_RIVET_PLUGIN(CMS_2013_I1256590);
-
+#if MODE==0  
+  DECLARE_RIVET_PLUGIN(CMS_2013_I1256590_4MOMSUB);
+#elif MODE==1
+  DECLARE_RIVET_PLUGIN(CMS_2013_I1256590_GRIDSUB2);
+#elif MODE==2
+  DECLARE_RIVET_PLUGIN(CMS_2013_I1256590_CHARGED);
+#endif
+  
 }
Index: trunk/code/CMS_2014_I1299142.cc
===================================================================
--- trunk/code/CMS_2014_I1299142.cc	(revision 0)
+++ trunk/code/CMS_2014_I1299142.cc	(revision 452)
@@ -0,0 +1,317 @@
+// -*- C++ -*-
+#include "Rivet/Analysis.hh"
+#include "Rivet/Projections/FinalState.hh"
+#include "Rivet/Projections/ChargedFinalState.hh"
+#include "Rivet/Projections/FastJets.hh"
+
+namespace Rivet {
+
+using namespace fastjet;
+	
+	struct FourMomComp {
+        bool operator() (const FourMomentum& p1, const FourMomentum& p2) const
+       {return p1.pT()<p2.pT();}
+    };
+
+
+    struct jetcomp{
+      bool operator() (const Jet jet1, const Jet jet2) const
+      {
+        if (jet1.momentum().pT() < jet2.momentum().pT()) return true;
+        else return false;
+      }
+    };
+
+
+#if MODE==0
+  class CMS_2014_I1299142_4MOMSUB : public Analysis {
+#elif MODE==1
+  class CMS_2014_I1299142_GRIDSUB2 : public Analysis {
+#endif
+  public:
+
+    /// Constructor
+#if MODE==0
+    CMS_2014_I1299142_4MOMSUB() : Analysis("CMS_2014_I1299142_4MOMSUB")
+#elif MODE==1
+    CMS_2014_I1299142_GRIDSUB2() : Analysis("CMS_2014_I1299142_GRIDSUB2")
+#endif
+    {
+      _jetR=0.3; _trackptmin=1.; _etamin=0.3; _etamax=2.; _ptmin=100.; _ptmax=300.;
+      _nphibins = 120; _netabins = 160;
+      _Njets=0.;	    
+    }
+
+
+    /// Book histograms and initialise projections before the run
+    void init() {
+
+       FinalState fs(-5.0, 5.0, 0.*GeV);
+       addProjection(fs, "FS");
+       ChargedFinalState cfs(-5.0, 5.0, _trackptmin*GeV);
+       addProjection(cfs, "CFS");
+	
+       FastJets fj(fs, FastJets::ANTIKT, _jetR);
+       addProjection(fj, "Jets");
+
+	_h_xi = bookHisto1D("xi", 10, 0., 5.);
+	
+    }
+
+
+
+    double ptsmear(const double pttrue, const double cent) {
+      double c(0.0246);
+      double s(1.213);
+      double n;
+      if (cent < 0.  || cent > 0.5) n=0.001;
+      if (cent > 0.3 && cent < 0.5) n=3.88;
+      if (cent > 0.1 && cent < 0.3) n=5.10;
+      if (cent > 0.  && cent < 0.1) n=5.23;
+      n=5.23;
+      double sigma(sqrt(c*c+s*s/pttrue+n*n/(pttrue*pttrue)));
+      double r1(1.0*rand()/RAND_MAX), r2(1.0*rand()/RAND_MAX);
+      double fac(max(sqrt(-2.*log(r1))*cos(2.*M_PI*r2)*sigma+1.,0.));
+      return fac*pttrue;
+    }    
+
+    
+    /// extract thermal momenta, that should be subtracted, from HepMC event
+    vector<FourMomentum> extractThermalMomenta(const Event & event) {
+	 vector<FourMomentum> thermom;
+        foreach (const HepMC::GenParticle* p, particles(event.genEvent())) {
+            FourMomentum mom(p->momentum());
+               if (p->status() == 3) {
+                   thermom.push_back(mom);
+               }
+	 }
+	 return thermom;
+    }
+    
+    
+    /// build map from dummy particles to thermal momenta to speed up subtraction
+    map<FourMomentum, FourMomentum, FourMomComp> buildThMomMap(const Event & event, const vector<FourMomentum> * thermom) {
+	    map<FourMomentum, FourMomentum, FourMomComp> thmap;
+           foreach (const HepMC::GenParticle* p, particles(event.genEvent())) {
+                  FourMomentum mom(p->momentum());
+                  if (mom.E() < 1e-5 && mom.E() > 1e-7) {
+		           FourMomentum dummy(mom);
+                         dummy *= 10000.;
+			    double dRmin(1.);
+			    FourMomentum match;
+			     foreach (FourMomentum tm, *thermom) {
+				     double dR(deltaR(dummy, tm));
+				     if (dR < dRmin) {
+					     dRmin = dR;
+					     match = tm;
+				     }
+			     }
+			     if (dRmin < 1e-5) {
+				     map<FourMomentum, FourMomentum, FourMomComp>::iterator mapit;
+				     mapit = thmap.find(mom);
+				     if (mapit != thmap.end()) {
+						cout<<"Error: dummy is already in map.\n";
+						cout<<mapit->first<<endl;
+						cout<<mapit->second<<endl;
+						cout<<match<<endl;
+				     }
+                                 thmap[mom]=match;				     
+                          }
+		    }
+	    }
+	    return thmap;
+    }
+    
+    
+    /// 4-momentum subtraction
+    FourMomentum SubtractJetMom(Jet jet, map<FourMomentum, FourMomentum, FourMomComp> * tmmap, double fac = 1.) {
+        if (tmmap->empty()) return jet.momentum();
+        FourMomentum sub(0.,0.,0.,0.);
+        foreach (Particle part, jet.constituents()) {
+            if (part.E() < 1e-5 && part.E() > 1e-7) { 
+                    map<FourMomentum, FourMomentum, FourMomComp>::iterator mapit;
+                    mapit = (*tmmap).find(part.momentum());
+                    if (mapit == (*tmmap).end()) cout<<"Error: did not find matching scattering centre in map.\n"<<part.momentum()<<endl;
+                    else sub += mapit->second;
+	     }
+        }
+        FourMomentum jetmom(jet.momentum());
+        //cout<<"Original momentum: "<<jetmom<<endl;
+        jetmom -= sub;
+        //cout<<"subtracted momentum: "<<jetmom<<endl;
+        //cout<<"Subtracted pt: "<<subpt<<"    "<<pjet.pt()<<endl;
+        return jetmom;
+    }
+
+    
+/// initialise and fill grid for grid subtration    
+    vector<vector<FourMomentum> >  fillGrid(const Event & event, std::set<std::pair<size_t,size_t> > & gridevent) {	    
+	    // initialise grid
+           vector<vector<FourMomentum> >  grid;
+           grid.resize(_nphibins);
+           for (size_t i = 0; i < _nphibins; ++i) {
+                  grid[i].resize(_netabins);
+		    for (size_t k = 0; k < _nphibins; ++k) {
+			    grid[i][k] = FourMomentum(0., 0., 0., 0.);
+		    }
+           }
+
+      // fill grid
+        foreach (const HepMC::GenParticle* p, particles(event.genEvent())) {
+            FourMomentum mom(p->momentum());
+            if (fabs(mom.eta()) < 4.) {
+               size_t phibin, etabin;
+               phibin = int(mom.phi(ZERO_2PI)*_nphibins/(2.*M_PI));
+               etabin = int((mom.eta() + 4.)*_netabins/8.);
+               if (phibin < 0 || phibin > _nphibins-1) {std::cout<<"Error: "<<mom.phi(ZERO_2PI)<<"  --> "<<phibin<<std::endl; exit(1);}
+               if (etabin < 0 || etabin > _netabins-1) {std::cout<<"Error: "<<mom.eta()<<"  --> "<<etabin<<std::endl; exit(1);}
+               if (p->status() == 3) {
+                   grid[phibin][etabin].setE(grid[phibin][etabin].E() - mom.E());
+                   grid[phibin][etabin].setPx(grid[phibin][etabin].px() - mom.px());
+                   grid[phibin][etabin].setPy(grid[phibin][etabin].py() - mom.py());
+                   grid[phibin][etabin].setPz(grid[phibin][etabin].pz() - mom.pz());
+               }
+               else {
+                   grid[phibin][etabin].setE(grid[phibin][etabin].E() + mom.E());
+                   grid[phibin][etabin].setPx(grid[phibin][etabin].px() + mom.px());
+                   grid[phibin][etabin].setPy(grid[phibin][etabin].py() + mom.py());
+                   grid[phibin][etabin].setPz(grid[phibin][etabin].pz() + mom.pz());    
+               }
+               /*double cellphi((phibin+0.5)*2*M_PI/_nphibins), celleta((etabin+0.5)*8./_netabins-4.);
+               double celltheta(2.*atan(exp(-celleta)));
+               if (p->status() == 3) {
+                   double rho(grid[phibin][etabin].E() - mom.E());
+                   grid[phibin][etabin].setE(rho);
+                   grid[phibin][etabin].setPx(fabs(rho)*sin(celltheta)*cos(cellphi));
+                   grid[phibin][etabin].setPy(fabs(rho)*sin(celltheta)*sin(cellphi));
+                   grid[phibin][etabin].setPz(fabs(rho)*cos(celltheta));
+               }
+               else {
+		     // use this for standard recoil treatment
+                   double rho(grid[phibin][etabin].E() + mom.E());
+                   grid[phibin][etabin].setE(rho);
+                   grid[phibin][etabin].setPx(rho*sin(celltheta)*cos(cellphi));
+                   grid[phibin][etabin].setPy(rho*sin(celltheta)*sin(cellphi));
+                   grid[phibin][etabin].setPz(rho*cos(celltheta));
+		 }*/
+               gridevent.insert(std::pair<size_t,size_t>(phibin,etabin));
+	     }
+	 }
+		return grid;
+    }  
+
+
+
+/// 4-momentum adapter
+    FourMomentum Get4Mom(PseudoJet pjet){
+        FourMomentum mom(pjet.E(), pjet.px(), pjet.py(), pjet.pz());
+        return mom;
+    }
+    
+    
+    
+
+    /// Perform the per-event analysis
+    void analyze(const Event& event) {
+      const double weight = event.weight();
+      const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
+      if (cent > 0.1) vetoEvent;
+      const ChargedFinalState cfs = applyProjection<ChargedFinalState>(event, "CFS");
+      
+      Jets jetssub;
+#if MODE==0      
+      const Jets alljets = applyProjection<FastJets>(event, "Jets").jetsByPt(3.*GeV);
+
+      vector<FourMomentum> thermom = extractThermalMomenta(event);
+      map<FourMomentum, FourMomentum, FourMomComp> thmommap = buildThMomMap(event, &thermom);
+      foreach (Jet jet, alljets) {
+	      FourMomentum jetsub = SubtractJetMom(jet, &thmommap, 1.);
+	      jetssub.push_back(Jet(jetsub));
+      }
+#elif MODE==1
+      PseudoJets pevent, pjets;
+      std::set<std::pair<size_t,size_t> > gridevent;
+      vector<vector<FourMomentum> >  grid = fillGrid(event, gridevent);
+      for (set<pair<size_t,size_t> >::iterator it=gridevent.begin(); it!=gridevent.end(); ++it) {
+          size_t i,k;
+          i = it->first;
+          k = it->second;
+          if (grid[i][k].E() > 0. ) {
+              PseudoJet part(grid[i][k].px(),grid[i][k].py(),grid[i][k].pz(),grid[i][k].E());
+              pevent.push_back(part);
+          }
+      }
+      JetDefinition jet_def(antikt_algorithm, _jetR);
+      ClusterSequence cs(pevent, jet_def);
+      pjets = sorted_by_pt(cs.inclusive_jets(3.*GeV));
+      foreach (PseudoJet pjet, pjets) {
+	      jetssub.push_back(Jet(pjet));
+      }
+#endif
+      
+      
+      map<Jet, double, jetcomp> jetmap;
+      foreach (Jet jet, jetssub) {
+	double ptreco, ptgen;
+	ptgen = jet.momentum().pT();
+	ptreco = ptsmear(ptgen,cent);
+	jetmap[jet] = ptreco;
+      }
+
+      Jets jets;
+      foreach (Jet jet, jetssub) {
+        if (fabs(jet.momentum().eta()) > _etamin && fabs(jet.momentum().eta()) < _etamax && 
+	     jetmap[jet] > _ptmin && jetmap[jet] > _ptmax)
+		jets.push_back(jet);
+      }
+
+       foreach (Jet jet, jets) {
+		_Njets+=weight;
+		double jetpt = jetmap[jet];
+		foreach (Particle part, cfs.particles()){
+			double dR(deltaR(part,jet));
+			if (dR >= _jetR) continue;
+			double z,xi;
+			z = part.momentum().p3().dot(jet.momentum().p3())/jet.momentum().p3().mod()/jet.momentum().p3().mod();
+			z*=jet.momentum().pT()/jetpt;
+			xi = log(1./z);
+			_h_xi->fill(xi, weight);
+		}
+	}
+     
+
+    }
+
+
+    /// Normalise histograms etc., after the run
+    void finalize() {
+
+      if (_Njets==0.) _Njets=1.;
+      scale(_h_xi,1./_Njets);
+
+    }
+
+
+
+  private:
+
+    double _Njets;
+    double _jetR, _trackptmin, _etamin, _etamax, _ptmin, _ptmax;
+    size_t _netabins, _nphibins;
+
+
+    Histo1DPtr _h_xi;
+
+
+  };
+
+
+
+  // The hook for the plugin system
+#if MODE==0
+  DECLARE_RIVET_PLUGIN(CMS_2014_I1299142_4MOMSUB);
+#elif MODE==1
+  DECLARE_RIVET_PLUGIN(CMS_2014_I1299142_GRIDSUB2);
+#endif
+  
+}
Index: trunk/code/ALICE_GIRTH_4MOMSUB.yoda
===================================================================
--- trunk/code/ALICE_GIRTH_4MOMSUB.yoda	(revision 0)
+++ trunk/code/ALICE_GIRTH_4MOMSUB.yoda	(revision 452)
@@ -0,0 +1,15 @@
+BEGIN YODA_SCATTER2D /REF/ALICE_GIRTH_4MOMSUB/d01-x01-y01
+Path=/REF/ALICE_GIRTH_4MOMSUB/d01-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+1.000000e-02	1.000000e-02	1.000000e-02	6.029440e+00	1.576580e+00	1.576580e+00
+2.500000e-02	5.000000e-03	5.000000e-03	1.667840e+01	1.576600e+00	1.576600e+00
+3.500000e-02	5.000000e-03	5.000000e-03	1.820320e+01	1.632900e+00	1.632900e+00
+4.500000e-02	5.000000e-03	5.000000e-03	1.736340e+01	1.632900e+00	1.632900e+00
+5.500000e-02	5.000000e-03	5.000000e-03	1.449650e+01	9.572000e-01	9.572000e-01
+6.500000e-02	5.000000e-03	5.000000e-03	1.101010e+01	1.745500e+00	1.745500e+00
+7.500000e-02	5.000000e-03	5.000000e-03	5.778360e+00	9.572100e-01	9.572100e-01
+1.000000e-01	2.000000e-02	2.000000e-02	1.172950e+00	4.504500e-01	4.504500e-01
+END YODA_SCATTER2D
+
Index: trunk/code/CMS_2012_I1116250.cc
===================================================================
--- trunk/code/CMS_2012_I1116250.cc	(revision 451)
+++ trunk/code/CMS_2012_I1116250.cc	(revision 452)
@@ -1,356 +1,354 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 #include "Rivet/Tools/Logging.hh"
-#include "Rivet/RivetAIDA.hh"
 #include <boost/lexical_cast.hpp>
 #include <map>
 namespace Rivet {
 
 
   /// @brief CMS charged particle fragmentation function in PbPb
   class CMS_2012_I1116250 : public Analysis {
   public:
 
     /// Constructor
     CMS_2012_I1116250() : Analysis("CMS_2012_I1116250"),
         _sumWeightSelected0(0.0), 
         _sumWeightSelected1l(0.0), _sumWeightSelected2l(0.0), _sumWeightSelected3l(0.0), _sumWeightSelected4l(0.0),
         _sumWeightSelected1s(0.0), _sumWeightSelected2s(0.0), _sumWeightSelected3s(0.0), _sumWeightSelected4s(0.0)
     {
-      setBeams(PROTON, PROTON);
     }
 
     /// Book projections and histograms
     void init() {
       FinalState fs(-5.0, 5.0, 0.*GeV);
 	addProjection(fs, "FS");
       ChargedFinalState cfs(-5.0, 5.0, 4.*GeV);
 	addProjection(cfs, "CFS");
 	
 	FastJets fj03(fs, FastJets::ANTIKT, 0.3);
       addProjection(fj03, "Jets03");
 
-	_h_aj_pp      = bookHistogram1D(1, 1, 1);
-	_h_aj_hi      = bookHistogram1D(2, 1, 1);
-	_h_pt_l_pp    = bookHistogram1D(3, 1, 1);
-	_h_pt_s_pp    = bookHistogram1D(4, 1, 1);
-	_h_xsi_l_pp   = bookHistogram1D(5, 1, 1);
-	_h_xsi_s_pp   = bookHistogram1D(6, 1, 1);
-	_h_pt_l_hi    = bookHistogram1D(7, 1, 1);
-	_h_pt_s_hi    = bookHistogram1D(8, 1, 1);
-	_h_xsi_l_hi   = bookHistogram1D(9, 1, 1);
-	_h_xsi_s_hi   = bookHistogram1D(10, 1, 1);
-	_h_pt_1_l_hi  = bookHistogram1D(11, 1, 1);
-	_h_pt_1_s_hi  = bookHistogram1D(12, 1, 1);
-	_h_pt_2_l_hi  = bookHistogram1D(13, 1, 1);
-	_h_pt_2_s_hi  = bookHistogram1D(14, 1, 1);
-	_h_pt_3_l_hi  = bookHistogram1D(15, 1, 1);
-	_h_pt_3_s_hi  = bookHistogram1D(16, 1, 1);
-	_h_pt_4_l_hi  = bookHistogram1D(17, 1, 1);
-	_h_pt_4_s_hi  = bookHistogram1D(18, 1, 1);
-	_h_xsi_1_l_hi = bookHistogram1D(19, 1, 1);
-	_h_xsi_1_s_hi = bookHistogram1D(20, 1, 1);
-	_h_xsi_2_l_hi = bookHistogram1D(21, 1, 1);
-	_h_xsi_2_s_hi = bookHistogram1D(22, 1, 1);
-	_h_xsi_3_l_hi = bookHistogram1D(23, 1, 1);
-	_h_xsi_3_s_hi = bookHistogram1D(24, 1, 1);
-	_h_xsi_4_l_hi = bookHistogram1D(25, 1, 1);
-	_h_xsi_4_s_hi = bookHistogram1D(26, 1, 1);
+	_h_aj_pp      = bookHisto1D(1, 1, 1);
+	_h_aj_hi      = bookHisto1D(2, 1, 1);
+	_h_pt_l_pp    = bookHisto1D(3, 1, 1);
+	_h_pt_s_pp    = bookHisto1D(4, 1, 1);
+	_h_xsi_l_pp   = bookHisto1D(5, 1, 1);
+	_h_xsi_s_pp   = bookHisto1D(6, 1, 1);
+	_h_pt_l_hi    = bookHisto1D(7, 1, 1);
+	_h_pt_s_hi    = bookHisto1D(8, 1, 1);
+	_h_xsi_l_hi   = bookHisto1D(9, 1, 1);
+	_h_xsi_s_hi   = bookHisto1D(10, 1, 1);
+	_h_pt_1_l_hi  = bookHisto1D(11, 1, 1);
+	_h_pt_1_s_hi  = bookHisto1D(12, 1, 1);
+	_h_pt_2_l_hi  = bookHisto1D(13, 1, 1);
+	_h_pt_2_s_hi  = bookHisto1D(14, 1, 1);
+	_h_pt_3_l_hi  = bookHisto1D(15, 1, 1);
+	_h_pt_3_s_hi  = bookHisto1D(16, 1, 1);
+	_h_pt_4_l_hi  = bookHisto1D(17, 1, 1);
+	_h_pt_4_s_hi  = bookHisto1D(18, 1, 1);
+	_h_xsi_1_l_hi = bookHisto1D(19, 1, 1);
+	_h_xsi_1_s_hi = bookHisto1D(20, 1, 1);
+	_h_xsi_2_l_hi = bookHisto1D(21, 1, 1);
+	_h_xsi_2_s_hi = bookHisto1D(22, 1, 1);
+	_h_xsi_3_l_hi = bookHisto1D(23, 1, 1);
+	_h_xsi_3_s_hi = bookHisto1D(24, 1, 1);
+	_h_xsi_4_l_hi = bookHisto1D(25, 1, 1);
+	_h_xsi_4_s_hi = bookHisto1D(26, 1, 1);
     }
     
     struct jetcomp{
       bool operator() (const Jet jet1, const Jet jet2) const
       {
         if (jet1.momentum().pT() < jet2.momentum().pT()) return true;
         else return false;
       }
     };
 
     double ptsmear(const double pttrue, const double cent) {
       double c(0.0246);
 	double s(1.213);
 	double n;
 	if (cent < 0.  || cent > 0.5) n=0.001;
 	if (cent > 0.3  && cent < 0.5) n=3.88;
 	if (cent > 0.1 && cent < 0.3) n=5.10;
 	if (cent > 0. && cent < 0.1) n=5.23;
 //	n=5.23;
 	double sigma(sqrt(c*c+s*s/pttrue+n*n/(pttrue*pttrue)));
 	double r1(1.0*rand()/RAND_MAX), r2(1.0*rand()/RAND_MAX);
 	double fac(max(sqrt(-2.*log(r1))*cos(2.*M_PI*r2)*sigma+1.,0.));
 //	std::cout<<sigma<<std::endl;
 	return fac*pttrue;
     } 
    
     /// Do the analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
-	const double centrality = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
+	const double centrality = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
       const Jets jets03 = applyProjection<FastJets>(event, "Jets03").jetsByPt(3.*GeV);
       const ChargedFinalState tracks = applyProjection<ChargedFinalState>(event, "CFS");
 
 	map<Jet, double, jetcomp> jetmap;
 	foreach (Jet jet, jets03) {
 	  double ptreco, ptgen;
 	  ptgen = jet.momentum().pT();
 	  ptreco = ptsmear(ptgen,centrality);
 	  jetmap[jet] = ptreco;
       }
 
       Jets jets;
       foreach (Jet jet, jets03) {
         if (fabs(jet.momentum().eta()) < 2.0 && jetmap[jet] > 40.*GeV)
           jets.push_back(jet);
       }
 
       if (jets.size() < 2) vetoEvent;
 
 	Jet leadjet, partner;
 	double ptlead(0.), ptsublead(0.);
 	foreach (Jet jet, jets) {
 	  if (jetmap[jet] > ptlead) {
 	    ptlead = jetmap[jet];
 	    leadjet = jet;
 	  }
       }
 		
 	if (ptlead < 100.*GeV) vetoEvent;
 
 	foreach (Jet jet, jets) {
 	  if (jetmap[jet] > ptsublead && jet.momentum()!=leadjet.momentum()) {
 	    ptsublead = jetmap[jet];
 	    partner = jet;
 	  }
       }
 
 	double deltaphi = fabs(deltaPhi(leadjet,partner));
       if (deltaphi < 2.*M_PI/3.) vetoEvent;
 
       Rivet::FourMomentum leading, sublead,tleading, tsublead;
 	leading = leadjet.momentum();
 	sublead = partner.momentum();
 	
       _sumWeightSelected0+=weight;
       if (centrality<0.) _h_pt_l_pp->fill(ptlead,weight);
 	if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_pt_l_hi->fill(ptlead,weight);
 	if (centrality<0.) _h_pt_s_pp->fill(ptsublead,weight);
 	if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_pt_s_hi->fill(ptsublead,weight);
 	
 	double aj = (ptlead-ptsublead)/(ptlead+ptsublead);
 	if (aj > 0.7) vetoEvent;
 	
 	if (centrality<0.) _h_aj_pp->fill(aj,weight);
 	if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_aj_hi->fill(aj,weight);
 
 	double meaneta = (leading.eta()+sublead.eta())/2.;
 	
 	std::vector<Rivet::FourMomentum> trackslead, trackssubl;
 	
       if (fabs(leading.eta())>0.3) {
 	  if (aj < 0.13) {
           _sumWeightSelected1l+=weight;
           if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_pt_1_l_hi->fill(ptlead,weight);
 	  }
 	  else if (aj < 0.24) {
           _sumWeightSelected2l+=weight;
 	    if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_pt_2_l_hi->fill(ptlead,weight);
 	  }
 	  else if (aj < 0.35) {
           _sumWeightSelected3l+=weight;
 	    if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_pt_3_l_hi->fill(ptlead,weight);
 	  }
 	  else if (aj < 0.7) {
           _sumWeightSelected4l+=weight;
 	    if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_pt_4_l_hi->fill(ptlead,weight);
 	  }
 	  foreach (Particle track, tracks.particles()){
 	    double dR(deltaR(track,leading));
 	    if (dR < 0.3) trackslead.push_back(track.momentum());
 	  }
 	  tleading[0] = (cosh(meaneta)*leading[0]-sinh(meaneta)*leading[3])*ptlead/leading.pT();
 	  tleading[1] = leading[1]*ptlead/leading.pT();
 	  tleading[2] = leading[2]*ptlead/leading.pT();
 	  tleading[3] = (-sinh(meaneta)*leading[0]+cosh(meaneta)*leading[3])*ptlead/leading.pT();
 //	  std::cout<<"-------------------------------------- "<<std::endl;
 //	  std::cout<<"leading jet momentum: "<<leading<<"  "<<leading.eta()<<std::endl;
 //	  std::cout<<"transformed leading jet momentum: "<<tleading<<"  "<<tleading.eta()<<std::endl;
 //	  std::cout<<"-------------------------------------- "<<std::endl;
 //	  std::cout<<"N(tracks): "<<trackslead.size()<<std::endl;
         for (size_t i=0; i<trackslead.size(); i++){
 // 	    std::cout<<i<<"  "<<trackslead[i]<<std::endl;
 	    double enew  =  cosh(meaneta)*trackslead[i][0]-sinh(meaneta)*trackslead[i][3];
 	    double pznew = -sinh(meaneta)*trackslead[i][0]+cosh(meaneta)*trackslead[i][3];
 	    trackslead[i][0] = enew;
 	    trackslead[i][3] = pznew;
-	    double plongtrack = trackslead[i].p().dot(tleading.p())/tleading.p().mod();
-	    double z = plongtrack/tleading.p().mod();
+	    double plongtrack = trackslead[i].p3().dot(tleading.p3())/tleading.p3().mod();
+	    double z = plongtrack/tleading.p3().mod();
 	    double xsi = log(1/z);
 //	    std::cout<<"plongtrack: "<<plongtrack<<std::endl;
 //	    std::cout<<"z: "<<z<<std::endl;
 //	    std::cout<<"xsi: "<<xsi<<std::endl;
 	    
 	    if (centrality<0.) _h_xsi_l_pp->fill(xsi,weight);
 	    if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_xsi_l_hi->fill(xsi,weight);
 	    if (aj < 0.13) {
 		if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_xsi_1_l_hi->fill(xsi,weight);
 	    }
 	    else if (aj < 0.24) {
 		if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_xsi_2_l_hi->fill(xsi,weight);
 	    }
 	    else if (aj < 0.35) {
 		if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_xsi_3_l_hi->fill(xsi,weight);
 	    }
 	    else if (aj < 0.7) {
 		if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_xsi_4_l_hi->fill(xsi,weight);
 	    }
 	  }	    
 	}
 
       if (fabs(sublead.eta())>0.3) {	
 	  if (aj < 0.13) {
           _sumWeightSelected1s+=weight;
 	    if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_pt_1_s_hi->fill(ptsublead,weight);
 	  }
 	  else if (aj < 0.24) {
           _sumWeightSelected2s+=weight;
 	    if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_pt_2_s_hi->fill(ptsublead,weight);
 	  }
 	  else if (aj < 0.35) {
           _sumWeightSelected3s+=weight;
 	    if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_pt_3_s_hi->fill(ptsublead,weight);
 	  }
 	  else if (aj < 0.7) {
           _sumWeightSelected4s+=weight;
 	    if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_pt_4_s_hi->fill(ptsublead,weight);
 	  }
 	  foreach (Particle track, tracks.particles()){
 	    double dR(deltaR(track,sublead));
 	    if (dR < 0.3) trackssubl.push_back(track.momentum());
 	  }
 	  tsublead[0] = (cosh(meaneta)*sublead[0]-sinh(meaneta)*sublead[3])*ptsublead/sublead.pT();
 	  tsublead[1] = sublead[1]*ptsublead/sublead.pT();
 	  tsublead[2] = sublead[2]*ptsublead/sublead.pT();
 	  tsublead[3] = (-sinh(meaneta)*sublead[0]+cosh(meaneta)*sublead[3])*ptsublead/sublead.pT();
 //	  std::cout<<"subleading jet momentum: "<<sublead<<"  "<<sublead.eta()<<std::endl;
 //	  std::cout<<"transformed subleading jet momentum: "<<tsublead<<"  "<<tsublead.eta()<<std::endl;
         for (size_t i=0; i<trackssubl.size(); i++){
 	    double enew  =  cosh(meaneta)*trackssubl[i][0]-sinh(meaneta)*trackssubl[i][3];
 	    double pznew = -sinh(meaneta)*trackssubl[i][0]+cosh(meaneta)*trackssubl[i][3];
 	    trackssubl[i][0] = enew;
 	    trackssubl[i][3] = pznew;
-	    double plongtrack = trackssubl[i].p().dot(tsublead.p())/tsublead.p().mod();
-	    double z = plongtrack/tsublead.p().mod();
+	    double plongtrack = trackssubl[i].p3().dot(tsublead.p3())/tsublead.p3().mod();
+	    double z = plongtrack/tsublead.p3().mod();
 	    double xsi = log(1/z);
 	    
 	    if (centrality<0.) _h_xsi_s_pp->fill(xsi,weight);
 	    if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_xsi_s_hi->fill(xsi,weight);
 	    if (aj < 0.13) {
 		if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_xsi_1_s_hi->fill(xsi,weight);
 	    }
 	    else if (aj < 0.24) {
 		if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_xsi_2_s_hi->fill(xsi,weight);
 	    }
 	    else if (aj < 0.35) {
 		if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_xsi_3_s_hi->fill(xsi,weight);
 	    }
 	    else if (aj < 0.7) {
 		if (centrality<0. || (centrality>=0.0 && centrality<0.3)) _h_xsi_4_s_hi->fill(xsi,weight);
 	    }
 	  }	    
 	}
     }
 
 	
 	
     /// Finalize
     void finalize() {
 	double sumWeightSelectedl = _sumWeightSelected1l+_sumWeightSelected2l+_sumWeightSelected3l+_sumWeightSelected4l;
 	double sumWeightSelecteds = _sumWeightSelected1s+_sumWeightSelected2s+_sumWeightSelected3s+_sumWeightSelected4s;
 	if (_sumWeightSelected0==0) _sumWeightSelected0=1.;
 	if (_sumWeightSelected1l==0) _sumWeightSelected1l=1.;
 	if (_sumWeightSelected2l==0) _sumWeightSelected2l=1.;
 	if (_sumWeightSelected3l==0) _sumWeightSelected3l=1.;
 	if (_sumWeightSelected4l==0) _sumWeightSelected4l=1.;
 	if (_sumWeightSelected1s==0) _sumWeightSelected1s=1.;
 	if (_sumWeightSelected2s==0) _sumWeightSelected2s=1.;
 	if (_sumWeightSelected3s==0) _sumWeightSelected3s=1.;
 	if (_sumWeightSelected4s==0) _sumWeightSelected4s=1.;
 	if (sumWeightSelectedl==0) sumWeightSelectedl=1.;
 	if (sumWeightSelecteds==0) sumWeightSelecteds=1.;
 
 	scale(_h_aj_pp,0.06/_sumWeightSelected0);
 	scale(_h_aj_hi,0.06/_sumWeightSelected0);
 	scale(_h_pt_l_pp,1./_sumWeightSelected0);
 	scale(_h_pt_s_pp,1./_sumWeightSelected0);
 	scale(_h_xsi_l_pp,1./sumWeightSelectedl);
 	scale(_h_xsi_s_pp,1./sumWeightSelecteds);
 	scale(_h_pt_l_hi,1./_sumWeightSelected0);
 	scale(_h_pt_s_hi,1./_sumWeightSelected0);
 	scale(_h_xsi_l_hi,1./sumWeightSelectedl);
 	scale(_h_xsi_s_hi,1./sumWeightSelecteds);
 	scale(_h_pt_1_l_hi,1./_sumWeightSelected1l);
 	scale(_h_pt_1_s_hi,1./_sumWeightSelected1s);
 	scale(_h_pt_2_l_hi,1./_sumWeightSelected2l);
 	scale(_h_pt_2_s_hi,1./_sumWeightSelected2s);
 	scale(_h_pt_3_l_hi,1./_sumWeightSelected3l);
 	scale(_h_pt_3_s_hi,1./_sumWeightSelected3s);
 	scale(_h_pt_4_l_hi,1./_sumWeightSelected4l);
 	scale(_h_pt_4_s_hi,1./_sumWeightSelected4s);
 	scale(_h_xsi_1_l_hi,1./_sumWeightSelected1l);
 	scale(_h_xsi_1_s_hi,1./_sumWeightSelected1s);
 	scale(_h_xsi_2_l_hi,1./_sumWeightSelected2l);
 	scale(_h_xsi_2_s_hi,1./_sumWeightSelected2s);
 	scale(_h_xsi_3_l_hi,1./_sumWeightSelected3l);
 	scale(_h_xsi_3_s_hi,1./_sumWeightSelected3s);
 	scale(_h_xsi_4_l_hi,1./_sumWeightSelected4l);
 	scale(_h_xsi_4_s_hi,1./_sumWeightSelected4s);
 
 	getLog() << Log::DEBUG << "sumOfWeights()     = " << sumOfWeights() << std::endl;
       getLog() << Log::DEBUG << "_sumWeightSelected = " << _sumWeightSelected0 << std::endl;
     }
     
     
   private:
 
     double _sumWeightSelected0;
     double _sumWeightSelected1l, _sumWeightSelected2l, _sumWeightSelected3l, _sumWeightSelected4l;
     double _sumWeightSelected1s, _sumWeightSelected2s, _sumWeightSelected3s, _sumWeightSelected4s;
 
-    AIDA::IHistogram1D * _h_aj_pp;     
-    AIDA::IHistogram1D * _h_aj_hi;     
-    AIDA::IHistogram1D * _h_pt_l_pp;   
-    AIDA::IHistogram1D * _h_pt_s_pp;   
-    AIDA::IHistogram1D * _h_xsi_l_pp;  
-    AIDA::IHistogram1D * _h_xsi_s_pp;  
-    AIDA::IHistogram1D * _h_pt_l_hi;   
-    AIDA::IHistogram1D * _h_pt_s_hi;   
-    AIDA::IHistogram1D * _h_xsi_l_hi;  
-    AIDA::IHistogram1D * _h_xsi_s_hi;  
-    AIDA::IHistogram1D * _h_pt_1_l_hi; 
-    AIDA::IHistogram1D * _h_pt_1_s_hi; 
-    AIDA::IHistogram1D * _h_pt_2_l_hi; 
-    AIDA::IHistogram1D * _h_pt_2_s_hi; 
-    AIDA::IHistogram1D * _h_pt_3_l_hi; 
-    AIDA::IHistogram1D * _h_pt_3_s_hi; 
-    AIDA::IHistogram1D * _h_pt_4_l_hi; 
-    AIDA::IHistogram1D * _h_pt_4_s_hi; 
-    AIDA::IHistogram1D * _h_xsi_1_l_hi;
-    AIDA::IHistogram1D * _h_xsi_1_s_hi;
-    AIDA::IHistogram1D * _h_xsi_2_l_hi;
-    AIDA::IHistogram1D * _h_xsi_2_s_hi;
-    AIDA::IHistogram1D * _h_xsi_3_l_hi;
-    AIDA::IHistogram1D * _h_xsi_3_s_hi;
-    AIDA::IHistogram1D * _h_xsi_4_l_hi;
-    AIDA::IHistogram1D * _h_xsi_4_s_hi;
+    Histo1DPtr  _h_aj_pp;     
+    Histo1DPtr  _h_aj_hi;     
+    Histo1DPtr  _h_pt_l_pp;   
+    Histo1DPtr  _h_pt_s_pp;   
+    Histo1DPtr  _h_xsi_l_pp;  
+    Histo1DPtr  _h_xsi_s_pp;  
+    Histo1DPtr  _h_pt_l_hi;   
+    Histo1DPtr  _h_pt_s_hi;   
+    Histo1DPtr  _h_xsi_l_hi;  
+    Histo1DPtr  _h_xsi_s_hi;  
+    Histo1DPtr  _h_pt_1_l_hi; 
+    Histo1DPtr  _h_pt_1_s_hi; 
+    Histo1DPtr  _h_pt_2_l_hi; 
+    Histo1DPtr  _h_pt_2_s_hi; 
+    Histo1DPtr  _h_pt_3_l_hi; 
+    Histo1DPtr  _h_pt_3_s_hi; 
+    Histo1DPtr  _h_pt_4_l_hi; 
+    Histo1DPtr  _h_pt_4_s_hi; 
+    Histo1DPtr  _h_xsi_1_l_hi;
+    Histo1DPtr  _h_xsi_1_s_hi;
+    Histo1DPtr  _h_xsi_2_l_hi;
+    Histo1DPtr  _h_xsi_2_s_hi;
+    Histo1DPtr  _h_xsi_3_l_hi;
+    Histo1DPtr  _h_xsi_3_s_hi;
+    Histo1DPtr  _h_xsi_4_l_hi;
+    Histo1DPtr  _h_xsi_4_s_hi;
   };
 
   
   
   
   // This global object acts as a hook for the plugin system
   AnalysisBuilder<CMS_2012_I1116250> plugin_CMS_2012_I1116250;
 
 }
Index: trunk/code/CMS_2013_I1256590_CHARGED.yoda
===================================================================
--- trunk/code/CMS_2013_I1256590_CHARGED.yoda	(revision 0)
+++ trunk/code/CMS_2013_I1256590_CHARGED.yoda	(revision 452)
@@ -0,0 +1,206 @@
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_CHARGED/d01-x01-y03
+Path=/REF/CMS_2013_I1256590_CHARGED/d01-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-02	2.500000e-02	2.500000e-02	9.996849e-01	1.534981e-02	1.496040e-02
+7.500000e-02	2.500000e-02	2.500000e-02	9.914790e-01	4.180134e-02	4.529186e-02
+1.250000e-01	2.500000e-02	2.500000e-02	9.037203e-01	4.181550e-02	3.772316e-02
+1.750000e-01	2.500000e-02	2.500000e-02	1.016727e+00	5.312961e-02	5.671926e-02
+2.250000e-01	2.500000e-02	2.500000e-02	1.273673e+00	1.439611e-01	1.400741e-01
+2.750000e-01	2.500000e-02	2.500000e-02	1.382885e+00	1.060964e-01	1.097498e-01
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_CHARGED/d01-x01-y02
+Path=/REF/CMS_2013_I1256590_CHARGED/d01-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-02	2.500000e-02	2.500000e-02	1.266784e+01	0.000000e+00	0.000000e+00
+7.500000e-02	2.500000e-02	2.500000e-02	4.565196e+00	0.000000e+00	0.000000e+00
+1.250000e-01	2.500000e-02	2.500000e-02	1.470847e+00	0.000000e+00	0.000000e+00
+1.750000e-01	2.500000e-02	2.500000e-02	6.714706e-01	0.000000e+00	0.000000e+00
+2.250000e-01	2.500000e-02	2.500000e-02	3.694601e-01	0.000000e+00	0.000000e+00
+2.750000e-01	2.500000e-02	2.500000e-02	2.007718e-01	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_CHARGED/d01-x01-y01
+Path=/REF/CMS_2013_I1256590_CHARGED/d01-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-02	2.500000e-02	2.500000e-02	1.266784e+01	0.000000e+00	0.000000e+00
+7.500000e-02	2.500000e-02	2.500000e-02	4.565196e+00	0.000000e+00	0.000000e+00
+1.250000e-01	2.500000e-02	2.500000e-02	1.298714e+00	0.000000e+00	0.000000e+00
+1.750000e-01	2.500000e-02	2.500000e-02	6.883952e-01	0.000000e+00	0.000000e+00
+2.250000e-01	2.500000e-02	2.500000e-02	4.738880e-01	0.000000e+00	0.000000e+00
+2.750000e-01	2.500000e-02	2.500000e-02	2.774874e-01	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_CHARGED/d03-x01-y01
+Path=/REF/CMS_2013_I1256590_CHARGED/d03-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-01	2.500000e-01	2.500000e-01	4.589493e-02	2.640026e-02	2.607364e-02
+7.500000e-01	2.500000e-01	2.500000e-01	3.302992e-01	1.372295e-01	1.308755e-01
+1.250000e+00	2.500000e-01	2.500000e-01	7.553553e-01	2.064520e-01	2.113501e-01
+1.750000e+00	2.500000e-01	2.500000e-01	1.219367e+00	1.948854e-01	1.904400e-01
+2.250000e+00	2.500000e-01	2.500000e-01	1.560549e+00	1.710532e-01	1.668595e-01
+2.750000e+00	2.500000e-01	2.500000e-01	1.804274e+00	2.437255e-01	2.817904e-01
+3.250000e+00	2.500000e-01	2.500000e-01	2.086064e+00	4.080724e-01	3.258002e-01
+3.750000e+00	2.500000e-01	2.500000e-01	2.447121e+00	4.787017e-01	4.655116e-01
+4.250000e+00	2.500000e-01	2.500000e-01	2.556013e+00	3.771229e-01	3.566198e-01
+4.750000e+00	2.500000e-01	2.500000e-01	1.273626e+00	4.731263e-01	4.790329e-01
+5.250000e+00	2.500000e-01	2.500000e-01	1.213483e-01	5.143852e-02	1.293548e-01
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_CHARGED/d03-x01-y03
+Path=/REF/CMS_2013_I1256590_CHARGED/d03-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-01	2.500000e-01	2.500000e-01	9.511278e-01	2.506266e-01	2.631579e-01
+7.500000e-01	2.500000e-01	2.500000e-01	9.949875e-01	1.817043e-01	1.879699e-01
+1.250000e+00	2.500000e-01	2.500000e-01	8.508772e-01	1.190476e-01	1.190476e-01
+1.750000e+00	2.500000e-01	2.500000e-01	8.132832e-01	1.002506e-01	9.398496e-02
+2.250000e+00	2.500000e-01	2.500000e-01	7.380952e-01	8.145363e-02	8.145363e-02
+2.750000e+00	2.500000e-01	2.500000e-01	7.506266e-01	8.145363e-02	8.145363e-02
+3.250000e+00	2.500000e-01	2.500000e-01	8.508772e-01	8.771930e-02	8.771930e-02
+3.750000e+00	2.500000e-01	2.500000e-01	1.095238e+00	1.190476e-01	1.127820e-01
+4.250000e+00	2.500000e-01	2.500000e-01	1.508772e+00	1.879699e-01	1.879699e-01
+4.750000e+00	2.500000e-01	2.500000e-01	1.765664e+00	3.320802e-01	3.320802e-01
+5.250000e+00	2.500000e-01	2.500000e-01	2.223058e+00	6.892231e-01	6.892231e-01
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_CHARGED/d03-x01-y02
+Path=/REF/CMS_2013_I1256590_CHARGED/d03-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-01	2.500000e-01	2.500000e-01	4.793716e-02	0.000000e+00	0.000000e+00
+7.500000e-01	2.500000e-01	2.500000e-01	3.302992e-01	0.000000e+00	0.000000e+00
+1.250000e+00	2.500000e-01	2.500000e-01	8.990452e-01	0.000000e+00	0.000000e+00
+1.750000e+00	2.500000e-01	2.500000e-01	1.494066e+00	0.000000e+00	0.000000e+00
+2.250000e+00	2.500000e-01	2.500000e-01	2.147498e+00	0.000000e+00	0.000000e+00
+2.750000e+00	2.500000e-01	2.500000e-01	2.447121e+00	0.000000e+00	0.000000e+00
+3.250000e+00	2.500000e-01	2.500000e-01	2.447121e+00	0.000000e+00	0.000000e+00
+3.750000e+00	2.500000e-01	2.500000e-01	2.243057e+00	0.000000e+00	0.000000e+00
+4.250000e+00	2.500000e-01	2.500000e-01	1.702521e+00	0.000000e+00	0.000000e+00
+4.750000e+00	2.500000e-01	2.500000e-01	7.231755e-01	0.000000e+00	0.000000e+00
+5.250000e+00	2.500000e-01	2.500000e-01	5.462544e-02	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_CHARGED/d04-x01-y02
+Path=/REF/CMS_2013_I1256590_CHARGED/d04-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+1.097304e+00	9.730405e-02	9.730405e-02	9.843526e-01	0.000000e+00	0.000000e+00
+1.310850e+00	1.162410e-01	1.162410e-01	1.032045e+00	0.000000e+00	0.000000e+00
+1.565954e+00	1.388630e-01	1.388630e-01	1.032045e+00	0.000000e+00	0.000000e+00
+1.870703e+00	1.658865e-01	1.658865e-01	9.689500e-01	0.000000e+00	0.000000e+00
+2.234760e+00	1.981700e-01	1.981700e-01	9.537884e-01	0.000000e+00	0.000000e+00
+2.669665e+00	2.367350e-01	2.367350e-01	8.407319e-01	0.000000e+00	0.000000e+00
+3.189208e+00	2.828065e-01	2.828065e-01	7.648242e-01	0.000000e+00	0.000000e+00
+3.809856e+00	3.378430e-01	3.378430e-01	6.132976e-01	0.000000e+00	0.000000e+00
+4.551290e+00	4.035905e-01	4.035905e-01	5.238152e-01	0.000000e+00	0.000000e+00
+5.437013e+00	4.821335e-01	4.821335e-01	4.473886e-01	0.000000e+00	0.000000e+00
+6.495107e+00	5.759600e-01	5.759600e-01	3.644549e-01	0.000000e+00	0.000000e+00
+7.759116e+00	6.880480e-01	6.880480e-01	2.922493e-01	0.000000e+00	0.000000e+00
+9.269112e+00	8.219480e-01	8.219480e-01	2.418587e-01	0.000000e+00	0.000000e+00
+1.107298e+01	9.819200e-01	9.819200e-01	1.764312e-01	0.000000e+00	0.000000e+00
+1.322790e+01	1.173000e+00	1.173000e+00	1.370839e-01	0.000000e+00	0.000000e+00
+1.580216e+01	1.401255e+00	1.401255e+00	1.015896e-01	0.000000e+00	0.000000e+00
+1.887738e+01	1.673970e+00	1.673970e+00	6.957701e-02	0.000000e+00	0.000000e+00
+2.255110e+01	1.999745e+00	1.999745e+00	4.917913e-02	0.000000e+00	0.000000e+00
+2.693975e+01	2.388910e+00	2.388910e+00	3.368195e-02	0.000000e+00	0.000000e+00
+3.218248e+01	2.853820e+00	2.853820e+00	2.306820e-02	0.000000e+00	0.000000e+00
+3.844549e+01	3.409190e+00	3.409190e+00	1.287031e-02	0.000000e+00	0.000000e+00
+4.592735e+01	4.072655e+00	4.072655e+00	6.532336e-03	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_CHARGED/d04-x01-y03
+Path=/REF/CMS_2013_I1256590_CHARGED/d04-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+1.097304e+00	9.730405e-02	9.730405e-02	1.050239e+00	5.598086e-01	5.645933e-01
+1.310850e+00	1.162410e-01	1.162410e-01	6.339713e-01	4.354067e-01	4.354067e-01
+1.565954e+00	1.388630e-01	1.388630e-01	6.818182e-01	3.636364e-01	3.684211e-01
+1.870703e+00	1.658865e-01	1.658865e-01	4.043062e-01	2.918660e-01	2.918660e-01
+2.234760e+00	1.981700e-01	1.981700e-01	2.224880e-01	2.344498e-01	2.392344e-01
+2.669665e+00	2.367350e-01	2.367350e-01	5.502392e-02	1.818182e-01	1.866029e-01
+3.189208e+00	2.828065e-01	2.828065e-01	-5.502392e-02	1.387560e-01	1.435407e-01
+3.809856e+00	3.378430e-01	3.378430e-01	-6.937799e-02	1.052632e-01	1.004785e-01
+4.551290e+00	4.035905e-01	4.035905e-01	-9.808612e-02	7.177033e-02	7.177033e-02
+5.437013e+00	4.821335e-01	4.821335e-01	-1.028708e-01	5.263158e-02	5.263158e-02
+6.495107e+00	5.759600e-01	5.759600e-01	-8.851675e-02	3.827751e-02	3.349282e-02
+7.759116e+00	6.880480e-01	6.880480e-01	-8.373206e-02	2.870813e-02	2.392344e-02
+9.269112e+00	8.219480e-01	8.219480e-01	-6.937799e-02	1.435407e-02	2.392344e-02
+1.107298e+01	9.819200e-01	9.819200e-01	-4.066986e-02	1.913876e-02	1.435407e-02
+1.322790e+01	1.173000e+00	1.173000e+00	-3.588517e-02	1.435407e-02	1.435407e-02
+1.580216e+01	1.401255e+00	1.401255e+00	-2.631579e-02	9.569378e-03	1.435407e-02
+1.887738e+01	1.673970e+00	1.673970e+00	-7.177033e-03	1.435407e-02	4.784689e-03
+2.255110e+01	1.999745e+00	1.999745e+00	-7.177033e-03	9.569378e-03	4.784689e-03
+2.693975e+01	2.388910e+00	2.388910e+00	-2.392344e-03	0.000000e+00	0.000000e+00
+3.218248e+01	2.853820e+00	2.853820e+00	2.392344e-03	0.000000e+00	0.000000e+00
+3.844549e+01	3.409190e+00	3.409190e+00	2.392344e-03	0.000000e+00	0.000000e+00
+4.592735e+01	4.072655e+00	4.072655e+00	-2.392344e-03	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_CHARGED/d04-x01-y01
+Path=/REF/CMS_2013_I1256590_CHARGED/d04-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+1.097304e+00	9.730405e-02	9.730405e-02	2.033383e+00	4.782024e-01	4.627072e-01
+1.310850e+00	1.162410e-01	1.162410e-01	1.656449e+00	3.489591e-01	3.451167e-01
+1.565954e+00	1.388630e-01	1.388630e-01	1.709530e+00	2.947629e-01	3.238530e-01
+1.870703e+00	1.658865e-01	1.658865e-01	1.370839e+00	2.541162e-01	2.341778e-01
+2.234760e+00	1.981700e-01	1.981700e-01	1.189440e+00	2.204898e-01	1.813987e-01
+2.669665e+00	2.367350e-01	2.367350e-01	8.954777e-01	1.774117e-01	1.696391e-01
+3.189208e+00	2.828065e-01	2.828065e-01	7.068302e-01	1.400369e-01	1.339018e-01
+3.809856e+00	3.378430e-01	3.378430e-01	5.491943e-01	1.088062e-01	1.040393e-01
+4.551290e+00	4.035905e-01	4.035905e-01	4.267141e-01	8.454043e-02	8.890473e-02
+5.437013e+00	4.821335e-01	4.821335e-01	3.421737e-01	6.779131e-02	5.845289e-02
+6.495107e+00	5.759600e-01	5.759600e-01	2.700890e-01	4.656965e-02	4.613880e-02
+7.759116e+00	6.880480e-01	6.880480e-01	2.065706e-01	3.561760e-02	3.528807e-02
+9.269112e+00	8.219480e-01	8.219480e-01	1.709530e-01	2.947629e-02	2.607165e-02
+1.107298e+01	9.819200e-01	9.819200e-01	1.328274e-01	2.115517e-02	2.269066e-02
+1.322790e+01	1.173000e+00	1.173000e+00	1.015896e-01	1.883195e-02	1.924512e-02
+1.580216e+01	1.401255e+00	1.401255e+00	7.648242e-02	1.611232e-02	1.593491e-02
+1.887738e+01	1.673970e+00	1.673970e+00	5.667932e-02	1.332960e-02	1.073732e-02
+2.255110e+01	1.999745e+00	1.999745e+00	4.006265e-02	1.083773e-02	1.149923e-02
+2.693975e+01	2.388910e+00	2.388910e+00	2.831749e-02	8.615028e-03	9.295896e-03
+3.218248e+01	2.853820e+00	2.853820e+00	1.909070e-02	6.620015e-03	6.266981e-03
+3.844549e+01	3.409190e+00	3.409190e+00	1.170828e-02	4.750580e-03	4.856209e-03
+4.592735e+01	4.072655e+00	4.072655e+00	6.636175e-03	2.933691e-03	3.207351e-03
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_CHARGED/d02-x01-y01
+Path=/REF/CMS_2013_I1256590_CHARGED/d02-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-02	2.500000e-02	2.500000e-02	6.375449e-01	0.000000e+00	0.000000e+00
+7.500000e-02	2.500000e-02	2.500000e-02	8.643001e-01	0.000000e+00	0.000000e+00
+1.250000e-01	2.500000e-02	2.500000e-02	9.278651e-01	0.000000e+00	0.000000e+00
+1.750000e-01	2.500000e-02	2.500000e-02	9.612714e-01	0.000000e+00	0.000000e+00
+2.250000e-01	2.500000e-02	2.500000e-02	9.858084e-01	0.000000e+00	0.000000e+00
+2.750000e-01	2.500000e-02	2.500000e-02	9.979320e-01	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
+# BEGIN YODA_SCATTER2D /REF/CMS_2013_I1256590_CHARGED/d02-x01-y02
+Path=/REF/CMS_2013_I1256590_CHARGED/d02-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.500000e-02	2.500000e-02	2.500000e-02	6.357711e-01	0.000000e+00	0.000000e+00
+7.500000e-02	2.500000e-02	2.500000e-02	8.678478e-01	0.000000e+00	0.000000e+00
+1.250000e-01	2.500000e-02	2.500000e-02	9.366820e-01	0.000000e+00	0.000000e+00
+1.750000e-01	2.500000e-02	2.500000e-02	9.700882e-01	0.000000e+00	0.000000e+00
+2.250000e-01	2.500000e-02	2.500000e-02	9.892897e-01	0.000000e+00	0.000000e+00
+2.750000e-01	2.500000e-02	2.500000e-02	9.978656e-01	0.000000e+00	0.000000e+00
+# END YODA_SCATTER2D
+
Index: trunk/code/CMS_2013_I1256590_GRIDSUB2.plot
===================================================================
--- trunk/code/CMS_2013_I1256590_GRIDSUB2.plot	(revision 0)
+++ trunk/code/CMS_2013_I1256590_GRIDSUB2.plot	(revision 452)
@@ -0,0 +1,81 @@
+# BEGIN PLOT /CMS_2013_I1256590_GRIDSUB2/d01-x01-y01
+Title=PbPb 0-10
+XLabel=$r$
+YLabel=$\rho(r)$
+LogY=1
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_GRIDSUB2/d01-x01-y02
+Title=pp smeared to PbPb resolution
+XLabel=$r$
+YLabel=$\rho(r)$
+LogY=1
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_GRIDSUB2/d01-x01-y03
+Title=PbPb(0-10)/pp
+XLabel=$r$
+YLabel=$\rho_\text{PbPb}/\rho_\text{pp}$
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_GRIDSUB2/d02-x01-y01
+Title=PbPb 0-10
+XLabel=$r$
+YLabel=$\Psi(r)$
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_GRIDSUB2/d02-x01-y02
+Title=pp smeared to PbPb resolution
+XLabel=$r$
+YLabel=$\Psi(r)$
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_GRIDSUB2/d03-x01-y01
+Title=PbPb 0-10
+XLabel=$\xi = \ln(1/z)$
+YLabel=$1/N_\text{jet}\, \text{d}N_\text{track}/\text{d}\xi$
+LogY=1
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_GRIDSUB2/d03-x01-y02
+Title=pp smeared to PbPb resolution
+XLabel=$\xi = \ln(1/z)$
+YLabel=$1/N_\text{jet}\, \text{d}N_\text{track}/\text{d}\xi$
+LogY=1
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_GRIDSUB2/d03-x01-y03
+Title=PbPb(0-10)/pp
+XLabel=$\xi = \ln(1/z)$
+YLabel=$D_\text{PbPb}(\xi)/D_\text{pp}(\xi)$
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_GRIDSUB2/d04-x01-y01
+Title=PbPb 0-10
+XLabel=$p_\perp\, [\text{GeV}]$
+YLabel=$1/N_\text{jet}\, \text{d}N_\text{track}/\text{d}p_\perp\, [\text{GeV}^{-1}]$
+LogX=1
+LogY=1
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_GRIDSUB2/d04-x01-y02
+Title=pp  smeared to PbPb resolution
+XLabel=$p_\perp\, [\text{GeV}]$
+YLabel=$1/N_\text{jet}\, \text{d}N_\text{track}/\text{d}p_\perp\, [\text{GeV}^{-1}]$
+LogX=1
+LogY=1
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_GRIDSUB2/d04-x01-y03
+Title=PbPb(0-10)-pp
+XLabel=$p_\perp\, [\text{GeV}]$
+YLabel=$D_\text{PbPb}(p_\perp)-D_\text{pp}(p_\perp)$
+LogX=1
+LogY=0
+# END PLOT
+
+
Index: trunk/code/ATLAS_CONF_2014_028.cc
===================================================================
--- trunk/code/ATLAS_CONF_2014_028.cc	(revision 451)
+++ trunk/code/ATLAS_CONF_2014_028.cc	(revision 452)
@@ -1,226 +1,225 @@
-// -*- C++ -*-
-#include "Rivet/Analysis.hh"
-#include "Rivet/RivetAIDA.hh"
-#include "Rivet/Tools/Logging.hh"
-#include "Rivet/Projections/FinalState.hh"
+// -*- C++ -*-
+#include "Rivet/Analysis.hh"
+#include "Rivet/Tools/Logging.hh"
+#include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/FastJets.hh"
-
-namespace Rivet {
-
-
-  class ATLAS_CONF_2014_028 : public Analysis {
-  public:
-
-    /// @name Constructors etc.
-    //@{
-
-    /// Constructor
-    ATLAS_CONF_2014_028()
-      : Analysis("ATLAS_CONF_2014_028")
-    {    }
-
-    //@}
-
-
-  public:
-
-    /// @name Analysis methods
-    //@{
-
-    /// Book histograms and initialise projections before the run
-    void init() {
-
-	_etestbins += 70., 80., 90., 110., 140., 300.;
-	_enbrbins += 30., 45., 60., 80., 130.;
-
-	_netestbins = 5;
-	_nenbrbins  = 4;
-
-      _centedges += 0.0, 0.1, 0.2, 0.4, 0.8;
-	_jetparams += 0.2, 0.3, 0.4;
-	_drmin += 0.5, 0.6, 0.8;
-	_drmax = 1.6; 
-
-	_ncentbins = 4;
-	_njetbins = 3;
-	_nebins = 3;
-
-	for (size_t j = 0; j < _njetbins; ++j) {
-	  for (size_t i = 0; i < _ncentbins; ++i) {
-	    for (size_t m = 0; m < _netestbins; ++m) {
-		_ntestjets[i][m][j] = 0.;
-	      for (size_t n = 0; n < _nenbrbins; ++n) {
-		  _nnbrjets[i][m][n][j] = 0.;
-		}
-	    }
-	  }
-	}
-	
+
+namespace Rivet {
+
+
+  class ATLAS_CONF_2014_028 : public Analysis {
+  public:
+
+    /// @name Constructors etc.
+    //@{
+
+    /// Constructor
+    ATLAS_CONF_2014_028()
+      : Analysis("ATLAS_CONF_2014_028")
+    {    }
+
+    //@}
+
+
+  public:
+
+    /// @name Analysis methods
+    //@{
+
+    /// Book histograms and initialise projections before the run
+    void init() {
+
+	_etestbins += 70., 80., 90., 110., 140., 300.;
+	_enbrbins += 30., 45., 60., 80., 130.;
+
+	_netestbins = 5;
+	_nenbrbins  = 4;
+
+      _centedges += 0.0, 0.1, 0.2, 0.4, 0.8;
+	_jetparams += 0.2, 0.3, 0.4;
+	_drmin += 0.5, 0.6, 0.8;
+	_drmax = 1.6; 
+
+	_ncentbins = 4;
+	_njetbins = 3;
+	_nebins = 3;
+
+	for (size_t j = 0; j < _njetbins; ++j) {
+	  for (size_t i = 0; i < _ncentbins; ++i) {
+	    for (size_t m = 0; m < _netestbins; ++m) {
+		_ntestjets[i][m][j] = 0.;
+	      for (size_t n = 0; n < _nenbrbins; ++n) {
+		  _nnbrjets[i][m][n][j] = 0.;
+		}
+	    }
+	  }
+	}
+	
       FinalState fs(-4.0, 4.0, 0*GeV);
 	addProjection(fs, "FS");
-	for (size_t j = 0; j < _njetbins; ++j) {
-        stringstream ss; ss << "Jets" << j;
-        const string pname = ss.str();
-        _names[j] = pname;
-
-	  FastJets fj(fs, FastJets::ANTIKT, _jetparams[j]);
-	  fj.useInvisibles();
-        addProjection(fj, pname);
-	}
-
-     for (size_t i = 0; i < _ncentbins; ++i) {
-        for (size_t j = 0; j < _njetbins; ++j) {
-	    for (size_t k = 0; k < _nebins; ++k) {
-            _d_rvsetest[i][k][j] = bookDataPointSet(j+1,  k+1, i+1);
-            _d_rvsenbr[i][k][j]  = bookDataPointSet(j+11, k+1, i+1);
-          }
-        }
-      }
-      for (size_t i = 0; i < _ncentbins; ++i) {
-	  for (size_t k = 0; k < _nebins; ++k) {
-	    if (i == _ncentbins-1) {
-            _d_rhovsetest_ref[k] = bookDataPointSet(98, k+1, 1);
-            _d_rhovsenbr_ref[k] = bookDataPointSet(99, k+1, 1);
-	    }
-	    else {
-	      _d_rhovsetest[i][k] = bookDataPointSet(21, k+1, i+1);
-	      _d_rhovsenbr[i][k]  = bookDataPointSet(22, k+1, i+1);
-	    }
-        }
-      }
-
-    }
-
-
-    /// Perform the per-event analysis
-    void analyze(const Event& event) {
-      const double weight = event.weight();
-	const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
-
-	for (size_t j = 0; j < _njetbins; ++j) {
-        const Jets jets = applyProjection<FastJets>(event, _names[j]).jetsByEt(_enbrbins.front()*GeV, _etestbins.back()*GeV, -2.8, 2.8);
-
-	  for (size_t i = 0; i < _ncentbins; ++i) {
-	    if (cent < 0. || (cent >= _centedges[i] && cent < _centedges[i+1])) {
-	      foreach (Jet jet, jets) {
-	        double ettest(jet.momentum().Et());
-	        for (size_t m = 0; m < _netestbins; ++m) {
-	          if (ettest > _etestbins[m] && ettest < _etestbins[m+1]) {
-			_ntestjets[i][m][j] += weight;
-	            foreach (Jet jet2, jets) {
-	              double etnbr(jet2.momentum().Et());
-	              for (size_t n = 0; n < _nenbrbins; ++n) {
-	                if (etnbr > _enbrbins[n] && etnbr < _enbrbins[n+1] && deltaR(jet,jet2) > _drmin[j] && deltaR(jet,jet2) < _drmax) {
-				_nnbrjets[i][m][n][j] += weight;
-	                }
-			  }
-	  		}
-                }
-              }
-	      }
-	    }
-	  }
-	}
-
-    }
-
-
-    /// Normalise histograms etc., after the run
-    void finalize() {
-
-	for (size_t j = 0; j < _njetbins; ++j) {
-	  for (size_t i = 0; i < _ncentbins; ++i) {
-	    for (size_t m = 0; m < _netestbins; ++m) {
-	      for (size_t offset = 0; offset < 3; ++offset) {
-	        double val(0.);
-		  for (size_t n = offset; n < _nenbrbins; ++n){
-	          val += _nnbrjets[i][m][n][j];
-	        }
-	        if (_ntestjets[i][m][j] == 0.) val = 0.;
-		  else val /= _ntestjets[i][m][j];
-	        _d_rvsetest[i][offset][j]->point(m)->coordinate(1)->setValue(val);
-	        _d_rvsetest[i][offset][j]->point(m)->coordinate(1)->setErrorPlus(0.);
-	        _d_rvsetest[i][offset][j]->point(m)->coordinate(1)->setErrorMinus(0.);
-		  if (j == _njetbins-1) {
-	          if (i == _ncentbins-1) {
-		      _d_rhovsetest_ref[offset]->point(m)->coordinate(1)->setValue(val);
-		      _d_rhovsetest_ref[offset]->point(m)->coordinate(1)->setErrorPlus(0.);
-		      _d_rhovsetest_ref[offset]->point(m)->coordinate(1)->setErrorMinus(0.);
-		    }
-	          else {
-			_d_rhovsetest[i][offset]->point(m)->coordinate(1)->setValue(val);
-			_d_rhovsetest[i][offset]->point(m)->coordinate(1)->setErrorPlus(0.);
-			_d_rhovsetest[i][offset]->point(m)->coordinate(1)->setErrorMinus(0.);
-		    }
-	        }
-            }
-	    }
-	    for (size_t n = 0; n < _nenbrbins; ++n) {
-	      for (size_t offset = 1; offset < 4; ++offset) {
-	        double val(0.),norm(0.);
-		  for (size_t m = offset; m < _netestbins; ++m){
-	          val += _nnbrjets[i][m][n][j]/(_enbrbins[n+1]-_enbrbins[n]);
-	          norm += _ntestjets[i][m][j];
-	        }
-	        if (norm == 0.) val = 0.;
-		  else val /= norm;
-	        _d_rvsenbr[i][offset-1][j]->point(n)->coordinate(1)->setValue(val);
-	        _d_rvsenbr[i][offset-1][j]->point(n)->coordinate(1)->setErrorPlus(0.);
-	        _d_rvsenbr[i][offset-1][j]->point(n)->coordinate(1)->setErrorMinus(0.);
-		  if (j == _njetbins-1) {
-	          if (i == _ncentbins-1){
-			_d_rhovsenbr_ref[offset-1]->point(n)->coordinate(1)->setValue(val);
-			_d_rhovsenbr_ref[offset-1]->point(n)->coordinate(1)->setErrorPlus(0.);
-			_d_rhovsenbr_ref[offset-1]->point(n)->coordinate(1)->setErrorMinus(0.);
-		    }
-	          else {
-			_d_rhovsenbr[i][offset-1]->point(n)->coordinate(1)->setValue(val);
-			_d_rhovsenbr[i][offset-1]->point(n)->coordinate(1)->setErrorPlus(0.);
-			_d_rhovsenbr[i][offset-1]->point(n)->coordinate(1)->setErrorMinus(0.);
-		    }
-	        }
-            }
-	    }
-	  }
-	}
-
-    }
-
-    //@}
-
-
-  private:
-
-    vector<double> _etestbins, _enbrbins;
-    size_t _netestbins, _nenbrbins;
-
-    vector<double> _centedges, _jetparams, _drmin;
-    double _drmax;
-    size_t _ncentbins, _njetbins, _nebins;
-
-    string _names[3];
-
-    double _ntestjets[4][5][3];
-    double _nnbrjets[4][5][4][3];
-
-  private:
-
-    /// @name Histograms
-    //@{
-    AIDA::IDataPointSet *_d_rvsetest[4][3][3];
-    AIDA::IDataPointSet *_d_rvsenbr[4][3][3];
-    AIDA::IDataPointSet *_d_rhovsetest[3][3];
-    AIDA::IDataPointSet *_d_rhovsenbr[3][3];
-    AIDA::IDataPointSet *_d_rhovsetest_ref[3];
-    AIDA::IDataPointSet *_d_rhovsenbr_ref[3];
-    //@}
-
-
-  };
-
-
-
-  // The hook for the plugin system
-  DECLARE_RIVET_PLUGIN(ATLAS_CONF_2014_028);
-
-}
+	for (size_t j = 0; j < _njetbins; ++j) {
+        stringstream ss; ss << "Jets" << j;
+        const string pname = ss.str();
+        _names[j] = pname;
+
+	  FastJets fj(fs, FastJets::ANTIKT, _jetparams[j]);
+	  fj.useInvisibles();
+        addProjection(fj, pname);
+	}
+
+     for (size_t i = 0; i < _ncentbins; ++i) {
+        for (size_t j = 0; j < _njetbins; ++j) {
+	    for (size_t k = 0; k < _nebins; ++k) {
+            _d_rvsetest[i][k][j] = bookDataPointSet(j+1,  k+1, i+1);
+            _d_rvsenbr[i][k][j]  = bookDataPointSet(j+11, k+1, i+1);
+          }
+        }
+      }
+      for (size_t i = 0; i < _ncentbins; ++i) {
+	  for (size_t k = 0; k < _nebins; ++k) {
+	    if (i == _ncentbins-1) {
+            _d_rhovsetest_ref[k] = bookDataPointSet(98, k+1, 1);
+            _d_rhovsenbr_ref[k] = bookDataPointSet(99, k+1, 1);
+	    }
+	    else {
+	      _d_rhovsetest[i][k] = bookDataPointSet(21, k+1, i+1);
+	      _d_rhovsenbr[i][k]  = bookDataPointSet(22, k+1, i+1);
+	    }
+        }
+      }
+
+    }
+
+
+    /// Perform the per-event analysis
+    void analyze(const Event& event) {
+      const double weight = event.weight();
+	const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
+
+	for (size_t j = 0; j < _njetbins; ++j) {
+        const Jets jets = applyProjection<FastJets>(event, _names[j]).jetsByEt(_enbrbins.front()*GeV, _etestbins.back()*GeV, -2.8, 2.8);
+
+	  for (size_t i = 0; i < _ncentbins; ++i) {
+	    if (cent < 0. || (cent >= _centedges[i] && cent < _centedges[i+1])) {
+	      foreach (Jet jet, jets) {
+	        double ettest(jet.momentum().Et());
+	        for (size_t m = 0; m < _netestbins; ++m) {
+	          if (ettest > _etestbins[m] && ettest < _etestbins[m+1]) {
+			_ntestjets[i][m][j] += weight;
+	            foreach (Jet jet2, jets) {
+	              double etnbr(jet2.momentum().Et());
+	              for (size_t n = 0; n < _nenbrbins; ++n) {
+	                if (etnbr > _enbrbins[n] && etnbr < _enbrbins[n+1] && deltaR(jet,jet2) > _drmin[j] && deltaR(jet,jet2) < _drmax) {
+				_nnbrjets[i][m][n][j] += weight;
+	                }
+			  }
+	  		}
+                }
+              }
+	      }
+	    }
+	  }
+	}
+
+    }
+
+
+    /// Normalise histograms etc., after the run
+    void finalize() {
+
+	for (size_t j = 0; j < _njetbins; ++j) {
+	  for (size_t i = 0; i < _ncentbins; ++i) {
+	    for (size_t m = 0; m < _netestbins; ++m) {
+	      for (size_t offset = 0; offset < 3; ++offset) {
+	        double val(0.);
+		  for (size_t n = offset; n < _nenbrbins; ++n){
+	          val += _nnbrjets[i][m][n][j];
+	        }
+	        if (_ntestjets[i][m][j] == 0.) val = 0.;
+		  else val /= _ntestjets[i][m][j];
+	        _d_rvsetest[i][offset][j]->point(m)->coordinate(1)->setValue(val);
+	        _d_rvsetest[i][offset][j]->point(m)->coordinate(1)->setErrorPlus(0.);
+	        _d_rvsetest[i][offset][j]->point(m)->coordinate(1)->setErrorMinus(0.);
+		  if (j == _njetbins-1) {
+	          if (i == _ncentbins-1) {
+		      _d_rhovsetest_ref[offset]->point(m)->coordinate(1)->setValue(val);
+		      _d_rhovsetest_ref[offset]->point(m)->coordinate(1)->setErrorPlus(0.);
+		      _d_rhovsetest_ref[offset]->point(m)->coordinate(1)->setErrorMinus(0.);
+		    }
+	          else {
+			_d_rhovsetest[i][offset]->point(m)->coordinate(1)->setValue(val);
+			_d_rhovsetest[i][offset]->point(m)->coordinate(1)->setErrorPlus(0.);
+			_d_rhovsetest[i][offset]->point(m)->coordinate(1)->setErrorMinus(0.);
+		    }
+	        }
+            }
+	    }
+	    for (size_t n = 0; n < _nenbrbins; ++n) {
+	      for (size_t offset = 1; offset < 4; ++offset) {
+	        double val(0.),norm(0.);
+		  for (size_t m = offset; m < _netestbins; ++m){
+	          val += _nnbrjets[i][m][n][j]/(_enbrbins[n+1]-_enbrbins[n]);
+	          norm += _ntestjets[i][m][j];
+	        }
+	        if (norm == 0.) val = 0.;
+		  else val /= norm;
+	        _d_rvsenbr[i][offset-1][j]->point(n)->coordinate(1)->setValue(val);
+	        _d_rvsenbr[i][offset-1][j]->point(n)->coordinate(1)->setErrorPlus(0.);
+	        _d_rvsenbr[i][offset-1][j]->point(n)->coordinate(1)->setErrorMinus(0.);
+		  if (j == _njetbins-1) {
+	          if (i == _ncentbins-1){
+			_d_rhovsenbr_ref[offset-1]->point(n)->coordinate(1)->setValue(val);
+			_d_rhovsenbr_ref[offset-1]->point(n)->coordinate(1)->setErrorPlus(0.);
+			_d_rhovsenbr_ref[offset-1]->point(n)->coordinate(1)->setErrorMinus(0.);
+		    }
+	          else {
+			_d_rhovsenbr[i][offset-1]->point(n)->coordinate(1)->setValue(val);
+			_d_rhovsenbr[i][offset-1]->point(n)->coordinate(1)->setErrorPlus(0.);
+			_d_rhovsenbr[i][offset-1]->point(n)->coordinate(1)->setErrorMinus(0.);
+		    }
+	        }
+            }
+	    }
+	  }
+	}
+
+    }
+
+    //@}
+
+
+  private:
+
+    vector<double> _etestbins, _enbrbins;
+    size_t _netestbins, _nenbrbins;
+
+    vector<double> _centedges, _jetparams, _drmin;
+    double _drmax;
+    size_t _ncentbins, _njetbins, _nebins;
+
+    string _names[3];
+
+    double _ntestjets[4][5][3];
+    double _nnbrjets[4][5][4][3];
+
+  private:
+
+    /// @name Histograms
+    //@{
+    AIDA::IDataPointSet *_d_rvsetest[4][3][3];
+    AIDA::IDataPointSet *_d_rvsenbr[4][3][3];
+    AIDA::IDataPointSet *_d_rhovsetest[3][3];
+    AIDA::IDataPointSet *_d_rhovsenbr[3][3];
+    AIDA::IDataPointSet *_d_rhovsetest_ref[3];
+    AIDA::IDataPointSet *_d_rhovsenbr_ref[3];
+    //@}
+
+
+  };
+
+
+
+  // The hook for the plugin system
+  DECLARE_RIVET_PLUGIN(ATLAS_CONF_2014_028);
+
+}
Index: trunk/code/CMS_2013_I1256590_4MOMSUB.plot
===================================================================
--- trunk/code/CMS_2013_I1256590_4MOMSUB.plot	(revision 0)
+++ trunk/code/CMS_2013_I1256590_4MOMSUB.plot	(revision 452)
@@ -0,0 +1,81 @@
+# BEGIN PLOT /CMS_2013_I1256590_4MOMSUB/d01-x01-y01
+Title=PbPb 0-10
+XLabel=$r$
+YLabel=$\rho(r)$
+LogY=1
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_4MOMSUB/d01-x01-y02
+Title=pp smeared to PbPb resolution
+XLabel=$r$
+YLabel=$\rho(r)$
+LogY=1
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_4MOMSUB/d01-x01-y03
+Title=PbPb(0-10)/pp
+XLabel=$r$
+YLabel=$\rho_\text{PbPb}/\rho_\text{pp}$
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_4MOMSUB/d02-x01-y01
+Title=PbPb 0-10
+XLabel=$r$
+YLabel=$\Psi(r)$
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_4MOMSUB/d02-x01-y02
+Title=pp smeared to PbPb resolution
+XLabel=$r$
+YLabel=$\Psi(r)$
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_4MOMSUB/d03-x01-y01
+Title=PbPb 0-10
+XLabel=$\xi = \ln(1/z)$
+YLabel=$1/N_\text{jet}\, \text{d}N_\text{track}/\text{d}\xi$
+LogY=1
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_4MOMSUB/d03-x01-y02
+Title=pp smeared to PbPb resolution
+XLabel=$\xi = \ln(1/z)$
+YLabel=$1/N_\text{jet}\, \text{d}N_\text{track}/\text{d}\xi$
+LogY=1
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_4MOMSUB/d03-x01-y03
+Title=PbPb(0-10)/pp
+XLabel=$\xi = \ln(1/z)$
+YLabel=$D_\text{PbPb}(\xi)/D_\text{pp}(\xi)$
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_4MOMSUB/d04-x01-y01
+Title=PbPb 0-10
+XLabel=$p_\perp\, [\text{GeV}]$
+YLabel=$1/N_\text{jet}\, \text{d}N_\text{track}/\text{d}p_\perp\, [\text{GeV}^{-1}]$
+LogX=1
+LogY=1
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_4MOMSUB/d04-x01-y02
+Title=pp  smeared to PbPb resolution
+XLabel=$p_\perp\, [\text{GeV}]$
+YLabel=$1/N_\text{jet}\, \text{d}N_\text{track}/\text{d}p_\perp\, [\text{GeV}^{-1}]$
+LogX=1
+LogY=1
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_4MOMSUB/d04-x01-y03
+Title=PbPb(0-10)-pp
+XLabel=$p_\perp\, [\text{GeV}]$
+YLabel=$D_\text{PbPb}(p_\perp)-D_\text{pp}(p_\perp)$
+LogX=1
+LogY=0
+# END PLOT
+
+
Index: trunk/code/CMS_2012_I1088823.cc
===================================================================
--- trunk/code/CMS_2012_I1088823.cc	(revision 451)
+++ trunk/code/CMS_2012_I1088823.cc	(revision 452)
@@ -1,80 +1,78 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Tools/Logging.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
-#include "Rivet/RivetAIDA.hh"
 
 namespace Rivet {
 
 
   /// @brief STAR identified hadron spectra in pp at 200 GeV
   class CMS_2012_I1088823 : public Analysis {
   public:
 
     /// Constructor
     CMS_2012_I1088823()
       : Analysis("CMS_2012_I1088823"),
         _sumWeightSelected(0.0)
     {
-      setBeams(PROTON, PROTON);
       setNeedsCrossSection(true);
     }
 
     /// Book projections and histograms
     void init() {
       ChargedFinalState cfs(-2.5, 2.5, 0.45*GeV);
       addProjection(cfs, "CFS");
 
-      _h_pT_pp     = bookHistogram1D(1, 1, 1);
-      _h_pT_aa     = bookHistogram1D(3, 1, 1);
-      _h_pT_ratio  = bookHistogram1D(5, 1, 1);
+      _h_pT_pp     = bookHisto1D(1, 1, 1);
+      _h_pT_aa     = bookHisto1D(3, 1, 1);
+      _h_pT_ratio  = bookHisto1D(5, 1, 1);
     }
 
 
     /// Do the analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
-	const double centrality = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
+	const double centrality = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
 
       if (centrality>0.05) vetoEvent;
       _sumWeightSelected += weight;
 
       const ChargedFinalState& cfs = applyProjection<ChargedFinalState>(event, "CFS");
       foreach (const Particle& p, cfs.particles()) {
 	  if (fabs(p.momentum().eta())<1.) {
           const double pT = p.momentum().pT() / GeV;
           if (centrality<0.) _h_pT_pp->fill(pT, weight/pT);
           _h_pT_aa->fill(pT, weight/pT);
           _h_pT_ratio->fill(pT, weight/pT);
         }
       }
     }
 
 
     /// Finalize
     void finalize() {
 	if (_sumWeightSelected == 0.) _sumWeightSelected = 1.;
 //      scale(_h_pT_pp,crossSection()/(millibarn*2.*M_PI*2.*_sumWeightSelected));
 //      scale(_h_pT_aa,crossSection()*1660./(millibarn*2.*M_PI*2.*_sumWeightSelected));
       scale(_h_pT_pp,crossSection()*2.5/(millibarn*2.*M_PI*2.*_sumWeightSelected));
       scale(_h_pT_aa,crossSection()*2.5/(millibarn*2.*M_PI*2.*_sumWeightSelected));
       scale(_h_pT_ratio,crossSection()*2.5/(millibarn*2.*M_PI*2.*_sumWeightSelected));
       getLog() << Log::DEBUG << "sumOfWeights()     = " << sumOfWeights() << std::endl;
       getLog() << Log::DEBUG << "_sumWeightSelected = " << _sumWeightSelected << std::endl;
     }
 
   private:
 
     double _sumWeightSelected;
 
-    AIDA::IHistogram1D * _h_pT_pp;
-    AIDA::IHistogram1D * _h_pT_aa;
-    AIDA::IHistogram1D * _h_pT_ratio;
+    Histo1DPtr  _h_pT_pp;
+    Histo1DPtr  _h_pT_aa;
+    Histo1DPtr  _h_pT_ratio;
   };
 
 
 
   // This global object acts as a hook for the plugin system
   AnalysisBuilder<CMS_2012_I1088823> plugin_CMS_2012_I1088823;
 
 }
Index: trunk/code/ALICE_JETRAA2.cc
===================================================================
--- trunk/code/ALICE_JETRAA2.cc	(revision 451)
+++ trunk/code/ALICE_JETRAA2.cc	(revision 452)
@@ -1,103 +1,102 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "Rivet/Projections/FinalState.hh"
-#include "Rivet/Tools/ParticleIdUtils.hh"
+#include "Rivet/Tools/ParticleIdUtils.hh"
 #include "Rivet/Tools/Logging.hh"
-#include "Rivet/RivetAIDA.hh"
 #include <boost/lexical_cast.hpp>
 namespace Rivet {
 
 
   /// @brief jet pt spectrum
   class ALICE_JETRAA2 : public Analysis {
   public:
 
     /// Constructor
     ALICE_JETRAA2()
       : Analysis("ALICE_JETRAA2"),
 // Rosi, please fill in the numbers
     _hadronetamax(1.), _hadronptmin(0.15), _jetradius(0.2), _jetetamax(0.5), _jetptmin(30.), 
     _jetptmax(120.), _biastrackpt(5.), _centmin(0.0), _centmax(0.1), _nbins(8)
     {
-      setBeams(PROTON, PROTON);
       setNeedsCrossSection(true);
     }
 
     /// Book projections and histograms
     void init() {
 // this is for fully reconstructed jets, if you need track jets you have to replace FinalState by ChargedFinalState
       FinalState fs(-_hadronetamax, _hadronetamax, _hadronptmin*GeV);
 	addProjection(fs, "FS");
       FastJets fj(fs, FastJets::ANTIKT, _jetradius);
  	fj.useInvisibles();
       addProjection(fj, "Jets");
-
-	_sumwtcentbins = 0.;
 
-      jetpt = bookHistogram1D("jetspec", binEdges(1, 1, 1));
-      _h_ratio = bookHistogram1D(1, 1, 1);
+	_sumwtcentbins = 0.;
+
+      jetpt = bookHisto1D("jetspec", refData(1, 1, 1));
+      _h_ratio = bookHisto1D(1, 1, 1);
     }
 
 
     /// Do the analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
- 	const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
+ 	const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
 
 // check if event is in required centrality class
-      if (cent>0. && (cent<=_centmin || cent>_centmax)) return;
+      if (cent>0. && (cent<=_centmin || cent>_centmax)) return;
       _sumwtcentbins += weight;
 
-      const Jets alljets = applyProjection<FastJets>(event, "Jets").jetsByPt(_jetptmin*GeV, _jetptmax*GeV, -_jetetamax, _jetetamax);
+      Cut cuts = Cuts::abseta < _jetetamax && Cuts::pT > _jetptmin*GeV && Cuts::pT < _jetptmax*GeV;
+      const Jets alljets = applyProjection<FastJets>(event, "Jets").jetsByPt(cuts);
 //      if (alljets.size() == 0) vetoEvent;
 
 // track bias
 	Jets biasedjets;
 	foreach (Jet jet, alljets) {
         vector< Particle > & 	particles(jet.particles());
         foreach (Particle part, particles) {
 	    if (part.momentum().pT() > _biastrackpt*GeV && PID::charge(part.pdgId()) != 0) {
 	      biasedjets.push_back(jet);
 	      break;
 	    }
         }
       }
 
 //      if (biasedjets.size() == 0) vetoEvent;
  
 // fill histogram
 	foreach (Jet jet, biasedjets){
 	  jetpt->fill(jet.momentum().pT(),weight);
 	  _h_ratio->fill(jet.momentum().pT(),weight);
 	}
 	  		
     }
 	
 	
     /// Finalize
     void finalize() {
 // normalise histogram
       scale(jetpt,crossSection()/(_sumwtcentbins>0.?_sumwtcentbins:1.));
       scale(_h_ratio,crossSection()/(_sumwtcentbins>0.?_sumwtcentbins:1.));
       getLog() << Log::DEBUG << "sumOfWeights()     = " << sumOfWeights() << std::endl;
     }
     
     
   private:
     
     double _hadronetamax, _hadronptmin, _jetradius, _jetetamax, _jetptmin, _jetptmax;
     double _biastrackpt, _centmin, _centmax;
-    double _sumwtcentbins;
+    double _sumwtcentbins;
     int _nbins;
 
-    AIDA::IHistogram1D * jetpt;
-    AIDA::IHistogram1D * _h_ratio;
+    Histo1DPtr  jetpt;
+    Histo1DPtr  _h_ratio;
   };
 
 
 
   // This global object acts as a hook for the plugin system
   AnalysisBuilder<ALICE_JETRAA2> plugin_ALICE_JETRAA2;
 
 }
Index: trunk/code/CMS_2011_I889010.cc
===================================================================
--- trunk/code/CMS_2011_I889010.cc	(revision 451)
+++ trunk/code/CMS_2011_I889010.cc	(revision 452)
@@ -1,229 +1,227 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 #include "Rivet/Tools/Logging.hh"
-#include "Rivet/RivetAIDA.hh"
 #include "Rivet/Tools/ParticleIdUtils.hh"
 #include <boost/lexical_cast.hpp>
 namespace Rivet {
 
 
   /// @brief CMS dijet asymmetry in PbPb at 2.76 TeV and pp at 7 TeV
   class CMS_2011_I889010 : public Analysis {
   public:
 
     /// Constructor
     CMS_2011_I889010()
       : Analysis("CMS_2011_I889010"),
         _sumWeightSelected(0.0)
     {
-      setBeams(PROTON, PROTON);
     }
 
     /// Book projections and histograms
     void init() {
       VisibleFinalState vfs(-5.0, 5.0, 0.*GeV);
 	ChargedFinalState cfs(-2.4, 2.4, 0.5*GeV);
 
 	addProjection(vfs, "VFS");
 	addProjection(cfs, "CFS");
       addProjection(FastJets(vfs, FastJets::ANTIKT, 0.5), "Jets");
 
       if (fuzzyEquals(sqrtS()/GeV, 7000., 1E-3)) {
       } else if (fuzzyEquals(sqrtS()/GeV, 2760., 1E-3)) {
       }
-      _h_jetpt = bookHistogram1D("jetpt", 8, 120.0, 320.0,
+      _h_jetpt = bookHisto1D("jetpt", 8, 120.0, 320.0,
               "leading jet pt spectrum",
               "$p_\\perp\\ [GeV]$",
               "$1/N_\\mathrm{jet} \\mathrm{d}\\N/\\mathrm{d} p_\\perp$");
-      _h_aj    = bookHistogram1D("A_J", 16, 0.0, 1.0,
+      _h_aj    = bookHisto1D("A_J", 16, 0.0, 1.0,
               "dijet asymmetry",
               "$A_\\mathrm{J}$",
               "$1/N_\\mathrm{jet} \\mathrm{d}\\N/\\mathrm{d} A_\\mathrm{J}$");
-      _h_dphi  = bookHistogram1D("delta_phi", 28, 0.0, M_PI,
+      _h_dphi  = bookHisto1D("delta_phi", 28, 0.0, M_PI,
               "dijet azimuthal decorrelation",
               "$\\Delta \\phi$",
               "$1/N_\\mathrm{jet} \\mathrm{d}\\N/\\mathrm{d} \\Delta \\phi$");
 		  
       std::vector<double> pTs;
       pTs += 0.5, 1.0, 2.0, 4.0, 8.0;
 	for (int i=0; i<=5; i++){
 	  std::stringstream p1namea, p2namea, p3namea;
 	  std::stringstream p1nameb, p2nameb, p3nameb;
 	  p1namea<<"pmiss_all_"<<i;
 	  p2namea<<"pmiss_in_"<<i;
 	  p3namea<<"pmiss_out_"<<i;
 	  if (i==0 || i==5){
 	    p1nameb<<"missing momentum all pt > "<<(i==0?pTs[0]:pTs[4])<<" GeV";
 	    p2nameb<<"missing momentum in pt > "<<(i==0?pTs[0]:pTs[4])<<" GeV";
 	    p3nameb<<"missing momentum out pt > "<<(i==0?pTs[0]:pTs[4])<<" GeV";
 	  }
 	  else {
 	    p1nameb<<"missing momentum all "<<pTs[i-1]<<" GeV < pt < "<<pTs[i]<<" GeV";
 	    p2nameb<<"missing momentum in "<<pTs[i-1]<<" GeV < pt < "<<pTs[i]<<" GeV";
 	    p3nameb<<"missing momentum out "<<pTs[i-1]<<" GeV < pt < "<<pTs[i]<<" GeV";
 	  }
 	  
 	  _p_pmissall.push_back(bookProfile1D(p1namea.str(), 4, 0.0, 0.5, p1nameb.str(),
 				"$A_\\mathrm{J}$",
 				"$<p_{\\perp, \\mathrm{miss}}^\\parallel> [\\mathrm{GeV}]$"));
 	  _p_pmissin.push_back(bookProfile1D(p2namea.str(), 4, 0.0, 0.5, p2nameb.str(),
 				"$A_\\mathrm{J}$",
 				"$<p_{\\perp, \\mathrm{miss}}^\\parallel> [\\mathrm{GeV}]$"));
 	  _p_pmissout.push_back(bookProfile1D(p3namea.str(), 4, 0.0, 0.5, p3nameb.str(),
 				"$A_\\mathrm{J}$",
 				"$<p_{\\perp, \\mathrm{miss}}^\\parallel> [\\mathrm{GeV}]$"));
 	}
     }
 
 
     /// Do the analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
       const Jets alljets = applyProjection<FastJets>(event, "Jets").jetsByPt();
       Jets jets;
       foreach (Jet jet, alljets) {
         if (fabs(jet.momentum().eta())<2.0 && jet.momentum().pT()>50.) {
           jets.push_back(jet);
 	  }
       }
 
       if (jets.size() < 2 || jets[0].momentum().pT() < 120.) vetoEvent;
 	Jet partner = jets[1];
 
       double deltaphi = deltaPhi(partner,jets[0]);
       if (deltaphi < 2.*M_PI/3.) vetoEvent;
 	 
 	double pt1 = jets[0].momentum().pT();
 	double pt2 = partner.momentum().pT();
 	double aj = (pt1-pt2)/(pt1+pt2);
 
 	_sumWeightSelected += event.weight();
 	
 	_h_jetpt->fill(pt1,weight);
 	_h_aj->fill(aj,weight);
 	_h_dphi->fill(deltaphi,weight);
 
 	
 	
 	jets.clear();
       const ChargedFinalState tracks = applyProjection<ChargedFinalState>(event, "CFS");
 	
       foreach (Jet jet, alljets) {
         if (fabs(jet.momentum().eta())<1.6 && jet.momentum().pT()>50.) {
           jets.push_back(jet);
 	  }
       }
 
       if (jets.size() > 1 && jets[0].momentum().pT() > 120.){
 	  partner = jets[1];
         double angle = deltaPhi(partner,jets[0]);
         if (angle > 2.*M_PI/3.) {	 
 	    pt1 = jets[0].momentum().pT();
 	    pt2 = partner.momentum().pT();
 	    aj = (pt1-pt2)/(pt1+pt2);
 	    double philead = jets[0].momentum().azimuthalAngle(); 
 	    std::vector<double> pmissall;
 	    for(int i=0; i<=5; i++) pmissall.push_back(0.);
 	    foreach (Particle p, tracks.particles()){
 		double pt = p.momentum().pT();
 		double phi = p.momentum().azimuthalAngle();
 		pmissall[0] += -pt*cos(phi-philead);
 		if (pt < 1. ){
 		  pmissall[1] += -pt*cos(phi-philead);
 		}
 		else if (pt < 2.){
 		  pmissall[2] += -pt*cos(phi-philead);
 		}
 		else if (pt < 4.){
 		  pmissall[3] += -pt*cos(phi-philead);
 		}
 		else if (pt < 8.){
 		  pmissall[4] += -pt*cos(phi-philead);
 		}
 		else {
 		  pmissall[5] += -pt*cos(phi-philead);
 		}
 	    }
 	    for (int i=0; i<=5; i++){
 		_p_pmissall[i]->fill(aj,pmissall[i],weight);
 	    }
 	  }
 
         if (angle > 5.*M_PI/5.) {	 
 	    pt1 = jets[0].momentum().pT();
 	    pt2 = partner.momentum().pT();
 	    aj = (pt1-pt2)/(pt1+pt2);
 	    double philead = jets[0].momentum().azimuthalAngle(); 
 	    std::vector<double> pmissin, pmissout;
 	    for(int i=0; i<=5; i++){
 		pmissin.push_back(0.);
 		pmissout.push_back(0.);
 	    }
 	    foreach (Particle p, tracks.particles()){
 		double pt = p.momentum().pT();
 		double phi = p.momentum().azimuthalAngle();
 		double dR1 = deltaR(jets[0],p);
 		double dR2 = deltaR(partner,p);
 		if (dR1 < 0.8 || dR2 < 0.8) pmissin[0] += -pt*cos(phi-philead);
 		else pmissout[0] += -pt*cos(phi-philead);
 		if (pt < 1. ){
 		  if (dR1 < 0.8 || dR2 < 0.8) pmissin[1] += -pt*cos(phi-philead);
 		  else pmissout[1] += -pt*cos(phi-philead);
 		}
 		else if (pt < 2.){
 		  if (dR1 < 0.8 || dR2 < 0.8) pmissin[2] += -pt*cos(phi-philead);
 		  else pmissout[2] += -pt*cos(phi-philead);
 		}
 		else if (pt < 4.){
 		  if (dR1 < 0.8 || dR2 < 0.8) pmissin[3] += -pt*cos(phi-philead);
 		  else pmissout[3] += -pt*cos(phi-philead);
 		}
 		else if (pt < 8. || dR2 < 0.8){
 		  if (dR1 < 0.8) pmissin[4] += -pt*cos(phi-philead);
 		  else pmissout[4] += -pt*cos(phi-philead);
 		}
 		else {
 		  if (dR1 < 0.8 || dR2 < 0.8) pmissin[5] += -pt*cos(phi-philead);
 		  else pmissout[5] += -pt*cos(phi-philead);
 		}
 	    }
 	    for (int i=0; i<=5; i++){
 		_p_pmissin[i]->fill(aj,pmissin[i],weight);
 		_p_pmissout[i]->fill(aj,pmissout[i],weight);
 	    }
 	  }
 	}
     }
 	
 	
     /// Finalize
     void finalize() {
       scale(_h_jetpt,1./_sumWeightSelected);
       scale(_h_aj,1./_sumWeightSelected);
       scale(_h_dphi,1./_sumWeightSelected);
       getLog() << Log::DEBUG << "sumOfWeights()     = " << sumOfWeights() << std::endl;
       getLog() << Log::DEBUG << "_sumWeightSelected = " << _sumWeightSelected << std::endl;
     }
     
     
   private:
 
     double _sumWeightSelected;
 
-    AIDA::IHistogram1D * _h_jetpt;
-    AIDA::IHistogram1D * _h_aj;
-    AIDA::IHistogram1D * _h_dphi;
-    std::vector<AIDA::IProfile1D *> _p_pmissall;
-    std::vector<AIDA::IProfile1D *> _p_pmissin;
-    std::vector<AIDA::IProfile1D *> _p_pmissout;
+    Histo1DPtr  _h_jetpt;
+    Histo1DPtr  _h_aj;
+    Histo1DPtr  _h_dphi;
+    std::vector<Profile1DPtr> _p_pmissall;
+    std::vector<Profile1DPtr> _p_pmissin;
+    std::vector<Profile1DPtr> _p_pmissout;
   };
 
 
 
   // This global object acts as a hook for the plugin system
   AnalysisBuilder<CMS_2011_I889010> plugin_CMS_2011_I889010;
 
 }
Index: trunk/code/MC_AJ2.cc
===================================================================
--- trunk/code/MC_AJ2.cc	(revision 451)
+++ trunk/code/MC_AJ2.cc	(revision 452)
@@ -1,558 +1,558 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
-#include "Rivet/RivetAIDA.hh"
 #include "Rivet/Tools/Logging.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include <iostream>
 
 namespace Rivet {
 
 
   class MC_AJ2 : public Analysis {
   public:
 
     /// Constructor
     MC_AJ2()
       : Analysis("MC_AJ2")
     {
       setNeedsCrossSection(true);
 	_pt0min = 100.; _pt1min = 20.; _ptcut = 5.;
       _gridrmax = 10.; _gridphimax = M_PI;
       _ngridrbins = 50; _ngridphibins = 31;
       _gridLnmax = 8.; _gridMoPtmax = 1.;
       _ngridLnbins = 16; _ngridMoPtbins = 20;
       _nlnbins = 32; _lnmax = 16.;
     }
 
 
   public:
 
     /// Book histograms and initialise projections before the run
     void init() {
 
       FinalState fs(-5.0, 5.0, 0.*GeV);
 	addProjection(fs, "FS");
 
 	FastJets fj(fs, FastJets::ANTIKT, 0.4);
 	fj.useInvisibles();
       addProjection(fj, "Jets");
 
 	readLnGrid();
 	readDPtGrid();
 
-	_h_aj       = bookHistogram1D("aj", 20, 0., 1.);
-	_h_aj_av1   = bookHistogram1D("ajav1", 20, 0., 1.);
-	_h_aj_av2   = bookHistogram1D("ajav2", 20, 0., 1.);
-	_h_aj_av3   = bookHistogram1D("ajav3", 20, 0., 1.);
-	_h_aj_in    = bookHistogram1D("ajin", 20, 0., 1.);
-
-      _h_virtopt[0] = bookHistogram1D("virtopt_0",100, 0., 2.);
-      _h_virtopt[1] = bookHistogram1D("virtopt_1",100, 0., 2.);
-      _h_deltapt[0] = bookHistogram1D("deltapt_0",100, 0., 100.);
-      _h_deltapt[1] = bookHistogram1D("deltapt_1",100, 0., 100.);
-      _h_deltaptopt[0] = bookHistogram1D("deltaptopt_0",100, 0., 1.);
-      _h_deltaptopt[1] = bookHistogram1D("deltaptopt_1",100, 0., 1.);
-      _h_ptratio[0] = bookHistogram1D("ptratio_0",100, 0., 1.);
-      _h_ptratio[1] = bookHistogram1D("ptratio_1",100, 0., 1.);
-	_p_deltaptoverptlog[0] = bookProfile1D("deltaptoverptlog_0", logBinEdges(20, 0.01, 1.));
-	_p_deltaptoverptlog[1] = bookProfile1D("deltaptoverptlog_1", logBinEdges(20, 0.01, 1.));
-	_p_meanptshift2log2[0] = bookProfile1D("meanptshift2log_0", logBinEdges(20, 0.01, 1.));
-	_p_meanptshift2log2[1] = bookProfile1D("meanptshift2log_1", logBinEdges(20, 0.01, 1.));
+	_h_aj       = bookHisto1D("aj", 20, 0., 1.);
+	_h_aj_av1   = bookHisto1D("ajav1", 20, 0., 1.);
+	_h_aj_av2   = bookHisto1D("ajav2", 20, 0., 1.);
+	_h_aj_av3   = bookHisto1D("ajav3", 20, 0., 1.);
+	_h_aj_in    = bookHisto1D("ajin", 20, 0., 1.);
+
+      _h_virtopt[0] = bookHisto1D("virtopt_0",100, 0., 2.);
+      _h_virtopt[1] = bookHisto1D("virtopt_1",100, 0., 2.);
+      _h_deltapt[0] = bookHisto1D("deltapt_0",100, 0., 100.);
+      _h_deltapt[1] = bookHisto1D("deltapt_1",100, 0., 100.);
+      _h_deltaptopt[0] = bookHisto1D("deltaptopt_0",100, 0., 1.);
+      _h_deltaptopt[1] = bookHisto1D("deltaptopt_1",100, 0., 1.);
+      _h_ptratio[0] = bookHisto1D("ptratio_0",100, 0., 1.);
+      _h_ptratio[1] = bookHisto1D("ptratio_1",100, 0., 1.);
+	_p_deltaptoverptlog[0] = bookProfile1D("deltaptoverptlog_0", logspace(20, 0.01, 1.));
+	_p_deltaptoverptlog[1] = bookProfile1D("deltaptoverptlog_1", logspace(20, 0.01, 1.));
+	_p_meanptshift2log2[0] = bookProfile1D("meanptshift2log_0", logspace(20, 0.01, 1.));
+	_p_meanptshift2log2[1] = bookProfile1D("meanptshift2log_1", logspace(20, 0.01, 1.));
 	_p_meanptshift  = bookProfile1D("meanptshift", 100, 0., 300.);
 	_p_meanptshift2 = bookProfile1D("meanptshift2", 100, 0., 1.);
-	_p_meanptshift2log = bookProfile1D("meanptshift2log", logBinEdges(20, 0.01, 1.));
-	_h_lns  = bookHistogram1D("path_lengths", 50, 0., 20.);
-	_h_lns2 = bookHistogram2D("path_lengths_2d", 50, 0., 10., 50, 0., 10.);
-	_h_ln0  = bookHistogram1D("path_lengths_0", 50, 0., 20.);
-	_h_ln1  = bookHistogram1D("path_lengths_1", 50, 0., 20.);
-      _h_jetpt00 = bookHistogram1D("jetpt00",30, 0., 300.);
-      _h_jetpt10 = bookHistogram1D("jetpt10",30, 0., 300.);
-      _h_jetpt01 = bookHistogram1D("jetpt01",30, 0., 300.);
-      _h_jetpt11 = bookHistogram1D("jetpt11",30, 0., 300.);
-      _h_jetpt02 = bookHistogram1D("jetpt02",30, 0., 300.);
-      _h_jetpt12 = bookHistogram1D("jetpt12",30, 0., 300.);
+	_p_meanptshift2log = bookProfile1D("meanptshift2log", logspace(20, 0.01, 1.));
+	_h_lns  = bookHisto1D("path_lengths", 50, 0., 20.);
+	_h_lns2 = bookHisto2D("path_lengths_2d", 50, 0., 10., 50, 0., 10.);
+	_h_ln0  = bookHisto1D("path_lengths_0", 50, 0., 20.);
+	_h_ln1  = bookHisto1D("path_lengths_1", 50, 0., 20.);
+      _h_jetpt00 = bookHisto1D("jetpt00",30, 0., 300.);
+      _h_jetpt10 = bookHisto1D("jetpt10",30, 0., 300.);
+      _h_jetpt01 = bookHisto1D("jetpt01",30, 0., 300.);
+      _h_jetpt11 = bookHisto1D("jetpt11",30, 0., 300.);
+      _h_jetpt02 = bookHisto1D("jetpt02",30, 0., 300.);
+      _h_jetpt12 = bookHisto1D("jetpt12",30, 0., 300.);
       for (size_t i = 0; i < _nlnbins; ++i) {
         stringstream ss; ss << "Deltapt" << "_" << i;
-	  _p_ptshift_2d[i] = bookProfile1D(ss.str(), logBinEdges(20, 0.01, 1.));
+	  _p_ptshift_2d[i] = bookProfile1D(ss.str(), logspace(20, 0.01, 1.));
       }
 	_p_unmatchedfrac = bookProfile1D("unmatchedfrac", 1, -0.5, 0.5);
 	_p_swapfrac0 = bookProfile1D("swapfrac0", 1, -0.5, 0.5);
 	_p_swapfrac1 = bookProfile1D("swapfrac1", 1, -0.5, 0.5);
 	_p_swapfrac2 = bookProfile1D("swapfrac2", 1, -0.5, 0.5);
 	_p_swapfrac3 = bookProfile1D("swapfrac3", 1, -0.5, 0.5);
 
     }
 
 
     /// read in path length grid
     void readLnGrid() {
 	std::ifstream infile("geo-finegrid.dat");
 	if (infile.is_open()) {
 	  for (size_t i = 0; i < _ngridrbins ; ++i) {
 	    for (size_t j = 0; j < _ngridphibins ; ++j) {
 		infile >> _Lngrid[i][j];
 	    }
 	  }
 	}
 	else {
 	  cout<<"Unable to open input file.\n";
 	  exit(1);
 	}
     }
 
     /// read in path Delta pt
     void readDPtGrid() {
 	std::ifstream infile("Deltapt2.dat");
 	if (infile.is_open()) {
 	  for (size_t i = 0; i < _ngridLnbins ; ++i) {
 	    for (size_t j = 0; j < _ngridMoPtbins ; ++j) {
 		infile >> _DPtgrid[i][j];
 	    }
 	  }
 	}
 	else {
 	  cout<<"Unable to open input file.\n";
 	  exit(1);
 	}
     }
 
     /// interpolation on path length grid
     double getLn(double r, double phi, double jetphi, double jeteta) {
 	double phirel;
 	if (jetphi > phi) phirel = jetphi - phi;
 	else phirel = 2.*M_PI - (phi - jetphi);
 	if (phirel > M_PI) phirel = 2.*M_PI - phirel;
 
 	int rbin, phibin;
 	rbin = r*_ngridrbins/_gridrmax;
 	phibin = phirel*(_ngridphibins-1)/_gridphimax;
 
 	double rvals[2], phivals[2], lnvals[2][2];
       for (size_t i = 0; i < 2; ++i) {
 	  rvals[i] = (rbin+i)*_gridrmax/_ngridrbins;
 	  phivals[i] = (phibin+i)*_gridphimax/(_ngridphibins-1);
         for (size_t j = 0; j < 2; ++j) {
 	    lnvals[i][j] = _Lngrid[rbin+i][phibin+j];
 	  }
 	}
 	double a,b,tmp[2],res;
       for (size_t i = 0; i < 2; ++i) {
 	  a = (lnvals[i][1]-lnvals[i][0])/(phivals[1]-phivals[0]);
 	  b = lnvals[i][0] - a*phivals[0];
 	  tmp[i] = a*phirel+b;
 	}
 	a = (tmp[1]-tmp[0])/(rvals[1]-rvals[0]);
 	b = tmp[0] - a*rvals[0];
 	res = a*r+b;
 	return 2.*res;
     }
 
     /// interpolation on Delta pt grid
     double getDPt(double ln, double mopt) {
 	int lnbin, massbin;
 	lnbin = min(ln*_ngridLnbins/_gridLnmax, _ngridLnbins-2.);
 	massbin = min(mopt*_ngridMoPtbins/_gridMoPtmax, _ngridMoPtbins-2.);
 
 	double lnvals[2], massvals[2], dptvals[2][2];
       for (size_t i = 0; i < 2; ++i) {
 	  lnvals[i] = (lnbin+i+0.5)*_gridLnmax/_ngridLnbins;
 	  massvals[i] = (massbin+i+0.5)*_gridMoPtmax/_ngridMoPtbins;
         for (size_t j = 0; j < 2; ++j) {
 	    dptvals[i][j] = _DPtgrid[lnbin+i][massbin+j];
 	  }
 	}
 	double a,b,tmp[2],res;
       for (size_t i = 0; i < 2; ++i) {
 	  a = (dptvals[i][1]-dptvals[i][0])/(massvals[1]-massvals[0]);
 	  b = dptvals[i][0] - a*massvals[0];
 	  tmp[i] = a*mopt+b;
 	}
 	a = (tmp[1]-tmp[0])/(lnvals[1]-lnvals[0]);
 	b = tmp[0] - a*lnvals[0];
 	res = a*ln+b;
 	return max(res, 0.);
     }
 
     double fitvac(double x) {
 //	double a0(2.1185), a1(-41.156), a2(409.79), a3(-742.952), a4(389.278);
 //	return a0+a1*x+a2*sqr(x)+a3*pow(x,3)+a4*pow(x,4);
 //	double u(26.22), v(0.2487), w(0.09147);
 	double u(18.72), v(0.2683), w(0.06964);
 	return u/(1.+exp((v-x)/w));
     }
 
     double fitmed(double x, double y) {
 	double a0(1.), a1(0.5), a2(0.1);
 	double b0(5.518), b1(62.26), b2(4.50);
 	return (a0/(1.+exp((a1-x)/a2)))*(1.-exp(-b0*y))*(b1+b2/max(y,0.01));
     }
 
     double fitmedav(double x) {
 	double a0(5.53), a1(61.9), a2(4.56);
 	return (1.-exp(-a0*x))*(a1+a2/max(x,0.01));
     }
 
 
     /// Perform the per-event analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
-	double jprodphi = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->event_plane_angle():-1.);
-	const double jprodr = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->eccentricity():9.5);
-	const double inpt1 = (event.genEvent().heavy_ion()?(event.genEvent().heavy_ion()->Ncoll_hard())*0.01:0.);
-	const double inmass1 = (event.genEvent().heavy_ion()?(event.genEvent().heavy_ion()->Npart_proj())*0.01:0.);
-	double inphi1 = (event.genEvent().heavy_ion()?(event.genEvent().heavy_ion()->Npart_targ())*0.01:0.);
+	double jprodphi = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->event_plane_angle():-1.);
+	const double jprodr = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->eccentricity():9.5);
+	const double inpt1 = (event.genEvent()->heavy_ion()?(event.genEvent()->heavy_ion()->Ncoll_hard())*0.01:0.);
+	const double inmass1 = (event.genEvent()->heavy_ion()?(event.genEvent()->heavy_ion()->Npart_proj())*0.01:0.);
+	double inphi1 = (event.genEvent()->heavy_ion()?(event.genEvent()->heavy_ion()->Npart_targ())*0.01:0.);
 	if (inphi1 < 0.) inphi1 += 2.*M_PI;
-	const double ineta1 = (event.genEvent().heavy_ion()?(event.genEvent().heavy_ion()->Nwounded_Nwounded_collisions())*0.01:0.);
-	const double inpt2 = (event.genEvent().heavy_ion()?(event.genEvent().heavy_ion()->Ncoll())*0.01:0.);
-	const double inmass2 = (event.genEvent().heavy_ion()?(event.genEvent().heavy_ion()->spectator_neutrons())*0.01:0.);
-	double inphi2 = (event.genEvent().heavy_ion()?(event.genEvent().heavy_ion()->spectator_protons())*0.01:0.);
+	const double ineta1 = (event.genEvent()->heavy_ion()?(event.genEvent()->heavy_ion()->Nwounded_Nwounded_collisions())*0.01:0.);
+	const double inpt2 = (event.genEvent()->heavy_ion()?(event.genEvent()->heavy_ion()->Ncoll())*0.01:0.);
+	const double inmass2 = (event.genEvent()->heavy_ion()?(event.genEvent()->heavy_ion()->spectator_neutrons())*0.01:0.);
+	double inphi2 = (event.genEvent()->heavy_ion()?(event.genEvent()->heavy_ion()->spectator_protons())*0.01:0.);
 	if (inphi2 < 0.) inphi2 += 2.*M_PI;
-	const double ineta2 = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->sigma_inel_NN():0.);
+	const double ineta2 = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->sigma_inel_NN():0.);
 	double deltaphi(min(fabs(inphi1-inphi2),fabs(fabs(inphi1-inphi2)-2.*M_PI)));
 
 	double inpt[2], inphi[2], inmass[2], ineta[2];
 	if (inpt1 > inpt2) {
 	  inpt[0] = inpt1;
 	  inpt[1] = inpt2;
 	  inphi[0] = inphi1;
 	  inphi[1] = inphi2;
 	  inmass[0] = inmass1;
 	  inmass[1] = inmass2;
 	  ineta[0] = ineta1;
 	  ineta[1] = ineta2;
 	}
 	else {
 	  inpt[0] = inpt2;
 	  inpt[1] = inpt1;
 	  inphi[0] = inphi2;
 	  inphi[1] = inphi1;
 	  inmass[0] = inmass2;
 	  inmass[1] = inmass1;
 	  ineta[0] = ineta2;
 	  ineta[1] = ineta1;
 	}
 
 	// apply di-jet cuts to incoming partons
 	if (inpt[0] < _pt0min || inpt[1] < _pt1min || deltaphi < M_PI/2. || fabs(ineta1) > 2. || fabs(ineta2) > 2.) vetoEvent;
 
 	_h_virtopt[0]->fill(inmass[0]/inpt[0],weight);
 	_h_virtopt[1]->fill(inmass[1]/inpt[1],weight);
 
 	double ajin = (inpt[0] - inpt[1])/(inpt[0] + inpt[1]);
 	_h_aj_in->fill(ajin,weight);
 
 	double ln[2];
 	ln[0] = getLn(jprodr, jprodphi, inphi[0], ineta[0]);	
 	ln[1] = getLn(jprodr, jprodphi, inphi[1], ineta[1]);	
 	_h_lns->fill(ln[0],weight);
 	_h_lns->fill(ln[1],weight);
 
 	double pt0av, pt1av, ajav;
 	pt0av = inpt[0]-fitvac(inmass[0]/inpt[0])/0.85;
 	pt1av = inpt[1]-fitvac(inmass[1]/inpt[1])*0.85;
 	if (max(pt0av,pt1av) > _pt0min && min(pt0av,pt1av) > _pt1min) {
 	  ajav = (max(pt0av,pt1av)-min(pt0av,pt1av))/(pt0av+pt1av);
 	  _h_aj_av1->fill(ajav,weight);
 	  if (pt0av > pt1av) _p_swapfrac1->fill(0.,0.,weight);
 	  else _p_swapfrac1->fill(0.,1.,weight);
 	  _h_jetpt01->fill(max(pt0av,pt1av),weight);
 	  _h_jetpt11->fill(min(pt0av,pt1av),weight);
 	}
 //	pt0av = inpt[0]-fitmed(ln[0],inmass[0]/inpt[0])/0.9;
 //	pt1av = inpt[1]-fitmed(ln[1],inmass[1]/inpt[1])*0.9;
 	pt0av = inpt[0]-getDPt(ln[0],inmass[0]/inpt[0])/0.9;
 	pt1av = inpt[1]-getDPt(ln[1],inmass[1]/inpt[1])*0.9;
 	if (max(pt0av,pt1av) > _pt0min && min(pt0av,pt1av) > _pt1min) {
 	  ajav = (max(pt0av,pt1av)-min(pt0av,pt1av))/(pt0av+pt1av);
 	  _h_aj_av2->fill(ajav,weight);
 	  if (pt0av > pt1av) _p_swapfrac2->fill(0.,0.,weight);
 	  else _p_swapfrac2->fill(0.,1.,weight);
 	  _h_jetpt02->fill(max(pt0av,pt1av),weight);
 	  _h_jetpt12->fill(min(pt0av,pt1av),weight);
 	}
 	pt0av = inpt[0]-fitmedav(inmass[0]/inpt[0])/0.9;
 	pt1av = inpt[1]-fitmedav(inmass[1]/inpt[1])*0.9;
 	if (max(pt0av,pt1av) > _pt0min && min(pt0av,pt1av) > _pt1min) {
 	  ajav = (max(pt0av,pt1av)-min(pt0av,pt1av))/(pt0av+pt1av);
 	  _h_aj_av3->fill(ajav,weight);
 	  if (pt0av > pt1av) _p_swapfrac3->fill(0.,0.,weight);
 	  else _p_swapfrac3->fill(0.,1.,weight);
 	}
 
-      const Jets jets = applyProjection<FastJets>(event, "Jets").jetsByPt(_ptcut*GeV, MAXDOUBLE*GeV, -2.0, 2.0);
+	Cut cuts = Cuts::abseta < 2.0 && Cuts::pT > _ptcut*GeV;
+      const Jets jets = applyProjection<FastJets>(event, "Jets").jetsByPt(cuts);
 	Jets sepjets;
 	if (jets.size() > 0) sepjets.push_back(jets[0]);
 	if (jets.size() > 1) {
 	  for (size_t i = 1; i < jets.size(); ++i) {
 	    if (deltaPhi(jets[0],jets[i]) > M_PI/2.) sepjets.push_back(jets[i]); 
 	  }
 	}
 
 	if (sepjets.size() == 0) {
 	  _h_deltapt[0]->fill(inpt[0]-_ptcut,weight);
 	  _h_deltapt[1]->fill(inpt[1]-_ptcut,weight);
 	  _h_deltaptopt[0]->fill((inpt[0]-_ptcut)/inpt[0],weight);
 	  _h_deltaptopt[1]->fill((inpt[1]-_ptcut)/inpt[1],weight);
 	  _h_ptratio[0]->fill(_ptcut/inpt[0],weight);
 	  _h_ptratio[1]->fill(_ptcut/inpt[1],weight);
 	  _p_meanptshift->fill(inmass1, inpt1-_ptcut, weight);
 	  _p_meanptshift->fill(inmass2, inpt2-_ptcut, weight);
 	  _p_meanptshift2->fill(inmass1/inpt1, inpt1-_ptcut, weight);
 	  _p_meanptshift2->fill(inmass2/inpt2, inpt2-_ptcut, weight);
 	  _p_meanptshift2log->fill(inmass1/inpt1, inpt1-_ptcut, weight);
 	  _p_meanptshift2log->fill(inmass2/inpt2, inpt2-_ptcut, weight);
 	  _p_meanptshift2log2[0]->fill(inmass[0]/inpt[0], inpt[0]-_ptcut, weight);
 	  _p_meanptshift2log2[1]->fill(inmass[1]/inpt[1], inpt[1]-_ptcut, weight);
 	  _p_deltaptoverptlog[0]->fill(inmass[0]/inpt[0], 1., weight);
 	  _p_deltaptoverptlog[1]->fill(inmass[1]/inpt[1], 1., weight);
 	  for (size_t i = 0; i < _nlnbins; ++i) {
 	    if (ln[0] > i*_lnmax/_nlnbins && ln[0] < (i+1)*_lnmax/_nlnbins) 
 	      _p_ptshift_2d[i]->fill(inmass[0]/inpt[0], inpt[0]-_ptcut, weight);
 	    if (ln[1] > i*_lnmax/_nlnbins && ln[1] < (i+1)*_lnmax/_nlnbins) 
 	      _p_ptshift_2d[i]->fill(inmass[1]/inpt[1], inpt[1]-_ptcut, weight);
 	  }	  
 	}
 	else if (sepjets.size() == 1) {
 	  double jpt, jphi, dphi0, dphi1;
 	  jpt = sepjets[0].momentum().pT();
 	  jphi = sepjets[0].momentum().phi();
 	  dphi0 = min(fabs(jphi-inphi[0]),fabs(fabs(jphi-inphi[0])-2.*M_PI));
 	  dphi1 = min(fabs(jphi-inphi[1]),fabs(fabs(jphi-inphi[1])-2.*M_PI));
 	  if (dphi0 < dphi1 && dphi0 < M_PI/5.) {
 	    _p_unmatchedfrac->fill(0.,0., weight);
 	    _h_deltapt[0]->fill(inpt[0]-jpt,weight);
 	    _h_deltapt[1]->fill(inpt[1]-_ptcut,weight);
 	    _h_deltaptopt[0]->fill((inpt[0]-jpt)/inpt[0],weight);
 	    _h_deltaptopt[1]->fill((inpt[1]-_ptcut)/inpt[1],weight);
 	    _h_ptratio[0]->fill(jpt/inpt[0],weight);
 	    _h_ptratio[1]->fill(_ptcut/inpt[1],weight);
 	    _p_meanptshift->fill(inmass[0], inpt[0]-jpt, weight);
 	    _p_meanptshift->fill(inmass[1], inpt[1]-_ptcut, weight);
 	    _p_meanptshift2->fill(inmass[0]/inpt[1], inpt[0]-jpt, weight);
 	    _p_meanptshift2->fill(inmass[1]/inpt[1], inpt[1]-_ptcut, weight);
 	    _p_meanptshift2log->fill(inmass[0]/inpt[0], inpt[0]-jpt, weight);
 	    _p_meanptshift2log->fill(inmass[1]/inpt[1], inpt[1]-_ptcut, weight);
 	    _p_meanptshift2log2[0]->fill(inmass[0]/inpt[0], inpt[0]-jpt, weight);
 	    _p_meanptshift2log2[1]->fill(inmass[1]/inpt[1], inpt[1]-_ptcut, weight);
 	    _p_deltaptoverptlog[0]->fill(inmass[0]/inpt[0], (inpt[0]-jpt)/inpt[0], weight);
 	    _p_deltaptoverptlog[1]->fill(inmass[1]/inpt[1], 1., weight);
 	    for (size_t i = 0; i < _nlnbins; ++i) {
 	      if (ln[0] > i*_lnmax/_nlnbins && ln[0] < (i+1)*_lnmax/_nlnbins) 
 	        _p_ptshift_2d[i]->fill(inmass[0]/inpt[0], inpt[0]-jpt, weight);
 	      if (ln[1] > i*_lnmax/_nlnbins && ln[1] < (i+1)*_lnmax/_nlnbins) 
 	        _p_ptshift_2d[i]->fill(inmass[1]/inpt[1], inpt[1]-_ptcut, weight);
 	    }	  
 	  }
 	  else if (dphi1 < dphi0 && dphi1 < M_PI/5.) {
 	    _p_unmatchedfrac->fill(0.,0., weight);
 	    _h_deltapt[0]->fill(inpt[0]-_ptcut,weight);
 	    _h_deltapt[1]->fill(inpt[1]-jpt,weight);
 	    _h_deltaptopt[0]->fill((inpt[0]-_ptcut)/inpt[0],weight);
 	    _h_deltaptopt[1]->fill((inpt[1]-jpt)/inpt[1],weight);
 	    _h_ptratio[0]->fill(_ptcut/inpt[0],weight);
 	    _h_ptratio[1]->fill(jpt/inpt[1],weight);
 	    _p_meanptshift->fill(inmass[0], inpt[0]-_ptcut, weight);
 	    _p_meanptshift->fill(inmass[1], inpt[1]-jpt, weight);
 	    _p_meanptshift2->fill(inmass[0]/inpt[1], inpt[0]-_ptcut, weight);
 	    _p_meanptshift2->fill(inmass[1]/inpt[1], inpt[1]-jpt, weight);
 	    _p_meanptshift2log->fill(inmass[0]/inpt[0], inpt[0]-_ptcut, weight);
 	    _p_meanptshift2log->fill(inmass[1]/inpt[1], inpt[1]-jpt, weight);
 	    _p_meanptshift2log2[0]->fill(inmass[0]/inpt[0], inpt[0]-_ptcut, weight);
 	    _p_meanptshift2log2[1]->fill(inmass[1]/inpt[1], inpt[1]-jpt, weight);
 	    _p_deltaptoverptlog[0]->fill(inmass[0]/inpt[0], 1., weight);
 	    _p_deltaptoverptlog[1]->fill(inmass[1]/inpt[1], (inpt[1]-jpt)/inpt[1], weight);
 	    for (size_t i = 0; i < _nlnbins; ++i) {
 	      if (ln[0] > i*_lnmax/_nlnbins && ln[0] < (i+1)*_lnmax/_nlnbins) 
 	        _p_ptshift_2d[i]->fill(inmass[0]/inpt[0], inpt[0]-_ptcut, weight);
 	      if (ln[1] > i*_lnmax/_nlnbins && ln[1] < (i+1)*_lnmax/_nlnbins) 
 	        _p_ptshift_2d[i]->fill(inmass[1]/inpt[1], inpt[1]-jpt, weight);
 	    }	  
 	  }
 	  else {
 	    _p_unmatchedfrac->fill(0.,1., weight);
 	    //cout<<"Cannot match jet to initial parton.\n"; 
 	    //cout<<inphi[0]<<"  "<<inphi[1]<<"    "<<jphi<<endl;
 	  }
 	}
 	else {
 	  double jpt0, jpt1, jphi0, jphi1, dphi00, dphi01, dphi10, dphi11;
 	  jpt0 = sepjets[0].momentum().pT();
 	  jpt1 = sepjets[1].momentum().pT();
 	  jphi0 = sepjets[0].momentum().phi();
 	  jphi1 = sepjets[1].momentum().phi();
 	  dphi00 = min(fabs(jphi0-inphi[0]),fabs(fabs(jphi0-inphi[0])-2.*M_PI));
 	  dphi01 = min(fabs(jphi0-inphi[1]),fabs(fabs(jphi0-inphi[1])-2.*M_PI));
 	  dphi10 = min(fabs(jphi1-inphi[0]),fabs(fabs(jphi1-inphi[0])-2.*M_PI));
 	  dphi11 = min(fabs(jphi1-inphi[1]),fabs(fabs(jphi1-inphi[1])-2.*M_PI));
 	  if (dphi00 < M_PI/5. || dphi11 < M_PI/5. || (dphi00 < dphi01 && dphi11 < dphi10)) {
 	    _p_unmatchedfrac->fill(0.,0., weight);
 	    _h_deltapt[0]->fill(inpt[0]-jpt0,weight);
 	    _h_deltapt[1]->fill(inpt[1]-jpt1,weight);
 	    _h_deltaptopt[0]->fill((inpt[0]-jpt0)/inpt[0],weight);
 	    _h_deltaptopt[1]->fill((inpt[1]-jpt1)/inpt[1],weight);
 	    _h_ptratio[0]->fill(jpt0/inpt[0],weight);
 	    _h_ptratio[1]->fill(jpt1/inpt[1],weight);
 	    _p_meanptshift->fill(inmass[0], inpt[0]-jpt0, weight);
 	    _p_meanptshift->fill(inmass[1], inpt[1]-jpt1, weight);
 	    _p_meanptshift2->fill(inmass[0]/inpt[1], inpt[0]-jpt0, weight);
 	    _p_meanptshift2->fill(inmass[1]/inpt[1], inpt[1]-jpt1, weight);
 	    _p_meanptshift2log->fill(inmass[0]/inpt[0], inpt[0]-jpt0, weight);
 	    _p_meanptshift2log->fill(inmass[1]/inpt[1], inpt[1]-jpt1, weight);
 	    _p_meanptshift2log2[0]->fill(inmass[0]/inpt[0], inpt[0]-jpt0, weight);
 	    _p_meanptshift2log2[1]->fill(inmass[1]/inpt[1], inpt[1]-jpt1, weight);
 	    _p_deltaptoverptlog[0]->fill(inmass[0]/inpt[0], (inpt[0]-jpt0)/inpt[0], weight);
 	    _p_deltaptoverptlog[1]->fill(inmass[1]/inpt[1], (inpt[1]-jpt1)/inpt[1], weight);
 	    for (size_t i = 0; i < _nlnbins; ++i) {
 	      if (ln[0] > i*_lnmax/_nlnbins && ln[0] < (i+1)*_lnmax/_nlnbins) 
 	        _p_ptshift_2d[i]->fill(inmass[0]/inpt[0], inpt[0]-jpt0, weight);
 	      if (ln[1] > i*_lnmax/_nlnbins && ln[1] < (i+1)*_lnmax/_nlnbins) 
 	        _p_ptshift_2d[i]->fill(inmass[1]/inpt[1], inpt[1]-jpt1, weight);
 	    }	  
 	    if (jpt0 > _pt0min && jpt1 > _pt1min) {
 	      // Ln distributions
 	      _h_lns2->fill(ln[0],ln[1],weight);
 	      _h_ln0->fill(ln[0],weight);
 	      _h_ln1->fill(ln[1],weight);
 		_p_swapfrac0->fill(0.,0.,weight);
 	      // Aj distributions		
 	      double aj = (jpt0-jpt1)/(jpt0+jpt1);
 	      _h_aj->fill(aj,weight);
 		_h_jetpt00->fill(jpt0,weight);
 		_h_jetpt10->fill(jpt1,weight);
 	    }
 	  }
 	  else if (dphi01 < M_PI/5. || dphi10 < M_PI/5. || (dphi01 < dphi00 && dphi10 < dphi11)) {
 	    _p_unmatchedfrac->fill(0.,0., weight);
 	    _h_deltapt[0]->fill(inpt[0]-jpt1,weight);
 	    _h_deltapt[1]->fill(inpt[1]-jpt0,weight);
 	    _h_deltaptopt[0]->fill((inpt[0]-jpt1)/inpt[0],weight);
 	    _h_deltaptopt[1]->fill((inpt[1]-jpt0)/inpt[1],weight);
 	    _h_ptratio[0]->fill(jpt1/inpt[0],weight);
 	    _h_ptratio[1]->fill(jpt0/inpt[1],weight);
 	    _p_meanptshift->fill(inmass[0], inpt[0]-jpt1, weight);
 	    _p_meanptshift->fill(inmass[1], inpt[1]-jpt0, weight);
 	    _p_meanptshift2->fill(inmass[0]/inpt[1], inpt[0]-jpt1, weight);
 	    _p_meanptshift2->fill(inmass[1]/inpt[1], inpt[1]-jpt0, weight);
 	    _p_meanptshift2log->fill(inmass[0]/inpt[0], inpt[0]-jpt1, weight);
 	    _p_meanptshift2log->fill(inmass[1]/inpt[1], inpt[1]-jpt0, weight);
 	    _p_meanptshift2log2[0]->fill(inmass[0]/inpt[0], inpt[0]-jpt1, weight);
 	    _p_meanptshift2log2[1]->fill(inmass[1]/inpt[1], inpt[1]-jpt0, weight);
 	    _p_deltaptoverptlog[0]->fill(inmass[0]/inpt[0], (inpt[0]-jpt1)/inpt[0], weight);
 	    _p_deltaptoverptlog[1]->fill(inmass[1]/inpt[1], (inpt[1]-jpt0)/inpt[1], weight);
 	    for (size_t i = 0; i < _nlnbins; ++i) {
 	      if (ln[0] > i*_lnmax/_nlnbins && ln[0] < (i+1)*_lnmax/_nlnbins) 
 	        _p_ptshift_2d[i]->fill(inmass[0]/inpt[0], inpt[0]-jpt1, weight);
 	      if (ln[1] > i*_lnmax/_nlnbins && ln[1] < (i+1)*_lnmax/_nlnbins) 
 	        _p_ptshift_2d[i]->fill(inmass[1]/inpt[1], inpt[1]-jpt0, weight);
 	    }	  
 	    if (jpt0 > _pt0min && jpt1 > _pt1min) {
 	      // Ln distributions
 	      _h_lns2->fill(ln[1],ln[0],weight);
 	      _h_ln0->fill(ln[1],weight);
 	      _h_ln1->fill(ln[0],weight);
 		_p_swapfrac0->fill(0.,1.,weight);
 	      // Aj distributions		
 	      double aj = (jpt0-jpt1)/(jpt0+jpt1);
 	      _h_aj->fill(aj,weight);
 		_h_jetpt00->fill(jpt0,weight);
 		_h_jetpt10->fill(jpt1,weight);
 	    }
 	  }
 	  else {
 	    _p_unmatchedfrac->fill(0.,1., weight);
 	    //cout<<"Cannot match jets to initial partons.\n"; 
 	    //cout<<inphi[0]<<"  "<<inphi[1]<<"    "<<jphi0<<"  "<<jphi1<<endl;
 	    //cout<<sepjets.size()<<endl;
 	  }
 	}
 
     }
 
 
     /// Normalise histograms etc., after the run
     void finalize() {
 
 	normalize(_h_aj);
 	normalize(_h_aj_av1);
 	normalize(_h_aj_av2);
 	normalize(_h_aj_av3);
 	normalize(_h_aj_in);
 	normalize(_h_lns);
 	normalize(_h_lns2);
 	normalize(_h_ln0);
 	normalize(_h_ln1);
 	normalize(_h_virtopt[0]);
 	normalize(_h_virtopt[1]);
 	normalize(_h_deltapt[0]);
 	normalize(_h_deltapt[1]);
 	normalize(_h_deltaptopt[0]);
 	normalize(_h_deltaptopt[1]);
 	normalize(_h_ptratio[0]);
 	normalize(_h_ptratio[1]);
 	scale(_h_jetpt00,crossSection()/sumOfWeights());
 	scale(_h_jetpt10,crossSection()/sumOfWeights());
 	scale(_h_jetpt01,crossSection()/sumOfWeights());
 	scale(_h_jetpt11,crossSection()/sumOfWeights());
 	scale(_h_jetpt02,crossSection()/sumOfWeights());
 	scale(_h_jetpt12,crossSection()/sumOfWeights());
 
     }
 
 
   private:
 
     double _pt0min, _pt1min, _ptcut;
 
     double _Lngrid[50][31];
     double _gridrmax, _gridphimax;
     size_t _ngridrbins, _ngridphibins;
 
     double _DPtgrid[32][20];
     double _gridLnmax, _gridMoPtmax;
     size_t _ngridLnbins, _ngridMoPtbins;
 
     size_t _nlnbins;
     double _lnmax;
 
   private:
 
-    AIDA::IHistogram1D * _h_aj;
-    AIDA::IHistogram1D * _h_aj_av1;
-    AIDA::IHistogram1D * _h_aj_av2;
-    AIDA::IHistogram1D * _h_aj_av3;
-    AIDA::IHistogram1D * _h_aj_in;
-    AIDA::IHistogram1D * _h_virtopt[2];
-    AIDA::IHistogram1D * _h_deltapt[2];
-    AIDA::IHistogram1D * _h_deltaptopt[2];
-    AIDA::IHistogram1D * _h_ptratio[2];
-    AIDA::IProfile1D   * _p_meanptshift;
-    AIDA::IProfile1D   * _p_meanptshift2;
-    AIDA::IProfile1D   * _p_meanptshift2log;
-    AIDA::IProfile1D   * _p_meanptshift2log2[2];
-    AIDA::IProfile1D   * _p_deltaptoverptlog[2];
-    AIDA::IHistogram1D * _h_lns;
-    AIDA::IHistogram2D * _h_lns2;
-    AIDA::IHistogram1D * _h_ln0;
-    AIDA::IHistogram1D * _h_ln1;
-    AIDA::IProfile1D   * _p_ptshift_2d[32];
-    AIDA::IProfile1D   * _p_unmatchedfrac;
-    AIDA::IProfile1D   * _p_swapfrac0;
-    AIDA::IProfile1D   * _p_swapfrac1;
-    AIDA::IProfile1D   * _p_swapfrac2;
-    AIDA::IProfile1D   * _p_swapfrac3;
-    AIDA::IHistogram1D * _h_jetpt00;
-    AIDA::IHistogram1D * _h_jetpt10;
-    AIDA::IHistogram1D * _h_jetpt01;
-    AIDA::IHistogram1D * _h_jetpt11;
-    AIDA::IHistogram1D * _h_jetpt02;
-    AIDA::IHistogram1D * _h_jetpt12;
+    Histo1DPtr _h_aj;
+    Histo1DPtr _h_aj_av1;
+    Histo1DPtr _h_aj_av2;
+    Histo1DPtr _h_aj_av3;
+    Histo1DPtr _h_aj_in;
+    Histo1DPtr _h_virtopt[2];
+    Histo1DPtr _h_deltapt[2];
+    Histo1DPtr _h_deltaptopt[2];
+    Histo1DPtr _h_ptratio[2];
+    Profile1DPtr _p_meanptshift;
+    Profile1DPtr _p_meanptshift2;
+    Profile1DPtr _p_meanptshift2log;
+    Profile1DPtr _p_meanptshift2log2[2];
+    Profile1DPtr _p_deltaptoverptlog[2];
+    Histo1DPtr _h_lns;
+    Histo2DPtr _h_lns2;
+    Histo1DPtr _h_ln0;
+    Histo1DPtr _h_ln1;
+    Profile1DPtr _p_ptshift_2d[32];
+    Profile1DPtr _p_unmatchedfrac;
+    Profile1DPtr _p_swapfrac0;
+    Profile1DPtr _p_swapfrac1;
+    Profile1DPtr _p_swapfrac2;
+    Profile1DPtr _p_swapfrac3;
+    Histo1DPtr _h_jetpt00;
+    Histo1DPtr _h_jetpt10;
+    Histo1DPtr _h_jetpt01;
+    Histo1DPtr _h_jetpt11;
+    Histo1DPtr _h_jetpt02;
+    Histo1DPtr _h_jetpt12;
 
   };
 
 
 
   // The hook for the plugin system
   DECLARE_RIVET_PLUGIN(MC_AJ2);
 
 }
Index: trunk/code/ALICE_2015_I1343112.cc
===================================================================
--- trunk/code/ALICE_2015_I1343112.cc	(revision 451)
+++ trunk/code/ALICE_2015_I1343112.cc	(revision 452)
@@ -1,181 +1,181 @@
-// -*- C++ -*-
-#include "Rivet/Analysis.hh"
-#include "Rivet/RivetAIDA.hh"
-#include "Rivet/Tools/Logging.hh"
-#include "Rivet/Projections/FinalState.hh"
+// -*- C++ -*-
+#include "Rivet/Analysis.hh"
+#include "Rivet/Tools/Logging.hh"
+#include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/FastJets.hh"
-#include "Rivet/Tools/ParticleIdUtils.hh"
-#include <boost/lexical_cast.hpp>
-#include "Rivet/Tools/Logging.hh"
-/// @todo Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...
-
-namespace Rivet {
-
-
-  class ALICE_2015_I1343112 : public Analysis {
-  public:
-
-    /// @name Constructors etc.
-    //@{
-
-    /// Constructor
-    ALICE_2015_I1343112()
-      : Analysis("ALICE_2015_I1343112"),
+#include "Rivet/Tools/ParticleIdUtils.hh"
+#include <boost/lexical_cast.hpp>
+#include "Rivet/Tools/Logging.hh"
+/// @todo Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...
+
+namespace Rivet {
+
+
+  class ALICE_2015_I1343112 : public Analysis {
+  public:
+
+    /// @name Constructors etc.
+    //@{
+
+    /// Constructor
+    ALICE_2015_I1343112()
+      : Analysis("ALICE_2015_I1343112"),
     _hadronetamax(1.), _jetradius(0.2), _jetetamax(0.5), _jetptmin(20.), _jetptmax(120.)
-    {    }
-
-    //@}
-
-
-  public:
-
-    /// @name Analysis methods
-    //@{
-
-    /// Book histograms and initialise projections before the run
-    void init() {
-
-      _centedges += 0.0, 0.1, 0.3;
-	_biases += 0., 3., 5., 7., 10.;
-
-	_ncentbins = 2;
-	_nbiasbins = 5;
-	
- 
+    {    }
+
+    //@}
+
+
+  public:
+
+    /// @name Analysis methods
+    //@{
+
+    /// Book histograms and initialise projections before the run
+    void init() {
+
+      _centedges += 0.0, 0.1, 0.3;
+	_biases += 0., 3., 5., 7., 10.;
+
+	_ncentbins = 2;
+	_nbiasbins = 5;
+	
+ 
       FinalState fs(-_hadronetamax, _hadronetamax, 0.*GeV);
 	addProjection(fs, "FS");
-
+
       FastJets fj(fs, FastJets::ANTIKT, _jetradius);
  	fj.useInvisibles();
       addProjection(fj, "Jets");
-
-	_sumwtcentbins[0] = 0.;
-	_sumwtcentbins[1] = 0.;
-
-      _h_jetpt[0] = bookHistogram1D(1, 1, 1);
-      _h_jetpt[1] = bookHistogram1D(1, 1, 2);
-      _h_jetpt[2] = bookHistogram1D(1, 1, 3);
-      _h_jetpt_pp_incl = bookHistogram1D("jetpt_pp_incl",binEdges(2, 1, 1));
-      _h_jetpt_pp_bias = bookHistogram1D("jetpt_pp_bias",binEdges(2, 1, 1));
-      _h_jetpt_AA_bias[0] = bookHistogram1D("jetpt_AA_bias_0",binEdges(3, 1, 1));
-      _h_jetpt_AA_bias[1] = bookHistogram1D("jetpt_AA_bias_3",binEdges(3, 1, 2));
-      _h_jetpt_AA_bias[2] = bookHistogram1D("jetpt_AA_bias_5",binEdges(3, 1, 1));
-      _h_jetpt_AA_bias[3] = bookHistogram1D("jetpt_AA_bias_7",binEdges(3, 1, 3));
-      _h_jetpt_AA_bias[4] = bookHistogram1D("jetpt_AA_bias_10",binEdges(3, 1, 4));
-      _h_raa[0] = bookHistogram1D(4, 1, 1);
-      _h_raa[1] = bookHistogram1D(4, 1, 2);
-
-    }
-
-
-    /// Perform the per-event analysis
-    void analyze(const Event& event) {
-      const double weight = event.weight();
-	const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
-
-      const Jets jets = applyProjection<FastJets>(event, "Jets").jetsByPt(_jetptmin*GeV, _jetptmax*GeV, -_jetetamax, _jetetamax);
-
-	if (cent < 0. || (cent >= _centedges[0] && cent < _centedges[1])) _sumwtcentbins[0] += weight;
-	if (cent < 0. || (cent >= _centedges[1] && cent < _centedges[2])) _sumwtcentbins[1] += weight;
-
-
+
+	_sumwtcentbins[0] = 0.;
+	_sumwtcentbins[1] = 0.;
+	_sumwtcentbins[2] = 0.;
+
+      _h_jetpt[0] = bookHisto1D(1, 1, 1);
+      _h_jetpt[1] = bookHisto1D(1, 1, 2);
+      _h_jetpt[2] = bookHisto1D(1, 1, 3);
+      _h_jetpt_pp_incl = bookHisto1D("jetpt_pp_incl",refData(2, 1, 1));
+      _h_jetpt_pp_bias = bookHisto1D("jetpt_pp_bias",refData(2, 1, 1));
+      _s_jetpt_pp_ratio = bookScatter2D(2, 1, 1);
+      _h_jetpt_AA_bias[0] = bookHisto1D("jetpt_AA_bias_0",refData(3, 1, 1));
+      _h_jetpt_AA_bias[1] = bookHisto1D("jetpt_AA_bias_3",refData(3, 1, 2));
+      _h_jetpt_AA_bias[2] = bookHisto1D("jetpt_AA_bias_5",refData(3, 1, 1));
+      _h_jetpt_AA_bias[3] = bookHisto1D("jetpt_AA_bias_7",refData(3, 1, 3));
+      _h_jetpt_AA_bias[4] = bookHisto1D("jetpt_AA_bias_10",refData(3, 1, 4));
+      _s_jetpt_AA_ratios[0] = bookScatter2D(3, 1, 1);
+      _s_jetpt_AA_ratios[1] = bookScatter2D(3, 1, 2);
+      _s_jetpt_AA_ratios[2] = bookScatter2D(3, 1, 3);
+      _s_jetpt_AA_ratios[3] = bookScatter2D(3, 1, 4);
+      _h_raa[0] = bookHisto1D(4, 1, 1);
+      _h_raa[1] = bookHisto1D(4, 1, 2);
+
+    }
+
+
+    /// Perform the per-event analysis
+    void analyze(const Event& event) {
+      const double weight = event.weight();
+	const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
+
+      Cut cuts = Cuts::abseta < _jetetamax && Cuts::pT > _jetptmin*GeV && Cuts::pT < _jetptmax*GeV;
+      const Jets jets = applyProjection<FastJets>(event, "Jets").jetsByPt(cuts);
+
+	if (cent < 0.) _sumwtcentbins[0] += weight;
+	if (cent < 0. || (cent >= _centedges[0] && cent < _centedges[1])) _sumwtcentbins[1] += weight;
+	if (cent < 0. || (cent >= _centedges[1] && cent < _centedges[2])) _sumwtcentbins[2] += weight;
+
+
 	for (size_t k = 0; k < _nbiasbins; ++k) {
 	  foreach (Jet jet, jets) {
-      // track bias
+      // track bias
           foreach (Particle part, jet.particles()) {
-	      if (PID::charge(part.pdgId()) != 0. && part.momentum().pT() > _biases[k]*GeV) {
-		  double jetpt(jet.momentum().pT());
-		  if (cent < 0.) {
+	      if (PID::charge(part.pdgId()) != 0. && part.momentum().pT() > _biases[k]*GeV) {
+		  double jetpt(jet.momentum().pT());
+		  if (cent < 0.) {
 	          if (k == 0) _h_jetpt_pp_incl->fill(jetpt,weight);
-	          if (k == 2) {
+	          if (k == 2) {
 		      _h_jetpt[0]->fill(jetpt,weight);
-	            _h_jetpt_pp_bias->fill(jetpt,weight);
-	            _h_raa[0]->fill(jetpt,weight);
-	            _h_raa[1]->fill(jetpt,weight);
+	            _h_jetpt_pp_bias->fill(jetpt,weight);
+	            _h_raa[0]->fill(jetpt,weight);
+	            _h_raa[1]->fill(jetpt,weight);
 	          }
-	        }
-	        if (cent >= _centedges[0] && cent < _centedges[1]) {
+	        }
+	        if (cent >= _centedges[0] && cent < _centedges[1]) {
 	          _h_jetpt_AA_bias[k]->fill(jetpt,weight);
-	          if (k == 2) {
+	          if (k == 2) {
 		      _h_jetpt[1]->fill(jetpt,weight);
-	            _h_raa[0]->fill(jetpt,weight);
+	            _h_raa[0]->fill(jetpt,weight);
 	          }
 	        }
-	        if (cent >= _centedges[0] && cent < _centedges[2]) {
-	          if (k == 2) {
+	        if (cent >= _centedges[0] && cent < _centedges[2]) {
+	          if (k == 2) {
 		      _h_jetpt[2]->fill(jetpt,weight);
-	            _h_raa[1]->fill(jetpt,weight);
+	            _h_raa[1]->fill(jetpt,weight);
 	          }
 	        }
 	        break;
 	      }
 	    }
         }
-      }
-
-    }
-
-
-    /// Normalise histograms etc., after the run
-    void finalize() {
-
-      scale(_h_jetpt[0],1./(_sumwtcentbins[0]>0.?_sumwtcentbins[0]:1.));
-      scale(_h_jetpt[1],1./(_sumwtcentbins[1]>0.?_sumwtcentbins[1]:1.));
-      scale(_h_jetpt[2],1./(_sumwtcentbins[2]>0.?_sumwtcentbins[2]:1.));
-      scale(_h_raa[0],crossSection()/(_sumwtcentbins[0]>0.?_sumwtcentbins[0]:1.));
-      scale(_h_raa[1],crossSection()/(_sumwtcentbins[1]>0.?_sumwtcentbins[1]:1.));
-      scale(_h_jetpt_pp_incl,crossSection()/(_sumwtcentbins[0]>0.?_sumwtcentbins[0]:1.));
-      scale(_h_jetpt_pp_bias,crossSection()/(_sumwtcentbins[0]>0.?_sumwtcentbins[0]:1.));
-	for (size_t k = 0; k < _nbiasbins; ++k) {
-        scale(_h_jetpt_AA_bias[k],crossSection()/(_sumwtcentbins[0]>0.?_sumwtcentbins[0]:1.));
-	}
-
-
-/*      AIDA::IHistogramFactory& hf = histogramFactory();
-      const string dir = histoDir();
-
-      hf.divide(dir + "/d02-x01-y01", *_h_jetpt_pp_bias, *_h_jetpt_pp_incl);
-	hf.destroy(_h_jetpt_pp_bias);
-	hf.destroy(_h_jetpt_pp_incl);
-      hf.divide(dir + "/d03-x01-y01", *_h_jetpt_AA_bias[0], *_h_jetpt_AA_bias[2]);
-      hf.divide(dir + "/d03-x01-y02", *_h_jetpt_AA_bias[1], *_h_jetpt_AA_bias[2]);
-      hf.divide(dir + "/d03-x01-y03", *_h_jetpt_AA_bias[3], *_h_jetpt_AA_bias[2]);
-      hf.divide(dir + "/d03-x01-y04", *_h_jetpt_AA_bias[4], *_h_jetpt_AA_bias[2]);
+      }
+
+    }
+
+
+    /// Normalise histograms etc., after the run
+    void finalize() {
+
+      scale(_h_jetpt[0],1./(_sumwtcentbins[0]>0.?_sumwtcentbins[0]:1.));
+      scale(_h_jetpt[1],1./(_sumwtcentbins[1]>0.?_sumwtcentbins[1]:1.));
+      scale(_h_jetpt[2],1./(_sumwtcentbins[2]>0.?_sumwtcentbins[2]:1.));
+      scale(_h_raa[0],crossSection()/(_sumwtcentbins[0]>0.?_sumwtcentbins[0]:1.));
+      scale(_h_raa[1],crossSection()/(_sumwtcentbins[1]>0.?_sumwtcentbins[1]:1.));
+      scale(_h_jetpt_pp_incl,crossSection()/(_sumwtcentbins[0]>0.?_sumwtcentbins[0]:1.));
+      scale(_h_jetpt_pp_bias,crossSection()/(_sumwtcentbins[0]>0.?_sumwtcentbins[0]:1.));
 	for (size_t k = 0; k < _nbiasbins; ++k) {
-	  hf.destroy(_h_jetpt_AA_bias[k]);
-	}*/
-
-	getLog() << Log::DEBUG << "sumOfWeights()     = " << sumOfWeights() << std::endl;
-    }
-
-    //@}
-
-
-  private:
-
+        scale(_h_jetpt_AA_bias[k],crossSection()/(_sumwtcentbins[0]>0.?_sumwtcentbins[0]:1.));
+	}
+
+	divide(_h_jetpt_pp_bias, _h_jetpt_pp_bias, _s_jetpt_pp_ratio);
+	divide(_h_jetpt_AA_bias[0], _h_jetpt_AA_bias[2], _s_jetpt_AA_ratios[0]);
+	divide(_h_jetpt_AA_bias[1], _h_jetpt_AA_bias[2], _s_jetpt_AA_ratios[1]);
+	divide(_h_jetpt_AA_bias[3], _h_jetpt_AA_bias[2], _s_jetpt_AA_ratios[2]);
+	divide(_h_jetpt_AA_bias[4], _h_jetpt_AA_bias[2], _s_jetpt_AA_ratios[3]);
+
+	getLog() << Log::DEBUG << "sumOfWeights()     = " << sumOfWeights() << std::endl;
+    }
+
+    //@}
+
+
+  private:
+
     double _hadronetamax, _jetradius, _jetetamax, _jetptmin, _jetptmax;
-    double _sumwtcentbins[2];
-    vector<double> _centedges, _biases; 
-    size_t _ncentbins, _nbiasbins;
-
-
-  private:
-
-    /// @name Histograms
-    //@{
-    AIDA::IHistogram1D *_h_jetpt[3];
-    AIDA::IHistogram1D *_h_jetpt_pp_incl;
-    AIDA::IHistogram1D *_h_jetpt_pp_bias;
-    AIDA::IHistogram1D *_h_jetpt_AA_bias[5];
-    AIDA::IHistogram1D *_h_raa[2];
-    //@}
-
-
-  };
-
-
-
-  // The hook for the plugin system
-  DECLARE_RIVET_PLUGIN(ALICE_2015_I1343112);
-
-}
+    double _sumwtcentbins[3];
+    vector<double> _centedges, _biases; 
+    size_t _ncentbins, _nbiasbins;
+
+
+  private:
+
+    /// @name Histograms
+    //@{
+    Histo1DPtr _h_jetpt[3];
+    Histo1DPtr _h_jetpt_pp_incl;
+    Histo1DPtr _h_jetpt_pp_bias;
+    Histo1DPtr _h_jetpt_AA_bias[5];
+    Histo1DPtr _h_raa[2];
+    Scatter2DPtr _s_jetpt_pp_ratio;
+    Scatter2DPtr _s_jetpt_AA_ratios[4];
+    //@}
+
+
+  };
+
+
+
+  // The hook for the plugin system
+  DECLARE_RIVET_PLUGIN(ALICE_2015_I1343112);
+
+}
Index: trunk/code/ALICE_2017_I1512107.cc
===================================================================
--- trunk/code/ALICE_2017_I1512107.cc	(revision 451)
+++ trunk/code/ALICE_2017_I1512107.cc	(revision 452)
@@ -1,459 +1,515 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "fastjet/ClusterSequence.hh"
 #include "fastjet/ClusterSequence.hh"
 
 namespace Rivet {
 
   using namespace fastjet;
 	  
 
 #if MODE==0
   class ALICE_2017_I1512107_4MOMSUB : public Analysis {
 #elif MODE==1
   class ALICE_2017_I1512107_GRIDSUB1 : public Analysis {
 #elif MODE==2
   class ALICE_2017_I1512107_GRIDSUB2 : public Analysis {
 #elif MODE==3
   class ALICE_2017_I1512107_CHARGED : public Analysis {
 #endif	  
 	  
   public:
 
     /// Constructor
 #if MODE==0
     ALICE_2017_I1512107_4MOMSUB() : Analysis("ALICE_2017_I1512107_4MOMSUB")
 #elif MODE==1
     ALICE_2017_I1512107_GRIDSUB1() : Analysis("ALICE_2017_I1512107_GRIDSUB1")
 #elif MODE==2
     ALICE_2017_I1512107_GRIDSUB2() : Analysis("ALICE_2017_I1512107_GRIDSUB2")
 #elif MODE==3
     ALICE_2017_I1512107_CHARGED() : Analysis("ALICE_2017_I1512107_CHARGED")
 #endif    
     {    
 	    _jetR = 0.4; _ptmin = 50.; _etamax = 0.5; _etaloose = 0.9;
-           _nphibins = 120; _netabins = 160;
+	    _nphibins = 120; _netabins = 160;
            //_nphibins = 60; _netabins = 80;
 	    _ptscalefac = 0.75; _massscalefac = 0.67;
     }
 
 
     /// @name Analysis methods
     //@{
 
     /// Book histograms and initialise projections before the run
     void init() {
 	    
 	    _ptedges += 60.0, 80.0, 100.0, 120.0;
 
-	    FinalState fs(-_etaloose, _etaloose, 0.*GeV);
+	    //FinalState fs(-_etaloose, _etaloose, 0.*GeV);
+	    FinalState fs(-3., 3., 0.*GeV);
 	    addProjection(fs,"FS");
 	    ChargedFinalState cfs(-_etaloose, _etaloose, 0.*GeV);
 	    addProjection(cfs,"CFS");
 	    FastJets tfj(cfs, FastJets::ANTIKT, _jetR);
 	    addProjection(tfj, "TrackJets");
 	    FastJets ffj(fs, FastJets::ANTIKT, _jetR);
 	    addProjection(ffj, "FullJets");
 
 
 	    //_h_scalefac = bookHisto1D("scalefac", 50, 0., 1.);
 	    _h_jetmass[0] = bookHisto1D(1, 1, 1);
 	    _h_jetmass[1] = bookHisto1D(2, 1, 1);
 	    _h_jetmass[2] = bookHisto1D(3, 1, 1);
 	    _h_jetpt = bookHisto1D("jetpT", 40, 100., 400.);
 	    _h_jetpt_resc = bookHisto1D("jetpT_resc", 40, 100., 400.);
+	    _h_JetMass = bookHisto1D("JetMass", 50, 0., 100.);
+	    _h_JetpT = bookHisto1D("JetpT", 30, 100, 400);
 	    
 
     }
 
     
     PseudoJets extractThermalMomenta(const Event & event) {
 	 PseudoJets thermom;
         foreach (const HepMC::GenParticle* p, particles(event.genEvent())) {
             FourMomentum mom(p->momentum());
                if (p->status() == 3) {
                    PseudoJet pjet(mom.px(),mom.py(),mom.pz(),mom.E());
                    thermom.push_back(pjet);
                }
 	 }
 	 return thermom;
     }
     
 
     /// 4-momentum subtraction
     FourMomentum SubtractJetMom(Jet jet, PseudoJets * thermom, double fac = 1.) {
         if (thermom->empty()) return jet.momentum();
         FourMomentum sub(0.,0.,0.,0.);
         foreach (Particle part, jet.constituents()) {
             if (part.E() < 1e-5 && part.E() > 1e-7) {
                     FourMomentum test(part.momentum());
                     test *= 10000.;
                     //cout<<"Found dummy :"<<Get4Mom(pj)<<endl;
                     double dRmin(10.);
                     PseudoJet matchthmom;
                     foreach (PseudoJet tm, *thermom) {
                         double dR = deltaR(test.eta(), test.phi(ZERO_2PI), Get4Mom(tm).eta(),Get4Mom(tm).phi(ZERO_2PI));
                         if (dR < dRmin) {
                             dRmin = dR;
                             matchthmom = tm;
                         }
                     }
                     if (dRmin < 1e-5) {
                        //cout<<"Found matching scattering centre :"<<Get4Mom(matchscatcen)<<endl;
                         sub += fac*Get4Mom(matchthmom);
                    }
                     else cout<<"Error: did not find scattering centre matching dummy.\n";
             }
         }
         FourMomentum jetmom(jet.momentum());
         //cout<<"Original momentum: "<<jetmom<<endl;
         jetmom -= sub;
         //cout<<"subtracted momentum: "<<jetmom<<endl;
         //cout<<"Subtracted pt: "<<subpt<<"    "<<pjet.pt()<<endl;
         return jetmom;
     }
 
     
 /// initialise and fill grid for grid subtration version 2   
     vector<vector<FourMomentum> >  fillGrid(const Event & event, std::set<std::pair<size_t,size_t> > & gridevent) {	    
 	    // initialise grid
            vector<vector<FourMomentum> >  grid;
            grid.resize(_nphibins);
            for (size_t i = 0; i < _nphibins; ++i) {
                   grid[i].resize(_netabins);
 		    for (size_t k = 0; k < _nphibins; ++k) {
 			    grid[i][k] = FourMomentum(0., 0., 0., 0.);
 		    }
            }
 
       // fill grid
         foreach (const HepMC::GenParticle* p, particles(event.genEvent())) {
             FourMomentum mom(p->momentum());
             if (fabs(mom.eta()) < 4. && mom.E() > 1e-5) {
                size_t phibin, etabin;
                phibin = int(mom.phi(ZERO_2PI)*_nphibins/(2.*M_PI));
                etabin = int((mom.eta() + 4.)*_netabins/8.);
                if (phibin < 0 || phibin > _nphibins-1) {std::cout<<"Error: "<<mom.phi(ZERO_2PI)<<"  --> "<<phibin<<std::endl; exit(1);}
                if (etabin < 0 || etabin > _netabins-1) {std::cout<<"Error: "<<mom.eta()<<"  --> "<<etabin<<std::endl; exit(1);}
-               if (p->status() == 3) {
+               /*if (p->status() == 3) {
 		     grid[phibin][etabin] -= mom;
                }
                else {
 		     grid[phibin][etabin] += mom;
-               }
-               /*double cellphi((phibin+0.5)*2*M_PI/_nphibins), celleta((etabin+0.5)*8./_netabins-4.);
+               }*/
+               double cellphi((phibin+0.5)*2*M_PI/_nphibins), celleta((etabin+0.5)*8./_netabins-4.);
                double celltheta(2.*atan(exp(-celleta)));
                if (p->status() == 3) {
                    double rho(grid[phibin][etabin].E() - mom.E());
                    grid[phibin][etabin].setE(rho);
                    grid[phibin][etabin].setPx(fabs(rho)*sin(celltheta)*cos(cellphi));
                    grid[phibin][etabin].setPy(fabs(rho)*sin(celltheta)*sin(cellphi));
                    grid[phibin][etabin].setPz(fabs(rho)*cos(celltheta));
                }
                else {
-		     // use this for standard recoil treatment
                    double rho(grid[phibin][etabin].E() + mom.E());
                    grid[phibin][etabin].setE(rho);
                    grid[phibin][etabin].setPx(rho*sin(celltheta)*cos(cellphi));
                    grid[phibin][etabin].setPy(rho*sin(celltheta)*sin(cellphi));
                    grid[phibin][etabin].setPz(rho*cos(celltheta));
-		 }*/
+		 }
                gridevent.insert(std::pair<size_t,size_t>(phibin,etabin));
 	     }
 	 }
 	return grid;
     }  
 
     
     /// determine fraction of pt carried by charged particles in jet
     double getScaleFac(const Jet jet, double ptcut, const FinalState * fs = NULL) {
 	    Particles parts;
 	    if (fs) parts = fs->particles();
 	    else parts = jet.constituents();
 	    double scalefac;
 	    double ntracks(0.), nparts(0.);
            FourMomentum chmom(0.,0.,0.,0.), allmom(0.,0.,0.,0.);
 	      foreach (Particle part, parts) {
 		      if (deltaR(part,jet) < _jetR && part.momentum().E() > 1e-5) {
 			      nparts += 1.;
 			      allmom += part.momentum();
                                   if (PID::charge(part.pdgId()) != 0 && part.pT() > ptcut) {
 			                    ntracks += 1.;
 			                    chmom += part.momentum();				      
 			             }
 		      }
 	      }
 	      scalefac = (nparts>0.?ntracks/nparts:1);
 	      //scalefac = (allmom.pT()>0.?chmom.pT()/allmom.pT():1.);
 	    return scalefac;
     }
 
 
 
     /// initialise and fill grid for grid subtration version 1
-    PseudoJets  fillJetGrid(Jet jet,  PseudoJets * thermom) {
-	    // initialise grid
-           vector<vector<FourMomentum> >  grid, thgrid;
-           grid.resize(_nphibins);
-           thgrid.resize(_nphibins);
-           for (size_t i = 0; i < _nphibins; ++i) {
-                  grid[i].resize(_netabins);
-                  thgrid[i].resize(_netabins);
-		    for (size_t k = 0; k < _nphibins; ++k) {
-			    grid[i][k] = FourMomentum(0., 0., 0., 0.);
-			    thgrid[i][k] = FourMomentum(0., 0., 0., 0.);
-		    }
-           }
-	    std::set<std::pair<size_t,size_t> > gridevent;
-
+    void fillJetGrid(Jet jet,  PseudoJets * thermom, vector<vector<FourMomentum> > & grid, vector<vector<FourMomentum> > & thgrid, std::set<std::pair<size_t,size_t> > & gridevent) {
       // fill grid
         foreach (Particle part, jet.constituents()) {
             FourMomentum mom(part.momentum());
                size_t phibin, etabin;
                if (mom.E() < 1e-5 && mom.E() > 1e-7) {
-                    FourMomentum test(mom);
+                    /*FourMomentum test(mom);
                     test *= 10000.;
                     //cout<<"Found dummy :"<<Get4Mom(mom)<<endl;
                     double dRmin(10.);
                     PseudoJet matchthmom;
                     foreach (PseudoJet tm, *thermom) {
                         double dR = deltaR(test.eta(), test.phi(ZERO_2PI), Get4Mom(tm).eta(),Get4Mom(tm).phi(ZERO_2PI));
                         if (dR < dRmin) {
                             dRmin = dR;
                             matchthmom = tm;
                         }
                     }
                     if (dRmin < 1e-5) {
 			       mom = Get4Mom(matchthmom);
 				phibin = int(mom.phi(ZERO_2PI)*_nphibins/(2.*M_PI));
 				etabin = int((mom.eta() + 4.)*_netabins/8.);
 				if (phibin < 0 || phibin > _nphibins-1) {std::cout<<"Error: "<<mom.phi(ZERO_2PI)<<"  --> "<<phibin<<std::endl; exit(1);}
 				if (etabin < 0 || etabin > _netabins-1) {std::cout<<"Error: "<<mom.eta()<<"  --> "<<etabin<<std::endl; exit(1);}
-				thgrid[phibin][etabin] += mom;
+				thgrid[phibin][etabin] += mom;*/
 				/*double cellphi((phibin+0.5)*2*M_PI/_nphibins), celleta((etabin+0.5)*8./_netabins-4.);
 				double celltheta(2.*atan(exp(-celleta)));
 				double rho(thgrid[phibin][etabin].E() + mom.E());
 				thgrid[phibin][etabin].setE(rho);
 				thgrid[phibin][etabin].setPx(rho*sin(celltheta)*cos(cellphi));
 				thgrid[phibin][etabin].setPy(rho*sin(celltheta)*sin(cellphi));
 				thgrid[phibin][etabin].setPz(rho*cos(celltheta));*/
-				gridevent.insert(std::pair<size_t,size_t>(phibin,etabin));
+			/*	gridevent.insert(std::pair<size_t,size_t>(phibin,etabin));
                      }
-                     else cout<<"Error: did not find scattering centre matching dummy.\n";
+                     else cout<<"Error: did not find scattering centre matching dummy.\n";*/
                }
                else {
 			phibin = int(mom.phi(ZERO_2PI)*_nphibins/(2.*M_PI));
 			etabin = int((mom.eta() + 4.)*_netabins/8.);
 			if (phibin < 0 || phibin > _nphibins-1) {std::cout<<"Error: "<<mom.phi(ZERO_2PI)<<"  --> "<<phibin<<std::endl; exit(1);}
 			if (etabin < 0 || etabin > _netabins-1) {std::cout<<"Error: "<<mom.eta()<<"  --> "<<etabin<<std::endl; exit(1);}
-			grid[phibin][etabin] += mom;
-			/*double cellphi((phibin+0.5)*2*M_PI/_nphibins), celleta((etabin+0.5)*8./_netabins-4.);
+			//grid[phibin][etabin] += mom;
+			double cellphi((phibin+0.5)*2*M_PI/_nphibins), celleta((etabin+0.5)*8./_netabins-4.);
 			double celltheta(2.*atan(exp(-celleta)));
                      double rho(grid[phibin][etabin].E() + mom.E());
                      grid[phibin][etabin].setE(rho);
                      grid[phibin][etabin].setPx(rho*sin(celltheta)*cos(cellphi));
                      grid[phibin][etabin].setPy(rho*sin(celltheta)*sin(cellphi));
-                     grid[phibin][etabin].setPz(rho*cos(celltheta));*/
+                     grid[phibin][etabin].setPz(rho*cos(celltheta));
 			gridevent.insert(std::pair<size_t,size_t>(phibin,etabin));
 		 }
 	 }
-	 double negenergy(0.);
-	 PseudoJets pevent;
-        for (set<pair<size_t,size_t> >::iterator it=gridevent.begin(); it!=gridevent.end(); ++it) {
-            size_t i,k;
-            i = it->first;
-            k = it->second;
-	     FourMomentum diff(grid[i][k] - thgrid[i][k]);
-            if (grid[i][k].pT() > thgrid[i][k].pT() && diff.E() > 0.) {
-                PseudoJet pjet(diff.px(),diff.py(),diff.pz(),diff.E());
-                pevent.push_back(pjet);
-            }
-            else negenergy += diff.E();
-        }
-      return pevent;
+	 
+	 foreach (PseudoJet pjet, *thermom) {
+		 FourMomentum mom = Get4Mom(pjet);
+		 double dR(deltaR(mom, jet));
+		 if (dR < _jetR) {
+			size_t phibin, etabin;
+			phibin = int(mom.phi(ZERO_2PI)*_nphibins/(2.*M_PI));
+			etabin = int((mom.eta() + 4.)*_netabins/8.);
+			if (phibin < 0 || phibin > _nphibins-1) {std::cout<<"Error: "<<mom.phi(ZERO_2PI)<<"  --> "<<phibin<<std::endl; exit(1);}
+			if (etabin < 0 || etabin > _netabins-1) {std::cout<<"Error: "<<mom.eta()<<"  --> "<<etabin<<std::endl; exit(1);}
+			//thgrid[phibin][etabin] += mom;
+			double cellphi((phibin+0.5)*2*M_PI/_nphibins), celleta((etabin+0.5)*8./_netabins-4.);
+			double celltheta(2.*atan(exp(-celleta)));
+                     double rho(thgrid[phibin][etabin].E() + mom.E());
+                     thgrid[phibin][etabin].setE(rho);
+                     thgrid[phibin][etabin].setPx(rho*sin(celltheta)*cos(cellphi));
+                     thgrid[phibin][etabin].setPy(rho*sin(celltheta)*sin(cellphi));
+                     thgrid[phibin][etabin].setPz(rho*cos(celltheta));
+			gridevent.insert(std::pair<size_t,size_t>(phibin,etabin));
+		 }
+	 }
+	 
+	 return;
+	 
     }  
 
 
 
 /// 4-momentum adapter
     FourMomentum Get4Mom(PseudoJet pjet){
         FourMomentum mom(pjet.E(), pjet.px(), pjet.py(), pjet.pz());
         return mom;
     }
     
     
     
 
     /// Perform the per-event analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
       const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
 
       if (cent > 0.1) vetoEvent;
       
 #if MODE==0
-      Cut cuts = Cuts::abseta < _etaloose && Cuts::pT > _ptmin*GeV;
+//       cout<<"Karo:   event number "<<event.genEvent()->event_number()<<endl;
+      //Cut cuts = Cuts::abseta < _etaloose && Cuts::pT > _ptmin*GeV;
+      Cut cuts = Cuts::abseta < 2.0 && Cuts::pT > _ptmin*GeV;
       const Jets jets = applyProjection<FastJets>(event, "FullJets").jetsByPt(cuts);
 
       PseudoJets thermom = extractThermalMomenta(event);
       foreach (Jet jet, jets) {
 	      //double scalefac;
 	      //scalefac = getScaleFac(jet, 0.);
 	      //_h_scalefac->fill(scalefac, weight);
 	      FourMomentum jetsub = SubtractJetMom(jet, &thermom, 1.);
+// 	      if (jet.momentum().pT() > 100.) {
+// 		      cout<<"Karo:   "<<jet.momentum().pT()<<"  ->  "<<jetsub.pT()<<endl;
+// 	      }
 	      if (abs(jetsub.eta()) < _etamax) {
 			double mass2(jetsub.mass2());
 			double mass(mass2>0.?sqrt(mass2):-1.);
 			//mass *= scalefac;
 			mass *= _massscalefac;
 			//double jetpt(scalefac*jetsub.pT());
 			double jetpt(jetsub.pT());
 			_h_jetpt->fill(jetpt,weight);
 			jetpt *= _ptscalefac;
 			_h_jetpt_resc->fill(jetpt,weight);			
 			for (size_t i=0; i<3; ++i) {
 				if (jetpt > _ptedges[i] && jetpt <= _ptedges[i+1]) _h_jetmass[i]->fill(mass,weight);
 			}
 	      }
+	      if (jetsub.pT() > 100.*GeV) {
+// 		      cout<<"Karo:   "<<jetsub.pT()<<endl;
+			double mass2(jetsub.mass2());
+			double mass(mass2>0.?sqrt(mass2):-1.);
+			_h_JetMass->fill(mass,weight);
+			_h_JetpT->fill(jetsub.pT(),weight);
+	      }
       }
 #elif MODE==1
-      Cut cuts = Cuts::abseta < _etaloose && Cuts::pT > _ptmin*GeV;
+      //Cut cuts = Cuts::abseta < _etaloose && Cuts::pT > _ptmin*GeV;
+      Cut cuts = Cuts::abseta < 2.0 && Cuts::pT > _ptmin*GeV;
       const Jets jets = applyProjection<FastJets>(event, "FullJets").jetsByPt(cuts);
 
       PseudoJets thermom = extractThermalMomenta(event);
+	    // initialise grid
+           vector<vector<FourMomentum> >  grid, thgrid;
+           grid.resize(_nphibins);
+           thgrid.resize(_nphibins);
+           for (size_t i = 0; i < _nphibins; ++i) {
+                  grid[i].resize(_netabins);
+                  thgrid[i].resize(_netabins);
+		    for (size_t k = 0; k < _nphibins; ++k) {
+			    grid[i][k] = FourMomentum(0., 0., 0., 0.);
+			    thgrid[i][k] = FourMomentum(0., 0., 0., 0.);
+		    }
+           }
+	    std::set<std::pair<size_t,size_t> > gridevent;
+
       foreach (Jet jet, jets) {
-		PseudoJets constgrid = fillJetGrid(jet, &thermom);
-		JetDefinition jet_def(antikt_algorithm, 1.);
-		ClusterSequence cs(constgrid, jet_def);
-		PseudoJet pjet = sorted_by_pt(cs.inclusive_jets(0.))[0];
+		fillJetGrid(jet, &thermom, grid, thgrid, gridevent);
+      }
+	 double negenergy(0.);
+	 PseudoJets pevent;
+        for (set<pair<size_t,size_t> >::iterator it=gridevent.begin(); it!=gridevent.end(); ++it) {
+            size_t i,k;
+            i = it->first;
+            k = it->second;
+	     FourMomentum diff(grid[i][k] - thgrid[i][k]);
+            if (grid[i][k].pT() > thgrid[i][k].pT() && diff.E() > 0.) {
+                PseudoJet pjet(diff.px(),diff.py(),diff.pz(),diff.E());
+                pevent.push_back(pjet);
+            }
+            else negenergy += diff.E();
+        }
+	JetDefinition jet_def(antikt_algorithm, _jetR);
+	ClusterSequence cs(pevent, jet_def);
+	PseudoJets pjets = sorted_by_pt(cs.inclusive_jets(_ptmin));
+	//cout<<"size comparison: "<<jets.size()<<"   vs.   "<<pjets.size()<<endl;
+      foreach (PseudoJet pjet, pjets) {
 	       FourMomentum jetsub = Get4Mom(pjet);
 	       if (abs(jetsub.eta()) < _etamax) {
 			double mass2(jetsub.mass2());
 			double mass(mass2>0.?sqrt(mass2):-1.);
 			mass *= _massscalefac;
 			double jetpt(jetsub.pT());
 			_h_jetpt->fill(jetpt,weight);
 			jetpt *= _ptscalefac;
 			_h_jetpt_resc->fill(jetpt,weight);			
 			for (size_t i=0; i<3; ++i) {
 				if (jetpt > _ptedges[i] && jetpt <= _ptedges[i+1]){
 					_h_jetmass[i]->fill(mass,weight);
 				}
 			}
 	      }
+	      if (jetsub.pT() > 100.*GeV) {
+			double mass2(jetsub.mass2());
+			double mass(mass2>0.?sqrt(mass2):-1.);
+			_h_JetMass->fill(mass,weight);
+			_h_JetpT->fill(jetsub.pT(),weight);
+	      }
       }
 #elif MODE==2
       const FinalState parts = applyProjection<FinalState>(event, "FS");
 
       PseudoJets pevent, pjets;
       std::set<std::pair<size_t,size_t> > gridevent;
       vector<vector<FourMomentum> >  grid = fillGrid(event, gridevent);
       for (set<pair<size_t,size_t> >::iterator it=gridevent.begin(); it!=gridevent.end(); ++it) {
           size_t i,k;
           i = it->first;
           k = it->second;
           if (grid[i][k].E() > 0. ) {
               PseudoJet part(grid[i][k].px(),grid[i][k].py(),grid[i][k].pz(),grid[i][k].E());
               pevent.push_back(part);
           }
       }
       JetDefinition jet_def(antikt_algorithm, _jetR);
       ClusterSequence cs(pevent, jet_def);
       pjets = sorted_by_pt(cs.inclusive_jets(_ptmin));
       foreach (PseudoJet pjet, pjets) {
 	      FourMomentum jetsub = Get4Mom(pjet);
 	      if (abs(jetsub.eta()) < _etamax) {
 	             //double scalefac;
 		      //scalefac = getScaleFac(Jet(pjet),0.,&parts);
 		      //_h_scalefac->fill(scalefac,weight);
 			double mass2(jetsub.mass2());
 			double mass(mass2>0.?sqrt(mass2):-1.);
 			//mass *= scalefac;
 			mass *= _massscalefac;
 			//double jetpt(scalefac*jetsub.pT());
 			double jetpt(jetsub.pT());
 			_h_jetpt->fill(jetpt,weight);
 			jetpt *= _ptscalefac;
 			_h_jetpt_resc->fill(jetpt,weight);			
 			for (size_t i=0; i<3; ++i) {
 				if (jetpt > _ptedges[i] && jetpt <= _ptedges[i+1]){
 					_h_jetmass[i]->fill(mass,weight);
 				}
 			}
 	      }
+	      if (jetsub.pT() > 100.*GeV) {
+			double mass2(jetsub.mass2());
+			double mass(mass2>0.?sqrt(mass2):-1.);
+			_h_JetMass->fill(mass,weight);
+			_h_JetpT->fill(jetsub.pT(),weight);
+	      }
       }
 #elif MODE==3
       const FinalState parts = applyProjection<FinalState>(event, "FS");
       Cut cuts = Cuts::abseta < _etaloose && Cuts::pT > _ptmin*GeV;
       const Jets jets = applyProjection<FastJets>(event, "TrackJets").jetsByPt(cuts);
 
       foreach (Jet jet, jets) {
 	      //double scalefac;
 	      //scalefac = getScaleFac(jet, 0., &parts);
 	      //_h_scalefac->fill(scalefac, weight);
 	      PseudoJets thermom = extractThermalMomenta(event);
 	      //FourMomentum jetsub = SubtractJetMom(jet, &thermom, scalefac);
 	      FourMomentum jetsub = SubtractJetMom(jet, &thermom, _ptscalefac);
 	      if (abs(jetsub.eta()) < _etamax) {
 			double mass2(jetsub.mass2());
 			double mass(mass2>0.?sqrt(mass2):-1.);
 			double jetpt(jetsub.pT());
 			_h_jetpt_resc->fill(jetpt,weight);			
 			for (size_t i=0; i<3; ++i) {
 				if (jetpt > _ptedges[i] && jetpt <= _ptedges[i+1]) _h_jetmass[i]->fill(mass,weight);
 			}
 	      }
       }
 #endif
 
 
     }
 
 
     /// Normalise histograms etc., after the run
     void finalize() {
 
 	    //normalize(_h_scalefac);
 	    for (size_t i=0; i<3; ++i) {
 		normalize(_h_jetmass[i]);
 	    }
 	    scale(_h_jetpt, crossSection()/sumOfWeights());
 	    scale(_h_jetpt_resc, crossSection()/sumOfWeights());
+	    normalize(_h_JetMass);
+	    scale(_h_JetpT, crossSection()/picobarn/sumOfWeights());
 
     }
 
 
   private:
 
     double _jetR, _ptmin, _etamax, _etaloose;
     double _massscalefac, _ptscalefac;
     size_t _netabins, _nphibins;
     vector<double> _ptedges;
 
 
     //Histo1DPtr _h_scalefac;
     Histo1DPtr _h_jetmass[3];
     Histo1DPtr _h_jetpt, _h_jetpt_resc;
+    Histo1DPtr _h_JetMass, _h_JetpT;
     
 
   };
 
 
 
   // The hook for the plugin system
 #if MODE==0
   DECLARE_RIVET_PLUGIN(ALICE_2017_I1512107_4MOMSUB);
 #elif MODE==1
   DECLARE_RIVET_PLUGIN(ALICE_2017_I1512107_GRIDSUB1);
 #elif MODE==2
   DECLARE_RIVET_PLUGIN(ALICE_2017_I1512107_GRIDSUB2);
 #elif MODE==3
   DECLARE_RIVET_PLUGIN(ALICE_2017_I1512107_CHARGED);
 #endif
   
 
 
 }
Index: trunk/code/ATLAS_2013_I1228693.cc
===================================================================
--- trunk/code/ATLAS_2013_I1228693.cc	(revision 451)
+++ trunk/code/ATLAS_2013_I1228693.cc	(revision 452)
@@ -1,121 +1,119 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
-#include "Rivet/RivetAIDA.hh"
 #include "Rivet/Tools/Logging.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/FastJets.hh"
 /// @todo Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...
 
 namespace Rivet {
 
 
   class ATLAS_2013_I1228693 : public Analysis {
   public:
 
     /// @name Constructors etc.
     //@{
 
     /// Constructor
     ATLAS_2013_I1228693()
       : Analysis("ATLAS_2013_I1228693")
     {
-      setBeams(PROTON, PROTON);
       setNeedsCrossSection(true);
     }
     //@}
 
 
   public:
 
     /// @name Analysis methods
     //@{
 
     /// Book histograms and initialise projections before the run
     void init() {
 
 	_yedges += 0.0, 0.3, 0.8, 1.2, 2.1, 2.8, 3.6, 4.4;
 	_deltay += 0.6, 1.0, 0.8, 1.8, 1.4, 1.6, 1.6;
 	_nybins = 7;
 
 	_jetparams += 0.4, 0.6;
 	_njetbins = 2;
 
 
       FinalState fs(-6.0, 6.0, 0.*GeV);
 	addProjection(fs, "FS");
 	for (size_t j = 0; j < _njetbins; ++j) {
         stringstream ss; ss << "Jets" << j;
         const string pname = ss.str();
         _names[j] = pname;
 	  FastJets fj(fs, FastJets::ANTIKT, _jetparams[j]);
 	  fj.useInvisibles();
         addProjection(fj, pname);
 	}
 
       for (size_t i = 0; i < _njetbins; ++i) {
         for (size_t j = 0; j < _nybins; ++j) {
-          _h_jetspec[i][j] = bookHistogram1D(i*7+j+1, 1, 1);
+          _h_jetspec[i][j] = bookHisto1D(i*7+j+1, 1, 1);
         }
       }
 
     }
 
 
     /// Perform the per-event analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
 	for (size_t i = 0; i < _njetbins; ++i) {
         const Jets alljets = applyProjection<FastJets>(event, _names[i]).jetsByEt();
         for (size_t j = 0; j < _nybins; ++j) {
 	    foreach (Jet jet, alljets) {
 		double pt(jet.momentum().pT());
 		double y(abs(jet.momentum().rapidity()));
 		if (y > _yedges[j] && y < _yedges[j+1]) {
 		  _h_jetspec[i][j]->fill(pt,weight);
 		}
 	    }
 	  }
       }
 
     }
 
 
     /// Normalise histograms etc., after the run
     void finalize() {
 
 	for (size_t i = 0; i < _njetbins; ++i) {
         for (size_t j = 0; j < _nybins; ++j) {
           scale(_h_jetspec[i][j],crossSection()/(nanobarn*_deltay[j]*sumOfWeights()));
         }
 	}
 
     }
 
     //@}
 
 
   private:
 
     vector<double> _yedges, _jetparams;
     vector<double> _deltay;
 
     size_t _nybins, _njetbins;
 
     string _names[2];
 
   private:
 
     /// @name Histograms
     //@{
-    AIDA::IHistogram1D *_h_jetspec[2][7];
+    Histo1DPtr _h_jetspec[2][7];
     //@}
 
 
   };
 
 
 
   // The hook for the plugin system
   DECLARE_RIVET_PLUGIN(ATLAS_2013_I1228693);
 
 }
Index: trunk/code/ALICE_GIRTH.plot
===================================================================
--- trunk/code/ALICE_GIRTH.plot	(revision 0)
+++ trunk/code/ALICE_GIRTH.plot	(revision 452)
@@ -0,0 +1,7 @@
+# BEGIN PLOT /ALICE_GIRTH/d01-x01-y01
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /ALICE_GIRTH/pp_g_*
+LogY=0
+# END PLOT
Index: trunk/code/ALICE_JETRAA.cc
===================================================================
--- trunk/code/ALICE_JETRAA.cc	(revision 451)
+++ trunk/code/ALICE_JETRAA.cc	(revision 452)
@@ -1,118 +1,117 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 #include "Rivet/Tools/Logging.hh"
-#include "Rivet/RivetAIDA.hh"
 #include "Rivet/Tools/ParticleIdUtils.hh"
 #include <boost/lexical_cast.hpp>
 namespace Rivet {
 
 
   /// @brief jet pt spectrum
   class ALICE_JETRAA : public Analysis {
   public:
 
     /// Constructor
     ALICE_JETRAA()
       : Analysis("ALICE_JETRAA"),
         _sumWeightSelected(0.0)
     {
-      setBeams(PROTON, PROTON);
       setNeedsCrossSection(true);
     }
 
     /// Book projections and histograms
     void init() {
       ChargedFinalState cfs(-0.9, 0.9, 0.150*GeV);
 
 	addProjection(cfs, "CFS");
       addProjection(FastJets(cfs, FastJets::ANTIKT, 0.2), "Jets1");
       addProjection(FastJets(cfs, FastJets::ANTIKT, 0.3), "Jets2");
 
-      pt_02 = bookHistogram1D("jetspec1",binEdges(1, 1, 1));
-      pt_03 = bookHistogram1D("jetspec2",binEdges(2, 1, 1));
-      _h_ratio_02 = bookHistogram1D(1, 1, 1);
-      _h_ratio_03 = bookHistogram1D(2, 1, 1);
-      n_02  = bookHistogram1D("njet1", 20, 0.0, 20.0,
+      pt_02 = bookHisto1D("jetspec1",refData(1, 1, 1));
+      pt_03 = bookHisto1D("jetspec2",refData(2, 1, 1));
+      _h_ratio_02 = bookHisto1D(1, 1, 1);
+      _h_ratio_03 = bookHisto1D(2, 1, 1);
+      n_02  = bookHisto1D("njet1", 20, 0.0, 20.0,
                                    "number of jet2 R=0.2",
                                    "$N_\\mathrm{jet}$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}N_\\mathrm{jet}$");
-      n_03  = bookHistogram1D("njet2", 20, 0.0, 20.0,
+      n_03  = bookHisto1D("njet2", 20, 0.0, 20.0,
                                    "number of jet2 R=0.3",
                                    "$N_\\mathrm{jet}$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}N_\\mathrm{jet}$");
 
     }
 
 
     /// Do the analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
- 	const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
+ 	const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
       const FastJets& fastjets1 = applyProjection<FastJets>(event, "Jets1");
       const Jets alljets1 = fastjets1.jetsByPt();
-      const Jets jets1    = fastjets1.jetsByEt(30., 300., -0.5, 0.5);
+      Cut cuts = Cuts::abseta < 0.5 && Cuts::pT > 30*GeV && Cuts::pT < 300.*GeV;
+      const Jets jets1    = fastjets1.jetsByEt(cuts);
 
       const FastJets& fastjets2 = applyProjection<FastJets>(event, "Jets2");
       const Jets alljets2 = fastjets2.jetsByPt();
-      const Jets jets2    = fastjets2.jetsByEt(30., 300., -0.5, 0.5);
+      const Jets jets2    = fastjets2.jetsByEt(cuts);
 
 	if (cent<0. || (cent>=0.0 && cent<0.1)) {
 	  _sumWeightSelected += weight;
 	  n_02->fill(jets1.size(),weight);
         if (jets1.size() > 0) {
 	    foreach (Jet jet, jets1){
 	      pt_02->fill(jet.momentum().pT(),weight);
 	      _h_ratio_02->fill(jet.momentum().pT(),weight);
 	    }
 	  }
 	  
 	  n_03->fill(jets2.size(),weight);
         if (jets2.size() > 0) {
 	    foreach (Jet jet, jets2){
 	      pt_03->fill(jet.momentum().pT(),weight);
 	      _h_ratio_03->fill(jet.momentum().pT(),weight);
 	    }	  
 	  }
 	}
 	
     }
 	
 	
     /// Finalize
     void finalize() {
 	if (_sumWeightSelected == 0.) _sumWeightSelected = 1.;
 	
       scale(pt_02,crossSection()/_sumWeightSelected);
       scale(pt_03,crossSection()/_sumWeightSelected);
       scale(_h_ratio_02,crossSection()/_sumWeightSelected);
       scale(_h_ratio_03,crossSection()/_sumWeightSelected);
       scale(n_02,1./_sumWeightSelected);
       scale(n_03,1./_sumWeightSelected);
       getLog() << Log::DEBUG << "sumOfWeights()     = " << sumOfWeights() << std::endl;
 
 
     }
     
     
   private:
 
     double _sumWeightSelected;
 
-    AIDA::IHistogram1D * pt_02;
-    AIDA::IHistogram1D * pt_03;
-    AIDA::IHistogram1D * _h_ratio_02;
-    AIDA::IHistogram1D * _h_ratio_03;
-    AIDA::IHistogram1D * n_02;
-    AIDA::IHistogram1D * n_03;
+    Histo1DPtr  pt_02;
+    Histo1DPtr  pt_03;
+    Histo1DPtr  _h_ratio_02;
+    Histo1DPtr  _h_ratio_03;
+    Histo1DPtr  n_02;
+    Histo1DPtr  n_03;
 
   };
 
 
 
   // This global object acts as a hook for the plugin system
   AnalysisBuilder<ALICE_JETRAA> plugin_ALICE_JETRAA;
 
 }
Index: trunk/code/ALICE_GIRTH_GRIDSUB2.plot
===================================================================
--- trunk/code/ALICE_GIRTH_GRIDSUB2.plot	(revision 0)
+++ trunk/code/ALICE_GIRTH_GRIDSUB2.plot	(revision 452)
@@ -0,0 +1,7 @@
+# BEGIN PLOT /ALICE_GIRTH_GRIDSUB2/d01-x01-y01
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /ALICE_GIRTH_GRIDSUB2/pp_g_*
+LogY=0
+# END PLOT
Index: trunk/code/ALICE_2014_I1263194.cc
===================================================================
--- trunk/code/ALICE_2014_I1263194.cc	(revision 451)
+++ trunk/code/ALICE_2014_I1263194.cc	(revision 452)
@@ -1,156 +1,156 @@
-// -*- C++ -*-
-#include "Rivet/Analysis.hh"
-#include "Rivet/RivetAIDA.hh"
-#include "Rivet/Tools/Logging.hh"
-#include "Rivet/Projections/ChargedFinalState.hh"
+// -*- C++ -*-
+#include "Rivet/Analysis.hh"
+#include "Rivet/Tools/Logging.hh"
+#include "Rivet/Projections/ChargedFinalState.hh"
 #include "Rivet/Projections/FastJets.hh"
-/// @todo Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...
-
-namespace Rivet {
-
-
-  class ALICE_2014_I1263194 : public Analysis {
-  public:
-
-    /// @name Constructors etc.
-    //@{
-
-    /// Constructor
-    ALICE_2014_I1263194()
-      : Analysis("ALICE_2014_I1263194")
-    {    }
-
-    //@}
-
-
-  public:
-
-    /// @name Analysis methods
-    //@{
-
-    /// Book histograms and initialise projections before the run
-    void init() {
-
-      _centedges += 0.0, 0.1, 0.3, 0.5, 0.8;
-	_jetparams += 0.2, 0.3;
-	_biases += 0., 5., 10.;
-
-	_ncentbins = 4;
-	_njetbins = 2;
-	_nbiasbins = 3;
-	
+/// @todo Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...
+
+namespace Rivet {
+
+
+  class ALICE_2014_I1263194 : public Analysis {
+  public:
+
+    /// @name Constructors etc.
+    //@{
+
+    /// Constructor
+    ALICE_2014_I1263194()
+      : Analysis("ALICE_2014_I1263194")
+    {    }
+
+    //@}
+
+
+  public:
+
+    /// @name Analysis methods
+    //@{
+
+    /// Book histograms and initialise projections before the run
+    void init() {
+
+      _centedges += 0.0, 0.1, 0.3, 0.5, 0.8;
+	_jetparams += 0.2, 0.3;
+	_biases += 0., 5., 10.;
+
+	_ncentbins = 4;
+	_njetbins = 2;
+	_nbiasbins = 3;
+	
       ChargedFinalState cfs(-0.9, 0.9, 0.15*GeV);
 	addProjection(cfs, "CFS");
-	for (size_t j = 0; j < _njetbins; ++j) {
-        stringstream ss; ss << "Jets" << j;
-        const string pname = ss.str();
-        _names[j] = pname;
-
-	  FastJets fj(cfs, FastJets::ANTIKT, _jetparams[j]);
-        addProjection(fj, pname);
-	}
-
-      for (size_t i = 0; i < _ncentbins; ++i) {
-	  _sumwtcentbins[i] = 0.;
-	  if (i < _ncentbins-1) _rsumwtcentbins[i] = 0.;
-        for (size_t j = 0; j < _njetbins; ++j) {
-	    for (size_t k = 0; k < _nbiasbins; ++k) {
-            _h_jetspec[i][j][k] = bookHistogram1D(2+4*k+i, 1, j+1);
-	      if (i < _ncentbins-1) {
-		  _h_rcp[i][j][k] = bookHistogram1D(18+3*k+i, 1, j+1);
-            }
-          }
-        }
-      }
-
-    }
-
-
-    /// Perform the per-event analysis
-    void analyze(const Event& event) {
-      const double weight = event.weight();
-	const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
-
-	for (size_t i = 0; i < _ncentbins; ++i) {
-	  if (cent < 0. || (cent >= _centedges[i] && cent < _centedges[i+1])) {
-	    _sumwtcentbins[i] += weight;
-	    if (i < _ncentbins-1) _rsumwtcentbins[i] += weight;
-	    else {
-	      for (size_t l = 0; l < _ncentbins-1; ++l) {
-	        _rsumwtcentbins[l] += weight;
-	      }
-	    }
-	  }
-	}
-
-	for (size_t j = 0; j < _njetbins; ++j) {
-        const Jets jets = applyProjection<FastJets>(event, _names[j]).jetsByPt(10.*GeV, 120.*GeV, -0.5, 0.5);
-	
-	  for (size_t i = 0; i < _ncentbins; ++i) {
-	    if (cent < 0. || (cent >= _centedges[i] && cent < _centedges[i+1])) {
-// track bias
+	for (size_t j = 0; j < _njetbins; ++j) {
+        stringstream ss; ss << "Jets" << j;
+        const string pname = ss.str();
+        _names[j] = pname;
+
+	  FastJets fj(cfs, FastJets::ANTIKT, _jetparams[j]);
+        addProjection(fj, pname);
+	}
+
+      for (size_t i = 0; i < _ncentbins; ++i) {
+	  _sumwtcentbins[i] = 0.;
+	  if (i < _ncentbins-1) _rsumwtcentbins[i] = 0.;
+        for (size_t j = 0; j < _njetbins; ++j) {
+	    for (size_t k = 0; k < _nbiasbins; ++k) {
+            _h_jetspec[i][j][k] = bookHisto1D(2+4*k+i, 1, j+1);
+	      if (i < _ncentbins-1) {
+		  _h_rcp[i][j][k] = bookHisto1D(18+3*k+i, 1, j+1);
+            }
+          }
+        }
+      }
+
+    }
+
+
+    /// Perform the per-event analysis
+    void analyze(const Event& event) {
+      const double weight = event.weight();
+	const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
+
+	for (size_t i = 0; i < _ncentbins; ++i) {
+	  if (cent < 0. || (cent >= _centedges[i] && cent < _centedges[i+1])) {
+	    _sumwtcentbins[i] += weight;
+	    if (i < _ncentbins-1) _rsumwtcentbins[i] += weight;
+	    else {
+	      for (size_t l = 0; l < _ncentbins-1; ++l) {
+	        _rsumwtcentbins[l] += weight;
+	      }
+	    }
+	  }
+	}
+
+	for (size_t j = 0; j < _njetbins; ++j) {
+      Cut cuts = Cuts::abseta < 0.5 && Cuts::pT > 10*GeV && Cuts::pT < 120.*GeV;
+        const Jets jets = applyProjection<FastJets>(event, _names[j]).jetsByPt(cuts);
+	
+	  for (size_t i = 0; i < _ncentbins; ++i) {
+	    if (cent < 0. || (cent >= _centedges[i] && cent < _centedges[i+1])) {
+// track bias
 		for (size_t k = 0; k < _nbiasbins; ++k) {
 		  foreach (Jet jet, jets) {
         	    vector< Particle > &  particles(jet.particles());
         	    foreach (Particle part, particles) {
 	    	      if (part.momentum().pT() > _biases[k]*GeV) {
 	              _h_jetspec[i][j][k]->fill(jet.momentum().pT(),weight);
-	              if (i < _ncentbins-1) _h_rcp[i][j][k]->fill(jet.momentum().pT(),weight);
-	              else {
-	  		    for (size_t l = 0; l < _ncentbins-1; ++l) {
-	                  _h_rcp[l][j][k]->fill(jet.momentum().pT(),weight);
-			    }
-			  }
+	              if (i < _ncentbins-1) _h_rcp[i][j][k]->fill(jet.momentum().pT(),weight);
+	              else {
+	  		    for (size_t l = 0; l < _ncentbins-1; ++l) {
+	                  _h_rcp[l][j][k]->fill(jet.momentum().pT(),weight);
+			    }
+			  }
 	              break;
 	    	      }
          	    }
-              }
+              }
 	      }
-	    }
-	  }
-	}
-
-    }
-
-
-    /// Normalise histograms etc., after the run
-    void finalize() {
-
-      for (size_t i = 0; i < _ncentbins; ++i) {
-        for (size_t j = 0; j < _njetbins; ++j) {
-          for (size_t k = 0; k < _nbiasbins; ++k) {
-            scale(_h_jetspec[i][j][k],1.e6/(_sumwtcentbins[i]>0.?_sumwtcentbins[i]:1.));
-	      if (i < _ncentbins-1) scale(_h_rcp[i][j][k],crossSection()/(_rsumwtcentbins[i]>0.?_rsumwtcentbins[i]:1.));
-          }
-        }
-      }
-    }
-
-    //@}
-
-
-  private:
-
-    vector<double> _jetparams, _centedges, _biases; 
-    double _sumwtcentbins[4],_rsumwtcentbins[3];
-    size_t _ncentbins, _njetbins, _nbiasbins;
-
-    string _names[2];
-
-  private:
-
-    /// @name Histograms
-    //@{
-    AIDA::IHistogram1D *_h_jetspec[4][2][3];
-    AIDA::IHistogram1D *_h_rcp[3][2][3];
-   //@}
-
-
-  };
-
-
-
-  // The hook for the plugin system
-  DECLARE_RIVET_PLUGIN(ALICE_2014_I1263194);
-
-}
+	    }
+	  }
+	}
+
+    }
+
+
+    /// Normalise histograms etc., after the run
+    void finalize() {
+
+      for (size_t i = 0; i < _ncentbins; ++i) {
+        for (size_t j = 0; j < _njetbins; ++j) {
+          for (size_t k = 0; k < _nbiasbins; ++k) {
+            scale(_h_jetspec[i][j][k],1.e6/(_sumwtcentbins[i]>0.?_sumwtcentbins[i]:1.));
+	      if (i < _ncentbins-1) scale(_h_rcp[i][j][k],crossSection()/(_rsumwtcentbins[i]>0.?_rsumwtcentbins[i]:1.));
+          }
+        }
+      }
+    }
+
+    //@}
+
+
+  private:
+
+    vector<double> _jetparams, _centedges, _biases; 
+    double _sumwtcentbins[4],_rsumwtcentbins[3];
+    size_t _ncentbins, _njetbins, _nbiasbins;
+
+    string _names[2];
+
+  private:
+
+    /// @name Histograms
+    //@{
+    Histo1DPtr _h_jetspec[4][2][3];
+    Histo1DPtr _h_rcp[3][2][3];
+   //@}
+
+
+  };
+
+
+
+  // The hook for the plugin system
+  DECLARE_RIVET_PLUGIN(ALICE_2014_I1263194);
+
+}
Index: trunk/code/CMS_2014_I1299142.plot
===================================================================
--- trunk/code/CMS_2014_I1299142.plot	(revision 0)
+++ trunk/code/CMS_2014_I1299142.plot	(revision 452)
@@ -0,0 +1,8 @@
+# BEGIN PLOT /CMS_2014_I1299142/d01-x01-y01
+#Title=[Uncomment and insert title for histogram d01-x01-y01 here]
+#XLabel=[Uncomment and insert x-axis label for histogram d01-x01-y01 here]
+#YLabel=[Uncomment and insert y-axis label for histogram d01-x01-y01 here]
+# + any additional plot settings you might like, see make-plots documentation
+# END PLOT
+
+# ... add more histograms as you need them ...
Index: trunk/code/runit-lhc2.sh
===================================================================
--- trunk/code/runit-lhc2.sh	(revision 451)
+++ trunk/code/runit-lhc2.sh	(revision 452)
@@ -1,42 +1,50 @@
 #!/bin/bash
 
 source /media/hdmobil/korinna/arbeit/rivet2/local/rivetenv.sh
 #export RIVET_ANALYSIS_PATH=$RIVET_ANALYSIS_PATH:/home/jewel/trunk/code
 #export RIVET_REF_PATH=$RIVET_REF_PATH:/home/jewel/trunk/code
 export LD_LIBRARY_PATH=/media/hdmobil/korinna/arbeit/durham/sherpa/lhapdf/lhapdf-5.8.4/lhapdf-install/lib/:$LD_LIBRARY_PATH
 export LHAPATH=/media/hdmobil/korinna/arbeit/durham/sherpa/lhapdf/lhapdf-5.8.4/lhapdf-install/share/lhapdf/PDFsets
 
 
 fifo=fifo-vac.hepmc
 runcard=params.vac.dat
-outfile=data/pp-test.yoda
+outfile=data/jewel-2.1.1_vac_lhc2_raghav-dijets.yoda
+#outfile=test.yoda
 #outfile=data/jewel-2.1.0_vac_scalefix_5-550.aida
 #outfile=data/jewel-2.0.0_vac_fixed_5-350_aasmear.aida
 #outfile=data/jets+dijets.aida.aida
 #outfile=data/vac-jj-ptmin5.aida
 #outfile=data/vac-yq-new.aida
 #outfile=data/pp-lhc2-300.10M.aida
 
 rm $fifo
 mkfifo $fifo
 sed -i 's/FIFO/'$fifo'/g' $runcard
 ./jewel-2.1.1-vac $runcard &
 #   rivet -a MC_DIJETS -a MC_SIJETS -a MC_XS -H $outfile $fifo
 #   rivet -a ALICE_2012_I1127497 -a ALICE_2012_I1210881 -a ALICE_JETRAA -a ALICE_JETRAA2 -a ATLAS_2012_S1126965 -a ATLAS_2013_I1240088 -a ATLAS_CONF_2012_115 -a CMS_2012_I1088823 -a CMS_2012_I1090064 -a CMS_2012_I1116250 -a CMS_2013_I1256590 -a CMS_HIN_12_004 -a JETSPECTRUM -a HADRONSPECTRA -a MC_JETS -a MC_XS -H $outfile $fifo
 #   rivet -a ATLAS_CONF_2014_025 -a ATLAS_CONF_2014_028 -a ALICE_2014_I1263194 -a CMS_HIN_12_004 -a ALICE_JETRAA -a ALICE_JETRAA2 -a MC_XS -H $outfile $fifo
 #   rivet -a CMS_HIN_12_004 -a ALICE_JETRAA -a MC_XS -H $outfile $fifo
 #   rivet -a ATLAS_2013_I1228693 -a CMS_2013_I1256590 -a ALICE_2012_I1210881 -a CMS_2012_I1116250 -a CMS_2012_I1090064 -a MC_XS -H $outfile $fifo
 #   rivet -a ALICE_2012_I1127497 -a ALICE_2014_I1263194 -a ALICE_JETRAA -a ALICE_JETRAA2 -a ATLAS_2012_S1126965 -a ATLAS_2013_I1240088 -a ATLAS_CONF_2012_115 -a ATLAS_CONF_2014_025 -a ATLAS_CONF_2014_028 -a CMS_2012_I1088823 -a CMS_2012_I1090064 -a CMS_2012_I1116250 -a CMS_2013_I1256590 -a CMS_HIN_12_004 -a JETSPECTRUM -a HADRONSPECTRA -a MC_DIJETS -a MC_SIJETS -a MC_JETS -a MC_XS -H $outfile $fifo
 #rivet -a MC_XS -a MC_DIJETS -H $outfile $fifo
 #rivet -a MC_XS -a MC_JETMASS -H $outfile $fifo
 
 #rivet -a MC_XS -a CMS_HIN_13_005 -H $outfile $fifo
 
-rivet -a MC_XS -a TEST_JETMASS -H $outfile $fifo
+#rivet --pwd -a MC_XS -a ALICE_2017_I1512107_4MOMSUB -a ALICE_2017_I1512107_GRIDSUB1 -a ALICE_2017_I1512107_GRIDSUB2 -a ALICE_2017_I1512107_CHARGED -a CMS_2013_I1256590_4MOMSUB -a CMS_2013_I1256590_GRIDSUB2 -a CMS_2013_I1256590_CHARGED -a CMS_2014_I1299142_4MOMSUB -a CMS_2014_I1299142_GRIDSUB2 -a ALICE_GIRTH_4MOMSUB -a ALICE_GIRTH_GRIDSUB2 -a TEST_JETMASS -H $outfile $fifo
+#rivet --pwd -a MC_XS -a CMS_2013_I1256590_4MOMSUB -a CMS_2013_I1256590_GRIDSUB2 -a CMS_2013_I1256590_CHARGED -H $outfile $fifo
+#rivet --pwd -a MC_XS -a CMS_2013_I1256590_CHARGED -H $outfile $fifo
+#rivet --pwd -a MC_XS -a ALICE_GIRTH_4MOMSUB -a ALICE_GIRTH_GRIDSUB2 -H $outfile $fifo
+#rivet --pwd -a MC_XS -a TEST_JETMASS -H $outfile $fifo
+rivet --pwd -a MC_XS -a JEWEL_MethodComparisons_4MomSub -a JEWEL_MethodComparisons_GridSub -H $outfile $fifo
+#rivet --pwd -a MC_XS -a ALICE_2017_I1512107_4MOMSUB -a ALICE_2017_I1512107_GRIDSUB1 -a ALICE_2017_I1512107_GRIDSUB2 -a ALICE_2017_I1512107_CHARGED -H $outfile $fifo
+
 
 # -a JETSPECTRUM -a HADRONSPECTRA  -a CMS_HIN_12_004 -a CMS_2013_I1256590 -a CMS_2012_I1116250 -a CMS_2012_I1090064 -a CMS_2012_I1088823 -a ATLAS_CONF_2014_028
 
 # -a ATLAS_CONF_2014_025 -a ATLAS_2013_I1240088 -a ATLAS_2013_I1228693 -a ATLAS_2012_I1126965 -a ALICE_JETRAA2 -a ALICE_JETRAA -a ALICE_2014_I1263194 -a ALICE_2012_I1127497 -a ALICE_2015_I1343112 -a MC_XS -H $outfile $fifo
 sed -i 's/'$fifo'/FIFO/g' $runcard
 
 rm $fifo
Index: trunk/code/MC_SOFTDROP.cc
===================================================================
--- trunk/code/MC_SOFTDROP.cc	(revision 451)
+++ trunk/code/MC_SOFTDROP.cc	(revision 452)
@@ -1,457 +1,578 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/FastJets.hh"
 //#include "Rivet/Tools/Logging.hh"
 #include "Rivet/Tools/ParticleIdUtils.hh"
 //#include "fastjet/AreaDefinition.hh"
 #include "fastjet/ClusterSequence.hh"
 //#include "fastjet/ClusterSequenceArea.hh"
 #include "fastjet/contrib/SoftDrop.hh"
 #include "HepMC/GenParticle.h"
 #include "HepMC/GenEvent.h"
 
 // background=0, norec_grid=1, norec_part=2, unsub_grid=3, unsub_part=4
 #ifndef MODE 
 #warning MODE not defined, using default
 #define MODE 0
 #endif
 
 namespace Rivet {
 
     using namespace fastjet;
 
 
 #if MODE==0
   class MC_SOFTDROP_REC : public Analysis {
 #elif MODE==1
   class MC_SOFTDROP_NOREC_GRID : public Analysis {
 #elif MODE==2
   class MC_SOFTDROP_NOREC_PART : public Analysis {
 #elif MODE==3
   class MC_SOFTDROP_UNSUB_GRID : public Analysis {
 #elif MODE==4
   class MC_SOFTDROP_UNSUB_PART : public Analysis {
 #endif
 
   public:
 
     /// Constructor
 #if MODE==0
     MC_SOFTDROP_REC() : Analysis("MC_SOFTDROP_REC")
 #elif MODE==1
     MC_SOFTDROP_NOREC_GRID() : Analysis("MC_SOFTDROP_NOREC_GRID")
 #elif MODE==2
     MC_SOFTDROP_NOREC_PART() : Analysis("MC_SOFTDROP_NOREC_PART")
 #elif MODE==3
     MC_SOFTDROP_UNSUB_GRID() : Analysis("MC_SOFTDROP_UNSUB_GRID")
 #elif MODE==4
     MC_SOFTDROP_UNSUB_PART() : Analysis("MC_SOFTDROP_UNSUB_PART")
 #endif
     {    
         _zcut = 0.1;  _beta = 0.;
         _nphibins = 120; _netabins = 160;
 
     }
 
     /// Book histograms and initialise projections before the run
     void init() {
 
         _jetRs += 0.4;
         _njetRbins = 1;
         
         _girthedges += 0., 0.1, 0.2, 0.3, 1.;
         _ngirthbins = 4;
+	 
+	 _zgbins += 0.1, 0.2, 0.3, 0.4, 0.5;
+	 _nzgbins = 4;
+	 
+	 _dRbins += 0.0, 0.1, 0.2, 0.3, 0.4;
+	 _ndRbins = 4;
         
       // pt binning 
       _ptedges += 140, 160, 180, 200, 250, 300, 500;
       _nptbins = _ptedges.size();
       
       for (size_t k = 0; k < _njetRbins; ++k) {
 	  stringstream ss1; ss1 << "jetpt_R" <<_jetRs[k];
           _h_jetpt[k] = bookHisto1D(ss1.str(), 100, 50., 500.);
 	  stringstream ss2; ss2 << "zg_R" <<_jetRs[k];
           _h_zg[k] = bookHisto1D(ss2.str(), 8, 0.1, 0.5);
 	  stringstream ss3; ss3 << "nstep_R" <<_jetRs[k];
           _h_nstep[k] = bookHisto1D(ss3.str(), 21, -0.5, 20.5);
 	  stringstream ss5; ss5 << "zg_dRcut_R" <<_jetRs[k];
           _h_zgdrcut[k] = bookHisto1D(ss5.str(), 8, 0.1, 0.5);
 	  stringstream ss6; ss6 << "nstep_dRcut_R" <<_jetRs[k];
           _h_nstepdrcut[k] = bookHisto1D(ss6.str(), 21, -0.5, 20.5);
 	  stringstream ss7; ss7 << "groomed_ptratio_R" <<_jetRs[k];
           _h_grptratio[k] = bookHisto1D(ss7.str(), 50, 0., 1.);
 	  stringstream ss8; ss8 << "zg_dRcut_nstep0_R" <<_jetRs[k];
           _h_zgdrcutnstep0[k] = bookHisto1D(ss8.str(), 8, 0.1, 0.5);
 	  //stringstream ss9; ss9 << "deltapt_R" <<_jetRs[k];
           //_h_deltapt[k] = bookHisto1D(ss9.str(), 50, -0.5, 0.5);
           for (size_t j = 0; j < _ngirthbins; ++j) {
 	      stringstream ss; ss << "zg_girth" << "_" << j<<"_R"<<_jetRs[k];
 	      _h_zg_girth[j][k] = bookHisto1D(ss.str(), 8, 0.1, 0.5);
           }
-      /*for (size_t j = 0; j < _nptbins; ++j) {
-	  stringstream ss1; ss1 << "zg" << "_" << j;
-	  _h_zg[j] = bookHisto1D(ss1.str(), 8, 0.1, 0.5);
-	  stringstream ss2; ss2 << "nstep" << "_" << j;
-	  _h_nstep[j] = bookHisto1D(ss2.str(), 21, -0.5, 20.5);
-      }*/
+	  for (size_t j = 0; j < _nzgbins; ++j) {
+	    stringstream ss1; ss1 << "zg_dRbins_" << j<<"_R"<<_jetRs[k];
+	    _h_zg_dRbins[j][k] = bookHisto1D(ss1.str(), 8, 0.1, 0.5);
+	    stringstream ss2; ss2 << "dR_zgbins_" << j<<"_R"<<_jetRs[k];
+	    _h_dR_zgbins[j][k] = bookHisto1D(ss2.str(), 20, 0., 0.6);
+	  }
       }
       _h_deltar[0] = bookHisto1D("deltaR_R0.4", 20, 0., 0.6);
       //_h_deltar[1] = bookHisto1D("deltaR_R1", 20, 0., 1.5);
       _h_girth[0] = bookHisto1D("girth_R0.4",40 , 0., 0.4);
       //_h_girth[1] = bookHisto1D("girth_R1",40 , 0., 1);
       _p_girth_lead_zg[0] = bookProfile1D("g_vs_zg_l_R0.4", 16, 0.1, 0.5);
       //_p_girth_lead_zg[1] = bookProfile1D("g_vs_zg_l_R1", 16, 0.1, 0.5);
       _p_girth_subl_zg[0] = bookProfile1D("g_vs_zg_s_R0.4", 16, 0.1, 0.5);
       //_p_girth_subl_zg[1] = bookProfile1D("g_vs_zg_s_R1", 16, 0.1, 0.5);
+      _p_area_lead_zg[0] = bookProfile1D("area_vs_zg_l_R0.4", 16, 0.1, 0.5);
+      //_p_area_lead_zg[1] = bookProfile1D("area_vs_zg_l_R1", 16, 0.1, 0.5);
+      _p_area_subl_zg[0] = bookProfile1D("area_vs_zg_s_R0.4", 16, 0.1, 0.5);
+      //_p_area_subl_zg[1] = bookProfile1D("area_vs_zg_s_R1", 16, 0.1, 0.5);
 #if MODE==0
       _p_recen_lead_zg[0] = bookProfile1D("recen_vs_zg_l_R0.4", 16, 0.1, 0.5);
       //_p_recen_lead_zg[1] = bookProfile1D("recen_vs_zg_lead_R1", 16, 0.1, 0.5);
       _p_recen_sublead_zg[0] = bookProfile1D("recen_vs_zg_s_R0.4", 16, 0.1, 0.5);
       //_p_recen_sublead_zg[1] = bookProfile1D("recen_vs_zg_sublead_R1", 16, 0.1, 0.5);
       _p_recpt_lead_zg[0] = bookProfile1D("recpt_vs_zg_l_R0.4", 16, 0.1, 0.5);
       //_p_recpt_lead_zg[1] = bookProfile1D("recpt_vs_zg_lead_R1", 16, 0.1, 0.5);
       _p_recpt_sublead_zg[0] = bookProfile1D("recpt_vs_zg_s_R0.4", 16, 0.1, 0.5);
       //_p_recpt_sublead_zg[1] = bookProfile1D("recpt_vs_zg_sublead_R1", 16, 0.1, 0.5);
       _p_recpt_abs_lead_zg[0] = bookProfile1D("recpt_abs_vs_zg_l_R0.4", 16, 0.1, 0.5);
       //_p_recpt_abs_lead_zg[1] = bookProfile1D("recpt_abs_vs_zg_lead_R1", 16, 0.1, 0.5);
       _p_recpt_abs_sublead_zg[0] = bookProfile1D("recpt_abs_vs_zg_s_R0.4", 16, 0.1, 0.5);
       //_p_recpt_abs_sublead_zg[1] = bookProfile1D("recpt_abs_vs_zg_sublead_R1", 16, 0.1, 0.5);
 #endif
 
     }
 
 
     /// girth = first moment of jet profile
     double Girth(PseudoJet pjet) {
         double firstmom(0.);
         foreach (PseudoJet part, pjet.constituents()) {
               double dR(deltaR(pjet.eta(), pjet.phi(), part.eta(), part.phi()));
               firstmom += part.pt()*dR;
         }
         return firstmom/pjet.pt();
     }
         
     
     /// recoil energy fraction
     double RecEnFrac(PseudoJet pjet, vector<vector<FourMomentum> >  * grid){
         double recE(0.);
         foreach (PseudoJet part, pjet.constituents()) {
             int etabin, phibin;
-            phibin = int(Get4Mom(part).phi()*_nphibins/(2.*M_PI));
+            phibin = int(Get4Mom(part).phi(ZERO_2PI)*_nphibins/(2.*M_PI));
             etabin = int((Get4Mom(part).eta() + 4.)*_netabins/8.);
             recE += (*grid)[phibin][etabin].E();
         }
         return recE/pjet.E();
     }
 
     
     /// recoil pt fraction
     double RecPtFrac(PseudoJet pjet, vector<vector<FourMomentum> >  * grid){
         FourMomentum recmom(0.,0.,0.,0.);
         foreach (PseudoJet part, pjet.constituents()) {
             int etabin, phibin;
-            phibin = int(Get4Mom(part).phi()*_nphibins/(2.*M_PI));
+            phibin = int(Get4Mom(part).phi(ZERO_2PI)*_nphibins/(2.*M_PI));
             etabin = int((Get4Mom(part).eta() + 4.)*_netabins/8.);
             recmom += (*grid)[phibin][etabin];
         }
         double ptfrac(recmom.pT()/pjet.pt());
-        double dR(deltaR(recmom.eta(), recmom.phi(), Get4Mom(pjet).eta(), Get4Mom(pjet).phi()));
+        double dR(deltaR(recmom.eta(), recmom.phi(ZERO_2PI), Get4Mom(pjet).eta(), Get4Mom(pjet).phi(ZERO_2PI)));
         if (dR > 1.) ptfrac *= -1.;
         return ptfrac;
     }
 
+    
+    vector<FourMomentum> Rambo(FourMomentum momin, int n) {
+	    //cout<<"------------------------\n";
+	    LorentzTransform cms_boost;
+	    cms_boost = LorentzTransform(momin.boostVector());
+	    vector<FourMomentum> qmoms;
+	    FourMomentum Q;
+	    for (int i=0; i<n; i++) {
+		    FourMomentum q;
+		    double r1(1.0*rand()/RAND_MAX), r2(1.0*rand()/RAND_MAX),
+			r3(1.0*rand()/RAND_MAX), r4(1.0*rand()/RAND_MAX);
+		    double c, phi, q0;
+		    c = 2.*r1-1.;
+		    phi = 2.*M_PI*r2;
+		    q0 = -log(r3*r4);
+		    q.setE(q0);
+		    q.setPx(q0*sqrt(1.-c*c)*cos(phi));
+		    q.setPy(q0*sqrt(1.-c*c)*sin(phi));
+		    q.setPz(q0*c);
+		    qmoms.push_back(q);
+		    Q += q;
+	    }
+	    double b1, b2, b3, x, gamma, a, M;
+	    M = Q.mass();
+	    //cout<<Q.mass2()<<endl;
+	    b1 = -Q.px()/M;
+	    b2 = -Q.py()/M;
+	    b3 = -Q.pz()/M;
+	    x = momin.mass()/M;
+	    //cout<<"w = "<<momin.mass()<<endl;
+	    gamma = Q.E()/M;
+	    a = 1./(1.+gamma);
+	    vector<FourMomentum> pmoms;
+	    FourMomentum ptot;
+	    for (int i=0; i<n; i++) {
+		    double bdotq(b1*qmoms[i].px() + b2*qmoms[i].py() + b3*qmoms[i].pz());
+		    FourMomentum p;
+		    p.setE(x*(gamma*qmoms[i].E() + bdotq));
+		    p.setPx(x*(qmoms[i].px() + b1*qmoms[i].E() + a*bdotq*b1));
+		    p.setPy(x*(qmoms[i].py() + b2*qmoms[i].E() + a*bdotq*b2));
+		    p.setPz(x*(qmoms[i].pz() + b3*qmoms[i].E() + a*bdotq*b3));
+		    p = cms_boost.transform(p);
+		    pmoms.push_back(p);
+		    ptot += p;
+	    }
+	    //cout<<momin<<endl;
+	    //cout<<ptot<<endl;
+	    //cout<<n<<endl;
+	    //for (int i=0; i<n; i++) cout<<pmoms[i]<<endl;
+	    return pmoms;
+    }
+    
                 
     /// 4-momentum adapter
     FourMomentum Get4Mom(PseudoJet pjet){
         FourMomentum mom(pjet.E(), pjet.px(), pjet.py(), pjet.pz());
         return mom;
     }
     
     /// Perform the per-event analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
 
       PseudoJets pevent, pjets;
 
 //cout<<"==============================\n";
         // initialise grid
       vector<vector<FourMomentum> >  grid;
       grid.resize(_nphibins);
       for (size_t i = 0; i < _nphibins; ++i) {
           grid[i].resize(_netabins);
           for (size_t k = 0; k < _nphibins; ++k) {
               grid[i][k] = FourMomentum(0., 0., 0., 0.);
           }
       }
 
 #if MODE==0
       vector<vector<FourMomentum> >  recgrid;
       recgrid.resize(_nphibins);
       for (size_t i = 0; i < _nphibins; ++i) {
           recgrid[i].resize(_netabins);
           for (size_t k = 0; k < _nphibins; ++k) {
               recgrid[i][k] = FourMomentum(0., 0., 0., 0.);
           }
       }
 #endif
 
       // fill grid
         std::set<std::pair<size_t,size_t> > gridevent, norecevent, unsubevent;
         foreach (const HepMC::GenParticle* p, particles(event.genEvent())) {
             FourMomentum mom(p->momentum());
             if (fabs(mom.eta()) < 4.) {
                size_t phibin, etabin;
-               phibin = int(mom.phi()*_nphibins/(2.*M_PI));
+               phibin = int(mom.phi(ZERO_2PI)*_nphibins/(2.*M_PI));
                etabin = int((mom.eta() + 4.)*_netabins/8.);
-               if (phibin < 0 || phibin > _nphibins-1) {std::cout<<"Error: "<<mom.phi()<<"  --> "<<phibin<<std::endl; exit(1);}
+               if (phibin < 0 || phibin > _nphibins-1) {std::cout<<"Error: "<<mom.phi(ZERO_2PI)<<"  --> "<<phibin<<std::endl; exit(1);}
                if (etabin < 0 || etabin > _netabins-1) {std::cout<<"Error: "<<mom.eta()<<"  --> "<<etabin<<std::endl; exit(1);}
                double cellphi((phibin+0.5)*2*M_PI/_nphibins), celleta((etabin+0.5)*8./_netabins-4.);
                double celltheta(2.*atan(exp(-celleta)));
 #if MODE==0
                if (p->status() == 3) {
                    double rho(grid[phibin][etabin].E() - mom.E());
                    grid[phibin][etabin].setE(rho);
                    grid[phibin][etabin].setPx(fabs(rho)*sin(celltheta)*cos(cellphi));
                    grid[phibin][etabin].setPy(fabs(rho)*sin(celltheta)*sin(cellphi));
                    grid[phibin][etabin].setPz(fabs(rho)*cos(celltheta));
                    rho = recgrid[phibin][etabin].E() - mom.E();                   
                    recgrid[phibin][etabin].setE(rho);
                    recgrid[phibin][etabin].setPx(fabs(rho)*sin(celltheta)*cos(cellphi));
                    recgrid[phibin][etabin].setPy(fabs(rho)*sin(celltheta)*sin(cellphi));
                    recgrid[phibin][etabin].setPz(fabs(rho)*cos(celltheta));                   
                }
                else {
+		     // use this for standard recoil treatment
                    double rho(grid[phibin][etabin].E() + mom.E());
                    grid[phibin][etabin].setE(rho);
                    grid[phibin][etabin].setPx(rho*sin(celltheta)*cos(cellphi));
                    grid[phibin][etabin].setPy(rho*sin(celltheta)*sin(cellphi));
                    grid[phibin][etabin].setPz(rho*cos(celltheta));    
                    if (p->status() == 4) {
                        rho = recgrid[phibin][etabin].E() + mom.E();
                        recgrid[phibin][etabin].setE(rho);
                        recgrid[phibin][etabin].setPx(rho*sin(celltheta)*cos(cellphi));
                        recgrid[phibin][etabin].setPy(rho*sin(celltheta)*sin(cellphi));
                        recgrid[phibin][etabin].setPz(rho*cos(celltheta));    
-                   }
+                   } 
+		     // do this to split up recoils
+		     /*int npart(int(mom.E()));
+		     if (p->status() == 4 && npart > 1 && mom.mass() > 1e-6) {
+			      vector<FourMomentum> newparts;
+			      newparts = Rambo(mom,npart);
+			      for (size_t i=1; i<newparts.size(); i++) {
+					if (fabs(newparts[i].eta()) < 4.) {
+						phibin = int(newparts[i].phi(ZERO_2PI)*_nphibins/(2.*M_PI));
+						etabin = int((newparts[i].eta() + 4.)*_netabins/8.);
+						if (phibin < 0 || phibin > _nphibins-1) {std::cout<<"Error phi: "<<newparts[i].phi(ZERO_2PI)<<"  --> "<<phibin<<std::endl; exit(1);}
+						if (etabin < 0 || etabin > _netabins-1) {std::cout<<"Error eta: "<<newparts[i].eta()<<"  --> "<<etabin<<std::endl; exit(1);}
+						cellphi = (phibin+0.5)*2*M_PI/_nphibins;
+						celleta = (etabin+0.5)*8./_netabins-4.;
+						celltheta = 2.*atan(exp(-celleta));
+						double rho(grid[phibin][etabin].E() + newparts[i].E());
+						grid[phibin][etabin].setE(rho);
+						grid[phibin][etabin].setPx(rho*sin(celltheta)*cos(cellphi));
+						grid[phibin][etabin].setPy(rho*sin(celltheta)*sin(cellphi));
+						grid[phibin][etabin].setPz(rho*cos(celltheta));    
+						rho = recgrid[phibin][etabin].E() + newparts[i].E();
+						recgrid[phibin][etabin].setE(rho);
+						recgrid[phibin][etabin].setPx(rho*sin(celltheta)*cos(cellphi));
+						recgrid[phibin][etabin].setPy(rho*sin(celltheta)*sin(cellphi));
+						recgrid[phibin][etabin].setPz(rho*cos(celltheta));  
+					}
+			      }
+		     }
+		     else {
+			     double rho(grid[phibin][etabin].E() + mom.E());
+			     grid[phibin][etabin].setE(rho);
+			     grid[phibin][etabin].setPx(rho*sin(celltheta)*cos(cellphi));
+			     grid[phibin][etabin].setPy(rho*sin(celltheta)*sin(cellphi));
+			     grid[phibin][etabin].setPz(rho*cos(celltheta));    
+			     if (p->status() == 4) {
+				     rho = recgrid[phibin][etabin].E() + mom.E();
+				     recgrid[phibin][etabin].setE(rho);
+				     recgrid[phibin][etabin].setPx(rho*sin(celltheta)*cos(cellphi));
+				     recgrid[phibin][etabin].setPy(rho*sin(celltheta)*sin(cellphi));
+				     recgrid[phibin][etabin].setPz(rho*cos(celltheta));    
+			     } 
+		     }*/
+		     // end of splitting up of recoils		     
                }
                gridevent.insert(std::pair<size_t,size_t>(phibin,etabin));
 #elif MODE==1
                if (p->status() == 1) {
                    double rho(grid[phibin][etabin].E() + mom.E());
                    grid[phibin][etabin].setE(rho);
                    grid[phibin][etabin].setPx(rho*sin(celltheta)*cos(cellphi));
                    grid[phibin][etabin].setPy(rho*sin(celltheta)*sin(cellphi));
                    grid[phibin][etabin].setPz(rho*cos(celltheta));                   
                }
                gridevent.insert(std::pair<size_t,size_t>(phibin,etabin));
 #elif MODE==2
                if (p->status() == 1) {
                    PseudoJet pjet(mom.px(),mom.py(),mom.pz(),mom.E());
                    pevent.push_back(pjet);
                }
 #elif MODE==3
                if (p->status() != 3) {
                    double rho(grid[phibin][etabin].E() + mom.E());
                    grid[phibin][etabin].setE(rho);
                    grid[phibin][etabin].setPx(rho*sin(celltheta)*cos(cellphi));
                    grid[phibin][etabin].setPy(rho*sin(celltheta)*sin(cellphi));
                    grid[phibin][etabin].setPz(rho*cos(celltheta));    
                }
                gridevent.insert(std::pair<size_t,size_t>(phibin,etabin));
 #elif MODE==4
                if (p->status() != 3) {
                    PseudoJet pjet(mom.px(),mom.py(),mom.pz(),mom.E());
                    pevent.push_back(pjet);
                }
 #endif          
             }
         }
 
             
 #if MODE!=2 && MODE !=4
       for (set<pair<size_t,size_t> >::iterator it=gridevent.begin(); it!=gridevent.end(); ++it) {
           size_t i,k;
           i = it->first;
           k = it->second;
           if (grid[i][k].E() > 0. ) {
               PseudoJet part(grid[i][k].px(),grid[i][k].py(),grid[i][k].pz(),grid[i][k].E());
               pevent.push_back(part);
           }
       }
 #endif
 
 
       for (size_t k = 0; k < _njetRbins; ++k) {
       
       JetDefinition jet_def(antikt_algorithm, _jetRs[k]);
       ClusterSequence cs(pevent, jet_def);
       pjets = sorted_by_pt(cs.inclusive_jets(50.0));
 
 
       fastjet::contrib::RecursiveSymmetryCutBase::SymmetryMeasure  symmetry_measure = fastjet::contrib::RecursiveSymmetryCutBase::scalar_z;
       fastjet::contrib::SoftDrop sd(_beta, _zcut, symmetry_measure, 1.);
       sd.set_verbose_structure();
       
       foreach (PseudoJet pjet, pjets) {
          if (fabs(pjet.eta()) < 2.5) {
              _h_jetpt[k]->fill(pjet.pt(), weight);
           
              int ptbin(-1);
              for (size_t l = 0; l < _nptbins; ++l) {
       	        if (pjet.pt() >= _ptedges[l] && pjet.pt() < _ptedges[l+1]) ptbin=l;
              }
              if (ptbin < 0) continue;
 
              double g;
              g = Girth(pjet);
              _h_girth[k]->fill(g,weight);
 
              int gbin(-1);
              for (size_t j = 0; j < _ngirthbins; ++j) {
       	        if (g >= _girthedges[j]*_jetRs[k] && g < _girthedges[j+1]*_jetRs[k]) gbin=j;
              }
             
              PseudoJet sd_jet = sd(pjet);    
              if(sd_jet != 0){
                 _h_grptratio[k]->fill(sd_jet.pt()/pjet.pt(),weight);
 	        double z = sd_jet.structure_of<fastjet::contrib::SoftDrop>().symmetry();
                 _h_zg[k]->fill(z,weight);
 	        double dR = sd_jet.structure_of<fastjet::contrib::SoftDrop>().delta_R();
                 _h_deltar[k]->fill(dR,weight);
                 int nstep = sd_jet.structure_of<fastjet::contrib::SoftDrop>().dropped_count();
                 _h_nstep[k]->fill(nstep,weight);
+		  int zgbin(-1), dRbin(-1);
+		  for (size_t j = 0; j < _nzgbins; ++j) {
+		    if (z >= _zgbins[j] && z < _zgbins[j+1]) zgbin=j;
+		    if (dR >= _dRbins[j] && dR < _dRbins[j+1]) dRbin=j;
+		  }
+		  if (zgbin >= 0) _h_dR_zgbins[zgbin][k]->fill(dR,weight);
+		  if (dRbin >= 0) _h_zg_dRbins[dRbin][k]->fill(z,weight);
                 if (dR > 0.1) {
                     _h_zgdrcut[k]->fill(z,weight);
                     _h_nstepdrcut[k]->fill(nstep,weight);
                     if (nstep == 0) _h_zgdrcutnstep0[k]->fill(z,weight);
                     if (gbin >= 0) _h_zg_girth[gbin][k]->fill(z,weight);
 
                     PseudoJet subjet1, subjet2;
                     if (sd_jet.has_parents(subjet1,subjet2)) {
-                        double g1, g2;
+                        double g1, g2, area1, area2;
                         g1 = Girth(subjet1);
                         g2 = Girth(subjet2);
+			   area1 = subjet1.constituents().size();
+			   area2 = subjet2.constituents().size();
                         if (subjet1.pt() > subjet2.pt()) {
                             _p_girth_lead_zg[k]->fill(z,g1,weight);
                             _p_girth_subl_zg[k]->fill(z,g2,weight);
+				_p_area_lead_zg[k]->fill(z,area1,weight);
+				_p_area_subl_zg[k]->fill(z,area2,weight);
                         }
                         else {
                             _p_girth_lead_zg[k]->fill(z,g2,weight);
                             _p_girth_subl_zg[k]->fill(z,g1,weight);
+				_p_area_lead_zg[k]->fill(z,area2,weight);
+				_p_area_subl_zg[k]->fill(z,area1,weight);
                         }                            
 #if MODE==0                    
                         double pt1(subjet1.pt()),pt2(subjet2.pt());
                         double frac1, frac2,ptfrac1,ptfrac2;
                         frac1 = RecEnFrac(subjet1, &recgrid);
                         frac2 = RecEnFrac(subjet2, &recgrid);
                         ptfrac1 = RecPtFrac(subjet1, &recgrid);
                         ptfrac2 = RecPtFrac(subjet2, &recgrid);
                         if (pt1 > pt2) {
                             _p_recen_lead_zg[k]->fill(z,frac1,weight);
                             _p_recen_sublead_zg[k]->fill(z,frac2,weight);
                             _p_recpt_lead_zg[k]->fill(z,ptfrac1,weight);
                             _p_recpt_sublead_zg[k]->fill(z,ptfrac2,weight);
                             _p_recpt_abs_lead_zg[k]->fill(z,ptfrac1*pt1,weight);
                             _p_recpt_abs_sublead_zg[k]->fill(z,ptfrac2*pt2,weight);
                         }
                         else {
                             _p_recen_lead_zg[k]->fill(z,frac2,weight);
                             _p_recen_sublead_zg[k]->fill(z,frac1,weight);
                             _p_recpt_lead_zg[k]->fill(z,ptfrac2,weight);
                             _p_recpt_sublead_zg[k]->fill(z,ptfrac1,weight);
                             _p_recpt_abs_lead_zg[k]->fill(z,ptfrac2*pt2,weight);
                             _p_recpt_abs_sublead_zg[k]->fill(z,ptfrac1*pt1,weight);
                         }
                         
 #endif                    
                     }
                 }                    
              }
          } 
       }
       
       }
       
     }
     
 
     /// Normalise histograms etc., after the run
     void finalize() {
         
         for (size_t k = 0; k < _njetRbins; ++k) {
             scale(_h_jetpt[k], crossSection()/sumOfWeights()); 
             normalize(_h_zg[k]); 
             normalize(_h_deltar[k]); 
             normalize(_h_nstep[k]); 
             normalize(_h_zgdrcut[k]); 
             normalize(_h_nstepdrcut[k]); 
             normalize(_h_zgdrcutnstep0[k]); 
             normalize(_h_grptratio[k]); 
             normalize(_h_girth[k]); 
             for (size_t j = 0; j < _ngirthbins; ++j) {
                 normalize(_h_zg_girth[j][k]); 
             }
            //normalize(_h_deltapt[k]); 
-        /*for (size_t j = 0; j < _nptbins; ++j) {
-            normalize(_h_zg[j]); 
-            normalize(_h_nstep[j]); 
-        }*/
+          for (size_t j = 0; j < _nzgbins; ++j) {
+            normalize(_h_zg_dRbins[j][k]); 
+            normalize(_h_dR_zgbins[j][k]); 
+          }
         }
 
     }
 
 
 
   private:
 
-    vector<double> _ptedges, _jetRs, _girthedges;
-    size_t _nptbins, _njetRbins, _ngirthbins;
+    vector<double> _ptedges, _jetRs, _girthedges, _zgbins, _dRbins;
+    size_t _nptbins, _njetRbins, _ngirthbins, _nzgbins, _ndRbins;
     double _zcut, _beta;
     
     size_t _nphibins, _netabins;
 
 
     //Profile1DPtr _h_XXXX;
     Histo1DPtr _h_jetpt[1];
     //Histo1DPtr _h_zg[7];
     //Histo1DPtr _h_nstep[7];
     Histo1DPtr _h_zg[1];
     Histo1DPtr _h_deltar[1];
     Histo1DPtr _h_nstep[1];
     Histo1DPtr _h_zgdrcut[1];
     Histo1DPtr _h_nstepdrcut[1];
     Histo1DPtr _h_zgdrcutnstep0[1];
     Histo1DPtr _h_grptratio[1];
     Histo1DPtr _h_girth[1];
     Histo1DPtr _h_zg_girth[4][1];
+    Histo1DPtr _h_zg_dRbins[4][1];
+    Histo1DPtr _h_dR_zgbins[4][1];
     Profile1DPtr _p_girth_lead_zg[1];
     Profile1DPtr _p_girth_subl_zg[1];
+    Profile1DPtr _p_area_lead_zg[1], _p_area_subl_zg[1];
 #if MODE==0
     Profile1DPtr _p_recen_lead_zg[1];
     Profile1DPtr _p_recen_sublead_zg[1];
     Profile1DPtr _p_recpt_lead_zg[1];
     Profile1DPtr _p_recpt_sublead_zg[1];
     Profile1DPtr _p_recpt_abs_lead_zg[1];
     Profile1DPtr _p_recpt_abs_sublead_zg[1];
 #endif
     //Histo1DPtr _h_deltapt[2];
 
 
   };
 
 
 
   // The hook for the plugin system
 #if MODE==0
   DECLARE_RIVET_PLUGIN(MC_SOFTDROP_REC);
 #elif MODE==1
   DECLARE_RIVET_PLUGIN(MC_SOFTDROP_NOREC_GRID);
 #elif MODE==2
   DECLARE_RIVET_PLUGIN(MC_SOFTDROP_NOREC_PART);
 #elif MODE==3
   DECLARE_RIVET_PLUGIN(MC_SOFTDROP_UNSUB_GRID);
 #elif MODE==4
   DECLARE_RIVET_PLUGIN(MC_SOFTDROP_UNSUB_PART);
 #endif
 
 }
Index: trunk/code/ATLAS_2014_I1300152_GRIDSUB2.yoda
===================================================================
--- trunk/code/ATLAS_2014_I1300152_GRIDSUB2.yoda	(revision 0)
+++ trunk/code/ATLAS_2014_I1300152_GRIDSUB2.yoda	(revision 452)
@@ -0,0 +1,1440 @@
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d06-x01-y07
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d06-x01-y07
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.083066e+00	5.635186e-02	9.803626e-02
+3.111899e+00	4.448028e-01	4.448028e-01	8.016450e-01	3.659074e-02	9.632093e-02
+4.149868e+00	5.931660e-01	5.931660e-01	6.013213e-01	1.973869e-02	7.676178e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.480562e-01	1.180333e-02	5.719387e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.164973e-01	8.337622e-03	3.803439e-02
+9.841483e+00	1.406703e+00	1.406703e+00	2.206025e-01	5.828233e-03	1.997105e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.400461e-01	2.785391e-03	9.651644e-03
+1.750161e+01	2.501612e+00	2.501612e+00	8.656407e-02	2.285576e-03	2.335632e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.971875e-02	6.622681e-04	6.641676e-04
+3.112401e+01	4.448745e+00	4.448745e+00	2.600896e-02	1.354348e-03	7.014633e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.247519e-02	1.264959e-03	3.363849e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.235976e-03	8.341495e-04	1.774649e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.774985e-03	3.413658e-04	6.005767e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.638162e-04	9.661307e-05	6.270803e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d06-x01-y06
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d06-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.151227e+00	5.270690e-02	1.041990e-01
+3.111899e+00	4.448028e-01	4.448028e-01	8.693235e-01	2.298139e-02	1.043929e-01
+4.149868e+00	5.931660e-01	5.931660e-01	6.306895e-01	1.254730e-02	8.046705e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.167423e-01	1.101924e-02	5.316517e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.064054e-01	6.097484e-03	3.451944e-02
+9.841483e+00	1.406703e+00	1.406703e+00	2.079422e-01	4.142618e-03	2.035239e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.355806e-01	2.698061e-03	1.032008e-02
+1.750161e+01	2.501612e+00	2.501612e+00	8.380387e-02	2.756343e-03	2.834585e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.878021e-02	1.289020e-03	9.818150e-04
+3.112401e+01	4.448745e+00	4.448745e+00	2.551799e-02	1.650589e-03	6.877824e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.257078e-02	1.274526e-03	3.389626e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.491668e-03	9.061841e-04	1.857821e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.899326e-03	3.654590e-04	9.062889e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.996307e-04	1.040843e-04	3.090155e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d06-x01-y05
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d06-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.231865e+00	4.835530e-02	1.115878e-01
+3.111899e+00	4.448028e-01	4.448028e-01	8.937112e-01	2.366500e-02	1.072879e-01
+4.149868e+00	5.931660e-01	5.931660e-01	6.440624e-01	1.702990e-02	8.216513e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.519256e-01	1.489822e-02	5.764222e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.108227e-01	8.223655e-03	3.499389e-02
+9.841483e+00	1.406703e+00	1.406703e+00	2.053831e-01	6.774006e-03	1.858949e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.321364e-01	2.633141e-03	1.005076e-02
+1.750161e+01	2.501612e+00	2.501612e+00	8.501202e-02	2.248761e-03	2.290340e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.915428e-02	9.800580e-04	1.324283e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.588587e-02	1.835034e-03	5.208656e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.266718e-02	1.284491e-03	3.414166e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.388002e-03	8.286225e-04	1.452838e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.875940e-03	3.506268e-04	6.365785e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.836994e-04	1.058536e-04	2.310020e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d06-x01-y04
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d06-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.292028e+00	7.539191e-02	1.170377e-01
+3.111899e+00	4.448028e-01	4.448028e-01	9.187728e-01	3.024861e-02	1.103483e-01
+4.149868e+00	5.931660e-01	5.931660e-01	6.319081e-01	2.080762e-02	8.061456e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.288424e-01	8.541035e-03	5.472233e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.009117e-01	5.984862e-03	3.613128e-02
+9.841483e+00	1.406703e+00	1.406703e+00	2.069581e-01	5.451984e-03	2.026369e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.331497e-01	4.368550e-03	9.185110e-03
+1.750161e+01	2.501612e+00	2.501612e+00	8.285244e-02	1.641051e-03	2.810543e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.887446e-02	6.480568e-04	6.564884e-04
+3.112401e+01	4.448745e+00	4.448745e+00	2.643489e-02	1.543214e-03	5.323650e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.310967e-02	1.249082e-03	3.536440e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.765439e-03	9.184717e-04	2.352599e-04
+7.381112e+01	1.055027e+01	1.055027e+01	2.034338e-03	3.912631e-04	9.714270e-05
+9.843070e+01	1.406930e+01	1.406930e+01	5.245384e-04	1.174914e-04	3.618127e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d06-x01-y03
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d06-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.301936e+00	5.942632e-02	1.179669e-01
+3.111899e+00	4.448028e-01	4.448028e-01	9.508729e-01	3.120777e-02	1.213839e-01
+4.149868e+00	5.931660e-01	5.931660e-01	6.496281e-01	1.710282e-02	8.784219e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.379379e-01	8.736580e-03	5.587467e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.012006e-01	5.962554e-03	3.393681e-02
+9.841483e+00	1.406703e+00	1.406703e+00	2.017007e-01	3.995068e-03	1.681381e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.297666e-01	1.717792e-03	9.882213e-03
+1.750161e+01	2.501612e+00	2.501612e+00	8.293244e-02	1.642182e-03	2.243359e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.924926e-02	1.296590e-03	6.643127e-04
+3.112401e+01	4.448745e+00	4.448745e+00	2.628440e-02	1.532768e-03	5.303836e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.277665e-02	1.218514e-03	3.446603e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.507592e-03	8.464410e-04	2.247383e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.956359e-03	3.656399e-04	9.346491e-05
+9.843070e+01	1.406930e+01	1.406930e+01	5.392506e-04	1.151754e-04	2.954944e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d06-x01-y02
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d06-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.383872e+00	8.067828e-02	1.353958e-01
+3.111899e+00	4.448028e-01	4.448028e-01	9.973186e-01	3.273212e-02	1.273192e-01
+4.149868e+00	5.931660e-01	5.931660e-01	6.546098e-01	2.147730e-02	8.851581e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.383607e-01	1.153838e-02	5.595073e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.014931e-01	9.893411e-03	3.170849e-02
+9.841483e+00	1.406703e+00	1.406703e+00	2.005524e-01	5.277780e-03	1.814982e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.290285e-01	2.555657e-03	8.906215e-03
+1.750161e+01	2.501612e+00	2.501612e+00	8.356888e-02	2.200581e-03	2.835330e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.995925e-02	9.895387e-04	1.009250e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.756812e-02	1.607192e-03	7.450965e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.349039e-02	1.286584e-03	4.563773e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.738154e-03	8.818481e-04	2.743751e-04
+7.381112e+01	1.055027e+01	1.055027e+01	2.024699e-03	3.894092e-04	8.266536e-05
+9.843070e+01	1.406930e+01	1.406930e+01	5.433859e-04	1.160754e-04	3.743911e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d06-x01-y01
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d06-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.357749e+00	7.060045e-02	1.229826e-01
+3.111899e+00	4.448028e-01	4.448028e-01	1.011685e+00	4.617792e-02	1.215454e-01
+4.149868e+00	5.931660e-01	5.931660e-01	6.640469e-01	2.178692e-02	8.977925e-02
+5.534050e+00	7.910155e-01	7.910155e-01	4.358653e-01	1.429808e-02	5.564046e-02
+7.379923e+00	1.054857e+00	1.054857e+00	3.017842e-01	1.183968e-02	2.956684e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.980843e-01	5.216062e-03	1.794335e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.274406e-01	3.354448e-03	1.061730e-02
+1.750161e+01	2.501612e+00	2.501612e+00	8.090374e-02	1.613535e-03	2.178728e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.869013e-02	1.287434e-03	6.493237e-04
+3.112401e+01	4.448745e+00	4.448745e+00	2.686780e-02	1.737337e-03	5.404704e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.350341e-02	1.368948e-03	3.638779e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.859889e-03	9.988944e-04	2.388071e-04
+7.381112e+01	1.055027e+01	1.055027e+01	2.040237e-03	3.923792e-04	1.118595e-04
+9.843070e+01	1.406930e+01	1.406930e+01	5.331285e-04	1.138561e-04	4.441265e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d10-x01-y06
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d10-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.052452e+00	2.899787e-02	3.240938e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.069510e+00	2.388060e-02	2.558635e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.016631e+00	2.899787e-02	2.729211e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.262260e-01	2.388060e-02	3.240938e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.569296e-01	2.899787e-02	2.729211e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.518124e-01	2.729211e-02	2.899787e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.603412e-01	3.411514e-02	3.411514e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.808102e-01	3.240938e-02	3.070362e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.927505e-01	3.411514e-02	3.240938e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.688699e-01	4.093817e-02	3.923241e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.016631e+00	4.605544e-02	4.605544e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.062687e+00	5.970149e-02	5.970149e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.083156e+00	9.381663e-02	9.381663e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.120682e+00	1.620469e-01	1.620469e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d09-x01-y01
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d09-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.256111e+00	7.148587e-02	8.510988e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.167488e+00	4.425532e-02	5.617720e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.014185e+00	4.595395e-02	6.468784e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.647114e-01	2.723404e-02	2.723404e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.628975e-01	2.553191e-02	2.723754e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.253388e-01	2.553191e-02	2.383328e-02
+8.984721e-02	1.029240e-02	1.029240e-02	8.741631e-01	2.553191e-02	2.723754e-02
+1.130952e-01	1.295555e-02	1.295555e-02	8.842641e-01	3.234043e-02	3.404255e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.369182e-01	2.723404e-02	2.552842e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.674446e-01	3.063480e-02	2.893617e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.006482e+00	4.085456e-02	3.914894e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.001263e+00	3.914544e-02	3.914544e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.014769e+00	3.744331e-02	4.254970e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.050402e+00	5.276596e-02	5.106732e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.108162e+00	7.829787e-02	7.659924e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.159114e+00	1.259574e-01	1.259609e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.201555e+00	2.025497e-01	2.059574e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d09-x01-y02
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d09-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.211915e+00	3.574468e-02	9.531915e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.142128e+00	4.085106e-02	6.127660e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.011064e+00	2.893617e-02	5.446809e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.463830e-01	2.893617e-02	3.574468e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.634043e-01	2.893617e-02	2.553191e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.480851e-01	2.893617e-02	2.723404e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.055319e-01	3.063830e-02	3.063830e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.055319e-01	3.404255e-02	3.404255e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.497872e-01	2.723404e-02	2.553191e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.753191e-01	3.063830e-02	3.063830e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.009362e+00	4.085106e-02	3.914894e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.017872e+00	4.085106e-02	4.085106e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.031489e+00	4.085106e-02	4.595745e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.055319e+00	5.276596e-02	5.276596e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.092766e+00	7.829787e-02	8.000000e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.120000e+00	1.191489e-01	1.191489e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.142128e+00	1.957447e-01	1.957447e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d09-x01-y03
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d09-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.162553e+00	3.404255e-02	7.829787e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.113191e+00	3.914894e-02	4.595745e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.016170e+00	2.893617e-02	4.085106e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.872340e-01	3.063830e-02	2.723404e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.770213e-01	2.723404e-02	2.723404e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.259574e-01	2.382979e-02	2.553191e-02
+8.984721e-02	1.029240e-02	1.029240e-02	8.936170e-01	3.063830e-02	2.893617e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.106383e-01	3.404255e-02	3.404255e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.514894e-01	2.382979e-02	2.723404e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.531915e-01	2.893617e-02	3.234043e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.736170e-01	4.085106e-02	3.914894e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.736170e-01	3.914894e-02	3.914894e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.838298e-01	3.914894e-02	4.595745e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.021277e+00	5.446809e-02	5.106383e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.089362e+00	7.829787e-02	7.829787e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.159149e+00	1.242553e-01	1.276596e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.222128e+00	2.110638e-01	2.076596e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d09-x01-y04
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d09-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.166738e+00	3.582090e-02	6.311301e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.069510e+00	3.582090e-02	3.752665e-02
+3.578878e-02	4.099764e-03	4.099764e-03	9.671642e-01	2.899787e-02	4.264392e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.552239e-01	2.899787e-02	2.899787e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.808102e-01	2.729211e-02	2.899787e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.620469e-01	2.899787e-02	2.729211e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.279318e-01	3.240938e-02	3.411514e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.296375e-01	3.582090e-02	3.411514e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.432836e-01	2.899787e-02	2.729211e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.586354e-01	3.240938e-02	3.240938e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.961620e-01	4.093817e-02	4.093817e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.961620e-01	4.093817e-02	4.093817e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.011514e+00	4.093817e-02	4.093817e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.060981e+00	5.458422e-02	5.458422e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.122388e+00	8.017058e-02	8.187633e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.173561e+00	1.313433e-01	1.330490e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.219616e+00	2.149254e-01	2.149254e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d09-x01-y05
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d09-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.130917e+00	3.411514e-02	3.923241e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.078038e+00	3.923241e-02	3.923241e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.002985e+00	3.582090e-02	4.093817e-02
+4.504913e-02	5.160577e-03	5.160577e-03	1.009808e+00	3.070362e-02	3.070362e-02
+5.670558e-02	6.495875e-03	6.495875e-03	1.014925e+00	3.240938e-02	3.240938e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.637527e-01	2.899787e-02	2.729211e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.057569e-01	3.411514e-02	3.582090e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.211087e-01	3.582090e-02	3.752665e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.569296e-01	3.240938e-02	2.899787e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.756930e-01	3.582090e-02	3.752665e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.927505e-01	4.434968e-02	4.264392e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.569296e-01	4.093817e-02	4.434968e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.535181e-01	4.093817e-02	3.923241e-02
+4.498632e-01	5.153382e-02	5.153382e-02	9.671642e-01	5.799574e-02	5.628998e-02
+5.662652e-01	6.486819e-02	6.486819e-02	9.995736e-01	8.017058e-02	7.846482e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.030277e+00	1.228145e-01	1.211087e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.059275e+00	1.978678e-01	1.978678e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d09-x01-y06
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d09-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.115565e+00	6.993603e-02	5.117271e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.052452e+00	4.093817e-02	4.264392e-02
+3.578878e-02	4.099764e-03	4.099764e-03	9.773987e-01	3.411514e-02	3.923241e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.466951e-01	3.582090e-02	3.582090e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.654584e-01	3.070362e-02	3.070362e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.808102e-01	3.582090e-02	3.411514e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.535181e-01	3.923241e-02	3.923241e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.535181e-01	3.752665e-02	3.923241e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.569296e-01	3.240938e-02	3.411514e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.688699e-01	3.923241e-02	4.093817e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.008102e+00	4.946695e-02	5.458422e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.825160e-01	4.776119e-02	4.605544e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.791045e-01	4.605544e-02	4.946695e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.030277e+00	6.652452e-02	6.652452e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.096802e+00	9.211087e-02	9.381663e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.141151e+00	1.535181e-01	1.518124e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.178678e+00	2.422175e-01	2.439232e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d10-x01-y01
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d10-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.274200e+00	4.093817e-02	7.505330e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.229851e+00	4.946695e-02	4.946695e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.052452e+00	2.558635e-02	3.240938e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.535181e-01	2.046908e-02	2.388060e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.245203e-01	2.388060e-02	1.876333e-02
+9.841483e+00	1.406703e+00	1.406703e+00	8.938166e-01	2.046908e-02	2.046908e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.194030e-01	2.388060e-02	2.729211e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.432836e-01	2.388060e-02	2.217484e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.705757e-01	2.388060e-02	2.388060e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.023454e+00	2.899787e-02	3.582090e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.086567e+00	4.434968e-02	4.264392e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.118977e+00	5.287846e-02	5.287846e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.153092e+00	7.846482e-02	7.675906e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.175267e+00	1.364606e-01	1.364606e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d07-x01-y04
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d07-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.168443e+00	3.752665e-02	6.993603e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.062687e+00	3.923241e-02	4.093817e-02
+3.578878e-02	4.099764e-03	4.099764e-03	9.944563e-01	3.240938e-02	3.240938e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.637527e-01	2.899787e-02	3.070362e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.620469e-01	3.582090e-02	3.582090e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.654584e-01	3.240938e-02	3.240938e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.501066e-01	3.240938e-02	3.411514e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.194030e-01	3.070362e-02	3.070362e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.245203e-01	3.582090e-02	3.411514e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.654584e-01	4.093817e-02	4.093817e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.018337e+00	5.117271e-02	4.946695e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.026866e+00	4.605544e-02	4.605544e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.045629e+00	6.140725e-02	5.970149e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.076333e+00	7.505330e-02	7.675906e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.113859e+00	9.211087e-02	9.211087e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.139446e+00	1.347548e-01	1.347548e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.166738e+00	2.081023e-01	2.081023e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d07-x01-y05
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d07-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.110448e+00	3.752665e-02	3.923241e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.096802e+00	4.264392e-02	4.264392e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.047335e+00	3.582090e-02	3.752665e-02
+4.504913e-02	5.160577e-03	5.160577e-03	1.014925e+00	3.240938e-02	3.240938e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.876333e-01	3.923241e-02	3.582090e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.535181e-01	3.582090e-02	3.411514e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.296375e-01	3.582090e-02	3.411514e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.296375e-01	3.411514e-02	3.411514e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.620469e-01	3.582090e-02	3.752665e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.944563e-01	4.434968e-02	4.264392e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.008102e+00	4.946695e-02	5.117271e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.773987e-01	4.605544e-02	4.605544e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.893390e-01	5.970149e-02	5.970149e-02
+4.498632e-01	5.153382e-02	5.153382e-02	9.978678e-01	7.505330e-02	7.505330e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.028571e+00	8.699360e-02	8.528785e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.055864e+00	1.296375e-01	1.279318e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.086567e+00	1.995736e-01	1.978678e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d07-x01-y02
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d07-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.219616e+00	3.752665e-02	1.057569e-01
+2.843201e-02	3.257012e-03	3.257012e-03	1.147974e+00	4.264392e-02	5.628998e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.030277e+00	3.070362e-02	4.434968e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.705757e-01	2.729211e-02	2.729211e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.552239e-01	3.240938e-02	3.240938e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.381663e-01	3.070362e-02	2.899787e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.108742e-01	3.070362e-02	3.070362e-02
+1.130952e-01	1.295555e-02	1.295555e-02	8.955224e-01	2.729211e-02	2.729211e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.466951e-01	3.240938e-02	3.240938e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.893390e-01	4.093817e-02	3.923241e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.037100e+00	5.117271e-02	5.117271e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.050746e+00	4.434968e-02	4.434968e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.059275e+00	5.970149e-02	5.799574e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.064392e+00	7.334755e-02	7.164179e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.088273e+00	8.528785e-02	8.528785e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.110448e+00	1.194030e-01	1.159915e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.132623e+00	1.791045e-01	1.808102e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d07-x01-y03
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d07-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.155260e+00	3.582090e-02	7.846482e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.112504e+00	3.923241e-02	4.434618e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.028810e+00	3.411164e-02	3.411514e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.775248e-01	2.899787e-02	2.900137e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.603552e-01	3.240938e-02	3.240938e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.329510e-01	2.899787e-02	3.070362e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.021353e-01	3.070362e-02	2.900137e-02
+1.130952e-01	1.295555e-02	1.295555e-02	8.952002e-01	2.729211e-02	2.900137e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.377320e-01	3.582790e-02	3.411164e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.683235e-01	4.093466e-02	3.753366e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.012561e+00	4.946345e-02	4.946345e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.012449e+00	4.434968e-02	4.434968e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.012337e+00	5.799574e-02	5.799223e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.025871e+00	7.334405e-02	7.163829e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.063286e+00	8.528434e-02	8.528434e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.093877e+00	1.211122e-01	1.211052e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.122763e+00	1.825230e-01	1.825160e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d05-x01-y04
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d05-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.244456e+02	3.275202e+00	1.401034e+01
+2.843201e-02	3.257012e-03	3.257012e-03	9.342479e+01	3.063304e+00	1.191336e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.783690e+01	-9.106933e-01	1.019583e+01
+4.504913e-02	5.160577e-03	5.160577e-03	5.230361e+01	1.376544e+00	6.669661e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.900484e+01	7.724681e-01	4.681564e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.908743e+01	5.760596e-01	3.059659e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.140429e+01	7.018247e-01	1.782993e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.463669e+01	2.898711e-01	1.009205e+00
+1.423585e-01	1.630780e-02	1.630780e-02	9.876280e+00	2.599273e-01	3.348113e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.575859e+00	8.710982e-02	1.328623e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.123346e+00	1.085196e-01	8.331038e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.418742e+00	1.859899e-01	6.537792e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.372305e+00	1.552026e-01	1.842285e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.998090e-01	1.113856e-01	1.891564e-02
+5.662652e-01	6.486819e-02	6.486819e-02	3.081782e-01	6.576581e-02	1.905977e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.089092e-01	2.605038e-02	1.065608e-02
+8.972195e-01	1.027805e-01	1.027805e-01	2.365577e-02	6.248428e-03	3.016540e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d05-x01-y05
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d05-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.187356e+02	3.893219e+00	1.336750e+01
+2.843201e-02	3.257012e-03	3.257012e-03	9.656341e+01	2.541389e+00	1.231359e+01
+3.578878e-02	4.099764e-03	4.099764e-03	7.249286e+01	1.907892e+00	9.244157e+00
+4.504913e-02	5.160577e-03	5.160577e-03	5.478651e+01	1.441890e+00	6.986275e+00
+5.670558e-02	6.495875e-03	6.495875e-03	4.004730e+01	7.931134e-01	4.806685e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.888560e+01	7.602210e-01	2.826275e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.083480e+01	5.483375e-01	1.886550e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.482880e+01	3.902695e-01	1.022451e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.027637e+01	2.035175e-01	3.483745e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.796776e+00	2.228594e-01	1.837150e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.094734e+00	1.342622e-01	1.106795e-01
+2.839237e-01	3.252472e-02	3.252472e-02	2.338743e+00	2.225942e-01	9.546125e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.300637e+00	1.470973e-01	6.214497e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.501266e-01	1.034778e-01	2.653644e-02
+5.662652e-01	6.486819e-02	6.486819e-02	2.843967e-01	5.919420e-02	1.160832e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.011772e-01	2.420095e-02	5.543506e-03
+8.972195e-01	1.027805e-01	1.027805e-01	2.197634e-02	5.804825e-03	1.672435e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d05-x01-y06
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d05-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.179117e+02	6.124809e+00	1.327474e+01
+2.843201e-02	3.257012e-03	3.257012e-03	9.213275e+01	1.824635e+00	1.174860e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.962936e+01	1.832529e+00	8.879009e+00
+4.504913e-02	5.160577e-03	5.160577e-03	5.192533e+01	1.028351e+00	6.621424e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.924259e+01	1.032800e+00	4.418011e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.985601e+01	7.857607e-01	3.140504e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.124948e+01	5.592512e-01	1.924098e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.492360e+01	2.955531e-01	1.028987e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.020506e+01	2.021053e-01	4.165434e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.615941e+00	1.741206e-01	1.336722e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.176233e+00	1.369344e-01	8.437893e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.433485e+00	2.316114e-01	3.266893e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.317709e+00	1.490280e-01	3.561730e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.719677e-01	1.069542e-01	2.742793e-02
+5.662652e-01	6.486819e-02	6.486819e-02	2.978973e-01	6.357184e-02	1.842393e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.066892e-01	2.497636e-02	8.119222e-03
+8.972195e-01	1.027805e-01	1.027805e-01	2.332861e-02	6.276094e-03	2.626383e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d05-x01-y07
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d05-x01-y07
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.066577e+02	6.212212e+00	1.280162e+01
+2.843201e-02	3.257012e-03	3.257012e-03	8.790538e+01	3.447352e+00	1.120953e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.960879e+01	2.282401e+00	9.401452e+00
+4.504913e-02	5.160577e-03	5.160577e-03	5.402882e+01	1.421949e+00	6.889657e+00
+5.670558e-02	6.495875e-03	6.495875e-03	4.083230e+01	1.074639e+00	4.596984e+00
+7.137813e-02	8.176681e-03	8.176681e-03	3.024788e+01	5.990417e-01	3.181725e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.240712e+01	4.437600e-01	2.028920e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.594787e+01	3.158383e-01	1.099611e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.068950e+01	2.116994e-01	3.623800e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.838205e+00	1.799702e-01	1.848348e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.038105e+00	1.062762e-01	1.368940e-01
+2.839237e-01	3.252472e-02	3.252472e-02	2.384587e+00	1.979918e-01	4.817952e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.317319e+00	1.411679e-01	4.465785e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.497426e-01	9.976180e-02	3.559943e-02
+5.662652e-01	6.486819e-02	6.486819e-02	2.749091e-01	5.576312e-02	1.895508e-02
+7.127862e-01	8.165282e-02	8.165282e-02	9.586503e-02	2.293031e-02	6.609927e-03
+8.972195e-01	1.027805e-01	1.027805e-01	2.041012e-02	5.590079e-03	2.911602e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d05-x01-y01
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d05-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.331441e+02	7.754895e+00	1.498964e+01
+2.843201e-02	3.257012e-03	3.257012e-03	1.026568e+02	4.025851e+00	1.309060e+01
+3.578878e-02	4.099764e-03	4.099764e-03	7.066843e+01	2.771377e+00	9.544568e+00
+4.504913e-02	5.160577e-03	5.160577e-03	5.234998e+01	1.377765e+00	6.283318e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.903943e+01	1.027453e+00	4.685715e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.834701e+01	9.294696e-01	2.773578e+00
+8.984721e-02	1.029240e-02	1.029240e-02	1.990822e+01	5.239513e-01	1.802649e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.398162e+01	2.768978e-01	9.640374e-01
+1.423585e-01	1.630780e-02	1.630780e-02	9.819346e+00	1.944664e-01	3.328812e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.581690e+00	1.303465e-01	1.329801e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.210386e+00	1.380543e-01	1.138056e-01
+2.839237e-01	3.252472e-02	3.252472e-02	2.469800e+00	2.201174e-01	8.372756e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.355327e+00	1.532825e-01	5.532082e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.865579e-01	1.092765e-01	3.761654e-02
+5.662652e-01	6.486819e-02	6.486819e-02	3.064016e-01	6.698836e-02	2.331766e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.097350e-01	2.735386e-02	1.073688e-02
+8.972195e-01	1.027805e-01	1.027805e-01	2.399460e-02	6.802620e-03	3.059747e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d05-x01-y02
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d05-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.304687e+02	4.277936e+00	1.468843e+01
+2.843201e-02	3.257012e-03	3.257012e-03	1.012670e+02	4.617929e+00	1.291338e+01
+3.578878e-02	4.099764e-03	4.099764e-03	7.159598e+01	2.347559e+00	9.129789e+00
+4.504913e-02	5.160577e-03	5.160577e-03	5.268464e+01	1.727476e+00	6.718249e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.902789e+01	1.279685e+00	4.393840e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.852822e+01	9.354114e-01	2.583174e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.057704e+01	6.747001e-01	1.714082e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.435530e+01	5.629662e-01	8.878261e-01
+1.423585e-01	1.630780e-02	1.630780e-02	1.014923e+01	2.009996e-01	3.440644e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.757594e+00	1.778487e-01	1.365342e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.209143e+00	1.650683e-01	8.504386e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.485588e+00	2.063779e-01	1.187624e-01
+3.573889e-01	4.094048e-02	4.094048e-02	1.391550e+00	1.491226e-01	6.648879e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.909468e-01	1.099750e-01	3.785701e-02
+5.662652e-01	6.486819e-02	6.486819e-02	3.002448e-01	6.407281e-02	2.070198e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.061055e-01	2.591624e-02	8.838669e-03
+8.972195e-01	1.027805e-01	1.027805e-01	2.289364e-02	6.270284e-03	2.577413e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d05-x01-y03
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d05-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.236551e+02	4.054525e+00	1.392134e+01
+2.843201e-02	3.257012e-03	3.257012e-03	9.791759e+01	3.210618e+00	1.322487e+01
+3.578878e-02	4.099764e-03	4.099764e-03	7.157483e+01	1.417498e+00	9.666987e+00
+4.504913e-02	5.160577e-03	5.160577e-03	5.302143e+01	7.023702e-01	6.761196e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.927738e+01	5.203041e-01	4.714276e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.833027e+01	3.752886e-01	2.980014e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.029846e+01	2.688919e-01	1.837985e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.435106e+01	1.901072e-01	9.895102e-01
+1.423585e-01	1.630780e-02	1.630780e-02	1.007880e+01	1.996048e-01	3.416769e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.666107e+00	1.320184e-01	4.459623e-02
+2.255601e-01	2.583891e-02	2.583891e-02	4.124564e+00	1.085517e-01	8.333499e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.435643e+00	2.170732e-01	6.583475e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.336583e+00	1.432322e-01	4.531088e-02
+4.498632e-01	5.153382e-02	5.153382e-02	6.636541e-01	9.813965e-02	3.636164e-02
+5.662652e-01	6.486819e-02	6.486819e-02	2.942117e-01	5.967849e-02	1.819599e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.053693e-01	2.520366e-02	7.265247e-03
+8.972195e-01	1.027805e-01	1.027805e-01	2.273478e-02	6.116337e-03	2.224457e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d07-x01-y01
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d07-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.241791e+00	7.675906e-02	1.006397e-01
+2.843201e-02	3.257012e-03	3.257012e-03	1.166738e+00	4.264392e-02	5.287846e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.016631e+00	3.240938e-02	5.458422e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.688699e-01	2.729211e-02	2.899787e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.620469e-01	3.240938e-02	3.070362e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.347548e-01	2.899787e-02	3.070362e-02
+8.984721e-02	1.029240e-02	1.029240e-02	8.869936e-01	2.899787e-02	3.070362e-02
+1.130952e-01	1.295555e-02	1.295555e-02	8.801706e-01	2.729211e-02	2.729211e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.194030e-01	3.070362e-02	3.070362e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.688699e-01	3.923241e-02	3.752665e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.038806e+00	5.117271e-02	5.628998e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.035394e+00	4.264392e-02	4.434968e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.033689e+00	5.628998e-02	5.628998e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.054158e+00	7.164179e-02	7.164179e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.105330e+00	8.699360e-02	8.528785e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.147974e+00	1.211087e-01	1.211087e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.185501e+00	1.859275e-01	1.842217e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d02-x01-y03
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d02-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.060427e+00	4.835147e-02	8.066197e-02
+3.111899e+00	4.448028e-01	4.448028e-01	7.593731e-01	2.489908e-02	1.025427e-01
+4.149868e+00	5.931660e-01	5.931660e-01	5.259578e-01	1.723710e-02	8.310537e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.667265e-01	7.252761e-03	5.794086e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.591359e-01	5.126359e-03	3.696700e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.782902e-01	3.528005e-03	2.408011e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.178563e-01	1.559283e-03	1.326631e-02
+1.750161e+01	2.501612e+00	2.501612e+00	7.738958e-02	2.035503e-03	5.333266e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.598072e-02	9.133926e-04	1.240207e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.521855e-02	6.654947e-04	5.079481e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.243175e-02	9.574827e-04	3.342430e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.363267e-03	7.931078e-04	2.186336e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.807938e-03	3.667662e-04	8.628876e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.139845e-04	1.011103e-04	2.850976e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d02-x01-y02
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d02-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.082172e+00	5.620095e-02	9.787647e-02
+3.111899e+00	4.448028e-01	4.448028e-01	7.801294e-01	2.557122e-02	1.053703e-01
+4.149868e+00	5.931660e-01	5.931660e-01	5.296360e-01	1.736623e-02	7.960729e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.668349e-01	9.650499e-03	5.796512e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.609467e-01	6.862007e-03	3.722532e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.795361e-01	3.552658e-03	2.425180e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.210777e-01	2.392569e-03	1.363344e-02
+1.750161e+01	2.501612e+00	2.501612e+00	7.845215e-02	2.063451e-03	5.969866e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.755382e-02	1.250762e-03	1.283729e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.625567e-02	6.905772e-04	7.092315e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.320452e-02	9.352602e-04	4.462671e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.658793e-03	8.367019e-04	1.916401e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.894893e-03	3.844063e-04	6.401896e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.281454e-04	1.045780e-04	2.643361e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d02-x01-y01
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d02-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.104364e+00	5.735343e-02	9.192080e-02
+3.111899e+00	4.448028e-01	4.448028e-01	7.961270e-01	3.122142e-02	1.075209e-01
+4.149868e+00	5.931660e-01	5.931660e-01	5.369019e-01	2.104972e-02	8.069251e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.620846e-01	9.531441e-03	5.720043e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.575661e-01	6.777314e-03	3.673977e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.772102e-01	3.509545e-03	2.392862e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.187150e-01	2.349131e-03	1.424954e-02
+1.750161e+01	2.501612e+00	2.501612e+00	7.640959e-02	5.116008e-04	5.806624e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.662557e-02	9.223709e-04	1.259206e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.608890e-02	5.165326e-04	5.263710e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.312064e-02	1.090481e-03	3.533672e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.660499e-03	8.371427e-04	1.527418e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.882857e-03	3.919056e-04	7.680944e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.197903e-04	1.025337e-04	2.001843e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d02-x01-y07
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d02-x01-y07
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	8.965473e-01	5.225189e-02	6.813706e-02
+3.111899e+00	4.448028e-01	4.448028e-01	6.593723e-01	3.008951e-02	8.899713e-02
+4.149868e+00	5.931660e-01	5.931660e-01	5.149349e-01	2.019401e-02	7.739433e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.837967e-01	1.258431e-02	5.768189e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.803887e-01	5.549865e-03	3.999882e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.968113e-01	3.896657e-03	2.658035e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.292349e-01	3.399843e-03	1.454873e-02
+1.750161e+01	2.501612e+00	2.501612e+00	8.099143e-02	2.130680e-03	6.162607e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.812075e-02	9.556399e-04	1.296824e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.535725e-02	5.037137e-04	3.388350e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.200991e-02	8.507102e-04	2.413540e-04
+5.534942e+01	7.911430e+00	7.911430e+00	4.978086e-03	7.077219e-04	1.342134e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.601571e-03	3.163608e-04	5.425715e-05
+9.843070e+01	1.406930e+01	1.406930e+01	3.642952e-04	8.897284e-05	3.564403e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d02-x01-y06
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d02-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	9.459489e-01	4.325784e-02	7.187449e-02
+3.111899e+00	4.448028e-01	4.448028e-01	7.145097e-01	1.887859e-02	9.104548e-02
+4.149868e+00	5.931660e-01	5.931660e-01	5.254914e-01	1.045023e-02	8.297726e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.591449e-01	9.489235e-03	5.670582e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.712768e-01	5.399230e-03	4.075002e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.878920e-01	4.961367e-03	2.536145e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.242034e-01	2.469984e-03	1.397227e-02
+1.750161e+01	2.501612e+00	2.501612e+00	7.835897e-02	1.556576e-03	5.958534e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.718170e-02	1.244826e-03	1.594579e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.453306e-02	8.064037e-04	8.285659e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.233818e-02	1.025829e-03	3.321522e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.430447e-03	7.722152e-04	1.834990e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.818430e-03	3.784792e-04	6.142513e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.163868e-04	1.037901e-04	1.986344e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d02-x01-y05
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d02-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.004750e+00	3.951620e-02	7.635434e-02
+3.111899e+00	4.448028e-01	4.448028e-01	7.243160e-01	1.914163e-02	9.773978e-02
+4.149868e+00	5.931660e-01	5.931660e-01	5.291663e-01	1.741090e-02	7.948227e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.789345e-01	1.001624e-02	5.689755e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.677624e-01	7.077663e-03	4.021522e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.793769e-01	4.739450e-03	2.285234e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.209704e-01	2.409665e-03	1.450587e-02
+1.750161e+01	2.501612e+00	2.501612e+00	7.943441e-02	2.100092e-03	6.034579e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.719565e-02	1.552090e-03	1.270539e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.470449e-02	4.918296e-04	4.967490e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.177903e-02	9.069066e-04	4.795554e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.081699e-03	7.514702e-04	1.368319e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.724473e-03	3.498034e-04	7.018781e-05
+9.843070e+01	1.406930e+01	1.406930e+01	3.975142e-04	1.010757e-04	2.174937e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d02-x01-y04
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d02-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.053074e+00	6.126362e-02	8.781754e-02
+3.111899e+00	4.448028e-01	4.448028e-01	7.441141e-01	1.966889e-02	1.004161e-01
+4.149868e+00	5.931660e-01	5.931660e-01	5.188399e-01	1.032933e-02	7.792454e-02
+5.534050e+00	7.910155e-01	7.910155e-01	3.641837e-01	7.244369e-03	5.471781e-02
+7.379923e+00	1.054857e+00	1.054857e+00	2.642935e-01	5.231284e-03	3.971971e-02
+9.841483e+00	1.406703e+00	1.406703e+00	1.867538e-01	6.123468e-03	2.241166e-02
+1.312409e+01	1.875907e+00	1.875907e+00	1.226306e-01	4.020272e-03	1.471801e-02
+1.750161e+01	2.501612e+00	2.501612e+00	7.685256e-02	2.021796e-03	5.845833e-03
+2.333925e+01	3.336021e+00	3.336021e+00	4.627465e-02	6.119756e-04	1.249995e-03
+3.112401e+01	4.448745e+00	4.448745e+00	2.521109e-02	3.334131e-04	5.089479e-04
+4.150537e+01	5.932616e+00	5.932616e+00	1.276400e-02	1.060055e-03	1.705583e-04
+5.534942e+01	7.911430e+00	7.911430e+00	5.617896e-03	7.987359e-04	1.513988e-04
+7.381112e+01	1.055027e+01	1.055027e+01	1.893773e-03	3.941608e-04	7.715558e-05
+9.843070e+01	1.406930e+01	1.406930e+01	4.222240e-04	1.031406e-04	2.607554e-05
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d03-x01-y02
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d03-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.188034e+00	4.957265e-02	9.059829e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.164103e+00	5.982906e-02	9.572650e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.063248e+00	2.735043e-02	3.760684e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.470085e-01	3.760684e-02	4.615385e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.384615e-01	2.564103e-02	2.564103e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.350427e-01	3.076923e-02	3.076923e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.247863e-01	2.735043e-02	2.905983e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.333333e-01	3.247863e-02	3.247863e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.367521e-01	3.247863e-02	2.905983e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.675214e-01	3.418803e-02	3.589744e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.931624e-01	3.760684e-02	3.931624e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.005128e+00	3.760684e-02	4.102564e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.032479e+00	5.128205e-02	5.128205e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.073504e+00	5.470085e-02	5.811966e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.121368e+00	7.521368e-02	7.350427e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.152137e+00	1.128205e-01	1.128205e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.172650e+00	1.726496e-01	1.743590e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d03-x01-y03
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d03-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.147503e+00	3.751966e-02	7.675557e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.149320e+00	4.093817e-02	5.969800e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.045381e+00	2.729211e-02	3.240589e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.738509e-01	2.899787e-02	3.070362e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.466706e-01	2.558635e-02	2.558635e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.280192e-01	3.069663e-02	3.240589e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.161907e-01	2.899787e-02	2.899437e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.231256e-01	2.899787e-02	3.070362e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.283547e-01	3.069663e-02	3.070362e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.608759e-01	3.582090e-02	3.582439e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.797511e-01	3.923241e-02	3.752665e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.798665e-01	3.752665e-02	3.752316e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.816806e-01	4.946695e-02	4.776119e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.019319e+00	5.629347e-02	5.458422e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.085955e+00	7.164179e-02	7.164878e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.147478e+00	1.125835e-01	1.091649e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.197057e+00	1.756965e-01	1.773917e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d03-x01-y01
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d03-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.228145e+00	4.605544e-02	7.505330e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.163326e+00	4.264392e-02	7.505330e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.054158e+00	2.558635e-02	4.434968e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.773987e-01	2.899787e-02	2.729211e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.398721e-01	2.558635e-02	2.388060e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.040512e-01	3.070362e-02	2.899787e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.023454e-01	2.729211e-02	2.729211e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.125800e-01	3.070362e-02	3.070362e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.159915e-01	2.899787e-02	2.899787e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.586354e-01	3.411514e-02	3.582090e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.927505e-01	3.752665e-02	3.752665e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.011514e+00	3.923241e-02	3.582090e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.033689e+00	5.117271e-02	5.117271e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.057569e+00	5.628998e-02	5.628998e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.096802e+00	7.334755e-02	7.334755e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.134328e+00	1.108742e-01	1.091684e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.163326e+00	1.705757e-01	1.688699e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d03-x01-y06
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d03-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.078038e+00	3.923241e-02	3.923241e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.081450e+00	6.481876e-02	5.628998e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.021748e+00	3.582090e-02	3.411514e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.535181e-01	3.582090e-02	3.582090e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.603412e-01	3.411514e-02	3.240938e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.791045e-01	3.923241e-02	4.093817e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.705757e-01	3.752665e-02	3.752665e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.552239e-01	4.264392e-02	4.264392e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.398721e-01	3.923241e-02	4.093817e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.876333e-01	4.605544e-02	4.434968e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.020043e+00	4.605544e-02	4.946695e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.808102e-01	4.264392e-02	4.093817e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.484009e-01	5.628998e-02	6.652452e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.002985e+00	6.481876e-02	6.311301e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.091684e+00	8.187633e-02	8.017058e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.163326e+00	1.364606e-01	1.313433e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.216205e+00	2.063966e-01	2.046908e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d03-x01-y04
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d03-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.158209e+00	4.434968e-02	5.458422e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.107036e+00	3.923241e-02	6.823028e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.030277e+00	2.729211e-02	2.729211e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.586354e-01	2.899787e-02	3.070362e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.398721e-01	2.729211e-02	2.729211e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.330490e-01	3.240938e-02	3.240938e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.552239e-01	3.240938e-02	2.899787e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.569296e-01	3.411514e-02	3.411514e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.330490e-01	3.240938e-02	3.070362e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.501066e-01	3.582090e-02	3.582090e-02
+2.255601e-01	2.583891e-02	2.583891e-02	9.722814e-01	3.923241e-02	4.093817e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.705757e-01	3.752665e-02	3.752665e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.859275e-01	4.946695e-02	4.946695e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.045629e+00	5.799574e-02	5.799574e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.124094e+00	7.675906e-02	7.505330e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.194030e+00	1.211087e-01	1.194030e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.245203e+00	1.927505e-01	1.893390e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d03-x01-y05
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d03-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.085912e+00	5.288197e-02	5.287846e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.102858e+00	4.093116e-02	5.629348e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.031104e+00	2.899787e-02	3.070713e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.917593e-01	3.411514e-02	3.411514e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.745897e-01	3.240938e-02	3.241639e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.301279e-01	3.582440e-02	3.752315e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.197813e-01	3.240938e-02	3.240938e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.401383e-01	3.582090e-02	3.753016e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.349089e-01	3.752665e-02	3.411164e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.825580e-01	4.093817e-02	4.093817e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.002915e+00	4.264042e-02	4.264392e-02
+2.839237e-01	3.252472e-02	3.252472e-02	9.601590e-01	4.264392e-02	4.264392e-02
+3.573889e-01	4.094048e-02	4.094048e-02	9.446951e-01	5.116921e-02	4.946345e-02
+4.498632e-01	5.153382e-02	5.153382e-02	9.445830e-01	5.629348e-02	5.628998e-02
+5.662652e-01	6.486819e-02	6.486819e-02	9.768803e-01	6.993603e-02	7.163829e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.016001e+00	1.142892e-01	1.159880e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.050004e+00	1.773952e-01	1.756965e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d07-x01-y06
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d07-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	1.098448e+00	5.287496e-02	5.288897e-02
+2.843201e-02	3.257012e-03	3.257012e-03	1.050575e+00	4.435669e-02	4.605894e-02
+3.578878e-02	4.099764e-03	4.099764e-03	1.002701e+00	3.923241e-02	3.923241e-02
+4.504913e-02	5.160577e-03	5.160577e-03	9.599454e-01	3.752665e-02	3.923591e-02
+5.670558e-02	6.495875e-03	6.495875e-03	9.615390e-01	4.093466e-02	4.264392e-02
+7.137813e-02	8.176681e-03	8.176681e-03	9.904248e-01	3.923241e-02	3.752665e-02
+8.984721e-02	1.029240e-02	1.029240e-02	9.459631e-01	3.582090e-02	3.752665e-02
+1.130952e-01	1.295555e-02	1.295555e-02	9.339107e-01	3.581739e-02	3.582090e-02
+1.423585e-01	1.630780e-02	1.630780e-02	9.593849e-01	3.923241e-02	3.922891e-02
+1.791937e-01	2.052744e-02	2.052744e-02	9.729189e-01	4.776470e-02	4.776119e-02
+2.255601e-01	2.583891e-02	2.583891e-02	1.027391e+00	5.628998e-02	5.798873e-02
+2.839237e-01	3.252472e-02	3.252472e-02	1.011927e+00	5.458072e-02	5.628648e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.004992e+00	6.310950e-02	6.140375e-02
+4.498632e-01	5.153382e-02	5.153382e-02	1.030463e+00	8.187283e-02	8.358559e-02
+5.662652e-01	6.486819e-02	6.486819e-02	1.079818e+00	1.057639e-01	1.074627e-01
+7.127862e-01	8.165282e-02	8.165282e-02	1.113821e+00	1.466951e-01	1.466986e-01
+8.972195e-01	1.027805e-01	1.027805e-01	1.151239e+00	2.115104e-01	2.115069e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d01-x01-y01
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d01-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	9.790918e+01	5.710681e+00	1.103967e+01
+2.843201e-02	3.257012e-03	3.257012e-03	8.509899e+01	3.886142e+00	1.215859e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.217656e+01	1.638725e+00	9.838882e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.697088e+01	9.315663e-01	7.432720e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.478011e+01	6.897885e-01	5.235545e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.592585e+01	5.141834e-01	3.704177e+00
+8.984721e-02	1.029240e-02	1.029240e-02	1.932570e+01	3.832836e-01	2.614183e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.412009e+01	2.800415e-01	1.697366e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.011206e+01	2.005510e-01	7.707017e-01
+1.791937e-01	2.052744e-02	2.052744e-02	7.050866e+00	1.398387e-01	2.882233e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.660639e+00	1.228358e-01	6.265923e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.881701e+00	9.462277e-02	9.783527e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.677849e+00	1.700146e-01	5.696385e-02
+4.498632e-01	5.153382e-02	5.153382e-02	8.897284e-01	1.164098e-01	4.257467e-02
+5.662652e-01	6.486819e-02	6.486819e-02	4.239970e-01	9.281664e-02	2.326541e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.653749e-01	4.534985e-02	1.260422e-02
+8.972195e-01	1.027805e-01	1.027805e-01	3.988227e-02	1.035101e-02	3.908159e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d01-x01-y02
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d01-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	9.331657e+01	3.064118e+00	1.191787e+01
+2.843201e-02	3.257012e-03	3.257012e-03	8.442275e+01	3.315480e+00	1.270839e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.293056e+01	2.066371e+00	9.473111e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.536950e+01	1.489741e+00	7.179315e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.473489e+01	9.154726e-01	5.496484e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.677120e+01	7.055816e-01	3.824956e+00
+8.984721e-02	1.029240e-02	1.029240e-02	1.995584e+01	5.259560e-01	2.548648e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.438707e+01	2.853365e-01	1.729460e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.030326e+01	2.043430e-01	8.595642e-01
+1.791937e-01	2.052744e-02	2.052744e-02	7.088877e+00	1.405926e-01	2.897771e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.654580e+00	1.226761e-01	9.418145e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.877955e+00	9.449976e-02	9.770807e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.664516e+00	1.485528e-01	6.804160e-02
+4.498632e-01	5.153382e-02	5.153382e-02	9.005179e-01	1.125776e-01	4.309096e-02
+5.662652e-01	6.486819e-02	6.486819e-02	4.320139e-01	9.457160e-02	2.370531e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.673804e-01	4.589980e-02	1.155823e-02
+8.972195e-01	1.027805e-01	1.027805e-01	4.009728e-02	1.040681e-02	3.345172e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d01-x01-y03
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d01-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	9.013512e+01	2.959653e+00	1.083508e+01
+2.843201e-02	3.257012e-03	3.257012e-03	8.319450e+01	2.731753e+00	1.188648e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.160228e+01	8.172153e-01	9.273161e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.653705e+01	9.229621e-01	7.364069e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.492214e+01	4.632769e-01	5.256926e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.655846e+01	3.523243e-01	3.592557e+00
+8.984721e-02	1.029240e-02	1.029240e-02	1.927548e+01	-2.591462e-01	2.901591e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.427274e+01	1.893421e-01	1.715716e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.015336e+01	1.346944e-01	7.738492e-01
+1.791937e-01	2.052744e-02	2.052744e-02	7.032545e+00	1.853497e-01	2.387586e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.556335e+00	1.496106e-01	9.219355e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.798460e+00	7.375621e-02	7.575275e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.586439e+00	1.607521e-01	6.484998e-02
+4.498632e-01	5.153382e-02	5.153382e-02	8.525655e-01	1.065829e-01	4.079638e-02
+5.662652e-01	6.486819e-02	6.486819e-02	4.145081e-01	8.857027e-02	2.274473e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.649452e-01	4.523201e-02	1.257147e-02
+8.972195e-01	1.027805e-01	1.027805e-01	4.085543e-02	1.120356e-02	3.704978e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d01-x01-y04
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d01-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	9.122817e+01	2.404409e+00	1.096648e+01
+2.843201e-02	3.257012e-03	3.257012e-03	8.035814e+01	2.638619e+00	1.148123e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.070604e+01	1.203974e+00	9.138247e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.585999e+01	1.208686e+00	6.903430e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.464463e+01	6.871017e-01	5.482202e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.670163e+01	5.295694e-01	3.815017e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.044277e+01	6.712534e-01	2.765290e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.473812e+01	3.884379e-01	1.771660e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.027649e+01	2.038120e-01	8.573306e-01
+1.791937e-01	2.052744e-02	2.052744e-02	6.976660e+00	1.383670e-01	3.338423e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.550411e+00	9.024761e-02	6.117730e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.776222e+00	7.317011e-02	7.515078e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.594991e+00	1.616187e-01	5.415078e-02
+4.498632e-01	5.153382e-02	5.153382e-02	8.803646e-01	1.151846e-01	2.383097e-02
+5.662652e-01	6.486819e-02	6.486819e-02	4.337782e-01	9.721272e-02	1.472700e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.726133e-01	4.816855e-02	7.056039e-03
+8.972195e-01	1.027805e-01	1.027805e-01	4.275476e-02	1.151651e-02	1.747717e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d01-x01-y05
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d01-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	8.579548e+01	2.261225e+00	1.031342e+01
+2.843201e-02	3.257012e-03	3.257012e-03	8.025367e+01	2.115165e+00	1.146631e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.103330e+01	1.608594e+00	9.187511e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.767258e+01	1.565364e+00	7.543757e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.601395e+01	9.491834e-01	5.978348e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.684558e+01	7.075421e-01	3.631396e+00
+8.984721e-02	1.029240e-02	1.029240e-02	1.987811e+01	5.239073e-01	2.538721e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.452370e+01	2.880463e-01	1.745884e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.033189e+01	2.049108e-01	7.874559e-01
+1.791937e-01	2.052744e-02	2.052744e-02	7.204143e+00	1.898724e-01	2.944889e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.698784e+00	1.542880e-01	1.595262e-01
+2.839237e-01	3.252472e-02	3.252472e-02	2.754161e+00	9.043490e-02	7.455359e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.540613e+00	1.374949e-01	6.297673e-02
+4.498632e-01	5.153382e-02	5.153382e-02	8.007524e-01	1.047684e-01	3.831705e-02
+5.662652e-01	6.486819e-02	6.486819e-02	3.790563e-01	8.297872e-02	2.079944e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.478463e-01	4.054308e-02	1.126826e-02
+8.972195e-01	1.027805e-01	1.027805e-01	3.613439e-02	9.378283e-03	3.540894e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d01-x01-y06
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d01-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	8.454726e+01	3.860946e+00	1.079790e+01
+2.843201e-02	3.257012e-03	3.257012e-03	7.803692e+01	2.562400e+00	1.174711e+01
+3.578878e-02	4.099764e-03	4.099764e-03	6.054830e+01	1.988148e+00	9.114502e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.574082e+01	9.071707e-01	7.238074e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.548999e+01	9.353739e-01	5.615971e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.809361e+01	7.404350e-01	3.800216e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.080222e+01	5.482632e-01	2.813912e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.469983e+01	2.915394e-01	1.767056e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.031846e+01	2.046444e-01	8.608319e-01
+1.791937e-01	2.052744e-02	2.052744e-02	7.194778e+00	1.896255e-01	3.442795e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.755765e+00	1.561590e-01	1.614607e-01
+2.839237e-01	3.252472e-02	3.252472e-02	2.806236e+00	9.214482e-02	7.596323e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.538610e+00	1.742486e-01	9.529994e-02
+4.498632e-01	5.153382e-02	5.153382e-02	8.435928e-01	1.103735e-01	2.283558e-02
+5.662652e-01	6.486819e-02	6.486819e-02	4.184446e-01	9.160117e-02	2.002312e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.676272e-01	4.677715e-02	8.021183e-03
+8.972195e-01	1.027805e-01	1.027805e-01	4.151975e-02	1.138573e-02	4.068618e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d01-x01-y07
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d01-x01-y07
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.258750e-02	2.587498e-03	2.587498e-03	7.793547e+01	3.559011e+00	9.953482e+00
+2.843201e-02	3.257012e-03	3.257012e-03	7.241619e+01	2.843954e+00	1.090101e+01
+3.578878e-02	4.099764e-03	4.099764e-03	5.887585e+01	1.551732e+00	8.862743e+00
+4.504913e-02	5.160577e-03	5.160577e-03	4.754871e+01	1.253194e+00	7.893129e+00
+5.670558e-02	6.495875e-03	6.495875e-03	3.689271e+01	9.723441e-01	5.553561e+00
+7.137813e-02	8.176681e-03	8.176681e-03	2.862480e+01	7.544350e-01	4.089790e+00
+8.984721e-02	1.029240e-02	1.029240e-02	2.148050e+01	5.661401e-01	2.743370e+00
+1.130952e-01	1.295555e-02	1.295555e-02	1.548627e+01	5.085031e-01	1.746141e+00
+1.423585e-01	1.630780e-02	1.630780e-02	1.094333e+01	1.451741e-01	9.129625e-01
+1.791937e-01	2.052744e-02	2.052744e-02	7.330815e+00	2.407127e-01	2.996669e-01
+2.255601e-01	2.583891e-02	2.583891e-02	4.624402e+00	1.218807e-01	9.357083e-02
+2.839237e-01	3.252472e-02	3.252472e-02	2.840267e+00	7.485806e-02	5.747037e-02
+3.573889e-01	4.094048e-02	4.094048e-02	1.610138e+00	1.534592e-01	5.466505e-02
+4.498632e-01	5.153382e-02	5.153382e-02	8.368892e-01	1.094964e-01	4.004625e-02
+5.662652e-01	6.486819e-02	6.486819e-02	3.831542e-01	8.187072e-02	1.833443e-02
+7.127862e-01	8.165282e-02	8.165282e-02	1.445375e-01	3.963573e-02	7.931011e-03
+8.972195e-01	1.027805e-01	1.027805e-01	3.416576e-02	8.867348e-03	5.143066e-03
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d10-x01-y03
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d10-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.203480e+00	3.403537e-02	6.296795e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.162769e+00	3.404974e-02	4.595026e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.035249e+00	2.553191e-02	2.723404e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.690062e-01	2.042553e-02	2.042194e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.385079e-01	2.212407e-02	2.382979e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.080061e-01	2.212766e-02	2.553551e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.234653e-01	2.382979e-02	2.553191e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.508394e-01	2.383697e-02	2.212407e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.680007e-01	2.553191e-02	2.553191e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.868642e-01	3.403896e-02	3.404614e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.019345e+00	4.085465e-02	4.084747e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.060336e+00	5.106383e-02	5.106742e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.111540e+00	8.000000e-02	7.829428e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.154233e+00	1.412766e-01	1.429751e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d04-x01-y05
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d04-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.120607e+00	3.411514e-02	3.923241e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.096590e+00	2.558995e-02	2.558276e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.028220e+00	2.388060e-02	2.387701e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.922586e-01	2.388419e-02	2.387701e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.545919e-01	2.217484e-02	2.388060e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.066906e-01	2.387701e-02	2.387701e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.389599e-01	2.900146e-02	2.559354e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.797581e-01	2.558635e-02	2.899787e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.762101e-01	3.412232e-02	3.411514e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.624204e-01	2.900146e-02	3.070362e-02
+4.150537e+01	5.932616e+00	5.932616e+00	9.759300e-01	3.923600e-02	3.752665e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.011607e+00	5.799574e-02	5.629357e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.066051e+00	7.846123e-02	7.846841e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.091501e+00	1.381699e-01	1.279354e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d04-x01-y04
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d04-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.180384e+00	3.411514e-02	5.287846e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.127505e+00	2.558635e-02	2.558635e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.014925e+00	2.217484e-02	2.217484e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.535181e-01	2.217484e-02	2.046908e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.449893e-01	2.388060e-02	2.388060e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.449893e-01	2.217484e-02	2.217484e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.535181e-01	2.388060e-02	2.388060e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.501066e-01	2.558635e-02	2.558635e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.552239e-01	3.070362e-02	3.070362e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.876333e-01	2.899787e-02	3.070362e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.055864e+00	4.093817e-02	4.093817e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.125800e+00	5.970149e-02	5.799574e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.173561e+00	7.846482e-02	8.017058e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.171855e+00	1.279318e-01	1.296375e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d04-x01-y06
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d04-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.054158e+00	3.411514e-02	3.582090e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.076333e+00	2.729211e-02	2.899787e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.026866e+00	2.899787e-02	2.729211e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.381663e-01	2.388060e-02	3.240938e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.688699e-01	2.729211e-02	2.388060e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.501066e-01	2.729211e-02	2.729211e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.620469e-01	2.729211e-02	2.558635e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.688699e-01	3.240938e-02	3.240938e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.791045e-01	3.411514e-02	3.411514e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.620469e-01	3.411514e-02	3.752665e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.020043e+00	4.776119e-02	4.605544e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.083156e+00	6.652452e-02	6.823028e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.118977e+00	9.211087e-02	9.381663e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.144563e+00	1.449893e-01	1.484009e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d04-x01-y01
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d04-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.240010e+00	3.411514e-02	7.847202e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.209166e+00	4.777919e-02	5.289646e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.048684e+00	2.558995e-02	3.071082e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.496136e-01	2.046548e-02	2.388420e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.170639e-01	2.046908e-02	2.046908e-02
+9.841483e+00	1.406703e+00	1.406703e+00	8.981602e-01	2.217484e-02	2.046908e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.184889e-01	2.046908e-02	2.217844e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.439349e-01	2.387700e-02	2.388420e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.659694e-01	2.899787e-02	3.071082e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.025531e+00	2.728851e-02	2.729571e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.088507e+00	4.093457e-02	4.093457e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.125893e+00	5.458782e-02	5.629358e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.164985e+00	7.675906e-02	7.506050e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.158022e+00	1.245239e-01	1.245167e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d10-x01-y04
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d10-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.180384e+00	3.411514e-02	5.458422e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.117271e+00	2.217484e-02	2.558635e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.002985e+00	2.388060e-02	2.388060e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.518124e-01	1.876333e-02	2.217484e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.518124e-01	2.729211e-02	2.217484e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.398721e-01	2.388060e-02	2.388060e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.484009e-01	2.729211e-02	2.729211e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.586354e-01	2.388060e-02	2.558635e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.739872e-01	2.729211e-02	2.558635e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.995736e-01	3.752665e-02	3.752665e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.062687e+00	4.434968e-02	4.264392e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.118977e+00	5.628998e-02	5.799574e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.154797e+00	8.187633e-02	8.017058e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.158209e+00	1.381663e-01	1.381663e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d04-x01-y03
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d04-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.190618e+00	3.411514e-02	6.140725e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.151386e+00	3.240938e-02	4.434968e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.023454e+00	1.876333e-02	3.070362e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.620469e-01	2.388060e-02	2.046908e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.211087e-01	2.217484e-02	2.217484e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.023454e-01	2.217484e-02	2.046908e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.159915e-01	2.217484e-02	2.217484e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.518124e-01	2.558635e-02	2.558635e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.518124e-01	3.240938e-02	2.899787e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.825160e-01	2.899787e-02	3.070362e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.025160e+00	3.923241e-02	4.093817e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.071215e+00	5.458422e-02	5.628998e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.124094e+00	7.505330e-02	7.675906e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.146269e+00	1.262260e-01	1.279318e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d04-x01-y02
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d04-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.215226e+00	3.240938e-02	9.040152e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.184663e+00	3.582449e-02	5.627918e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.032991e+00	2.217484e-02	3.582449e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.649042e-01	2.047268e-02	2.217124e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.360431e-01	2.216764e-02	2.217484e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.140086e-01	2.217124e-02	2.046908e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.431468e-01	2.217844e-02	2.217484e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.705793e-01	2.388420e-02	2.388420e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.826599e-01	3.071082e-02	3.070003e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.033973e+00	2.728851e-02	3.411874e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.098932e+00	4.093817e-02	3.922881e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.138305e+00	5.629358e-02	5.629358e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.184497e+00	7.675906e-02	7.506050e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.189755e+00	1.245203e-01	1.228109e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d10-x01-y05
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d10-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.134328e+00	3.070362e-02	4.093817e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.095096e+00	2.217484e-02	2.388060e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.038806e+00	2.558635e-02	2.388060e-02
+5.534050e+00	7.910155e-01	7.910155e-01	1.002985e+00	2.217484e-02	2.388060e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.739872e-01	2.729211e-02	2.558635e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.194030e-01	2.558635e-02	2.217484e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.364606e-01	2.729211e-02	2.729211e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.756930e-01	2.729211e-02	2.558635e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.876333e-01	2.899787e-02	3.070362e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.773987e-01	3.752665e-02	3.582090e-02
+4.150537e+01	5.932616e+00	5.932616e+00	9.910448e-01	4.264392e-02	4.605544e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.016631e+00	5.117271e-02	5.628998e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.076333e+00	8.017058e-02	8.187633e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.125800e+00	1.603412e-01	1.415778e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d08-x01-y01
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d08-x01-y01
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.253731e+00	3.070362e-02	7.334755e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.258849e+00	6.140725e-02	5.287846e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.100213e+00	2.558635e-02	2.558635e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.671642e-01	2.046908e-02	3.070362e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.381663e-01	2.388060e-02	2.217484e-02
+9.841483e+00	1.406703e+00	1.406703e+00	8.938166e-01	2.217484e-02	2.046908e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.108742e-01	2.388060e-02	2.388060e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.313433e-01	2.388060e-02	2.388060e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.671642e-01	2.899787e-02	3.070362e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.020043e+00	3.752665e-02	3.752665e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.078038e+00	4.776119e-02	4.776119e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.115565e+00	6.311301e-02	6.140725e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.146269e+00	9.040512e-02	9.040512e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.151386e+00	1.603412e-01	1.603412e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d10-x01-y02
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d10-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.237404e+00	3.582090e-02	9.039072e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.196606e+00	3.070362e-02	5.456263e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.041519e+00	2.388060e-02	3.582449e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.683121e-01	1.876333e-02	2.046908e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.445719e-01	2.046548e-02	2.217844e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.088913e-01	2.217484e-02	2.046548e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.295008e-01	2.558276e-02	2.557916e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.688735e-01	2.388060e-02	2.217484e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.928945e-01	2.559355e-02	2.388060e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.047619e+00	3.412234e-02	3.581730e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.098932e+00	4.434608e-02	4.265112e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.119542e+00	5.287487e-02	5.458422e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.169145e+00	8.186914e-02	8.188713e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.235810e+00	1.466951e-01	1.449929e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d08-x01-y03
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d08-x01-y03
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.200853e+00	3.070362e-02	6.311301e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.188913e+00	4.264392e-02	4.605544e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.072921e+00	2.558635e-02	2.558635e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.739872e-01	2.217484e-02	2.388060e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.484009e-01	2.388060e-02	2.388060e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.091684e-01	2.217484e-02	2.217484e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.245203e-01	2.558635e-02	2.558635e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.569296e-01	2.558635e-02	2.558635e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.791045e-01	3.070362e-02	2.899787e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.995736e-01	3.752665e-02	3.752665e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.026866e+00	4.434968e-02	4.776119e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.057569e+00	5.628998e-02	5.970149e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.103625e+00	9.211087e-02	9.040512e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.161620e+00	1.671642e-01	1.654584e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d08-x01-y02
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d08-x01-y02
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.273468e+00	2.729223e-02	9.553361e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.242624e+00	4.093835e-02	5.970536e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.083848e+00	2.900160e-02	2.900160e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.711271e-01	2.046918e-02	2.388790e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.419923e-01	2.388070e-02	2.216774e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.009136e-01	2.217854e-02	2.047277e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.161251e-01	2.388070e-02	2.388070e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.569231e-01	2.388430e-02	2.558287e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.926039e-01	2.899800e-02	2.899800e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.045342e+00	3.922899e-02	3.923259e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.081023e+00	4.434628e-02	4.776141e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.099646e+00	6.140753e-02	6.140393e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.133625e+00	9.211129e-02	9.381345e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.171011e+00	1.671649e-01	1.654592e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d08-x01-y05
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d08-x01-y05
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.138462e+00	3.076923e-02	3.931624e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.117949e+00	3.076923e-02	2.905983e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.066667e+00	2.735043e-02	2.735043e-02
+5.534050e+00	7.910155e-01	7.910155e-01	1.006838e+00	2.393162e-02	2.393162e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.794872e-01	2.735043e-02	2.905983e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.264957e-01	2.393162e-02	2.564103e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.452991e-01	2.905983e-02	2.735043e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.846154e-01	3.076923e-02	2.735043e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.829060e-01	3.247863e-02	3.247863e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.794872e-01	3.931624e-02	3.760684e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.013675e+00	5.128205e-02	5.128205e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.034188e+00	6.324786e-02	6.153846e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.056410e+00	9.401709e-02	9.401709e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.037607e+00	1.589744e-01	1.589744e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d08-x01-y04
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d08-x01-y04
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.193162e+00	3.076923e-02	5.641026e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.147009e+00	3.076923e-02	2.905983e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.039316e+00	2.564103e-02	2.735043e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.555556e-01	2.222222e-02	2.222222e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.487179e-01	2.564103e-02	2.564103e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.418803e-01	2.393162e-02	2.222222e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.470085e-01	2.735043e-02	2.735043e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.606838e-01	2.735043e-02	2.564103e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.743590e-01	3.076923e-02	3.076923e-02
+3.112401e+01	4.448745e+00	4.448745e+00	1.008547e+00	3.931624e-02	4.102564e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.054701e+00	4.786325e-02	4.957265e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.105983e+00	6.324786e-02	6.495726e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.145299e+00	9.743590e-02	9.572650e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.131624e+00	1.623932e-01	1.606838e-01
+END YODA_SCATTER2D
+
+BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1300152_GRIDSUB2/d08-x01-y06
+Path=/REF/ATLAS_2014_I1300152_GRIDSUB2/d08-x01-y06
+Title=
+Type=Scatter2D
+# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
+2.333548e+00	3.335483e-01	3.335483e-01	1.061538e+00	2.905983e-02	3.076923e-02
+3.111899e+00	4.448028e-01	4.448028e-01	1.083761e+00	3.076923e-02	3.247863e-02
+4.149868e+00	5.931660e-01	5.931660e-01	1.046154e+00	3.418803e-02	3.247863e-02
+5.534050e+00	7.910155e-01	7.910155e-01	9.264957e-01	2.735043e-02	3.760684e-02
+7.379923e+00	1.054857e+00	1.054857e+00	9.641026e-01	2.735043e-02	2.735043e-02
+9.841483e+00	1.406703e+00	1.406703e+00	9.452991e-01	2.735043e-02	3.076923e-02
+1.312409e+01	1.875907e+00	1.875907e+00	9.692308e-01	3.418803e-02	2.905983e-02
+1.750161e+01	2.501612e+00	2.501612e+00	9.709402e-01	3.247863e-02	2.735043e-02
+2.333925e+01	3.336021e+00	3.336021e+00	9.777778e-01	3.418803e-02	3.418803e-02
+3.112401e+01	4.448745e+00	4.448745e+00	9.692308e-01	4.444444e-02	4.444444e-02
+4.150537e+01	5.932616e+00	5.932616e+00	1.011966e+00	5.470085e-02	5.299145e-02
+5.534942e+01	7.911430e+00	7.911430e+00	1.046154e+00	6.666667e-02	6.666667e-02
+7.381112e+01	1.055027e+01	1.055027e+01	1.066667e+00	1.008547e-01	9.914530e-02
+9.843070e+01	1.406930e+01	1.406930e+01	1.082051e+00	1.692308e-01	1.675214e-01
+END YODA_SCATTER2D
+
Index: trunk/code/ALICE_2012_I1210881.cc
===================================================================
--- trunk/code/ALICE_2012_I1210881.cc	(revision 451)
+++ trunk/code/ALICE_2012_I1210881.cc	(revision 452)
@@ -1,101 +1,99 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "Rivet/Projections/VisibleFinalState.hh"
 #include "Rivet/Tools/Logging.hh"
-#include "Rivet/RivetAIDA.hh"
 #include "Rivet/Tools/ParticleIdUtils.hh"
 #include <boost/lexical_cast.hpp>
 namespace Rivet {
 
 
   /// @brief jet pt spectrum
   class ALICE_2012_I1210881 : public Analysis {
   public:
 
     /// Constructor
     ALICE_2012_I1210881()
       : Analysis("ALICE_2012_I1210881")
     {
-      setBeams(PROTON, PROTON);
       setNeedsCrossSection(true);
     }
 
     /// Book projections and histograms
     void init() {
       VisibleFinalState vfs(-0.9, 0.9, 0.0*GeV);
 
 	addProjection(vfs, "VFS");
       addProjection(FastJets(vfs, FastJets::ANTIKT, 0.2), "Jets1");
       addProjection(FastJets(vfs, FastJets::ANTIKT, 0.4), "Jets2");
 
-      pt_02 = bookHistogram1D(1, 1, 1);
-      pt_04 = bookHistogram1D(1, 1, 2);
+      pt_02 = bookHisto1D(1, 1, 1);
+      pt_04 = bookHisto1D(1, 1, 2);
+      _s_ratio = bookScatter2D(2, 1, 1);
     }
 
 
     /// Do the analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
-	const double centrality = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
+	const double centrality = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
       const FastJets& fastjets1 = applyProjection<FastJets>(event, "Jets1");
       const Jets alljets1 = fastjets1.jetsByPt();
 
 //	if (centrality > 0.) return;
 
       Jets jets1;
       foreach (Jet jet, alljets1) {
         if (fabs(jet.momentum().eta())<0.5 && jet.momentum().Et()>20.)
           jets1.push_back(jet);
       }
 
       const FastJets& fastjets2 = applyProjection<FastJets>(event, "Jets2");
       const Jets alljets2 = fastjets2.jetsByPt();
       Jets jets2;
       foreach (Jet jet, alljets2) {
         if (fabs(jet.momentum().eta())<0.5 && jet.momentum().Et()>20.)
           jets2.push_back(jet);
       }
 
       if (jets1.size() > 0) {
 	  foreach (Jet jet, jets1){
           const double pT = jet.momentum().pT() / GeV;
 	    if (centrality<0.) pt_02->fill(pT,weight);
 	  }
 	}
 	  
       if (jets2.size() > 0) {
 	  foreach (Jet jet, jets2){
           const double pT = jet.momentum().pT() / GeV;
 	    if (centrality<0.) pt_04->fill(pT,weight);
 	  }	  
 	}
 		
     }
 	
 	
     /// Finalize
     void finalize() {
-//      AIDA::IHistogramFactory& hf = histogramFactory();
-//      const string dir = histoDir();
-//
-//      hf.divide(dir + "/d02-x01-y01", *pt_02, *pt_04);
-
       scale(pt_02,crossSection()/(millibarn*1.*sumOfWeights()));
       scale(pt_04,crossSection()/(millibarn*1.*sumOfWeights()));
+
+      divide(pt_02, pt_04, _s_ratio);
+
       getLog() << Log::DEBUG << "sumOfWeights()     = " << sumOfWeights() << std::endl;
     }
     
     
   private:
 
-    AIDA::IHistogram1D * pt_02;
-    AIDA::IHistogram1D * pt_04;
+    Histo1DPtr  pt_02;
+    Histo1DPtr  pt_04;
+    Scatter2DPtr _s_ratio;
   };
 
 
 
   // This global object acts as a hook for the plugin system
   AnalysisBuilder<ALICE_2012_I1210881> plugin_ALICE_2012_I1210881;
 
 }
Index: trunk/code/ATLAS_2012_I1126965.cc
===================================================================
--- trunk/code/ATLAS_2012_I1126965.cc	(revision 451)
+++ trunk/code/ATLAS_2012_I1126965.cc	(revision 452)
@@ -1,131 +1,129 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 #include "Rivet/Tools/Logging.hh"
-#include "Rivet/RivetAIDA.hh"
 #include <boost/lexical_cast.hpp>
 namespace Rivet {
 
 
   /// @brief ATLAS jet yields and fragmentation functions in Pb+Pb at 2.76 ATeV
   class ATLAS_2012_I1126965 : public Analysis {
   public:
 
     /// Constructor
     ATLAS_2012_I1126965()
       : Analysis("ATLAS_2012_I1126965")
     {
-      setBeams(PROTON, PROTON);
       setNeedsCrossSection(true);
     }
 
     /// Book projections and histograms
     void init() {
 
       _centedges += 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8;
       _jetparams += 0.2, 0.3, 0.4, 0.5;
 
       _ncentbins = _centedges.size()-1;
       _njetbins = _jetparams.size();
 	
       FinalState fs(-5.0, 5.0, 0.*GeV);
       addProjection(fs, "FS");
       for (size_t j = 0; j < _njetbins; ++j) {
         stringstream ss; ss << "Jets" << j;
         const string pname = ss.str();
         _names[j] = pname;
 
 	FastJets fj(fs, FastJets::ANTIKT, _jetparams[j]);
 	fj.useInvisibles();
         addProjection(fj, pname);
       }
 
       for (size_t i = 0; i < _ncentbins; ++i) {
 	_sumwtcentbins[i] = 0.;
 	if (i < _ncentbins-1) _rsumwtcentbins[i] = 0.;
         for (size_t j = 0; j < _njetbins; ++j) {
           stringstream ss; ss << "jetpt" << _jetparams[j] << "_" << i;
           const string pname = ss.str();
 	  if (i == _ncentbins-1)
-            _histos[i][j] = bookHistogram1D(pname,binEdges(2, 1, j+1));
+            _histos[i][j] = bookHisto1D(pname,refData(2, 1, j+1));
 	  else {
-            _histos[i][j] = bookHistogram1D(pname,binEdges(i+2, 1, j+1));
-            _ratios[i][j] = bookHistogram1D(i+2, 1, j+1);
+            _histos[i][j] = bookHisto1D(pname,refData(i+2, 1, j+1));
+            _ratios[i][j] = bookHisto1D(i+2, 1, j+1);
 	  }
         }
       }
     }
     
     /// Do the analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
-      const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
+      const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
 
       for (size_t i = 0; i < _ncentbins; ++i) {
 	if (cent < 0. || (cent >= _centedges[i] && cent < _centedges[i+1])) {
 	  _sumwtcentbins[i] += weight;
 	  if (i == _ncentbins-1) {
 	    for (size_t k = 0; k < _ncentbins-1; ++k) {
 	      _rsumwtcentbins[k] += weight;
 	    }
 	  }
 	  else _rsumwtcentbins[i] += weight;
 	}
       }
 
       for (size_t j = 0; j < _njetbins; ++j) {
         const Jets jets = applyProjection<FastJets>(event, _names[j]).jetsByPt();
 	
 	for (size_t i = 0; i < _ncentbins; ++i) {
 	  if (cent < 0. || (cent >= _centedges[i] && cent < _centedges[i+1])) {
 	    foreach (Jet jet, jets){
 	      if (fabs(jet.momentum().eta()) < 2.1) 
 		_histos[i][j]->fill(jet.momentum().pT(),weight);
 	      if (i == _ncentbins-1) {
 		for (size_t k = 0; k < _ncentbins-1; ++k) {
 		  _ratios[k][j]->fill(jet.momentum().pT(),weight);
 		}
 	      }
 	      else {
 		_ratios[i][j]->fill(jet.momentum().pT(),weight);
 	      }
 	    }
 	  }
 	}
       }
 		
     }
     
     /// Finalize
     void finalize() {
       for (size_t i = 0; i < _ncentbins; ++i) {
         for (size_t j = 0; j < _njetbins; ++j) {
           scale(_histos[i][j],crossSection()/(_sumwtcentbins[i]>0.?_sumwtcentbins[i]:1.));
           if (i < _ncentbins-1) scale(_ratios[i][j],crossSection()/(_rsumwtcentbins[i]>0.?_rsumwtcentbins[i]:1.));
         }
       }
     }
     
     
   private:
 
     vector<double> _jetparams; 
     vector<double> _centedges;
     double _sumwtcentbins[7], _rsumwtcentbins[6];
     size_t _ncentbins, _njetbins;
 
     string _names[4];
 
-    AIDA::IHistogram1D *_histos[7][4];
-    AIDA::IHistogram1D *_ratios[6][4];
+    Histo1DPtr _histos[7][4];
+    Histo1DPtr _ratios[6][4];
 
   };
 
 
 
   // This global object acts as a hook for the plugin system
   AnalysisBuilder<ATLAS_2012_I1126965> plugin_ATLAS_2012_I1126965;
 
 }
Index: trunk/code/CMS_2012_I1090064.cc
===================================================================
--- trunk/code/CMS_2012_I1090064.cc	(revision 451)
+++ trunk/code/CMS_2012_I1090064.cc	(revision 452)
@@ -1,216 +1,211 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 #include "Rivet/Tools/Logging.hh"
-#include "Rivet/RivetAIDA.hh"
 #include <boost/lexical_cast.hpp>
 #include <map>
 namespace Rivet {
 
 
   /// @brief CMS charged particle fragmentation function in PbPb
   class CMS_2012_I1090064 : public Analysis {
   public:
 
     /// Constructor
     CMS_2012_I1090064() : Analysis("CMS_2012_I1090064")
     {
-      setBeams(PROTON, PROTON);
     }
 
     /// Book projections and histograms
     void init() {
 
       _centedges1 += 0.0, 0.1, 0.2, 0.3, 0.5, 0.7, 1.;
       _centedges2 += 0.0, 0.2, 0.5, 1.;
 	_ptedges += 120., 150., 180., 200., 260., 300., 500.;
 	_ncentbins1 = _centedges1.size()-1;
 	_ncentbins2 = _centedges2.size()-1;
 	_nptbins   = _ptedges.size()-1;
 
       FinalState fs(-5.0, 5.0, 0.*GeV);
 	addProjection(fs, "FS");
       ChargedFinalState cfs(-5.0, 5.0, 4.*GeV);
 	addProjection(cfs, "CFS");
 	
 	FastJets fj03(fs, FastJets::ANTIKT, 0.3);
       addProjection(fj03, "Jets03");
 
       for (size_t j = 0; j < _nptbins; ++j) {
-	  _h_deltaphi[j] = bookHistogram1D(1, 1, j+1);
-	  _h_aj[j]       = bookHistogram1D(3, 1, j+1);
-	  _h_ptratio1[j] = bookHistogram1D(5, 1, j+1);
+	  _h_deltaphi[j] = bookHisto1D(1, 1, j+1);
+	  _h_aj[j]       = bookHisto1D(3, 1, j+1);
+	  _h_ptratio1[j] = bookHisto1D(5, 1, j+1);
       }
       for (size_t i = 0; i < _ncentbins1; ++i) {
-	  _h_aj_all[i] = bookHistogram1D(4, 1, i+1);
+	  _h_aj_all[i] = bookHisto1D(4, 1, i+1);
       }
-	_h_dijets_p   = bookHistogram1D("N_di-jets_pp", binEdges(2, 1, 1));
-	_h_leadjets_p = bookHistogram1D("N_lead-jets_pp", binEdges(2, 1, 1));
-	_h_dijets_pb  = bookHistogram1D("N_di-jets_PbPb", binEdges(2, 1, 2));
-	_h_leadjets_pb= bookHistogram1D("N_lead-jets_PbPb", binEdges(2, 1, 2));
+	_h_dijets_p   = bookHisto1D("N_di-jets_pp", refData(2, 1, 1));
+	_h_leadjets_p = bookHisto1D("N_lead-jets_pp", refData(2, 1, 1));
+	_h_dijets_pb  = bookHisto1D("N_di-jets_PbPb", refData(2, 1, 2));
+	_h_leadjets_pb= bookHisto1D("N_lead-jets_PbPb", refData(2, 1, 2));
+	_s_p2ndjet_p = bookScatter2D(2, 1, 1);
+	_s_p2ndjet_pb = bookScatter2D(2, 1, 2);
       for (size_t k = 0; k < _ncentbins2+1; ++k) {
 	  _p_ptratio2[k] = bookProfile1D(6, 1, k+1);
       }
 
     }
     
     struct jetcomp{
       bool operator() (const Jet jet1, const Jet jet2) const
       {
         if (jet1.momentum().pT() < jet2.momentum().pT()) return true;
         else return false;
       }
     };
 
     double ptsmear(const double pttrue, const double cent) {
       double c(0.0246);
 	double s(1.213);
 	double n;
 	if (cent < 0.  || cent > 0.5) n=0.001;
 	if (cent > 0.3 && cent < 0.5) n=3.88;
 	if (cent > 0.1 && cent < 0.3) n=5.10;
 	if (cent > 0.  && cent < 0.1) n=5.23;
 //      n=5.23;
 	double sigma(sqrt(c*c+s*s/pttrue+n*n/(pttrue*pttrue)));
 	double r1(1.0*rand()/RAND_MAX), r2(1.0*rand()/RAND_MAX);
 	double fac(max(sqrt(-2.*log(r1))*cos(2.*M_PI*r2)*sigma+1.,0.));
 	return fac*pttrue;
     } 
    
     /// Do the analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
-	const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
+	const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
       const Jets jets03 = applyProjection<FastJets>(event, "Jets03").jetsByPt(3.*GeV);
       const ChargedFinalState tracks = applyProjection<ChargedFinalState>(event, "CFS");
 
 	map<Jet, double, jetcomp> jetmap;
 	foreach (Jet jet, jets03) {
 	  double ptreco, ptgen;
 	  ptgen = jet.momentum().pT();
 	  ptreco = ptsmear(ptgen,cent);
 	  jetmap[jet] = ptreco;
       }
 
       Jets jets;
       foreach (Jet jet, jets03) {
         if (fabs(jet.momentum().eta()) < 2.0 && jetmap[jet] > 30.*GeV)
           jets.push_back(jet);
       }
 
       if (jets.size() < 1) vetoEvent;
 
 	Jet leadjet, partner;
 	double ptlead(0.), ptsublead(0.);
 	foreach (Jet jet, jets) {
 	  if (jetmap[jet] > ptlead) {
 	    ptlead = jetmap[jet];
 	    leadjet = jet;
 	  }
       }
 
 	if (ptlead < _ptedges.front()*GeV) vetoEvent;
 
 	if (cent<0.) _h_leadjets_p->fill(ptlead,weight);
 	if (cent<0. || (cent>=0.0 && cent<0.2)) _h_leadjets_pb->fill(ptlead,weight);
 
       if (jets.size() < 2) vetoEvent;
 
 	foreach (Jet jet, jets) {
 	  if (jetmap[jet] > ptsublead && jet.momentum()!=leadjet.momentum()) {
 	    ptsublead = jetmap[jet];
 	    partner = jet;
 	  }
       }
 
 	double deltaphi = fabs(deltaPhi(leadjet,partner));
 
       for (size_t j = 0; j < _nptbins; ++j) {
 	  if (ptlead > _ptedges[j]*GeV && ptlead < _ptedges[j+1]*GeV) {
           if (cent<0. || (cent>=0.0 && cent<0.2)) _h_deltaphi[j]->fill(deltaphi,weight);
         }
 	}
 
       if (deltaphi < 2.*M_PI/3.) vetoEvent;
 
 	if (cent<0.) _h_dijets_p->fill(ptlead,weight);
 	if (cent<0. || (cent>=0.0 && cent<0.2)) _h_dijets_pb->fill(ptlead,weight);
       if (cent<0.) _p_ptratio2[0]->fill(ptlead,ptsublead/ptlead,weight);
       for (size_t k = 0; k < _ncentbins2; ++k) {
 	  if (cent<0. || (cent>=_centedges2[k] && cent<_centedges2[k+1])) _p_ptratio2[k+1]->fill(ptlead,ptsublead/ptlead,weight);
       }
 
       Rivet::FourMomentum leading, sublead;
 	leading = leadjet.momentum();
 	sublead = partner.momentum();
 		
 	double aj = (ptlead-ptsublead)/(ptlead+ptsublead);
 
       for (size_t i = 0; i < _ncentbins1; ++i) {
         if (cent<0. || (cent>=_centedges1[i] && cent<_centedges1[i+1])) _h_aj_all[i]->fill(aj,weight);
       }
       for (size_t j = 0; j < _nptbins; ++j) {
 	  if (ptlead > _ptedges[j]*GeV && ptlead < _ptedges[j+1]*GeV) {
           if (cent<0. || (cent>=0.0 && cent<0.2)) _h_aj[j]->fill(aj,weight);
           if (cent<0. || (cent>=0.0 && cent<0.2)) _h_ptratio1[j]->fill(ptsublead/ptlead,weight);
         }
 	}
     }
 
 	
 	
     /// Finalize
     void finalize() {
 	double Dbin_Dphi, Dbin_aj, Dbin_ptratio;
 	Dbin_Dphi = M_PI/30.;
 	Dbin_aj = 0.72/12.;
 	Dbin_ptratio = 1./10.;
 
       for (size_t j = 0; j < _nptbins; ++j) {
 	  normalize(_h_deltaphi[j],Dbin_Dphi);
 	  normalize(_h_aj[j],Dbin_aj);
 	  normalize(_h_ptratio1[j],Dbin_ptratio);
 	}
       for (size_t i = 0; i < _ncentbins1; ++i) {
 	  normalize(_h_aj_all[i],Dbin_aj);
 	}
 
-      AIDA::IHistogramFactory& hf = histogramFactory();
-      const string dir = histoDir();
-
-      hf.divide(dir + "/d02-x01-y01", *_h_dijets_p, *_h_leadjets_p);
-	hf.destroy(_h_dijets_p);
-	hf.destroy(_h_leadjets_p);
-      hf.divide(dir + "/d02-x01-y02", *_h_dijets_pb, *_h_leadjets_pb);
-	hf.destroy(_h_dijets_pb);
-	hf.destroy(_h_leadjets_pb);
+	divide(_h_dijets_p, _h_leadjets_p, _s_p2ndjet_p);
+	divide(_h_dijets_pb, _h_leadjets_pb, _s_p2ndjet_pb);
 
 	getLog() << Log::DEBUG << "sumOfWeights()     = " << sumOfWeights() << std::endl;
     }
     
     
   private:
 
     vector<double> _centedges1,_centedges2,_ptedges;
     size_t _ncentbins1,_ncentbins2,_nptbins;
 
-    AIDA::IHistogram1D * _h_deltaphi[6];     
-    AIDA::IHistogram1D * _h_aj_all[6];
-    AIDA::IHistogram1D * _h_aj[6];
-    AIDA::IHistogram1D * _h_ptratio1[6];
-    AIDA::IHistogram1D * _h_dijets_p;
-    AIDA::IHistogram1D * _h_leadjets_p;
-    AIDA::IHistogram1D * _h_dijets_pb;
-    AIDA::IHistogram1D * _h_leadjets_pb;
-    AIDA::IProfile1D *   _p_ptratio2[4];
+    Histo1DPtr _h_deltaphi[6];     
+    Histo1DPtr _h_aj_all[6];
+    Histo1DPtr _h_aj[6];
+    Histo1DPtr _h_ptratio1[6];
+    Histo1DPtr _h_dijets_p;
+    Histo1DPtr _h_leadjets_p;
+    Histo1DPtr _h_dijets_pb;
+    Histo1DPtr _h_leadjets_pb;
+    Profile1DPtr   _p_ptratio2[4];
+    Scatter2DPtr _s_p2ndjet_p;
+    Scatter2DPtr _s_p2ndjet_pb;
   };
 
   
   
   
   // This global object acts as a hook for the plugin system
   AnalysisBuilder<CMS_2012_I1090064> plugin_CMS_2012_I1090064;
 
 }
Index: trunk/code/PHENIX_PI0_PP.cc
===================================================================
--- trunk/code/PHENIX_PI0_PP.cc	(revision 451)
+++ trunk/code/PHENIX_PI0_PP.cc	(revision 452)
@@ -1,68 +1,66 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Tools/Logging.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 #include "Rivet/Projections/IdentifiedFinalState.hh"
-#include "Rivet/RivetAIDA.hh"
 
 namespace Rivet {
 
 
   /// @brief STAR identified hadron spectra in pp at 200 GeV
   class PHENIX_PI0_PP : public Analysis {
   public:
 
     /// Constructor
     PHENIX_PI0_PP()
       : Analysis("PHENIX_PI0_PP"),
         _sumWeightSelected(0.0)
     {
-      setBeams(PROTON, PROTON);
       setNeedsCrossSection(true);
     }
 
     /// Book projections and histograms
     void init() {
       IdentifiedFinalState pi0fs(-1., 1., 0.5*GeV);
       pi0fs.acceptId(111);
       addProjection(pi0fs, "PI0FS");
 
-      _h_pT_pi0     = bookHistogram1D(1, 1, 1);
+      _h_pT_pi0     = bookHisto1D(1, 1, 1);
     }
 
 
     /// Do the analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
 
       const IdentifiedFinalState& pi0fs = applyProjection<IdentifiedFinalState>(event, "PI0FS");
       foreach (const Particle& p, pi0fs.particles()) {
         if (fabs(p.momentum().eta()) < 0.35) {
           const double pT = p.momentum().pT() / GeV;
           _h_pT_pi0->fill(pT, weight/pT);
         }
       }
       _sumWeightSelected += event.weight();
     }
 
 
     /// Finalize
     void finalize() {
       scale(_h_pT_pi0,crossSection()/(millibarn*M_PI*0.7*_sumWeightSelected));
       getLog() << Log::DEBUG << "sumOfWeights()     = " << sumOfWeights() << std::endl;
       getLog() << Log::DEBUG << "_sumWeightSelected = " << _sumWeightSelected << std::endl;
     }
 
   private:
 
     double _sumWeightSelected;
 
-    AIDA::IHistogram1D * _h_pT_pi0;
+    Histo1DPtr _h_pT_pi0;
   };
 
 
 
   // This global object acts as a hook for the plugin system
   AnalysisBuilder<PHENIX_PI0_PP> plugin_PHENIX_PI0_PP;
 
 }
Index: trunk/code/ATLAS_CONF_2012_115.cc
===================================================================
--- trunk/code/ATLAS_CONF_2012_115.cc	(revision 451)
+++ trunk/code/ATLAS_CONF_2012_115.cc	(revision 452)
@@ -1,249 +1,248 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 #include "Rivet/Projections/IdentifiedFinalState.hh"
 #include "Rivet/Tools/Logging.hh"
-#include "Rivet/RivetAIDA.hh"
 #include <boost/lexical_cast.hpp>
 namespace Rivet {
 
 
   /// @brief ATLAS jet fragmentation functions in Pb+Pb at 2.76 ATeV
   class ATLAS_CONF_2012_115 : public Analysis {
   public:
 
     /// Constructor
     ATLAS_CONF_2012_115()
       : Analysis("ATLAS_CONF_2012_115")
     {
-      setBeams(PROTON, PROTON);
     }
 
     /// Book projections and histograms
     void init() {
       _sumjets02 = 0.;
 	_sumjets03 = 0.;
 	_sumjets04 += 0., 0., 0., 0., 0., 0., 0.;
       _centedges += 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8;
 	_ncentbins = _centedges.size()-1;
 
       FinalState fs(-5.0, 5.0, 0.*GeV);
 	addProjection(fs, "FS");
       ChargedFinalState cfs(-5.0, 5.0, 2.*GeV);
 	addProjection(cfs, "CFS");
-      IdentifiedFinalState mufs(-5.0, 5.0, 4.*GeV);
-	mufs.acceptIdPair(MUON);
+      Cut cuts = Cuts::abseta < 5.0 && Cuts::pT > 4*GeV;
+      IdentifiedFinalState mufs(cuts);
+	mufs.acceptIdPair(PID::MUON);
 	addProjection(mufs, "MUFS");
 	
 	FastJets fj02(fs, FastJets::ANTIKT, 0.2);
 	FastJets fj03(fs, FastJets::ANTIKT, 0.3);
 	FastJets fj04(fs, FastJets::ANTIKT, 0.4);
 	fj02.useInvisibles();
 	fj03.useInvisibles();
 	fj04.useInvisibles();
       addProjection(fj02, "Jets02");
       addProjection(fj03, "Jets03");
       addProjection(fj04, "Jets04");
 	
 
-      _h_z02_p     = bookHistogram1D("z02_p",binEdges(5, 1, 1));
-      _h_z02_c     = bookHistogram1D("z02_c",binEdges(5, 1, 1));
-      _h_pt02_p    = bookHistogram1D("pt02_p",binEdges(7, 1, 1));
-      _h_pt02_c    = bookHistogram1D("pt02_c",binEdges(7, 1, 1));
-      _h_z03_p     = bookHistogram1D("z03_p",binEdges(6, 1, 1));
-      _h_z03_c     = bookHistogram1D("z03_c",binEdges(6, 1, 1));
-      _h_pt03_p    = bookHistogram1D("pt03_p",binEdges(8, 1, 1));
-      _h_pt03_c    = bookHistogram1D("pt03_c",binEdges(8, 1, 1));
+      _h_z02_p     = bookHisto1D("z02_p",refData(5, 1, 1));
+      _h_z02_c     = bookHisto1D("z02_c",refData(5, 1, 1));
+      _h_pt02_p    = bookHisto1D("pt02_p",refData(7, 1, 1));
+      _h_pt02_c    = bookHisto1D("pt02_c",refData(7, 1, 1));
+      _h_z03_p     = bookHisto1D("z03_p",refData(6, 1, 1));
+      _h_z03_c     = bookHisto1D("z03_c",refData(6, 1, 1));
+      _h_pt03_p    = bookHisto1D("pt03_p",refData(8, 1, 1));
+      _h_pt03_c    = bookHisto1D("pt03_c",refData(8, 1, 1));
       for (size_t i = 0; i < _ncentbins; ++i) {
-        _h_z04[i]  = bookHistogram1D(1, 1, i+1);
-        _h_pt04[i] = bookHistogram1D(2, 1, i+1);
+        _h_z04[i]  = bookHisto1D(1, 1, i+1);
+        _h_pt04[i] = bookHisto1D(2, 1, i+1);
       }
     }
     
     /// Do the analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
-	const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
+	const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
       const Jets jets02 = applyProjection<FastJets>(event, "Jets02").jetsByPt();
       const Jets jets03 = applyProjection<FastJets>(event, "Jets03").jetsByPt();
       const Jets jets04 = applyProjection<FastJets>(event, "Jets04").jetsByPt();
       const ChargedFinalState& tracks = applyProjection<ChargedFinalState>(event, "CFS");
       const IdentifiedFinalState& muons = applyProjection<IdentifiedFinalState>(event, "MUFS");
 	foreach (Jet jet, jets02){
 	  if (jet.momentum().pT() > 85.*GeV && fabs(jet.momentum().eta()) < 2.1){
 	    bool isolated(true);
 	    foreach (Jet otherjet, jets02) {
 		if (otherjet.momentum().pT() > 42.6*GeV && 
 		    deltaR(otherjet,jet) < 1. && otherjet.momentum()!=jet.momentum()) {
 		  isolated = false;
 		  break;
 		}
 	    }
 	    bool mu(false);
 	    foreach (Particle muon, muons.particles()) {
 		if ((deltaR(jet,muon)) < 0.4) {
 		  mu=true;
 		  break;
 		}
 	    }
 	    if (isolated && !mu) {
 	      _sumjets02 += event.weight();
 	      foreach (Particle track, tracks.particles()){
 		  double dR(deltaR(track,jet));
 		  if (dR < 0.4){
 		    double pt(track.momentum().pT());
 		    double z(pt*cos(dR)/jet.momentum().pT());
 		    if (cent<0. || (cent>=0.6 && cent<0.8)) _h_pt02_p->fill(pt,weight);
 		    if (cent<0. || (cent>=0.0 && cent<0.1)) _h_pt02_c->fill(pt,weight);
 		    if (cent<0. || (cent>=0.6 && cent<0.8)) _h_z02_p->fill(z,weight);
 		    if (cent<0. || (cent>=0.0 && cent<0.1)) _h_z02_c->fill(z,weight);
 		  }
 	      }
 	    }
 	  }
 	}
 	
 	foreach (Jet jet, jets03){
 	  if (jet.momentum().pT() > 92.*GeV 
 	    && fabs(jet.momentum().eta()) < 2.1){
 	    bool isolated(true);
 	    foreach (Jet otherjet, jets03) {
 		if (otherjet.momentum().pT() > 46.*GeV && 
 		    deltaR(otherjet,jet) < 1. && otherjet.momentum()!=jet.momentum()) {
 		  isolated = false;
 		  break;
 		}
 	    }
 	    bool mu(false);
 	    foreach (Particle muon, muons.particles()) {
 		if ((deltaR(jet,muon)) < 0.4) {
 		  mu=true;
 		  break;
 		}
 	    }
 	    if (isolated && !mu) {
 	      _sumjets03 += event.weight();
 		double dRmin(3.),dR;
 		FourMomentum newaxis(jet.momentum());
 		foreach (Jet jet02, jets02){
 		  dR=deltaR(jet,jet02);
 		  if (jet.momentum().pT() > 25.*GeV 
 			&& fabs(jet.momentum().eta()) < 2.1
 			&& dR < dRmin){
 		    dRmin=dR;
 		    newaxis=jet02.momentum();
 		  }
 		}
 	      foreach (Particle track, tracks.particles()){
 		  dR=deltaR(track,newaxis);
 		  if (dR < 0.4) {
 		    double pt(track.momentum().pT());
 		    double z(pt*cos(dR)/jet.momentum().Et());
 		    if (cent<0. || (cent>=0.6 && cent<0.8)) _h_pt03_p->fill(pt,weight);
 		    if (cent<0. || (cent>=0.0 && cent<0.1)) _h_pt03_c->fill(pt,weight);
 		    if (cent<0. || (cent>=0.6 && cent<0.8)) _h_z03_p->fill(z,weight);
 		    if (cent<0. || (cent>=0.0 && cent<0.1)) _h_z03_c->fill(z,weight);
 		  }
 	      }
 	    }
 	  }
 	}
 	
 	for (size_t i = 0; i < _ncentbins; ++i) {
 	  if (cent < 0. || (cent > _centedges[i] && cent < _centedges[i+1])) {
 	    foreach (Jet jet, jets04){
 	      if (jet.momentum().pT() > 100.*GeV && fabs(jet.momentum().eta()) < 2.1){
 	        bool isolated(true);
 	        foreach (Jet otherjet, jets04) {
 		    if (otherjet.momentum().pT() > 50.*GeV && 
 		       deltaR(otherjet,jet) < 1. && otherjet.momentum()!=jet.momentum()) {
 		      isolated = false;
 		      break;
 		    }
 	        }
 	        bool mu(false);
 	        foreach (Particle muon, muons.particles()) {
 		    if ((deltaR(jet,muon)) < 0.4) {
 		      mu=true;
 		      break;
 		    }
 	        }
 	        if (isolated && !mu) {
 	          _sumjets04[i] += event.weight();
 		    double dRmin(3.),dR;
 		    FourMomentum newaxis(jet.momentum());
 		    foreach (Jet jet02, jets02){
 		      dR=deltaR(jet,jet02);
 		      if (jet.momentum().pT() > 25.*GeV && fabs(jet.momentum().eta()) < 2.1 && dR < dRmin){
 		        dRmin=dR;
 		        newaxis=jet02.momentum();
 		      }
 		    }
 	          foreach (Particle track, tracks.particles()){
 		      dR=deltaR(track,newaxis);
 		      if (dR < 0.4) {
 		        double pt(track.momentum().pT());
 		        double z(pt*cos(dR)/jet.momentum().Et());
 		        _h_pt04[i]->fill(pt,weight);
 		        _h_z04[i]->fill(z,weight);
                   }
                 }
 		  }
 	      }
 	    }
 	  }
 	}
 	
 	
     }
     
     /// Finalize
     void finalize() {
 	if (_sumjets02==0.) _sumjets02=1.;
 	if (_sumjets03==0.) _sumjets03=1.;
       scale(_h_pt02_p,1./_sumjets02);
       scale(_h_pt02_c,1./_sumjets02);
       scale(_h_pt03_p,1./_sumjets03);
       scale(_h_pt03_c,1./_sumjets03);
       scale(_h_z02_p,1./_sumjets02);
       scale(_h_z02_c,1./_sumjets02);
       scale(_h_z03_p,1./_sumjets03);
       scale(_h_z03_c,1./_sumjets03);
 
 
       for (size_t i = 0; i < _ncentbins; ++i) {
 	  if (_sumjets04[i]==0.) _sumjets04[i]=1.;
         scale(_h_pt04[i],1./_sumjets04[i]);
         scale(_h_z04[i],1./_sumjets04[i]);
       }
     }
     
     
   private:
 
     vector<double> _centedges;
     size_t _ncentbins;
 
     double _sumjets02,_sumjets03;
     vector<double> _sumjets04;
 
-    AIDA::IHistogram1D * _h_pt02_p;
-    AIDA::IHistogram1D * _h_pt02_c;
-    AIDA::IHistogram1D * _h_pt03_p;
-    AIDA::IHistogram1D * _h_pt03_c;
-    AIDA::IHistogram1D * _h_pt04[7];
-    AIDA::IHistogram1D * _h_z02_p;
-    AIDA::IHistogram1D * _h_z02_c;
-    AIDA::IHistogram1D * _h_z03_p;
-    AIDA::IHistogram1D * _h_z03_c;
-    AIDA::IHistogram1D * _h_z04[7];
+    Histo1DPtr  _h_pt02_p;
+    Histo1DPtr  _h_pt02_c;
+    Histo1DPtr  _h_pt03_p;
+    Histo1DPtr  _h_pt03_c;
+    Histo1DPtr  _h_pt04[7];
+    Histo1DPtr  _h_z02_p;
+    Histo1DPtr  _h_z02_c;
+    Histo1DPtr  _h_z03_p;
+    Histo1DPtr  _h_z03_c;
+    Histo1DPtr  _h_z04[7];
   };
 
 
 
   // This global object acts as a hook for the plugin system
   AnalysisBuilder<ATLAS_CONF_2012_115> plugin_ATLAS_CONF_2012_115;
 
 }
Index: trunk/code/CMS_HIN_12_004.cc
===================================================================
--- trunk/code/CMS_HIN_12_004.cc	(revision 451)
+++ trunk/code/CMS_HIN_12_004.cc	(revision 452)
@@ -1,110 +1,109 @@
-// -*- C++ -*-
-#include "Rivet/Analysis.hh"
-#include "Rivet/RivetAIDA.hh"
-#include "Rivet/Tools/Logging.hh"
-#include "Rivet/Projections/FinalState.hh"
-#include "Rivet/Projections/ChargedFinalState.hh"
-#include "Rivet/Projections/FastJets.hh"
-/// @todo Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...
-
-namespace Rivet {
-
-
-  class CMS_HIN_12_004 : public Analysis {
-  public:
-
-    /// @name Constructors etc.
-    //@{
-
-    /// Constructor
-    CMS_HIN_12_004()
-      : Analysis("CMS_HIN_12_004")
-    {
-      setBeams(PROTON, PROTON);
-      setNeedsCrossSection(true);
-    }
-
-    //@}
-
-
-  public:
-
-    /// @name Analysis methods
-    //@{
-
-    /// Book histograms and initialise projections before the run
-    void init() {
-
-      _centedges += 0.0, 0.05, 0.1, 0.3, 0.5, 0.7, 0.9;
-	_ncentbins = _centedges.size()-1;
-
-      FinalState fs(-5.0, 5.0, 0.*GeV);
-	addProjection(fs, "FS");
-
-	FastJets fj(fs, FastJets::ANTIKT, 0.3);
+// -*- C++ -*-
+#include "Rivet/Analysis.hh"
+#include "Rivet/Tools/Logging.hh"
+#include "Rivet/Projections/FinalState.hh"
+#include "Rivet/Projections/ChargedFinalState.hh"
+#include "Rivet/Projections/FastJets.hh"
+/// @todo Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...
+
+namespace Rivet {
+
+
+  class CMS_HIN_12_004 : public Analysis {
+  public:
+
+    /// @name Constructors etc.
+    //@{
+
+    /// Constructor
+    CMS_HIN_12_004()
+      : Analysis("CMS_HIN_12_004")
+    {
+      setNeedsCrossSection(true);
+    }
+
+    //@}
+
+
+  public:
+
+    /// @name Analysis methods
+    //@{
+
+    /// Book histograms and initialise projections before the run
+    void init() {
+
+      _centedges += 0.0, 0.05, 0.1, 0.3, 0.5, 0.7, 0.9;
+	_ncentbins = _centedges.size()-1;
+
+      FinalState fs(-5.0, 5.0, 0.*GeV);
+	addProjection(fs, "FS");
+
+	FastJets fj(fs, FastJets::ANTIKT, 0.3);
  	fj.useInvisibles();
-      addProjection(fj, "jets03");
-
-      for (size_t i = 0; i < _ncentbins; ++i) {
-        _sumwtcentbins[i]=0.;
-        stringstream ss; ss << "centbin_" << i;
-        const string pname = ss.str();
-        _histos[i] = bookHistogram1D(pname,binEdges(1, 1, i+1));
-        _ratios[i] = bookHistogram1D(1, 1, i+1);
-     }
-    }
-
-
-    /// Perform the per-event analysis
-    void analyze(const Event& event) {
-      const double weight = event.weight();
-	const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
-      const Jets jets = applyProjection<FastJets>(event, "jets03").jetsByPt(100.*GeV, 300.*GeV, -2., 2.);
-
-	for (size_t i = 0; i < _ncentbins; ++i) {
-	  if (cent < 0. || (cent >= _centedges[i] && cent < _centedges[i+1])) {
-          _sumwtcentbins[i]+=weight;
-//	std::cout<<i<<"  "<<cent<<"  "<<jets.size()<<std::endl;
-	    foreach (Jet jet, jets){
-//	std::cout<<jet.momentum().pT()<<std::endl;
-		_histos[i]->fill(jet.momentum().pT(),weight);
-		_ratios[i]->fill(jet.momentum().pT(),weight);
-	    }
-	  }
-      }
-
-    }
-
-
-    /// Normalise histograms etc., after the run
-    void finalize() {
-
-      for (size_t i = 0; i < _ncentbins; ++i) {
-        scale(_histos[i],crossSection()/(_sumwtcentbins[i]>0.?_sumwtcentbins[i]:1.));
-        scale(_ratios[i],crossSection()/(_sumwtcentbins[i]>0.?_sumwtcentbins[i]:1.));
-      }
-
-    }
-
-    //@}
-
-
-  private:
-
-    vector<double> _centedges;
-    double _sumwtcentbins[6];
-    size_t _ncentbins;
-
-  private:
-
-    AIDA::IHistogram1D *_histos[6];
-    AIDA::IHistogram1D *_ratios[6];
-
-  };
-
-
-
-  // The hook for the plugin system
-  DECLARE_RIVET_PLUGIN(CMS_HIN_12_004);
-
-}
+      addProjection(fj, "jets03");
+
+      for (size_t i = 0; i < _ncentbins; ++i) {
+        _sumwtcentbins[i]=0.;
+        stringstream ss; ss << "centbin_" << i;
+        const string pname = ss.str();
+        _histos[i] = bookHisto1D(pname,refData(1, 1, i+1));
+        _ratios[i] = bookHisto1D(1, 1, i+1);
+     }
+    }
+
+
+    /// Perform the per-event analysis
+    void analyze(const Event& event) {
+      const double weight = event.weight();
+	const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
+      Cut cuts = Cuts::abseta < 2.0 && Cuts::pT > 100.*GeV && Cuts::pT < 300.*GeV;
+      const Jets jets = applyProjection<FastJets>(event, "jets03").jetsByPt(cuts);
+
+	for (size_t i = 0; i < _ncentbins; ++i) {
+	  if (cent < 0. || (cent >= _centedges[i] && cent < _centedges[i+1])) {
+          _sumwtcentbins[i]+=weight;
+//	std::cout<<i<<"  "<<cent<<"  "<<jets.size()<<std::endl;
+	    foreach (Jet jet, jets){
+//	std::cout<<jet.momentum().pT()<<std::endl;
+		_histos[i]->fill(jet.momentum().pT(),weight);
+		_ratios[i]->fill(jet.momentum().pT(),weight);
+	    }
+	  }
+      }
+
+    }
+
+
+    /// Normalise histograms etc., after the run
+    void finalize() {
+
+      for (size_t i = 0; i < _ncentbins; ++i) {
+        scale(_histos[i],crossSection()/(_sumwtcentbins[i]>0.?_sumwtcentbins[i]:1.));
+        scale(_ratios[i],crossSection()/(_sumwtcentbins[i]>0.?_sumwtcentbins[i]:1.));
+      }
+
+    }
+
+    //@}
+
+
+  private:
+
+    vector<double> _centedges;
+    double _sumwtcentbins[6];
+    size_t _ncentbins;
+
+  private:
+
+    Histo1DPtr _histos[6];
+    Histo1DPtr _ratios[6];
+
+  };
+
+
+
+  // The hook for the plugin system
+  DECLARE_RIVET_PLUGIN(CMS_HIN_12_004);
+
+}
Index: trunk/code/ALICE_GIRTH_4MOMSUB.plot
===================================================================
--- trunk/code/ALICE_GIRTH_4MOMSUB.plot	(revision 0)
+++ trunk/code/ALICE_GIRTH_4MOMSUB.plot	(revision 452)
@@ -0,0 +1,7 @@
+# BEGIN PLOT /ALICE_GIRTH_4MOMSUB/d01-x01-y01
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /ALICE_GIRTH_4MOMSUB/pp_g_*
+LogY=0
+# END PLOT
Index: trunk/code/ATLAS_2014_I1300152.cc
===================================================================
--- trunk/code/ATLAS_2014_I1300152.cc	(revision 451)
+++ trunk/code/ATLAS_2014_I1300152.cc	(revision 452)
@@ -1,255 +1,418 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
-#include "Rivet/RivetAIDA.hh"
 #include "Rivet/Tools/Logging.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 #include "Rivet/Projections/IdentifiedFinalState.hh"
 #include "Rivet/Projections/FastJets.hh"
 /// @todo Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...
 
 namespace Rivet {
 
 
-  class ATLAS_2014_I1300152 : public Analysis {
+using namespace fastjet;
+	
+	struct FourMomComp {
+        bool operator() (const FourMomentum& p1, const FourMomentum& p2) const
+       {return p1.pT()<p2.pT();}
+    };
+
+#if MODE==0
+  class ATLAS_2014_I1300152_4MOMSUB : public Analysis {
+#elif MODE==1
+  class ATLAS_2014_I1300152_GRIDSUB2 : public Analysis {
+#endif
   public:
 
     /// @name Constructors etc.
     //@{
 
     /// Constructor
-    ATLAS_2014_I1300152()
-      : Analysis("ATLAS_2014_I1300152")
+#if MODE==0
+    ATLAS_2014_I1300152_4MOMSUB() : Analysis("ATLAS_2014_I1300152_4MOMSUB")
+#elif MODE==1
+    ATLAS_2014_I1300152_GRIDSUB2() : Analysis("ATLAS_2014_I1300152_GRIDSUB2")
+#endif
     {
       _ptmin += 85., 92., 100.;
       _ptiso += 42.5, 46., 50.;
       _etamax = 1.9;    
+      _nphibins = 120; _netabins = 160;
     }
 
     //@}
 
 
   public:
 
     /// @name Analysis methods
     //@{
 
     /// Book histograms and initialise projections before the run
     void init() {
 
       _centedges += 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8;
       _ncentbins = _centedges.size()-1;
 
       _jetparams += 0.2, 0.3, 0.4;
       _njetbins = _jetparams.size();
 
       _sumjets.resize(_njetbins);
       _rsumjets.resize(_njetbins);
 	for (size_t j = 0; j < _njetbins; ++j) {
 	  _sumjets[j].resize(_ncentbins,0.);
 	  _rsumjets[j].resize(_ncentbins-1,0.);
 	}
 
       FinalState fs(-5.0, 5.0, 0.*GeV);
       addProjection(fs, "FS");
       ChargedFinalState cfs(-5.0, 5.0, 2.*GeV);
       addProjection(cfs, "CFS");
       IdentifiedFinalState mufs(-5.0, 5.0, 4.*GeV);
-      mufs.acceptIdPair(MUON);
+      mufs.acceptIdPair(PID::MUON);
       addProjection(mufs, "MUFS");
 	
       for (size_t j = 0; j < _njetbins; ++j) {
         stringstream ss; ss << "Jets" << j;
         const string pname = ss.str();
         _names[j] = pname;
 
 	FastJets fj(fs, FastJets::ANTIKT, _jetparams[j]);
 	fj.useInvisibles();
         addProjection(fj, pname);
       }
 
       for (size_t i = 0; i < _ncentbins; ++i) {
-        _h_z[0][i]  = bookHistogram1D(1, 1, i+1);
-        _h_pt[0][i] = bookHistogram1D(2, 1, i+1);
+        _h_z[0][i]  = bookHisto1D(1, 1, i+1);
+        _h_pt[0][i] = bookHisto1D(2, 1, i+1);
         stringstream ssz; ssz << "FFz_0.3_" << i;
-        _h_z[1][i]  = bookHistogram1D(ssz.str(), binEdges(9, 1, i+1));
+        _h_z[1][i]  = bookHisto1D(ssz.str(), refData(9, 1, 1));
         stringstream sspt; sspt << "FFpt_0.3_" << i;
-        _h_pt[1][i] = bookHistogram1D(sspt.str(), binEdges(10, 1, i+1));
-        _h_z[2][i]  = bookHistogram1D(5, 1, i+1);
-        _h_pt[2][i] = bookHistogram1D(6, 1, i+1);
+        _h_pt[1][i] = bookHisto1D(sspt.str(), refData(10, 1, 1));
+        _h_z[2][i]  = bookHisto1D(5, 1, i+1);
+        _h_pt[2][i] = bookHisto1D(6, 1, i+1);
 	if (i < _ncentbins-1) {
-          _h_r_z[0][i]  = bookHistogram1D(3, 1, i+1);
-          _h_r_pt[0][i] = bookHistogram1D(4, 1, i+1);
-          _h_r_z[1][i]  = bookHistogram1D(9, 1, i+1);
-          _h_r_pt[1][i] = bookHistogram1D(10,1, i+1);
-          _h_r_z[2][i]  = bookHistogram1D(7, 1, i+1);
-          _h_r_pt[2][i] = bookHistogram1D(8, 1, i+1);
+          _h_r_z[0][i]  = bookHisto1D(3, 1, i+1);
+          _h_r_pt[0][i] = bookHisto1D(4, 1, i+1);
+          _h_r_z[1][i]  = bookHisto1D(9, 1, i+1);
+          _h_r_pt[1][i] = bookHisto1D(10,1, i+1);
+          _h_r_z[2][i]  = bookHisto1D(7, 1, i+1);
+          _h_r_pt[2][i] = bookHisto1D(8, 1, i+1);
         } 
       }
 
     }
 
 
+
+    
+    /// extract thermal momenta, that should be subtracted, from HepMC event
+    vector<FourMomentum> extractThermalMomenta(const Event & event) {
+	 vector<FourMomentum> thermom;
+        foreach (const HepMC::GenParticle* p, particles(event.genEvent())) {
+            FourMomentum mom(p->momentum());
+               if (p->status() == 3) {
+                   thermom.push_back(mom);
+               }
+	 }
+	 return thermom;
+    }
+    
+    
+    /// build map from dummy particles to thermal momenta to speed up subtraction
+    map<FourMomentum, FourMomentum, FourMomComp> buildThMomMap(const Event & event, const vector<FourMomentum> * thermom) {
+	    map<FourMomentum, FourMomentum, FourMomComp> thmap;
+           foreach (const HepMC::GenParticle* p, particles(event.genEvent())) {
+                  FourMomentum mom(p->momentum());
+                  if (mom.E() < 1e-5 && mom.E() > 1e-7) {
+		           FourMomentum dummy(mom);
+                         dummy *= 10000.;
+			    double dRmin(1.);
+			    FourMomentum match;
+			     foreach (FourMomentum tm, *thermom) {
+				     double dR(deltaR(dummy, tm));
+				     if (dR < dRmin) {
+					     dRmin = dR;
+					     match = tm;
+				     }
+			     }
+			     if (dRmin < 1e-5) {
+				     map<FourMomentum, FourMomentum, FourMomComp>::iterator mapit;
+				     mapit = thmap.find(mom);
+				     if (mapit != thmap.end()) {
+						cout<<"Error: dummy is already in map.\n";
+						cout<<mapit->first<<endl;
+						cout<<mapit->second<<endl;
+						cout<<match<<endl;
+				     }
+                                 thmap[mom]=match;				     
+                          }
+		    }
+	    }
+	    return thmap;
+    }
+    
+    
+    /// 4-momentum subtraction
+    FourMomentum SubtractJetMom(Jet jet, map<FourMomentum, FourMomentum, FourMomComp> * tmmap, double fac = 1.) {
+        if (tmmap->empty()) return jet.momentum();
+        FourMomentum sub(0.,0.,0.,0.);
+        foreach (Particle part, jet.constituents()) {
+            if (part.E() < 1e-5 && part.E() > 1e-7) { 
+                    map<FourMomentum, FourMomentum, FourMomComp>::iterator mapit;
+                    mapit = (*tmmap).find(part.momentum());
+                    if (mapit == (*tmmap).end()) cout<<"Error: did not find matching scattering centre in map.\n"<<part.momentum()<<endl;
+                    else sub += mapit->second;
+	     }
+        }
+        FourMomentum jetmom(jet.momentum());
+        //cout<<"Original momentum: "<<jetmom<<endl;
+        jetmom -= sub;
+        //cout<<"subtracted momentum: "<<jetmom<<endl;
+        //cout<<"Subtracted pt: "<<subpt<<"    "<<pjet.pt()<<endl;
+        return jetmom;
+    }
+
+    
+/// initialise and fill grid for grid subtration    
+    vector<vector<FourMomentum> >  fillGrid(const Event & event, std::set<std::pair<size_t,size_t> > & gridevent) {	    
+	    // initialise grid
+           vector<vector<FourMomentum> >  grid;
+           grid.resize(_nphibins);
+           for (size_t i = 0; i < _nphibins; ++i) {
+                  grid[i].resize(_netabins);
+		    for (size_t k = 0; k < _nphibins; ++k) {
+			    grid[i][k] = FourMomentum(0., 0., 0., 0.);
+		    }
+           }
+
+      // fill grid
+        foreach (const HepMC::GenParticle* p, particles(event.genEvent())) {
+            FourMomentum mom(p->momentum());
+            if (fabs(mom.eta()) < 4.) {
+               size_t phibin, etabin;
+               phibin = int(mom.phi(ZERO_2PI)*_nphibins/(2.*M_PI));
+               etabin = int((mom.eta() + 4.)*_netabins/8.);
+               if (phibin < 0 || phibin > _nphibins-1) {std::cout<<"Error: "<<mom.phi(ZERO_2PI)<<"  --> "<<phibin<<std::endl; exit(1);}
+               if (etabin < 0 || etabin > _netabins-1) {std::cout<<"Error: "<<mom.eta()<<"  --> "<<etabin<<std::endl; exit(1);}
+               if (p->status() == 3) {
+                   grid[phibin][etabin].setE(grid[phibin][etabin].E() - mom.E());
+                   grid[phibin][etabin].setPx(grid[phibin][etabin].px() - mom.px());
+                   grid[phibin][etabin].setPy(grid[phibin][etabin].py() - mom.py());
+                   grid[phibin][etabin].setPz(grid[phibin][etabin].pz() - mom.pz());
+               }
+               else {
+                   grid[phibin][etabin].setE(grid[phibin][etabin].E() + mom.E());
+                   grid[phibin][etabin].setPx(grid[phibin][etabin].px() + mom.px());
+                   grid[phibin][etabin].setPy(grid[phibin][etabin].py() + mom.py());
+                   grid[phibin][etabin].setPz(grid[phibin][etabin].pz() + mom.pz());    
+               }
+               /*double cellphi((phibin+0.5)*2*M_PI/_nphibins), celleta((etabin+0.5)*8./_netabins-4.);
+               double celltheta(2.*atan(exp(-celleta)));
+               if (p->status() == 3) {
+                   double rho(grid[phibin][etabin].E() - mom.E());
+                   grid[phibin][etabin].setE(rho);
+                   grid[phibin][etabin].setPx(fabs(rho)*sin(celltheta)*cos(cellphi));
+                   grid[phibin][etabin].setPy(fabs(rho)*sin(celltheta)*sin(cellphi));
+                   grid[phibin][etabin].setPz(fabs(rho)*cos(celltheta));
+               }
+               else {
+		     // use this for standard recoil treatment
+                   double rho(grid[phibin][etabin].E() + mom.E());
+                   grid[phibin][etabin].setE(rho);
+                   grid[phibin][etabin].setPx(rho*sin(celltheta)*cos(cellphi));
+                   grid[phibin][etabin].setPy(rho*sin(celltheta)*sin(cellphi));
+                   grid[phibin][etabin].setPz(rho*cos(celltheta));
+		 }*/
+               gridevent.insert(std::pair<size_t,size_t>(phibin,etabin));
+	     }
+	 }
+		return grid;
+    }  
+
+
+
+/// 4-momentum adapter
+    FourMomentum Get4Mom(PseudoJet pjet){
+        FourMomentum mom(pjet.E(), pjet.px(), pjet.py(), pjet.pz());
+        return mom;
+    }
+    
+    
+
+    
     /// Perform the per-event analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
-      const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
+      const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
+
+#if MODE==0     
+      vector<FourMomentum>  thermom = extractThermalMomenta(event);
+      map<FourMomentum, FourMomentum, FourMomComp> thmommap = buildThMomMap(event, &thermom);
+#elif MODE==1
+      PseudoJets pevent, pjets;
+      std::set<std::pair<size_t,size_t> > gridevent;
+      vector<vector<FourMomentum> >  grid = fillGrid(event, gridevent);
+      for (set<pair<size_t,size_t> >::iterator it=gridevent.begin(); it!=gridevent.end(); ++it) {
+          size_t i,k;
+          i = it->first;
+          k = it->second;
+          if (grid[i][k].E() > 0. ) {
+              PseudoJet part(grid[i][k].px(),grid[i][k].py(),grid[i][k].pz(),grid[i][k].E());
+              pevent.push_back(part);
+          }
+      }
+#endif
+
       Jets jets[3];
       for (size_t j = 0; j < _njetbins; ++j) {
-        jets[j] = applyProjection<FastJets>(event, _names[j]).jetsByPt(_ptiso[j]*GeV, MAXDOUBLE*GeV, -_etamax, _etamax);
+        //Cut cuts = Cuts::abseta < _etamax && Cuts::pT > _ptiso[j]*GeV;
+        //jets[j] = applyProjection<FastJets>(event, _names[j]).jetsByPt(cuts);
+#if MODE==0
+	      Jets unsubjets = applyProjection<FastJets>(event, _names[j]).jetsByPt();
+	      foreach (Jet jet, unsubjets) {
+			FourMomentum jetsub = SubtractJetMom(jet, &thmommap, 1.);
+			if (fabs(jetsub.eta()) < _etamax && jetsub.pT() > _ptiso[j]*GeV) jets[j].push_back(Jet(jetsub));
+	      }
+#elif MODE==1		
+	      JetDefinition jet_def(antikt_algorithm, _jetparams[j]);
+	      ClusterSequence cs(pevent, jet_def);
+             pjets = sorted_by_pt(cs.inclusive_jets());
+             foreach (PseudoJet pjet, pjets) {
+			if (fabs(pjet.eta()) < _etamax && pjet.pt() > _ptiso[j]*GeV) jets[j].push_back(Jet(pjet));
+	      }
+#endif	      
       }
+      
       const ChargedFinalState& tracks = applyProjection<ChargedFinalState>(event, "CFS");
       const IdentifiedFinalState& muons = applyProjection<IdentifiedFinalState>(event, "MUFS");
 
       for (size_t i = 0; i < _ncentbins; ++i) {
 	if (cent < 0. || (cent >= _centedges[i] && cent < _centedges[i+1])) {
 	  for (size_t j = 0; j < _njetbins; ++j) {
 	    foreach (Jet jet, jets[j]){
 	      if (jet.momentum().pT() > _ptmin[j]*GeV){
 		bool isolated(true);
 		foreach (Jet otherjet, jets[j]) {
 		  if (deltaR(otherjet,jet) < 1. && otherjet.momentum()!=jet.momentum()) {
 		    isolated = false;
 		    break;
 		  }
 		}
 		bool mu(false);
 		foreach (Particle muon, muons.particles()) {
 		  if ((deltaR(jet,muon)) < 0.4) {
 		    mu=true;
 		    break;
 		  }
-		}
-		if (isolated && !mu) {
-		  _sumjets[j][i] += event.weight();
-		  FourMomentum newaxis(jet.momentum());
-		  if (j > 0) {
-		    // for R=0.3, 0.4 find closest R=0.2 jet 
-		    double dRmin(0.3),dR;
-		    foreach (Jet jet02, jets[0]){
-		      dR=deltaR(jet,jet02);
-		      if (dR < dRmin){
-			dRmin=dR;
-			newaxis=jet02.momentum();
-		      }
-		    }
-		  }
-		  foreach (Particle track, tracks.particles()){
-		    double dR(deltaR(track,newaxis));
-		    if (dR < 0.4){
-		      double pt(track.momentum().pT());
-		      double z(pt*cos(dR)/jet.momentum().pT());
-		      _h_z[j][i]->fill(z,weight);
-		      _h_pt[j][i]->fill(pt,weight);
-		      if (i == _ncentbins-1) {
-			for (size_t k = 0; k < _ncentbins-1; ++k) {
-			  _h_r_z[j][k]->fill(z,weight);
-			  _h_r_pt[j][k]->fill(pt,weight);
-			}
-		      }
 	          }
 	          if (isolated && !mu) {
 	            _sumjets[j][i] += event.weight();
 			if (i == _ncentbins-1) {
       		  for (size_t k = 0; k < _ncentbins-1; ++k) {
 			    _rsumjets[j][k] += event.weight();
 			  }
 			}
 	            else _rsumjets[j][i] += event.weight();
 		      FourMomentum newaxis(jet.momentum());
 	  		if (j > 0) {
 			// for R=0.3, 0.4 find closest R=0.2 jet 
 		        double dRmin(0.3),dR;
 		        foreach (Jet jet02, jets[0]){
 		          dR=deltaR(jet,jet02);
 		          if (dR < dRmin){
 		            dRmin=dR;
 		            newaxis=jet02.momentum();
 		          }
 		        }
 	 		}
 	            foreach (Particle track, tracks.particles()){
 		        double dR(deltaR(track,newaxis));
 		        if (dR < 0.4){
 		          double pt(track.momentum().pT());
 		          double z(pt*cos(dR)/jet.momentum().pT());
 			    _h_z[j][i]->fill(z,weight);
 			    _h_pt[j][i]->fill(pt,weight);
 			    if (i == _ncentbins-1) {
       		      for (size_t k = 0; k < _ncentbins-1; ++k) {
 				  _rsumjets[j][k] += event.weight();
 			        _h_r_z[j][k]->fill(z,weight);
 			        _h_r_pt[j][k]->fill(pt,weight);
 				}
 			    }
 	                else {
 				_rsumjets[j][i] += event.weight();
 			      _h_r_z[j][i]->fill(z,weight);
 			      _h_r_pt[j][i]->fill(pt,weight);
 			    }
 
 		    }
 		  }// end loop over all charged particles
 
 		}// end IF jet is isolated and contains no muon
 	      }// end IF jet passes pt cut
 	    }// end loop over all jets
 
 	  }// end loop over jet radii
 
 	}// end IF in centrality bin
       }// end loop over centrality bins
 
     }
 
 
     /// Normalise histograms etc., after the run
     void finalize() {
 
       for (size_t i = 0; i < _ncentbins; ++i) {
 	for (size_t j = 0; j < _njetbins; ++j) {
           scale(_h_z[j][i],(_sumjets[j][i]==0.?0.:1./_sumjets[j][i]));
           scale(_h_pt[j][i],(_sumjets[j][i]==0.?0.:1./_sumjets[j][i]));
 	  if (i < _ncentbins-1) {
             scale(_h_r_z[j][i],(_rsumjets[j][i]==0.?0.:1./_rsumjets[j][i]));
             scale(_h_r_pt[j][i],(_rsumjets[j][i]==0.?0.:1./_rsumjets[j][i]));
           } 
 	}
       }
 
     }
 
     //@}
 
 
   private:
 
     vector<double> _centedges, _jetparams;
     size_t _ncentbins, _njetbins;
+    size_t _nphibins, _netabins;
 
     vector<vector<double> > _sumjets, _rsumjets;
 
     vector<double> _ptmin, _ptiso;
     double _etamax;
 
     string _names[3];
 
   private:
 
     /// @name Histograms
     //@{
-    AIDA::IHistogram1D * _h_pt[3][7];
-    AIDA::IHistogram1D * _h_z[3][7];
-    AIDA::IHistogram1D * _h_r_pt[3][6];
-    AIDA::IHistogram1D * _h_r_z[3][6];
+    Histo1DPtr _h_pt[3][7];
+    Histo1DPtr _h_z[3][7];
+    Histo1DPtr _h_r_pt[3][6];
+    Histo1DPtr _h_r_z[3][6];
     //@}
 
 
   };
 
 
 
   // The hook for the plugin system
-  DECLARE_RIVET_PLUGIN(ATLAS_2014_I1300152);
-
+#if MODE==0
+  DECLARE_RIVET_PLUGIN(ATLAS_2014_I1300152_4MOMSUB);
+#elif MODE==1
+  DECLARE_RIVET_PLUGIN(ATLAS_2014_I1300152_GRIDSUB2);
+#endif
+  
 }
Index: trunk/code/MC_SOFTDROP_4MOMSUB.plot
===================================================================
--- trunk/code/MC_SOFTDROP_4MOMSUB.plot	(revision 451)
+++ trunk/code/MC_SOFTDROP_4MOMSUB.plot	(revision 452)
@@ -1,266 +1,340 @@
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/*
 Title=parton level, with recoils, 4-momentum subtraction
-#END PLOT
+# END PLOT
+
+# BEGIN PLOT /MC_SOFTDROP_4MOMSUB/area_vs_zg_l_R0.4
+XLabel=$z_g$
+YLabel=$\langle A \rangle$
+CustomLegend=anti-$k_\perp$ R=0.4\\ leading sub-jet
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /MC_SOFTDROP_4MOMSUB/area_vs_zg_s_R0.4
+XLabel=$z_g$
+YLabel=$\langle A \rangle$
+CustomLegend=anti-$k_\perp$ R=0.4\\ sub-leading sub-jet
+LogY=0
+# END PLOT
 
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/deltaR_*
 XLabel=$\Delta R_{12}$
 YLabel=$1/N_J\ \mathrm{d}NJ/\mathrm{d}\Delta R_{12}$
-LogY=1
+LogY=0
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/deltaR_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/deltaR_R1
 CustomLegend=anti-$k_\perp$ R=1
 # END PLOT
 
 
+# BEGIN PLOT /MC_SOFTDROP_4MOMSUB/dR_*
+XLabel=$\Delta R_{12}$
+YLabel=$1/N_J\ \mathrm{d}NJ/\mathrm{d}\Delta R_{12}$
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /MC_SOFTDROP_4MOMSUB/dR_zgbins_0_R0.4
+CustomLegend=anti-$k_\perp$ R=0.4\\ $0.1 < z_g < 0.2$
+# END PLOT
+
+# BEGIN PLOT /MC_SOFTDROP_4MOMSUB/dR_zgbins_1_R0.4
+CustomLegend=anti-$k_\perp$ R=0.4\\ $0.2 < z_g < 0.3$
+# END PLOT
+
+# BEGIN PLOT /MC_SOFTDROP_4MOMSUB/dR_zgbins_2_R0.4
+CustomLegend=anti-$k_\perp$ R=0.4\\ $0.3 < z_g < 0.4$
+# END PLOT
+
+# BEGIN PLOT /MC_SOFTDROP_4MOMSUB/dR_zgbins_3_R0.4
+CustomLegend=anti-$k_\perp$ R=0.4\\ $0.4 < z_g < 0.5$
+# END PLOT
+
+
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/g_vs_zg_*
 XLabel=$z_g$
 YLabel=$\langle \text{sub-jet }g\rangle$
 LogY=0
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/g_vs_zg_l_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4\\ leading sub-jet
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/g_vs_zg_l_R1
 CustomLegend=anti-$k_\perp$ R=1\\ leading sub-jet
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/g_vs_zg_s_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4\\ sub-leading sub-jet
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/g_vs_zg_s_R1
 CustomLegend=anti-$k_\perp$ R=1\\ sub-leading sub-jet
 # END PLOT
 
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/girth_*
 XLabel=$g$
 YLabel=$1/N_J\ \mathrm{d}NJ/\mathrm{d}g$
 LogY=1
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/girth_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/girth_R1
 CustomLegend=anti-$k_\perp$ R=1
 # END PLOT
 
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/groomed_ptratio_*
 XLabel=$p_{\perp,g}/p_\perp^J$
 YLabel=$1/N_J\ \mathrm{d}NJ/\mathrm{d}(p_{\perp,g}/p_\perp^J)$
 LegendXPos=0.1
 LogY=1
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/groomed_ptratio_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/groomed_ptratio_R1
 CustomLegend=anti-$k_\perp$ R=1
 # END PLOT
 
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/jetpt*
 XLabel=$p_\perp^J\,\mathrm{GeV}$
 YLabel=$1/N_\text{evt}\ \mathrm{d}NJ/\mathrm{d}p_\perp^J$
 LogY=1
 RatioPlotYMin=0.
 RatioPlotYMax=1.2
 Rebin=4
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/jetpt_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/jetpt_R1
 CustomLegend=anti-$k_\perp$ R=1
 # END PLOT
 
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/nstep*
 XLabel=$N_\text{step}$
 YLabel=$1/N_J\ \mathrm{d}NJ/\mathrm{d}N_\text{step}$
 LogY=1
 #YMin=0.
 #YMax=8.
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/nstep_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/nstep_R1
 CustomLegend=anti-$k_\perp$ R=1
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/nstep_dRcut_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4\\$\Delta R_{12}>0.1$
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/nstep_dRcut_R1
 CustomLegend=anti-$k_\perp$ R=1\\$\Delta R_{12}>0.1$
 # END PLOT
 
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/recen_vs_zg_*
 XLabel=$z_g$
 YLabel=$\langle E^\text{(rec)}/E^\text{(jet)} \rangle$
 LogY=0
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/recen_vs_zg_l_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4\\ leading sub-jet
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/recen_vs_zg_l_R1
 CustomLegend=anti-$k_\perp$ R=1\\ leading sub-jet
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/recen_vs_zg_s_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4\\ sub-leading sub-jet
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/recen_vs_zg_s_R1
 CustomLegend=anti-$k_\perp$ R=1\\ sub-leading sub-jet
 # END PLOT
 
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/recpt_vs_zg_*
 XLabel=$z_g$
 YLabel=$\langle p_\perp^\text{(rec)}/p_\perp^\text{(jet)} \rangle$
 LogY=0
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/recpt_vs_zg_l_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4\\ leading sub-jet
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/recpt_vs_zg_l_R1
 CustomLegend=anti-$k_\perp$ R=1\\ leading sub-jet
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/recpt_vs_zg_s_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4\\ sub-leading sub-jet
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/recpt_vs_zg_s_R1
 CustomLegend=anti-$k_\perp$ R=1\\ sub-leading sub-jet
 # END PLOT
 
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/recpt_abs_vs_zg_*
 XLabel=$z_g$
 YLabel=$\langle p_\perp^\text{(rec)} \rangle$
 LogY=0
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/recpt_abs_vs_zg_l_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4\\ leading sub-jet
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/recpt_abs_vs_zg_l_R1
 CustomLegend=anti-$k_\perp$ R=1\\ leading sub-jet
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/recpt_abs_vs_zg_s_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4\\ sub-leading sub-jet
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/recpt_abs_vs_zg_s_R1
 CustomLegend=anti-$k_\perp$ R=1\\ sub-leading sub-jet
 # END PLOT
 
 
+# BEGIN PLOT /MC_SOFTDROP_4MOMSUB/recpt_all_*
+XLabel=$z_g$
+YLabel=$\langle p_\perp^\text{(rec)}/p_\perp^\text{(jet)} \rangle$
+LogY=0
+# END PLOT
+
+
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/sc_pt_aft
 Title=scattering centres after interaction
 XLabel=$p_\perp^\text{(sc)}\,\mathrm{GeV}$
 YLabel=$1/N_\text{sc}\ \mathrm{d}NJ/\mathrm{d}p_\perp^\text{(sc)}$
 LogY=1
 Rebin=4
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/sc_pt_bef
 Title=scattering centres before interaction
 XLabel=$p_\perp^\text{(sc)}\,\mathrm{GeV}$
 YLabel=$1/N_\text{sc}\ \mathrm{d}NJ/\mathrm{d}p_\perp^\text{(sc)}$
 LogY=1
 Rebin=4
 # END PLOT
 
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg*
 XLabel=$z_g$
-YLabel=$1/N_J\ \mathrm{d}NJ/\mathrm{d}z_g$
+YLabel=$1/N_J\ \mathrm{d}N_J/\mathrm{d}z_g$
 LogY=0
 YMin=0.
 YMax=8.
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg_R1
 CustomLegend=anti-$k_\perp$ R=1
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg_dRcut_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4\\ $\Delta R_{12}>0.1$
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg_dRcut_R1
 CustomLegend=anti-$k_\perp$ R=1\\ $\Delta R_{12}>0.1$
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg_dRcut_nstep0_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4\\ $\Delta R_{12}>0.1$\\ $N_\text{step} = 0$
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg_dRcut_nstep0_R1
 CustomLegend=anti-$k_\perp$ R=1\\ $\Delta R_{12}>0.1$\\$N_\text{step} = 0$
 # END PLOT
 
+# BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg_dRbins_0_R0.4
+CustomLegend=anti-$k_\perp$ R=0.4\\ $0 \le \Delta R_{12} < 0.1$
+# END PLOT
+
+# BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg_dRbins_1_R0.4
+CustomLegend=anti-$k_\perp$ R=0.4\\ $0.1 \le \Delta R_{12} < 0.2$
+# END PLOT
+
+# BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg_dRbins_2_R0.4
+CustomLegend=anti-$k_\perp$ R=0.4\\ $0.2 \le \Delta R_{12} < 0.3$
+# END PLOT
+
+# BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg_dRbins_3_R0.4
+CustomLegend=anti-$k_\perp$ R=0.4\\ $0.3 \le \Delta R_{12} < 0.4$
+# END PLOT
+
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg_girth_0_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4\\ $\Delta R_{12}>0.1$\\ $0\cdot R \le g < 0.1\cdot R$
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg_girth_0_R1
 CustomLegend=anti-$k_\perp$ R=1\\ $\Delta R_{12}>0.1$\\ $0\cdot R \le g < 0.1\cdot R$
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg_girth_1_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4\\ $\Delta R_{12}>0.1$\\ $0.1\cdot R \le g < 0.2\cdot R$
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg_girth_1_R1
 CustomLegend=anti-$k_\perp$ R=1\\ $\Delta R_{12}>0.1$\\  $0.1\cdot R \le g < 0.2\cdot R$
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg_girth_2_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4\\ $\Delta R_{12}>0.1$\\ $0.2\cdot R \le g < 0.3\cdot R$
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg_girth_2_R1
 CustomLegend=anti-$k_\perp$ R=1\\ $\Delta R_{12}>0.1$\\  $0.2\cdot R \le g < 0.3\cdot R$
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg_girth_3_R0.4
 CustomLegend=anti-$k_\perp$ R=0.4\\ $\Delta R_{12}>0.1$\\ $0.3\cdot R \le g < 1\cdot R$
 # END PLOT
 
 # BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg_girth_3_R1
 CustomLegend=anti-$k_\perp$ R=1\\ $\Delta R_{12}>0.1$\\  $0.3\cdot R \le g < 1\cdot R$
 # END PLOT
+
+# BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg_dR_2d
+XMin=0.1
+XMax=0.5
+YMin=0.
+YMax=0.6
+# END PLOT
+
+# BEGIN PLOT /MC_SOFTDROP_4MOMSUB/zg_dR_pass_2d
+XMin=0.1
+XMax=0.5
+YMin=0.1
+YMax=0.6
+# END PLOT
Index: trunk/code/CMS_2013_I1256590_CHARGED.plot
===================================================================
--- trunk/code/CMS_2013_I1256590_CHARGED.plot	(revision 0)
+++ trunk/code/CMS_2013_I1256590_CHARGED.plot	(revision 452)
@@ -0,0 +1,81 @@
+# BEGIN PLOT /CMS_2013_I1256590_CHARGED/d01-x01-y01
+Title=PbPb 0-10
+XLabel=$r$
+YLabel=$\rho(r)$
+LogY=1
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_CHARGED/d01-x01-y02
+Title=pp smeared to PbPb resolution
+XLabel=$r$
+YLabel=$\rho(r)$
+LogY=1
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_CHARGED/d01-x01-y03
+Title=PbPb(0-10)/pp
+XLabel=$r$
+YLabel=$\rho_\text{PbPb}/\rho_\text{pp}$
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_CHARGED/d02-x01-y01
+Title=PbPb 0-10
+XLabel=$r$
+YLabel=$\Psi(r)$
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_CHARGED/d02-x01-y02
+Title=pp smeared to PbPb resolution
+XLabel=$r$
+YLabel=$\Psi(r)$
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_CHARGED/d03-x01-y01
+Title=PbPb 0-10
+XLabel=$\xi = \ln(1/z)$
+YLabel=$1/N_\text{jet}\, \text{d}N_\text{track}/\text{d}\xi$
+LogY=1
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_CHARGED/d03-x01-y02
+Title=pp smeared to PbPb resolution
+XLabel=$\xi = \ln(1/z)$
+YLabel=$1/N_\text{jet}\, \text{d}N_\text{track}/\text{d}\xi$
+LogY=1
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_CHARGED/d03-x01-y03
+Title=PbPb(0-10)/pp
+XLabel=$\xi = \ln(1/z)$
+YLabel=$D_\text{PbPb}(\xi)/D_\text{pp}(\xi)$
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_CHARGED/d04-x01-y01
+Title=PbPb 0-10
+XLabel=$p_\perp\, [\text{GeV}]$
+YLabel=$1/N_\text{jet}\, \text{d}N_\text{track}/\text{d}p_\perp\, [\text{GeV}^{-1}]$
+LogX=1
+LogY=1
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_CHARGED/d04-x01-y02
+Title=pp  smeared to PbPb resolution
+XLabel=$p_\perp\, [\text{GeV}]$
+YLabel=$1/N_\text{jet}\, \text{d}N_\text{track}/\text{d}p_\perp\, [\text{GeV}^{-1}]$
+LogX=1
+LogY=1
+# END PLOT
+
+# BEGIN PLOT /CMS_2013_I1256590_CHARGED/d04-x01-y03
+Title=PbPb(0-10)-pp
+XLabel=$p_\perp\, [\text{GeV}]$
+YLabel=$D_\text{PbPb}(p_\perp)-D_\text{pp}(p_\perp)$
+LogX=1
+LogY=0
+# END PLOT
+
+
Index: trunk/code/JEWEL_MethodComparisons.cc
===================================================================
--- trunk/code/JEWEL_MethodComparisons.cc	(revision 451)
+++ trunk/code/JEWEL_MethodComparisons.cc	(revision 452)
@@ -1,441 +1,448 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "Rivet/Tools/Logging.hh"
 #include "Rivet/Tools/ParticleIdUtils.hh"
 #include "fastjet/AreaDefinition.hh"
 #include "fastjet/ClusterSequence.hh"
 #include "fastjet/ClusterSequenceArea.hh"
 #include "HepMC/GenParticle.h"
 #include "HepMC/GenEvent.h"
 #include "HepMC/GenCrossSection.h"
 
 namespace Rivet {
 
   class JEWEL_MethodComparisons : public Analysis {
   public:
 
     JEWEL_MethodComparisons(string name = "JEWEL_MethodComparisons")
       : Analysis(name)
     {
       setNeedsCrossSection(true);
       isworecoils=true;
       doGridSub=false;
       do4MomSub=false;
     }
 
         //! candidates inside jets. need to draw a grid inside each jet to fill with candidates 
     struct candidate{
       //! these are the boundaries 
       double etaMin;
       double phiMin;
       double etaMax;
       double phiMax;
       //! Pseudojets will have the objects inside 
       PseudoJets objects;
       vector <int> jetID;
       //! Four momeentum to get useful informations like eta, phi, mass, pT etc... 
       FourMomentum candMom;
       FourMomentum bkgMom;
       double sumnegpT;
       double sumpT;
     };
 
     std::pair<int,int> FindCandidateBin(double eta, double phi){
       int etaloc = -9;
       int philoc = -9;      
       for(unsigned x = 0; x<_etabins.size()-1; ++x){
 	for(unsigned y = 0; y<_phibins.size()-1; ++y){
 	  if(eta >= _etabins[x] && eta < _etabins[x+1] &&
 	     phi >= _phibins[y] && phi < _phibins[y+1]){
 	    etaloc = x;
 	    philoc = y;
 	  }	  
 	}
       }
       if(etaloc == -9 || philoc == -9)
 	return std::pair<int,int>(-1,-1);
       else
 	return std::pair<int,int>(etaloc,philoc);
     }
 
     struct jetcomp{
       bool operator() (const PseudoJet jet1, const PseudoJet jet2) const
       {
         if (jet1.pt() > jet2.pt()) return true;
         else return false;
       }
     };
 
     void init() {
 
       _Nevents=0.0;
       _Njets=0.0;
       _jetR=0.4;
       _pTCut=30.0;
-      _jesCorrection=0.96;
+      //_jesCorrection=0.96;
+      _jesCorrection=1.;
       _etaMax=2.4;
       // or 25x25 for till eta 3, here we are only interested in eta <1.3 so till 2 is enough.
       // 21x21 for eta 2
       _phiMax=M_PI;
       _delRMin=0.05;
       //! eta bins from -5 to 5;
       //! phi bins from -pi to pi      
       _Nbounds_eta = (int)2*_etaMax/(_delRMin);
       _Nbounds_phi = (int)2*_phiMax/(_delRMin);
       //! fill the grid: 
       for(int i = 0; i<=_Nbounds_eta; ++i){
 	double etax = -1*_etaMax + i*(double)2*_etaMax/_Nbounds_eta;
 	_etabins.push_back(etax);
       }
       for(int i = 0; i<=_Nbounds_phi; ++i){
 	double phix = -1*_phiMax + i*(double)2*_phiMax/_Nbounds_phi;
 	_phibins.push_back(phix);	
       }
       printDebug = false;
       
       if(printDebug)
 	std::cout<<"Grid we are using is ("<<_Nbounds_eta<<" x "<<_Nbounds_phi
 		 <<")   eta: [-"<<_etaMax<<", "<<_etaMax
 		 <<"]   phi: [-"<<_phiMax<<", "<<_phiMax<<"]"<<std::endl;      
 
       _h_JetpT = bookHisto1D("JetpT", 30, 100, 400);
-      _h_JetMass = bookHisto1D("JetMass", 100, 0, 100);
+      //_h_JetMass = bookHisto1D("JetMass", 100, 0, 100);
+      _h_JetMass = bookHisto1D("JetMass", 50, 0., 100.);
       _h_JetAj = bookHisto1D("JetAj", 30, 0, 1.);
       _h_JetDphi = bookHisto1D("JetDphi", 30, 0., M_PI);
 
       //! final state and jet projection
       FinalState fs(-3.0, 3.0, 0.*GeV);
       addProjection(fs, "FS");
       addProjection(FastJets(fs, FastJets::ANTIKT, _jetR), "Jets");      
 
 
     }
 
 
     void analyze(const Event& event) {
       const double weight = event.weight();
       const FastJets& Ajets = applyProjection<FastJets>(event, "Jets");
-      Cut cuts = Cuts::etaIn(-2.0, 2.0) & (Cuts::pT > _pTCut*GeV);
+      Cut cuts = Cuts::etaIn(-2.0, 2.0) && (Cuts::pT > _pTCut*GeV);
       const Jets ajets = Ajets.jetsByPt(cuts);
 
       bool dijet = false;      
       if(ajets.size()>=2)
 	if(ajets.at(0).pt() >= 100 && ajets.at(1).pt() >= 30)
 	  dijet=true;
 
       if(isworecoils){
 	if(printDebug) std::cout<<"w/o recoils! "<<std::endl;
 	foreach ( const PseudoJet jet, ajets ) {
 	  if(printDebug) std::cout<<"Jet pT = "<<jet.pt()<<std::endl;
 	  _h_JetpT->fill(jet.pt(), weight);
 	  if(jet.pt()>100){
 	    _h_JetMass->fill(jet.m(), weight);
 	    _Njets+=weight;
 	  }
 	}
 	if(dijet){
 	  _Nevents+=weight;
 	  //! the Aj and delta phi
 	  double Aj = (ajets.at(0).pt()-ajets.at(1).pt())/(ajets.at(0).pt()+ajets.at(1).pt());
 	  _h_JetAj->fill(Aj, weight);
 	  if(printDebug) std::cout<<"Aj = "<<Aj<<std::endl;
 	  double dphi = ajets.at(0).phi() - ajets.at(1).phi();
 	  if(dphi > M_PI) dphi = dphi-2*M_PI;
 	  _h_JetDphi->fill(dphi, weight);
 	  if(printDebug) std::cout<<"Dphi = "<<dphi<<std::endl;
 	}
       }
       dijet=false;
 
       if(doGridSub || do4MomSub){
 	//! get the scattered particles from the gen event:
 	vector <HepMC::GenParticle*> pscat; 
 	foreach (const HepMC::GenParticle* p, particles(event.genEvent())) {
 	  if(p->status() == 3)
 	    pscat.push_back((HepMC::GenParticle*)p);
 	}
 	
 	bool doSubtraction = true;
 	if(pscat.size() == 0)
 	  doSubtraction = false;
 	
 	if(doGridSub){      
 	  
 	  //! initialize the grid
 	  vector <vector<candidate> > grid;
 	  for(int x = 0; x<_Nbounds_eta; ++x){
 	    vector <candidate> xgrid;
 	    for(int y = 0; y<_Nbounds_phi; ++y){
 	      candidate test;
 	      test.etaMin = _etabins[x];
 	      test.phiMin = _phibins[y];
 	      test.etaMax = _etabins[x+1];
 	      test.phiMax = _phibins[y+1];
 	      test.sumnegpT = 0.0;
 	      xgrid.push_back(test);
 	    }
 	    grid.push_back(xgrid);
 	    xgrid.clear();
 	  }
 	  
 	  //! Now loop over all the jets and fill their constituents into the grid
 	  int jetcounter = 0;      
 	  foreach ( const PseudoJet jet, ajets ) {
 	    jetcounter++;
 	    //! loop over the candidates of the jet and include them in the grid
 	    foreach ( const PseudoJet c, jet.constituents() ){
 	      double ceta = c.eta();
 	      double cphi = c.phi_std();
 	      std::pair<int,int> candpos = FindCandidateBin(ceta, cphi);
 	      if(candpos.first!=-1 && candpos.second!=-1){
 		grid[candpos.first][candpos.second].objects.push_back(c);
 		grid[candpos.first][candpos.second].candMom+=FourMomentum(c.E(), c.px(), c.py(), c.pz());
 		grid[candpos.first][candpos.second].jetID.push_back(jetcounter);
 		grid[candpos.first][candpos.second].sumpT+=c.pt();
 	      }
 	    }
 	  }// jet loop
 	  
 	  //! Now loop over the scattering centers that are near jets and add that as BKG
 	  if(doSubtraction){
 	    for(unsigned ip = 0; ip<pscat.size(); ++ip){
 	      double px,py,pz,E;
 	      px = pscat[ip]->momentum().px();
 	      py = pscat[ip]->momentum().py();
 	      pz = pscat[ip]->momentum().pz();
 	      E  = pscat[ip]->momentum().e();
 	      PseudoJet part(px,py,pz,E);
 	      bool iJ = false;
 	      foreach(const PseudoJet j, ajets){
 		double delR = deltaR(j.eta(), j.phi_std(), part.eta(), part.phi_std());
 		if(delR < _jetR){
 		  iJ = true;
 		  break;
 		}
 	      }
 	      if(iJ){
 		std::pair<int,int> candpos = FindCandidateBin(part.eta(), part.phi_std());
 		if(candpos.first!=-1 && candpos.second!=-1){
 		  grid[candpos.first][candpos.second].objects.push_back(part);
 		  grid[candpos.first][candpos.second].bkgMom+=FourMomentum(E, px, py, pz);
 		  grid[candpos.first][candpos.second].sumpT-=part.pt();
 		}
 	      }
 	    }// scattering center loop
 	  }// dosub
 	  
 	  //! build up the pseudojets to do the clustering
 	  PseudoJets pJet_sub;
 	  for(int x = 0; x<_Nbounds_eta; ++x){
 	    for(int y = 0; y<_Nbounds_phi; ++y){
 	      FourMomentum jet_sub = grid[x][y].candMom;
 	      if(doSubtraction)
 		jet_sub -= grid[x][y].bkgMom;
 	      double px, py, pz, E;
 	      if(doSubtraction && (grid[x][y].candMom.pT() - grid[x][y].bkgMom.pT() < 0.0)){
 		grid[x][y].sumnegpT += grid[x][y].bkgMom.pT() - grid[x][y].candMom.pT();
 		px = 0.0; py = 0.0; pz = 0.0; E = 0.0;
 	      }else {
 		px = jet_sub.px();
 		py = jet_sub.py();
 		pz = jet_sub.pz();
 		E  = jet_sub.E();
 	      }
 	      PseudoJet part_sub(px,py,pz,E);
 	      if(part_sub.pt() != 0 && part_sub.E() != 0)
 		pJet_sub.push_back(part_sub);
 	    }
 	  }//!grid loop
 	  
 	  fastjet::JetDefinition jet_def(fastjet::antikt_algorithm, _jetR);
 	  fastjet::ClusterSequence cs_sub(pJet_sub, jet_def);
 	  PseudoJets recoJets_bkgsub = sorted_by_pt(cs_sub.inclusive_jets(_pTCut));
 	  if(recoJets_bkgsub.size()==0){
 	    if(printDebug) std::cout<<"no reconstructed jets"<<std::endl;
 	    vetoEvent;
 	  }
 
 	  if(printDebug) std::cout<<"GridSub! "<<std::endl;
 	  foreach ( const PseudoJet jet, recoJets_bkgsub ) {
 	    if(printDebug) std::cout<<"Jet pT = "<<jet.pt()<<std::endl;
 	    _h_JetpT->fill(_jesCorrection*jet.pt(), weight);
 	    if(jet.pt() > 100 ){
 	      _h_JetMass->fill(jet.m(), weight);
 	      _Njets+=weight;
 	    }
 	  }
 	  
 	  //! the Aj and delta phi
 	  if(recoJets_bkgsub.size()>=2){
 	    if(recoJets_bkgsub.at(0).pt()>=100 && recoJets_bkgsub.at(1).pt() >= 30){
 	      _Nevents+=weight;
 	      double Aj = (recoJets_bkgsub.at(0).pt()-recoJets_bkgsub.at(1).pt())/
 		(recoJets_bkgsub.at(0).pt()+recoJets_bkgsub.at(1).pt());
 	      _h_JetAj->fill(Aj, weight);
 	      if(printDebug) std::cout<<"Aj = "<<Aj<<std::endl;
 	      double dphi = recoJets_bkgsub.at(0).phi() - recoJets_bkgsub.at(1).phi();
 	      if(dphi > M_PI) dphi = dphi-2*M_PI;
 	      _h_JetDphi->fill(dphi, weight);
 	      if(printDebug) std::cout<<"Dphi = "<<dphi<<std::endl;
 	    }
 	  }
 	  
 	}//! doGridSub
 	
 
 	if(do4MomSub){
 	  
+//          cout<<"---------------------------------------\n";
+//          cout<<"Raghav: event number "<<event.genEvent()->event_number()<<endl;
 	  PseudoJets jets_bkgsub;
 	  //! loop over the jets: at the moment plotting for each event
 	  foreach (const PseudoJet jet, ajets){
 	    FourMomentum jt, bkg, jt_sub;
 	    //! constituents map	
-	    foreach (const fastjet::PseudoJet &c, jet.constituents()){
+	    /*foreach (const fastjet::PseudoJet &c, jet.constituents()){
 	      jt += FourMomentum(c.E(), c.px(), c.py(), c.pz());
-	    }
+	    }*/
+	    jt = FourMomentum(jet.E(), jet.px(), jet.py(), jet.pz());
+	    
 	    
 	    if(doSubtraction){
 	      for(unsigned ip = 0; ip<pscat.size(); ++ip){
 		// double _partpT = sqrt(pscat[ip]->momentum().px()*pscat[ip]->momentum().px() +
 		//  			  pscat[ip]->momentum().py()*pscat[ip]->momentum().py());
 		bool isinJet = false;	  
 		double _delRSmall = 100;
 		double _delRposition = 0;
 		int counter = 0;
 		// double constituentMatch_phi = 0.0;
 		// double constituentMatch_eta = 0.0;
 		foreach (const fastjet::PseudoJet &c, jet.constituents()){
+			if (c.E() > 1e-5) continue;
 		  const double _delRTruth = deltaR(pscat[ip]->momentum().eta(), pscat[ip]->momentum().phi(), c.eta(), c.phi_std());
 		  if(_delRTruth < 1e-5){
 		    _delRSmall = _delRTruth;
 		    _delRposition = counter;
 		    isinJet = true;
 		    // constituentMatch_phi = c.phi_std();
 		    // constituentMatch_eta = c.eta();
 		  }
 		  counter++;
 		}// jet constituents loop
 		// sum the background contribution
 		if(isinJet){
 		  /// Now we are in the scattered region
 		  bkg += FourMomentum(pscat[ip]->momentum().e(),
 				      pscat[ip]->momentum().px(),
 				      pscat[ip]->momentum().py(),
 				      pscat[ip]->momentum().pz());
 		}
 	      }//! scattering center loop
 	      
 	      jt_sub = jt - bkg;
 	    }else
 	      jt_sub = jt;
 	    
 	    if(jt_sub.pT() <= _pTCut) continue;
 	    jets_bkgsub.push_back(PseudoJet(jt_sub.px(), jt_sub.py(), jt_sub.pz(), jt_sub.E()));	  	
 	  }
 
 	  if(jets_bkgsub.size()==0){
 	    if(printDebug) std::cout<<"no reconstructed jets"<<std::endl;
 	    vetoEvent;
 	  }
 	    
 	  
 	  if(printDebug) std::cout<<"4MomSub! "<<std::endl;
 	  foreach ( const PseudoJet jet, jets_bkgsub ) {
 	    if(printDebug) std::cout<<"Jet pT = "<<jet.pt()<<std::endl;
 	    _h_JetpT->fill(jet.pt(), weight);	
 	    if(jet.pt() > 100){
 	      _h_JetMass->fill(jet.m(), weight);	
 	      _Njets+=weight;
 	    }
 	  }
 	  if(jets_bkgsub.size()>=2){
 	    if(jets_bkgsub.at(0).pt() >= 100 && jets_bkgsub.at(1).pt() >= 30){
 	      _Nevents+=weight;
 	      //! the Aj and delta phi
 	      double Aj = (jets_bkgsub.at(0).pt()-jets_bkgsub.at(1).pt())/
 		(jets_bkgsub.at(0).pt()+jets_bkgsub.at(1).pt());
 	      _h_JetAj->fill(Aj, weight);
 	      if(printDebug) std::cout<<"Aj = "<<Aj<<std::endl;
 	      double dphi = jets_bkgsub.at(0).phi() - jets_bkgsub.at(1).phi();
 	      if(dphi > M_PI) dphi = dphi-2*M_PI;
 	      _h_JetDphi->fill(dphi, weight);
 	      if(printDebug) std::cout<<"Dphi = "<<dphi<<std::endl;
 	    }
 	  }
 	}
 	
       }//! do sub methods 
       
     }//! analyze function
 
 
     void finalize() {
 
       scale(_h_JetpT, crossSection()/picobarn/sumOfWeights());
       scale(_h_JetMass, 1./_Njets);
       scale(_h_JetAj, 1./_Nevents);
       scale(_h_JetDphi, 1./_Nevents);
 
     }
 
 
   protected:
 
     double _Nevents;
     double _Njets;
     double _pTCut;
     double _jetR;
     double _jesCorrection;
     bool printDebug;
     vector<double> _etabins;
     vector<double> _phibins;
     int _Nbounds_eta;
     int _Nbounds_phi;
     double _delRMin;
     double _etaMax;
     double _phiMax;
     bool doGridSub;
     bool do4MomSub;
     bool isworecoils;
 
   private:
 
     Histo1DPtr _h_JetpT;
     Histo1DPtr _h_JetMass;
     Histo1DPtr _h_JetAj;
     Histo1DPtr _h_JetDphi;
 
   };
 
   class JEWEL_MethodComparisons_GridSub : public JEWEL_MethodComparisons {
   public:
     JEWEL_MethodComparisons_GridSub()
       : JEWEL_MethodComparisons("JEWEL_MethodComparisons_GridSub")
     {
       isworecoils=false;
       doGridSub=true;
       do4MomSub=false;        
     }
   };
 
   class JEWEL_MethodComparisons_4MomSub : public JEWEL_MethodComparisons {
   public:
     JEWEL_MethodComparisons_4MomSub()
       : JEWEL_MethodComparisons("JEWEL_MethodComparisons_4MomSub")
     {
       isworecoils=false;
       doGridSub=false;
       do4MomSub=true;        
     }
   };
 
 
   // The hook for the plugin system
   DECLARE_RIVET_PLUGIN(JEWEL_MethodComparisons);
   DECLARE_RIVET_PLUGIN(JEWEL_MethodComparisons_GridSub);
   DECLARE_RIVET_PLUGIN(JEWEL_MethodComparisons_4MomSub);
 
 
 }
Index: trunk/code/MC_JETMASS.cc
===================================================================
--- trunk/code/MC_JETMASS.cc	(revision 451)
+++ trunk/code/MC_JETMASS.cc	(revision 452)
@@ -1,175 +1,172 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
-#include "Rivet/RivetAIDA.hh"
 #include "Rivet/Tools/Logging.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/LeadingParticlesFinalState.hh"
 #include "Rivet/Projections/VetoedFinalState.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "fastjet/internal/base.hh"
 #include "fastjet/JetDefinition.hh"
 #include "fastjet/AreaDefinition.hh"
 #include "fastjet/ClusterSequence.hh"
 #include "fastjet/ClusterSequenceArea.hh"
 #include "fastjet/PseudoJet.hh"
 /// @todo Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...
 
 namespace Rivet {
 
 
   class MC_JETMASS : public Analysis {
   public:
 
     /// @name Constructors etc.
     //@{
 
     /// Constructor
     MC_JETMASS()
       : Analysis("MC_JETMASS")
     {    }
 
     //@}
 
 
   public:
 
     /// @name Analysis methods
     //@{
 
     /// Book histograms and initialise projections before the run
     void init() {
 
       FinalState fs(-5.0, 5.0, 0.*GeV);
       addProjection(fs, "FS");
 
       // Get leading photon
       LeadingParticlesFinalState photonfs(FinalState(-5., 5., 5.0*GeV));
-      photonfs.addParticleId(PHOTON);
+      photonfs.addParticleId(PID::PHOTON);
       addProjection(photonfs, "LeadingPhoton");
 
       // FS for jets excludes the leading photon
       VetoedFinalState vfs(fs);
       vfs.addVetoOnThisFinalState(photonfs);
       addProjection(vfs, "JetFS");
 	
 	FastJets fj(vfs, FastJets::ANTIKT, 0.4);
 	fj.useInvisibles();
       addProjection(fj, "Jets");
 
-	_h_jetmass  = bookHistogram1D("jetmass",  100, 0., 100.);
-	_h_jetmass2 = bookHistogram1D("jetmass2", 100, 0., 10000.);
-	_h_jetinmass = bookHistogram1D("jetinmass", 100, 0., 100.);
-	_h_jetinmassopt = bookHistogram1D("jetinmassopt", 100, 0., 1.);
-	_h_jetpt    = bookHistogram1D("jetpt", 100, 0., 300.);
-	_h_jetmassbin  = bookHistogram1D("jetmassbin", 100, 0., 100.);
-	_h_jetinmassbin = bookHistogram1D("jetinmassbin", 100, 0., 100.);
-      _h_jetmassdiff = bookHistogram1D("jetmassdiff",50, -4., 1.);
-	_h_dmininmass = bookHistogram2D("dmininmass", 100, 0., 100., 100, 0., 100.);
-	_h_dminmass   = bookHistogram2D("dminmass",   100, 0., 100., 100, 0., 100.);
+	_h_jetmass  = bookHisto1D("jetmass",  100, 0., 100.);
+	_h_jetmass2 = bookHisto1D("jetmass2", 100, 0., 10000.);
+	_h_jetinmass = bookHisto1D("jetinmass", 100, 0., 100.);
+	_h_jetinmassopt = bookHisto1D("jetinmassopt", 100, 0., 1.);
+	_h_jetpt    = bookHisto1D("jetpt", 100, 0., 300.);
+	_h_jetmassbin  = bookHisto1D("jetmassbin", 100, 0., 100.);
+	_h_jetinmassbin = bookHisto1D("jetinmassbin", 100, 0., 100.);
+      _h_jetmassdiff = bookHisto1D("jetmassdiff",50, -4., 1.);
+	_h_dmininmass = bookHisto2D("dmininmass", 100, 0., 100., 100, 0., 100.);
+	_h_dminmass   = bookHisto2D("dminmass",   100, 0., 100., 100, 0., 100.);
 
     }
 
 
     /// Perform the per-event analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
-	const double inpt = (event.genEvent().heavy_ion()?(event.genEvent().heavy_ion()->Ncoll_hard())*0.01:0.);
-	const double inmass = (event.genEvent().heavy_ion()?(event.genEvent().heavy_ion()->Npart_proj())*0.01:0.);
+	const double inpt = (event.genEvent()->heavy_ion()?(event.genEvent()->heavy_ion()->Ncoll_hard())*0.01:0.);
+	const double inmass = (event.genEvent()->heavy_ion()?(event.genEvent()->heavy_ion()->Npart_proj())*0.01:0.);
 
       const ParticleVector photons = applyProjection<FinalState>(event, "LeadingPhoton").particles();
       const Jets jets = applyProjection<FastJets>(event, "Jets").jetsByPt(20.*GeV);
 
 	if (jets.size() == 0) vetoEvent;
 
 	_h_jetinmass->fill(inmass, weight);
 	_h_jetinmassopt->fill(inmass/inpt, weight);
 	foreach(Jet jet, jets) {
         double jetmass2(jet.momentum().mass2());
 	  double jetmass(jetmass2>0.?sqrt(jetmass2):0.);
 	  double jetpt = jet.momentum().pT();
 	  _h_jetmass->fill(jetmass, weight);
 	  _h_jetmass2->fill(jetmass2, weight);
 	  _h_jetpt->fill(jetpt, weight);
 	  if (jetpt > 100. && jetpt < 120.) {
 	    _h_jetmassbin->fill(jetmass, weight);
 	    _h_jetinmassbin->fill(inmass,weight);
 	  }
 	}
 
 	Jet leadjet = jets[0];
       double jetmass2(leadjet.momentum().mass2());
 	double jetmass(jetmass2>0.?sqrt(jetmass2):0.);
 
 	_h_jetmassdiff->fill((jetmass-inmass)/jetmass,weight);
-	  if (inpt > 100. && inpt < 120. && inmass > 20. && inmass < 30.) _h_mult_lowm->fill(mult_lowm,weight);
+	  /*if (inpt > 100. && inpt < 120. && inmass > 20. && inmass < 30.) _h_mult_lowm->fill(mult_lowm,weight);
 	  if (inpt > 100. && inpt < 120. && inmass > 60. && inmass < 70.) _h_mult_highm->fill(mult_highm,weight);
 	  if (inpt > 40.  && inpt < 50.  && inmass > 20. && inmass < 30.) _h_mult_lowpt->fill(mult_lowpt,weight);
 	  if (inpt > 100. && inpt < 120. && inmass > 20. && inmass < 30.) _h_mult_highpt->fill(mult_highpt,weight);
 	  if (inmass/inpt < 0.2) _h_mult_lowmopt->fill(mult_lowmopt,weight);
-	  if (inmass/inpt > 0.5) _h_mult_highmopt->fill(mult_highmopt,weight);
+	  if (inmass/inpt > 0.5) _h_mult_highmopt->fill(mult_highmopt,weight);*/
       FastJets fjs(FastJets::JADE, 1.);
       fjs.calc(leadjet.particles());
       const fastjet::ClusterSequence* clusseq = fjs.clusterSeq();
 	//int nstep(clusseq->exclusive_jets(1)[0].constituents().size());
       double dmin = clusseq->exclusive_dmerge(1);
 //	std::cout<<sqrt(dmin)<<"  "<<inmass<<std::endl;
 	_h_dmininmass->fill(sqrt(dmin),inmass,1.);
 	_h_dminmass->fill(sqrt(dmin),jetmass,1.);
       //std::cout<<dmin<<"   "<<leadjet.momentum().mass2()<<"  "<<inmass*inmass<<std::endl;
 	vector<fastjet::PseudoJet> pjets;
       pjets = fastjet::sorted_by_pt(clusseq->exclusive_jets(1));
       }
 
-    }
-
 
     /// Normalise histograms etc., after the run
     void finalize() {
 
 	scale(_h_jetmass,crossSection()/sumOfWeights());
 	scale(_h_jetmass2,crossSection()/sumOfWeights());
 	scale(_h_jetinmass,crossSection()/sumOfWeights());
 	scale(_h_jetinmassopt,crossSection()/sumOfWeights());
 	scale(_h_jetpt,crossSection()/sumOfWeights());
 	scale(_h_jetmassbin,crossSection()/sumOfWeights());
 	scale(_h_jetinmassbin,crossSection()/sumOfWeights());
 	normalize(_h_dmininmass);
 	normalize(_h_dminmass);
 	normalize(_h_jetmassdiff);
 
     }
 
     //@}
 
 
   private:
 
     // Data members like post-cuts event weight counters go here
 
 
   private:
 
     /// @name Histograms
     //@{
 //    AIDA::IProfile1D *_h_XXXX;
-    AIDA::IHistogram1D *_h_jetmass;
-    AIDA::IHistogram1D *_h_jetmass2;
-    AIDA::IHistogram1D *_h_jetinmass;
-    AIDA::IHistogram1D *_h_jetinmassopt;
-    AIDA::IHistogram1D *_h_jetmassbin;
-    AIDA::IHistogram1D *_h_jetinmassbin;
-    AIDA::IHistogram1D *_h_jetpt;
-    AIDA::IHistogram1D *_h_jetmassdiff;
-    AIDA::IHistogram2D *_h_dmininmass;
-    AIDA::IHistogram2D *_h_dminmass;
+    Histo1DPtr _h_jetmass;
+    Histo1DPtr _h_jetmass2;
+    Histo1DPtr _h_jetinmass;
+    Histo1DPtr _h_jetinmassopt;
+    Histo1DPtr _h_jetmassbin;
+    Histo1DPtr _h_jetinmassbin;
+    Histo1DPtr _h_jetpt;
+    Histo1DPtr _h_jetmassdiff;
+    Histo2DPtr _h_dmininmass;
+    Histo2DPtr _h_dminmass;
     //@}
 
 
   };
 
 
 
   // The hook for the plugin system
   DECLARE_RIVET_PLUGIN(MC_JETMASS);
 
 }
Index: trunk/code/MC_BCKGRND.cc
===================================================================
--- trunk/code/MC_BCKGRND.cc	(revision 451)
+++ trunk/code/MC_BCKGRND.cc	(revision 452)
@@ -1,276 +1,275 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
-#include "Rivet/RivetAIDA.hh"
 #include "Rivet/Tools/Logging.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/LeadingParticlesFinalState.hh"
 #include "Rivet/Projections/VetoedFinalState.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "fastjet/AreaDefinition.hh"
 #include "fastjet/ClusterSequence.hh"
 #include "fastjet/ClusterSequenceArea.hh"
 /// @todo Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...
 
 namespace Rivet {
 
 
   class MC_BCKGRND : public Analysis {
   public:
 
     /// Constructor
     MC_BCKGRND()
       : Analysis("MC_BCKGRND")
     {    
-      setBeams(PROTON, PROTON);
       setNeedsCrossSection(true);
     }
     /// Book histograms and initialise projections before the run
     void init() {
 
       _Njet = 0.;
       _dRmin = 0.6; _dRmax = 2.0; _Delta = 0.1;
 
       // Get leading photon
       LeadingParticlesFinalState photonfs(FinalState(-2.5, 2.5, 50.0*GeV));
-      photonfs.addParticleId(PHOTON);
+      photonfs.addParticleId(PID::PHOTON);
       addProjection(photonfs, "LeadingPhoton");
       
       // FS for jets excludes the leading photon
       FinalState fs(-5.0, 5.5, 0.*GeV);
       addProjection(fs, "FS");
       VetoedFinalState vfs(fs);
       vfs.addVetoOnThisFinalState(photonfs);
       addProjection(vfs, "JetFS");
       
       _area_def = new fastjet::AreaDefinition(fastjet::VoronoiAreaSpec());
 
       FastJets fj02(vfs, FastJets::ANTIKT, 0.2);
       fj02.useInvisibles();
       fj02.useJetArea(_area_def);
       addProjection(fj02, "Jets02");
 
       FastJets fj05(vfs, FastJets::ANTIKT, 0.5);
       fj05.useInvisibles();
       fj05.useJetArea(_area_def);
       addProjection(fj05, "Jets05");
 
-      _h_partno  = bookHistogram1D("partno",  100, 0., 2.);
-      _h_partno2 = bookHistogram1D("partno2", 100, 0., 2.);
-      _h_partpt  = bookHistogram1D("partpt",  100, 0., 2.);
-      _h_partpt2 = bookHistogram1D("partpt2", 100, 0., 2.);
-      _h_partm   = bookHistogram1D("partm",   100, 0., 2.);
-      _h_jetpt_02       = bookHistogram1D("jetpt_0.2",  100, 25., 300.);
-      _h_jetpt_02_subl  = bookHistogram1D("jetpt_0.2_subl",  100, 25., 300.);
-      _h_jetpt_02_subc  = bookHistogram1D("jetpt_0.2_subc",  100, 25., 300.);
-      _h_jetpt_05       = bookHistogram1D("jetpt_0.5",  100, 25., 300.);
-      _h_jetpt_05_subl  = bookHistogram1D("jetpt_0.5_subl",  100, 25., 300.);
-      _h_jetpt_05_subc  = bookHistogram1D("jetpt_0.5_subc",  100, 25., 300.);
-      _h_jetm_02       = bookHistogram1D("jetm_0.2",  100, 0., 100.);
-      _h_jetm_02_subl  = bookHistogram1D("jetm_0.2_subl",  100, 0., 300.);
-      _h_jetm_02_subc  = bookHistogram1D("jetm_0.2_subc",  100, 0., 100.);
-      _h_jetm_05       = bookHistogram1D("jetm_0.5",  100, 0., 100.);
-      _h_jetm_05_subl  = bookHistogram1D("jetm_0.5_subl",  100, 0., 300.);
-      _h_jetm_05_subc  = bookHistogram1D("jetm_0.5_subc",  100, 0., 100.);
+      _h_partno  = bookHisto1D("partno",  100, 0., 2.);
+      _h_partno2 = bookHisto1D("partno2", 100, 0., 2.);
+      _h_partpt  = bookHisto1D("partpt",  100, 0., 2.);
+      _h_partpt2 = bookHisto1D("partpt2", 100, 0., 2.);
+      _h_partm   = bookHisto1D("partm",   100, 0., 2.);
+      _h_jetpt_02       = bookHisto1D("jetpt_0.2",  100, 25., 300.);
+      _h_jetpt_02_subl  = bookHisto1D("jetpt_0.2_subl",  100, 25., 300.);
+      _h_jetpt_02_subc  = bookHisto1D("jetpt_0.2_subc",  100, 25., 300.);
+      _h_jetpt_05       = bookHisto1D("jetpt_0.5",  100, 25., 300.);
+      _h_jetpt_05_subl  = bookHisto1D("jetpt_0.5_subl",  100, 25., 300.);
+      _h_jetpt_05_subc  = bookHisto1D("jetpt_0.5_subc",  100, 25., 300.);
+      _h_jetm_02       = bookHisto1D("jetm_0.2",  100, 0., 100.);
+      _h_jetm_02_subl  = bookHisto1D("jetm_0.2_subl",  100, 0., 300.);
+      _h_jetm_02_subc  = bookHisto1D("jetm_0.2_subc",  100, 0., 100.);
+      _h_jetm_05       = bookHisto1D("jetm_0.5",  100, 0., 100.);
+      _h_jetm_05_subl  = bookHisto1D("jetm_0.5_subl",  100, 0., 300.);
+      _h_jetm_05_subc  = bookHisto1D("jetm_0.5_subc",  100, 0., 100.);
 
     }
 
 
     void linfit(vector<double> histo, double & offset, double & slope, double & mean) {
       int nval(0);
       double sx(0.),sy(0.),sxx(0.),sxy(0.);
       for (size_t k = 0; k < histo.size(); ++k) {
 	if (histo[k] != 0.) {
 	  nval += 1;
 	  double x(_dRmin+(k+0.5)*_Delta);
 	  //	    double y(histo[k]==0.?-1e10:log(histo[k]));
 	  double y(log(histo[k]));
 	  sx  += x;
 	  sy  += y;
 	  sxx += sqr(x);
 	  sxy += x*y;
         }
       }
       //cout<<"linfit: "<<sx<<"  "<<sy<<"  "<<sxx<<"  "<<sxy<<endl;
       if (nval > 1) {
         double delta(nval*sxx-sx*sx);
         offset = exp((sxx*sy - sx*sxy)/delta);
         slope = (nval*sxy - sx*sy)/delta;
       }
       else {
 	offset = 0.;
 	slope = 0.;
       }
       //      sigoffset = exp(sqrt(sxx/delta));
       //      sigslope = sqrt(nval/delta);
       //      double var(0.);
       mean = 0.;
       for (size_t k = 0; k < histo.size(); ++k) {
 	//	  if (moms[k] != 0.) {
 	mean += histo[k];
 	//	    var += sqr(histo[k] - mean);
 	//        }
       }
       mean /= histo.size();
       //      sigmean = sqrt(var)/nval;
       return;
     }
 
 
     /// Perform the per-event analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
 
       const ParticleVector photons = applyProjection<FinalState>(event, "LeadingPhoton").particles();
       if (photons.size() != 1) vetoEvent;
 
-      const Jets jets02 = applyProjection<FastJets>(event, "Jets02").jetsByPt(25.*GeV, MAXDOUBLE*GeV, -2., 2.);
+      Cut cuts = Cuts::abseta < 2.0 && Cuts::pT > 25.*GeV;
+      const Jets jets02 = applyProjection<FastJets>(event, "Jets02").jetsByPt(cuts);
       if (jets02.size() == 0) vetoEvent;
       _Njet += weight;
 
       const VetoedFinalState& hadrons = applyProjection<VetoedFinalState>(event, "JetFS");
 
       size_t Nbin((_dRmax-_dRmin)/_Delta+1);
       vector<double> myhist;
       myhist.resize(Nbin,0.);
       vector<FourVector> myvechist;
       myvechist.resize(100);
       foreach (Particle part, hadrons.particles()) {
 	double dR(deltaR(jets02[0],part));
 	if (dR > 2.) continue;
 	double pt(part.momentum().pT());
 	_h_partno->fill(dR,weight);
 	_h_partno2->fill(dR,weight/dR);
 	_h_partpt->fill(dR,pt*weight);
 	_h_partpt2->fill(dR,pt*weight/dR);
 	for (size_t k = 0; k < Nbin; ++k) {
 	  if (dR > _dRmin+k*_Delta && dR < _dRmin+(k+1)*_Delta) myhist[k] += pt/dR/_Delta/2.;
 	  //	    if (dR < _dRmin+(k+1)*_Delta) myvechist[k] += part.momentum();
 	}
 	for (size_t k = 0; k < 100; ++k) {
 	  if (dR < (k+1)*0.02) myvechist[k] += part.momentum();
 	}
       }
 
       for (size_t k = 0; k < 100; ++k) {
 	_h_partm->fill((k+0.5)*0.02, sqrt(max(myvechist[k].mod2(),0.))*weight);
       }
 
       /*cout<<"====================================\n";
 	for (size_t k = 0; k < Nbin; ++k) {
 	cout<<k<<"   "<<_dRmin+(k+0.5)*_Delta<<"   "<<myhist[k]<<endl;
 	}
 	cout<<"------------------------------------\n";*/
       double fac, expfac, mean;
       linfit(myhist, fac, expfac, mean);
       double avrho02, avrho05;
       //cout<<fac<<"  "<<expfac<<"  "<<mean<<"  "<<jets02[0].momentum().pT()<<endl;
       if (mean/jets02[0].momentum().pT() < 0.01 || expfac == 0.) {
 	mean = 0.;
 	avrho02 = 0.;
 	avrho05 = 0.;
       }
       else {
 	avrho02 = (2.*M_PI*fac/sqr(expfac))*((expfac*0.2-1.)*exp(expfac*0.2) + 1.);
 	avrho02 /= M_PI*sqr(0.2);
 	avrho05 = (2.*M_PI*fac/sqr(expfac))*((expfac*0.5-1.)*exp(expfac*0.5) + 1.);
 	avrho02 /= M_PI*sqr(0.5);
       }
 
       foreach (const fastjet::PseudoJet& jet, applyProjection<FastJets>(event, "Jets02").pseudoJets(25.0*GeV)) {
 	if (fabs(jet.rapidity()) > 2.) continue;
 	double area = jet.area();
 	fastjet::PseudoJet area_pj = jet.area_4vector();
 	FourMomentum area_4vec(area_pj.E(), area_pj.px(), area_pj.py(), area_pj.pz());
 	FourMomentum oldmom(jet.E(),jet.px(),jet.py(),jet.pz());
 	FourMomentum newmoml(oldmom - avrho02*area_4vec);
 	FourMomentum newmomc(oldmom - mean*area_4vec);
 	double pt = jet.pt();
 	_h_jetpt_02->fill(pt,weight);
 	_h_jetpt_02_subl->fill(pt-area*avrho02,weight);
 	_h_jetpt_02_subc->fill(pt-area*mean,weight);
 	_h_jetm_02->fill(sqrt(max(oldmom.mass2(),0.)),weight);
 	_h_jetm_02_subl->fill(sqrt(max(newmoml.mass2(),0.)),weight);
 	_h_jetm_02_subc->fill(sqrt(max(newmomc.mass2(),0.)),weight);
       }
 
-      const Jets jets05 = applyProjection<FastJets>(event, "Jets05").jetsByPt(25.*GeV, MAXDOUBLE*GeV, -2., 2.);
+      const Jets jets05 = applyProjection<FastJets>(event, "Jets05").jetsByPt(cuts);
       foreach (const fastjet::PseudoJet& jet, applyProjection<FastJets>(event, "Jets05").pseudoJets(25.0*GeV)) {
 	if (fabs(jet.rapidity()) > 2.) continue;
 	double area = jet.area();
 	fastjet::PseudoJet area_pv = jet.area_4vector();
 	fastjet::PseudoJet area_pj = jet.area_4vector();
 	FourMomentum area_4vec(area_pj.E(), area_pj.px(), area_pj.py(), area_pj.pz());
 	FourMomentum oldmom(jet.E(),jet.px(),jet.py(),jet.pz());
 	FourMomentum newmoml(oldmom - avrho05*area_4vec);
 	FourMomentum newmomc(oldmom - mean*area_4vec);
 	double pt = jet.pt();
 	_h_jetpt_05->fill(pt,weight);
 	_h_jetpt_05_subl->fill(pt-area*avrho05,weight);
 	_h_jetpt_05_subc->fill(pt-area*mean,weight);
 	_h_jetm_05->fill(sqrt(max(oldmom.mass2(),0.)),weight);
 	_h_jetm_05_subl->fill(sqrt(max(newmoml.mass2(),0.)),weight);
 	_h_jetm_05_subc->fill(sqrt(max(newmomc.mass2(),0.)),weight);
       }
 
 
     }
 
 
     /// Normalise histograms etc., after the run
     void finalize() {
 
       scale(_h_partno, 1./_Njet);
       scale(_h_partno2, 1./_Njet);
       scale(_h_partpt, 1./_Njet);
       scale(_h_partpt2, 1./_Njet);
       scale(_h_partm, 1./_Njet);
       scale(_h_jetpt_02,      crossSection()/sumOfWeights());
       scale(_h_jetpt_02_subl, crossSection()/sumOfWeights());
       scale(_h_jetpt_02_subc, crossSection()/sumOfWeights());
       scale(_h_jetpt_05,      crossSection()/sumOfWeights());
       scale(_h_jetpt_05_subl, crossSection()/sumOfWeights());
       scale(_h_jetpt_05_subc, crossSection()/sumOfWeights());
       scale(_h_jetm_02,       crossSection()/sumOfWeights());
       scale(_h_jetm_02_subl, crossSection()/sumOfWeights());
       scale(_h_jetm_02_subc, crossSection()/sumOfWeights());
       scale(_h_jetm_05,      crossSection()/sumOfWeights());
       scale(_h_jetm_05_subl, crossSection()/sumOfWeights());
       scale(_h_jetm_05_subc, crossSection()/sumOfWeights());
 	
     }
 
 
   private:
 
     fastjet::AreaDefinition* _area_def;
     double _Njet, _dRmin, _dRmax, _Delta;
 
   private:
 
-    AIDA::IHistogram1D *_h_partno;
-    AIDA::IHistogram1D *_h_partno2;
-    AIDA::IHistogram1D *_h_partpt;
-    AIDA::IHistogram1D *_h_partpt2;
-    AIDA::IHistogram1D *_h_partm;
-    AIDA::IHistogram1D *_h_jetpt_02;
-    AIDA::IHistogram1D *_h_jetpt_02_subl;
-    AIDA::IHistogram1D *_h_jetpt_02_subc;
-    AIDA::IHistogram1D *_h_jetpt_05;
-    AIDA::IHistogram1D *_h_jetpt_05_subl;
-    AIDA::IHistogram1D *_h_jetpt_05_subc;
-    AIDA::IHistogram1D *_h_jetm_02;
-    AIDA::IHistogram1D *_h_jetm_02_subl;
-    AIDA::IHistogram1D *_h_jetm_02_subc;
-    AIDA::IHistogram1D *_h_jetm_05;
-    AIDA::IHistogram1D *_h_jetm_05_subl;
-    AIDA::IHistogram1D *_h_jetm_05_subc;
+    Histo1DPtr _h_partno;
+    Histo1DPtr _h_partno2;
+    Histo1DPtr _h_partpt;
+    Histo1DPtr _h_partpt2;
+    Histo1DPtr _h_partm;
+    Histo1DPtr _h_jetpt_02;
+    Histo1DPtr _h_jetpt_02_subl;
+    Histo1DPtr _h_jetpt_02_subc;
+    Histo1DPtr _h_jetpt_05;
+    Histo1DPtr _h_jetpt_05_subl;
+    Histo1DPtr _h_jetpt_05_subc;
+    Histo1DPtr _h_jetm_02;
+    Histo1DPtr _h_jetm_02_subl;
+    Histo1DPtr _h_jetm_02_subc;
+    Histo1DPtr _h_jetm_05;
+    Histo1DPtr _h_jetm_05_subl;
+    Histo1DPtr _h_jetm_05_subc;
 
 
   };
 
 
 
   // The hook for the plugin system
   DECLARE_RIVET_PLUGIN(MC_BCKGRND);
 
 }
Index: trunk/code/hadronspectra.cc
===================================================================
--- trunk/code/hadronspectra.cc	(revision 451)
+++ trunk/code/hadronspectra.cc	(revision 452)
@@ -1,326 +1,324 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Tools/Logging.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 #include "Rivet/Projections/IdentifiedFinalState.hh"
-#include "Rivet/RivetAIDA.hh"
 
 namespace Rivet {
 
 
   /// @brief hadron spectra in pp
   class HADRONSPECTRA : public Analysis {
   public:
 
     /// Constructor
     HADRONSPECTRA()
       : Analysis("HADRONSPECTRA"),
         _sumWeightSelected(0.0)
     {
-      setBeams(PROTON, PROTON);
       setNeedsCrossSection(true);
     }
 
     /// Book projections and histograms
     void init() {
       IdentifiedFinalState pi0fs(-10., 10., 0.*GeV);
       pi0fs.acceptId(111);
       addProjection(pi0fs, "PI0FS");
 
       IdentifiedFinalState pifs(-10., 10., 0.*GeV);
       pifs.acceptId(211);
       addProjection(pifs, "PIFS");
 
       IdentifiedFinalState kfs(-10., 10., 0.*GeV);
       kfs.acceptId(130);
       kfs.acceptId(310);
       kfs.acceptId(311);
       kfs.acceptId(321);
       addProjection(kfs, "KFS");
 
       IdentifiedFinalState pfs(-10., 10., 0.*GeV);
       pfs.acceptId(2212);
       addProjection(pfs, "PFS");
 
 	ChargedFinalState cfs(-10., 10., 0.*GeV);
       addProjection(cfs, "CFS");
 
 	FinalState fs(-10., 10., 0.*GeV);
       addProjection(fs, "FS");
 
 	vector<double> ptbins;
 	ptbins += 12.0, 14.4,19.2, 24.0, 28.8, 35.2, 41.6, 48.0, 60.8,73.6,86.4,103.6,120.8,140,165,250,400;
 
-      _h_pT_pi0_035     = bookHistogram1D("pi0ptspec", 50, 0.0, 200.0,
+      _h_pT_pi0_035     = bookHisto1D("pi0ptspec", 50, 0.0, 200.0,
                                    "pi0 $p_\\perp$ spectrum $|\\eta|<0.35$",
                                    "$p_\\perp\\ [\\mathrm{GeV}]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}p_\\perp$");
-      _h_pT_ch_08       = bookHistogram1D("chptspec08", 50, 0.0, 200.0,
+      _h_pT_ch_08       = bookHisto1D("chptspec08", 50, 0.0, 200.0,
                                    "charged hadron $p_\\perp$ spectrum $|\\eta|<0.8$",
                                    "$p_\\perp\\ [\\mathrm{GeV}]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}p_\\perp$");
 
-      _h_pT_ch_1        = bookHistogram1D("chptspec1", 50, 0.0, 200.0,
+      _h_pT_ch_1        = bookHisto1D("chptspec1", 50, 0.0, 200.0,
                                    "charged hadron $p_\\perp$ spectrum $|\\eta|<1.$",
                                    "$p_\\perp\\ [\\mathrm{GeV}]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}p_\\perp$");
 
-      _h_pT_ch_2        = bookHistogram1D("chptspec2", 50, 0.0, 200.0,
+      _h_pT_ch_2        = bookHisto1D("chptspec2", 50, 0.0, 200.0,
                                    "charged hadron $p_\\perp$ spectrum $|\\eta|<2.$",
                                    "$p_\\perp\\ [\\mathrm{GeV}]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}p_\\perp$");
 
-      _h_pT_ch_3        = bookHistogram1D("chptspec3", 50, 0.0, 200.0,
+      _h_pT_ch_3        = bookHisto1D("chptspec3", 50, 0.0, 200.0,
                                    "charged hadron $p_\\perp$ spectrum $|\\eta|<3.$",
                                    "$p_\\perp\\ [\\mathrm{GeV}]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}p_\\perp$");
 
-      _h_pT_ch_10       = bookHistogram1D("chptspec10", 50, 0.0, 200.0,
+      _h_pT_ch_10       = bookHisto1D("chptspec10", 50, 0.0, 200.0,
                                    "charged hadron $p_\\perp$ spectrum $|\\eta|<10.$",
                                    "$p_\\perp\\ [\\mathrm{GeV}]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}p_\\perp$");
 
-      _h_E_ch_1         = bookHistogram1D("chespec1", 50, 0.0, 1000.0,
+      _h_E_ch_1         = bookHisto1D("chespec1", 50, 0.0, 1000.0,
                                    "charged hadron energy spectrum $|\\eta|<1.$",
                                    "$E\\ [\\mathrm{GeV}]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}E$");
 
-      _h_E_ch_2         = bookHistogram1D("chespec2", 50, 0.0, 1000.0,
+      _h_E_ch_2         = bookHisto1D("chespec2", 50, 0.0, 1000.0,
                                    "charged hadron energy spectrum $|\\eta|<2.$",
                                    "$E\\ [\\mathrm{GeV}]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}E$");
 
-      _h_E_ch_3         = bookHistogram1D("chespec3", 50, 0.0, 1000.0,
+      _h_E_ch_3         = bookHisto1D("chespec3", 50, 0.0, 1000.0,
                                    "charged hadron energy spectrum $|\\eta|<3.$",
                                    "$E\\ [\\mathrm{GeV}]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}E$");
 
-      _h_E_ch_10        = bookHistogram1D("chespec10", 50, 0.0, 1000.0,
+      _h_E_ch_10        = bookHisto1D("chespec10", 50, 0.0, 1000.0,
                                    "charged hadron energy spectrum $|\\eta|<10.$",
                                    "$E\\ [\\mathrm{GeV}]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}E$");
 
-      _h_pT_ch_1h       = bookHistogram1D("chptspec1high", 40, 0.0, 1000.0,
+      _h_pT_ch_1h       = bookHisto1D("chptspec1high", 40, 0.0, 1000.0,
                                    "charged hadron $p_\\perp$ spectrum $|\\eta|<1.$",
                                    "$p_\\perp\\ [\\mathrm{GeV}]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}p_\\perp$");
 
-      _h_pT_ch_1h2       = bookHistogram1D("chptspec1high2", 20, 112.2, 1000.0,
+      _h_pT_ch_1h2       = bookHisto1D("chptspec1high2", 20, 112.2, 1000.0,
                                    "charged hadron $p_\\perp$ spectrum $|\\eta|<1.$",
                                    "$p_\\perp\\ [\\mathrm{GeV}]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}p_\\perp$");
 
-      _h_pT_ch_2h       = bookHistogram1D("chptspec2high", 40, 0.0, 1000.0,
+      _h_pT_ch_2h       = bookHisto1D("chptspec2high", 40, 0.0, 1000.0,
                                    "charged hadron $p_\\perp$ spectrum $|\\eta|<2.$",
                                    "$p_\\perp\\ [\\mathrm{GeV}]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}p_\\perp$");
 
-      _h_pT_ch_3h       = bookHistogram1D("chptspec3high", 40, 0.0, 1000.0,
+      _h_pT_ch_3h       = bookHisto1D("chptspec3high", 40, 0.0, 1000.0,
                                    "charged hadron $p_\\perp$ spectrum $|\\eta|<3.$",
                                    "$p_\\perp\\ [\\mathrm{GeV}]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}p_\\perp$");
 
-      _h_pT_ch_10h      = bookHistogram1D("chptspec10high", 40, 0.0, 1000.0,
+      _h_pT_ch_10h      = bookHisto1D("chptspec10high", 40, 0.0, 1000.0,
                                    "charged hadron $p_\\perp$ spectrum $|\\eta|<10.$",
                                    "$p_\\perp\\ [\\mathrm{GeV}]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}p_\\perp$");
 
-      _h_E_ch_1h        = bookHistogram1D("chespec1high", 100, 0.0, 2000.0,
+      _h_E_ch_1h        = bookHisto1D("chespec1high", 100, 0.0, 2000.0,
                                    "charged hadron energy spectrum $|\\eta|<1.$",
                                    "$E\\ [\\mathrm{GeV}]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}E$");
 
-      _h_E_ch_2h        = bookHistogram1D("chespec2high", 100, 0.0, 2000.0,
+      _h_E_ch_2h        = bookHisto1D("chespec2high", 100, 0.0, 2000.0,
                                    "charged hadron energy spectrum $|\\eta|<2.$",
                                    "$E\\ [\\mathrm{GeV}]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}E$");
 
-      _h_E_ch_3h        = bookHistogram1D("chespec3high", 100, 0.0, 2000.0,
+      _h_E_ch_3h        = bookHisto1D("chespec3high", 100, 0.0, 2000.0,
                                    "charged hadron energy spectrum $|\\eta|<3.$",
                                    "$E\\ [\\mathrm{GeV}]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}E$");
 
-      _h_E_ch_10h       = bookHistogram1D("chespec10high", 100, 0.0, 2000.0,
+      _h_E_ch_10h       = bookHisto1D("chespec10high", 100, 0.0, 2000.0,
                                    "charged hadron energy spectrum $|\\eta|<10.$",
                                    "$E\\ [\\mathrm{GeV}]$",
                                    "$\\mathrm{d}\\sigma/\\mathrm{d}E$");
 
-      _h_chpT1   = bookHistogram1D("chpT1", ptbins);
-      _h_chpT10  = bookHistogram1D("chpT10", ptbins);
-      _h_allpT1  = bookHistogram1D("allpT1", ptbins);
-      _h_allpT10 = bookHistogram1D("allpT10", ptbins);
-      _h_pi0pT1   = bookHistogram1D("pi0pT1", ptbins);
-      _h_pi0pT10  = bookHistogram1D("pi0pT10", ptbins);
-      _h_pipT1   = bookHistogram1D("pipT1", ptbins);
-      _h_pipT10  = bookHistogram1D("pipT10", ptbins);
-      _h_KpT1   = bookHistogram1D("KpT1", ptbins);
-      _h_KpT10  = bookHistogram1D("KpT10", ptbins);
-      _h_ppT1   = bookHistogram1D("ppT1", ptbins);
-      _h_ppT10  = bookHistogram1D("ppT10", ptbins);
+      _h_chpT1   = bookHisto1D("chpT1", ptbins);
+      _h_chpT10  = bookHisto1D("chpT10", ptbins);
+      _h_allpT1  = bookHisto1D("allpT1", ptbins);
+      _h_allpT10 = bookHisto1D("allpT10", ptbins);
+      _h_pi0pT1   = bookHisto1D("pi0pT1", ptbins);
+      _h_pi0pT10  = bookHisto1D("pi0pT10", ptbins);
+      _h_pipT1   = bookHisto1D("pipT1", ptbins);
+      _h_pipT10  = bookHisto1D("pipT10", ptbins);
+      _h_KpT1   = bookHisto1D("KpT1", ptbins);
+      _h_KpT10  = bookHisto1D("KpT10", ptbins);
+      _h_ppT1   = bookHisto1D("ppT1", ptbins);
+      _h_ppT10  = bookHisto1D("ppT10", ptbins);
     }
 
 
     /// Do the analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
 
       const IdentifiedFinalState& pi0fs = applyProjection<IdentifiedFinalState>(event, "PI0FS");
       foreach (const Particle& p, pi0fs.particles()) {
         const double pT = p.momentum().pT() / GeV;
         if (fabs(p.momentum().eta()) < 0.35) _h_pT_pi0_035->fill(pT, weight);
         if (fabs(p.momentum().eta()) < 1.) _h_pi0pT1->fill(pT, weight);
         _h_pi0pT10->fill(pT, weight);
       }
       const IdentifiedFinalState& pifs = applyProjection<IdentifiedFinalState>(event, "PIFS");
       foreach (const Particle& p, pifs.particles()) {
         const double pT = p.momentum().pT() / GeV;
         if (fabs(p.momentum().eta()) < 1.) _h_pipT1->fill(pT, weight);
         _h_pipT10->fill(pT, weight);
       }
       const IdentifiedFinalState& kfs = applyProjection<IdentifiedFinalState>(event, "KFS");
       foreach (const Particle& p, kfs.particles()) {
         const double pT = p.momentum().pT() / GeV;
         if (fabs(p.momentum().eta()) < 1.) _h_KpT1->fill(pT, weight);
         _h_KpT10->fill(pT, weight);
       }
       const IdentifiedFinalState& pfs = applyProjection<IdentifiedFinalState>(event, "PFS");
       foreach (const Particle& p, pfs.particles()) {
         const double pT = p.momentum().pT() / GeV;
         if (fabs(p.momentum().eta()) < 1.) _h_ppT1->fill(pT, weight);
         _h_ppT10->fill(pT, weight);
       }
       
       const ChargedFinalState& cfs = applyProjection<ChargedFinalState>(event, "CFS");
       foreach (const Particle& p, cfs.particles()) {
         if (fabs(p.momentum().eta()) < 0.8) {
           const double pT = p.momentum().pT() / GeV;
           _h_pT_ch_08->fill(pT, weight);
         }
         if (fabs(p.momentum().eta()) < 1.) {
           const double pT = p.momentum().pT() / GeV;
           const double E  = p.momentum().E() / GeV;
           _h_pT_ch_1->fill(pT, weight);
           _h_E_ch_1->fill(E, weight);
           _h_pT_ch_1h->fill(pT, weight);
           _h_pT_ch_1h2->fill(pT, weight/pT);
           _h_E_ch_1h->fill(E, weight);
 	    _h_chpT1->fill(pT,weight);
         }
         if (fabs(p.momentum().eta()) < 2.) {
           const double pT = p.momentum().pT() / GeV;
           const double E  = p.momentum().E() / GeV;
           _h_pT_ch_2->fill(pT, weight);
           _h_E_ch_2->fill(E, weight);
           _h_pT_ch_2h->fill(pT, weight);
           _h_E_ch_2h->fill(E, weight);
         }
         if (fabs(p.momentum().eta()) < 3.) {
           const double pT = p.momentum().pT() / GeV;
           const double E  = p.momentum().E() / GeV;
           _h_pT_ch_3->fill(pT, weight);
           _h_E_ch_3->fill(E, weight);
           _h_pT_ch_3h->fill(pT, weight);
           _h_E_ch_3h->fill(E, weight);
         }
         if (fabs(p.momentum().eta()) < 10.) {
           const double pT = p.momentum().pT() / GeV;
           const double E  = p.momentum().E() / GeV;
           _h_pT_ch_10->fill(pT, weight);
           _h_E_ch_10->fill(E, weight);
           _h_pT_ch_10h->fill(pT, weight);
           _h_E_ch_10h->fill(E, weight);
 	    _h_chpT10->fill(pT,weight);
         }
       }
       
       const FinalState& fs = applyProjection<FinalState>(event, "FS");
       foreach (const Particle& p, fs.particles()) {
         const double pT = p.momentum().pT() / GeV;
         if (fabs(p.momentum().eta()) < 1.) _h_allpT1->fill(pT,weight);
         if (fabs(p.momentum().eta()) < 10.) _h_allpT10->fill(pT,weight);
 	}
 
       _sumWeightSelected += event.weight();
     }
 
 
     /// Finalize
     void finalize() {
       scale(_h_pT_pi0_035,crossSection()/(_sumWeightSelected));
       scale(_h_pT_ch_08,crossSection()/(_sumWeightSelected));
       scale(_h_pT_ch_1,crossSection()/(_sumWeightSelected));
       scale(_h_pT_ch_2,crossSection()/(_sumWeightSelected));
       scale(_h_pT_ch_3,crossSection()/(_sumWeightSelected));
       scale(_h_pT_ch_10,crossSection()/(_sumWeightSelected));
       scale(_h_E_ch_1,crossSection()/(_sumWeightSelected));
       scale(_h_E_ch_2,crossSection()/(_sumWeightSelected));
       scale(_h_E_ch_3,crossSection()/(_sumWeightSelected));
       scale(_h_E_ch_10,crossSection()/(_sumWeightSelected));
       scale(_h_pT_ch_1h,crossSection()/(_sumWeightSelected));
       scale(_h_pT_ch_1h2,1./(2.*M_PI*_sumWeightSelected));
       scale(_h_pT_ch_2h,crossSection()/(_sumWeightSelected));
       scale(_h_pT_ch_3h,crossSection()/(_sumWeightSelected));
       scale(_h_pT_ch_10h,crossSection()/(_sumWeightSelected));
       scale(_h_E_ch_1h,crossSection()/(_sumWeightSelected));
       scale(_h_E_ch_2h,crossSection()/(_sumWeightSelected));
       scale(_h_E_ch_3h,crossSection()/(_sumWeightSelected));
       scale(_h_E_ch_10h,crossSection()/(_sumWeightSelected));
       scale(_h_chpT1,crossSection()/(_sumWeightSelected));
       scale(_h_chpT10,crossSection()/(_sumWeightSelected));
       scale(_h_allpT1,crossSection()/(_sumWeightSelected));
       scale(_h_allpT10,crossSection()/(_sumWeightSelected));
       scale(_h_pi0pT1,crossSection()/(_sumWeightSelected));
       scale(_h_pi0pT10,crossSection()/(_sumWeightSelected));
       scale(_h_pipT1,crossSection()/(_sumWeightSelected));
       scale(_h_pipT10,crossSection()/(_sumWeightSelected));
       scale(_h_KpT1,crossSection()/(_sumWeightSelected));
       scale(_h_KpT10,crossSection()/(_sumWeightSelected));
       scale(_h_ppT1,crossSection()/(_sumWeightSelected));
       scale(_h_ppT10,crossSection()/(_sumWeightSelected));
       getLog() << Log::DEBUG << "sumOfWeights()     = " << sumOfWeights() << std::endl;
       getLog() << Log::DEBUG << "_sumWeightSelected = " << _sumWeightSelected << std::endl;
     }
 
   private:
 
     double _sumWeightSelected;
 
-    AIDA::IHistogram1D * _h_pT_pi0_035;
-    AIDA::IHistogram1D * _h_pT_ch_08;
-    AIDA::IHistogram1D * _h_pT_ch_1;
-    AIDA::IHistogram1D * _h_pT_ch_2;
-    AIDA::IHistogram1D * _h_pT_ch_3;
-    AIDA::IHistogram1D * _h_pT_ch_10;
-    AIDA::IHistogram1D * _h_E_ch_1;
-    AIDA::IHistogram1D * _h_E_ch_2;
-    AIDA::IHistogram1D * _h_E_ch_3;
-    AIDA::IHistogram1D * _h_E_ch_10;
-    AIDA::IHistogram1D * _h_pT_ch_1h;
-    AIDA::IHistogram1D * _h_pT_ch_1h2;
-    AIDA::IHistogram1D * _h_pT_ch_2h;
-    AIDA::IHistogram1D * _h_pT_ch_3h;
-    AIDA::IHistogram1D * _h_pT_ch_10h;
-    AIDA::IHistogram1D * _h_E_ch_1h;
-    AIDA::IHistogram1D * _h_E_ch_2h;
-    AIDA::IHistogram1D * _h_E_ch_3h;
-    AIDA::IHistogram1D * _h_E_ch_10h;
-    AIDA::IHistogram1D * _h_chpT1;
-    AIDA::IHistogram1D * _h_chpT10;
-    AIDA::IHistogram1D * _h_allpT1;
-    AIDA::IHistogram1D * _h_allpT10;
-    AIDA::IHistogram1D * _h_pi0pT1;
-    AIDA::IHistogram1D * _h_pi0pT10;
-    AIDA::IHistogram1D * _h_pipT1;
-    AIDA::IHistogram1D * _h_pipT10;
-    AIDA::IHistogram1D * _h_KpT1;
-    AIDA::IHistogram1D * _h_KpT10;
-    AIDA::IHistogram1D * _h_ppT1;
-    AIDA::IHistogram1D * _h_ppT10;
+    Histo1DPtr _h_pT_pi0_035;
+    Histo1DPtr _h_pT_ch_08;
+    Histo1DPtr _h_pT_ch_1;
+    Histo1DPtr _h_pT_ch_2;
+    Histo1DPtr _h_pT_ch_3;
+    Histo1DPtr _h_pT_ch_10;
+    Histo1DPtr _h_E_ch_1;
+    Histo1DPtr _h_E_ch_2;
+    Histo1DPtr _h_E_ch_3;
+    Histo1DPtr _h_E_ch_10;
+    Histo1DPtr _h_pT_ch_1h;
+    Histo1DPtr _h_pT_ch_1h2;
+    Histo1DPtr _h_pT_ch_2h;
+    Histo1DPtr _h_pT_ch_3h;
+    Histo1DPtr _h_pT_ch_10h;
+    Histo1DPtr _h_E_ch_1h;
+    Histo1DPtr _h_E_ch_2h;
+    Histo1DPtr _h_E_ch_3h;
+    Histo1DPtr _h_E_ch_10h;
+    Histo1DPtr _h_chpT1;
+    Histo1DPtr _h_chpT10;
+    Histo1DPtr _h_allpT1;
+    Histo1DPtr _h_allpT10;
+    Histo1DPtr _h_pi0pT1;
+    Histo1DPtr _h_pi0pT10;
+    Histo1DPtr _h_pipT1;
+    Histo1DPtr _h_pipT10;
+    Histo1DPtr _h_KpT1;
+    Histo1DPtr _h_KpT10;
+    Histo1DPtr _h_ppT1;
+    Histo1DPtr _h_ppT10;
   };
 
 
 
   // This global object acts as a hook for the plugin system
   AnalysisBuilder<HADRONSPECTRA> plugin_HADRONSPECTRA;
 
 }
Index: trunk/code/MC_AJ.cc
===================================================================
--- trunk/code/MC_AJ.cc	(revision 451)
+++ trunk/code/MC_AJ.cc	(revision 452)
@@ -1,205 +1,202 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 #include "Rivet/Tools/Logging.hh"
-#include "Rivet/RivetAIDA.hh"
 #include <boost/lexical_cast.hpp>
 #include <map>
 namespace Rivet {
 
 
   /// @brief CMS charged particle fragmentation function in PbPb
   class MC_AJ : public Analysis {
   public:
 
     /// Constructor
     MC_AJ() : Analysis("MC_AJ")
     {
-      setBeams(PROTON, PROTON);
       setNeedsCrossSection(true);
     }
 
     /// Book projections and histograms
     void init() {
 
 	_ptedges += 120., 150., 180., 200., 260., 300., 500.;
 	_nptbins   = _ptedges.size()-1;
 
       FinalState fs(-5.0, 5.0, 0.*GeV);
 	addProjection(fs, "FS");
       ChargedFinalState cfs(-5.0, 5.0, 4.*GeV);
 	addProjection(cfs, "CFS");
 	
 	FastJets fj03(fs, FastJets::ANTIKT, 0.3);
       addProjection(fj03, "Jets03");
 
       for (size_t j = 0; j < _nptbins; ++j) {
         stringstream ss1; ss1 << "deltaphi" << "_" << j;
-	  _h_deltaphi[j] = bookHistogram1D(ss1.str(), 30, 0., M_PI);
+	  _h_deltaphi[j] = bookHisto1D(ss1.str(), 30, 0., M_PI);
         stringstream ss2; ss2 << "aj" << "_" << j;
-	  _h_aj[j]       = bookHistogram1D(ss2.str(), 15, 0., 1.);
+	  _h_aj[j]       = bookHisto1D(ss2.str(), 15, 0., 1.);
         stringstream ss3; ss3 << "ptratio" << "_" << j;
-	  _h_ptratio1[j] = bookHistogram1D(ss3.str(), 10, 0., 1.);
+	  _h_ptratio1[j] = bookHisto1D(ss3.str(), 10, 0., 1.);
       }
-	_h_aj_all = bookHistogram1D("aj_all", 15, 0., 1.);
-	_h_aj_all_xs = bookHistogram1D("aj_all_xs", 15, 0., 1.);
-	_h_dijets_p   = bookHistogram1D("N_di-jets_pp", 20, 120., 350.);
-	_h_leadjets_p = bookHistogram1D("N_lead-jets_pp", 20, 120., 350.);
-	_h_dijets_pb  = bookHistogram1D("N_di-jets_PbPb", 20, 120., 350.);
-	_h_leadjets_pb= bookHistogram1D("N_lead-jets_PbPb", 20, 120., 350.);
+	_h_aj_all = bookHisto1D("aj_all", 15, 0., 1.);
+	_h_aj_all_xs = bookHisto1D("aj_all_xs", 15, 0., 1.);
+	_h_dijets_p   = bookHisto1D("N_di-jets_pp", 20, 120., 350.);
+	_h_leadjets_p = bookHisto1D("N_lead-jets_pp", 20, 120., 350.);
+	_h_dijets_pb  = bookHisto1D("N_di-jets_PbPb", 20, 120., 350.);
+	_h_leadjets_pb= bookHisto1D("N_lead-jets_PbPb", 20, 120., 350.);
+	_s_P2ndjet_p = bookScatter2D("P2ndjet_pp", 20, 120., 350.);
+	_s_P2ndjet_Pb = bookScatter2D("P2ndjet_PbPb", 20, 120., 350.);
 	_p_ptratio2  = bookProfile1D("meanptratio", 20, 120., 300.);
 
     }
        
     struct jetcomp{
       bool operator() (const Jet jet1, const Jet jet2) const
       {
         if (jet1.momentum().pT() < jet2.momentum().pT()) return true;
         else return false;
       }
     };
 
     double ptsmear(const double pttrue, const double cent) {
 	double sigma(25.), mu(50.);
 	double r1(1.0*rand()/RAND_MAX), r2(1.0*rand()/RAND_MAX);
 	double sub(max(sqrt(-2.*log(r1))*cos(2.*M_PI*r2)*sigma+mu,0.));
 	return max(pttrue-sub,0.);
     } 
    
     /// Do the analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
-	const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
+	const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
 //      const Jets jets = applyProjection<FastJets>(event, "Jets03").jetsByPt(30.*GeV, MAXDOUBLE*GeV, -2.0, 2.0);
-      const Jets jets03 = applyProjection<FastJets>(event, "Jets03").jetsByPt(5.*GeV, MAXDOUBLE*GeV, -2.0, 2.0);
+      Cut cuts = Cuts::abseta < 2.0 && Cuts::pT > 5*GeV;
+      const Jets jets03 = applyProjection<FastJets>(event, "Jets03").jetsByPt(cuts);
       const ChargedFinalState tracks = applyProjection<ChargedFinalState>(event, "CFS");
 
 
 	map<Jet, double, jetcomp> jetmap;
 	foreach (Jet jet, jets03) {
 	  double ptreco, ptgen;
 	  ptgen = jet.momentum().pT();
 	  ptreco = ptsmear(ptgen,cent);
 //	  jetmap[jet] = ptreco;
 	  jetmap[jet] = ptgen;
       }
 
       Jets jets;
       foreach (Jet jet, jets03) {
         if (fabs(jet.momentum().eta()) < 2.0 && jetmap[jet] > 30.*GeV)
           jets.push_back(jet);
       }
 
 
       if (jets.size() < 1) vetoEvent;
 
 //	Jet leadjet, partner;
 //	leadjet = jets[0];
 //	double ptlead(leadjet.momentum().pT());
 	Jet leadjet, partner;
 	double ptlead(0.), ptsublead(0.);
 	foreach (Jet jet, jets) {
 	  if (jetmap[jet] > ptlead) {
 	    ptlead = jetmap[jet];
 	    leadjet = jet;
 	  }
       }
 
 	if (ptlead < _ptedges.front()*GeV) vetoEvent;
 
 	if (cent<0.) _h_leadjets_p->fill(ptlead,weight);
 	_h_leadjets_pb->fill(ptlead,weight);
 
       if (jets.size() < 2) vetoEvent;
 
 //	partner = jets[1];
 //	double ptsublead(partner.momentum().pT());
 	foreach (Jet jet, jets) {
 	  if (jetmap[jet] > ptsublead && jet.momentum()!=leadjet.momentum()) {
 	    ptsublead = jetmap[jet];
 	    partner = jet;
 	  }
       }
 
 	double deltaphi = fabs(deltaPhi(leadjet,partner));
 
       for (size_t j = 0; j < _nptbins; ++j) {
 	  if (ptlead > _ptedges[j]*GeV && ptlead < _ptedges[j+1]*GeV) {
           _h_deltaphi[j]->fill(deltaphi,weight);
         }
 	}
 
       if (deltaphi < 2.*M_PI/3.) vetoEvent;
 
 	if (cent<0.) _h_dijets_p->fill(ptlead,weight);
 	_h_dijets_pb->fill(ptlead,weight);
 	_p_ptratio2->fill(ptlead,ptsublead/ptlead,weight);
 
       Rivet::FourMomentum leading, sublead;
 	leading = leadjet.momentum();
 	sublead = partner.momentum();
 		
 	double aj = (ptlead-ptsublead)/(ptlead+ptsublead);
 
       _h_aj_all->fill(aj,weight);
       _h_aj_all_xs->fill(aj,weight);
       for (size_t j = 0; j < _nptbins; ++j) {
 	  if (ptlead > _ptedges[j]*GeV && ptlead < _ptedges[j+1]*GeV) {
           _h_aj[j]->fill(aj,weight);
           _h_ptratio1[j]->fill(ptsublead/ptlead,weight);
         }
 	}
     }
 
 	
 	
     /// Finalize
     void finalize() {
       for (size_t j = 0; j < _nptbins; ++j) {
 	  normalize(_h_deltaphi[j]);
 	  normalize(_h_aj[j]);
 	  normalize(_h_ptratio1[j]);
 	}
 	normalize(_h_aj_all);
 	scale(_h_aj_all_xs,crossSection()/sumOfWeights());
 
-      AIDA::IHistogramFactory& hf = histogramFactory();
-      const string dir = histoDir();
-
-      hf.divide(dir + "/P2ndjet_p", *_h_dijets_p, *_h_leadjets_p);
-	hf.destroy(_h_dijets_p);
-	hf.destroy(_h_leadjets_p);
-      hf.divide(dir + "/P2ndjet_Pb", *_h_dijets_pb, *_h_leadjets_pb);
-	hf.destroy(_h_dijets_pb);
-	hf.destroy(_h_leadjets_pb);
+	divide(_h_dijets_p, _h_leadjets_p, _s_P2ndjet_p);
+	divide(_h_dijets_pb, _h_leadjets_pb, _s_P2ndjet_Pb);
 
 	getLog() << Log::DEBUG << "sumOfWeights()     = " << sumOfWeights() << std::endl;
     }
     
     
   private:
 
     vector<double> _ptedges;
     size_t _nptbins;
 
-    AIDA::IHistogram1D * _h_deltaphi[6];     
-    AIDA::IHistogram1D * _h_aj_all;
-    AIDA::IHistogram1D * _h_aj_all_xs;
-    AIDA::IHistogram1D * _h_aj[6];
-    AIDA::IHistogram1D * _h_ptratio1[6];
-    AIDA::IHistogram1D * _h_dijets_p;
-    AIDA::IHistogram1D * _h_leadjets_p;
-    AIDA::IHistogram1D * _h_dijets_pb;
-    AIDA::IHistogram1D * _h_leadjets_pb;
-    AIDA::IProfile1D *   _p_ptratio2;
-  };
+    Histo1DPtr _h_deltaphi[6];     
+    Histo1DPtr _h_aj_all;
+    Histo1DPtr _h_aj_all_xs;
+    Histo1DPtr _h_aj[6];
+    Histo1DPtr _h_ptratio1[6];
+    Histo1DPtr _h_dijets_p;
+    Histo1DPtr _h_leadjets_p;
+    Histo1DPtr _h_dijets_pb;
+    Histo1DPtr _h_leadjets_pb;
+    Profile1DPtr   _p_ptratio2;
+    Scatter2DPtr _s_P2ndjet_p;
+    Scatter2DPtr _s_P2ndjet_Pb;
+	  
+};
 
   
   
   
   // This global object acts as a hook for the plugin system
   AnalysisBuilder<MC_AJ> plugin_MC_AJ;
 
 }
Index: trunk/code/ALICE_GIRTH.cc
===================================================================
--- trunk/code/ALICE_GIRTH.cc	(revision 0)
+++ trunk/code/ALICE_GIRTH.cc	(revision 452)
@@ -0,0 +1,363 @@
+// -*- C++ -*-
+#include "Rivet/Analysis.hh"
+#include "Rivet/Projections/FinalState.hh"
+#include "Rivet/Projections/ChargedFinalState.hh"
+#include "Rivet/Projections/FastJets.hh"
+
+/// @todo Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...
+
+namespace Rivet {
+
+using namespace fastjet;
+	
+	struct FourMomComp {
+        bool operator() (const FourMomentum& p1, const FourMomentum& p2) const
+       {return p1.pT()<p2.pT();}
+    };
+
+
+    struct jetcomp{
+      bool operator() (const Jet jet1, const Jet jet2) const
+      {
+        if (jet1.momentum().pT() < jet2.momentum().pT()) return true;
+        else return false;
+      }
+    };
+
+
+#if MODE==0
+  class ALICE_GIRTH_4MOMSUB : public Analysis {
+#elif MODE==1
+  class ALICE_GIRTH_GRIDSUB2 : public Analysis {
+#endif
+  public:
+
+    /// Constructor
+#if MODE==0	  
+    ALICE_GIRTH_4MOMSUB() : Analysis("ALICE_GIRTH_4MOMSUB")
+#elif MODE==1
+    ALICE_GIRTH_GRIDSUB2() : Analysis("ALICE_GIRTH_GRIDSUB2")
+#endif
+    {  
+	    _jetR = 0.2; _ptmin = 40.; _ptmax = 60.; _etamax = 0.9;
+	    _nphibins = 120; _netabins = 160;
+	    
+    }
+
+
+    /// @name Analysis methods
+    //@{
+
+    /// Book histograms and initialise projections before the run
+    void init() {
+
+      FinalState fs(-5.0, 5.0, 0.*GeV);
+      addProjection(fs, "FS");
+      ChargedFinalState cfs(-5.0, 5.0, 0.*GeV);
+      addProjection(cfs, "CFS");
+	
+      FastJets fj(fs, FastJets::ANTIKT, _jetR);
+      addProjection(fj, "FullJets");
+      FastJets cfj(cfs, FastJets::ANTIKT, _jetR);
+      addProjection(cfj, "ChargedJets");
+
+      _h_girth = bookHisto1D(1, 1, 1);
+      _h_pp_g_full = bookHisto1D("pp_g_full", refData(1, 1, 1));
+      _h_pp_g_ch   = bookHisto1D("pp_g_ch",   refData(1, 1, 1));
+      
+      
+    }
+
+
+
+
+
+    
+    /// extract thermal momenta, that should be subtracted, from HepMC event
+    vector<FourMomentum> extractThermalMomenta(const Event & event) {
+	 vector<FourMomentum> thermom;
+        foreach (const HepMC::GenParticle* p, particles(event.genEvent())) {
+            FourMomentum mom(p->momentum());
+               if (p->status() == 3) {
+                   thermom.push_back(mom);
+               }
+	 }
+	 return thermom;
+    }
+    
+    
+    /// build map from dummy particles to thermal momenta to speed up subtraction
+    map<FourMomentum, FourMomentum, FourMomComp> buildThMomMap(const Event & event, const vector<FourMomentum> * thermom) {
+	    map<FourMomentum, FourMomentum, FourMomComp> thmap;
+           foreach (const HepMC::GenParticle* p, particles(event.genEvent())) {
+                  FourMomentum mom(p->momentum());
+                  if (mom.E() < 1e-5 && mom.E() > 1e-7) {
+		           FourMomentum dummy(mom);
+                         dummy *= 10000.;
+			    double dRmin(1.);
+			    FourMomentum match;
+			     foreach (FourMomentum tm, *thermom) {
+				     double dR(deltaR(dummy, tm));
+				     if (dR < dRmin) {
+					     dRmin = dR;
+					     match = tm;
+				     }
+			     }
+			     if (dRmin < 1e-5) {
+				     map<FourMomentum, FourMomentum, FourMomComp>::iterator mapit;
+				     mapit = thmap.find(mom);
+				     if (mapit != thmap.end()) {
+						cout<<"Error: dummy is already in map.\n";
+						cout<<mapit->first<<endl;
+						cout<<mapit->second<<endl;
+						cout<<match<<endl;
+				     }
+                                 thmap[mom]=match;				     
+                          }
+		    }
+	    }
+	    return thmap;
+    }
+    
+    
+    /// 4-momentum subtraction
+    FourMomentum SubtractJetMom(Jet jet, map<FourMomentum, FourMomentum, FourMomComp> * tmmap, double fac = 1.) {
+        if (tmmap->empty()) return jet.momentum();
+        FourMomentum sub(0.,0.,0.,0.);
+        foreach (Particle part, jet.constituents()) {
+            if (part.E() < 1e-5 && part.E() > 1e-7) { 
+                    map<FourMomentum, FourMomentum, FourMomComp>::iterator mapit;
+                    mapit = (*tmmap).find(part.momentum());
+                    if (mapit == (*tmmap).end()) cout<<"Error: did not find matching scattering centre in map.\n"<<part.momentum()<<endl;
+                    else sub += mapit->second;
+	     }
+        }
+        FourMomentum jetmom(jet.momentum());
+        //cout<<"Original momentum: "<<jetmom<<endl;
+        jetmom -= sub;
+        //cout<<"subtracted momentum: "<<jetmom<<endl;
+        //cout<<"Subtracted pt: "<<subpt<<"    "<<pjet.pt()<<endl;
+        return jetmom;
+    }    
+
+    
+    /// determine fraction of pt carried by charged particles in jet
+    double getScaleFac(const Jet jet, double ptcut, const FinalState * fs = NULL) {
+	    Particles parts;
+	    if (fs) parts = fs->particles();
+	    else parts = jet.constituents();
+	    double scalefac;
+	    double ntracks(0.), nparts(0.);
+           FourMomentum chmom(0.,0.,0.,0.), allmom(0.,0.,0.,0.);
+	      foreach (Particle part, parts) {
+		      if (deltaR(part,jet) < _jetR && part.momentum().E() > 1e-5) {
+			      nparts += 1.;
+			      allmom += part.momentum();
+                                  if (PID::charge(part.pdgId()) != 0 && part.pT() > ptcut) {
+			                    ntracks += 1.;
+			                    chmom += part.momentum();				      
+			             }
+		      }
+	      }
+	      scalefac = (nparts>0.?ntracks/nparts:1);
+	      //scalefac = (allmom.pT()>0.?chmom.pT()/allmom.pT():1.);
+	    return scalefac;
+    }
+
+    
+    /// initialise and fill grid for grid subtration    
+    vector<vector<FourMomentum> >  fillGrid(const Event & event, std::set<std::pair<size_t,size_t> > & gridevent) {	    
+	    // initialise grid
+           vector<vector<FourMomentum> >  grid;
+           grid.resize(_nphibins);
+           for (size_t i = 0; i < _nphibins; ++i) {
+                  grid[i].resize(_netabins);
+		    for (size_t k = 0; k < _nphibins; ++k) {
+			    grid[i][k] = FourMomentum(0., 0., 0., 0.);
+		    }
+           }
+
+      // fill grid
+        foreach (const HepMC::GenParticle* p, particles(event.genEvent())) {
+            FourMomentum mom(p->momentum());
+            if (fabs(mom.eta()) < 4.) {
+               size_t phibin, etabin;
+               phibin = int(mom.phi(ZERO_2PI)*_nphibins/(2.*M_PI));
+               etabin = int((mom.eta() + 4.)*_netabins/8.);
+               if (phibin < 0 || phibin > _nphibins-1) {std::cout<<"Error: "<<mom.phi(ZERO_2PI)<<"  --> "<<phibin<<std::endl; exit(1);}
+               if (etabin < 0 || etabin > _netabins-1) {std::cout<<"Error: "<<mom.eta()<<"  --> "<<etabin<<std::endl; exit(1);}
+               if (p->status() == 3) {
+                   grid[phibin][etabin].setE(grid[phibin][etabin].E() - mom.E());
+                   grid[phibin][etabin].setPx(grid[phibin][etabin].px() - mom.px());
+                   grid[phibin][etabin].setPy(grid[phibin][etabin].py() - mom.py());
+                   grid[phibin][etabin].setPz(grid[phibin][etabin].pz() - mom.pz());
+               }
+               else {
+                   grid[phibin][etabin].setE(grid[phibin][etabin].E() + mom.E());
+                   grid[phibin][etabin].setPx(grid[phibin][etabin].px() + mom.px());
+                   grid[phibin][etabin].setPy(grid[phibin][etabin].py() + mom.py());
+                   grid[phibin][etabin].setPz(grid[phibin][etabin].pz() + mom.pz());    
+               }
+               /*double cellphi((phibin+0.5)*2*M_PI/_nphibins), celleta((etabin+0.5)*8./_netabins-4.);
+               double celltheta(2.*atan(exp(-celleta)));
+               if (p->status() == 3) {
+                   double rho(grid[phibin][etabin].E() - mom.E());
+                   grid[phibin][etabin].setE(rho);
+                   grid[phibin][etabin].setPx(fabs(rho)*sin(celltheta)*cos(cellphi));
+                   grid[phibin][etabin].setPy(fabs(rho)*sin(celltheta)*sin(cellphi));
+                   grid[phibin][etabin].setPz(fabs(rho)*cos(celltheta));
+               }
+               else {
+		     // use this for standard recoil treatment
+                   double rho(grid[phibin][etabin].E() + mom.E());
+                   grid[phibin][etabin].setE(rho);
+                   grid[phibin][etabin].setPx(rho*sin(celltheta)*cos(cellphi));
+                   grid[phibin][etabin].setPy(rho*sin(celltheta)*sin(cellphi));
+                   grid[phibin][etabin].setPz(rho*cos(celltheta));
+		 }*/
+               gridevent.insert(std::pair<size_t,size_t>(phibin,etabin));
+	     }
+	 }
+		return grid;
+    }  
+
+
+
+/// 4-momentum adapter
+    FourMomentum Get4Mom(PseudoJet pjet){
+        FourMomentum mom(pjet.E(), pjet.px(), pjet.py(), pjet.pz());
+        return mom;
+    }
+    
+    
+
+    
+    /// Perform the per-event analysis
+    void analyze(const Event& event) {
+      const double weight = event.weight();
+      const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
+      if (cent > 0.1) vetoEvent;
+      
+#if MODE==0
+      vector<FourMomentum>  thermom = extractThermalMomenta(event);
+      map<FourMomentum, FourMomentum, FourMomComp> thmommap = buildThMomMap(event, &thermom);
+      
+      Jets unsubjets = applyProjection<FastJets>(event, "FullJets").jetsByPt();
+      map<Jet, Jet, jetcomp> jetmap;
+      foreach (Jet jet, unsubjets) {
+	       double scalefac = getScaleFac(jet, 0.);
+		FourMomentum jetsub = SubtractJetMom(jet, &thmommap, 1.);
+		if (fabs(jetsub.eta()) < _etamax && 
+		    scalefac*jetsub.pT() > _ptmin*GeV && scalefac*jetsub.pT() < _ptmax*GeV) 
+			jetmap[jet]=Jet(jetsub);
+      }
+      for (map<Jet, Jet, jetcomp>::iterator mapit = jetmap.begin(); mapit != jetmap.end(); mapit++) {
+	      double girth(0.);
+	      double jetpt((mapit->second).pT());
+	      foreach (Particle part, (mapit->first).constituents()) {
+		      if (part.momentum().E() < 1e-5 && part.momentum().E() > 1e-7) {
+			      FourMomentum sub(0.,0.,0.,0.);
+			      map<FourMomentum, FourMomentum, FourMomComp>::iterator thmapit;
+			      thmapit = thmommap.find(part.momentum());
+			      if (thmapit != thmommap.end()) sub = thmapit->second;
+			      double dR(deltaR(sub, mapit->second));
+			      girth -= sub.pT()*dR/jetpt;
+		      }
+		      else {
+			      double dR(deltaR(part, mapit->second));
+			      girth += part.momentum().pT()*dR/jetpt;
+		      }
+	      }
+	      _h_girth->fill(girth,weight);
+	      if (cent < 0.) {
+		      _h_pp_g_full->fill(girth,weight);
+	      }
+      }
+      if (cent < 0.) {
+		Cut cuts = Cuts::abseta < _etamax && Cuts::pT > _ptmin*GeV && Cuts::pT < _ptmax*GeV;
+		Jets chjets = applyProjection<FastJets>(event, "ChargedJets").jetsByPt(cuts);
+		foreach (Jet jet, chjets) {
+			double chgirth(0.);
+			foreach (Particle part, jet.constituents()) {
+				double dR(deltaR(part, jet));
+				chgirth += part.pT()*dR/jet.pT();
+			}
+			_h_pp_g_ch->fill(chgirth, weight);
+		}
+      }
+#elif MODE==1
+      PseudoJets pevent, allpjets;
+      std::set<std::pair<size_t,size_t> > gridevent;
+      vector<vector<FourMomentum> >  grid = fillGrid(event, gridevent);
+      for (set<pair<size_t,size_t> >::iterator it=gridevent.begin(); it!=gridevent.end(); ++it) {
+          size_t i,k;
+          i = it->first;
+          k = it->second;
+          if (grid[i][k].E() > 0. ) {
+              PseudoJet part(grid[i][k].px(),grid[i][k].py(),grid[i][k].pz(),grid[i][k].E());
+              pevent.push_back(part);
+          }
+      }
+      
+      const FinalState& fs = applyProjection<FinalState>(event, "FS");
+      
+      JetDefinition jet_def(antikt_algorithm, _jetR);
+      ClusterSequence cs(pevent, jet_def);
+      allpjets = sorted_by_pt(cs.inclusive_jets());
+      PseudoJets pjets;
+      foreach (PseudoJet pjet, allpjets) {
+	      double scalefac(getScaleFac(Jet(pjet), 0., &fs));
+	      if (fabs(pjet.eta()) < _etamax && 
+		      scalefac*pjet.pt() > _ptmin*GeV && scalefac*pjet.pt() < _ptmax*GeV) 
+		      pjets.push_back(pjet);
+      }
+      foreach (PseudoJet pjet, pjets) {
+	      double girth(0.);
+	      foreach (PseudoJet part, pjet.constituents()) {
+		      double dR(deltaR(Get4Mom(part), Get4Mom(pjet)));
+		      girth += part.pt()*dR/pjet.pt();
+	      }
+	      _h_girth->fill(girth, weight);
+	      if (cent < 0.) _h_pp_g_full->fill(girth, weight);
+      }
+#endif
+      
+      
+
+    }
+
+
+    /// Normalise histograms etc., after the run
+    void finalize() {
+	    
+	    normalize(_h_girth);
+	    normalize(_h_pp_g_full);
+	    normalize(_h_pp_g_ch);
+    }
+
+    //@}
+
+
+  private:
+
+    double _etamax, _ptmin, _ptmax, _jetR;
+    size_t _nphibins, _netabins;
+	  
+	  
+    Histo1DPtr _h_girth;
+    Histo1DPtr _h_pp_g_full, _h_pp_g_ch;
+    //@}
+
+
+  };
+
+
+
+  // The hook for the plugin system
+#if MODE==0
+  DECLARE_RIVET_PLUGIN(ALICE_GIRTH_4MOMSUB);
+#elif MODE==1
+  DECLARE_RIVET_PLUGIN(ALICE_GIRTH_GRIDSUB2);
+#endif
+
+}
Index: trunk/code/CMS_CHPTSPEC.cc
===================================================================
--- trunk/code/CMS_CHPTSPEC.cc	(revision 451)
+++ trunk/code/CMS_CHPTSPEC.cc	(revision 452)
@@ -1,68 +1,66 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Tools/Logging.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 #include "Rivet/Projections/IdentifiedFinalState.hh"
-#include "Rivet/RivetAIDA.hh"
 
 namespace Rivet {
 
 
   /// @brief charged hadron spectra in pp
   class CMS_CHPTSPEC : public Analysis {
   public:
 
     /// Constructor
     CMS_CHPTSPEC()
       : Analysis("CMS_CHPTSPEC"),
         _sumWeightSelected(0.0)
     {
-      setBeams(PROTON, PROTON);
       setNeedsCrossSection(true);
     }
 
     /// Book projections and histograms
     void init() {
 	ChargedFinalState cfs(-10., 10., 0.*GeV);
       addProjection(cfs, "CFS");
 
-      _h_pT_ch_1        = bookHistogram1D(1,1,1);
+      _h_pT_ch_1        = bookHisto1D(1,1,1);
     }
 
 
     /// Do the analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
 
       const ChargedFinalState& cfs = applyProjection<ChargedFinalState>(event, "CFS");
       foreach (const Particle& p, cfs.particles()) {
         if (fabs(p.momentum().eta()) < 1.) {
           const double pT = p.momentum().pT() / GeV;
           _h_pT_ch_1->fill(pT, weight/pT);
         }
       }      
       _sumWeightSelected += event.weight();
     }
 
 
     /// Finalize
     void finalize() {
 //      scale(_h_pT_ch_1,crossSection()/(millibarn*2.*M_PI*2.*_sumWeightSelected));
       scale(_h_pT_ch_1,1./(2.*M_PI*_sumWeightSelected));
       getLog() << Log::DEBUG << "sumOfWeights()     = " << sumOfWeights() << std::endl;
       getLog() << Log::DEBUG << "_sumWeightSelected = " << _sumWeightSelected << std::endl;
     }
 
   private:
 
     double _sumWeightSelected;
 
-    AIDA::IHistogram1D * _h_pT_ch_1;
+    Histo1DPtr _h_pT_ch_1;
     };
 
 
 
   // This global object acts as a hook for the plugin system
   AnalysisBuilder<CMS_CHPTSPEC> plugin_CMS_CHPTSPEC;
 
 }
Index: trunk/code/ATLAS_2013_I1240088.cc
===================================================================
--- trunk/code/ATLAS_2013_I1240088.cc	(revision 451)
+++ trunk/code/ATLAS_2013_I1240088.cc	(revision 452)
@@ -1,124 +1,124 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
-#include "Rivet/RivetAIDA.hh"
 #include "Rivet/Tools/Logging.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include <boost/lexical_cast.hpp>
 /// @todo Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...
 
 namespace Rivet {
 
 
   class ATLAS_2013_I1240088 : public Analysis {
   public:
 
     /// @name Constructors etc.
     //@{
 
     /// Constructor
     ATLAS_2013_I1240088()
       : Analysis("ATLAS_2013_I1240088")
     {  
 	normalise = false;
     }
 
     //@}
 
 
   public:
 
     /// @name Analysis methods
     //@{
 
     /// Book histograms and initialise projections before the run
     void init() {
       FinalState fs(-4.0, 4.0, 0.*GeV);
 	addProjection(fs, "FS");
 	FastJets fj02(fs, FastJets::ANTIKT, 0.2);
 	fj02.useInvisibles();
       addProjection(fj02, "Jets02");
 
       _centedges += 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6;
       _ptedges += 45.0, 60.0, 80.0, 110.0, 160.0;
 
 	_ncentbins = _centedges.size()-1;
 	_nptbins = _ptedges.size()-1;
 	
       for (size_t i = 0; i < _ncentbins; ++i) {
         for (size_t j = 0; j < _nptbins; ++j) {
-          _histos[i][j] = bookHistogram1D(i+1, 2, j+1);
+          _histos[i][j] = bookHisto1D(i+1, 2, j+1);
         }
       }
 
     }
 
 
     /// Perform the per-event analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
-	const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
+	const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
 	
-	Jets alljets = applyProjection<FastJets>(event, "Jets02").jetsByPt(_ptedges.front()*GeV, _ptedges.back()*GeV, -2.1, 2.1);
+       Cut cuts = Cuts::abseta < 2.1 && Cuts::pT > _ptedges.front()*GeV && Cuts::pT < _ptedges.back()*GeV;
+	Jets alljets = applyProjection<FastJets>(event, "Jets02").jetsByPt(cuts);
 
       for (size_t i = 0; i < _ncentbins; ++i) {
 	  if (cent < 0. || (cent >= _centedges[i] && cent < _centedges[i+1])) {
           for (size_t j = 0; j < _nptbins; ++j) {
 		foreach (Jet jet, alljets) {
 		  double pt(jet.momentum().pT());
 		  if (pt > _ptedges[j]*GeV && pt < _ptedges[j+1]*GeV) {
 	          normalise = true;
 		    double phi(jet.phi());
 		    if (phi > M_PI/2. && phi < M_PI)       phi = M_PI - phi;
 		    if (phi > M_PI    && phi < 3.*M_PI/2.) phi = phi - M_PI;
 		    if (phi > 3.*M_PI/2.)                  phi = 2.*M_PI - phi;
 		    _histos[i][j]->fill(phi,weight);
 		  }
 	      }
 	    }
         }
       }
 
     }
 
 
     /// Normalise histograms etc., after the run
     void finalize() {
 
       if (!normalise) return;
 
       for (size_t i = 0; i < _ncentbins; ++i) {
         for (size_t j = 0; j < _nptbins; ++j) {
           normalize(_histos[i][j]);
         }
       }
 
     }
 
     //@}
 
 
   private:
 
     // Data members like post-cuts event weight counters go here
     vector<double> _ptedges; 
     vector<double> _centedges;
     size_t _ncentbins, _nptbins;
     bool normalise;
 
   private:
 
     /// @name Histograms
     //@{
-    AIDA::IHistogram1D *_histos[6][4];
+    Histo1DPtr _histos[6][4];
     //@}
 
 
   };
 
 
 
   // The hook for the plugin system
   DECLARE_RIVET_PLUGIN(ATLAS_2013_I1240088);
 
 }
Index: trunk/code/MC_DIJETS.cc
===================================================================
--- trunk/code/MC_DIJETS.cc	(revision 451)
+++ trunk/code/MC_DIJETS.cc	(revision 452)
@@ -1,821 +1,821 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
-#include "Rivet/RivetAIDA.hh"
 #include "Rivet/Tools/Logging.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 #include <iostream>
 
 /// @todo Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...
 
 namespace Rivet {
 
 
   class MC_DIJETS : public Analysis {
   public:
 
     /// @name Constructors etc.
     //@{
 
     /// Constructor
     MC_DIJETS()
       : Analysis("MC_DIJETS")
     {
       _ndijets = 0.; _ndijets_ajl = 0.; _ndijets_ajh = 0.; _ndijets_dphisel = 0.;
       _Njet100[0] = 0.; _Njet100[1] = 0.;
       _Njet100mat[0] = 0.; _Njet100mat[1] = 0.;
       _nradbins = 9;
       _pt1min = 100.; _pt2min = 20.;
       _ajcut1 = 0.2; _ajcut2 = 0.5; _ajcut3 = 0.3;
       _gridrmax = 10.; _gridphimax = M_PI;
       _ngridrbins = 50; _ngridphibins = 31;
       _nlnbins = 32; _lnmax = 8.;
       _rs.clear(); _phis.clear(); _phi1s.clear(); _phi2s.clear(); _ln1s.clear(); _ln2s.clear(); _weights.clear();
       setNeedsCrossSection(true);
     }
 
     //@}
 
 
   public:
 
     /// @name Analysis methods
     //@{
 
     /// Book histograms and initialise projections before the run
     void init() {
 
       _centedges += 0.0, 0.1;
       _jetparams += 0.4;
 
       _ncentbins = _centedges.size()-1;
       _njetbins = _jetparams.size();
 
       _Nupper = 0.; _Nlower = 0.;
 	
       FinalState fs(-5.0, 5.0, 0.*GeV);
       addProjection(fs, "FS");
       ChargedFinalState cfs(-5.0, 5.0, 0.*GeV);
       addProjection(cfs, "CFS");
       for (size_t j = 0; j < _njetbins; ++j) {
         stringstream ss; ss << "Jets" << j;
         const string pname = ss.str();
         _names[j] = pname;
 
 	FastJets fj(fs, FastJets::ANTIKT, _jetparams[j]);
 	fj.useInvisibles();
         addProjection(fj, pname);
       }
 
       readLnGrid();
 
       //      for (size_t i = 0; i < _ncentbins; ++i) {
       for (size_t k = 0; k < 2; ++k) {
 	stringstream ss; ss << "jetpt" << "_" << k;
-	_h_jetpt[k] = bookHistogram1D(ss.str(),30, 0., 300.);
+	_h_jetpt[k] = bookHisto1D(ss.str(),30, 0., 300.);
 	ss << "_ajl";
-	_h_jetpt_ajl[k] = bookHistogram1D(ss.str(),30, 0., 300.);
+	_h_jetpt_ajl[k] = bookHisto1D(ss.str(),30, 0., 300.);
 	stringstream ssi; ssi << "jetpt" << "_" << k << "_ajh";
-	_h_jetpt_ajh[k]= bookHistogram1D(ssi.str(),30, 0., 300.);
+	_h_jetpt_ajh[k]= bookHisto1D(ssi.str(),30, 0., 300.);
 	stringstream ss2; ss2 << "FFz" << "_" << k;
-	_h_z[k]   = bookHistogram1D(ss2.str(), 25, 0., 1.);
+	_h_z[k]   = bookHisto1D(ss2.str(), 25, 0., 1.);
 	ss2 << "_ajl";
-	_h_z_ajl[k] = bookHistogram1D(ss2.str(),25, 0., 1.);
+	_h_z_ajl[k] = bookHisto1D(ss2.str(),25, 0., 1.);
 	stringstream ssii; ssii << "FFz" << "_" << k << "_ajh";
-	_h_z_ajh[k] = bookHistogram1D(ssii.str(),25, 0., 1.);
+	_h_z_ajh[k] = bookHisto1D(ssii.str(),25, 0., 1.);
 	stringstream ss3; ss3 << "FFkt" << "_" << k;
-	_h_pt[k]  = bookHistogram1D(ss3.str(), 25, 0., 100. );
+	_h_pt[k]  = bookHisto1D(ss3.str(), 25, 0., 100. );
 	ss3 << "_ajl";
-	_h_pt_ajl[k] = bookHistogram1D(ss3.str(),25, 0., 100.);
+	_h_pt_ajl[k] = bookHisto1D(ss3.str(),25, 0., 100.);
 	stringstream ssiii; ssiii << "FFkt" << "_" << k << "_ajh";
-	_h_pt_ajh[k] = bookHistogram1D(ssiii.str(),25, 0., 100.);
+	_h_pt_ajh[k] = bookHisto1D(ssiii.str(),25, 0., 100.);
 	stringstream ss4; ss4 << "virtuality" << "_" << k;
-	_h_virtuality[k] = bookHistogram1D(ss4.str(),30, 0., 300.);
+	_h_virtuality[k] = bookHisto1D(ss4.str(),30, 0., 300.);
 	stringstream ss5; ss5 << "intialpt" << "_" << k;
-	_h_initialpt[k] = bookHistogram1D(ss5.str(),30, 0., 300.);
+	_h_initialpt[k] = bookHisto1D(ss5.str(),30, 0., 300.);
 	stringstream ss6; ss6 << "virtualityoverpt" << "_" << k;
-	_h_virtopt[k] = bookHistogram1D(ss6.str(),50, 0., 1.);
+	_h_virtopt[k] = bookHisto1D(ss6.str(),50, 0., 1.);
 	stringstream ss10; ss10 << "virtuality100" << "_" << k;
-	_h_virtuality100[k] = bookHistogram1D(ss10.str(),30, 0., 300.);
+	_h_virtuality100[k] = bookHisto1D(ss10.str(),30, 0., 300.);
 	stringstream ss11; ss11 << "FFz100" << "_" << k;
-	_h_z100[k]   = bookHistogram1D(ss11.str(), 25, 0., 1.);
+	_h_z100[k]   = bookHisto1D(ss11.str(), 25, 0., 1.);
 	stringstream ss13; ss13 << "mult100" << "_" << k;
-	_h_mult100[k]   = bookHistogram1D(ss13.str(), 25, 0.5, 25.5);
+	_h_mult100[k]   = bookHisto1D(ss13.str(), 25, 0.5, 25.5);
 	stringstream ss14; ss14 << "eta" << "_" << k;
-	_h_eta[k]   = bookHistogram1D(ss14.str(), 20, 0., 2.);
+	_h_eta[k]   = bookHisto1D(ss14.str(), 20, 0., 2.);
 	stringstream ss15; ss15 << "jetmass" << "_" << k;
-	_h_jetmass[k]   = bookHistogram1D(ss15.str(), 50, 0., 100.);
+	_h_jetmass[k]   = bookHisto1D(ss15.str(), 50, 0., 100.);
 	stringstream ss16; ss16 << "massopt" << "_" << k;
-	_h_massopt[k]   = bookHistogram1D(ss16.str(), 50, 0., 0.5);
+	_h_massopt[k]   = bookHisto1D(ss16.str(), 50, 0., 0.5);
 	stringstream ss17; ss17 << "leadpartz" << "_" << k;
-	_h_leadpartz[k]   = bookHistogram1D(ss17.str(), 50, 0., 1.);
+	_h_leadpartz[k]   = bookHisto1D(ss17.str(), 50, 0., 1.);
       }
       //      }
-      _h_ptratiodist = bookHistogram1D("ptratio-dist", 25, 0., 1.);
-      _h_prodrall = bookHistogram1D("prodrall", 25, 0., 10.);
-      _h_prodrdij = bookHistogram1D("prodrdij", 25, 0., 10.);
-      _h_prodrleadj = bookHistogram1D("prodrleadj", 25, 0., 10.);
+      _h_ptratiodist = bookHisto1D("ptratio-dist", 25, 0., 1.);
+      _h_prodrall = bookHisto1D("prodrall", 25, 0., 10.);
+      _h_prodrdij = bookHisto1D("prodrdij", 25, 0., 10.);
+      _h_prodrleadj = bookHisto1D("prodrleadj", 25, 0., 10.);
       _p_pt1      = bookProfile1D("pt1", 25, 0., 10.);
       _p_pt2      = bookProfile1D("pt2", 25, 0., 10.);
       _p_ptratio  = bookProfile1D("ptratio", 25, 0., 10.);
       _p_pdijet   = bookProfile1D("pdijet", 25, 0., 10.);
-      _h_dijetphi = bookHistogram1D("dijetphi", 12, 0., M_PI);
-      _h_dijetphi_ajl = bookHistogram1D("dijetphi_ajl", 12, 0., M_PI);
-      _h_dijetphi_ajm = bookHistogram1D("dijetphi_ajm", 12, 0., M_PI);
-      _h_dijetphi_ajh = bookHistogram1D("dijetphi_ajh", 12, 0., M_PI);
+      _h_dijetphi = bookHisto1D("dijetphi", 12, 0., M_PI);
+      _h_dijetphi_ajl = bookHisto1D("dijetphi_ajl", 12, 0., M_PI);
+      _h_dijetphi_ajm = bookHisto1D("dijetphi_ajm", 12, 0., M_PI);
+      _h_dijetphi_ajh = bookHisto1D("dijetphi_ajh", 12, 0., M_PI);
       _p_pdijetphi = bookProfile1D("pdijetphi", 12, 0., M_PI);
       _p_ptratiophi = bookProfile1D("ptratiophi", 12, 0., M_PI);
-      _h_aj       = bookHistogram1D("aj", 20, 0., 1.);
-      _h_aj_all_xs = bookHistogram1D("aj_all_xs", 20, 0., 1.);
-      _h_aj_2_xs   = bookHistogram1D("aj_2_xs", 20, 0., 1.);
-      _h_aj_3_xs   = bookHistogram1D("aj_3_xs", 20, 0., 1.);
-      _h_aj_4_xs   = bookHistogram1D("aj_4_xs", 20, 0., 1.);
-      _h_aj_deta0  = bookHistogram1D("aj_deta0", 20, 0., 1.);
-      _h_aj_deta1  = bookHistogram1D("aj_deta1", 20, 0., 1.);
-      _h_aj_deta2  = bookHistogram1D("aj_deta2", 20, 0., 1.);
-      _h_ajin0    = bookHistogram1D("ajin0", 20, 0., 1.);
-      _h_ajin1    = bookHistogram1D("ajin1", 20, 0., 1.);
-      _h_ajin2    = bookHistogram1D("ajin2", 20, 0., 1.);
-      _h_ajin3    = bookHistogram1D("ajin3", 20, 0., 1.);
-      _h_ajbin[0]    = bookHistogram1D("ajbin_0", 20, 0., 1.);
-      _h_ajbin[1]    = bookHistogram1D("ajbin_1", 20, 0., 1.);
-      _h_ajbin[2]    = bookHistogram1D("ajbin_2", 20, 0., 1.);
-      _h_ajbin[3]    = bookHistogram1D("ajbin_3", 20, 0., 1.);
-      _h_ajbinxsec[0] = bookHistogram1D("ajbinxsec_0", 20, 0., 1.);
-      _h_ajbinxsec[1] = bookHistogram1D("ajbinxsec_1", 20, 0., 1.);
-      _h_ajbinxsec[2] = bookHistogram1D("ajbinxsec_2", 20, 0., 1.);
-      _h_ajbinxsec[3] = bookHistogram1D("ajbinxsec_3", 20, 0., 1.);
-      _h_ajinbin[0]  = bookHistogram1D("ajinbin_0", 20, 0., 1.);
-      _h_ajinbin[1]  = bookHistogram1D("ajinbin_1", 20, 0., 1.);
-      _h_ajinbin[2]  = bookHistogram1D("ajinbin_2", 20, 0., 1.);
-      _h_ajinbin[3]  = bookHistogram1D("ajinbin_3", 20, 0., 1.);
-      _h_ajbin2[0]   = bookHistogram1D("ajbin2_0", 20, 0., 1.);
-      _h_ajbin2[1]   = bookHistogram1D("ajbin2_1", 20, 0., 1.);
-      _h_ajbin2[2]   = bookHistogram1D("ajbin2_2", 20, 0., 1.);
-      _h_ajbin2[3]   = bookHistogram1D("ajbin2_3", 20, 0., 1.);
-      _h_ajinbin2[0] = bookHistogram1D("ajinbin2_0", 20, 0., 1.);
-      _h_ajinbin2[1] = bookHistogram1D("ajinbin2_1", 20, 0., 1.);
-      _h_ajinbin2[2] = bookHistogram1D("ajinbin2_2", 20, 0., 1.);
-      _h_ajinbin2[3] = bookHistogram1D("ajinbin2_3", 20, 0., 1.);
-      _h_ajfs        = bookHistogram1D("ajfs", 20, 0., 1.);
-      _h_ajcorr      = bookHistogram2D("ajcorr", 20, 0., 1., 20, 0., 1.);
+      _h_aj       = bookHisto1D("aj", 20, 0., 1.);
+      _h_aj_all_xs = bookHisto1D("aj_all_xs", 20, 0., 1.);
+      _h_aj_2_xs   = bookHisto1D("aj_2_xs", 20, 0., 1.);
+      _h_aj_3_xs   = bookHisto1D("aj_3_xs", 20, 0., 1.);
+      _h_aj_4_xs   = bookHisto1D("aj_4_xs", 20, 0., 1.);
+      _h_aj_deta0  = bookHisto1D("aj_deta0", 20, 0., 1.);
+      _h_aj_deta1  = bookHisto1D("aj_deta1", 20, 0., 1.);
+      _h_aj_deta2  = bookHisto1D("aj_deta2", 20, 0., 1.);
+      _h_ajin0    = bookHisto1D("ajin0", 20, 0., 1.);
+      _h_ajin1    = bookHisto1D("ajin1", 20, 0., 1.);
+      _h_ajin2    = bookHisto1D("ajin2", 20, 0., 1.);
+      _h_ajin3    = bookHisto1D("ajin3", 20, 0., 1.);
+      _h_ajbin[0]    = bookHisto1D("ajbin_0", 20, 0., 1.);
+      _h_ajbin[1]    = bookHisto1D("ajbin_1", 20, 0., 1.);
+      _h_ajbin[2]    = bookHisto1D("ajbin_2", 20, 0., 1.);
+      _h_ajbin[3]    = bookHisto1D("ajbin_3", 20, 0., 1.);
+      _h_ajbinxsec[0] = bookHisto1D("ajbinxsec_0", 20, 0., 1.);
+      _h_ajbinxsec[1] = bookHisto1D("ajbinxsec_1", 20, 0., 1.);
+      _h_ajbinxsec[2] = bookHisto1D("ajbinxsec_2", 20, 0., 1.);
+      _h_ajbinxsec[3] = bookHisto1D("ajbinxsec_3", 20, 0., 1.);
+      _h_ajinbin[0]  = bookHisto1D("ajinbin_0", 20, 0., 1.);
+      _h_ajinbin[1]  = bookHisto1D("ajinbin_1", 20, 0., 1.);
+      _h_ajinbin[2]  = bookHisto1D("ajinbin_2", 20, 0., 1.);
+      _h_ajinbin[3]  = bookHisto1D("ajinbin_3", 20, 0., 1.);
+      _h_ajbin2[0]   = bookHisto1D("ajbin2_0", 20, 0., 1.);
+      _h_ajbin2[1]   = bookHisto1D("ajbin2_1", 20, 0., 1.);
+      _h_ajbin2[2]   = bookHisto1D("ajbin2_2", 20, 0., 1.);
+      _h_ajbin2[3]   = bookHisto1D("ajbin2_3", 20, 0., 1.);
+      _h_ajinbin2[0] = bookHisto1D("ajinbin2_0", 20, 0., 1.);
+      _h_ajinbin2[1] = bookHisto1D("ajinbin2_1", 20, 0., 1.);
+      _h_ajinbin2[2] = bookHisto1D("ajinbin2_2", 20, 0., 1.);
+      _h_ajinbin2[3] = bookHisto1D("ajinbin2_3", 20, 0., 1.);
+      _h_ajfs        = bookHisto1D("ajfs", 20, 0., 1.);
+      _h_ajcorr      = bookHisto2D("ajcorr", 20, 0., 1., 20, 0., 1.);
       _p_lossrate    = bookProfile1D("lossrate", 50, 0., 1.);
       _p_lossrate2   = bookProfile1D("lossrate2", 50, 0., 1.);
       _p_gainrate    = bookProfile1D("gainrate", 50, 0., 1.);
       _p_isfrac      = bookProfile1D("isfrac", 50, 0., 1.);
       _p_isfrac2     = bookProfile1D("isfrac2", 50, 0., 1.);
       _p_isfrac3     = bookProfile1D("isfrac3", 4, -1.5, 2.5);
-      _h_lns  = bookHistogram1D("path_lengths", 50, 0., 20.);
-      _h_lns2 = bookHistogram2D("path_lengths_2d", 50, 0., 10., 50, 0., 10.);
-      _h_deltaln0  = bookHistogram1D("deltaln0", 150, -20., 40.);
-      _h_deltaln1  = bookHistogram1D("deltaln1", 150, -20., 40.);
-      _h_deltaln2  = bookHistogram1D("deltaln2", 150, -20., 40.);
-      _h_deltaln[0]  = bookHistogram1D("deltaln_0", 150, -20., 40.);
-      _h_deltaln[1]  = bookHistogram1D("deltaln_1", 150, -20., 40.);
-      _h_deltaln[2]  = bookHistogram1D("deltaln_2", 150, -20., 40.);
-      _h_deltaln[3]  = bookHistogram1D("deltaln_3", 150, -20., 40.);
-      _h_deltaln_deta0 = bookHistogram1D("deltaln_deta0", 150, -20., 40.);
-      _h_deltaln_deta1 = bookHistogram1D("deltaln_deta1", 150, -20., 40.);
-      _h_deltaln_deta2 = bookHistogram1D("deltaln_deta2", 150, -20., 40.);
-      _h_prodpoints = bookHistogram2D("prodpoints", 40, -8., 8., 40, -8., 8.);
-      _h_deltaeta = bookHistogram1D("deltaeta", 40, 0., 4.);
+      _h_lns  = bookHisto1D("path_lengths", 50, 0., 20.);
+      _h_lns2 = bookHisto2D("path_lengths_2d", 50, 0., 10., 50, 0., 10.);
+      _h_deltaln0  = bookHisto1D("deltaln0", 150, -20., 40.);
+      _h_deltaln1  = bookHisto1D("deltaln1", 150, -20., 40.);
+      _h_deltaln2  = bookHisto1D("deltaln2", 150, -20., 40.);
+      _h_deltaln[0]  = bookHisto1D("deltaln_0", 150, -20., 40.);
+      _h_deltaln[1]  = bookHisto1D("deltaln_1", 150, -20., 40.);
+      _h_deltaln[2]  = bookHisto1D("deltaln_2", 150, -20., 40.);
+      _h_deltaln[3]  = bookHisto1D("deltaln_3", 150, -20., 40.);
+      _h_deltaln_deta0 = bookHisto1D("deltaln_deta0", 150, -20., 40.);
+      _h_deltaln_deta1 = bookHisto1D("deltaln_deta1", 150, -20., 40.);
+      _h_deltaln_deta2 = bookHisto1D("deltaln_deta2", 150, -20., 40.);
+      _h_prodpoints = bookHisto2D("prodpoints", 40, -8., 8., 40, -8., 8.);
+      _h_deltaeta = bookHisto1D("deltaeta", 40, 0., 4.);
       _p_quarkfrac = bookProfile1D("quarkfrac", 2, -0.5, 1.5);
       _p_swapfrac = bookProfile1D("swapfrac", 2, -0.5, 1.5);
-      _h_moptasym = bookHistogram1D("moptasym", 25, 0., 1.);
+      _h_moptasym = bookHisto1D("moptasym", 25, 0., 1.);
       _p_meanpathlength = bookProfile1D("meanpathlength", 1, -0.5, 0.5);
     }
 
 
     /// read in path length grid
     void readLnGrid() {
       std::ifstream infile("geo-finegrid.dat");
       if (infile.is_open()) {
 	for (size_t i = 0; i < 50 ; ++i) {
 	  for (size_t j = 0; j < 31 ; ++j) {
 	    infile >> _Lngrid[i][j];
 	  }
 	}
       }
       else {
 	cout<<"Unable to open input file.\n";
 	exit(1);
       }
     }
 
     /// interpolation on path length grid
     double getLn(double r, double phi, double jetphi, double jeteta) {
       double phirel;    vector<double> _rs, _phis, _phi1s, _phi2s, _ln1s, _ln2s;
 
       if (jetphi > phi) phirel = jetphi - phi;
       else phirel = 2.*M_PI - (phi - jetphi);
       if (phirel > M_PI) phirel = 2.*M_PI - phirel;
 
       int rbin, phibin;
       rbin = r*_ngridrbins/_gridrmax;
       phibin = phirel*(_ngridphibins-1)/_gridphimax;
 
       double rvals[2], phivals[2], lnvals[2][2];
       for (size_t i = 0; i < 2; ++i) {
 	rvals[i] = (rbin+i)*_gridrmax/_ngridrbins;
 	phivals[i] = (phibin+i)*_gridphimax/(_ngridphibins-1);
         for (size_t j = 0; j < 2; ++j) {
 	  lnvals[i][j] = _Lngrid[rbin+i][phibin+j];
 	}
       }
       double a,b,tmp[2],res;
       for (size_t i = 0; i < 2; ++i) {
 	a = (lnvals[i][1]-lnvals[i][0])/(phivals[1]-phivals[0]);
 	b = lnvals[i][0] - a*phivals[0];
 	tmp[i] = a*phirel+b;
       }
       a = (tmp[1]-tmp[0])/(rvals[1]-rvals[0]);
       b = tmp[0] - a*rvals[0];
       res = a*r+b;
       return 2.*res;
     }
 
 
     /// Perform the per-event analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
-      //	const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
-      double jprodphi = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->event_plane_angle():-1.);
-      const double jprodr = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->eccentricity():9.5);
-      const double inpt1 = (event.genEvent().heavy_ion()?(event.genEvent().heavy_ion()->Ncoll_hard())*0.01:0.);
-      const double inmass1 = (event.genEvent().heavy_ion()?(event.genEvent().heavy_ion()->Npart_proj())*0.01:0.);
-      double inphi1 = (event.genEvent().heavy_ion()?(event.genEvent().heavy_ion()->Npart_targ())*0.01:0.);
+      //	const double cent = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->impact_parameter():-1.);
+      double jprodphi = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->event_plane_angle():-1.);
+      const double jprodr = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->eccentricity():9.5);
+      const double inpt1 = (event.genEvent()->heavy_ion()?(event.genEvent()->heavy_ion()->Ncoll_hard())*0.01:0.);
+      const double inmass1 = (event.genEvent()->heavy_ion()?(event.genEvent()->heavy_ion()->Npart_proj())*0.01:0.);
+      double inphi1 = (event.genEvent()->heavy_ion()?(event.genEvent()->heavy_ion()->Npart_targ())*0.01:0.);
       if (inphi1 < 0.) inphi1 += 2.*M_PI;
-      const double ineta1 = (event.genEvent().heavy_ion()?(event.genEvent().heavy_ion()->Nwounded_Nwounded_collisions())*0.01:0.);
-      const double inpt2 = (event.genEvent().heavy_ion()?(event.genEvent().heavy_ion()->Ncoll())*0.01:0.);
-      const double inmass2 = (event.genEvent().heavy_ion()?(event.genEvent().heavy_ion()->spectator_neutrons())*0.01:0.);
-      double inphi2 = (event.genEvent().heavy_ion()?(event.genEvent().heavy_ion()->spectator_protons())*0.01:0.);
+      const double ineta1 = (event.genEvent()->heavy_ion()?(event.genEvent()->heavy_ion()->Nwounded_Nwounded_collisions())*0.01:0.);
+      const double inpt2 = (event.genEvent()->heavy_ion()?(event.genEvent()->heavy_ion()->Ncoll())*0.01:0.);
+      const double inmass2 = (event.genEvent()->heavy_ion()?(event.genEvent()->heavy_ion()->spectator_neutrons())*0.01:0.);
+      double inphi2 = (event.genEvent()->heavy_ion()?(event.genEvent()->heavy_ion()->spectator_protons())*0.01:0.);
       if (inphi2 < 0.) inphi2 += 2.*M_PI;
-      const double ineta2 = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->sigma_inel_NN():0.);
-      const int isgluon1 = (event.genEvent().heavy_ion()?(event.genEvent().heavy_ion()->N_Nwounded_collisions()):-1);
-      const int isgluon2 = (event.genEvent().heavy_ion()?(event.genEvent().heavy_ion()->Nwounded_N_collisions()):-1);
+      const double ineta2 = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->sigma_inel_NN():0.);
+      const int isgluon1 = (event.genEvent()->heavy_ion()?(event.genEvent()->heavy_ion()->N_Nwounded_collisions()):-1);
+      const int isgluon2 = (event.genEvent()->heavy_ion()?(event.genEvent()->heavy_ion()->Nwounded_N_collisions()):-1);
       double deltaphi(deltaPhi(inphi1,inphi2));
 
       const ChargedFinalState& tracks = applyProjection<ChargedFinalState>(event, "CFS");
 
       _h_prodrall->fill(jprodr,weight);
       _h_prodpoints->fill(jprodr*cos(jprodphi),jprodr*sin(jprodphi),1.);
       _rad = jprodr;
 
       double ln[2], virt[2], inpt[2], inphi[2], ineta[2];
       if (inpt1 > inpt2) {
 	inpt[0] = inpt1;
 	inpt[1] = inpt2;
 	virt[0] = inmass1;
 	virt[1] = inmass2;
 	inphi[0] = inphi1;
 	inphi[1] = inphi2;
 	ineta[0] = ineta1;
 	ineta[1] = ineta2;
 	_p_quarkfrac->fill(0, 1.-isgluon1, weight);
 	_p_quarkfrac->fill(1, 1.-isgluon2, weight);
       }
       else {
 	inpt[0] = inpt2;
 	inpt[1] = inpt1;
 	virt[0] = inmass2;
 	virt[1] = inmass1;
 	inphi[0] = inphi2;
 	inphi[1] = inphi1;
 	ineta[0] = ineta2;
 	ineta[1] = ineta1;
 	_p_quarkfrac->fill(0, 1.-isgluon2, weight);
 	_p_quarkfrac->fill(1, 1.-isgluon1, weight);
       }
       ln[0] = getLn(jprodr, jprodphi, inphi[0], ineta[0]);
       ln[1] = getLn(jprodr, jprodphi, inphi[1], ineta[1]);
 	
       bool partonspasscuts(inpt[0] > _pt1min && inpt[1] > _pt2min && abs(ineta[0]) < 2. && 
 			   abs(ineta[1]) < 2. && deltaphi > M_PI/2.);
       double ajin((inpt[0]-inpt[1])/(inpt[0]+inpt[1]));
       _h_ajin0->fill(ajin,weight);
       if (inpt[0] > _pt1min) _h_ajin1->fill(ajin,weight);
       if (partonspasscuts) {
 	_h_ajin2->fill(ajin,weight);
 	_h_deltaln0->fill(ln[1]-ln[0],weight);
       }  
       // standard selection
-      const Jets jets = applyProjection<FastJets>(event, _names[0]).jetsByPt(_pt2min*GeV, 10000*GeV, -2.0, 2.0);
+      Cut cuts = Cuts::abseta < 2.0 && Cuts::pT > _pt2min*GeV;
+      const Jets jets = applyProjection<FastJets>(event, _names[0]).jetsByPt(cuts);
 
       if (jets.size() < 1) {
 	if (partonspasscuts) _p_lossrate->fill(ajin,1.,weight);
 	_p_lossrate2->fill(ajin,1.,weight);
 	//	if (partonspasscuts) cout<<"di-jet fails cuts with "<<ajin<<endl;
 	return;
       }
 
       double pt1(jets[0].momentum().pT());
       double phi1(jets[0].momentum().phi());
       if (phi1 > M_PI) phi1 = 2.*M_PI - phi1;
       double phi2guess;
       phi2guess = M_PI - phi1;
       if (pt1 > _pt1min*GeV) {
 	if (jets.size() < 2) {
 	  _p_pdijet->fill(jprodr,0.,weight);
 	  _p_pdijetphi->fill(phi2guess,0.,weight);
 	}
 	else {
 	  if (deltaPhi(jets[0],jets[1]) > M_PI/2.) {
 	    _p_pdijet->fill(jprodr,1.,weight);
 	    _p_pdijetphi->fill(phi2guess,1.,weight);
 	    _ndijets += weight;
 	  }
 	  else {
 	    _p_pdijet->fill(jprodr,0.,weight);
 	    _p_pdijetphi->fill(phi2guess,0.,weight);
 	  }
 	}
 	_h_prodrleadj->fill(jprodr,weight);
 	/*	    double phitmp(jets[0].momentum().phi()+M_PI);
 		    if (phitmp > 2.*M_PI) phitmp -= 2.*M_PI;
 		    _phi1s.push_back(jets[0].momentum().phi());
 		    _phi2s.push_back(phitmp);
 		    _rads.push_back(jprodr);*/
 
 	double ln1,ln2;
 	ln1 = getLn(jprodr, jprodphi, jets[0].momentum().phi(), jets[0].momentum().eta());
 	if (jets.size() > 1) {
 	  if (deltaPhi(jets[0],jets[1]) > M_PI/2.) {
 	    ln2 = getLn(jprodr, jprodphi, jets[1].momentum().phi(), jets[1].momentum().eta());	
 	    _h_deltaln1->fill(ln2-ln1,weight);
 	  }
 	}
 	else {
 	  double jeta, jphi, dphi0, dphi1;
 	  jphi = jets[0].momentum().phi();
 	  jeta = jets[0].momentum().eta();
 	  dphi0 = deltaPhi(jphi,inphi1);
 	  dphi1 = deltaPhi(jphi,inphi2);
 	  if (dphi0 < M_PI/5. && ineta2 < 2. && dphi1 > M_PI/2.) {
 	    ln2 = getLn(jprodr, jprodphi, inphi2, ineta2);	
 	    _h_deltaln1->fill(ln2-ln1,weight);
 	  }
 	  if (dphi1 < M_PI/5. && ineta1 < 2. && dphi0 > M_PI/2.) {
 	    ln2 = getLn(jprodr, jprodphi, inphi1, ineta1);	
 	    _h_deltaln1->fill(ln2-ln1,weight);
 	  }
 	}
       }
 
 
       // di-jet cuts
       if (jets.size() < 2 || pt1 < _pt1min*GeV) {
 	if (partonspasscuts) _p_lossrate->fill(ajin,1.,weight);
 	_p_lossrate2->fill(ajin,1.,weight);
 	return;
       }
       if (deltaPhi(jets[0],jets[1]) < M_PI/2.) {
 	if (partonspasscuts) _p_lossrate->fill(ajin,1.,weight);
 	_p_lossrate2->fill(ajin,1.,weight);
 	return;
       }	  
       double pt2(jets[1].momentum().pT());
       double aj = (pt1 - pt2)/(pt1 + pt2);
       if (partonspasscuts) _p_lossrate->fill(ajin,0.,weight);
       _p_lossrate2->fill(ajin,0.,weight);
       if (inpt[0] > _pt1min && inpt[1] > _pt2min) _p_gainrate->fill(aj,0.,weight);
       else _p_gainrate->fill(aj,1.,weight);
 
       // check if one of the jets is obviously from IS
       bool isjet(false);
       if ((pt1 - inpt[0])/inpt[0] > 0.1 || (pt2 - inpt[1])/inpt[1] > 0.1) {
 	isjet = true;
 	_p_isfrac3->fill(-1,1.,weight);
 	_p_isfrac->fill(aj,1.,weight);
 	_p_isfrac2->fill(ajin,1.,weight);
 	if ((pt1 - inpt[0])/inpt[0] > 0.1 && (pt2 - inpt[1])/inpt[1] > 0.1) {
 	  _p_isfrac3->fill(0,0.,weight);
 	  _p_isfrac3->fill(1,0.,weight);
 	  _p_isfrac3->fill(2,1.,weight);
 	}
 	else if ((pt1 - inpt[0])/inpt[0] > 0.1) {
 	  _p_isfrac3->fill(0,1.,weight);
 	  _p_isfrac3->fill(1,0.,weight);
 	  _p_isfrac3->fill(2,0.,weight);
 	}
 	else {
 	  _p_isfrac3->fill(0,0.,weight);
 	  _p_isfrac3->fill(1,1.,weight);
 	  _p_isfrac3->fill(2,0.,weight);
 	}
       }
       else {
 	_p_isfrac3->fill(-1,0.,weight);
 	_p_isfrac->fill(aj,0.,weight);
 	_p_isfrac2->fill(ajin,0.,weight);
 	_h_ajfs->fill(aj,weight);
       }
 
       double phi2(jets[1].momentum().phi());
       if (phi2 > M_PI) phi2 = 2.*M_PI - phi2;
 
       _h_prodrdij->fill(jprodr,weight);
       _p_pt1->fill(jprodr,pt1,weight);
       _p_pt2->fill(jprodr,pt2,weight);
       _p_ptratio->fill(jprodr,pt2/pt1,weight);
       _h_ptratiodist->fill(pt2/pt1,weight); 
       _h_dijetphi->fill(phi1,weight);
       _p_ptratiophi->fill(phi2,pt2/pt1,weight); 
 
       for (size_t k = 0; k < 2; ++k) {
 	_h_jetmass[k]->fill(sqrt(max(jets[k].momentum().mass2(),0.)),weight);
 	_h_massopt[k]->fill(sqrt(max(jets[k].momentum().mass2(),0.))/jets[k].momentum().pT(),weight);
 	double zmax(0.);
 	foreach (Particle part, jets[k].particles()) {
 	  double dR(deltaR(part,jets[k]));
 	  double kt(part.momentum().pT());
 	  double z(kt*cos(dR)/jets[k].momentum().pT());
 	  if ( z > zmax) zmax = z;
 	}
 	_h_leadpartz[k]->fill(zmax,weight);
       }
 
       /*	  _phi1s.push_back(jets[0].momentum().phi());
 		  _phi2s.push_back(jets[1].momentum().phi());
 		  _rads.push_back(jprodr);
 		  _cents.push_back(cent);*/
 
       // asymmetry
       if (aj < _ajcut1) {
 	_ndijets_ajl += weight;
 	_h_dijetphi_ajl->fill(phi1,weight);
       }
       if (aj > _ajcut2) {
 	_ndijets_ajh += weight;
 	_h_dijetphi_ajh->fill(phi1,weight);
       }
       if (aj > _ajcut3 && aj < _ajcut2) {
 	_h_dijetphi_ajm->fill(phi1,weight);
       }
       _h_aj->fill(aj,weight);
       _h_aj_all_xs->fill(aj,weight);
       if (jets.size() == 2) _h_aj_2_xs->fill(aj,weight);
       if (jets.size() == 3) _h_aj_3_xs->fill(aj,weight);
       if (jets.size() > 3)  _h_aj_4_xs->fill(aj,weight);
       if (!isjet) {
 	_h_ajcorr->fill(ajin,aj,weight);
 	_h_ajin3->fill(ajin,weight);
 	if (ajin > 0.6) {
 	  _h_ajbin[3]->fill(aj,weight);
 	  _h_ajbinxsec[3]->fill(aj,weight);
 	}
 	else if (ajin > 0.4) {
 	  _h_ajbin[2]->fill(aj,weight);
 	  _h_ajbinxsec[2]->fill(aj,weight);
 	}
 	else if (ajin > 0.2) {
 	  _h_ajbin[1]->fill(aj,weight);
 	  _h_ajbinxsec[1]->fill(aj,weight);
 	}
 	else {
 	  _h_ajbin[0]->fill(aj,weight);
 	  _h_ajbinxsec[0]->fill(aj,weight);
 	}
 	if (aj > 0.6) _h_ajinbin[3]->fill(ajin,weight);
 	else if (aj > 0.4) _h_ajinbin[2]->fill(ajin,weight);
 	else if (aj > 0.2) _h_ajinbin[1]->fill(ajin,weight);
 	else _h_ajinbin[0]->fill(ajin,weight);
 	double mopt1(inmass1/inpt1), mopt2(inmass2/inpt2);
 	double moptasym;
 	if (mopt1 == 0. && mopt2 == 0.) moptasym = 0.;
 	else moptasym = fabs(mopt1-mopt2)/(mopt1+mopt2);
 	_h_moptasym->fill(moptasym,weight);
 	if (moptasym > 0.6) {
 	  _h_ajbin2[3]->fill(aj,weight);
 	  _h_ajinbin2[3]->fill(ajin,weight);
 	}
 	else if (moptasym > 0.4) {
 	  _h_ajbin2[2]->fill(aj,weight);
 	  _h_ajinbin2[2]->fill(ajin,weight);
 	}
 	else if (moptasym > 0.2) {
 	  _h_ajbin2[1]->fill(aj,weight);
 	  _h_ajinbin2[1]->fill(ajin,weight);
 	}
 	else {
 	  _h_ajbin2[0]->fill(aj,weight);	    
 	  _h_ajinbin2[0]->fill(ajin,weight);
 	}
       }
       // fragmentation functions
       for (size_t k = 0; k < 2; ++k) {
 	Jet jet(jets[k]);
 	_h_jetpt[k]->fill(jet.momentum().pT(),weight);
 	if (aj < _ajcut1) _h_jetpt_ajl[k]->fill(jet.momentum().pT(),weight);
 	if (aj > _ajcut2) _h_jetpt_ajh[k]->fill(jet.momentum().pT(),weight);
 
 	double jetpt(jet.momentum().pT());
 	bool jet100;
 	if (jetpt > 100.*GeV && jetpt < 125.*GeV){
 	  jet100 = 1;
 	  _Njet100[k] += weight;
 	}
 	else jet100 = 0;
 
 	int mult(0);
 	foreach (Particle track, tracks.particles()){
 	  double dR(deltaR(track,jet));
 	  if (dR < _jetparams[0]){
 	    if (jet100) mult += 1;
 	    double kt(track.momentum().pT());
 	    double z(kt*cos(dR)/jetpt);
 	    _h_z[k]->fill(z,weight);
 	    if (aj < _ajcut1) _h_z_ajl[k]->fill(z,weight);
 	    if (aj > _ajcut2) _h_z_ajh[k]->fill(z,weight);
 	    if (jet100) _h_z100[k]->fill(z,weight);
 	    _h_pt[k]->fill(kt,weight);
 	    if (aj < _ajcut1) _h_pt_ajl[k]->fill(kt,weight);
 	    if (aj > _ajcut2) _h_pt_ajh[k]->fill(kt,weight);
 	  }
 	}
 	if (jet100) _h_mult100[k]->fill(mult,weight);
       }
 
       // path lengths
       double ln1,ln2;
       ln1 = getLn(jprodr, jprodphi, jets[0].momentum().phi(), jets[0].momentum().eta());	
       ln2 = getLn(jprodr, jprodphi, jets[1].momentum().phi(), jets[1].momentum().eta());	
       _h_lns->fill(ln1,weight);
       _h_lns->fill(ln2,weight);
       _h_deltaln2->fill(ln2-ln1,weight);
       _h_lns2->fill(ln1,ln2,weight);
       _p_meanpathlength->fill(0,ln1,weight);
       _p_meanpathlength->fill(0,ln2,weight);	  
       if (aj > 0.6) _h_deltaln[3]->fill(ln2-ln1,weight);
       else if (aj > 0.4) _h_deltaln[2]->fill(ln2-ln1,weight);
       else if (aj > 0.2) _h_deltaln[1]->fill(ln2-ln1,weight);
       else _h_deltaln[0]->fill(ln2-ln1,weight);
       if (ln1 < ln2){
 	_Nupper += weight;
 	_p_swapfrac->fill(0, 0., weight);
 	_p_swapfrac->fill(1, 1., weight);
       }
       else {
 	_Nlower += weight;
 	_p_swapfrac->fill(0, 1., weight);
 	_p_swapfrac->fill(1, 0., weight);
       }
       /*	  _rs.push_back(jprodr);
 		  _phis.push_back(jprodphi);
 		  _phi1s.push_back(jets[0].momentum().phi());
 		  _phi2s.push_back(jets[1].momentum().phi());
 		  _ln1s.push_back(ln1);
 		  _ln2s.push_back(ln2);
 		  _weights.push_back(weight);*/
 
       // eta dependence
       double deltaeta(fabs(jets[0].momentum().eta() - jets[1].momentum().eta()));
       _h_deltaeta->fill(deltaeta,weight);
       _h_eta[0]->fill(fabs(jets[0].momentum().eta()),weight);
       _h_eta[1]->fill(fabs(jets[1].momentum().eta()),weight);
       if (deltaeta < 0.25) {
 	_h_deltaln_deta0->fill(ln2-ln1,weight);
 	_h_aj_deta0->fill(aj,weight);
       }
       if (deltaeta > 1.) {
 	_h_deltaln_deta1->fill(ln2-ln1,weight);
 	_h_aj_deta1->fill(aj,weight);
       }
       if (deltaeta > 2.) {
 	_h_deltaln_deta2->fill(ln2-ln1,weight);
 	_h_aj_deta2->fill(aj,weight);
       }
 	
 
       for (size_t k = 0; k < 2; ++k) {
 	_h_virtuality[k]->fill(virt[k],weight);
 	_h_initialpt[k]->fill(inpt[k],weight);
 	_h_virtopt[k]->fill(virt[k]/inpt[k],weight);
 
 	if (inpt[k] > 100.*GeV && inpt[k] < 125.*GeV){
 	  _h_virtuality100[k]->fill(virt[k],weight);
 	}
       }
 
     }
 
 
     /// Normalise histograms etc., after the run
     void finalize() {
       if (_ndijets == 0.) _ndijets = 1.;
       if (_ndijets_ajl == 0.) _ndijets_ajl = 1.;
       if (_ndijets_ajh == 0.) _ndijets_ajh = 1.;
       if (_ndijets_dphisel == 0.) _ndijets_dphisel = 1.;
       if (_Njet100[0] == 0.) _Njet100[0] = 1.;
       if (_Njet100[1] == 0.) _Njet100[1] = 1.;
       if (_Njet100mat[0] == 0.) _Njet100mat[0] = 1.;
       if (_Njet100mat[1] == 0.) _Njet100mat[1] = 1.;
 
       //	for (size_t i = 0; i < _ncentbins; ++i) {
       for (size_t k = 0; k < 2; ++k) {
 	scale(_h_z[k],1./_ndijets);
 	scale(_h_z_ajl[k],1./_ndijets_ajl);
 	scale(_h_z_ajh[k],1./_ndijets_ajh);
 	scale(_h_pt[k],1./_ndijets);
 	scale(_h_pt_ajl[k],1./_ndijets_ajl);
 	scale(_h_pt_ajh[k],1./_ndijets_ajh);
 	scale(_h_jetpt[k],crossSection()/sumOfWeights());
 	scale(_h_jetpt_ajl[k],crossSection()/sumOfWeights());
 	scale(_h_jetpt_ajh[k],crossSection()/sumOfWeights());
 	scale(_h_virtuality[k],crossSection()/sumOfWeights());
 	scale(_h_initialpt[k],crossSection()/sumOfWeights());
 	scale(_h_virtopt[k],crossSection()/sumOfWeights());
 	scale(_h_z100[k],1./_Njet100[k]);
 	normalize(_h_virtuality100[k]);
 	normalize(_h_eta[k]);
 	normalize(_h_mult100[k]);
 	normalize(_h_jetmass[k]);
 	normalize(_h_massopt[k]);
 	normalize(_h_leadpartz[k]);
       }
       //	}
       normalize(_h_prodrall);
       normalize(_h_prodrdij);
       normalize(_h_prodrleadj);
 
       normalize(_h_ptratiodist);
       normalize(_h_aj);
       normalize(_h_aj_deta0);
       normalize(_h_aj_deta1);
       normalize(_h_aj_deta2);
       normalize(_h_ajcorr);
       normalize(_h_ajin0);
       normalize(_h_ajin1);
       normalize(_h_ajin2);
       normalize(_h_ajin3);
       normalize(_h_ajfs);
       for (size_t k = 0; k < 4; ++k) {
 	normalize(_h_ajbin[k]);
 	normalize(_h_ajinbin[k]);
 	normalize(_h_ajbin2[k]);
 	normalize(_h_ajinbin2[k]);
 	normalize(_h_deltaln[k]);
 	scale(_h_ajbinxsec[k],crossSection()/sumOfWeights());
       }
 
       scale(_h_aj_all_xs,crossSection()/sumOfWeights());
       scale(_h_aj_2_xs,crossSection()/sumOfWeights());
       scale(_h_aj_3_xs,crossSection()/sumOfWeights());
       scale(_h_aj_4_xs,crossSection()/sumOfWeights());
 
       scale(_h_dijetphi,crossSection()/sumOfWeights());
       scale(_h_dijetphi_ajl,crossSection()/sumOfWeights());
       scale(_h_dijetphi_ajm,crossSection()/sumOfWeights());
       scale(_h_dijetphi_ajh,crossSection()/sumOfWeights());
 
       normalize(_h_lns);
       normalize(_h_deltaln0);
       normalize(_h_deltaln1);
       normalize(_h_deltaln2);
       normalize(_h_lns2);
       normalize(_h_deltaln_deta0);
       normalize(_h_deltaln_deta1);
       normalize(_h_deltaln_deta2);
       normalize(_h_prodpoints);
 	
       normalize( _h_moptasym);
 
       normalize(_h_deltaeta);
 
       cout<<endl;
       cout<<"Fraction of swapped path lengths: "<<_Nlower/(_Nupper+_Nlower)<<endl;
 
       //	cout<<endl;
       //	for (size_t i = 0; i < _rs.size(); ++i) {	
       //	  cout<<_rs[i]<<"   "<<_phis[i]<<"   "<<_phi1s[i]<<"   "<<_phi2s[i]<<"   "<<_ln1s[i]<<"   "<<_ln2s[i]<<"   "<<_weights[i]<<endl;
       //      }
 
       //	for (size_t i = 0; i < _phi1s.size(); ++i) {
       //cout<<_cents[i]<<"   "<<_rads[i]<<"   "<<_phi1s[i]<<"   "<<_phi2s[i]<<endl;
       //	  cout<<_rads[i]<<"   "<<_phi1s[i]<<"   "<<_phi2s[i]<<endl;
       //      }
 
       /*      AIDA::IHistogramFactory& hf = histogramFactory();
 	      hf.divide("ratio_z", *_h_z[0][0], *_h_z[0][1]);
 	      hf.divide("ratio_z_ajl", *_h_z_ajl[0][0], *_h_z_ajl[0][1]);
 	      hf.divide("ratio_z_ajh", *_h_z_ajh[0][0], *_h_z_ajh[0][1]);
 	      hf.divide("ratio_pt", *_h_pt[0][0], *_h_pt[0][1]);
 	      hf.divide("ratio_pt_ajl", *_h_pt_ajl[0][0], *_/home/sherpa/SHERPA/Examples/Jets_at_HadronColliders/LHC_Jets_MEPSh_pt_ajl[0][1]);
 	      hf.divide("ratio_pt_ajh", *_h_pt_ajh[0][0], *_h_pt_ajh[0][1]);
       */
 
     }
 
     //@}
 
 
   private:
 
     vector<double> _jetparams; 
     vector<double> _centedges;
     size_t _ncentbins, _njetbins, _nradbins;
     double _ndijets, _ndijets_ajl, _ndijets_ajh, _ndijets_dphisel;
     double _Njet100[2], _Njet100mat[2];
     string _names[1];
     //    vector<double> _phi1s,_phi2s,_rads, _cents;
     double _rad;
     double _pt1min, _pt2min, _ajcut1, _ajcut2, _ajcut3;
 
     double _Lngrid[50][31];
     double _gridrmax, _gridphimax;
     size_t _ngridrbins, _ngridphibins;
 
     size_t _nlnbins;
     double _lnmax;
 
     double _Nupper, _Nlower;
 
     vector<double> _rs, _phis, _phi1s, _phi2s, _ln1s, _ln2s, _weights;
 
 
   private:
 
 
-    AIDA::IHistogram1D * _h_jetpt[2];
-    AIDA::IHistogram1D * _h_jetptphi[2];
-    AIDA::IHistogram1D * _h_pt[2];
-    AIDA::IHistogram1D * _h_z[2];
-    AIDA::IHistogram1D * _h_jetpt_ajl[2];
-    AIDA::IHistogram1D * _h_pt_ajl[2];
-    AIDA::IHistogram1D * _h_z_ajl[2];
-    AIDA::IHistogram1D * _h_jetpt_ajh[2];
-    AIDA::IHistogram1D * _h_pt_ajh[2];
-    AIDA::IHistogram1D * _h_z_ajh[2];
-    AIDA::IHistogram1D * _h_virtuality[2];
-    AIDA::IHistogram1D * _h_initialpt[2];
-    AIDA::IHistogram1D * _h_virtopt[2];
-    AIDA::IHistogram1D * _h_virtuality100[2];
-    AIDA::IHistogram1D * _h_z100[2];
-    AIDA::IHistogram1D * _h_mult100[2];
-    AIDA::IHistogram1D * _h_jetmass[2];
-    AIDA::IHistogram1D * _h_massopt[2];
-    AIDA::IHistogram1D * _h_leadpartz[2];
-    AIDA::IHistogram1D * _h_ptratiodist;
-    AIDA::IHistogram1D * _h_prodrall;
-    AIDA::IHistogram1D * _h_prodrdij;
-    AIDA::IHistogram1D * _h_prodrleadj;
-    AIDA::IProfile1D   * _p_pt1;
-    AIDA::IProfile1D   * _p_pt2;
-    AIDA::IProfile1D   * _p_ptratio;
-    AIDA::IProfile1D   * _p_pdijet;
-    AIDA::IHistogram1D * _h_dijetphi;
-    AIDA::IHistogram1D * _h_dijetphi_ajl;
-    AIDA::IHistogram1D * _h_dijetphi_ajm;
-    AIDA::IHistogram1D * _h_dijetphi_ajh;
-    AIDA::IProfile1D   * _p_pdijetphi;
-    AIDA::IProfile1D   * _p_ptratiophi;
-    AIDA::IHistogram1D * _h_aj;
-    AIDA::IHistogram1D * _h_aj_all_xs;
-    AIDA::IHistogram1D * _h_aj_2_xs;
-    AIDA::IHistogram1D * _h_aj_3_xs;
-    AIDA::IHistogram1D * _h_aj_4_xs;
-    AIDA::IHistogram1D * _h_aj_deta0;
-    AIDA::IHistogram1D * _h_aj_deta1;
-    AIDA::IHistogram1D * _h_aj_deta2;
-    AIDA::IHistogram2D * _h_ajcorr;
-    AIDA::IHistogram1D * _h_ajin0;
-    AIDA::IHistogram1D * _h_ajin1;
-    AIDA::IHistogram1D * _h_ajin2;
-    AIDA::IHistogram1D * _h_ajin3;
-    AIDA::IHistogram1D * _h_ajfs;
-    AIDA::IHistogram1D * _h_ajbin[4];
-    AIDA::IHistogram1D * _h_ajbinxsec[4];
-    AIDA::IHistogram1D * _h_ajinbin[4];
-    AIDA::IHistogram1D * _h_ajbin2[4];
-    AIDA::IHistogram1D * _h_ajinbin2[4];
-    AIDA::IProfile1D   * _p_lossrate;
-    AIDA::IProfile1D   * _p_lossrate2;
-    AIDA::IProfile1D   * _p_gainrate;
-    AIDA::IProfile1D   * _p_isfrac;
-    AIDA::IProfile1D   * _p_isfrac2;
-    AIDA::IProfile1D   * _p_isfrac3;
-    AIDA::IHistogram1D * _h_lns;
-    AIDA::IHistogram1D * _h_deltaln0;
-    AIDA::IHistogram1D * _h_deltaln1;
-    AIDA::IHistogram1D * _h_deltaln2;
-    AIDA::IHistogram1D * _h_deltaln[4];
-    AIDA::IHistogram1D * _h_deltaln_deta0;
-    AIDA::IHistogram1D * _h_deltaln_deta1;
-    AIDA::IHistogram1D * _h_deltaln_deta2;
-    AIDA::IHistogram2D * _h_lns2;
-    AIDA::IHistogram2D * _h_prodpoints;
-    AIDA::IHistogram1D * _h_eta[2];
-    AIDA::IHistogram1D * _h_deltaeta;
-    AIDA::IProfile1D   * _p_quarkfrac;
-    AIDA::IProfile1D   * _p_swapfrac;
-    AIDA::IHistogram1D * _h_moptasym;
-    AIDA::IProfile1D   * _p_meanpathlength;
+    Histo1DPtr _h_jetpt[2];
+    Histo1DPtr _h_jetptphi[2];
+    Histo1DPtr _h_pt[2];
+    Histo1DPtr _h_z[2];
+    Histo1DPtr _h_jetpt_ajl[2];
+    Histo1DPtr _h_pt_ajl[2];
+    Histo1DPtr _h_z_ajl[2];
+    Histo1DPtr _h_jetpt_ajh[2];
+    Histo1DPtr _h_pt_ajh[2];
+    Histo1DPtr _h_z_ajh[2];
+    Histo1DPtr _h_virtuality[2];
+    Histo1DPtr _h_initialpt[2];
+    Histo1DPtr _h_virtopt[2];
+    Histo1DPtr _h_virtuality100[2];
+    Histo1DPtr _h_z100[2];
+    Histo1DPtr _h_mult100[2];
+    Histo1DPtr _h_jetmass[2];
+    Histo1DPtr _h_massopt[2];
+    Histo1DPtr _h_leadpartz[2];
+    Histo1DPtr _h_ptratiodist;
+    Histo1DPtr _h_prodrall;
+    Histo1DPtr _h_prodrdij;
+    Histo1DPtr _h_prodrleadj;
+    Profile1DPtr _p_pt1;
+    Profile1DPtr _p_pt2;
+    Profile1DPtr _p_ptratio;
+    Profile1DPtr _p_pdijet;
+    Histo1DPtr _h_dijetphi;
+    Histo1DPtr _h_dijetphi_ajl;
+    Histo1DPtr _h_dijetphi_ajm;
+    Histo1DPtr _h_dijetphi_ajh;
+    Profile1DPtr _p_pdijetphi;
+    Profile1DPtr _p_ptratiophi;
+    Histo1DPtr _h_aj;
+    Histo1DPtr _h_aj_all_xs;
+    Histo1DPtr _h_aj_2_xs;
+    Histo1DPtr _h_aj_3_xs;
+    Histo1DPtr _h_aj_4_xs;
+    Histo1DPtr _h_aj_deta0;
+    Histo1DPtr _h_aj_deta1;
+    Histo1DPtr _h_aj_deta2;
+    Histo2DPtr _h_ajcorr;
+    Histo1DPtr _h_ajin0;
+    Histo1DPtr _h_ajin1;
+    Histo1DPtr _h_ajin2;
+    Histo1DPtr _h_ajin3;
+    Histo1DPtr _h_ajfs;
+    Histo1DPtr _h_ajbin[4];
+    Histo1DPtr _h_ajbinxsec[4];
+    Histo1DPtr _h_ajinbin[4];
+    Histo1DPtr _h_ajbin2[4];
+    Histo1DPtr _h_ajinbin2[4];
+    Profile1DPtr _p_lossrate;
+    Profile1DPtr _p_lossrate2;
+    Profile1DPtr _p_gainrate;
+    Profile1DPtr _p_isfrac;
+    Profile1DPtr _p_isfrac2;
+    Profile1DPtr _p_isfrac3;
+    Histo1DPtr _h_lns;
+    Histo1DPtr _h_deltaln0;
+    Histo1DPtr _h_deltaln1;
+    Histo1DPtr _h_deltaln2;
+    Histo1DPtr _h_deltaln[4];
+    Histo1DPtr _h_deltaln_deta0;
+    Histo1DPtr _h_deltaln_deta1;
+    Histo1DPtr _h_deltaln_deta2;
+    Histo2DPtr _h_lns2;
+    Histo2DPtr _h_prodpoints;
+    Histo1DPtr _h_eta[2];
+    Histo1DPtr _h_deltaeta;
+    Profile1DPtr _p_quarkfrac;
+    Profile1DPtr _p_swapfrac;
+    Histo1DPtr _h_moptasym;
+    Profile1DPtr _p_meanpathlength;
 
   };
 
 
 
   // The hook for the plugin system
   DECLARE_RIVET_PLUGIN(MC_DIJETS);
 
 }
Index: trunk/code/TEST_JETMASS.cc
===================================================================
--- trunk/code/TEST_JETMASS.cc	(revision 451)
+++ trunk/code/TEST_JETMASS.cc	(revision 452)
@@ -1,262 +1,365 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 #include "Rivet/Tools/Logging.hh"
 #include "Rivet/Tools/ParticleIdUtils.hh"
 #include <boost/lexical_cast.hpp>
 
 namespace Rivet {
 
   using namespace fastjet;
 
   /// @brief jet pt spectrum
   class TEST_JETMASS : public Analysis {
   public:
 
     /// Constructor
     TEST_JETMASS()
       : Analysis("TEST_JETMASS")    {
            _nphibins = 120; _netabins = 160;
     }
 
     /// Book projections and histograms
     void init() {
       FinalState fs(-4., 4., 0.*GeV);
       ChargedFinalState cfs(-4., 4., 0.*GeV);
 
       addProjection(fs, "FS");
       addProjection(cfs, "CFS");
       addProjection(FastJets(fs, FastJets::ANTIKT, 0.4), "caloJets");
       addProjection(FastJets(cfs, FastJets::ANTIKT, 0.4), "trackJets");
 
       _h_pt_calo = bookHisto1D("pt_calo", 60, 60., 240.);
       _h_pt_track = bookHisto1D("pt_track", 30, 60., 120.);
       _h_pt_resc = bookHisto1D("pt_resc", 30, 60., 120.);
-      _h_pt_grid = bookHisto1D("pt_grid", 60, 60., 240.);
-      _h_pt_rescgrid = bookHisto1D("pt_resc", 30, 60., 120.);
+      _h_pt_grid1 = bookHisto1D("pt_grid1", 60, 60., 240.);
+      _h_pt_grid2 = bookHisto1D("pt_grid2", 60, 60., 240.);
+      _h_pt_rescgrid1 = bookHisto1D("pt_rescgrid1", 30, 60., 120.);
+      _h_pt_rescgrid2 = bookHisto1D("pt_rescgrid2", 30, 60., 120.);
       _h_mass_calo = bookHisto1D("mass_calo", 25, 0., 50.);
       _h_mass_track = bookHisto1D("mass_track", 13, 0., 26.);
       _h_mass_resc = bookHisto1D("mass_resc", 13, 0., 26.);
-      _h_mass_grid = bookHisto1D("mass_grid", 25, 0., 50.);
-      _h_mass_rescgrid = bookHisto1D("mass_rescgrid", 13, 0., 26.);
+      _h_mass_grid1 = bookHisto1D("mass_grid1", 25, 0., 50.);
+      _h_mass_grid2 = bookHisto1D("mass_grid2", 25, 0., 50.);
+      _h_mass_rescgrid1 = bookHisto1D("mass_rescgrid1", 13, 0., 26.);
+      _h_mass_rescgrid2 = bookHisto1D("mass_rescgrid2", 13, 0., 26.);
 
     }
 
 
 /// initialise and fill grid for grid subtration    
     vector<vector<FourMomentum> >  fillGrid(const Event & event, std::set<std::pair<size_t,size_t> > & gridevent) {	    
 	    // initialise grid
            vector<vector<FourMomentum> >  grid;
            grid.resize(_nphibins);
            for (size_t i = 0; i < _nphibins; ++i) {
                   grid[i].resize(_netabins);
 		    for (size_t k = 0; k < _nphibins; ++k) {
 			    grid[i][k] = FourMomentum(0., 0., 0., 0.);
 		    }
            }
 
       // fill grid
         foreach (const HepMC::GenParticle* p, particles(event.genEvent())) {
             FourMomentum mom(p->momentum());
             if (fabs(mom.eta()) < 4.) {
                size_t phibin, etabin;
                phibin = int(mom.phi(ZERO_2PI)*_nphibins/(2.*M_PI));
                etabin = int((mom.eta() + 4.)*_netabins/8.);
                if (phibin < 0 || phibin > _nphibins-1) {std::cout<<"Error: "<<mom.phi(ZERO_2PI)<<"  --> "<<phibin<<std::endl; exit(1);}
                if (etabin < 0 || etabin > _netabins-1) {std::cout<<"Error: "<<mom.eta()<<"  --> "<<etabin<<std::endl; exit(1);}
-               /*if (p->status() == 3) {
+               if (p->status() == 3) {
                    grid[phibin][etabin].setE(grid[phibin][etabin].E() - mom.E());
                    grid[phibin][etabin].setPx(grid[phibin][etabin].px() - mom.px());
                    grid[phibin][etabin].setPy(grid[phibin][etabin].py() - mom.py());
                    grid[phibin][etabin].setPz(grid[phibin][etabin].pz() - mom.pz());
                }
                else {
                    grid[phibin][etabin].setE(grid[phibin][etabin].E() + mom.E());
                    grid[phibin][etabin].setPx(grid[phibin][etabin].px() + mom.px());
                    grid[phibin][etabin].setPy(grid[phibin][etabin].py() + mom.py());
                    grid[phibin][etabin].setPz(grid[phibin][etabin].pz() + mom.pz());    
-               }*/
-               double cellphi((phibin+0.5)*2*M_PI/_nphibins), celleta((etabin+0.5)*8./_netabins-4.);
+               }
+               /*double cellphi((phibin+0.5)*2*M_PI/_nphibins), celleta((etabin+0.5)*8./_netabins-4.);
                double celltheta(2.*atan(exp(-celleta)));
                if (p->status() == 3) {
                    double rho(grid[phibin][etabin].E() - mom.E());
                    grid[phibin][etabin].setE(rho);
                    grid[phibin][etabin].setPx(fabs(rho)*sin(celltheta)*cos(cellphi));
                    grid[phibin][etabin].setPy(fabs(rho)*sin(celltheta)*sin(cellphi));
                    grid[phibin][etabin].setPz(fabs(rho)*cos(celltheta));
                }
                else {
 		     // use this for standard recoil treatment
                    double rho(grid[phibin][etabin].E() + mom.E());
                    grid[phibin][etabin].setE(rho);
                    grid[phibin][etabin].setPx(rho*sin(celltheta)*cos(cellphi));
                    grid[phibin][etabin].setPy(rho*sin(celltheta)*sin(cellphi));
                    grid[phibin][etabin].setPz(rho*cos(celltheta));
-		 }
+		 }*/
                gridevent.insert(std::pair<size_t,size_t>(phibin,etabin));
 	     }
 	 }
 		return grid;
     }  
 
 
 
+/// initialise and fill grid for grid subtration    
+    PseudoJets  fillJetGrid(Jet jet) {
+	    // initialise grid
+           vector<vector<FourMomentum> >  grid;
+           grid.resize(_nphibins);
+           for (size_t i = 0; i < _nphibins; ++i) {
+                  grid[i].resize(_netabins);
+		    for (size_t k = 0; k < _nphibins; ++k) {
+			    grid[i][k] = FourMomentum(0., 0., 0., 0.);
+		    }
+           }
+	    std::set<std::pair<size_t,size_t> > gridevent;
+
+      // fill grid
+        foreach (Particle part, jet.constituents()) {
+            FourMomentum mom(part.momentum());
+               size_t phibin, etabin;
+               phibin = int(mom.phi(ZERO_2PI)*_nphibins/(2.*M_PI));
+               etabin = int((mom.eta() + 4.)*_netabins/8.);
+               if (phibin < 0 || phibin > _nphibins-1) {std::cout<<"Error: "<<mom.phi(ZERO_2PI)<<"  --> "<<phibin<<std::endl; exit(1);}
+               if (etabin < 0 || etabin > _netabins-1) {std::cout<<"Error: "<<mom.eta()<<"  --> "<<etabin<<std::endl; exit(1);}
+		 grid[phibin][etabin].setE(grid[phibin][etabin].E() + mom.E());
+		 grid[phibin][etabin].setPx(grid[phibin][etabin].px() + mom.px());
+		 grid[phibin][etabin].setPy(grid[phibin][etabin].py() + mom.py());
+		 grid[phibin][etabin].setPz(grid[phibin][etabin].pz() + mom.pz());    
+               /*double cellphi((phibin+0.5)*2*M_PI/_nphibins), celleta((etabin+0.5)*8./_netabins-4.);
+               double celltheta(2.*atan(exp(-celleta)));
+                   double rho(grid[phibin][etabin].E() + mom.E());
+                   grid[phibin][etabin].setE(rho);
+                   grid[phibin][etabin].setPx(rho*sin(celltheta)*cos(cellphi));
+                   grid[phibin][etabin].setPy(rho*sin(celltheta)*sin(cellphi));
+                   grid[phibin][etabin].setPz(rho*cos(celltheta));*/
+               gridevent.insert(std::pair<size_t,size_t>(phibin,etabin));
+	 }
+	 PseudoJets pevent;
+        for (set<pair<size_t,size_t> >::iterator it=gridevent.begin(); it!=gridevent.end(); ++it) {
+            size_t i,k;
+            i = it->first;
+            k = it->second;
+            if (grid[i][k].E() > 0. ) {
+                PseudoJet pjet(grid[i][k].px(),grid[i][k].py(),grid[i][k].pz(),grid[i][k].E());
+                pevent.push_back(pjet);
+            }
+        }
+      return pevent;
+    }  
+
+
+
 /// 4-momentum adapter
     FourMomentum Get4Mom(PseudoJet pjet){
         FourMomentum mom(pjet.E(), pjet.px(), pjet.py(), pjet.pz());
         return mom;
     }
     
     
     
 
     /// Do the analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
 
-      const Jets caloJets = applyProjection<FastJets>(event, "caloJets").jetsByPt(80.*GeV);
-      const Jets trackJets = applyProjection<FastJets>(event, "trackJets").jetsByPt(60.*GeV);
+      Cut cuts1 = Cuts::abseta < 2.0 && Cuts::pT > 60*GeV;
+      Cut cuts2 = Cuts::abseta < 2.0 && Cuts::pT > 80*GeV;
+      const Jets caloJets = applyProjection<FastJets>(event, "caloJets").jetsByPt(cuts2);
+      const Jets caloJets2 = applyProjection<FastJets>(event, "caloJets").jetsByPt(cuts1);
+      const Jets trackJets = applyProjection<FastJets>(event, "trackJets").jetsByPt(cuts1);
 
+      const FinalState parts = applyProjection<FinalState>(event, "FS");
+      
+      
       foreach (Jet jet, caloJets) {
           double mass2(jet.mass2());
           double mass(mass2>0.?sqrt(mass2):0.);
           _h_pt_calo->fill(jet.pT(),weight);
           _h_mass_calo->fill(mass,weight);
       }
       foreach (Jet jet, trackJets) {
           double mass2(jet.mass2());
           double mass(mass2>0.?sqrt(mass2):0.);
           _h_pt_track->fill(jet.pT(),weight);
           _h_mass_track->fill(mass,weight);
       }
       
+      
+//grid jets version 1
 
-//grid jets
-      const FinalState parts = applyProjection<FinalState>(event, "FS");
+	foreach (Jet jet, caloJets2) {
+		PseudoJets constgrid = fillJetGrid(jet);
+		JetDefinition jet_def(antikt_algorithm, 0.4);
+		ClusterSequence cs2(constgrid, jet_def);
+		PseudoJet pjet = sorted_by_pt(cs2.inclusive_jets(0.))[0];
+	       FourMomentum jetsub = Get4Mom(pjet);
+		double mass2(jetsub.mass2());
+		double mass(mass2>0.?sqrt(mass2):0.);
+		double jetpt(jetsub.pT());
+		if (jetpt > 80.*GeV) {
+			_h_pt_grid1->fill(jetpt,weight);
+			_h_mass_grid1->fill(mass,weight);
+		}
+		/*double scalefac(1.);
+		double ntracks(0.), nparts(0.);
+		FourMomentum chmom(0.,0.,0.,0.), allmom(0.,0.,0.,0.);
+		//foreach (Particle part, parts.particles()) {
+		foreach (Particle part, jet.constituents()) {
+			if (deltaR(part.eta(), part.phi(ZERO_2PI), Get4Mom(pjet).eta(),Get4Mom(pjet).phi(ZERO_2PI)) < 0.4 && part.momentum().E() > 1.e-5) {
+				nparts += 1.;
+				allmom += part.momentum();
+				if (PID::charge(part.pdgId()) != 0) {
+					ntracks += 1.;
+					chmom += part.momentum();				      
+				}
+			}
+		}
+		jetpt*=scalefac;
+		mass *= scalefac;*/
+		jetpt*=0.75;
+		mass *= 0.67;
+		if (jetpt > 60.*GeV) {
+			_h_pt_rescgrid1->fill(jetpt,weight);
+			_h_mass_rescgrid1->fill(mass,weight);
+		}
+	}
 
+//grid jets version 2
       PseudoJets pevent, pjets;
       std::set<std::pair<size_t,size_t> > gridevent;
       vector<vector<FourMomentum> >  grid = fillGrid(event, gridevent);
       for (set<pair<size_t,size_t> >::iterator it=gridevent.begin(); it!=gridevent.end(); ++it) {
           size_t i,k;
           i = it->first;
           k = it->second;
           if (grid[i][k].E() > 0. ) {
               PseudoJet part(grid[i][k].px(),grid[i][k].py(),grid[i][k].pz(),grid[i][k].E());
               pevent.push_back(part);
           }
       }
       JetDefinition jet_def(antikt_algorithm, 0.4);
       ClusterSequence cs(pevent, jet_def);
       pjets = sorted_by_pt(cs.inclusive_jets(60.*GeV));
       foreach (PseudoJet pjet, pjets) {
 	      FourMomentum jetsub = Get4Mom(pjet);
 	      //if (abs(jetsub.eta()) < _etamax) {
-	             double scalefac;
+	             /*double scalefac;
 	             double ntracks(0.), nparts(0.);
 		      FourMomentum chmom(0.,0.,0.,0.), allmom(0.,0.,0.,0.);
 	             foreach (Particle part, parts.particles()) {
 		             if (deltaR(part.eta(), part.phi(ZERO_2PI), Get4Mom(pjet).eta(),Get4Mom(pjet).phi(ZERO_2PI)) < 0.4 && part.momentum().E() > 1.e-5) {
 			             nparts += 1.;
 				      allmom += part.momentum();
                                   if (PID::charge(part.pdgId()) != 0) {
 			                    ntracks += 1.;
 			                    chmom += part.momentum();				      
 			             }
 		             }
 	              }
 			//if (nparts > 0.) _h_chfrac_num->fill(ntracks/nparts,weight);
 	              //if (allmom.pT() > 0.) _h_chfrac_pt->fill(chmom.pT()/allmom.pT(),weight);
 	              //if (nparts > 0. && chmom.pT() > 0.)_h_chfrac_rat->fill(ntracks/nparts*allmom.pT()/chmom.pT(),weight);
 	              //scalefac = (allmom.pT()>0.?chmom.pT()/allmom.pT():1);
-	              scalefac = (nparts>0.?ntracks/nparts:1);
+	              scalefac = (nparts>0.?ntracks/nparts:1);*/
 			double mass2(jetsub.mass2());
 			double mass(mass2>0.?sqrt(mass2):0.);
 			double jetpt(jetsub.pT());
 			if (jetpt > 80.*GeV) {
-				_h_pt_grid->fill(jetpt,weight);
-				_h_mass_grid->fill(mass,weight);
+				_h_pt_grid2->fill(jetpt,weight);
+				_h_mass_grid2->fill(mass,weight);
 			}
-			jetpt*=scalefac;
-			mass *= scalefac;
+			//jetpt*=scalefac;
+			//mass *= scalefac;
+			jetpt*=0.75;
+			mass *= 0.67;
 			if (jetpt > 60.*GeV) {
-				_h_pt_rescgrid->fill(jetpt,weight);
-				_h_mass_rescgrid->fill(mass,weight);
+				_h_pt_rescgrid2->fill(jetpt,weight);
+				_h_mass_rescgrid2->fill(mass,weight);
 			}
 	      //}
       }
       
       //rescaling full jets
-      const Jets caloJets2 = applyProjection<FastJets>(event, "caloJets").jetsByPt(60.*GeV);
       //const FinalState parts = applyProjection<FinalState>(event, "FS");
       foreach (Jet jet, caloJets2) {
-	             double scalefac;
+	             /*double scalefac;
 	             double ntracks(0.), nparts(0.);
 		      FourMomentum chmom(0.,0.,0.,0.), allmom(0.,0.,0.,0.);
 	             //foreach (Particle part, parts.particles()) {
 	             foreach (Particle part, jet.constituents()) {
 		             //if (deltaR(part, jet) < 0.4 && part.momentum().E() > 1.e-5) {
 		             if (part.momentum().E() > 1.e-5) {
 			             nparts += 1.;
 				      allmom += part.momentum();
                                   if (PID::charge(part.pdgId()) != 0) {
 			                    ntracks += 1.;
 			                    chmom += part.momentum();				      
 			             }
 		             }
 	              }
 	              //scalefac = (allmom.pT()>0.?chmom.pT()/allmom.pT():1);
 	              scalefac = (nparts>0.?ntracks/nparts:1);
-	              //scalefac = (allmom.mass()>0.?chmom.mass()/allmom.mass():1);
+	              //scalefac = (allmom.mass()>0.?chmom.mass()/allmom.mass():1);*/
 			double mass2(jet.mass2());
 			double mass(mass2>0.?sqrt(mass2):0.);
-			mass *= scalefac;
-			double jetpt(scalefac*jet.pT());
+			//mass *= scalefac;
+			//double jetpt(scalefac*jet.pT());
+			mass *= 0.67;
+			double jetpt(0.75*jet.pT());
 			_h_pt_resc->fill(jetpt,weight);
 			if (jetpt > 60.*GeV) _h_mass_resc->fill(mass,weight);
       }
 
 }
 	
 	
     /// Finalize
     void finalize() {	
       scale(_h_pt_calo,crossSection()/sumOfWeights());
       scale(_h_pt_track,crossSection()/sumOfWeights());
       scale(_h_pt_resc,crossSection()/sumOfWeights());
-      scale(_h_pt_grid,crossSection()/sumOfWeights());
-      scale(_h_pt_rescgrid,crossSection()/sumOfWeights());
+      scale(_h_pt_grid1,crossSection()/sumOfWeights());
+      scale(_h_pt_grid2,crossSection()/sumOfWeights());
+      scale(_h_pt_rescgrid1,crossSection()/sumOfWeights());
+      scale(_h_pt_rescgrid2,crossSection()/sumOfWeights());
       normalize(_h_mass_calo);
       normalize(_h_mass_track);
       normalize(_h_mass_resc);
-      normalize(_h_mass_grid);
-      normalize(_h_mass_rescgrid);
+      normalize(_h_mass_grid1);
+      normalize(_h_mass_grid2);
+      normalize(_h_mass_rescgrid1);
+      normalize(_h_mass_rescgrid2);
 
     }
     
     
   private:
 
     size_t _netabins, _nphibins;
 
     Histo1DPtr _h_pt_calo;
     Histo1DPtr _h_pt_track;
     Histo1DPtr _h_pt_resc;
-    Histo1DPtr _h_pt_grid;
-    Histo1DPtr _h_pt_rescgrid;
+    Histo1DPtr _h_pt_grid1, _h_pt_grid2;
+    Histo1DPtr _h_pt_rescgrid1, _h_pt_rescgrid2;
     Histo1DPtr _h_mass_calo;
     Histo1DPtr _h_mass_track;
     Histo1DPtr _h_mass_resc;
-    Histo1DPtr _h_mass_grid;
-    Histo1DPtr _h_mass_rescgrid;
+    Histo1DPtr _h_mass_grid1, _h_mass_grid2;
+    Histo1DPtr _h_mass_rescgrid1, _h_mass_rescgrid2;
     
   };
 
 
 
   // This global object acts as a hook for the plugin system
   AnalysisBuilder<TEST_JETMASS> plugin_TEST_JETMASS;
 
 }
Index: trunk/code/JEWEL_MethodComparisons.plot
===================================================================
--- trunk/code/JEWEL_MethodComparisons.plot	(revision 451)
+++ trunk/code/JEWEL_MethodComparisons.plot	(revision 452)
@@ -1,8 +1,5 @@
-# BEGIN PLOT /JEWEL_MethodComparisons/d01-x01-y01
-#Title=[Uncomment and insert title for histogram d01-x01-y01 here]
-#XLabel=[Uncomment and insert x-axis label for histogram d01-x01-y01 here]
-#YLabel=[Uncomment and insert y-axis label for histogram d01-x01-y01 here]
-# + any additional plot settings you might like, see make-plots documentation
+# BEGIN PLOT /JEWEL_MethodComparisons/JetMass
+LogY=0
 # END PLOT
 
 # ... add more histograms as you need them ...
Index: trunk/code/MC_SIJETS.cc
===================================================================
--- trunk/code/MC_SIJETS.cc	(revision 451)
+++ trunk/code/MC_SIJETS.cc	(revision 452)
@@ -1,171 +1,173 @@
 // -*- C++ -*-
 #include "Rivet/Analysis.hh"
-#include "Rivet/RivetAIDA.hh"
 #include "Rivet/Tools/Logging.hh"
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/FastJets.hh"
 #include "Rivet/Math/MathHeader.hh"
 /// @todo Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...
 
 namespace Rivet {
 
 
   class MC_SIJETS : public Analysis {
   public:
 
     /// @name Constructors etc.
     //@{
 
     /// Constructor
     MC_SIJETS()
       : Analysis("MC_SIJETS")
     { 
       _jetparam = 0.4;
 	_nphibins = 12; 
       setNeedsCrossSection(true);
     }
 
     //@}
 
 
   public:
 
     /// @name Analysis methods
     //@{
 
     /// Book histograms and initialise projections before the run
     void init() {
 
 	_h_jetpt.resize(_nphibins);
 	
       FinalState fs(-5.0, 5.0, 0.*GeV);
 	addProjection(fs, "FS");
 	FastJets fj(fs, FastJets::ANTIKT, _jetparam);
 	fj.useInvisibles();
       addProjection(fj, "Jets-0.4");
 
-	_h_prodrall = bookHistogram1D("prodrall", 25, 0., 10.);
-	_h_prodr20  = bookHistogram1D("prodr20", 25, 0., 10.);
-	_h_prodr100 = bookHistogram1D("prodr100", 25, 0., 10.);
+	_h_prodrall = bookHisto1D("prodrall", 25, 0., 10.);
+	_h_prodr20  = bookHisto1D("prodr20", 25, 0., 10.);
+	_h_prodr100 = bookHisto1D("prodr100", 25, 0., 10.);
 	_p_pt20     = bookProfile1D("pt20", 25, 0., 10.);
 	_p_pt100    = bookProfile1D("pt100", 25, 0., 10.);
 	_p_pjet20   = bookProfile1D("pjet20", 25, 0., 10.);
 	_p_pjet100  = bookProfile1D("pjet100", 25, 0., 10.);
 	_p_njet20   = bookProfile1D("njet20", 25, 0., 10.);
 	_p_njet100  = bookProfile1D("njet100", 25, 0., 10.);
 
-      _h_jetphi  = bookHistogram1D("jetphi", _nphibins, 0., M_PI);
-      _h_ljetphi = bookHistogram1D("ljetphi",_nphibins, 0., M_PI);
-	_h_ajetpt  = bookHistogram1D("ajetpt", 25, 50., 300.);
-	_h_ljetpt  = bookHistogram1D("ljetpt", 25, 50., 300.);
+      _h_jetphi  = bookHisto1D("jetphi", _nphibins, 0., M_PI);
+      _h_ljetphi = bookHisto1D("ljetphi",_nphibins, 0., M_PI);
+	_h_ajetpt  = bookHisto1D("ajetpt", 25, 50., 300.);
+	_h_ljetpt  = bookHisto1D("ljetpt", 25, 50., 300.);
 	for (size_t k = 0; k < _nphibins; ++k) {
         stringstream ss; ss << "jetpt" << "_" << k;
-	  _h_jetpt[k] = bookHistogram1D(ss.str(), 25, 50., 300.);
+	  _h_jetpt[k] = bookHisto1D(ss.str(), 25, 50., 300.);
       }
 
     }
 
 
     /// Perform the per-event analysis
     void analyze(const Event& event) {
       const double weight = event.weight();
 //	const double cent = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->impact_parameter():-1.);
-	const double jprodr = (event.genEvent().heavy_ion()?event.genEvent().heavy_ion()->eccentricity():9.5);
+	const double jprodr = (event.genEvent()->heavy_ion()?event.genEvent()->heavy_ion()->eccentricity():9.5);
       const FastJets& fastjets = applyProjection<FastJets>(event, "Jets-0.4");
 
-      const Jets jets20  = fastjets.jetsByPt(20.*GeV, 10000*GeV, -2.0, 2.0);
-      const Jets jets50  = fastjets.jetsByPt(50.*GeV, 10000*GeV, -2.0, 2.0);
-      const Jets jets100 = fastjets.jetsByPt(100.*GeV, 10000*GeV, -2.0, 2.0);
+      Cut cuts20 = Cuts::abseta < 2.0 && Cuts::pT > 20*GeV;
+      const Jets jets20  = fastjets.jetsByPt(cuts20);
+      Cut cuts50 = Cuts::abseta < 2.0 && Cuts::pT > 50*GeV;
+      const Jets jets50  = fastjets.jetsByPt(cuts50);
+      Cut cuts100 = Cuts::abseta < 2.0 && Cuts::pT > 100*GeV;
+      const Jets jets100 = fastjets.jetsByPt(cuts100);
 
 	_h_prodrall->fill(jprodr,weight);
 
 	foreach (Jet jet, jets20) {
         double jetpt(jet.momentum().pT());
 	  _p_pt20->fill(jprodr,jetpt,weight);
         _h_prodr20->fill(jprodr,weight);
 	}
 	if (jets20.size() == 0) _p_pjet20->fill(jprodr,0.,weight);
       else _p_pjet20->fill(jprodr,1.,weight);
       _p_njet20->fill(jprodr,jets20.size(),weight);
 	foreach (Jet jet, jets100) {
         double jetpt(jet.momentum().pT());
 	  _p_pt100->fill(jprodr,jetpt,weight);
         _h_prodr100->fill(jprodr,weight);
 	}
 	if (jets100.size() == 0) _p_pjet100->fill(jprodr,0.,weight);
       else _p_pjet100->fill(jprodr,1.,weight);
       _p_njet100->fill(jprodr,jets100.size(),weight);
 
 	if (jets50.size() > 0) {
 	  double lphi(jets50[0].momentum().phi(ZERO_2PI));
 	  double lpt(jets50[0].momentum().pT());
 	  if (lphi > M_PI) lphi = 2.*M_PI - lphi;
 	  _h_ljetphi->fill(lphi,weight);
 	  _h_ljetpt->fill(lpt);
       }
 	foreach (Jet jet, jets50) {
 	  double phi(jet.momentum().phi(ZERO_2PI));
 	  double pt(jet.momentum().pT());
 	  if (phi > M_PI) phi = 2.*M_PI - phi;
 	  _h_jetphi->fill(phi,weight);
 	  _h_ajetpt->fill(pt);
 	  for (size_t k = 0; k < _nphibins; ++k) {
 	    if (phi > k*M_PI/_nphibins && phi < (k+1)*M_PI/_nphibins)
 		_h_jetpt[k]->fill(pt,weight);
         }
       }
 
     }
 
 
     /// Normalise histograms etc., after the run
     void finalize() {
 
       normalize(_h_prodrall);
       normalize(_h_prodr20);
       normalize(_h_prodr100);
 
 	scale(_h_jetphi,crossSection()/sumOfWeights());
 	scale(_h_ljetphi,crossSection()/sumOfWeights());
 	scale(_h_ajetpt,crossSection()/sumOfWeights());
 	scale(_h_ljetpt,crossSection()/sumOfWeights());
 	for (size_t k = 0; k < _nphibins; ++k) {
 	  scale(_h_jetpt[k],crossSection()/sumOfWeights());
 	}
 
     }
 
 
 
   private:
 
     double _jetparam; 
     size_t _nphibins;
 
 
   private:
 
-    AIDA::IHistogram1D * _h_prodrall;
-    AIDA::IHistogram1D * _h_prodr20;
-    AIDA::IHistogram1D * _h_prodr100;
-    AIDA::IProfile1D   * _p_pt20;
-    AIDA::IProfile1D   * _p_pt100;
-    AIDA::IProfile1D   * _p_pjet20;
-    AIDA::IProfile1D   * _p_pjet100;
-    AIDA::IProfile1D   * _p_njet20;
-    AIDA::IProfile1D   * _p_njet100;
-
-    AIDA::IHistogram1D * _h_jetphi;
-    AIDA::IHistogram1D * _h_ljetphi;
-    AIDA::IHistogram1D * _h_ajetpt;
-    AIDA::IHistogram1D * _h_ljetpt;
-    vector<AIDA::IHistogram1D * > _h_jetpt;
+    Histo1DPtr _h_prodrall;
+    Histo1DPtr _h_prodr20;
+    Histo1DPtr _h_prodr100;
+    Profile1DPtr _p_pt20;
+    Profile1DPtr _p_pt100;
+    Profile1DPtr _p_pjet20;
+    Profile1DPtr _p_pjet100;
+    Profile1DPtr _p_njet20;
+    Profile1DPtr _p_njet100;
+
+    Histo1DPtr _h_jetphi;
+    Histo1DPtr _h_ljetphi;
+    Histo1DPtr _h_ajetpt;
+    Histo1DPtr _h_ljetpt;
+    vector<Histo1DPtr > _h_jetpt;
 
   };
 
 
 
   // The hook for the plugin system
   DECLARE_RIVET_PLUGIN(MC_SIJETS);
 
 }