[Rivet-svn] r2169 - in trunk: . data/anainfo src/Analyses

blackhole at projects.hepforge.org blackhole at projects.hepforge.org
Thu Dec 10 17:12:40 GMT 2009


Author: buckley
Date: Thu Dec 10 17:12:40 2009
New Revision: 2169

Log:
More min bias analysis tweaks, and moving all unvalidated/unfinished analyses to the RivetUnvalidated.so plugin library. This now has to be explicitly enabled by using the --enable-unvalidated configure switch, so your analysis won't garner you fame, fortune and attention until you've finished and checked it. Now that's what I call incentivising ;) You'll probably need to do an uninstall and clean rebuild of the src/Analyses directory.

Modified:
   trunk/ChangeLog
   trunk/configure.ac
   trunk/data/anainfo/CDF_1994_S2952106.info
   trunk/data/anainfo/CDF_2009_S8233977.info
   trunk/data/anainfo/D0_1996_S3214044.info
   trunk/data/anainfo/D0_1996_S3324664.info
   trunk/data/anainfo/SFM_1984_S1178091.info
   trunk/data/anainfo/UA5_1988_S1867512.info
   trunk/src/Analyses/E735_1998_S3905616.cc
   trunk/src/Analyses/Makefile.am
   trunk/src/Analyses/SFM_1984_S1178091.cc
   trunk/src/Analyses/UA5_1988_S1867512.cc

Modified: trunk/ChangeLog
==============================================================================
--- trunk/ChangeLog	Thu Dec 10 16:41:31 2009	(r2168)
+++ trunk/ChangeLog	Thu Dec 10 17:12:40 2009	(r2169)
@@ -1,7 +1,16 @@
+2009-12-10  Andy Buckley  <andy at insectnation.org>
+
+	* Creating RivetUnvalidated.so plugin library for unvalidated
+	analyses. Unvalidated analyses now need to be explicitly enabled
+	with a --enable-unvalidated flag on the configure script.
+
+	* Various min bias analyses updated and validated.
+
 2009-12-10  Hendrik Hoeth <hendrik.hoeth at cern.ch>
 
 	* propagate SPECIAL and HISTOGRAM sections from .plot files
 	through compare-histos
+
 	* STAR_2006_S6860818: <pT> vs particle mass, validate analysis
 
 2009-12-04  Andy Buckley  <andy at insectnation.org>

Modified: trunk/configure.ac
==============================================================================
--- trunk/configure.ac	Thu Dec 10 16:41:31 2009	(r2168)
+++ trunk/configure.ac	Thu Dec 10 17:12:40 2009	(r2169)
@@ -159,6 +159,18 @@
 AM_CONDITIONAL(ENABLE_ANALYSES, [test x$enable_analyses = xyes])
 
 
+## Disable build/install of unvalidated analyses
+AC_ARG_ENABLE([unvalidated],
+  [AC_HELP_STRING(--enable-unvalidated, [don't try to build or install standard analyses])],
+  [], [enable_unvalidated=no])
+if test x$enable_unvalidated = xyes; then
+   AC_MSG_WARN([Building unvalidated Rivet analyses, by request])
+else
+   AC_MSG_NOTICE([Not building unvalidated Rivet analyses])
+fi
+AM_CONDITIONAL(ENABLE_UNVALIDATED, [test x$enable_unvalidated = xyes])
+
+
 ## Build LaTeX docs if possible...
 AC_PATH_PROG(PDFLATEX, pdflatex)
 AM_CONDITIONAL(WITH_PDFLATEX, [test x$PDFLATEX != x])

Modified: trunk/data/anainfo/CDF_1994_S2952106.info
==============================================================================
--- trunk/data/anainfo/CDF_1994_S2952106.info	Thu Dec 10 16:41:31 2009	(r2168)
+++ trunk/data/anainfo/CDF_1994_S2952106.info	Thu Dec 10 17:12:40 2009	(r2169)
@@ -4,7 +4,7 @@
 Experiment: CDF
 Collider: Tevatron Run 1
 SpiresID: 2952106
-Status: NOT FUNCTIONAL
+Status: UNVALIDATED - not functional
 Authors:
  - Lars Sonnenschein <Lars.Sonnenschein at cern.ch>
 References:

Modified: trunk/data/anainfo/CDF_2009_S8233977.info
==============================================================================
--- trunk/data/anainfo/CDF_2009_S8233977.info	Thu Dec 10 16:41:31 2009	(r2168)
+++ trunk/data/anainfo/CDF_2009_S8233977.info	Thu Dec 10 17:12:40 2009	(r2169)
@@ -6,8 +6,8 @@
 SpiresID: 8233977
 Status: VALIDATED
 Authors:
- - Niccolo' Moggi <niccolo.moggi at bo.infn.it>
  - Hendrik Hoeth <hendrik.hoeth at cern.ch>
+ - Niccolo' Moggi <niccolo.moggi at bo.infn.it>
 References:
  - Phys.Rev.D79:112005,2009
  - doi:10.1103/PhysRevD.79.112005

Modified: trunk/data/anainfo/D0_1996_S3214044.info
==============================================================================
--- trunk/data/anainfo/D0_1996_S3214044.info	Thu Dec 10 16:41:31 2009	(r2168)
+++ trunk/data/anainfo/D0_1996_S3214044.info	Thu Dec 10 17:12:40 2009	(r2169)
@@ -4,7 +4,7 @@
 Experiment: D0
 Collider: Tevatron Run 1
 SpiresID: 3214044
-Status: NOT FINISHED (wrong jet algorithm!)
+Status: UNVALIDATED - currently wrong jet algorithm!
 Authors:
  - Frank Siegert <frank.siegert at durham.ac.uk>
 References:

Modified: trunk/data/anainfo/D0_1996_S3324664.info
==============================================================================
--- trunk/data/anainfo/D0_1996_S3324664.info	Thu Dec 10 16:41:31 2009	(r2168)
+++ trunk/data/anainfo/D0_1996_S3324664.info	Thu Dec 10 17:12:40 2009	(r2169)
@@ -1,10 +1,10 @@
 Name: D0_1996_S3324664
 Year: 1996
-Summary: Azimuthal Decorrelation of Jets Widely Separated in Rapidity
+Summary: Azimuthal decorrelation of jets widely separated in rapidity
 Experiment: D0
 Collider: Tevatron Run 1
 SpiresID: 3324664
-Status: NOT FINISHED (wrong jet algorithm)
+Status: UNVALIDATED - currently wrong jet algorithm!
 Authors:
  - Frank Siegert <frank.siegert at durham.ac.uk>
 References:

Modified: trunk/data/anainfo/SFM_1984_S1178091.info
==============================================================================
--- trunk/data/anainfo/SFM_1984_S1178091.info	Thu Dec 10 16:41:31 2009	(r2168)
+++ trunk/data/anainfo/SFM_1984_S1178091.info	Thu Dec 10 17:12:40 2009	(r2169)
@@ -1,20 +1,22 @@
 Name: SFM_1984_S1178091
 Year: 1984
-Summary: Charged multiplicity distribution in pp interactions at CERN ISR energies 
+Summary: Charged multiplicity distribution in pp interactions at CERN ISR energies
 Experiment: SFM
 Collider: CERN ISR
 SpiresID: 1178091
 Status: UNVALIDATED
 Authors:
  - Holger Schulz <holger.schulz at physik.hu-berlin.de>
+ - Andy Buckley <andy.buckley at cern.ch>
 References:
  - Phys.Rev.D30:528,1984  
 RunInfo:
   QCD events, double-diffractive events should be turned on as well.
 NumEvents: 1000000
-PtCuts: 
+PtCuts: [0]
+Energies: [30.4, 44.5, 52.2, 62.2]
 Description:
-  Charged multiplicities are measured at sqrt(s) = 30.4, 44.5, 52.2 ad 62.2 GeV
-  using a minimum-bias trigger. The data is sub-divided into inleastic as well
-  as non-single-diffractive events. However, the implementation of the 
-  diffractive events will require some work.
+  Charged multiplicities are measured at sqrt(s) = 30.4, 44.5, 52.2 
+  and 62.2 GeV using a minimum-bias trigger. The data is sub-divided 
+  into inleastic as well as non-single-diffractive events. However, 
+  the implementation of the diffractive events will require some work.

Modified: trunk/data/anainfo/UA5_1988_S1867512.info
==============================================================================
--- trunk/data/anainfo/UA5_1988_S1867512.info	Thu Dec 10 16:41:31 2009	(r2168)
+++ trunk/data/anainfo/UA5_1988_S1867512.info	Thu Dec 10 17:12:40 2009	(r2169)
@@ -10,10 +10,11 @@
 References:
  - Z.Phys.C37:191-213,1988 
 RunInfo:
-  "ppbar events: non-single diffractive events need to be switched on. The trigger 
-  implementation is the same as in UA5_1989_S1926373."
-NumEvents: 1000000
+  ppbar events. Non-single diffractive events need to be switched on.
+  The trigger implementation is the same as in UA5_1989_S1926373.
+NumEvents: 100000
 PtCuts: [0]
+Energies: [200, 546, 900]
 Description:
   Data on two-particle pseudorapidity and multiplicity correlations 
   of charged particles for non single-diffractive $$p\bar p - collisions$$ at 

Modified: trunk/src/Analyses/E735_1998_S3905616.cc
==============================================================================
--- trunk/src/Analyses/E735_1998_S3905616.cc	Thu Dec 10 16:41:31 2009	(r2168)
+++ trunk/src/Analyses/E735_1998_S3905616.cc	Thu Dec 10 17:12:40 2009	(r2169)
@@ -4,6 +4,9 @@
 #include "Rivet/Tools/Logging.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 
+#include "Rivet/Projections/TriggerCDFRun0Run1.hh"
+#include "Rivet/Projections/TriggerUA5.hh"
+
 namespace Rivet {
 
 
@@ -13,6 +16,7 @@
     /// Constructor
     E735_1998_S3905616() : Analysis("E735_1998_S3905616") {
       setBeams(PROTON, ANTIPROTON);
+      _sumWTrig = 0;
     }
  
 
@@ -20,8 +24,10 @@
     //@{
  
     void init() {
-      // Projection
-      // const ChargedFinalState cfs();
+      // Projections
+      /// @todo E735 trigger?
+      //addProjection(TriggerCDFRun0Run1(), "Trigger");
+      addProjection(TriggerUA5(), "Trigger");
       addProjection(ChargedFinalState(), "FS");
 
       // Histo
@@ -30,15 +36,20 @@
 
 
     void analyze(const Event& event) {
+      //const bool trigger = applyProjection<TriggerCDFRun0Run1>(event, "Trigger").minBiasDecision();
+      const bool trigger = applyProjection<TriggerUA5>(event, "Trigger").nsdDecision();
+      if (!trigger) vetoEvent;
+      const double weight = event.weight();
+      _sumWTrig += weight;
+
       const ChargedFinalState& fs = applyProjection<ChargedFinalState>(event, "FS");
       const size_t numParticles = fs.particles().size();
-      const double weight = event.weight();
       _hist_multiplicity->fill(numParticles, weight);
     }
  
  
     void finalize() {
-      normalize(_hist_multiplicity);
+      scale(_hist_multiplicity, 1/_sumWTrig);
     }
  
     //@}
@@ -46,9 +57,14 @@
 
   private:
 
+    /// @name Weight counter
+    //@{
+    double _sumWTrig;
+    //@}
+
     /// @name Histograms
     //@{
-    AIDA::IHistogram1D *_hist_multiplicity;
+    AIDA::IHistogram1D* _hist_multiplicity;
     //@}
  
   };

Modified: trunk/src/Analyses/Makefile.am
==============================================================================
--- trunk/src/Analyses/Makefile.am	Thu Dec 10 16:41:31 2009	(r2168)
+++ trunk/src/Analyses/Makefile.am	Thu Dec 10 17:12:40 2009	(r2169)
@@ -4,40 +4,58 @@
 lib_LTLIBRARIES =
 
 
-lib_LTLIBRARIES += RivetExampleAnalyses.la
-RivetExampleAnalyses_la_SOURCES = \
-    ExampleAnalysis.cc
+## Unvalidated analyses: add new standard analyses here, and only
+## move them into the collider-specific standard plugin libraries
+## once they have been finished and checked. The --enable-unvalidated
+## flag is needed to install the RivetUnvalidated library.
+if ENABLE_UNVALIDATED
+lib_LTLIBRARIES += RivetUnvalidated.la
+RivetUnvalidated_la_SOURCES = \
+    CDF_1996_S3108457.cc \
+    CDF_1996_S3349578.cc \
+    CDF_1996_S3418421.cc \
+    CDF_2000_S4266730.cc \
+    CDF_2001_S4517016.cc \
+    CDF_2001_S4563131.cc \
+    CDF_1994_S2952106.cc \
+    CDF_2006_S6653332.cc \
+    CDF_2007_S7057202.cc \
+    CDF_2008_S7541902.cc \
+    CDF_2008_S7782535.cc \
+    CDF_2008_S8095620.cc \
+    D0_1996_S3214044.cc \
+    D0_1996_S3324664.cc \
+    DELPHI_2003_WUD_03_11.cc \
+    E735_1998_S3905616.cc \
+    H1_1995_S3167097.cc \
+    MC_LHC_DIJET.cc \
+    MC_LHC_PHOTONJETUE.cc \
+    MC_LHC_TTBAR.cc \
+    SFM_1984_S1178091.cc \
+    STAR_2008_S7993412.cc \
+    UA1_1990_S2044935.cc \
+    UA5_1988_S1867512.cc \
+    ZEUS_2001_S4815815.cc
+endif
 
 
 lib_LTLIBRARIES += RivetCDFAnalyses.la
 RivetCDFAnalyses_la_SOURCES = \
     CDF_1988_S1865951.cc \
     CDF_1990_S2089246.cc \
-    CDF_1994_S2952106.cc \
-    CDF_1996_S3108457.cc \
-    CDF_1996_S3349578.cc \
-    CDF_1996_S3418421.cc \
     CDF_1998_S3618439.cc \
     CDF_2000_S4155203.cc \
-    CDF_2000_S4266730.cc \
-    CDF_2001_S4517016.cc \
-    CDF_2001_S4563131.cc \
     CDF_2001_S4751469.cc \
     CDF_2002_S4796047.cc \
     CDF_2004_S5839831.cc \
     CDF_2005_S6080774.cc \
     CDF_2005_S6217184.cc \
     CDF_2006_S6450792.cc \
-    CDF_2006_S6653332.cc \
-    CDF_2007_S7057202.cc \
-    CDF_2008_S7541902.cc \
-    CDF_2008_NOTE_9351.cc \
     CDF_2008_LEADINGJETS.cc \
+    CDF_2008_NOTE_9351.cc \
     CDF_2008_S7540469.cc \
-    CDF_2008_S7782535.cc \
     CDF_2008_S7828950.cc \
     CDF_2008_S8093652.cc \
-    CDF_2008_S8095620.cc \
     CDF_2009_S8233977.cc \
     CDF_2009_S8383952.cc \
     CDF_2009_S8436959.cc
@@ -45,8 +63,6 @@
 
 lib_LTLIBRARIES += RivetD0Analyses.la
 RivetD0Analyses_la_SOURCES = \
-    D0_1996_S3214044.cc \
-    D0_1996_S3324664.cc \
     D0_2001_S4674421.cc \
     D0_2004_S5992206.cc \
     D0_2006_S6438750.cc \
@@ -65,9 +81,7 @@
 lib_LTLIBRARIES += RivetHERAAnalyses.la
 RivetHERAAnalyses_la_SOURCES = \
     H1_1994_S2919893.cc \
-    H1_1995_S3167097.cc \
-    H1_2000_S4129130.cc \
-    ZEUS_2001_S4815815.cc
+    H1_2000_S4129130.cc
 
 
 lib_LTLIBRARIES += RivetLEPAnalyses.la
@@ -87,16 +101,13 @@
     STAR_2006_S6500200.cc \
     STAR_2006_S6860818.cc \
     STAR_2006_S6870392.cc \
-    STAR_2008_S7993412.cc \
     STAR_2009_UE_HELEN.cc
 
 
 lib_LTLIBRARIES += RivetSPSAnalyses.la
 RivetSPSAnalyses_la_SOURCES = \
-    UA1_1990_S2044935.cc \
     UA5_1982_S875503.cc \
     UA5_1986_S1583476.cc \
-    UA5_1988_S1867512.cc \
     UA5_1989_S1926373.cc
 
 
@@ -104,22 +115,18 @@
 RivetMiscAnalyses_la_SOURCES = \
     PDG_Hadron_Multiplicities.cc \
     PDG_Hadron_Multiplicities_Ratios.cc \
-    SFM_1984_S1178091.cc \
-    E735_1998_S3905616.cc \
     JADE_OPAL_2000_S4300807.cc \
     BELLE_2006_S6265367.cc
 
 
 lib_LTLIBRARIES += RivetMCAnalyses.la
 RivetMCAnalyses_la_SOURCES = \
+    ExampleAnalysis.cc \
     MC_JetAnalysis.cc \
     MC_TVT1960_PHOTONJETS.cc \
     MC_TVT1960_ZJETS.cc \
     MC_LHC_LEADINGJETS.cc \
-    MC_LHC_DIJET.cc \
     MC_LHC_DIPHOTON.cc \
-    MC_LHC_PHOTONJETUE.cc \
     MC_LHC_WANALYSIS.cc \
     MC_LHC_ZANALYSIS.cc \
-    MC_LHC_SUSY.cc \
-    MC_LHC_TTBAR.cc
+    MC_LHC_SUSY.cc

Modified: trunk/src/Analyses/SFM_1984_S1178091.cc
==============================================================================
--- trunk/src/Analyses/SFM_1984_S1178091.cc	Thu Dec 10 16:41:31 2009	(r2168)
+++ trunk/src/Analyses/SFM_1984_S1178091.cc	Thu Dec 10 17:12:40 2009	(r2169)
@@ -2,17 +2,19 @@
 #include "Rivet/Analysis.hh"
 #include "Rivet/RivetAIDA.hh"
 #include "Rivet/Tools/Logging.hh"
-#include "Rivet/Projections/Beam.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 
 namespace Rivet {
 
+
   class SFM_1984_S1178091 : public Analysis {
   public:
 
     /// Constructor
     SFM_1984_S1178091() : Analysis("SFM_1984_S1178091") {
       setBeams(PROTON, PROTON);
+      _sumW = 0;
+      _sumWDiff = 0;
     }
 
 
@@ -21,131 +23,96 @@
 
     void init() {
       // Projections
-      addProjection(Beam(), "Beam");
+      /// @todo Corrected to full phase space?
       addProjection(ChargedFinalState(), "FS");
 
       // Histograms
-      _hist_multiplicity_inel_30 = bookHistogram1D(1, 1, 1);
-      _hist_multiplicity_inel_45 = bookHistogram1D(1, 1, 2);
-      _hist_multiplicity_inel_53 = bookHistogram1D(1, 1, 3);
-      _hist_multiplicity_inel_63 = bookHistogram1D(1, 1, 4);
-      _hist_multiplicity_nsd_30 = bookHistogram1D(2, 1, 1);
-      _hist_multiplicity_nsd_45 = bookHistogram1D(2, 1, 2);
-      _hist_multiplicity_nsd_53 = bookHistogram1D(2, 1, 3);
-      _hist_multiplicity_nsd_63 = bookHistogram1D(2, 1, 4);
+      if (fuzzyEquals(sqrtS()/GeV, 30.4, 1E-1)) {
+        _hist_multiplicity_inel = bookHistogram1D(1, 1, 1);
+        _hist_multiplicity_nsd = bookHistogram1D(2, 1, 1);
+      } else if (fuzzyEquals(sqrtS(), 44.5, 1E-1)) {
+        _hist_multiplicity_inel = bookHistogram1D(1, 1, 2);
+        _hist_multiplicity_nsd = bookHistogram1D(2, 1, 2);
+      } else if (fuzzyEquals(sqrtS(), 52.2, 1E-1)) {
+        _hist_multiplicity_inel = bookHistogram1D(1, 1, 3);
+        _hist_multiplicity_nsd = bookHistogram1D(2, 1, 3);
+      } else if (fuzzyEquals(sqrtS(), 62.2, 1E-1)) {
+        _hist_multiplicity_inel = bookHistogram1D(1, 1, 4);
+        _hist_multiplicity_nsd = bookHistogram1D(2, 1, 4);
+      }
+
     }
  
- 
+
+    // Analyse each event
     void analyze(const Event& event) {
       const double weight = event.weight();
-      const double sqrtS = applyProjection<Beam>(event, "Beam").sqrtS();
       const ChargedFinalState& fs = applyProjection<ChargedFinalState>(event, "FS");
       const size_t numParticles = fs.particles().size();
    
+      /// @todo Any trigger?
+
       // Decide whether event is of diffractive type or not
-      // FIXME: it is not so clear in the paper how this distinction is made.
+      // @todo It is not so clear in the paper how this distinction is made.
       // They seem to require either exactly one particle with Feynman x larger
       // than 0.8 to call an event diffractive or that there are no tracks
       // reconstructed in either of the two hemispheres. For the latter
-      // they require in addition also the number of cahrged particles
+      // they require in addition also the number of charged particles
       // to be smaller than 8.
-   
       int n_left(0), n_right(0), n_large_x(0);
       foreach (const Particle& p, fs.particles()) {
         // Calculate the particles' Feynman x
-        const double x_feyn = 2.0 * (p.momentum().pz()/GeV) / sqrtS;
-        if (fabs(x_feyn) > 0.8 ) n_large_x += 1;
+        const double x_feyn = 2.0 * fabs(p.momentum().pz())/sqrtS();
+        if (x_feyn > 0.8 ) n_large_x += 1;
      
         // Pseudorapidity
         const double eta = p.momentum().pseudorapidity();
         if (eta > 0.0) n_right += 1;
         else if (eta < 0.0) n_left += 1;
       }
+      getLog() << Log::DEBUG 
+               << "N_left: " << n_left << ", "
+               << "N_right: " << n_right << ", "
+               << "N_large_x: " << n_large_x << endl;
    
-      // Not sure about the "=="
-      /// @todo Numerical precision problem!
-      bool isDiffractive = false;
-      if (n_large_x == 1) isDiffractive = true;
-   
-      // FIXME: Not sure about the "== 1", the paper says no charged particle
+      // Not sure about the "=="!
+      // @todo Not sure about the "== 1", the paper says no charged particle
       // that was reconstructed so the incoming protons must run down the beam
       // pipe. Since we look a the complete final state here no particle being
       // reconstructed should be equal to one particle (proton) in each
       // hemisphere.  The "< 8" is also not certain.
-      if ((n_left == 1 || n_right == 1) && numParticles < 8 ) {
-        isDiffractive = true;
-      }
-   
-      getLog() << Log::DEBUG << "N_left: " << n_left << ", N_right: "
-               << n_right << ", N_large_x: " << n_large_x << endl;
-   
-   
+      const bool isDiffractive = (n_large_x == 1) || 
+        ((n_left == 1 || n_right == 1) && numParticles < 8 );
+
+      // Increment weight counters
+      _sumW += weight;
+      _sumWDiff += weight;   
+      
       // Fill histos of charged multiplicity distributions
-      // The inelastic samples are said to contain also diffractive events.
-      //
-      if (fuzzyEquals(sqrtS, 30.4/GeV, 1E-1)) {
-        if (isDiffractive) {
-          _hist_multiplicity_nsd_30 ->fill(numParticles, weight);
-          _hist_multiplicity_inel_30->fill(numParticles, weight);
-        } else {
-          _hist_multiplicity_inel_30->fill(numParticles, weight);
-        }
-      }
-      else if (fuzzyEquals(sqrtS, 44/GeV, 1E-1)) {
-        if (isDiffractive) {
-          _hist_multiplicity_nsd_45 ->fill(numParticles, weight);
-          _hist_multiplicity_inel_45->fill(numParticles, weight);
-        } else {
-          _hist_multiplicity_inel_45->fill(numParticles, weight);
-        }
-      }
-      else if (fuzzyEquals(sqrtS, 53/GeV, 1E-1)) {
-        if (isDiffractive) {
-          _hist_multiplicity_nsd_53 ->fill(numParticles, weight);
-          _hist_multiplicity_inel_53->fill(numParticles, weight);
-        } else {
-          _hist_multiplicity_inel_53->fill(numParticles, weight);
-        }
-      }
-      else if (fuzzyEquals(sqrtS, 63/GeV, 1E-1)) {
-        if (isDiffractive) {
-          _hist_multiplicity_nsd_63 ->fill(numParticles, weight);
-          _hist_multiplicity_inel_63->fill(numParticles, weight);
-        }
-        else {
-          _hist_multiplicity_inel_63->fill(numParticles, weight);
-        }
-      }
-   
+      _hist_multiplicity_inel->fill(numParticles, weight);
+      if (!isDiffractive) _hist_multiplicity_nsd->fill(numParticles, weight);   
     }
  
  
     void finalize() {
-      normalize(_hist_multiplicity_inel_30);
-      normalize(_hist_multiplicity_inel_45);
-      normalize(_hist_multiplicity_inel_53);
-      normalize(_hist_multiplicity_inel_63);
-      normalize(_hist_multiplicity_nsd_30 );
-      normalize(_hist_multiplicity_nsd_45 );
-      normalize(_hist_multiplicity_nsd_53 );
-      normalize(_hist_multiplicity_nsd_63 );
+      scale(_hist_multiplicity_inel, 1.0/_sumWDiff);
+      scale(_hist_multiplicity_nsd, 1.0/_sumW );
     }
+
     //@}
  
 
   private:
+
+    /// @name Weight counters
+    //@{
+    double _sumW, _sumWDiff;
+    //@}
  
     /// @name Histograms
     //@{
-
-    AIDA::IHistogram1D *_hist_multiplicity_inel_30;
-    AIDA::IHistogram1D *_hist_multiplicity_inel_45;
-    AIDA::IHistogram1D *_hist_multiplicity_inel_53;
-    AIDA::IHistogram1D *_hist_multiplicity_inel_63;
-    AIDA::IHistogram1D *_hist_multiplicity_nsd_30;
-    AIDA::IHistogram1D *_hist_multiplicity_nsd_45;
-    AIDA::IHistogram1D *_hist_multiplicity_nsd_53;
-    AIDA::IHistogram1D *_hist_multiplicity_nsd_63;
+    AIDA::IHistogram1D *_hist_multiplicity_inel;
+    AIDA::IHistogram1D *_hist_multiplicity_nsd;
     //@}
 
   };

Modified: trunk/src/Analyses/UA5_1988_S1867512.cc
==============================================================================
--- trunk/src/Analyses/UA5_1988_S1867512.cc	Thu Dec 10 16:41:31 2009	(r2168)
+++ trunk/src/Analyses/UA5_1988_S1867512.cc	Thu Dec 10 17:12:40 2009	(r2169)
@@ -44,7 +44,6 @@
     void init() {
       // Projections
       addProjection(TriggerUA5(), "Trigger");
-      addProjection(Beam(), "Beams");
       
       // Symmetric eta interval
       addProjection(ChargedFinalState(-0.5, 0.5), "CFS05");
@@ -67,17 +66,17 @@
       addProjection(ChargedFinalState(-3.0, -2.0), "CFS30B");
       addProjection(ChargedFinalState(-3.5, -2.5), "CFS35B");
       addProjection(ChargedFinalState(-4.0, -3.0), "CFS40B");
-            
+      
       // Histogram booking, we have sqrt(s) = 200, 546 and 900 GeV
       if (fuzzyEquals(sqrtS()/GeV, 200.0, 1E-4)) {
-        _hist_correl_200 = bookProfile1D(2, 1, 1);
-        _hist_correl_asym_200 = bookProfile1D(3, 1, 1);
+        _hist_correl = bookProfile1D(2, 1, 1);
+        _hist_correl_asym = bookProfile1D(3, 1, 1);
       } else if (fuzzyEquals(sqrtS()/GeV, 546.0, 1E-4)) {
-        _hist_correl_546 = bookProfile1D(2, 1, 2);      
-        _hist_correl_asym_546 = bookProfile1D(3, 1, 2);
+        _hist_correl = bookProfile1D(2, 1, 2);      
+        _hist_correl_asym = bookProfile1D(3, 1, 2);
       } else if (fuzzyEquals(sqrtS()/GeV, 900.0, 1E-4)) {
-        _hist_correl_900 = bookProfile1D(2, 1, 3);
-        _hist_correl_asym_900 = bookProfile1D(3, 1, 3);
+        _hist_correl = bookProfile1D(2, 1, 3);
+        _hist_correl_asym = bookProfile1D(3, 1, 3);
       }
     }
     
@@ -130,89 +129,35 @@
                  
       double mean_n_05  = mean(n_05);
 
-
       // Fill histos
-      if (fuzzyEquals(sqrtS(), 200.0, 1E-4)) {
-        for (size_t i = 0; i < n_10f.size(); i++) {
-          // Fill gap size histo (Fig 14), iterate over central gap size
-          _hist_correl_200->fill(0.0, c_str(n_10f[i], mean_n_10f, n_10b[i], mean_n_10b));
-          _hist_correl_200->fill(1.0, c_str(n_15f[i], mean_n_15f, n_15b[i], mean_n_15b));
-          _hist_correl_200->fill(2.0, c_str(n_20f[i], mean_n_20f, n_20b[i], mean_n_20b));
-          _hist_correl_200->fill(3.0, c_str(n_25f[i], mean_n_25f, n_25b[i], mean_n_25b));
-          _hist_correl_200->fill(4.0, c_str(n_30f[i], mean_n_30f, n_30b[i], mean_n_30b));
-          _hist_correl_200->fill(5.0, c_str(n_35f[i], mean_n_35f, n_35b[i], mean_n_35b));
-          _hist_correl_200->fill(6.0, c_str(n_40f[i], mean_n_40f, n_40b[i], mean_n_40b));
-
-          // Fill gap-center histos (Fig 15), iterate over gap centers
-          //
-          // The first bin contains all the c_str strengths of
-          // the gap size histo above
-          _hist_correl_asym_200->fill(0.0, c_str(n_10f[i], mean_n_10f, n_10b[i], mean_n_10b));
-          _hist_correl_asym_200->fill(0.0, c_str(n_15f[i], mean_n_15f, n_15b[i], mean_n_15b));
-          _hist_correl_asym_200->fill(0.0, c_str(n_20f[i], mean_n_20f, n_20b[i], mean_n_20b));
-          _hist_correl_asym_200->fill(0.0, c_str(n_25f[i], mean_n_25f, n_25b[i], mean_n_25b));
-          _hist_correl_asym_200->fill(0.0, c_str(n_30f[i], mean_n_30f, n_30b[i], mean_n_30b));
-          _hist_correl_asym_200->fill(0.0, c_str(n_35f[i], mean_n_35f, n_35b[i], mean_n_35b));
-          _hist_correl_asym_200->fill(0.0, c_str(n_40f[i], mean_n_40f, n_40b[i], mean_n_40b));
-          // Fill in c_str strength for assymetric intervals
-          _hist_correl_asym_200->fill(0.5, c_str(n_25f[i], mean_n_25f, n_15b[i], mean_n_15b));
-          _hist_correl_asym_200->fill(1.0, c_str(n_30f[i], mean_n_30f, n_10b[i], mean_n_10b));
-          _hist_correl_asym_200->fill(1.5, c_str(n_35f[i], mean_n_35f, n_05[i] , mean_n_05 ));
-          _hist_correl_asym_200->fill(2.0, c_str(n_40f[i], mean_n_40f, n_10f[i], mean_n_10f));
-        }
-      }
-      
-      else if (fuzzyEquals(sqrtS(), 546.0, 1E-4)) {
-        for (size_t i = 0; i < n_10f.size(); i++) {
-          _hist_correl_546->fill(0.0, c_str(n_10f[i], mean_n_10f, n_10b[i], mean_n_10b));
-          _hist_correl_546->fill(1.0, c_str(n_15f[i], mean_n_15f, n_15b[i], mean_n_15b));
-          _hist_correl_546->fill(2.0, c_str(n_20f[i], mean_n_20f, n_20b[i], mean_n_20b));
-          _hist_correl_546->fill(3.0, c_str(n_25f[i], mean_n_25f, n_25b[i], mean_n_25b));
-          _hist_correl_546->fill(4.0, c_str(n_30f[i], mean_n_30f, n_30b[i], mean_n_30b));
-          _hist_correl_546->fill(5.0, c_str(n_35f[i], mean_n_35f, n_35b[i], mean_n_35b));
-          _hist_correl_546->fill(6.0, c_str(n_40f[i], mean_n_40f, n_40b[i], mean_n_40b));
-
-          _hist_correl_asym_546->fill(0.0, c_str(n_10f[i], mean_n_10f, n_10b[i], mean_n_10b));
-          _hist_correl_asym_546->fill(0.0, c_str(n_15f[i], mean_n_15f, n_15b[i], mean_n_15b));
-          _hist_correl_asym_546->fill(0.0, c_str(n_20f[i], mean_n_20f, n_20b[i], mean_n_20b));
-          _hist_correl_asym_546->fill(0.0, c_str(n_25f[i], mean_n_25f, n_25b[i], mean_n_25b));
-          _hist_correl_asym_546->fill(0.0, c_str(n_30f[i], mean_n_30f, n_30b[i], mean_n_30b));
-          _hist_correl_asym_546->fill(0.0, c_str(n_35f[i], mean_n_35f, n_35b[i], mean_n_35b));
-          _hist_correl_asym_546->fill(0.0, c_str(n_40f[i], mean_n_40f, n_40b[i], mean_n_40b));
-          
-          _hist_correl_asym_546->fill(0.5, c_str(n_25f[i], mean_n_25f, n_15b[i], mean_n_15b));
-          _hist_correl_asym_546->fill(1.0, c_str(n_30f[i], mean_n_30f, n_10b[i], mean_n_10b));
-          _hist_correl_asym_546->fill(1.5, c_str(n_35f[i], mean_n_35f, n_05[i] , mean_n_05 ));
-          _hist_correl_asym_546->fill(2.0, c_str(n_40f[i], mean_n_40f, n_10f[i], mean_n_10f));
-        }
-      }
-      
-      else if (fuzzyEquals(sqrtS(), 900.0, 1E-4)) {
-        for (size_t i = 0; i < n_10f.size(); i++) {
-          _hist_correl_900->fill(0.0, c_str(n_10f[i], mean_n_10f, n_10b[i], mean_n_10b));
-          _hist_correl_900->fill(1.0, c_str(n_15f[i], mean_n_15f, n_15b[i], mean_n_15b));
-          _hist_correl_900->fill(2.0, c_str(n_20f[i], mean_n_20f, n_20b[i], mean_n_20b));
-          _hist_correl_900->fill(3.0, c_str(n_25f[i], mean_n_25f, n_25b[i], mean_n_25b));
-          _hist_correl_900->fill(4.0, c_str(n_30f[i], mean_n_30f, n_30b[i], mean_n_30b));
-          _hist_correl_900->fill(5.0, c_str(n_35f[i], mean_n_35f, n_35b[i], mean_n_35b));
-          _hist_correl_900->fill(6.0, c_str(n_40f[i], mean_n_40f, n_40b[i], mean_n_40b));
-
-          _hist_correl_asym_900->fill(0.0, c_str(n_10f[i], mean_n_10f, n_10b[i], mean_n_10b));
-          _hist_correl_asym_900->fill(0.0, c_str(n_15f[i], mean_n_15f, n_15b[i], mean_n_15b));
-          _hist_correl_asym_900->fill(0.0, c_str(n_20f[i], mean_n_20f, n_20b[i], mean_n_20b));
-          _hist_correl_asym_900->fill(0.0, c_str(n_25f[i], mean_n_25f, n_25b[i], mean_n_25b));
-          _hist_correl_asym_900->fill(0.0, c_str(n_30f[i], mean_n_30f, n_30b[i], mean_n_30b));
-          _hist_correl_asym_900->fill(0.0, c_str(n_35f[i], mean_n_35f, n_35b[i], mean_n_35b));
-          _hist_correl_asym_900->fill(0.0, c_str(n_40f[i], mean_n_40f, n_40b[i], mean_n_40b));
-          
-          _hist_correl_asym_900->fill(0.5, c_str(n_25f[i], mean_n_25f, n_15b[i], mean_n_15b));
-          _hist_correl_asym_900->fill(1.0, c_str(n_30f[i], mean_n_30f, n_10b[i], mean_n_10b));
-          _hist_correl_asym_900->fill(1.5, c_str(n_35f[i], mean_n_35f, n_05[i] , mean_n_05 ));
-          _hist_correl_asym_900->fill(2.0, c_str(n_40f[i], mean_n_40f, n_10f[i], mean_n_10f));
-        }
+      for (size_t i = 0; i < n_10f.size(); i++) {
+        // Fill gap size histo (Fig 14), iterate over central gap size
+        _hist_correl->fill(0.0, c_str(n_10f[i], mean_n_10f, n_10b[i], mean_n_10b));
+        _hist_correl->fill(1.0, c_str(n_15f[i], mean_n_15f, n_15b[i], mean_n_15b));
+        _hist_correl->fill(2.0, c_str(n_20f[i], mean_n_20f, n_20b[i], mean_n_20b));
+        _hist_correl->fill(3.0, c_str(n_25f[i], mean_n_25f, n_25b[i], mean_n_25b));
+        _hist_correl->fill(4.0, c_str(n_30f[i], mean_n_30f, n_30b[i], mean_n_30b));
+        _hist_correl->fill(5.0, c_str(n_35f[i], mean_n_35f, n_35b[i], mean_n_35b));
+        _hist_correl->fill(6.0, c_str(n_40f[i], mean_n_40f, n_40b[i], mean_n_40b));
+        
+        // Fill gap-center histos (Fig 15), iterate over gap centers
+        //
+        // The first bin contains all the c_str strengths of
+        // the gap size histo above
+        _hist_correl_asym->fill(0.0, c_str(n_10f[i], mean_n_10f, n_10b[i], mean_n_10b));
+        _hist_correl_asym->fill(0.0, c_str(n_15f[i], mean_n_15f, n_15b[i], mean_n_15b));
+        _hist_correl_asym->fill(0.0, c_str(n_20f[i], mean_n_20f, n_20b[i], mean_n_20b));
+        _hist_correl_asym->fill(0.0, c_str(n_25f[i], mean_n_25f, n_25b[i], mean_n_25b));
+        _hist_correl_asym->fill(0.0, c_str(n_30f[i], mean_n_30f, n_30b[i], mean_n_30b));
+        _hist_correl_asym->fill(0.0, c_str(n_35f[i], mean_n_35f, n_35b[i], mean_n_35b));
+        _hist_correl_asym->fill(0.0, c_str(n_40f[i], mean_n_40f, n_40b[i], mean_n_40b));
+        // Fill in c_str strength for assymetric intervals
+        _hist_correl_asym->fill(0.5, c_str(n_25f[i], mean_n_25f, n_15b[i], mean_n_15b));
+        _hist_correl_asym->fill(1.0, c_str(n_30f[i], mean_n_30f, n_10b[i], mean_n_10b));
+        _hist_correl_asym->fill(1.5, c_str(n_35f[i], mean_n_35f, n_05[i] , mean_n_05 ));
+        _hist_correl_asym->fill(2.0, c_str(n_40f[i], mean_n_40f, n_10f[i], mean_n_10f));
       }
-
-      
+    
     }
     
     //@}
@@ -251,16 +196,10 @@
 
     /// @name Histograms
     //@{
-
     // Symmetric eta intervals
-    AIDA::IProfile1D *_hist_correl_200;
-    AIDA::IProfile1D *_hist_correl_546;
-    AIDA::IProfile1D *_hist_correl_900;
-    
+    AIDA::IProfile1D *_hist_correl;    
     // For asymmetric eta intervals
-    AIDA::IProfile1D *_hist_correl_asym_200;
-    AIDA::IProfile1D *_hist_correl_asym_546;
-    AIDA::IProfile1D *_hist_correl_asym_900;
+    AIDA::IProfile1D *_hist_correl_asym;
     //@}
 
   };


More information about the Rivet-svn mailing list