rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

CLEO_2001_I552541

Correlated $\Lambda^+_c\bar{\Lambda}_c$ production in $e^+e^-$ annihilations at $\sqrt{s}=10.5$ GeV
Experiment: CLEO (CESR)
Inspire ID: 552541
Status: VALIDATED
Authors:
  • Peter Richardson
References:
  • Phys.Rev. D63 (2001) 112003, 2001
Beams: e+ e-
Beam energies: (5.3, 5.3) GeV
Run details:
  • $e^+ e^-$ analysis near the $\Upsilon(4S)$ resonance

Measurement of correlations between $\Lambda^+_c$ and $\bar{\Lambda}_c$ production in $e^+e^-$ annihilations at $\sqrt{s}=10.5$ GeV by the CLEO experiment. Useful fo studying models of baryon production.

Source code: CLEO_2001_I552541.cc
  1// -*- C++ -*-
  2#include "Rivet/Analysis.hh"
  3#include "Rivet/Projections/UnstableParticles.hh"
  4
  5namespace Rivet {
  6
  7
  8  /// @brief Add a short analysis description here
  9  class CLEO_2001_I552541 : public Analysis {
 10  public:
 11
 12    /// Constructor
 13    RIVET_DEFAULT_ANALYSIS_CTOR(CLEO_2001_I552541);
 14
 15
 16    /// @name Analysis methods
 17    /// @{
 18
 19    /// Book histograms and initialise projections before the run
 20    void init() {
 21
 22      // Initialise and register projections
 23      declare(UnstableParticles(), "UFS");
 24
 25      book(_d_Dbar0[0], "/TMP/d_D0_low" );
 26      book(_d_Dbar0[1], "/TMP/d_D0_high");
 27      book(_d_Dm[0]   , "/TMP/d_Dm_low" );
 28      book(_d_Dm[1]   , "/TMP/d_Dm_high");
 29      book(_d_Lam[0]  , "/TMP/d_La_low" );
 30      book(_d_Lam[1]  , "/TMP/d_La_high");
 31
 32      book(_n_Dbar0[0][0], "/TMP/d_D0_low_low"  );
 33      book(_n_Dbar0[0][1], "/TMP/d_D0_low_high" );
 34      book(_n_Dbar0[1][0], "/TMP/d_D0_high_low" );
 35      book(_n_Dbar0[1][1], "/TMP/d_D0_high_high");
 36      book(_n_Dm[0][0]   , "/TMP/d_Dm_low_low"  );
 37      book(_n_Dm[0][1]   , "/TMP/d_Dm_low_high" );
 38      book(_n_Dm[1][0]   , "/TMP/d_Dm_high_low" );
 39      book(_n_Dm[1][1]   , "/TMP/d_Dm_high_high");
 40      book(_n_Lam[0][0]  , "/TMP/d_La_low_low"  );
 41      book(_n_Lam[0][1]  , "/TMP/d_La_low_high" );
 42      book(_n_Lam[1][0]  , "/TMP/d_La_high_low" );
 43      book(_n_Lam[1][1]  , "/TMP/d_La_high_high");
 44
 45    }
 46
 47    /// Perform the per-event analysis
 48    void analyze(const Event& event) {
 49      const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
 50      for (const Particle& p : ufs.particles(Cuts::pid==-4122 or Cuts::pid==-411 or Cuts::pid==-421)) {
 51        long id1 = p.pid();
 52        double mom1 = p.p3().mod();
 53        if(mom1<2.3*GeV || mom1>5.*GeV) continue;
 54        bool high1 = mom1>3.3*GeV;
 55        if(id1==-4122) {
 56          _d_Lam[high1]->fill();
 57        }
 58        else if(id1==-411) {
 59          _d_Dm[high1]->fill();
 60        }
 61        else if(id1==-421) {
 62          _d_Dbar0[high1]->fill();
 63        }
 64        for (const Particle& p2 : ufs.particles(Cuts::pid==4122)) {
 65          if(p.p3().angle(p2.p3())<0.5*M_PI) continue;
 66          double mom2 = p2.p3().mod();
 67          if(mom2<2.3*GeV || mom2>5.*GeV) continue;
 68          bool high2 = mom2>3.3*GeV;
 69          if(id1==-4122) {
 70            _n_Lam[high1][high2]->fill();
 71          }
 72          else if(id1==-411) {
 73            _n_Dm[high1][high2]->fill();
 74          }
 75          else if(id1==-421) {
 76            _n_Dbar0[high1][high2]->fill();
 77          }
 78        }
 79      }
 80    }
 81
 82
 83    /// Normalise histograms etc., after the run
 84    void finalize() {
 85      Estimate0D R_D0_low_low    = (*_n_Dbar0[0][0]/ *_d_Dbar0[0]);
 86      Estimate0D R_D0_low_high   = (*_n_Dbar0[0][1]/ *_d_Dbar0[0]);
 87      Estimate0D R_D0_high_low   = (*_n_Dbar0[1][0]/ *_d_Dbar0[1]);
 88      Estimate0D R_D0_high_high  = (*_n_Dbar0[1][1]/ *_d_Dbar0[1]);
 89      Estimate0D R_Dm_low_low    = (*_n_Dm[0][0]   / *_d_Dm[0]);
 90      Estimate0D R_Dm_low_high   = (*_n_Dm[0][1]   / *_d_Dm[0]);
 91      Estimate0D R_Dm_high_low   = (*_n_Dm[1][0]   / *_d_Dm[1]);
 92      Estimate0D R_Dm_high_high  = (*_n_Dm[1][1]   / *_d_Dm[1]);
 93      Estimate0D R_Lam_low_low   = (*_n_Lam[0][0]  / *_d_Lam[0]);
 94      Estimate0D R_Lam_low_high  = (*_n_Lam[0][1]  / *_d_Lam[0]);
 95      Estimate0D R_Lam_high_low  = (*_n_Lam[1][0]  / *_d_Lam[1]);
 96      Estimate0D R_Lam_high_high = (*_n_Lam[1][1]  / *_d_Lam[1]);
 97
 98      for (size_t ix=3; ix<5; ++ix) {
 99        for (size_t iy=1; iy<5; ++iy) {
100          double num(0.),den(0.),num_err(0.),den_err(0.);
101          if(ix==3) {
102            if(iy==1) {
103              den     =  R_D0_low_low.val();
104              den_err =  R_D0_low_low.errPos();
105            }
106            else if(iy==2) {
107              den     =  R_D0_high_low.val();
108              den_err =  R_D0_high_low.errPos();
109            }
110            else if(iy==3) {
111              den     =  R_D0_low_low.val();
112              den_err =  R_D0_low_low.errPos();
113            }
114            else if(iy==4) {
115              den     =  R_D0_high_high.val();
116              den_err =  R_D0_high_high.errPos();
117            }
118          }
119          else if(ix==4) {
120            if(iy==1) {
121              den     =  R_Dm_low_low.val();
122              den_err =  R_Dm_low_low.errPos();
123            }
124            else if(iy==2) {
125              den     =  R_Dm_high_low.val();
126              den_err =  R_Dm_high_low.errPos();
127            }
128            else if(iy==3) {
129              den     =  R_Dm_low_low.val();
130              den_err =  R_Dm_low_low.errPos();
131            }
132            else if(iy==4) {
133              den     =  R_Dm_high_high.val();
134              den_err =  R_Dm_high_high.errPos();
135            }
136          }
137          if(iy==1) {
138            num     =  R_Lam_low_low.val();
139            num_err =  R_Lam_low_low.errPos();
140          }
141          else if(iy==2) {
142            num     =  R_Lam_high_low.val();
143            num_err =  R_Lam_high_low.errPos();
144          }
145          else if(iy==3) {
146            num     =  R_Lam_low_low.val();
147            num_err =  R_Lam_low_low.errPos();
148          }
149          else if(iy==4) {
150            num     =  R_Lam_high_high.val();
151            num_err =  R_Lam_high_high.errPos();
152          }
153          double val = num/den;
154          double err = val>=0. ? val*sqrt(sqr(num_err/num)+sqr(den_err/den)) : 0.;
155          BinnedEstimatePtr<string> ratio;
156          book(ratio, ix, 1, iy);
157          ratio->bin(1).set(val, err);
158        }
159      }
160    }
161
162    /// @}
163
164
165    /// @name Histograms
166    /// @{
167    CounterPtr _d_Dbar0[2],_d_Dm[2],_d_Lam[2];
168    CounterPtr _n_Dbar0[2][2],_n_Dm[2][2],_n_Lam[2][2];
169    /// @}
170
171
172  };
173
174
175  RIVET_DECLARE_PLUGIN(CLEO_2001_I552541);
176
177
178}