Rivet analyses


title: ALICE_2021_I1829739

Prompt $\Lambda_c^+$ production at 5.02 TeV

Experiment: ALICE (LHC)

Inspire ID: 1829739

Status: VALIDATED

Authors: - Peter Richardson

References: - Phys.Rev.Lett. 127 (2021) 202301, 2021.

Beams: p+ p+

Beam energies: (2510.0, 2510.0)GeV

Run details: - hadronic events

Differential cross section in $p_\perp$ for prompt $\Lambda_c^+$ production at 5.02 TeV.

Source code:ALICE_2021_I1829739.cc

```c++ // -- C++ --

include "Rivet/Analysis.hh"

include "Rivet/Projections/UnstableParticles.hh"

namespace Rivet {

/// @brief Lambda_c+ at 5.02 TeV class ALICE_2021_I1829739 : public Analysis { public:

/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(ALICE_2021_I1829739);


/// @name Analysis methods
/// @{

/// Book histograms and initialise projections before the run
void init() {
  // projection
  declare(UnstableParticles(), "UFS");
  // histograms
  book(_h_Lambda, 1, 1, 1);
  book(_h_D, "TMP/h_D", refData(4, 1, 1));
  book(_h_sig[0], 7, 1, 1);
  book(_h_sig[1], 7, 1, 2);
  book(_c_D, "TMP/c_D");
  book(_c_Lambda, "TMP/c_Lambda");
}


/// Perform the per-event analysis
void analyze(const Event& event) {
  // Final state of unstable particles to get particle spectra
  const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
  // loop over onium states
  for (const Particle& p : ufs.particles(Cuts::abspid == 4122 || Cuts::abspid == 421)) {
    // prompt
    if (p.fromBottom()) continue;
    // skip copies due mixing
    if (p.children().size() == 1 && p.children()[0].abspid() == p.abspid()) continue;
    if (p.absrap() > .5) continue;
    const double pT = p.perp();
    if (p.abspid() == 4122) {
      _h_Lambda->fill(pT);
      if (pT > 1. && pT < 12.) _h_sig[0]->fill("P P --> Lc X"s);
      _h_sig[1]->fill("P P --> Lc X"s);
      _c_Lambda->fill();
    }
    else {
      _h_D->fill(pT);
      _c_D->fill();
    }
  }
}


/// Normalise histograms etc., after the run
void finalize() {
  double factor = crossSection() / microbarn / sumOfWeights();
  scale(_h_Lambda, factor);
  scale(_h_D, factor);
  scale(_h_sig, factor);

  Estimate1DPtr tmp;
  // ratio prompt Lambda/D0
  book(tmp, 4, 1, 1);
  divide(_h_Lambda, _h_D, tmp);

  // ratio lambda/D0 integrated
  Estimate0D e0d = *_c_Lambda / *_c_D;
  BinnedEstimatePtr<string> ratio;
  book(ratio, 8, 1, 1);
  auto& b = ratio->bin(1);
  b.setVal(e0d.val());
  if (e0d.numErrs() != 0) b.setErr(e0d.err());
}

/// @}


/// @name Histograms
/// @{
Histo1DPtr _h_Lambda, _h_D;
BinnedHistoPtr<string> _h_sig[2];
CounterPtr _c_D, _c_Lambda;
/// @}

};

RIVET_DECLARE_PLUGIN(ALICE_2021_I1829739);

} ```