[Rivet-svn] r1672 - in trunk: . bin include/Rivet include/Rivet/Analyses src src/Analyses

blackhole at projects.hepforge.org blackhole at projects.hepforge.org
Thu Jul 9 17:55:36 BST 2009


Author: buckley
Date: Thu Jul  9 17:55:34 2009
New Revision: 1672

Log:
Replacing hard-coded metadata with a system that reads from installed YAML data files

Modified:
   trunk/bin/meta2yaml
   trunk/bin/rivet
   trunk/configure.ac
   trunk/include/Rivet/Analyses/ALEPH_1991_S2435284.hh
   trunk/include/Rivet/Analyses/ALEPH_1996_S3486095.hh
   trunk/include/Rivet/Analyses/CDF_1990_S2089246.hh
   trunk/include/Rivet/Analyses/CDF_1994_S2952106.hh
   trunk/include/Rivet/Analyses/CDF_2000_S4155203.hh
   trunk/include/Rivet/Analyses/CDF_2001_S4751469.hh
   trunk/include/Rivet/Analyses/CDF_2002_S4796047.hh
   trunk/include/Rivet/Analyses/CDF_2004_S5839831.hh
   trunk/include/Rivet/Analyses/CDF_2005_S6217184.hh
   trunk/include/Rivet/Analyses/CDF_2006_S6653332.hh
   trunk/include/Rivet/Analyses/CDF_2007_S7057202.hh
   trunk/include/Rivet/Analyses/CDF_2008_LEADINGJETS.hh
   trunk/include/Rivet/Analyses/CDF_2008_NOTE_9351.hh
   trunk/include/Rivet/Analyses/CDF_2008_S7540469.hh
   trunk/include/Rivet/Analyses/CDF_2008_S7541902.hh
   trunk/include/Rivet/Analyses/CDF_2008_S7782535.hh
   trunk/include/Rivet/Analyses/CDF_2008_S7828950.hh
   trunk/include/Rivet/Analyses/CDF_2008_S8093652.hh
   trunk/include/Rivet/Analyses/CDF_2008_S8095620.hh
   trunk/include/Rivet/Analyses/CDF_2009_S8233977.hh
   trunk/include/Rivet/Analyses/D0_2001_S4674421.hh
   trunk/include/Rivet/Analyses/D0_2004_S5992206.hh
   trunk/include/Rivet/Analyses/D0_2006_S6438750.hh
   trunk/include/Rivet/Analyses/D0_2007_S7075677.hh
   trunk/include/Rivet/Analyses/D0_2008_S6879055.hh
   trunk/include/Rivet/Analyses/D0_2008_S7554427.hh
   trunk/include/Rivet/Analyses/D0_2008_S7662670.hh
   trunk/include/Rivet/Analyses/D0_2008_S7719523.hh
   trunk/include/Rivet/Analyses/D0_2008_S7837160.hh
   trunk/include/Rivet/Analyses/D0_2008_S7863608.hh
   trunk/include/Rivet/Analyses/D0_2009_S8202443.hh
   trunk/include/Rivet/Analyses/D0_2009_S8320160.hh
   trunk/include/Rivet/Analyses/DELPHI_1995_S3137023.hh
   trunk/include/Rivet/Analyses/DELPHI_1996_S3430090.hh
   trunk/include/Rivet/Analyses/DELPHI_2002_069_CONF_603.hh
   trunk/include/Rivet/Analyses/DELPHI_2003_WUD_03_11.hh
   trunk/include/Rivet/Analyses/ExampleAnalysis.hh
   trunk/include/Rivet/Analyses/ExampleTree.hh
   trunk/include/Rivet/Analyses/H1_1994_S2919893.hh
   trunk/include/Rivet/Analyses/H1_1995_S3167097.hh
   trunk/include/Rivet/Analyses/H1_2000_S4129130.hh
   trunk/include/Rivet/Analyses/JADE_OPAL_2000_S4300807.hh
   trunk/include/Rivet/Analyses/MC_LHC_LEADINGJETS.hh
   trunk/include/Rivet/Analyses/MC_TVT1960_ZJETS.hh
   trunk/include/Rivet/Analyses/OPAL_1998_S3780481.hh
   trunk/include/Rivet/Analyses/PDG_Hadron_Multiplicities.hh
   trunk/include/Rivet/Analyses/PDG_Hadron_Multiplicities_Ratios.hh
   trunk/include/Rivet/Analyses/STAR_2006_S6870392.hh
   trunk/include/Rivet/Analyses/STAR_2008_S7993412.hh
   trunk/include/Rivet/Analyses/ZEUS_2001_S4815815.hh
   trunk/include/Rivet/Analysis.hh
   trunk/include/Rivet/AnalysisInfo.hh
   trunk/src/Analyses/ALEPH_1991_S2435284.cc
   trunk/src/Analyses/ALEPH_1996_S3486095.cc
   trunk/src/Analyses/CDF_1990_S2089246.cc
   trunk/src/Analyses/CDF_1994_S2952106.cc
   trunk/src/Analyses/CDF_2000_S4155203.cc
   trunk/src/Analyses/CDF_2001_S4751469.cc
   trunk/src/Analyses/CDF_2002_S4796047.cc
   trunk/src/Analyses/CDF_2004_S5839831.cc
   trunk/src/Analyses/CDF_2005_S6217184.cc
   trunk/src/Analyses/CDF_2006_S6653332.cc
   trunk/src/Analyses/CDF_2007_S7057202.cc
   trunk/src/Analyses/CDF_2008_LEADINGJETS.cc
   trunk/src/Analyses/CDF_2008_NOTE_9351.cc
   trunk/src/Analyses/CDF_2008_S7540469.cc
   trunk/src/Analyses/CDF_2008_S7541902.cc
   trunk/src/Analyses/CDF_2008_S7782535.cc
   trunk/src/Analyses/CDF_2008_S7828950.cc
   trunk/src/Analyses/CDF_2008_S8093652.cc
   trunk/src/Analyses/CDF_2008_S8095620.cc
   trunk/src/Analyses/CDF_2009_S8057893.cc
   trunk/src/Analyses/CDF_2009_S8233977.cc
   trunk/src/Analyses/D0_2001_S4674421.cc
   trunk/src/Analyses/D0_2004_S5992206.cc
   trunk/src/Analyses/D0_2006_S6438750.cc
   trunk/src/Analyses/D0_2007_S7075677.cc
   trunk/src/Analyses/D0_2008_S6879055.cc
   trunk/src/Analyses/D0_2008_S7554427.cc
   trunk/src/Analyses/D0_2008_S7662670.cc
   trunk/src/Analyses/D0_2008_S7719523.cc
   trunk/src/Analyses/D0_2008_S7837160.cc
   trunk/src/Analyses/D0_2008_S7863608.cc
   trunk/src/Analyses/D0_2009_S8202443.cc
   trunk/src/Analyses/D0_2009_S8320160.cc
   trunk/src/Analyses/DELPHI_1995_S3137023.cc
   trunk/src/Analyses/DELPHI_1996_S3430090.cc
   trunk/src/Analyses/DELPHI_2002_069_CONF_603.cc
   trunk/src/Analyses/DELPHI_2003_WUD_03_11.cc
   trunk/src/Analyses/ExampleAnalysis.cc
   trunk/src/Analyses/ExampleTree.cc
   trunk/src/Analyses/H1_1994_S2919893.cc
   trunk/src/Analyses/H1_1995_S3167097.cc
   trunk/src/Analyses/H1_2000_S4129130.cc
   trunk/src/Analyses/JADE_OPAL_2000_S4300807.cc
   trunk/src/Analyses/MC_LHC_LEADINGJETS.cc
   trunk/src/Analyses/MC_TVT1960_ZJETS.cc
   trunk/src/Analyses/OPAL_1998_S3780481.cc
   trunk/src/Analyses/PDG_Hadron_Multiplicities.cc
   trunk/src/Analyses/PDG_Hadron_Multiplicities_Ratios.cc
   trunk/src/Analyses/STAR_2006_S6870392.cc
   trunk/src/Analyses/STAR_2008_S7993412.cc
   trunk/src/Analyses/STAR_2009_UE_HELEN.cc
   trunk/src/Analyses/ZEUS_2001_S4815815.cc
   trunk/src/Analysis.cc
   trunk/src/AnalysisInfo.cc

Modified: trunk/bin/meta2yaml
==============================================================================
--- trunk/bin/meta2yaml	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/bin/meta2yaml	Thu Jul  9 17:55:34 2009	(r1672)
@@ -20,6 +20,7 @@
     ana = rivet.AnalysisLoader.getAnalysis(aname)
     s = ""
     s += "Name: %s\n" % ana.name()
+    s += "Year: %s\n" % ana.year()
     s += "Summary: %s\n" % ana.summary()
     s += "Experiment: %s\n" % ana.experiment()
     s += "Collider: %s\n" % ana.collider()
@@ -41,14 +42,24 @@
         for l in lines:
             s += "  %s\n" % l
 
+    s += "NumEvents: 1000000\n"
+    s += "PtCuts: [0]\n"
+
     s += "Description:\n"
     lines = textwrap.wrap(ana.description())
     for l in lines:
-        s += "  %s\n" % l
+        s += "  %s\n" % l.strip()
 
 
     #print s
     #print "\n\n-----------------------------\n\n"
-    f = open("%s.info.yaml" % aname, "w")
+
+    afile = "%s.info.yaml" % aname
+    if len(sys.argv) > 1:
+        outdir = sys.argv[1]
+        if not os.access(outdir, os.W_OK):
+            os.makedirs(outdir)
+        afile = os.path.join(outdir, afile)
+    f = open(afile, "w")
     f.write(s)
     f.close()

Modified: trunk/bin/rivet
==============================================================================
--- trunk/bin/rivet	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/bin/rivet	Thu Jul  9 17:55:34 2009	(r1672)
@@ -221,7 +221,7 @@
         print ""
         print ana.summary()
         print ""
-        print "Analysis status: %s" % ana.status()
+        print "Status: %s" % ana.status()
         print ""
         print "Spires ID: %s" % ana.spiresId()
         print "Spires URL: http://www.slac.stanford.edu/spires/find/hep/www?rawcmd=key+%s" % ana.spiresId()
@@ -239,19 +239,20 @@
         twrap = textwrap.TextWrapper(width=75, initial_indent=2*" ", subsequent_indent=4*" ")
         for l in ana.runInfo().split("\n"):
             print twrap.fill(l)
-        print ""
-        print "References:"
-        for r in ana.references():
-            url = None
-            if r.startswith("arXiv:"):
-                code = r.split()[0].replace("arXiv:", "")
-                url = "http://arxiv.org/abs/" + code
-            elif r.startswith("doi:"):
-                code = r.replace("doi:", "")
-                url = "http://dx.doi.org/" + code
-            if url is not None:
-                r += " - " + url
-            print "  %s" % r
+        if ana.references():
+            print ""
+            print "References:"
+            for r in ana.references():
+                url = None
+                if r.startswith("arXiv:"):
+                    code = r.split()[0].replace("arXiv:", "")
+                    url = "http://arxiv.org/abs/" + code
+                elif r.startswith("doi:"):
+                    code = r.replace("doi:", "")
+                    url = "http://dx.doi.org/" + code
+                if url is not None:
+                    r += " - " + url
+                print "  %s" % r
 
         if i+1 < len(toshow):
             print "\n"

Modified: trunk/configure.ac
==============================================================================
--- trunk/configure.ac	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/configure.ac	Thu Jul  9 17:55:34 2009	(r1672)
@@ -212,8 +212,7 @@
 AC_CONFIG_FILES(src/Test/Makefile)
 AC_CONFIG_FILES(pyext/Makefile)
 AC_CONFIG_FILES(pyext/setup.py)
-AC_CONFIG_FILES(data/Makefile)
-AC_CONFIG_FILES(data/refdata/Makefile)
+AC_CONFIG_FILES(data/Makefile data/refdata/Makefile data/anainfo/Makefile)
 AC_CONFIG_FILES(doc/Makefile)
 AC_CONFIG_FILES(doc/rivetversion.sty)
 AC_CONFIG_FILES(autopackage/default.apspec)

Modified: trunk/include/Rivet/Analyses/ALEPH_1991_S2435284.hh
==============================================================================
--- trunk/include/Rivet/Analyses/ALEPH_1991_S2435284.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/ALEPH_1991_S2435284.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -25,70 +25,6 @@
     //@}
 
 
-  public:
-
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis.
-    string spiresId() const {
-      return "2435284";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Hadronic Z decay charged multiplicity measurement";
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "ALEPH";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "LEP 1";
-    }
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "1991";
-    }
-
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Andy Buckley <andy.buckley at durham.ac.uk>";
-      return ret;
-    }
-
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "The charged particle multiplicity distribution of hadronic Z decays, as measured "
-         << "on the peak of the Z resonance using the ALEPH detector at LEP. The unfolding procedure "
-         << "was model independent, and the distribution was found to have a mean of 20.85+-0.24, "
-         << "Comparison with lower energy data supports the KNO scaling hypothesis. " 
-         << "The shape of the multiplicity distribution is well described by a log-normal "
-         << "distribution, as predicted from a cascading model for multi-particle production. ";
-      return os.str();
-    }
-
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "Hadronic Z decay events generated on the Z pole (sqrt(s) = 91.2 GeV)";
-      return os.str();
-    }
-
-    string status() const {
-      return "VALIDATED";
-    }
-
-    /// Journal, and preprint references
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Phys. Lett. B, 273, 181 (1991)";
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{
     virtual void init();

Modified: trunk/include/Rivet/Analyses/ALEPH_1996_S3486095.hh
==============================================================================
--- trunk/include/Rivet/Analyses/ALEPH_1996_S3486095.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/ALEPH_1996_S3486095.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -27,62 +27,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis.
-    string spiresId() const {
-      return "3486095";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Studies of QCD with the ALEPH detector.";
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Summary paper of QCD results as measured by ALEPH at LEP 1. "
-         << "The publication includes various event shape variables, "
-         << "multiplicities (identified particles and inclusive), and "
-         << "particle spectra.";
-      return os.str();
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "ALEPH";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "LEP 1";
-    }
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "1996";
-    }
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Holger Schulz <holger.schulz at physik.hu-berlin.de>";
-      return ret;
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "Hadronic Z decay events generated on the Z pole (sqrt(s) = 91.2 GeV)";
-      return os.str();
-    }
-
-    string status() const {
-      return "VALIDATED";
-    }
-
-    /// Journal, and preprint references
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Phys. Rept., 294, 1--165 (1998)";
-      return ret;
-    }
-    //@}
-
     /// @name Analysis methods
     //@{
     virtual void init();

Modified: trunk/include/Rivet/Analyses/CDF_1990_S2089246.hh
==============================================================================
--- trunk/include/Rivet/Analyses/CDF_1990_S2089246.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/CDF_1990_S2089246.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -26,78 +26,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-
-    /// SPIRES ID code.
-    string spiresId() const {
-      return "2089246";
-    }
-
-    /// A short description of the analysis.
-    string summary() const {
-      return "CDF pseudorapidity distributions at 630 and 1800 GeV";
-    }
-
-    /// Full description of the analysis, to appear in the manual.
-    string description() const {
-      ostringstream os;
-      os << "Pseudorapidity distributions based on the CDF 630 "
-         << "and 1800 GeV runs from 1987. All data is detector "
-         << "corrected. The data confirms the UA5 measurement of "
-         << "a $\\d{N}/\\d{\\eta}$ rise with energy faster than "
-         << "$\\ln{\\sqrt{s}}$, and as such this analysis is important "
-         << "for constraining the energy evolution of minimum bias "
-         << "and underlying event characteristics in MC simulations.";
-      return os.str();
-    }
-
-    /// Event type required by this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "* Energy: sqrt(s) = 630 and 1800 GeV\n"
-         << "* Event type: generic QCD events\n"
-         << "* $|\\eta| < 3.5$";
-      return os.str();
-    }
-
-    /// Validation status
-    string status() const {
-      return "UNVALIDATED";
-    }
-
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "CDF";
-    }
-
-    /// Collider on which the experiment ran
-    string collider() const {
-      return "Tevatron Run 0";
-    }
-
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "1990";
-    }
-
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Andy Buckley <andy.buckley at cern.ch>";
-      return rtn;
-    }
-
-    /// Publication references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Phys.Rev.D41:2330,1990";
-      ret += "doi:10.1103/PhysRevD.41.2330";
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{
     void init();

Modified: trunk/include/Rivet/Analyses/CDF_1994_S2952106.hh
==============================================================================
--- trunk/include/Rivet/Analyses/CDF_1994_S2952106.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/CDF_1994_S2952106.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -26,86 +26,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-
-    /// SPIRES ID code.
-    string spiresId() const {
-      return "2952106";
-    }
-
-    /// A short description of the analysis.
-    string summary() const {
-      return "CDF Run I color coherence analysis.";
-    }
-
-    /// Full description of the analysis, to appear in the manual.
-    string description() const {
-      ostringstream os;
-      os << "CDF Run I color coherence analysis. Events with $\\ge 3$ jets are "
-         << "selected and Et distributions of the three highest-pT jets are obtained. "
-         << "The plotted quantities are the $\\Delta{R}$ between the 2nd and 3rd "
-         << "leading jets in the pT and pseudorapidity of the 3rd jet, and $\\alpha = "
-         << "\\mathrm{d}{\\eta}/\\mathrm{d}{\\phi}$, where $\\mathrm{d}{\\eta}$ is "
-         << "the pseudorapidity difference between the 2nd and 3rd jets and "
-         << "$\\mathrm{d}{\\phi}$ is their azimuthal angle difference."
-         << "\n\n"
-         << "Since the data has not been detector-corrected, a bin by bin correction "
-         << "is applied, based on the distributions with ideal and CDF simulation "
-         << "as given in the publication.";
-      return os.str();
-    }
-
-    /// Event type required by this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "* Energy: sqrt(s) = 1800 GeV\n"
-         << "* Event type: generic QCD events\n"
-         << "* Cut on primary vertex $z$ position: z(PV) < 60 cm\n"
-         << "* pTmin: leading jet = 100 GeV; and 3rd jet = 10 GeV\n"
-         << "* Max. pseudorapidity range of 2nd and 3rd jets: $|eta| < 0.7$\n"
-         << "* Azimuthal angle requirement: $\\Delta{\\phi} < \\pi/18$ (transverse back-to-backness)\n"
-         << "* MET cut requirement: $mET/\\sqrt{\\text{Scalar }E_T} < 6.0 GeV$";
-      return os.str();
-    }
-
-    /// Validation status
-    string status() const {
-      return "UNVALIDATED";
-    }
-
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "CDF";
-    }
-
-    /// Collider on which the experiment ran
-    string collider() const {
-      return "Tevatron Run 1";
-    }
-
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "1994";
-    }
-
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Lars Sonnenschein <Lars.Sonnenschein at cern.ch>";
-      return rtn;
-    }
-
-    /// Publication references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Phys.Rev.D50,5562,1994";
-      ret += "doi:10.1103/PhysRevD.50.5562";
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{
     void init();

Modified: trunk/include/Rivet/Analyses/CDF_2000_S4155203.hh
==============================================================================
--- trunk/include/Rivet/Analyses/CDF_2000_S4155203.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/CDF_2000_S4155203.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -28,76 +28,6 @@
     //@}
 
 
-  public:
-
-    string spiresId() const {
-      return "4155203";
-    }
-
-    string summary() const {
-      return "Z pT measurement in CDF Z -> e+ e- events";
-    }
-
-    string description() const {
-      ostringstream os;
-      os << "Measurement of transverse momentum and total cross section of e^+e^- pairs "
-         << "in the Z-boson region of $66~\\text{GeV}/c^2 < m_{ee} < 116~\\text{GeV}/c^2$ "
-         << "from pbar-p collisions at sqrt(s) = 1.8 TeV, with the Tevatron CDF detector."
-         << "\n\n"
-         << "The Z pT, in a fully-factorised picture, is generated by the momentum balance "
-         << "against initial state radiation (ISR) and the primordial/intrinsic pT of the "
-         << "Z's parent partons in the incoming hadrons. The Z pT is important in generator "
-         << "tuning to fix the interplay of ISR and multi-parton interactions (MPI) in"
-         << "generating `underlying event' activity."
-         << "\n\n"
-         << "This analysis is subject to ambiguities in the experimental Z pT definition,"
-         << "since the Rivet implementation reconstructs the Z momentum from the dilepton"
-         << "pair with finite cones for photon brem summation, rather than YFS unfolding"
-         << "or a non-portable direct access to the Z in the event record.";
-      return os.str();
-    }
-
-    string runInfo() const {
-      ostringstream os;
-      os << "* Tevatron Run I: p pbar collisions at 1800 GeV\n"
-         << "* Z Drell-Yan with e+ e- decay mode (for Z \\emph{and} $\\gamma*$) only.";
-      return os.str();
-    }
-
-    /// Validation status
-    string status() const {
-      return "VALIDATED";
-    }
-
-    string experiment() const {
-      return "CDF";
-    }
-
-    string collider() const {
-      return "Tevatron Run 1";
-    }
-
-    string year() const {
-      return "2000";
-    }
-
-    vector<string> references() const {
-      vector<string> rtn;
-      rtn += "Phys.Rev.Lett.84:845-850,2000";
-      rtn += "arXiv:hep-ex/0001021";
-      rtn += "doi:10.1103/PhysRevLett.84.845";
-      return rtn;
-    }
-
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Hendrik Hoeth <hendrik.hoeth at cern.ch>";
-      return rtn;
-    }
-
-
-  public:
-
     /// @name Analysis methods
     //@{
     void init();

Modified: trunk/include/Rivet/Analyses/CDF_2001_S4751469.hh
==============================================================================
--- trunk/include/Rivet/Analyses/CDF_2001_S4751469.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/CDF_2001_S4751469.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -38,74 +38,6 @@
     //@}
 
 
-  public:
-
-    /// @name Publication metadata
-    //@{
-    /// Get the SPIRES ID
-    string spiresId() const {
-      return "4751469";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Field & Stuart Run I underlying event analysis.";
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "CDF";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "Tevatron Run 1";
-    }
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "2001";
-    }
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Andy Buckley <andy.buckley at durham.ac.uk>";
-      return rtn;
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "The original CDF underlying event analysis, based on decomposing each "
-         << "event into a transverse structure with ``toward'', ``away'' and "
-         << "``transverse'' regions defined relative to the azimuthal direction of "
-         << "the leading jet in the event. Since the toward region is by definition "
-         << "dominated by the hard process, as is the away region by momentum balance "
-         << "in the matrix element, the transverse region is most sensitive to "
-         << "multi-parton interactions. The transverse regions occupy "
-         << "$|\\phi| \\in [60\\degree, 120\\degree]$ for $|\\eta| < 1$. The pT "
-         << "ranges for the leading jet are divided experimentally into the `min-bias' "
-         << "sample from 0--20 GeV, and the `JET20' sample from 18--49 GeV.";
-      return os.str();
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "CDF Run I conditions: ppbar QCD interactions at 1800 GeV. "
-         << "Leading jet bins from 0--49 GeV: usually can be filled with a single "
-         << "generator run without kinematic sub-samples, with $\\sim 1M$ events.";
-      return os.str();
-    }
-    /// Validation status
-    string status() const {
-      return "VALIDATED";
-    }
-    /// Journal, and preprint references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Phys.Rev.D65:092002,2002", "FNAL-PUB 01/211-E";
-      // No arXiv code
-      return ret;
-    }
-    //@}
-
-  public:
-
     /// @name Analysis methods
     //@{
     void init();

Modified: trunk/include/Rivet/Analyses/CDF_2002_S4796047.hh
==============================================================================
--- trunk/include/Rivet/Analyses/CDF_2002_S4796047.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/CDF_2002_S4796047.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -45,78 +45,6 @@
     //@}
 
 
-  public:
-
-    /// SPIRES ID code.
-    string spiresId() const {
-      return "4796047";
-    }
-
-    /// A short description of the analysis.
-    string summary() const {
-      return "CDF Run 1 charged multiplicity measurement";
-    }
-
-    /// Full description of the analysis, to appear in the manual.
-    string description() const {
-      ostringstream os;
-      os << "A study of pp̅ collisions at sqrt(s) = 1800 and 630 GeV collected using a minimum bias "
-         << "trigger in which the data set is divided into two classes corresponding to `soft' and " 
-         << "`hard' interactions. For each subsample, the analysis includes measurements of the "
-         << "multiplicity, transverse momentum (pT) spectra, and the average pT and event-by-event "
-         << "pT dispersion as a function of multiplicity. A comparison of results shows distinct "
-         << "differences in the behavior of the two samples as a function of the center of mass "
-         << "energy. The properties of the soft sample are invariant as a function of c.m. energy.";
-      return os.str();
-    }
-
-    /// Event type required by this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "* Energy: sqrt(s) = 630 and 1800 GeV\n"
-         << "* Event type: generic QCD events\n"
-         << "* TODO: MORE?";
-      return os.str();
-    }
-
-    /// Validation status
-    string status() const {
-      return "VALIDATED";
-    }
-
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "CDF";
-    }
-
-    /// Collider on which the experiment ran
-    string collider() const {
-      return "Tevatron Run 1";
-    }
-
-    /// When published (according to SPIRES). 
-    string year() const {
-      return "2002";
-    }
-
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Hendrik Hoeth <hendrik.hoeth at cern.ch>";
-      return rtn;
-    }
-
-    /// Publication references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Phys.Rev.D65:072005,2002";
-      ret += "doi:10.1103/PhysRevD.65.072005 ";
-      return ret;
-    }
-
-
-  public:
-
     /// @name Analysis methods
     //@{
     void init();

Modified: trunk/include/Rivet/Analyses/CDF_2004_S5839831.hh
==============================================================================
--- trunk/include/Rivet/Analyses/CDF_2004_S5839831.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/CDF_2004_S5839831.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -27,90 +27,6 @@
     }
     //@}
 
-  public:
-
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis.
-    string spiresId() const {
-      return "5839831";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Transverse cone and 'Swiss cheese' underlying event studies";
-    }
-    string description() const {
-      ostringstream os;
-      os << "This analysis studies the underlying event via transverse cones of "
-         << " $R = 0.7$ at 90 degrees in \\phi relative to the leading (highest "
-         << "E) jet, at sqrt(s) = 630 and 1800 GeV. This is similar to the 2001 "
-         << "CDF UE analysis, except that cones, rather than the whole central "
-         << "\\eta range are used. The transverse cones are categorised as TransMIN "
-         << "and TransMAX on an event-by-event basis, to give greater sensitivity "
-         << "to the UE component."
-         << "\n\n"
-         << "'Swiss Cheese' distributions, where cones around the leading $n$ "
-         << "jets are excluded from the distributions, are also included for "
-         << "$n = 2, 3$."
-         << "\n\n"
-         << "This analysis is useful for constraining the energy evolution of "
-         << "the underlying event, since it performs the same analyses at two "
-         << "distinct CoM energies."
-         << "\n\n"
-         << "WARNING: this analysis is not currently considered valid for MC "
-         << "tuning and validation studies due to ambiguities in the paper and "
-         << "non-reproducability of the MC plots shown in the paper. The fit to "
-         << "data is sufficiently poor that this analysis skews the overall "
-         << "goodness of fit in tuning studies, and has to be excluded. If you "
-         << "can help to improve this analysis and make it usable for validation "
-         << "studies, please get in touch!";
-      return os.str();
-    }
-
-    /// Type of events required by this analysis
-    string runInfo() const {
-      ostringstream os;
-      os << "* Two different beam energies: sqrt(s) = 630 & 1800 GeV\n"
-         << "* Event type: generic QCD events\n"
-         << "* Several pTmin cutoffs are probably required to fill the profile"
-         << "  histograms, e.g.\n\n"
-         << "  * { 0 (min bias), 30, 90, 150 GeV } at 1800 GeV; and\n"
-         << "  * { 0 (min bias), 20, 90, 150 GeV } at 630 GeV";
-      return os.str();
-    }
-
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "CDF";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "2004";
-    }
-    /// Journal, and preprint references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Phys. Rev. D70, 072002 (2004)";
-      ret += "arXiv:hep-ex/0404004";
-      return ret;
-    }
-    /// Routine authors
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Andy Buckley <andy.buckley at durham.ac.uk>";
-      return ret;
-    }
-    /// Validation status
-    string status() const {
-      return "UNVALIDATED";
-    }
-    //@}
-
-  public:
 
     /// @name Analysis methods
     //@{
@@ -119,6 +35,7 @@
     void finalize();
     //@}
 
+
   private:
 
     struct ConesInfo {

Modified: trunk/include/Rivet/Analyses/CDF_2005_S6217184.hh
==============================================================================
--- trunk/include/Rivet/Analyses/CDF_2005_S6217184.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/CDF_2005_S6217184.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -29,79 +29,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-
-    /// SPIRES ID code.
-    string spiresId() const {
-      return "6217184";
-    }
-
-    /// A short description of the analysis.
-    string summary() const {
-      return "CDF Run II jet shape analysis";
-    }
-
-    /// Full description of the analysis, to appear in the manual.
-    string description() const {
-      ostringstream os;
-      os << "Measurement of jet shapes in inclusive jet production in p pbar collisions at "
-         << "center-of-mass energy sqrt(s) = 1.96 TeV. The data cover jet transverse "
-         << "momenta from 37--380 GeV and absolute jet rapidities in the range 0.1--0.7. ";
-      return os.str();
-    }
-
-    /// Event type required by this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "* Energy: sqrt(s) = 1960 GeV\n"
-         << "* Event type: generic QCD events.\n"
-         << "* $\\eta \\in [-2,2]$ cut used on final state.\n"
-         << "* Jet axes must have $|y| \\in [0.1, 0.7]$.\n"
-         << "* Jet shape $r \\in [0.0, 0.7]$\n"
-         << "* Jet pTmin in plots is 37 GeV/c: choose generator min pT somewhere well below this.";
-      return os.str();
-    }
-
-    /// Validation status
-    string status() const {
-      return "VALIDATED";
-    }
-
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "CDF";
-    }
-
-    /// Collider on which the experiment ran
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-
-    /// When published (preprint year according to SPIRES). 
-    string year() const {
-      return "2005";
-    }
-
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Lars Sonnenschein <Lars.Sonnenschein at cern.ch>";
-      rtn += "Andy Buckley <andy.buckley at cern.ch>";
-      return rtn;
-    }
-
-    /// Journal, and preprint references.
-    virtual vector<string> references() const {
-      vector<string> ret;
-      ret += "Phys.Rev.D71:112002,2005";
-      ret += "doi:10.1103/PhysRevD.71.112002";
-      ret += "arXiv:hep-ex/0505013";
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{
     void init();

Modified: trunk/include/Rivet/Analyses/CDF_2006_S6653332.hh
==============================================================================
--- trunk/include/Rivet/Analyses/CDF_2006_S6653332.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/CDF_2006_S6653332.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -32,79 +32,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis.
-    string spiresId() const {
-      return "6653332";
-    }
-
-    /// A short description of the analysis.
-    string summary() const {
-      return "pT and eta distributions of jets in Z + jet production";
-    }
-
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Measurement of the b jet cross section in events with Z boson in p pbar "
-         << "collisions at center-of-mass energy sqrt(s) = 1.96 TeV. The data cover jet "
-         << "transverse momenta above 20 GeV and jet pseudo-rapidities in the range "
-         << "-1.5 to 1.5. Z bosons are identified in their electron and muon decay modes "
-         << "in an invariant dilepton mass range between 66 and 116 GeV."
-        //   << "\n\n"
-         << "";
-      return os.str();
-    }
-
-    /// Event type required by this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "* Energy: sqrt(s) = 1960 GeV\n"
-         << "* Event type: Z + jets events\n"
-         << "* Jets min pT cut: pT_{jet} $>$ 20~GeV\n"
-         << "* Leptons min pT cut: pT_{jet} $>$ 10~GeV";
-      return os.str();
-    }
-
-    /// Validation status
-    string status() const {
-      return "VALIDATED";
-    }
-
-    /// Experiment which performed and published this analysis. 
-    string experiment() const {
-      return "CDF";
-    }
-
-    /// Collider on which the experiment ran
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-
-    /// When published (preprint year according to SPIRES). 
-    string year() const {
-      return "2006";
-    }
-
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Lars Sonnenschein <Lars.Sonnenschein at cern.ch>";
-      return rtn;
-    }
-
-    /// Publication references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Phys.Rev.D.74:032008,2006";
-      ret += "doi:10.1103/PhysRevD.74.032008";
-      ret += "arXiv:hep-ex/0605099v2";
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{
     void init();

Modified: trunk/include/Rivet/Analyses/CDF_2007_S7057202.hh
==============================================================================
--- trunk/include/Rivet/Analyses/CDF_2007_S7057202.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/CDF_2007_S7057202.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -24,80 +24,7 @@
       return new CDF_2007_S7057202(); 
     }
     //@}
-    
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis.
-    string spiresId() const {
-      return "7057202";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "CDF Run II inclusive jet cross-section using the kT algorithm";
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "CDF";
-    }
-    
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-    
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "2007";
-    }
-
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn.push_back( "David Voong" );
-      rtn.push_back( "James Monk <jmonk at hep.ucl.ac.uk>" );
-      return rtn;
-    }
-    
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "CDF Run II measurement of inclusive jet cross sections at a p-pbar "
-         << "collision energy of 1.96~TeV. Jets are reconstructed in the central "
-         << "part of the detector ($|y|<2.1$) using the kT algorithm with an $R$ "
-         << "parameter of 0.7. The minimum jet pT considered is 54~GeV, with a "
-         << "maximum around 700~GeV."
-         << "\n\n"
-         << "The inclusive jet pT is plotted in bins of rapidity $|y|<0.1$, "
-         << "$0.1<|y|<0.7$, $0.7<|y|<1.1$, $1.1<|y|<1.6$ and $1.6<|y|<2.1$.";
-      return os.str();
-    }
-    
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const{
-      ostringstream os;
-      os << "Standard Tevatron Run II: p-pbar collisions at 1960~GeV."
-         << " Jet pT bins from 54~GeV to 700~GeV."  
-         << " Jet rapidity $< |2.1|$.";
-      return os.str();
-    }
-    
-    /// Status of this routine (VALIDATED or UNVALIDATED)
-    string status() const{
-      return "UNVALIDATED";
-    }
-    
-    /// Journal, and preprint references.
-    vector<string> references() const{
-      vector<string> refs;
-      refs.push_back( "Phys.Rev.D75:092006,2007");
-      refs.push_back( "Erratum-ibid.D75:119901,2007");
-      refs.push_back( "FNAL-PUB 07/026-E" );
-      refs.push_back( "hep-ex/0701051" );
-      return refs;
-    }
-    
-    //@}
     
     /// @name Analysis methods
     //@{

Modified: trunk/include/Rivet/Analyses/CDF_2008_LEADINGJETS.hh
==============================================================================
--- trunk/include/Rivet/Analyses/CDF_2008_LEADINGJETS.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/CDF_2008_LEADINGJETS.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -41,80 +41,6 @@
     //@}
 
 
-  public:
-
-    /// @name Publication metadata
-    //@{
-
-    /// Analysis name
-    string name() const {
-      return "CDF_2008_LEADINGJETS";
-    }
-    /// SPIRES key (IRN)
-    string spiresId() const {
-      return "NONE";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "CDF Run 2 underlying event in leading jet events";
-    }
-    /// Full description of the analysis, for the manual
-    string description() const {
-      ostringstream os;
-      os << "Rick Field's measurement of the underlying event in leading jet "
-         << "events. If the leading jet of the event is within $|\\eta| < 2$, "
-	 << "the event is accepted and ``toward'', ``away'' and ``transverse'' "
-	 << "regions are defined in the same way as in the original (2001) CDF "
-	 << "underlying event analysis. The leading jet defines the $\\phi$ "
-	 << "direction of the toward region. The transverse regions are most "
-	 << "sensitive to the underlying event.";
-      return os.str();
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-     return "CDF";
-    }
-    /// Collider on which the experiment was based
-    string collider() const {
-     return "Tevatron Run 2";
-    }
-    /// When published according to SPIRES
-    string year() const {
-     return "2008";
-    }
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Hendrik Hoeth <hendrik.hoeth at cern.ch>";
-      return ret;
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "Tevatron Run 2: ppbar QCD interactions at 1960 GeV. "
-         << "Particles with $c \\tau > {}$10 mm should be set stable. "
-	 << "Several $p_\\perp^\\text{min}$ cutoffs are probably required to "
-	 << "fill the profile histograms: "
-	 << " * $p_\\perp^\\text{min} = {}$ 0 (min bias), 10, 20, 50, 100, 150 GeV "
-         << " * The corresponding merging points are at $p_T = $ 0, 30, 50, 80, 130, 180 GeV";
-      return os.str();
-    }
-    /// Validation status
-    string status() const {
-      return "VALIDATED";
-    }
-    /// No journal or preprint references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "";
-      return ret;
-    }
-
-    //@}
-
-
-  public:
-
     /// @name Analysis methods
     //@{
     void init();

Modified: trunk/include/Rivet/Analyses/CDF_2008_NOTE_9351.hh
==============================================================================
--- trunk/include/Rivet/Analyses/CDF_2008_NOTE_9351.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/CDF_2008_NOTE_9351.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -42,78 +42,6 @@
     //@}
 
 
-  public:
-
-    /// @name Publication metadata
-    //@{
-
-    /// Analysis name
-    string name() const {
-      return "CDF_2008_NOTE_9351";
-    }
-    /// SPIRES key (IRN)
-    string spiresId() const {
-      return "NONE";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "CDF Run 2 underlying event in Drell-Yan";
-    }
-    /// Full description of the analysis, for the manual
-    string description() const {
-      ostringstream os;
-      os << "Deepak Kar's and Rick Field's measurement of the underlying event "
-         << "in Drell-Yan events. Z -> ee and Z -> $\\mu\\mu$ events are selected "
-         << "using a Z mass window cut between 70 and 110 GeV. ``Toward'', "
-         << "``away'' and ``transverse'' regions are defined in the same way as "
-         << "in the original (2001) CDF underlying event analysis. The reconstructed "
-         << "Z defines the $\\phi$ direction of the toward region. The leptons are "
-         << "ignored after the Z has been reconstructed. Thus the region most "
-         << "sensitive to the underlying event is the toward region (the recoil jet "
-         << "is boosted into the away region).";
-      return os.str();
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-     return "CDF";
-    }
-    /// Collider on which the experiment was based
-    string collider() const {
-     return "Tevatron Run 2";
-    }
-    /// When published according to SPIRES
-    string year() const {
-     return "2008";
-    }
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Hendrik Hoeth <hendrik.hoeth at cern.ch>";
-      return ret;
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "* Tevatron Run 2: ppbar collisions at 1960 GeV.\n"
-         << "* Drell-Yan events with $Z/\\gamma* -> e e$ and $Z/\\gamma* -> \\mu\\mu$.\n"
-         << "* A mass cut $m_{ll} > 70~\\text{GeV}$ can be applied on generator level.\n"
-         << "* Particles with $c \\tau > 10~\\text{mm}$ should be set stable.";
-      return os.str();
-    }
-    string status() const {
-      return "VALIDATED";
-    }
-    /// Journal or preprint references
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "CDF public note 9351";
-      return ret;
-    }
-    //@}
-
-
-  public:
-
     /// @name Analysis methods
     //@{
     void init();

Modified: trunk/include/Rivet/Analyses/CDF_2008_S7540469.hh
==============================================================================
--- trunk/include/Rivet/Analyses/CDF_2008_S7540469.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/CDF_2008_S7540469.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -23,68 +23,6 @@
     }
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis. 
-    string spiresId() const {
-      return "7540469";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Measurement of differential Z/gamma* + jet + X cross sections";
-    }    
-    /// Experiment which performed and published this analysis. 
-    string experiment() const {
-      return "CDF";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-    /// When published (preprint year according to SPIRES). 
-    string year() const {
-      return "2008";
-    }
-    /// Names & emails of analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Frank Siegert <frank.siegert at durham.ac.uk>";
-      return ret;
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Cross sections as a function of jet transverse momentum in 1 and "
-         << "2 jet events, and jet multiplicity in ppbar collisions at sqrt(s) "
-         << "= 1.96 TeV, based on an integrated luminosity of 1.7 fb^-1. The "
-         << "measurements cover the rapidity region $|y_\\text{jet}| < 2.1$ "
-         << "and the transverse momentum range $pT_\\text{jet} > 30~\\text{GeV}/c$." << endl;
-      return os.str();
-    }
-
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "* Tevatron Run 2 conditions: ppbar -> e+ e- + jets at 1960 GeV.\n"
-         << "* Needs mass cut on lepton pair to avoid photon singularity: min. range $66 < m_ee < 116$" << endl;
-      return os.str();
-    }
-
-    string status() const {
-      return "VALIDATED";
-    }
-
-    /// Publication references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Phys.Rev.Lett.100:102001,2008";
-      //ret += "doi:TODO";
-      ret += "arXiv:0711.3717 [hep-ex]";
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{ 
     void init();

Modified: trunk/include/Rivet/Analyses/CDF_2008_S7541902.hh
==============================================================================
--- trunk/include/Rivet/Analyses/CDF_2008_S7541902.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/CDF_2008_S7541902.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -30,86 +30,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-    /// Get the SPIRES ID
-    string spiresId() const {
-      return "7541902";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Jet pT distributions for 4 jet multiplicity bins as well as the jet multiplicity distribution in W + jets events.";
-    }
-    
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os <<  "Measurement of the cross section for W boson production in association with jets in $p\\bar{p}$ " 
-	 <<  "collisions at $\\sqrt{s}=1.96$ TeV. The analysis uses 320 pb$^{-1}$ of data collected with the "
-	 <<  "CDF II detector. "
-	 <<  "W bosons are identified in their $e\\nu$ decay channel and "
-	 <<  "jets are reconstructed using an $R < 0.4$ cone algorithm. "
-	 <<  "For each $W + \\geq$ n-jet sample (where n = 1--4) a measurement of "
-	 <<  "d$\\sigma({p}\\bar{p} \\rightarrow W + \\geq$ n jet)/d$E_T(n^{th}$-jet) $\\times$ BR($W \\rightarrow{e}\\nu$) "
-	 <<  "is made, where d$E_T(n^{th}$-jet) is the Et of the n$^{th}$-highest Et jet above 20 GeV. "
-	 <<  "A measurement of the total cross section, " 
-	 <<  "$\\sigma(p\\bar{p} \\rightarrow W + \\geq$ n-jet) $\\times$ BR($W \\rightarrow{e}\\nu)$ with "
-	 <<  "$E_T(n^{th}-jet) > 25$ GeV is also made. " 
-	 <<  "Both measurements are made for jets with $|\\eta| < 2$ and for a limited reigon of "
-	 <<  "the $W \\rightarrow{e}\\nu$ decay phase space: $|\\eta^{e}| < 1.1$, $p_{T}^{e} > 20$ GeV, "
-	 <<  "$p_{T}^{\\nu} > 30$ GeV and $M_{T} > 20$ GeV. "
-	 <<  "The cross sections are corrected for all detector effects and can be directly compared "
-	 <<  "to particle level $W$ + jet(s) predictions. "
-	 <<  "These measurements can be used to test and tune QCD predictions for the number of jets "
-	 <<   "in and kinematics of $W$ + jets events.";
-      return os.str();
-    }
-
-    /// Characteristics of events to be processed by this analysis
-    string runInfo() const {
-      ostringstream os;
-      os << "Requires the process $p\\bar{p} \\rightarrow {W} "
-         <<  "\\rightarrow{e}\\nu$, "
-         << "additional hard jets will also have to be included to get a good description. " 
-         << "The LO process in Herwig is set with IPROC=1451.";
-      return os.str();
-    }
-   
-    /// Validation status
-    string status() const {
-      return "UNVALIDATED";
-    }
-
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "CDF";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "2008";
-    }
-
-   /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Ben Cooper <b.d.cooper at qmul.ac.uk>";
-      rtn += "Emily Nurse <nurse at hep.ucl.ac.uk>";
-      return rtn;
-    }
-    
-    /// Journal, and preprint references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret.push_back("arXiv:0711.4044 [hep-ex]");
-      ret.push_back("Phys.Rev.D77:011108,2008");
-      return ret;
-    }
-    //@}
-
     /// @name Analysis methods
     //@{
     void init();

Modified: trunk/include/Rivet/Analyses/CDF_2008_S7782535.hh
==============================================================================
--- trunk/include/Rivet/Analyses/CDF_2008_S7782535.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/CDF_2008_S7782535.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -25,91 +25,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-
-    /// Get SPIRES ID code.
-    string spiresId() const {
-      return "7782535";
-    }
-
-    /// A short description of the analysis.
-    string summary() const {
-      return "CDF Run II b-jet shape paper";
-    }
-
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "A measurement of the shapes of b-jets using 300 pb$^{-1}$ "
-         << "of data obtained with CDF II in $p\\bar{p}$ collisions at "
-         << "$\\sqrt{s}=1.96$ TeV. The measured quantity is the average "
-         << "integrated jet shape, which is computed over an ensemble of "
-         << "jets. This quantity is expressed as "
-         << "$\\Psi(r/R) = \\langle\\frac{p_T(0 \\rightarrow r)}"
-         << "{p_T(0 \\rightarrow R)}\\rangle$, "
-         << "where pT (0$\\rightarrow$r) is the scalar sum of the "
-         << "transverse momenta of all objects inside a sub-cone of "
-         << "radius r around the jet axis. The integrated shapes are "
-         << "by definition normalized such that  $\\Psi(r/R =1) = 1$. "
-         << "\n "   
-         << "The measurement is done in bins of jet pT in the range "
-         << "52 to 300 GeV/c. The jets have $|\\eta| < 0.7$. "
-         << "The b-jets are expected to be broader than inclusive jets."
-         << "Moreover, b-jets containing a single b-quark are expected "
-         << "to be narrower than those containing a b bbar pair from "
-         << "gluon splitting. ";
-      return os.str();
-    }
-
-    /// Characteristics of events to be processed by this analysis
-    string runInfo() const {
-      ostringstream os;
-      os << "Requires  $2\\rightarrow{2}$ QCD scattering processes. "
-         << "The minimum jet Et is 52 GeV, so a cut on kinematic pTmin "
-         << "may be required for good statistics.";
-      return os.str();
-    }
-
-    /// Validation status
-    string status() const {
-      return "UNVALIDATED";
-    }
-
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "CDF";
-    }
-
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "2008";
-    }
-
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Alison Lister <alister at fnal.gov>";
-      rtn += "Emily Nurse <nurse at hep.ucl.ac.uk>";
-      return rtn;
-    }
-
-    /// Journal, and preprint references.
-    virtual vector<string> references() const {
-      vector<string> ret;
-      ret.push_back("arXiv:0806.1699");
-     ret.push_back("Phys.Rev.D78:072005,2008");
-      return ret;
-    }
-
-    //@}
-
-
     /// @name Analysis methods
     //@{
     void init();

Modified: trunk/include/Rivet/Analyses/CDF_2008_S7828950.hh
==============================================================================
--- trunk/include/Rivet/Analyses/CDF_2008_S7828950.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/CDF_2008_S7828950.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -29,80 +29,6 @@
     //@}
     
 
-    /// @name Publication metadata
-    //@{
-
-    /// A short description of the analysis.
-    string spiresId() const {
-      return "7828950";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "CDF Run II inclusive jet cross-section using the Midpoint algorithm";
-    }
-
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Measurement of the inclusive jet cross section in $p\\bar{p}$ "
-         << "collisions at $\\sqrt{s}=1.96$ TeV as a function of jet Et, "
-         <<  "for Et $>$ 62 GeV. "
-         << "The data is collected by "
-         << "the CDF II detector and has an integrated luminosity of "
-         << "1.13 fb$^{-1}$. The measurement was made using the cone-based "
-         << "Midpoint jet clustering algorithm in rapidity bins within "
-         <<  "$|y|<2.1$. This measurement can be used to provide increased "
-         << "precision in PDFs at high parton momentum fraction $x$."; 
-      return os.str();
-    }
-
-    /// Characteristics of events to be processed by this analysis
-    string runInfo() const {
-      ostringstream os;
-      os << "Requires $2\\rightarrow{2}$ QCD scattering processes. "
-         << "The minimum jet Et is 62 GeV, so a cut on kinematic pTmin "
-         << "may be required for good statistics.";
-      return os.str();
-    }
-
-    /// Validation status
-    string status() const {
-      return "UNVALIDATED";
-    }
-
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "CDF";
-    }
-
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "2008";
-    }
-
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Craig Group <group at fnal.gov>";
-      return rtn;
-    }
-
-    /// Journal, and preprint references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret.push_back("arXiv:0807.2204");
-      ret.push_back("Phys.Rev.D78:052006,2008");
-      return ret;
-    }
-
-    //@}
-
-
     /// @name Analysis methods
     //@{
     void init();

Modified: trunk/include/Rivet/Analyses/CDF_2008_S8093652.hh
==============================================================================
--- trunk/include/Rivet/Analyses/CDF_2008_S8093652.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/CDF_2008_S8093652.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -24,62 +24,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis. 
-    string spiresId() const {
-      return "8093652";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Dijet mass spectrum";
-    }    
-    /// Experiment which performed and published this analysis. 
-    string experiment() const {
-      return "CDF";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-    /// When published (preprint year according to SPIRES). 
-    string year() const {
-      return "2008";
-    }
-    /// Names & emails of analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Frank Siegert <frank.siegert at durham.ac.uk>";
-      return ret;
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Dijet mass spectrum  "
-         << "from 0.2 TeV to 1.4 TeV "
-         << "in ppbar collisions at $\\sqrt{s} = 1.96$ TeV, based on "
-         << "an integrated luminosity of $1.13 \\text{fb}^{-1}$.";
-      return os.str();
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "Tevatron Run 2 conditions:\n" << endl << endl
-         << "* ppbar -> jets at 1960 GeV";
-      return os.str();
-    }
-    string status() const {
-      return "UNVALIDATED";
-    }
-    /// Publication references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret.push_back("arXiv:0812.4036 [hep-ex]");
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{ 
     void init();

Modified: trunk/include/Rivet/Analyses/CDF_2008_S8095620.hh
==============================================================================
--- trunk/include/Rivet/Analyses/CDF_2008_S8095620.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/CDF_2008_S8095620.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -28,80 +28,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-
-    /// Get SPIRES ID code.
-    string spiresId() const {
-      return "8095620";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "CDF Run II Z+b-jet cross section paper, 2 fb-1";
-    }
-
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os <<  "Measurement of the b-jet production cross section for " 
-         <<  "events containing a $Z$ boson produced in $p\\bar{p}$ collisions at "
-         <<  "$\\sqrt{s}=1.96$ TeV, using data corresponding to an integrated "
-         <<  "luminosity of 2 fb$^{-1}$ collected by the CDF II detector at the "
-         <<  "Tevatron. $Z$ bosons are selected in the electron and muon decay "
-         <<  "modes. Jets are considered with transverse energy $E_T>20$ GeV and "
-         <<  "pseudorapidity $|\\eta|<1.5$. The ratio of the integrated $Z$ + b-jet "
-         <<  "cross section to the inclusive $Z$ production cross section is "
-         <<  "measured differentially in jet $E_T$, jet $\\eta$, "
-         <<  "$Z$-boson transverse momentum, number of jets, and number of b-jets. "
-         <<  "The first two measurements have an entry for each b-jet in the event, "
-         <<  "the last three measurements have one entry per event.";
-      return os.str();
-    }
-    /// Characteristics of events to be processed by this analysis
-    string runInfo() const {
-      ostringstream os;
-      os << "Requires the process $p\\bar{p} \\rightarrow {Z} "
-         <<  "\\rightarrow{\\ell}\\ell$, where $\\ell$ is $e$ or $\\mu$. "
-         << "Additional hard jets will also have to be included to get a good description. ";
-      return os.str();
-    }
-
-    /// Validation status
-    string status() const {
-      return "UNVALIDATED";
-    }
-
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "CDF";
-    }
-
-  /// Collider on which the experiment ran.
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "2008";
-    }
-
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Emily Nurse <nurse at hep.ucl.ac.uk>";
-      return rtn;
-    }
-
-    /// Journal, and preprint references.
-    virtual vector<string> references() const {
-      vector<string> ret;
-      ret.push_back("arXiv:0812.4458");
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{
     void init();

Modified: trunk/include/Rivet/Analyses/CDF_2009_S8233977.hh
==============================================================================
--- trunk/include/Rivet/Analyses/CDF_2009_S8233977.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/CDF_2009_S8233977.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -39,70 +39,6 @@
     //@}
 
 
-  public:
-
-    /// @name Publication metadata
-    //@{
-
-    /// SPIRES key (IRN)
-    string spiresId() const {
-      return "8233977";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "CDF Run 2 min bias cross-section analysis";
-    }
-    /// Full description of the analysis, for the manual
-    string description() const {
-      ostringstream os;
-      os << "Niccolo Moggi's minbias analysis. Minimum bias events are used to "
-         << "measure the average track pT vs charged multiplicity, a track pT "
-         << "distribution and an inclusive $\\sum E_T$ distribution. "
-         << "\n"
-         << "WARNING: Only average track pT vs charged multiplicity is validated!";
-      return os.str();
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-     return "CDF";
-    }
-    /// Collider on which the experiment was based
-    string collider() const {
-     return "Tevatron Run 2";
-    }
-    /// When published according to SPIRES
-    string year() const {
-     return "2009";
-    }
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Hendrik Hoeth <hendrik.hoeth at cern.ch>";
-      return ret;
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "* Tevatron Run 2: ppbar QCD interactions at 1960 GeV.\n"
-         << "* Particles with $c \\tau > {}$10 mm should be set stable.";
-      return os.str();
-    }
-
-    string status() const {
-      return "PARTIALLY VALIDATED";
-    }
-    /// No journal or preprint references: this is a demo.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "CDF public note 9337";
-      ret += "hep-ex/0904.1098";
-      return ret;
-    }
-    //@}
-
-
-  public:
-
     /// @name Analysis methods
     //@{
     void init();

Modified: trunk/include/Rivet/Analyses/D0_2001_S4674421.hh
==============================================================================
--- trunk/include/Rivet/Analyses/D0_2001_S4674421.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/D0_2001_S4674421.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -25,78 +25,7 @@
     }
     //@}
     
-    
-    /// @name Publication metadata
-    //@{
-
-    /// A short description of the analysis.
-    string spiresId() const {
-      return "4674421";
-    }
-
-    /// A short description of the analysis.
-    string summary() const {
-      return "Tevatron Run I differential W/Z boson cross-section analysis";
-    }
-
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Measurement of differential W/Z boson cross section and ratio in p pbar "
-         << "collisions at center-of-mass energy sqrt(s) = 1.8 TeV. The data cover "
-         << "electrons and neutrinos in a pseudo-rapidity range of -2.5 to 2.5. "
-        //   << "\n\n"
-         << "";
-      return os.str();
-    }
-
-    /// Event type required by this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "* Energy: sqrt(s) = 1800 GeV\n"
-         << "* Event type: W/Z events with decays to first generation leptons"
-         << "";
-      return os.str();
-    }
-
-    /// Validation status
-    string status() const {
-      return "VALIDATED";
-    }
-
-    /// Experiment which performed and published this analysis. 
-    string experiment() const {
-      return "D0";
-    }
-
-    /// Collider on which the experiment ran
-    string collider() const {
-      return "Tevatron Run 1";
-    }
-
-    /// When published (preprint year according to SPIRES). 
-    string year() const {
-      return "2001";
-    }
-
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Lars Sonnenschein <Lars.Sonnenschein at cern.ch>";
-      return rtn;
-    }
-
-    /// Publication references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Phys.Lett.B517:299-308,2001";
-      ret += "doi:10.1016/S0370-2693(01)01020-6";
-      ret += "arXiv:hep-ex/0107012v2";
-      return ret;
-    }
-    //@}
-    
-    
+        
     /// @name Analysis methods
     //@{
     void init();  

Modified: trunk/include/Rivet/Analyses/D0_2004_S5992206.hh
==============================================================================
--- trunk/include/Rivet/Analyses/D0_2004_S5992206.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/D0_2004_S5992206.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -39,63 +39,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis.
-    string spiresId() const {
-      return "5992206";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Run II jet azimuthal decorrelation analysis";
-    }
-    /// Full description of the analysis, for the manual
-    string description() const {
-      ostringstream os;
-      os << "Correlations in the azimuthal angle between the two largest pT jets "
-         << "have been measured using the D0 detector in ppbar collisions at 1960 GeV. "
-         << "The analysis is based on an inclusive dijet event sample in the central "
-         << "rapidity region. The correlations are determined for four different pT "
-         << "intervals.";
-      return os.str();
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "D0";
-    }
-    /// Collider on which the experiment was based
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "2004";
-    }
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Lars Sonnenschein <lars.sonnenschein at cern.ch>";
-      return ret;
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "Tevatron Run 2: ppbar QCD interactions at 1960 GeV.";
-      return os.str();
-    }
-    string status() const {
-      return "VALIDATED";
-    }
-    /// Journal, and preprint references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Phys. Rev. Lett., 94, 221801 (2005)";
-      ret += "arXiv:hep-ex/0409040";
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{
     void init();

Modified: trunk/include/Rivet/Analyses/D0_2006_S6438750.hh
==============================================================================
--- trunk/include/Rivet/Analyses/D0_2006_S6438750.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/D0_2006_S6438750.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -28,74 +28,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis. 
-    string spiresId() const {
-      return "6438750";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Inclusive isolated photon cross-section, differential in pT(gamma)";
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Measurement of differential cross section for inclusive production of isolated photons "
-         << "in p pbar collisions at sqrt(s) = 1.96 TeV with the D0 detector at the Fermilab Tevatron "
-         << "collider. The photons span transverse momenta 23--300 GeV and have pseudorapidity "
-         << "$|\\eta| < 0.9$."
-         << "\n\n"
-         << "Isolated direct photons are probes of pQCD via the annihilation (q qbar -> gamma g) "
-         << "and quark-gluon Compton scattering (q g -> gamma q) processes, the latter of which is "
-         << "also sensitive to the gluon PDF. The initial state radiation / resummation formalisms "
-         << "are sensitive to the resulting photon pT spectrum";
-      return os.str();
-    }
-    /// Characteristics of events to be processed by this analysis
-    string runInfo() const {
-      ostringstream os;
-      os << "* Requires gamma + jet (q,qbar,g) hard processes\n\n"
-         << "  * for Pythia 6, MSEL=10 for with MSUB indices 14, 18, 29, 114, 115 enabled\n"
-         << "* Lowest pT bin is at 23 GeV: a pT_min cut at ~10--15 GeV may be "
-         << "  required to get good statistics.";
-      return os.str();
-    }
-
-    /// Validation status
-    string status() const {
-      return "VALIDATED";
-    }
-
-    /// Experiment which performed and published this analysis. 
-    string experiment() const {
-      return "D0";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-    /// When published (preprint year according to SPIRES). 
-    string year() const {
-      return "2006";
-    }
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Andy Buckley <andy.buckley at durham.ac.uk>";
-      rtn += "Gavin Hesketh <gavin.hesketh at cern.ch>";
-      return rtn;
-    }
-    /// Publication references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Phys.Lett.B639:151-158,2006, Erratum-ibid.B658:285-289,2008";
-      ret += "doi:10.1016/j.physletb.2006.04.048";
-      ret += "arXiv:hep-ex/0511054 (plus erratum)";
-      return ret;
-    }
-    //@}
-
     /// @name Analysis methods
     //@{ 
     void init();

Modified: trunk/include/Rivet/Analyses/D0_2007_S7075677.hh
==============================================================================
--- trunk/include/Rivet/Analyses/D0_2007_S7075677.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/D0_2007_S7075677.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -25,66 +25,6 @@
     }
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis. 
-    string spiresId() const {
-      return "7075677";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Z/gamma* + X cross-section shape, differential in y(Z)";
-    }
-    /// Experiment which performed and published this analysis. 
-    string experiment() const {
-      return "D0";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-    /// When published (preprint year according to SPIRES). 
-    string year() const {
-      return "2007";
-    }
-    /// Names & emails of analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Andy Buckley <andy.buckley at durham.ac.uk>";
-      ret += "Gavin Hesketh <ghesketh at fnal.gov>";
-      ret += "Frank Siegert <frank.siegert at durham.ac.uk>";
-      return ret;
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Cross sections as a function of boson rapidity "
-         << "ppbar collisions at sqrt{s} = 1.96 TeV, based on "
-         << "an integrated luminosity of 0.4 fb^-1.";
-      return os.str();
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "Tevatron Run 2 conditions:\n"
-         << "* ppbar -> e+ e- + jets at 1960 GeV.\n"
-         << "* Needs mass cut on lepton pair to avoid photon singularity: min. range $71 < m_ee < 111$";
-      return os.str();
-    }
-    /// Validation status
-    string status() const {
-      return "UNCLEAR: Photons in Z reconstruction?";
-    }
-    /// Publication references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret.push_back("Phys.Rev.D76:012003,2007");
-      ret.push_back("arXiv:hep-ex/0702025");
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{ 
     void init();

Modified: trunk/include/Rivet/Analyses/D0_2008_S6879055.hh
==============================================================================
--- trunk/include/Rivet/Analyses/D0_2008_S6879055.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/D0_2008_S6879055.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -20,61 +20,6 @@
       return new D0_2008_S6879055();
     }
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis. 
-    string spiresId() const {
-      return "6879055";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Measurement of the ratio sigma(Z/gamma* + n jets)/sigma(Z/gamma*)";
-    }
-    /// Experiment which performed and published this analysis. 
-    string experiment() const {
-      return "D0";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-    /// When published (preprint year according to SPIRES). 
-    string year() const {
-      return "2008";
-    }
-    /// Names & emails of analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Giulio Lenzi";
-      ret += "Frank Siegert <frank.siegert at durham.ac.uk>";
-      return ret;
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Cross sections as a function of pT of the three leading jets "
-         << "and n-jet cross section ratios in ppbar collisions at sqrt{s} "
-         << "= 1.96 TeV, based on an integrated luminosity of 0.4 fb^-1.";
-      return os.str();
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "Tevatron Run 2 conditions:\n"
-         << "* ppbar -> e+ e- + jets at 1960 GeV\n"
-         << "* Needs mass cut on lepton pair to avoid photon singularity: min. range $75 < m_ee < 105$";
-      return os.str();
-    }
-    /// Validation status
-    string status() const {
-      return "VALIDATED";
-    }
-    /// Publication references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret.push_back("hep-ex/0608052");
-      return ret;
-    }
 
     //@}
     /// @name Analysis methods

Modified: trunk/include/Rivet/Analyses/D0_2008_S7554427.hh
==============================================================================
--- trunk/include/Rivet/Analyses/D0_2008_S7554427.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/D0_2008_S7554427.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -25,65 +25,6 @@
     }
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis. 
-    string spiresId() const {
-      return "7554427";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Z/gamma* + X cross-section shape, differential in pT(Z)";
-    }
-    /// Experiment which performed and published this analysis. 
-    string experiment() const {
-      return "D0";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-    /// When published (preprint year according to SPIRES). 
-    string year() const {
-      return "2008";
-    }
-    /// Names & emails of analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Andy Buckley <andy.buckley at durham.ac.uk>";
-      ret += "Frank Siegert <frank.siegert at durham.ac.uk>";
-      return ret;
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Cross sections as a function of pT of the vector boson "
-         << "inclusive and in forward region ($|y| > 2, pT < 30~\\text{GeV}$)"
-         << "in ppbar collisions at sqrt(s) = 1.96 TeV, based on "
-         << "an integrated luminosity of 0.98 fb$^{-1}$.";
-      return os.str();
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "Tevatron Run 2 conditions:\n"
-         << "* ppbar -> e+ e- + jets at 1960 GeV.\n"
-         << "* Needs mass cut on lepton pair to avoid photon singularity: m in range $40 < m_ee < 200$ GeV";
-      return os.str();
-    }
-    /// Validation status
-    string status() const {
-      return "VALIDATED";
-    }
-    /// Publication references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret.push_back("arXiv:0712.0803");
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{ 
     void init();

Modified: trunk/include/Rivet/Analyses/D0_2008_S7662670.hh
==============================================================================
--- trunk/include/Rivet/Analyses/D0_2008_S7662670.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/D0_2008_S7662670.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -27,78 +27,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-
-    /// A short description of the analysis. 
-    string spiresId() const {
-      return "7662670";
-    }
-
-    /// A short description of the analysis.
-    string summary() const {
-      return "Measurement of D0 Run II differential jet cross sections";
-    }
-
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Measurement of the inclusive jet cross section in p pbar collisions at "
-         << "center-of-mass energy sqrt(s) = 1.96 TeV. The data cover jet transverse "
-         << "momenta from 50--600 GeV and jet rapidities in the range -2.4 to 2.4. "
-        //   << "\n\n"
-         << "";
-      return os.str();
-    }
-
-    /// Event type required by this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "* Energy: sqrt(s) = 1960 GeV\n"
-         << "* Event type: QCD events\n"
-         << "* pTmin cut may be necessary: lowest jet pT bin is at 50 GeV";
-      return os.str();
-    }
-
-    /// Validation status
-    string status() const {
-      return "VALIDATED";
-    }
-
-    /// Experiment which performed and published this analysis. 
-    string experiment() const {
-      return "D0";
-    }
-
-    /// Collider on which the experiment ran
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-
-    /// When published (preprint year according to SPIRES). 
-    string year() const {
-      return "2008";
-    }
-
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Andy Buckley <andy.buckley at durham.ac.uk>";
-      rtn += "Gavin Hesketh <gavin.hesketh at cern.ch>";
-      return rtn;
-    }
-
-    /// Publication references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Phys.Rev.Lett.101:062001,2008";
-      ret += "doi:10.1103/PhysRevLett.101.062001";
-      ret += "arXiv:0802.2400v3 [hep-ex]";
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{ 
     void init();

Modified: trunk/include/Rivet/Analyses/D0_2008_S7719523.hh
==============================================================================
--- trunk/include/Rivet/Analyses/D0_2008_S7719523.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/D0_2008_S7719523.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -30,77 +30,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis. 
-    string spiresId() const {
-      return "7719523";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Isolated gamma + jet cross-sections, differential in pT(gamma) for various y-bins";
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "The process p pbar -> photon + jet + X as studied by the D0 detector at "
-         << "the Fermilab Tevatron collider at center-of-mass energy sqrt(s) = 1.96 TeV. "
-         << "Photons are reconstructed in the central rapidity region $|y_\\gamma| < 1.0$ "
-         << "with transverse momenta in the range 30--400 GeV, while jets are reconstructed "
-         << "in either the central $|y_jet| < 0.8$ or forward $1.5 < |y_\\text{jet}| < 2.5$ "
-         << "rapidity intervals with $pT_\\text{jet} > 15~\\text{GeV}$. The differential cross section "
-         << "$\\mathrm{d}^3 \\sigma / \\mathrm{d}{pT_\\gamma} \\mathrm{d}{y_\\gamma} "
-         << "\\mathrm{d}{y_jet}$ is measured as a function of $pT_\\gamma$ in four regions, "
-         << "differing by the relative orientations of the photon and the jet."
-        //<< "Ratios between the differential cross sections in each region are also presented."
-         << "\n\n"
-         << "MC predictions have trouble with simultaneously describing the measured "
-         << "normalization and $pT_\\gamma$ dependence of the cross section in any of the "
-         << "four measured regions.";
-      return os.str();
-    }
-    /// Details of the type of events expected by this analysis
-    string runInfo() const {
-      ostringstream os;
-      os << "* Produce only gamma + jet (q,qbar,g) hard processes\n\n"
-         << "  * for Pythia 6: MSEL=10, and MSUB indices 14, 29 & 115 enabled\n\n"
-         << "* Lowest bin edge at 30 GeV: kinematic pTmin cut may be required for "
-         << "  good statistics.";
-      return os.str();
-    }
-    /// Validation status
-    string status() const {
-      return "VALIDATED";
-    }
-    /// Experiment which performed and published this analysis. 
-    string experiment() const {
-      return "D0";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-    /// When published (preprint year according to SPIRES). 
-    string year() const {
-      return "2008";
-    }
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Andy Buckley <andy.buckley at durham.ac.uk>";
-      rtn += "Gavin Hesketh <gavin.hesketh at cern.ch>";
-      return rtn;
-    }
-    /// Publication references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Phys.Lett.B666:435-445,2008";
-      ret += "doi:10.1016/j.physletb.2008.06.076";
-      ret += "arXiv:0804.1107v2 [hep-ex]";
-      return ret;
-    }
-    //@}
-
     /// @name Analysis methods
     //@{ 
     void init();

Modified: trunk/include/Rivet/Analyses/D0_2008_S7837160.hh
==============================================================================
--- trunk/include/Rivet/Analyses/D0_2008_S7837160.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/D0_2008_S7837160.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -24,71 +24,6 @@
     }
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis. 
-    string spiresId() const {
-      return "7837160";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Measurement of W charge asymmetry from D0 Run II";
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Measurement of the electron charge asymmetry in p pbar -> W + X -> e nu_e  + X "
-         << "events at a center of mass energy of 1.96 TeV. The asymmetry is measured as " 
-         << "a function of the electron transverse momentum and pseudorapidity in the "
-         << "interval (-3.2, 3.2)."
-         << "\n\n"
-         << "This data is sensitive to proton parton distribution functions due to the "
-         << "valence asymmetry in the incoming quarks which produce the W. Initial state "
-         << "radiation should also affect the pT distribution.";
-      return os.str();
-    }
-    /// Type of events required by this analysis
-    string runInfo() const {
-      ostringstream os;
-      os << "* Event type: W production with decay to e nu_e only\n\n"
-         << "  * for Pythia 6: MSEL = 12, MDME(206,1) = 1\n\n"
-         << "* Energy: 1.96 TeV";
-      return os.str();
-    }
-    /// Validation status
-    string status() const {
-      return "VALIDATED";
-    }
-    /// Experiment which performed and published this analysis. 
-    string experiment() const {
-      return "D0";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-    /// When published (preprint year according to SPIRES). 
-    string year() const {
-      return "2008";
-    }
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Andy Buckley <andy.buckley at durham.ac.uk>";
-      rtn += "Gavin Hesketh <gavin.hesketh at cern.ch>";
-      return rtn;
-    }
-    /// Publication references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Phys.Rev.Lett.101:211801,2008";
-      ret += "doi:10.1103/PhysRevLett.101.211801";
-      ret += "arXiv:0807.3367v1 [hep-ex]";
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{ 
     void init();
@@ -96,6 +31,7 @@
     void finalize();
     //@}
 
+
   private:
 
     /// @name Histograms

Modified: trunk/include/Rivet/Analyses/D0_2008_S7863608.hh
==============================================================================
--- trunk/include/Rivet/Analyses/D0_2008_S7863608.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/D0_2008_S7863608.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -25,65 +25,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis. 
-    string spiresId() const {
-      return "7863608";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Measurement of differential Z/gamma* + jet + X cross sections";
-    }    
-    /// Experiment which performed and published this analysis. 
-    string experiment() const {
-      return "D0";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-    /// When published (preprint year according to SPIRES). 
-    string year() const {
-      return "2008";
-    }
-    /// Names & emails of analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Andy Buckley <andy.buckley at durham.ac.uk>";
-      ret += "Gavin Hesketh <gavin.hesketh at fnal.gov>";
-      ret += "Frank Siegert <frank.siegert at durham.ac.uk>";
-      return ret;
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Cross sections as a function of pT and rapidity of the boson "
-         << "and pT and rapidity of the leading jet "
-         << "in ppbar collisions at sqrt(s) = 1.96 TeV, based on "
-         << "an integrated luminosity of $1.0~\\text{fb}^-1$.";
-      return os.str();
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "Tevatron Run 2 conditions:\n" << endl << endl
-         << "* ppbar -> mu+ mu- + jets at 1960 GeV\n"
-         << "* Needs mass cut on lepton pair to avoid photon singularity: min. range $65 < m_Z < 115$";
-      return os.str();
-    }
-    string status() const {
-      return "VALIDATED";
-    }
-    /// Publication references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret.push_back("arXiv:0808.1296 [hep-ex]");
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{ 
     void init();

Modified: trunk/include/Rivet/Analyses/D0_2009_S8202443.hh
==============================================================================
--- trunk/include/Rivet/Analyses/D0_2009_S8202443.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/D0_2009_S8202443.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -23,63 +23,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis. 
-    string spiresId() const {
-      return "8202443";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Z/gamma* + jet + X cross sections differential in pT(jet 1,2,3)";
-    }    
-    /// Experiment which performed and published this analysis. 
-    string experiment() const {
-      return "D0";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-    /// When published (preprint year according to SPIRES). 
-    string year() const {
-      return "2009";
-    }
-    /// Names & emails of analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Frank Siegert <frank.siegert at durham.ac.uk>";
-      return ret;
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Cross sections as a function of pT of the three leading jets "
-         << "in $Z/\\gamma^{*} (\\to e^{+} e^{-})$ + jet + X production "
-         << "in ppbar collisions at $\\sqrt{s} = 1.96$ TeV, based on "
-         << "an integrated luminosity of $1.0 \\text{fb}^{-1}$.";
-      return os.str();
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "Tevatron Run 2 conditions:\n" << endl << endl
-         << "* ppbar -> e+ e- + jets at 1960 GeV\n"
-         << "* Needs mass cut on lepton pair to avoid photon singularity: min. range $65 < m_Z < 115$";
-      return os.str();
-    }
-    string status() const {
-      return "UNVALIDATED";
-    }
-    /// Publication references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret.push_back("arXiv:0903.1748 [hep-ex]");
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{ 
     void init();

Modified: trunk/include/Rivet/Analyses/D0_2009_S8320160.hh
==============================================================================
--- trunk/include/Rivet/Analyses/D0_2009_S8320160.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/D0_2009_S8320160.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -24,62 +24,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis. 
-    string spiresId() const {
-      return "8320160";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Dijet angular distributions";
-    }    
-    /// Experiment which performed and published this analysis. 
-    string experiment() const {
-      return "D0";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-    /// When published (preprint year according to SPIRES). 
-    string year() const {
-      return "2009";
-    }
-    /// Names & emails of analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Frank Siegert <frank.siegert at durham.ac.uk>";
-      return ret;
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Dijet angular distributions in different bins of dijet mass "
-         << "from 0.25 TeV to above 1.1 TeV "
-         << "in ppbar collisions at $\\sqrt{s} = 1.96$ TeV, based on "
-         << "an integrated luminosity of $0.7 \\text{fb}^{-1}$.";
-      return os.str();
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "Tevatron Run 2 conditions:\n" << endl << endl
-         << "* ppbar -> jets at 1960 GeV";
-      return os.str();
-    }
-    string status() const {
-      return "UNVALIDATED";
-    }
-    /// Publication references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret.push_back("arXiv:0906.4819 [hep-ex]");
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{ 
     void init();

Modified: trunk/include/Rivet/Analyses/DELPHI_1995_S3137023.hh
==============================================================================
--- trunk/include/Rivet/Analyses/DELPHI_1995_S3137023.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/DELPHI_1995_S3137023.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -27,62 +27,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis.
-    string spiresId() const {
-      return "3137023";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Strange baryon production in Z hadronic decays at Delphi";
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Measurement of the $\\Xi^-$ and $\\Sigma^+(1385)/\\Sigma^-(1385)$ scaled momentum "
-         << "distributions by DELPHI at LEP 1. The paper also has the production "
-	 << "cross-sections of these particles, but that's not implemented in Rivet.";
-      return os.str();
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "DELPHI";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "LEP 1";
-    }
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "1995";
-    }
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Hendrik Hoeth <hendrik.hoeth at cern.ch>";
-      return ret;
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "Hadronic Z decay events generated on the Z pole (sqrt(s) = 91.2 GeV)";
-      return os.str();
-    }
-    /// Validation status
-    string status() const {
-      return "VALIDATED";
-    }
-
-    /// Journal, and preprint references
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Z. Phys. C, 67, 543--554 (1995)";
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{
     virtual void init();

Modified: trunk/include/Rivet/Analyses/DELPHI_1996_S3430090.hh
==============================================================================
--- trunk/include/Rivet/Analyses/DELPHI_1996_S3430090.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/DELPHI_1996_S3430090.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -42,69 +42,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis.
-    string spiresId() const {
-      return "3430090";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Delphi MC tuning on event shapes and identified particles.";
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Event shape and charged particle inclusive distributions measured using "
-         << "750000 decays of Z bosons to hadrons from the DELPHI detector at LEP. "
-         << "This data, combined with identified particle distributions from all LEP "
-         << "experiments, was used for tuning of shower-hadronisation event generators "
-         << "by the original PROFESSOR method."
-         << "\n\n"
-         << "This is a critical analysis for MC event generator tuning of final state "
-         << "radiation and both flavour and kinematic aspects of hadronisation models.";
-      return os.str();
-    }
-    /// A short description of the analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "* Energy: 91.2 GeV\n"
-         << "* Event type is e+ e- Z production with hadronic decays only";
-      return os.str();
-    }
-    /// Validation status
-    string status() const {
-      return "VALIDATED";
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "DELPHI";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "LEP 1";
-    }
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "1996";
-    }
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Andy Buckley <andy.buckley at durham.ac.uk>";
-      rtn += "Hendrik Hoeth <hendrik.hoeth at cern.ch>";
-      return rtn;
-    }
-    /// Journal, and preprint references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Z.Phys.C73:11-60,1996";
-      ret += "doi:10.1007/s002880050295";
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{
     virtual void init();
@@ -114,6 +51,7 @@
 
 
   private:
+
     /// Little helper functions for the axis labels
     string dsigbyd(const string&);
     string Ndsigbyd(const string&);

Modified: trunk/include/Rivet/Analyses/DELPHI_2002_069_CONF_603.hh
==============================================================================
--- trunk/include/Rivet/Analyses/DELPHI_2002_069_CONF_603.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/DELPHI_2002_069_CONF_603.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -27,68 +27,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis.
-    string name() const {
-      return "DELPHI_2002_069_CONF_603";
-    }
-    string spiresId() const {
-      return "NONE";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Study of the b-quark fragmentation function at LEP 1";
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Measurement of the b-quark fragmentation function by DELPHI using "
-         << "1994 LEP 1 data. The fragmentation function for both weakly decaying "
-         << "and primary b-quarks has been determined in a model independent way. "
-         << "Nevertheless the authors trust $f(x_B^\\text{weak})$ more than "
-         << "$f(x_B^\\text{prim})$.";
-      return os.str();
-    }
-    // Experiment which performed and published this analysis.
-    string experiment() const {
-     return "DELPHI";
-    }
-    // Collider on which the experiment was based.
-    string collider() const {
-     return "LEP 1";
-    }
-    /// When published.
-    string year() const {
-     return "2002 (note)";
-    }
-
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Hendrik Hoeth <hendrik.hoeth at cern.ch>";
-      return ret;
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "Hadronic Z decay events generated on the Z pole (sqrt(s) = 91.2 GeV)";
-      return os.str();
-    }
-
-    string status() const {
-      return "VALIDATED";
-    }
-
-    /// Publication reference
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "DELPHI note 2002-069-CONF-603 (ICHEP 2002)";
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{
     virtual void init();

Modified: trunk/include/Rivet/Analyses/DELPHI_2003_WUD_03_11.hh
==============================================================================
--- trunk/include/Rivet/Analyses/DELPHI_2003_WUD_03_11.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/DELPHI_2003_WUD_03_11.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -39,67 +39,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-    
-    /// Analysis name
-    string name() const {
-      return "DELPHI_2003_WUD_03_11";
-    }
-    /// SPIRES key (IRN)
-    string spiresId() const {
-      return "NONE";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "4-jet angular distributions at LEP";
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "The 4-jet angular distributions (Bengtsson-Zerwas,"
-         << "K\"orner-Schierholz-Willrodt, Nachtmann-Reiter, and "
-         << "$\\alpha_{34}$) have been measured with DELPHI at "
-	 << "LEP 1 using Jade and Durham cluster algorithms. ";
-      return os.str();
-    }
-    // Experiment which performed and published this analysis.
-    string experiment() const {
-     return "DELPHI";
-    }
-    // Collider on which the experiment was based.
-    string collider() const {
-     return "LEP 1";
-    }
-    /// When published.
-    string year() const {
-     return "2003 (note)";
-    }
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Hendrik Hoeth <hendrik.hoeth at cern.ch>";
-      return ret;
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "Hadronic Z decay events generated on the Z pole (sqrt(s) = 91.2 GeV)";
-      return os.str();
-    }
-    string status() const {
-      return "UNVALIDATED";
-    }
-    /// Publication reference
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Diploma thesis WUD-03-11, University of Wuppertal";
-      return ret;
-    }
-
-    //@}
-
-
     /// @name Analysis methods
     //@{
     virtual void init();

Modified: trunk/include/Rivet/Analyses/ExampleAnalysis.hh
==============================================================================
--- trunk/include/Rivet/Analyses/ExampleAnalysis.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/ExampleAnalysis.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -26,67 +26,6 @@
     //@}
 
 
-  public:
-
-    /// @name Publication metadata
-    //@{
-    /// Return the name of this analysis
-    string name() const {
-      return "Example";
-    }
-    /// A short description of the analysis.
-    string spiresId() const {
-      return "NONE";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "A demo to show aspects of writing a Rivet analysis";
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "NONE";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "NONE";
-    }
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "NONE";
-    }
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Andy Buckley <andy.buckley at durham.ac.uk>";
-      return rtn;
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "This analysis is a demonstration of the Rivet analysis structure "
-         << "and functionality: booking histograms; the initialisation, analysis "
-         << "and finalisation phases; and a simple loop over event particles. "
-         << "It has no physical meaning, but can be used as a simple pedagogical "
-         << "template for writing real analyses.";
-      return os.str();
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "All event types will be accepted.";
-      return os.str();
-    }
-    string status() const {
-      return "EXAMPLE";
-    }
-    /// No journal or preprint references: this is a demo.
-    vector<string> references() const {
-      vector<string> ret;
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{
     void init();

Modified: trunk/include/Rivet/Analyses/ExampleTree.hh
==============================================================================
--- trunk/include/Rivet/Analyses/ExampleTree.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/ExampleTree.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -36,71 +36,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-    /// Return the name of this analysis
-    string name() const {
-      return "ExampleTree";
-    }
-    /// A short description of the analysis.
-    string spiresId() const {
-      return "NONE";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Demonstrate filling a ROOT tree from a kT jets analysis";
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "NONE";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "NONE";
-    }
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "NONE";
-    }
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Jon Butterworth <jmb at hep.ucl.ac.uk>";
-      return rtn;
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "This analysis is a demonstration of how Rivet can be used to produce "
-         << "ROOT data trees rather than Rivet's own histograms. We don't recommend "
-         << "this, since analyses written this way will not be accepted for inclusion "
-         << "into the Rivet library and hence will not contribute to standard MC "
-         << "validation and tuning studies. However, it may be useful for nascent "
-         << "private MC analyses if you are a ROOT fan."
-         << "\n\n"
-         << "Note that this example analysis does some things such as accessing parton "
-         << "level information, which are unphysical and also may be generator dependent. "
-         << "You should not use this method in your own analyses if you expect the "
-         << "results to be meaningfully comparable to data!";
-      return os.str();
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "All event types will be accepted.";
-      return os.str();
-    }
-    string status() const {
-      return "EXAMPLE";
-    }
-    /// No journal or preprint references: this is a demo.
-    vector<string> references() const {
-      vector<string> ret;
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{
     void init();

Modified: trunk/include/Rivet/Analyses/H1_1994_S2919893.hh
==============================================================================
--- trunk/include/Rivet/Analyses/H1_1994_S2919893.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/H1_1994_S2919893.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -27,67 +27,6 @@
     //@}
     
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis.
-    string spiresId() const {
-      return "2919893";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "H1 energy flow and charged particle spectra in DIS";
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Global properties of the hadronic final state in deep inelastic scattering events "
-         << "at HERA are investigated. The data are corrected for detector effects. Energy flows "
-         << "in both the laboratory frame and the hadronic centre of mass system, and "
-         << "energy-energy correlations in the laboratory frame are presented."
-         << "\n\n"
-         << "Historically, the Ariadne colour dipole model provided the only satisfactory description "
-         << "of this data, hence making it a useful 'target' analysis for MC shower models.";
-      return os.str();
-    }
-    /// Event type required by this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "* Event type: e- p / e+ p deep inelastic scattering\n"
-         << "* HERA beam conditions: 820~GeV protons colliding with 26.7~GeV electrons";
-      return os.str();
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "H1";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "HERA";
-    }
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "1994";
-    }
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Peter Richardson <peter.richardson at durham.ac.uk>";
-      return rtn;
-    }
-    /// Journal, and preprint references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Z.Phys.C63:377-390,1994";
-      ret += "doi:10.1007/BF01580319";
-      return ret;
-    }
-    /// Validation status
-    string status() const {
-      return "VALIDATED";
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{
     virtual void init();

Modified: trunk/include/Rivet/Analyses/H1_1995_S3167097.hh
==============================================================================
--- trunk/include/Rivet/Analyses/H1_1995_S3167097.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/H1_1995_S3167097.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -24,76 +24,8 @@
       return new H1_1995_S3167097(); 
     }
 
-    //@}
-
+    //@}    
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis.
-    string spiresId() const {
-      return "3167097";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Transverse energy and forward jet production in the low x regime at H1";
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "H1";
-    }
-    
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "HERA Run I";
-    }
-    
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "1995";
-    }
-    
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn.push_back("Leif Lonnblad <leif.lonnblad at thep.lu.se>");
-      return rtn;
-    }
-    
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "DIS events at low x may be sensitive to new QCD dynamics such as BFKL or CCFM radiation."
-         << " In particular, BFKL is expected to produce more radiation at high transverse energy "
-         << " in the rapidity span between the proton remnant and the struck quark jet." 
-         << " Performing a transverse energy sum in bins of x and $\\eta$ may distinguish" 
-         << " between DGLAP and BFKL evolution.";
-      return os.str();
-    }
-    
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "* HERA beam conditions: 820~GeV protons colliding with 26.7~GeV electrons\n"
-         << "* DIS events with an outgoing electron energy $> 12~\\text{GeV}$\n"
-         << "* $5~\\text{GeV}^2 < Q^2 < 100~\\text{GeV}^2$, $10^{-4} < x < 10^{-2}$.";
-      return os.str();
-    }
-    
-    /// Status of this routine (VALIDATED or UNVALIDATED)
-    string status() const {
-      return "UNVALIDATED";
-    }
-    
-    /// Journal, and preprint references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret.push_back("Phys.Lett.B356:118,1995");
-      ret.push_back("hep-ex/9506012");
-      return ret;
-    }
-    
-    //@}
-    
 
     /// @name Analysis methods
     //@{

Modified: trunk/include/Rivet/Analyses/H1_2000_S4129130.hh
==============================================================================
--- trunk/include/Rivet/Analyses/H1_2000_S4129130.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/H1_2000_S4129130.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -27,74 +27,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis.
-    string spiresId() const {
-      return "4129130";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "H1 energy flow in DIS";
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Measurements of transverse energy flow for neutral current deep-inelastic "
-         << "scattering events produced in positron-proton collisions at HERA. The kinematic "
-         << "range covers squared momentum transfers $Q^2$ from 3.2 to 2200 GeV^2; the Bjorken "
-         << "scaling variable $x$ from 8x10^-5 to 0.11 and the hadronic mass $W$ from "
-         << "66 to 233 GeV. The transverse energy flow is measured in the hadronic centre of "
-         << "mass frame and is studied as a function of $Q^2$, $x$, $W$ and pseudorapidity. "
-         << "The behaviour of the mean transverse energy in the central pseudorapidity region "
-         << "and an interval corresponding to the photon fragmentation region are analysed as "
-         << "a function of Q^2 and W."
-         << "\n\n"
-         << "This analysis is useful for exploring the effect of photon PDFs and for tuning "
-         << "models of parton evolution and treatment of fragmentation and the proton remnant " 
-         << "in DIS.";
-      return os.str();
-    }
-    /// Event type required by this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "* Event type: e+ p deep inelastic scattering\n"
-         << "* Energy: p at 820 GeV, e+ at 27.5 GeV -> sqrt(s) = 300 GeV";
-      return os.str();
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "H1";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "HERA";
-    }
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "2000";
-    }
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn += "Peter Richardson <peter.richardson at durham.ac.uk>";
-      return rtn;
-    }
-    /// Journal, and preprint references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Eur.Phys.J.C12:595-607,2000";
-      ret += "doi:10.1007/s100520000287";
-      ret += "arXiv:hep-ex/9907027v1";
-      return ret;
-    }
-    /// Validation status
-    string status() const {
-      return "VALIDATED";
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{
     virtual void init();

Modified: trunk/include/Rivet/Analyses/JADE_OPAL_2000_S4300807.hh
==============================================================================
--- trunk/include/Rivet/Analyses/JADE_OPAL_2000_S4300807.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/JADE_OPAL_2000_S4300807.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -6,6 +6,7 @@
 
 namespace Rivet {
 
+
   /**
    * @brief Jet rates in e+e- at OPAL and JADE
    * @author Frank Siegert
@@ -31,65 +32,16 @@
 
     /// @name Publication metadata
     //@{
-    /// A short description of the analysis.
-    string spiresId() const {
-      return "4300807";
-    }
-    /// A short description of the analysis.
-    virtual string summary() const {
-      return "Jet rates in e+e- at JADE [35-43 GeV] and OPAL [91.2-189 GeV].";
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "JADE_OPAL";
-    }
     /// Collider on which the experiment ran.
     string collider() const {
-      if (_sqrts<90.0) {
+      if (_sqrts < 90.0) {
         return "DESY PETRA";
-      }
-      else if (_sqrts>90.0 && _sqrts<92.0) {
+      } else if (inRange(_sqrts, 90.0, 92.0)) {
         return "LEP Run I";
-      }
-      else {
+      } else {
         return "LEP Run 2";
       }
     }
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "2000";
-    }
-    /// Names & emails of analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Frank Siegert <frank.siegert at durham.ac.uk>";
-      return ret;
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Differential and integrated jet rates for Durham and JADE " 
-         << "jet algorithms at sqrt(s) = " << _sqrts << ".";
-      return os.str();
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "e+ e- collisions: " << endl << endl
-         << "* e+ e- -> jet jet (+ jets) at " << _sqrts << " GeV. "
-         << "* no cuts needed" << endl;
-      return os.str();
-    }
-    string status() const {
-      return "VALIDATED";
-    }
-    /// Journal, and preprint references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret.push_back("Eur.Phys.J.C17:19-51,2000");
-      ret.push_back("arXiv:hep-ex/0001055");
-      return ret;
-    }
     //@}
 
 
@@ -107,7 +59,6 @@
     //@{
     AIDA::IDataPointSet *_h_R_Jade[5];
     AIDA::IDataPointSet *_h_R_Durham[5];
-
     AIDA::IHistogram1D *_h_y_Durham[4];
     //@}
 

Modified: trunk/include/Rivet/Analyses/MC_LHC_LEADINGJETS.hh
==============================================================================
--- trunk/include/Rivet/Analyses/MC_LHC_LEADINGJETS.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/MC_LHC_LEADINGJETS.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -26,81 +26,6 @@
     //@}
 
 
-  public:
-
-    /// @name Publication metadata
-    //@{
-
-    /// Analysis name
-    string name() const {
-      return "MC_LHC_LEADINGJETS";
-    }
-    /// SPIRES key (IRN)
-    string spiresId() const {
-      return "NONE";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Underlying event in leading jet events, extended to LHC";
-    }
-    /// Full description of the analysis, for the manual
-    string description() const {
-      ostringstream os;
-      os << "Rick Field's measurement of the underlying event in leading jet "
-         << "events, extended to the LHC. As usual, the leading jet of the "
-         << "defines an azimuthal toward/transverse/away decomposition, "
-         << "in this case the event is accepted within $|\\eta| < 2$, as "
-         << "in the CDF 2008 version of the analysis. Since this isn't the "
-         << "Tevatron, I've chosen to use $k_\\perp$ rather than midpoint "
-         << "jets.";
-      return os.str();
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-     return "NONE";
-    }
-    /// Collider on which the experiment was based
-    string collider() const {
-     return "LHC";
-    }
-    /// When published according to SPIRES
-    string year() const {
-     return "NONE";
-    }
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Andy Buckley <andy.buckley at cern.ch>";
-      return ret;
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "LHC: pp QCD interactions at 0.9, 10 or 14 TeV."
-         << "Particles with $c \\tau > {}$10 mm should be set stable."
-         << "Several $p_\\perp^\\text{min}$ cutoffs are probably required to "
-         << "fill the profile histograms. ";
-      //<< " * $p_\\perp^\\text{min} = {}$ 0 (min bias), 10, 20, 50, 100, 150 GeV "
-      //<< " * The corresponding merging points are at $p_T = $ 0, 30, 50, 80, 130, 180 GeV";
-      return os.str();
-    }
-
-    string status() const {
-      return "NOT TO BE VALIDATED";
-    }
-
-    /// No journal or preprint references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "";
-      return ret;
-    }
-
-    //@}
-
-
-  public:
-
     /// @name Analysis methods
     //@{
     void init();
@@ -108,6 +33,7 @@
     void finalize();
     //@}
 
+
   private:
 
     AIDA::IProfile1D *_hist_pnchg;

Modified: trunk/include/Rivet/Analyses/MC_TVT1960_ZJETS.hh
==============================================================================
--- trunk/include/Rivet/Analyses/MC_TVT1960_ZJETS.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/MC_TVT1960_ZJETS.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -23,71 +23,6 @@
     }
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis. 
-    string spiresId() const {
-      return "NONE";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Monte Carlo validation observables for Z[e+ e-] + jets production at Tevatron Run II";
-    }    
-    /// Experiment which performed and published this analysis. 
-    string experiment() const {
-      return "MC";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "Tevatron Run 2";
-    }
-    /// When published (preprint year according to SPIRES). 
-    string year() const {
-      return "NONE";
-    }
-    /// Overwrite virtual name method for special analysis scheme
-    string name() const {
-      return "MC_TVT1960_ZJETS";
-    }
-    /// Names & emails of analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Frank Siegert <frank.siegert at durham.ac.uk>";
-      return ret;
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Available observables\n" << endl << endl
-         << "* Z mass\n" << endl
-         << "* pT of jet 1-4\n" << endl
-         << "* jet multiplicity\n" << endl
-         << "* Delta eta (Z, jet1)\n" << endl
-         << "* Delta R (jet2, jet3)\n" << endl
-         << "* Differential jet rates 0->1, 1->2, 2->3, 3->4\n" << endl
-         << "* Integrated 0-4 jet rates\n" << endl;
-      return os.str();
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "Tevatron Run 2 conditions: " << endl << endl
-         << "* ppbar -> e+ e- + jets at 1960 GeV. "
-         << "* Needs mass cut on lepton pair to avoid photon singularity: "
-         << "min. range $66 < m_ee < 116$ GeV" << endl;
-      return os.str();
-    }
-    string status() const {
-      return "NOT TO BE VALIDATED";
-    }
-    /// Publication references.
-    vector<string> references() const {
-      vector<string> ret;
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{ 
     void init();

Modified: trunk/include/Rivet/Analyses/OPAL_1998_S3780481.hh
==============================================================================
--- trunk/include/Rivet/Analyses/OPAL_1998_S3780481.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/OPAL_1998_S3780481.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -27,62 +27,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis.
-    string spiresId() const {
-      return "3780481";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Measurements of flavor dependent fragmentation functions in Z0 --> q anti-q events.";
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Measurement of scaled momentum distributions and total "
-         << "charged multiplicities in flavour tagged events at LEP 1. "
-         << "OPAL measured these observables in uds-, c-, and b-events "
-         << "separately. An inclusive measurement is also included.";
-      return os.str();
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "OPAL";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "LEP 1";
-    }
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "1998";
-    }
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Hendrik Hoeth <hendrik.hoeth at cern.ch>";
-      return ret;
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "Hadronic Z decay events generated on the Z pole (sqrt(s) = 91.2 GeV)";
-      return os.str();
-    }
-    string status() const {
-      return "VALIDATED";
-    }
-    /// Journal, and preprint references
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Eur. Phys. J, C7, 369--381 (1999)"; 
-      ret += "hep-ex/9807004";
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{
     virtual void init();

Modified: trunk/include/Rivet/Analyses/PDG_Hadron_Multiplicities.hh
==============================================================================
--- trunk/include/Rivet/Analyses/PDG_Hadron_Multiplicities.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/PDG_Hadron_Multiplicities.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -26,70 +26,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-
-    /// Analysis name
-    string name() const {
-      return "PDG_HADRON_MULTIPLICITIES";
-    }
-    /// SPIRES key (IRN)
-    string spiresId() const {
-      return "7857373";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Hadron multiplicities in hadronic e+e- events";
-    }
-    /// Full description of the analysis, for the manual
-    string description() const {
-      ostringstream os;
-      os << "Hadron multiplicities in hadronic e+e- events, taken from Review of "
-         << "Particle Properties 2008, table 40.1, page 355. "
-         << "\n\n"
-         << "Average hadron multiplicities per hadronic $e^+e^-$ annihilation "
-         << "event at $\\sqrt{s} \\approx {}$ 10, 29--35, 91, and 130--200 GeV. "
-         << "The numbers are averages from various experiments. Correlations "
-         << "of the systematic uncertainties were considered for the calculation "
-         << "of the averages.";
-      return os.str();
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "PDG";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "various";
-    }
-    /// When published according to SPIRES
-    string year() const {
-     return "2008";
-    }
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Hendrik Hoeth <hendrik.hoeth at cern.ch>";
-      return ret;
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "Hadronic events in $e+e-$ collisions";
-      return os.str();
-    }
-    string status() const {
-      return "VALIDATED";
-    }
-    /// No journal or preprint references: this is a demo.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Phys. Lett. B, 667, 1 (2008)";
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{
     virtual void init();

Modified: trunk/include/Rivet/Analyses/PDG_Hadron_Multiplicities_Ratios.hh
==============================================================================
--- trunk/include/Rivet/Analyses/PDG_Hadron_Multiplicities_Ratios.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/PDG_Hadron_Multiplicities_Ratios.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -26,70 +26,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-
-    /// Analysis name
-    string name() const {
-      return "PDG_HADRON_MULTIPLICITIES_RATIOS";
-    }
-    /// SPIRES key (IRN)
-    string spiresId() const {
-      return "7857373";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Ratios (w.r.t. pi^+/pi^-) of hadron multiplicities in hadronic e+e- events";
-    }
-    string description() const {
-      ostringstream os;
-      os << "Ratios (w.r.t. pi^+/pi^-) of hadron multiplicities in hadronic e+e- "
-         << "events, taken from Review of Particle Properties 2008, table 40.1, page 355. "
-         << "\n\n"
-         << "Average hadron multiplicities per hadronic $e^+e^-$ annihilation "
-         << "event at $\\sqrt{s} \\approx {}$ 10, 29--35, 91, and 130--200 GeV,"
-         << "normalised to the pion multiplicity. "
-         << "The numbers are averages from various experiments. Correlations "
-         << "of the systematic uncertainties were considered for the calculation "
-         << "of the averages.";
-      return os.str();
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "PDG";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "various";
-    }
-    /// When published according to SPIRES
-    string year() const {
-     return "2008";
-    }
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Holger Schulz <holger.schulz at physik.hu-berlin.de>";
-      return ret;
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "Hadronic events in $e+e-$ collisions";
-      return os.str();
-    }
-    string status() const {
-      return "VALIDATED";
-    }
-    /// No journal or preprint references: this is a demo.
-    vector<string> references() const {
-      vector<string> ret;
-      ret += "Phys. Lett. B, 667, 1 (2008)";
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{
     virtual void init();

Modified: trunk/include/Rivet/Analyses/STAR_2006_S6870392.hh
==============================================================================
--- trunk/include/Rivet/Analyses/STAR_2006_S6870392.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/STAR_2006_S6870392.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -24,62 +24,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis. 
-    string spiresId() const {
-      return "6870392";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Inclusive jet cross-section in pp at 200 GeV";
-    }    
-    /// Experiment which performed and published this analysis. 
-    string experiment() const {
-      return "STAR";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "RHIC pp 200 GeV";
-    }
-    /// When published (preprint year according to SPIRES). 
-    string year() const {
-      return "2006";
-    }
-    /// Names & emails of analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Hendrik Hoeth <hendrik.hoeth at cern.ch>";
-      return ret;
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Inclusive jet cross section as a function of pT "
-         << "in pp collisions at $\\sqrt{s} = 200$ GeV, measured "
-         << "by the STAR experiment at RHIC.";
-      return os.str();
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "RHIC pp 200 GeV run conditions:\n" << endl << endl
-         << "* pp at 200 GeV";
-      return os.str();
-    }
-    string status() const {
-      return "VALIDATED";
-    }
-    /// Publication references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret.push_back("Phys. Rev. Lett. 97, 252001");
-      ret.push_back("hep-ex/0608030");
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{ 
     void init();

Modified: trunk/include/Rivet/Analyses/STAR_2008_S7993412.hh
==============================================================================
--- trunk/include/Rivet/Analyses/STAR_2008_S7993412.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/STAR_2008_S7993412.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -24,67 +24,6 @@
     //@}
 
 
-    /// @name Publication metadata
-    //@{
-    /// A short description of the analysis. 
-    string spiresId() const {
-      return "7993412";
-    }
-    /// A short description of the analysis.
-    string summary() const {
-      return "Di-hadron correlations in d-Au at 200 GeV";
-    }    
-    /// Experiment which performed and published this analysis. 
-    string experiment() const {
-      return "STAR";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const {
-      return "RHIC d-Au 200 GeV";
-    }
-    /// When published (preprint year according to SPIRES). 
-    string year() const {
-      return "2008";
-    }
-    /// Names & emails of analysis authors.
-    vector<string> authors() const {
-      vector<string> ret;
-      ret += "Christine Nattrass <christine.nattrass at yale.edu>";
-      ret += "Hendrik Hoeth <hendrik.hoeth at cern.ch>";
-      return ret;
-    }
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os << "Correlation in $\\eta$ and $\\phi$ between the "
-         << "charged hadron with the highest pT (``trigger "
-         << "particle'') and the other charged hadrons in the "
-         << "event (``associated particles''). The data was "
-         << "collected in d-Au collisions at 200 GeV. "
-         << "Nevertheless, it is very proton-proton like and "
-         << "can therefore be compared to pp Monte Carlo "
-         << "(not for tuning, but for qualitative studies).";
-      return os.str();
-    }
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "RHIC d-Au 200 GeV run conditions:\n" << endl << endl
-         << "* d-Au at 200 GeV (use pp Monte Carlo! See description.)";
-      return os.str();
-    }
-    string status() const {
-      return "UNVALIDATED";
-    }
-    /// Publication references.
-    vector<string> references() const {
-      vector<string> ret;
-      ret.push_back("arXiv:0809.5261 [nucl-ex]");
-      return ret;
-    }
-    //@}
-
-
     /// @name Analysis methods
     //@{ 
     void init();

Modified: trunk/include/Rivet/Analyses/ZEUS_2001_S4815815.hh
==============================================================================
--- trunk/include/Rivet/Analyses/ZEUS_2001_S4815815.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analyses/ZEUS_2001_S4815815.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -6,6 +6,7 @@
 
 namespace Rivet {
 
+
   /// @brief ZEUS dijet photoproduction study used in the ZEUS Jets PDF fit
   ///
   /// This class is a reproduction of the HZTool routine for the ZEUS 
@@ -24,78 +25,6 @@
       return new ZEUS_2001_S4815815(); 
     }
 
-
-    /// @name Publication metadata
-    //@{
-    /// Get a description of the analysis.
-    string spiresId() const {
-      return "4815815";
-    }
-    /// Get a description of the analysis.
-    string summary() const {
-      return "Dijet photoproduction analysis";
-    }
-    /// Experiment which performed and published this analysis.
-    string experiment() const {
-      return "ZEUS";
-    }
-    /// Collider on which the experiment ran.
-    string collider() const{
-      return "HERA Run I";
-    }
-    
-    /// When published (preprint year according to SPIRES).
-    string year() const {
-      return "2001";
-    }
-    
-    /// Names & emails of paper/analysis authors.
-    vector<string> authors() const {
-      vector<string> rtn;
-      rtn.push_back("Jon Butterworth <jmb at hep.ucl.ac.uk>");
-      return rtn;
-    }
-    
-    /// A full description of the analysis.
-    string description() const {
-      ostringstream os;
-      os<< "ZEUS photoproduction of jets from proton-positron collisions at beam energies of 820~GeV on 27.5~GeV."
-        << " Photoproduction can either be direct, in which case the photon interacts directly with the parton," 
-        << " or resolved, in which case the photon acts as a source of quarks and gluons."
-        << " A photon-proton centre of mass energy of between 134~GeV and 227~GeV is probed," 
-        << " with values of xP, the fractional momentum of the partons inside the proton, predominantly in the region"
-        << " between 0.01 and 0.1. The fractional momentum of the partons from the photon, $x\\gamma$, is in the region 0.1 to 1."
-        << " Jets are reconstructed in the range $-1<|\\eta|<2.4$ using the kT algorithm with an R parameter of 1.0."
-        << " The minimum pT of the leading jet should be greater then 14~GeV, and at least one other jet must have pT>11~GeV.";
-      return os.str();
-    }
-    
-    /// Information about the events needed as input for this analysis.
-    string runInfo() const {
-      ostringstream os;
-      os << "* HERA beam conditions: 820~GeV protons colliding with 27.5~GeV positrons\n"
-         << "* Direct and resolved photoproduction of di-jets\n"
-         << "* Leading jet pT > 14~GeV, second jet pT > 11~GeV\n"
-         << "* Jet pseudorapidity $-1 < \\eta < 2.4$";
-      return os.str();
-    }
-    
-    /// Status of this routine (VALIDATED or UNVALIDATED)
-    string status() const{
-      return "UNVALIDATED";
-    }
-    
-    /// Journal, and preprint references.
-    vector<string> references() const {
-      vector<string> refs;
-      refs.push_back( "Eur.Phys.J.C23:615,2002" );
-      refs.push_back( "DESY 01/220" );
-      refs.push_back("hep-ex/0112029");
-      return refs;
-    }
-    
-    //@}
-
     /// @name Analysis methods
     //@{
     void init();
@@ -110,6 +39,7 @@
     AIDA::IHistogram1D* _histJetEt1;
     //@}
 
+
   };
 
 

Modified: trunk/include/Rivet/Analysis.hh
==============================================================================
--- trunk/include/Rivet/Analysis.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/Analysis.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -4,6 +4,7 @@
 
 #include "Rivet/Rivet.hh"
 #include "Rivet/Analysis.fhh"
+#include "Rivet/AnalysisInfo.hh"
 #include "Rivet/Event.hh"
 #include "Rivet/Projection.hh"
 #include "Rivet/ProjectionApplier.hh"
@@ -49,7 +50,10 @@
     /// @name Standard constructors and destructors.
     //@{
     /// The default constructor.
-    Analysis();
+    //Analysis();
+
+    /// Constructor
+    Analysis(const std::string& name);
 
     /// The destructor.
     virtual ~Analysis() { }
@@ -89,41 +93,63 @@
     /// metadata methods and you should only override it if there's a 
     /// good reason why those won't work.
     virtual std::string name() const {
-      return experiment() + "_" + year() + "_S" + spiresId();
+      if (_info && !_info->name().empty()) return _info->name();
+      return "";
     }
 
     /// Get a description of the analysis.
-    virtual std::string spiresId() const = 0;
+    virtual std::string spiresId() const {
+      if (!_info) return "NONE";
+      return _info->spiresId();
+    }
 
     /// @brief Names & emails of paper/analysis authors.
     /// Names and email of authors in 'NAME <EMAIL>' format. The first
     /// name in the list should be the primary contact person.
-    virtual std::vector<std::string> authors() const = 0;
+    virtual std::vector<std::string> authors() const {
+      if (!_info) return std::vector<std::string>();
+      return _info->authors();
+    }
 
     /// @brief Get a short description of the analysis.
     /// Short (one sentence) description used as an index entry.
     /// Use @a description() to provide full descriptive paragraphs
     /// of analysis details.
-    virtual std::string summary() const = 0;
+    virtual std::string summary() const {
+      if (!_info) return "NONE";
+      return _info->summary();
+    }
 
     /// @brief Get a full description of the analysis.
     /// Full textual description of this analysis, what it is useful for,
     /// what experimental techniques are applied, etc. Should be treated
     /// as a chunk of restructuredText (http://docutils.sourceforge.net/rst.html),
     /// with equations to be rendered as LaTeX with amsmath operators.
-    virtual std::string description() const = 0;
+    virtual std::string description() const {
+      if (!_info) return "NONE";
+      return _info->description();
+    }
 
     /// @brief Information about the events needed as input for this analysis.
     /// Event types, energies, kinematic cuts, particles to be considered 
     /// stable, etc. etc. Should be treated as a restructuredText bullet list
     /// (http://docutils.sourceforge.net/rst.html)
-    virtual std::string runInfo() const = 0;
+    virtual std::string runInfo() const {
+      if (!_info) return "NONE";
+      return _info->runInfo();
+    }
     
     /// Experiment which performed and published this analysis.
-    virtual std::string experiment() const = 0;
+    virtual std::string experiment() const {
+      if (!_info) return "NONE";
+      return _info->experiment();
+    }
 
     /// Collider on which the experiment ran.
-    virtual string collider() const = 0;
+    virtual string collider() const {
+      if (!_info) return "NONE";
+      return _info->collider();
+    }
 
     /// Incoming beams required by this analysis.
     virtual const BeamPair& beams() const {
@@ -133,14 +159,21 @@
     /// @brief When the original experimental analysis was published.
     /// When the refereed paper on which this is based was published, 
     /// according to SPIRES.
-    virtual std::string year() const = 0;
+    virtual std::string year() const {
+      if (!_info) return "NONE";
+      return _info->year();
+    }
 
     /// Journal, and preprint references.
-    virtual std::vector<std::string> references() const = 0;
+    virtual std::vector<std::string> references() const {
+      if (!_info) return std::vector<std::string>();
+      return _info->references();
+    }
 
     /// Whether this analysis is trusted (in any way!)
     virtual std::string status() const {
-      return "UNVALIDATED";
+      if (!_info) return "UNVALIDATED";
+      return _info->status();
     }
     //@}
 
@@ -403,6 +436,13 @@
       _needsCrossSection = needed;
       return *this;
     }
+
+
+  protected:
+
+    /// Pointer to analysis metadata object
+    shared_ptr<AnalysisInfo> _info;
+
     
   private:
 
@@ -422,13 +462,14 @@
     /// Flag to indicate whether the histogram directory is present
     bool _madeHistoDir;
 
-
     /// Collection of x-axis point data to speed up many autobookings: the 
-    /// AIDA reference file should only be read once.
+    /// reference data file should only be read once.
+    /// @todo Reduce memory occupancy, or clear after initialisation?
     map<string, vector<DPSXPoint> > _dpsData;
 
     /// Collection of cached bin edges to speed up many autobookings: the 
-    /// AIDA reference file should only be read once.
+    /// reference data file should only be read once.
+    /// @todo Reduce memory occupancy, or clear after initialisation?
     map<string, BinEdges> _histBinEdges;
 
   private:

Modified: trunk/include/Rivet/AnalysisInfo.hh
==============================================================================
--- trunk/include/Rivet/AnalysisInfo.hh	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/include/Rivet/AnalysisInfo.hh	Thu Jul  9 17:55:34 2009	(r1672)
@@ -13,7 +13,7 @@
   public:
 
     /// Static factory method: returns null pointer if no metadata found
-    static const AnalysisInfo* make(const std::string& name);
+    static AnalysisInfo* make(const std::string& name);
 
 
     /// @name Standard constructors and destructors.
@@ -36,7 +36,11 @@
     /// metadata methods and you should only override it if there's a 
     /// good reason why those won't work.
     std::string name() const {
-      return experiment() + "_" + year() + "_S" + spiresId();
+      if (!_name.empty()) return _name;
+      if (!experiment().empty() && !year().empty() && !spiresId().empty()) {
+        return experiment() + "_" + year() + "_S" + spiresId();
+      }
+      return "";
     }
 
     /// Get a description of the analysis.
@@ -110,10 +114,10 @@
 
 
   /// String representation
-  std::string toString(const AnalysisInfo& ai);
+  inline std::string toString(const AnalysisInfo& ai);
 
   /// Stream an AnalysisInfo as a text description
-  std::ostream& operator<<(std::ostream& os, const AnalysisInfo& ai) {
+  inline std::ostream& operator<<(std::ostream& os, const AnalysisInfo& ai) {
     os << toString(ai);
     return os;
   }

Modified: trunk/src/Analyses/ALEPH_1991_S2435284.cc
==============================================================================
--- trunk/src/Analyses/ALEPH_1991_S2435284.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/ALEPH_1991_S2435284.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -8,7 +8,9 @@
 namespace Rivet {
 
 
-  ALEPH_1991_S2435284::ALEPH_1991_S2435284() { 
+  ALEPH_1991_S2435284::ALEPH_1991_S2435284() 
+    : Analysis("ALEPH_1991_S2435284")
+  {
     setBeams(ELECTRON, POSITRON); 
     const ChargedFinalState cfs;
     addProjection(cfs, "FS");

Modified: trunk/src/Analyses/ALEPH_1996_S3486095.cc
==============================================================================
--- trunk/src/Analyses/ALEPH_1996_S3486095.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/ALEPH_1996_S3486095.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -18,6 +18,7 @@
 
   // Constructor
   ALEPH_1996_S3486095::ALEPH_1996_S3486095() 
+    : Analysis("ALEPH_1996_S3486095")
   {
     setBeams(ELECTRON, POSITRON); 
     addProjection(Beam(), "Beams");

Modified: trunk/src/Analyses/CDF_1990_S2089246.cc
==============================================================================
--- trunk/src/Analyses/CDF_1990_S2089246.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/CDF_1990_S2089246.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -12,6 +12,7 @@
 
 
   CDF_1990_S2089246::CDF_1990_S2089246()
+    : Analysis("CDF_1990_S2089246")
   {
     setBeams(PROTON, ANTIPROTON);
     addProjection(ChargedFinalState(-3.5, 3.5), "FS");

Modified: trunk/src/Analyses/CDF_1994_S2952106.cc
==============================================================================
--- trunk/src/Analyses/CDF_1994_S2952106.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/CDF_1994_S2952106.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -11,7 +11,8 @@
 
 
   CDF_1994_S2952106::CDF_1994_S2952106()
-    : _pvzmax(600*mm), _leadJetPt(100*GeV), _3rdJetPt(10*GeV),
+    : Analysis("CDF_1994_S2952106"), 
+      _pvzmax(600*mm), _leadJetPt(100*GeV), _3rdJetPt(10*GeV),
       _etamax(0.7), _phimin(PI/18.0), _metsetmax(6.0*GeV)
   {
     setBeams(PROTON, ANTIPROTON);

Modified: trunk/src/Analyses/CDF_2000_S4155203.cc
==============================================================================
--- trunk/src/Analyses/CDF_2000_S4155203.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/CDF_2000_S4155203.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -10,7 +10,9 @@
 namespace Rivet {
 
 
-  CDF_2000_S4155203::CDF_2000_S4155203() { 
+  CDF_2000_S4155203::CDF_2000_S4155203() 
+    : Analysis("CDF_2000_S4155203")
+  {
     setBeams(PROTON, ANTIPROTON);
     ZFinder zfinder(FinalState(), ELECTRON, 66.0*GeV, 116.0*GeV, 0.2);
     addProjection(zfinder, "ZFinder");

Modified: trunk/src/Analyses/CDF_2001_S4751469.cc
==============================================================================
--- trunk/src/Analyses/CDF_2001_S4751469.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/CDF_2001_S4751469.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -17,12 +17,13 @@
 
   // Constructor
   CDF_2001_S4751469::CDF_2001_S4751469()
-    : _totalNumTrans2(0), _totalNumTrans5(0), _totalNumTrans30(0),
+    : Analysis("CDF_2001_S4751469"),
+      _totalNumTrans2(0), _totalNumTrans5(0), _totalNumTrans30(0),
       _sumWeightsPtLead2(0),_sumWeightsPtLead5(0), _sumWeightsPtLead30(0)
   {
     setBeams(PROTON, ANTIPROTON);
     const ChargedFinalState cfs(-1.0, 1.0, 0.5*GeV);
-    const LossyFinalState lfs(cfs, 0.08); 
+    const LossyFinalState lfs(cfs, 0.08);
     addProjection(lfs, "FS");
     addProjection(FastJets(lfs, FastJets::TRACKJET, 0.7), "TrackJet");
   }

Modified: trunk/src/Analyses/CDF_2002_S4796047.cc
==============================================================================
--- trunk/src/Analyses/CDF_2002_S4796047.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/CDF_2002_S4796047.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -10,6 +10,7 @@
 
 
   CDF_2002_S4796047::CDF_2002_S4796047()
+    : Analysis("CDF_2002_S4796047")
   { 
     setBeams(PROTON, ANTIPROTON);
     addProjection(Beam(), "Beams");

Modified: trunk/src/Analyses/CDF_2004_S5839831.cc
==============================================================================
--- trunk/src/Analyses/CDF_2004_S5839831.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/CDF_2004_S5839831.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -12,7 +12,9 @@
 namespace Rivet {
 
 
-  CDF_2004_S5839831::CDF_2004_S5839831() {
+  CDF_2004_S5839831::CDF_2004_S5839831() 
+    : Analysis("CDF_2004_S5839831") 
+  {
     setBeams(PROTON, ANTIPROTON);
     addProjection(Beam(), "Beam");
     const FinalState calofs(-1.2, 1.2);

Modified: trunk/src/Analyses/CDF_2005_S6217184.cc
==============================================================================
--- trunk/src/Analyses/CDF_2005_S6217184.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/CDF_2005_S6217184.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -12,6 +12,7 @@
 
   // Constructor
   CDF_2005_S6217184::CDF_2005_S6217184()
+    : Analysis("CDF_2005_S6217184")
   { 
     setBeams(PROTON, ANTIPROTON);
 

Modified: trunk/src/Analyses/CDF_2006_S6653332.cc
==============================================================================
--- trunk/src/Analyses/CDF_2006_S6653332.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/CDF_2006_S6653332.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -14,7 +14,8 @@
 
 
   CDF_2006_S6653332::CDF_2006_S6653332()  
-    : _Rjet(0.7), _JetPtCut(20.), _JetEtaCut(1.5),
+    : Analysis("CDF_2006_S6653332"),
+      _Rjet(0.7), _JetPtCut(20.), _JetEtaCut(1.5),
       _sumWeightsWithZ(0.0), _sumWeightsWithZJet(0.0)
   { 
     setBeams(PROTON, ANTIPROTON);

Modified: trunk/src/Analyses/CDF_2007_S7057202.cc
==============================================================================
--- trunk/src/Analyses/CDF_2007_S7057202.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/CDF_2007_S7057202.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -11,7 +11,8 @@
 
 
   CDF_2007_S7057202::CDF_2007_S7057202()
-    : _minY(0.1), _maxY(0.7), _jetMinPT(54.0*GeV)
+    : Analysis("CDF_2007_S7057202"),
+      _minY(0.1), _maxY(0.7), _jetMinPT(54.0*GeV)
   {
     setBeams(PROTON, ANTIPROTON);
     //setSqrtS(1960*GeV);

Modified: trunk/src/Analyses/CDF_2008_LEADINGJETS.cc
==============================================================================
--- trunk/src/Analyses/CDF_2008_LEADINGJETS.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/CDF_2008_LEADINGJETS.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -11,6 +11,7 @@
 
 
   CDF_2008_LEADINGJETS::CDF_2008_LEADINGJETS()
+    : Analysis("CDF_2008_LEADINGJETS")
   { 
     setBeams(PROTON, ANTIPROTON);
     

Modified: trunk/src/Analyses/CDF_2008_NOTE_9351.cc
==============================================================================
--- trunk/src/Analyses/CDF_2008_NOTE_9351.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/CDF_2008_NOTE_9351.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -10,6 +10,7 @@
 
 
   CDF_2008_NOTE_9351::CDF_2008_NOTE_9351()
+    : Analysis("CDF_2008_NOTE_9351")
   { 
     setBeams(PROTON, ANTIPROTON);
     const ChargedFinalState cfs(-1.0, 1.0, 0.5*GeV);

Modified: trunk/src/Analyses/CDF_2008_S7540469.cc
==============================================================================
--- trunk/src/Analyses/CDF_2008_S7540469.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/CDF_2008_S7540469.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -11,6 +11,7 @@
 
 
   CDF_2008_S7540469::CDF_2008_S7540469()
+    : Analysis("CDF_2008_S7540469")
   {
     setBeams(PROTON, ANTIPROTON);
     

Modified: trunk/src/Analyses/CDF_2008_S7541902.cc
==============================================================================
--- trunk/src/Analyses/CDF_2008_S7541902.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/CDF_2008_S7541902.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -20,7 +20,8 @@
 
   // Constructor
   CDF_2008_S7541902::CDF_2008_S7541902()
-    : _electronETCut(20.0*GeV), _electronETACut(1.1),
+    : Analysis("CDF_2008_S7541902"),    
+      _electronETCut(20.0*GeV), _electronETACut(1.1),
       _eTmissCut(30.0*GeV), _mTCut(20.0*GeV),
       _jetEtCutA(20.0*GeV),  _jetEtCutB(25.0*GeV), _jetETA(2.0),
       _xpoint(1960.)

Modified: trunk/src/Analyses/CDF_2008_S7782535.cc
==============================================================================
--- trunk/src/Analyses/CDF_2008_S7782535.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/CDF_2008_S7782535.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -12,7 +12,8 @@
 
 
   CDF_2008_S7782535::CDF_2008_S7782535()
-    : _Rjet(0.7) , _NpTbins(4)
+    : Analysis("CDF_2008_S7782535"),
+      _Rjet(0.7) , _NpTbins(4)
   {
     setBeams(PROTON, ANTIPROTON);
     

Modified: trunk/src/Analyses/CDF_2008_S7828950.cc
==============================================================================
--- trunk/src/Analyses/CDF_2008_S7828950.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/CDF_2008_S7828950.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -10,7 +10,8 @@
 
 
   CDF_2008_S7828950::CDF_2008_S7828950()
-    : _jetMinPT(62.0*GeV)
+    : Analysis("CDF_2008_S7828950"),
+      _jetMinPT(62.0*GeV)
   {
     setBeams(PROTON, ANTIPROTON);
     //setSqrtS(1960*GeV);

Modified: trunk/src/Analyses/CDF_2008_S8093652.cc
==============================================================================
--- trunk/src/Analyses/CDF_2008_S8093652.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/CDF_2008_S8093652.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -10,6 +10,7 @@
 
 
   CDF_2008_S8093652::CDF_2008_S8093652()
+    : Analysis("CDF_2008_S8093652")
   {
     setBeams(PROTON, ANTIPROTON);
     setNeedsCrossSection(true);

Modified: trunk/src/Analyses/CDF_2008_S8095620.cc
==============================================================================
--- trunk/src/Analyses/CDF_2008_S8095620.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/CDF_2008_S8095620.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -12,7 +12,9 @@
 
 
   CDF_2008_S8095620::CDF_2008_S8095620()
-    : _Rjet(0.7), _JetPtCut(20.), _JetEtaCut(1.5),  _sumWeightSelected(0.0)
+    : Analysis("CDF_2008_S8095620"), 
+      _Rjet(0.7), _JetPtCut(20.), _JetEtaCut(1.5),  
+      _sumWeightSelected(0.0)
   { 
     setBeams(PROTON, ANTIPROTON);
     

Modified: trunk/src/Analyses/CDF_2009_S8057893.cc
==============================================================================
--- trunk/src/Analyses/CDF_2009_S8057893.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/CDF_2009_S8057893.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -8,7 +8,9 @@
 namespace Rivet {
 
 
-  CDF_2009_S8057893::CDF_2009_S8057893() {
+  CDF_2009_S8057893::CDF_2009_S8057893() 
+    : Analysis("CDF_2009_S8057893")
+  {
     setBeams(PROTON, ANTIPROTON);
 
     const FinalState fsj(-4.0, 4.0, 0.0*GeV);

Modified: trunk/src/Analyses/CDF_2009_S8233977.cc
==============================================================================
--- trunk/src/Analyses/CDF_2009_S8233977.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/CDF_2009_S8233977.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -10,6 +10,7 @@
 
 
   CDF_2009_S8233977::CDF_2009_S8233977()
+    : Analysis("CDF_2009_S8233977")
   { 
     setBeams(PROTON, ANTIPROTON);
     const FinalState fs(-1.0, 1.0, 0.0*GeV);

Modified: trunk/src/Analyses/D0_2001_S4674421.cc
==============================================================================
--- trunk/src/Analyses/D0_2001_S4674421.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/D0_2001_S4674421.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -16,7 +16,9 @@
     //  - @c _mZmin = lower Z mass cut used in the publication analysis
     //  - @c _mZmax = upper Z mass cut used in the publication analysis
     D0_2001_S4674421::D0_2001_S4674421()
-      : _mwmz(0.8820), _brwenu(0.1073), _brzee(0.033632), _mZmin(75.*GeV), _mZmax(105.*GeV)
+      : Analysis("D0_2001_S4674421"),
+        _mwmz(0.8820), _brwenu(0.1073), _brzee(0.033632), 
+        _mZmin(75.*GeV), _mZmax(105.*GeV)
     { 
 
       setBeams(PROTON, ANTIPROTON);

Modified: trunk/src/Analyses/D0_2004_S5992206.cc
==============================================================================
--- trunk/src/Analyses/D0_2004_S5992206.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/D0_2004_S5992206.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -10,7 +10,9 @@
 
 
   // Constructor
-  D0_2004_S5992206::D0_2004_S5992206() {
+  D0_2004_S5992206::D0_2004_S5992206() 
+    : Analysis("D0_2004_S5992206")
+  {
     setBeams(PROTON, ANTIPROTON);
     const FinalState fs(-3.0, 3.0);
     addProjection(fs, "FS");

Modified: trunk/src/Analyses/D0_2006_S6438750.cc
==============================================================================
--- trunk/src/Analyses/D0_2006_S6438750.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/D0_2006_S6438750.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -10,6 +10,7 @@
 
 
   D0_2006_S6438750::D0_2006_S6438750()
+    : Analysis("D0_2006_S6438750")
   {
     setBeams(PROTON, ANTIPROTON);
     

Modified: trunk/src/Analyses/D0_2007_S7075677.cc
==============================================================================
--- trunk/src/Analyses/D0_2007_S7075677.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/D0_2007_S7075677.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -8,6 +8,7 @@
 
 
   D0_2007_S7075677::D0_2007_S7075677()
+    : Analysis("D0_2007_S7075677")  
   {
     // Run II Z rapidity
     setBeams(PROTON, ANTIPROTON);

Modified: trunk/src/Analyses/D0_2008_S6879055.cc
==============================================================================
--- trunk/src/Analyses/D0_2008_S6879055.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/D0_2008_S6879055.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -12,7 +12,9 @@
 namespace Rivet {
 
 
-  D0_2008_S6879055::D0_2008_S6879055() {
+  D0_2008_S6879055::D0_2008_S6879055() 
+    : Analysis("D0_2008_S6879055")
+  {
     setBeams(PROTON, ANTIPROTON);
 
     // Basic final state

Modified: trunk/src/Analyses/D0_2008_S7554427.cc
==============================================================================
--- trunk/src/Analyses/D0_2008_S7554427.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/D0_2008_S7554427.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -9,6 +9,7 @@
 
 
   D0_2008_S7554427::D0_2008_S7554427()
+    : Analysis("D0_2008_S7554427")
   {
     // Run II Z pT
     setBeams(PROTON, ANTIPROTON);

Modified: trunk/src/Analyses/D0_2008_S7662670.cc
==============================================================================
--- trunk/src/Analyses/D0_2008_S7662670.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/D0_2008_S7662670.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -11,6 +11,7 @@
 
 
   D0_2008_S7662670::D0_2008_S7662670()
+    : Analysis("D0_2008_S7662670")
   {
     setBeams(PROTON, ANTIPROTON);
     setNeedsCrossSection(true);

Modified: trunk/src/Analyses/D0_2008_S7719523.cc
==============================================================================
--- trunk/src/Analyses/D0_2008_S7719523.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/D0_2008_S7719523.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -11,6 +11,7 @@
 
 
   D0_2008_S7719523::D0_2008_S7719523()
+    : Analysis("D0_2008_S7719523")
   {
     setBeams(PROTON, ANTIPROTON);
     

Modified: trunk/src/Analyses/D0_2008_S7837160.cc
==============================================================================
--- trunk/src/Analyses/D0_2008_S7837160.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/D0_2008_S7837160.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -11,6 +11,7 @@
 
 
   D0_2008_S7837160::D0_2008_S7837160()
+    : Analysis("D0_2008_S7837160")
   {
     // Run II W charge asymmetry
     setBeams(PROTON, ANTIPROTON);

Modified: trunk/src/Analyses/D0_2008_S7863608.cc
==============================================================================
--- trunk/src/Analyses/D0_2008_S7863608.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/D0_2008_S7863608.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -9,6 +9,7 @@
 
 
   D0_2008_S7863608::D0_2008_S7863608()
+    : Analysis("D0_2008_S7863608")
   {
     setBeams(PROTON, ANTIPROTON);
     

Modified: trunk/src/Analyses/D0_2009_S8202443.cc
==============================================================================
--- trunk/src/Analyses/D0_2009_S8202443.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/D0_2009_S8202443.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -9,7 +9,8 @@
 namespace Rivet {
 
 
-  D0_2009_S8202443::D0_2009_S8202443() :
+  D0_2009_S8202443::D0_2009_S8202443()
+    : Analysis("D0_2009_S8202443"),
       _sum_of_weights(0.0), _sum_of_weights_constrained(0.0)
   {
     setBeams(PROTON, ANTIPROTON);

Modified: trunk/src/Analyses/D0_2009_S8320160.cc
==============================================================================
--- trunk/src/Analyses/D0_2009_S8320160.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/D0_2009_S8320160.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -10,6 +10,7 @@
 
 
   D0_2009_S8320160::D0_2009_S8320160()
+    : Analysis("D0_2009_S8320160")
   {
     setBeams(PROTON, ANTIPROTON);
     

Modified: trunk/src/Analyses/DELPHI_1995_S3137023.cc
==============================================================================
--- trunk/src/Analyses/DELPHI_1995_S3137023.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/DELPHI_1995_S3137023.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -13,6 +13,7 @@
 
   // Constructor
   DELPHI_1995_S3137023::DELPHI_1995_S3137023() 
+    : Analysis("DELPHI_1995_S3137023")
   {
     setBeams(ELECTRON, POSITRON); 
     addProjection(Beam(), "Beams");

Modified: trunk/src/Analyses/DELPHI_1996_S3430090.cc
==============================================================================
--- trunk/src/Analyses/DELPHI_1996_S3430090.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/DELPHI_1996_S3430090.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -17,6 +17,7 @@
 
 
   DELPHI_1996_S3430090::DELPHI_1996_S3430090() 
+    : Analysis("DELPHI_1996_S3430090")
   {
     setBeams(ELECTRON, POSITRON); 
     addProjection(Beam(), "Beams");

Modified: trunk/src/Analyses/DELPHI_2002_069_CONF_603.cc
==============================================================================
--- trunk/src/Analyses/DELPHI_2002_069_CONF_603.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/DELPHI_2002_069_CONF_603.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -18,6 +18,7 @@
 
   // Constructor
   DELPHI_2002_069_CONF_603::DELPHI_2002_069_CONF_603() 
+    : Analysis("DELPHI_2002_069_CONF_603")
   {
     setBeams(ELECTRON, POSITRON); 
     addProjection(Beam(), "Beams");

Modified: trunk/src/Analyses/DELPHI_2003_WUD_03_11.cc
==============================================================================
--- trunk/src/Analyses/DELPHI_2003_WUD_03_11.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/DELPHI_2003_WUD_03_11.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -12,6 +12,7 @@
 
   // Constructor
   DELPHI_2003_WUD_03_11::DELPHI_2003_WUD_03_11() 
+    : Analysis("DELPHI_2003_WUD_03_11")
   {
     const ChargedFinalState cfs;
     addProjection(cfs, "FS");

Modified: trunk/src/Analyses/ExampleAnalysis.cc
==============================================================================
--- trunk/src/Analyses/ExampleAnalysis.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/ExampleAnalysis.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -13,7 +13,9 @@
 
 
   // Constructor
-  ExampleAnalysis::ExampleAnalysis() {
+  ExampleAnalysis::ExampleAnalysis()
+    : Analysis("EXAMPLE")
+  {
     const FinalState cnfs(-4, 4, 2*GeV);
     const ChargedFinalState cfs(-4, 4, 2*GeV);
     addProjection(cnfs, "FS");

Modified: trunk/src/Analyses/ExampleTree.cc
==============================================================================
--- trunk/src/Analyses/ExampleTree.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/ExampleTree.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -11,7 +11,9 @@
   #ifndef HAVE_ROOT
   
 
-  ExampleTree::ExampleTree() { }
+  ExampleTree::ExampleTree() 
+    : Analysis("EXAMPLETREE") { }
+
   void ExampleTree::init() {
     getLog() << Log::WARN << "Rivet was not compiled against ROOT. ExampleTree will do nothing." << endl;
   }
@@ -22,7 +24,9 @@
   #else
 
 
-  ExampleTree::ExampleTree() {
+  ExampleTree::ExampleTree() 
+    : Analysis("EXAMPLETREE")
+  {
     const FinalState fs(-4.0, 4.0, 0.0*GeV);
     addProjection(fs, "FS");
     addProjection(ChargedLeptons(fs), "ChLeptons");

Modified: trunk/src/Analyses/H1_1994_S2919893.cc
==============================================================================
--- trunk/src/Analyses/H1_1994_S2919893.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/H1_1994_S2919893.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -11,7 +11,9 @@
 
 
   // Constructor
-  H1_1994_S2919893::H1_1994_S2919893() {
+  H1_1994_S2919893::H1_1994_S2919893() 
+    : Analysis("H1_1994_S2919893")
+  {
     setBeams(ELECTRON, PROTON);
     addProjection(DISLepton(), "Lepton");
     addProjection(DISKinematics(), "Kinematics");

Modified: trunk/src/Analyses/H1_1995_S3167097.cc
==============================================================================
--- trunk/src/Analyses/H1_1995_S3167097.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/H1_1995_S3167097.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -12,7 +12,9 @@
   const double H1_1995_S3167097::_xmax = 6.0;
 
 
-  H1_1995_S3167097::H1_1995_S3167097() { 
+  H1_1995_S3167097::H1_1995_S3167097() 
+    : Analysis("H1_1995_S3167097")
+  { 
     setBeams(ELECTRON, PROTON);
     const DISKinematics& diskin = addProjection(DISKinematics(), "Kinematics");
     const FinalStateHCM& fshcm = addProjection(FinalStateHCM(diskin), "FS");

Modified: trunk/src/Analyses/H1_2000_S4129130.cc
==============================================================================
--- trunk/src/Analyses/H1_2000_S4129130.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/H1_2000_S4129130.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -11,7 +11,9 @@
 
 
   // Constructor
-  H1_2000_S4129130::H1_2000_S4129130() {
+  H1_2000_S4129130::H1_2000_S4129130() 
+    : Analysis("H1_2000_S4129130")
+  {
     setBeams(ELECTRON, PROTON);
     addProjection(DISLepton(), "Lepton");
     addProjection(DISKinematics(), "Kinematics");

Modified: trunk/src/Analyses/JADE_OPAL_2000_S4300807.cc
==============================================================================
--- trunk/src/Analyses/JADE_OPAL_2000_S4300807.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/JADE_OPAL_2000_S4300807.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -11,9 +11,10 @@
 
   // Constructor
   JADE_OPAL_2000_S4300807::JADE_OPAL_2000_S4300807(double sqrts, int nr_R_Jade,
-						   int nr_R_Durham, int nr_y_Durham) :
-    _sqrts(sqrts), _nr_R_Jade(nr_R_Jade),
-    _nr_R_Durham(nr_R_Durham), _nr_y_Durham(nr_y_Durham)
+                                                   int nr_R_Durham, int nr_y_Durham)
+    : Analysis("JADE_OPAL_2000_S4300807"),
+      _sqrts(sqrts), _nr_R_Jade(nr_R_Jade),
+      _nr_R_Durham(nr_R_Durham), _nr_y_Durham(nr_y_Durham)
   {
     setBeams(ELECTRON, POSITRON); 
     addProjection(Beam(), "Beams");

Modified: trunk/src/Analyses/MC_LHC_LEADINGJETS.cc
==============================================================================
--- trunk/src/Analyses/MC_LHC_LEADINGJETS.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/MC_LHC_LEADINGJETS.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -12,6 +12,7 @@
 
 
   MC_LHC_LEADINGJETS::MC_LHC_LEADINGJETS()
+    : Analysis("MC_LHC_LEADINGJETS")
   { 
     setBeams(PROTON, PROTON);
     

Modified: trunk/src/Analyses/MC_TVT1960_ZJETS.cc
==============================================================================
--- trunk/src/Analyses/MC_TVT1960_ZJETS.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/MC_TVT1960_ZJETS.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -9,6 +9,7 @@
 
 
   MC_TVT1960_ZJETS::MC_TVT1960_ZJETS()
+    : Analysis("MC_TVT1960_ZJETS")
   {
     setBeams(PROTON, ANTIPROTON);
     

Modified: trunk/src/Analyses/OPAL_1998_S3780481.cc
==============================================================================
--- trunk/src/Analyses/OPAL_1998_S3780481.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/OPAL_1998_S3780481.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -13,6 +13,7 @@
 
   // Constructor
   OPAL_1998_S3780481::OPAL_1998_S3780481() 
+    : Analysis("OPAL_1998_S3780481")
   {
     setBeams(ELECTRON, POSITRON); 
     addProjection(Beam(), "Beams");

Modified: trunk/src/Analyses/PDG_Hadron_Multiplicities.cc
==============================================================================
--- trunk/src/Analyses/PDG_Hadron_Multiplicities.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/PDG_Hadron_Multiplicities.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -13,6 +13,7 @@
 
   // Constructor
   PDG_HADRON_MULTIPLICITIES::PDG_HADRON_MULTIPLICITIES() 
+    : Analysis("PDG_HADRON_MULTIPLICITIES")
   {
     setBeams(ELECTRON, POSITRON); 
     addProjection(Beam(), "Beams");

Modified: trunk/src/Analyses/PDG_Hadron_Multiplicities_Ratios.cc
==============================================================================
--- trunk/src/Analyses/PDG_Hadron_Multiplicities_Ratios.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/PDG_Hadron_Multiplicities_Ratios.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -13,6 +13,7 @@
 
   // Constructor.
   PDG_HADRON_MULTIPLICITIES_RATIOS::PDG_HADRON_MULTIPLICITIES_RATIOS() 
+    : Analysis("PDG_HADRON_MULTIPLICITIES_RATIOS")
   {
     setBeams(ELECTRON, POSITRON); 
     addProjection(Beam(), "Beams");

Modified: trunk/src/Analyses/STAR_2006_S6870392.cc
==============================================================================
--- trunk/src/Analyses/STAR_2006_S6870392.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/STAR_2006_S6870392.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -9,6 +9,7 @@
 
 
   STAR_2006_S6870392::STAR_2006_S6870392()
+    : Analysis("STAR_2006_S6870392")
   {
     setBeams(PROTON, PROTON);
 

Modified: trunk/src/Analyses/STAR_2008_S7993412.cc
==============================================================================
--- trunk/src/Analyses/STAR_2008_S7993412.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/STAR_2008_S7993412.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -8,6 +8,7 @@
 
 
   STAR_2008_S7993412::STAR_2008_S7993412()
+    : Analysis("STAR_2008_S7993412")
   {
     setBeams(PROTON, PROTON);
 

Modified: trunk/src/Analyses/STAR_2009_UE_HELEN.cc
==============================================================================
--- trunk/src/Analyses/STAR_2009_UE_HELEN.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/STAR_2009_UE_HELEN.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -11,6 +11,7 @@
 
 
   STAR_2009_UE_HELEN::STAR_2009_UE_HELEN()
+    : Analysis("STAR_2009_UE_HELEN")  
   { 
     setBeams(PROTON, ANTIPROTON);
     

Modified: trunk/src/Analyses/ZEUS_2001_S4815815.cc
==============================================================================
--- trunk/src/Analyses/ZEUS_2001_S4815815.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analyses/ZEUS_2001_S4815815.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -8,16 +8,18 @@
 
 
   // Constructor
-  ZEUS_2001_S4815815::ZEUS_2001_S4815815() { 
-      setBeams(POSITRON, PROTON);
-      FinalState fs;
-      addProjection(fs, "FS");
-      /// @todo This is the *wrong* jet def: correct it!
-      getLog() << Log::WARN << "This analysis uses the wrong jet definition: the " 
-               << "paper just says 'a cone algorithm was applied to the CAL cells and jets "
-               << "were reconstructed using the energies and positions of these cells'" << endl;
-      addProjection(FastJets(fs, FastJets::KT, 0.7), "Jets");
-    }
+  ZEUS_2001_S4815815::ZEUS_2001_S4815815()
+    : Analysis("ZEUS_2001_S4815815") 
+  { 
+    setBeams(POSITRON, PROTON);
+    FinalState fs;
+    addProjection(fs, "FS");
+    /// @todo This is the *wrong* jet def: correct it!
+    getLog() << Log::WARN << "This analysis uses the wrong jet definition: the " 
+             << "paper just says 'a cone algorithm was applied to the CAL cells and jets "
+             << "were reconstructed using the energies and positions of these cells'" << endl;
+    addProjection(FastJets(fs, FastJets::KT, 0.7), "Jets");
+  }
 
 
   // Book histograms

Modified: trunk/src/Analysis.cc
==============================================================================
--- trunk/src/Analysis.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/Analysis.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -10,13 +10,14 @@
 namespace Rivet {
 
 
-  Analysis::Analysis() 
-    : _analysishandler(0),
+  Analysis::Analysis(const string& name) 
+    : _gotCrossSection(false),
+      _needsCrossSection(false),
+      _analysishandler(0),
       _madeHistoDir(false)
   {
-    _gotCrossSection = false;
+    _info.reset( AnalysisInfo::make(name) );
     setBeams(ANY, ANY);
-    setNeedsCrossSection(false);
   }
   
 

Modified: trunk/src/AnalysisInfo.cc
==============================================================================
--- trunk/src/AnalysisInfo.cc	Thu Jul  9 17:54:15 2009	(r1671)
+++ trunk/src/AnalysisInfo.cc	Thu Jul  9 17:55:34 2009	(r1672)
@@ -1,47 +1,107 @@
+#include "Rivet/Rivet.hh"
 #include "Rivet/AnalysisInfo.hh"
+#include "Rivet/Tools/Utils.hh"
+#include "Rivet/Tools/Logging.hh"
 #include "yaml.h"
+#include <iostream>
+#include <fstream>
+#include <unistd.h>
 
 namespace Rivet {
 
 
   /// Ideas: 
-  ///  * store as pointer on Analysis: populate only when requested
-  ///  * search RIVET_DATA_PATH for <name>.info.yaml
-  ///  * AnalysisInfo::make(name) returns (possibly null) pointer
-  ///    - require smart pointer to delete automatically when Analysis 
-  ///      goes out of scope
+  ///  * search RIVET_DATA_PATH etc. for <name>.info.yaml
+  ///  * how to determine the name?
+  ///  * only populate pointer on Analysis when requested
+  ///  * use smart pointer: deletes automatically when Analysis 
+  ///    goes out of scope
 
 
   /// Static factory method
-  const AnalysisInfo* AnalysisInfo::make(const std::string& name) {
-    /// @todo Search metadata path and read first matching file
-    //if (notfound) return 0;
-
-    /// @todo Get document
+  AnalysisInfo* AnalysisInfo::make(const std::string& name) {
+    // Search metadata path and read first matching file
+    string datapath = getRivetDataPath() + "/" + name + ".info.yaml";
+    Log::getLog("Rivet.Analysis") 
+      << Log::DEBUG << "Reading analysis data from " << datapath << endl;
+    if (access(datapath.c_str(), R_OK) != 0) return 0;
+
+    // Read data from YAML document
+    std::ifstream io(datapath.c_str());
+    YAML::Parser parser(io);
+    YAML::Node doc;
+    try {
+      parser.GetNextDocument(doc);
+      //cout << doc << endl;
+    } catch (const YAML::ParserException& ex) {
+      Log::getLog("Rivet.Analysis") 
+        << Log::ERROR << "Parse error when reading analysis data from " 
+        << datapath << endl;
+      return 0;
+    }
 
     AnalysisInfo* ai = new AnalysisInfo();
-    ai->_name = "NAME";
-    ai->_spiresId = "12345678";
-    ai->_authors += "foo <bar at baz.tld";
-    ai->_summary = "blah";
-    // ai->_description;
-    // ai->_runInfo;
-    // ai->_experiment;
-    // ai->_collider;
-    // ai->_beams;
-    ai->_year = "2009";
-    //ai->_references;
-    ai->_status = "VALIDATED";
-    ai->_needsCrossSection = false;
-
-    /// @todo Push values into read-only private members
+    for (YAML::Iterator it = doc.begin(); it != doc.end(); ++it) {
+      string key;
+      it.first() >> key;
+      Log::getLog("Rivet.Analysis") 
+        << Log::TRACE << key << ": " << it.second() << endl;
+      try {
+        if (key == "Name") {
+          it.second() >> ai->_name;
+        } else if (key == "Summary") {
+          it.second() >> ai->_summary;
+        } else if (key == "Experiment") {
+          it.second() >> ai->_experiment;
+        } else if (key == "Beams") {
+          // it.second() >> ai->_beams;
+        } else if (key == "NeedCrossSection") {
+          // it.second() >> ai->_needsCrossSection;
+        } else if (key == "Collider") {
+          it.second() >> ai->_collider;
+        } else if (key == "SpiresID") {
+          it.second() >> ai->_spiresId;
+        } else if (key == "Status") {
+          it.second() >> ai->_status;
+        } else if (key == "RunInfo") {
+          it.second() >> ai->_runInfo;
+        } else if (key == "Description") {
+          it.second() >> ai->_description;
+        } else if (key == "Year") {
+          it.second() >> ai->_year;
+        } else if (key == "Authors") {
+          const YAML::Node& authors = it.second();
+          for (YAML::Iterator a = authors.begin(); a != authors.end(); ++a) {
+            string astr;
+            *a >> astr;
+            ai->_authors += astr;
+          }
+        } else if (key == "References") {
+          const YAML::Node& refs = it.second();
+          for (YAML::Iterator r = refs.begin(); r != refs.end(); ++r) {
+            string rstr;
+            *r >> rstr;
+            ai->_references += rstr;
+          }
+        }
+      } catch (const YAML::RepresentationException& ex) {
+        Log::getLog("Rivet.Analysis")
+          << Log::WARN << "Type error when reading analysis data '"
+          << key << "' from " << datapath << endl;
+      }
+    }  
+    //cout << *ai << endl;
     return ai;
   }
 
 
   string toString(const AnalysisInfo& ai) {
-    /// @todo Fill in the gap...
-    return "TODO";
+    stringstream ss;
+    ss << ai.name();
+    ss << " - " << ai.summary();
+    ss << " (" << ai.status() << ")";
+    return ss.str();
   }
 
+
 }


More information about the Rivet-svn mailing list