rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

ALEPH_1999_I507422

Scaled energy distribution of $D^*$ at LEP
Experiment: ALEPH (LEP)
Inspire ID: 507422
Status: VALIDATED
Authors:
  • Holger Schulz
References:
  • Eur.Phys.J.C16:597-611,2000
  • hep-ex/9909032
  • CERN-EP-99-094
Beams: e+ e-
Beam energies: (45.6, 45.6) GeV
Run details:
  • Hadronic $Z$ decays at 91.2 GeV.

Study of charm production in $Z$ decays. Here, only the scaled energy distribution of $D^{*\pm}$ is implemented. Should be very important for fragmentation tuning.

Source code: ALEPH_1999_I507422.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/Beam.hh"
 4#include "Rivet/Projections/ChargedFinalState.hh"
 5#include "Rivet/Projections/UnstableParticles.hh"
 6
 7namespace Rivet {
 8
 9
10  class ALEPH_1999_I507422 : public Analysis {
11  public:
12
13    RIVET_DEFAULT_ANALYSIS_CTOR(ALEPH_1999_I507422);
14
15
16    /// Book histograms and initialise projections before the run
17    void init() {
18      declare(Beam(), "Beams");
19      declare(UnstableParticles(), "UFS");
20      declare(ChargedFinalState(), "CFS");
21
22      book(_h_Xe_Ds ,1, 1, 1);
23    }
24
25
26    /// Perform the per-event analysis
27    void analyze(const Event& event) {
28
29      // Trigger condition
30      const ChargedFinalState& cfs = apply<ChargedFinalState>(event, "CFS");
31      if (cfs.size() < 5) vetoEvent;
32
33      const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
34
35      // Get beams and average beam momentum
36      const ParticlePair& beams = apply<Beam>(event, "Beams").beams();
37      const double meanBeamMom = ( beams.first.p3().mod() +
38                                   beams.second.p3().mod() ) / 2.0/GeV;
39
40      // Accept all D*+- decays.
41      for (const Particle& p : select(ufs.particles(), Cuts::abspid==PID::DSTARPLUS)) {
42          // Scaled energy.
43          const double energy = p.E()/GeV;
44          const double scaledEnergy = energy/meanBeamMom;
45          _h_Xe_Ds->fill(scaledEnergy);
46      }
47    }
48
49
50    /// Normalise histograms etc., after the run
51    void finalize() {
52      // brs for D*+/- -> D0 pi+/- and D0->K+pi-
53      double br = 0.677*0.03950;
54      scale(_h_Xe_Ds, 1./sumOfWeights()*br*1000.);
55    }
56
57
58    /// Histogram
59    Histo1DPtr _h_Xe_Ds;
60
61  };
62
63
64
65  RIVET_DECLARE_ALIASED_PLUGIN(ALEPH_1999_I507422, ALEPH_1999_S4193598);
66
67}