rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

ALICE_2021_I1863039

$\Xi_c^ 0 $ production at 5.02 TeV
Experiment: ALICE (LHC)
Inspire ID: 1863039
Status: VALIDATED
Authors:
  • Peter Richardson
References:
  • JHEP 10 (2021) 159
Beams: p+ p+
Beam energies: (2510.0, 2510.0) GeV
Run details:
  • hadronic events

Differential cross section in $p_\perp$ for prompt $\Xi_c^{0}$ production at 5 TeV

Source code: ALICE_2021_I1863039.cc
  1// -*- C++ -*-
  2#include "Rivet/Analysis.hh"
  3#include "Rivet/Projections/UnstableParticles.hh"
  4
  5
  6namespace Rivet {
  7
  8
  9  /// @brief Xi_c0 at 5 TeV
 10  class ALICE_2021_I1863039 : public Analysis {
 11  public:
 12
 13    /// Constructor
 14    RIVET_DEFAULT_ANALYSIS_CTOR(ALICE_2021_I1863039);
 15
 16
 17    /// @name Analysis methods
 18    /// @{
 19
 20    /// Book histograms and initialise projections before the run
 21    void init() {
 22      // projection
 23      declare(UnstableParticles(Cuts::pid==4132 || Cuts::pid==421), "UFS");
 24      for (unsigned int ix=0; ix<2; ++ix) {
 25        book(_h_Xi_pT[ix],1+ix,1,1);
 26        book(_h_D0_pT[ix],"TMP/pT_D0_"+toString(ix),refData(3+ix,1,1));
 27      }
 28      book(_h_Xi_pT[2],"TMP/pT_Xi",refData(4,1,1));
 29      book(_h_sig,5,1,1);
 30      book(_c_D0,"TMP/c_D0");
 31      book(_c_Xi,"TMP/c_Xi");
 32    }
 33
 34
 35    /// Perform the per-event analysis
 36    void analyze(const Event& event) {
 37      // Final state of unstable particles to get particle spectra
 38      const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
 39      for (const Particle& p : ufs.particles()) {
 40        // no mixing
 41        if (p.children().size()==1 || p.children()[0].abspid()==p.abspid()) continue;
 42        // rapidity cut
 43        if (p.absrap()>0.5) continue;
 44        const double pT = p.perp();
 45        if(p.pid()==421) {
 46          // only prompt
 47          if (!p.fromBottom()) {
 48            _h_D0_pT[0]->fill(pT);
 49            _h_D0_pT[1]->fill(pT);
 50          }
 51          _c_D0->fill();
 52        }
 53        else {
 54          // prompt
 55          if (!p.fromBottom()) {
 56            _c_Xi->fill();
 57            _h_sig->fill("$>$ 0.0"s);
 58            _h_Xi_pT[0]->fill(pT);
 59          }
 60          // inclusive
 61          _h_Xi_pT[1]->fill(pT);
 62          _h_Xi_pT[2]->fill(pT);
 63        }
 64      }
 65    }
 66
 67
 68    /// Normalise histograms etc., after the run
 69    void finalize() {
 70      const double factor = crossSection()/microbarn/sumOfWeights();
 71      scale(_h_Xi_pT, factor);
 72      scale(_h_D0_pT, factor);
 73      scale(_h_sig,factor);
 74
 75      // ratio prompt Xi0/D0
 76      Estimate1DPtr tmp;
 77      book(tmp,3,1,1);
 78      divide(_h_Xi_pT[0],_h_D0_pT[0],tmp);
 79
 80      // ratio  inclusive Xi0/D0
 81      book(tmp,4,1,1);
 82      divide(_h_Xi_pT[2],_h_D0_pT[1],tmp);
 83
 84      // ratio Xi0_D0 integrated
 85      Estimate0D e0d = *_c_Xi / *_c_D0;
 86      BinnedEstimatePtr<string> ratio;
 87      book(ratio, 6, 1, 1);
 88      auto& b = ratio->bin(1);
 89      b.setVal(e0d.val());
 90      b.setErr(e0d.err());
 91    }
 92
 93    /// @}
 94
 95
 96    /// @name Histograms
 97    /// @{
 98    Histo1DPtr _h_Xi_pT[3],_h_D0_pT[2];
 99    BinnedHistoPtr<string> _h_sig;
100    CounterPtr _c_D0,_c_Xi;
101    /// @}
102
103
104  };
105
106
107  RIVET_DECLARE_PLUGIN(ALICE_2021_I1863039);
108
109}