Rivet analyses
Correlated Λc+Λ̄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 Υ(4S) resonance
Measurement of correlations between Λc+ and Λ̄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
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/UnstableParticles.hh"
namespace Rivet {
/// @brief Add a short analysis description here
class CLEO_2001_I552541 : public Analysis {
public:
/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(CLEO_2001_I552541);
/// @name Analysis methods
/// @{
/// Book histograms and initialise projections before the run
void init() {
// Initialise and register projections
declare(UnstableParticles(), "UFS");
book(_d_Dbar0[0], "/TMP/d_D0_low" );
book(_d_Dbar0[1], "/TMP/d_D0_high");
book(_d_Dm[0] , "/TMP/d_Dm_low" );
book(_d_Dm[1] , "/TMP/d_Dm_high");
book(_d_Lam[0] , "/TMP/d_La_low" );
book(_d_Lam[1] , "/TMP/d_La_high");
book(_n_Dbar0[0][0], "/TMP/d_D0_low_low" );
book(_n_Dbar0[0][1], "/TMP/d_D0_low_high" );
book(_n_Dbar0[1][0], "/TMP/d_D0_high_low" );
book(_n_Dbar0[1][1], "/TMP/d_D0_high_high");
book(_n_Dm[0][0] , "/TMP/d_Dm_low_low" );
book(_n_Dm[0][1] , "/TMP/d_Dm_low_high" );
book(_n_Dm[1][0] , "/TMP/d_Dm_high_low" );
book(_n_Dm[1][1] , "/TMP/d_Dm_high_high");
book(_n_Lam[0][0] , "/TMP/d_La_low_low" );
book(_n_Lam[0][1] , "/TMP/d_La_low_high" );
book(_n_Lam[1][0] , "/TMP/d_La_high_low" );
book(_n_Lam[1][1] , "/TMP/d_La_high_high");
}
/// Perform the per-event analysis
void analyze(const Event& event) {
const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
for (const Particle& p : ufs.particles(Cuts::pid==-4122 or Cuts::pid==-411 or Cuts::pid==-421)) {
long id1 = p.pid();
double mom1 = p.p3().mod();
if(mom1<2.3*GeV || mom1>5.*GeV) continue;
bool high1 = mom1>3.3*GeV;
if(id1==-4122) {
_d_Lam[high1]->fill();
}
else if(id1==-411) {
_d_Dm[high1]->fill();
}
else if(id1==-421) {
_d_Dbar0[high1]->fill();
}
for (const Particle& p2 : ufs.particles(Cuts::pid==4122)) {
if(p.p3().angle(p2.p3())<0.5*M_PI) continue;
double mom2 = p2.p3().mod();
if(mom2<2.3*GeV || mom2>5.*GeV) continue;
bool high2 = mom2>3.3*GeV;
if(id1==-4122) {
_n_Lam[high1][high2]->fill();
}
else if(id1==-411) {
_n_Dm[high1][high2]->fill();
}
else if(id1==-421) {
_n_Dbar0[high1][high2]->fill();
}
}
}
}
/// Normalise histograms etc., after the run
void finalize() {
Estimate0D R_D0_low_low = (*_n_Dbar0[0][0]/ *_d_Dbar0[0]);
Estimate0D R_D0_low_high = (*_n_Dbar0[0][1]/ *_d_Dbar0[0]);
Estimate0D R_D0_high_low = (*_n_Dbar0[1][0]/ *_d_Dbar0[1]);
Estimate0D R_D0_high_high = (*_n_Dbar0[1][1]/ *_d_Dbar0[1]);
Estimate0D R_Dm_low_low = (*_n_Dm[0][0] / *_d_Dm[0]);
Estimate0D R_Dm_low_high = (*_n_Dm[0][1] / *_d_Dm[0]);
Estimate0D R_Dm_high_low = (*_n_Dm[1][0] / *_d_Dm[1]);
Estimate0D R_Dm_high_high = (*_n_Dm[1][1] / *_d_Dm[1]);
Estimate0D R_Lam_low_low = (*_n_Lam[0][0] / *_d_Lam[0]);
Estimate0D R_Lam_low_high = (*_n_Lam[0][1] / *_d_Lam[0]);
Estimate0D R_Lam_high_low = (*_n_Lam[1][0] / *_d_Lam[1]);
Estimate0D R_Lam_high_high = (*_n_Lam[1][1] / *_d_Lam[1]);
for (size_t ix=3; ix<5; ++ix) {
for (size_t iy=1; iy<5; ++iy) {
double num(0.),den(0.),num_err(0.),den_err(0.);
if(ix==3) {
if(iy==1) {
den = R_D0_low_low.val();
den_err = R_D0_low_low.errPos();
}
else if(iy==2) {
den = R_D0_high_low.val();
den_err = R_D0_high_low.errPos();
}
else if(iy==3) {
den = R_D0_low_low.val();
den_err = R_D0_low_low.errPos();
}
else if(iy==4) {
den = R_D0_high_high.val();
den_err = R_D0_high_high.errPos();
}
}
else if(ix==4) {
if(iy==1) {
den = R_Dm_low_low.val();
den_err = R_Dm_low_low.errPos();
}
else if(iy==2) {
den = R_Dm_high_low.val();
den_err = R_Dm_high_low.errPos();
}
else if(iy==3) {
den = R_Dm_low_low.val();
den_err = R_Dm_low_low.errPos();
}
else if(iy==4) {
den = R_Dm_high_high.val();
den_err = R_Dm_high_high.errPos();
}
}
if(iy==1) {
num = R_Lam_low_low.val();
num_err = R_Lam_low_low.errPos();
}
else if(iy==2) {
num = R_Lam_high_low.val();
num_err = R_Lam_high_low.errPos();
}
else if(iy==3) {
num = R_Lam_low_low.val();
num_err = R_Lam_low_low.errPos();
}
else if(iy==4) {
num = R_Lam_high_high.val();
num_err = R_Lam_high_high.errPos();
}
double val = num/den;
double err = val>=0. ? val*sqrt(sqr(num_err/num)+sqr(den_err/den)) : 0.;
BinnedEstimatePtr<string> ratio;
book(ratio, ix, 1, iy);
ratio->bin(1).set(val, err);
}
}
}
/// @}
/// @name Histograms
/// @{
CounterPtr _d_Dbar0[2],_d_Dm[2],_d_Lam[2];
CounterPtr _n_Dbar0[2][2],_n_Dm[2][2],_n_Lam[2][2];
/// @}
};
RIVET_DECLARE_PLUGIN(CLEO_2001_I552541);
}