Rivet analyses

Prompt Ξc0 and Ξc+ analysis

Experiment: ALICE (LHC)

Inspire ID: 1862793

Status: VALIDATED

Authors: - Yonne Lourens

References: - Phys. Rev. Lett. 127 (2021) 272001 - DOI:10.1103/PhysRevLett.127.272001 - arXiv: 2105.05187 - Expt page: ALICE-7074

Beams: p+ p+

Beam energies: (6500.0, 6500.0)GeV

Run details: - Minimum bias events

The pT-differential cross sections of prompt charm-strange baryons Ξc0 and Ξc+ were measured at midrapidity (|y| < 0.5) in proton–proton (pp) collisions at a centre-of-mass energy $\sqrt{s}=$13TeV with the ALICE detector at the LHC. The Ξc0 baryon was reconstructed via both the semileptonic decay (Ξe+νe) and the hadronic decay (Ξπ+) channels. The Ξc+ baryon was reconstructed via the hadronic decay (Ξπ+π+) channel. The branching-fraction ratio ${BR}(\Xi_c^0\rightarrow \Xi^-e^+\nu_e)/{\rm BR}(\Xi_c^0\rightarrow \Xi^{-}\pi^+)=$ 1.38 ± 0.14 (stat) ± 0.22 (syst) was measured with a total uncertainty reduced by a factor of about 3 with respect to the current world average reported by the Particle Data Group. The transverse momentum (pT) dependence of the Ξc0- and Ξc+-baryon production relative to the D0-meson and to the Σc0, +, ++- and Λc+-baryon production are reported. The baryon-to-meson ratio increases towards low pT up to a value of approximately 0.3. The measurements are compared with various models that take different hadronisation mechanisms into consideration. The results provide stringent constraints to these theoretical calculations and additional evidence that different processes are involved in charm hadronisation in electron–positron (e+e) and hadronic collisions.

Source code:ALICE_2021_I1862793.cc

// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/UnstableParticles.hh"

namespace Rivet {

  /// @brief Prompt charm-strange baryons in pp at 13 TeV
  class ALICE_2021_I1862793 : public Analysis {
  public:

    RIVET_DEFAULT_ANALYSIS_CTOR(ALICE_2021_I1862793);

    void init() {

      const UnstableParticles up(Cuts::absrap < 0.5);
      declare(up, "up");

      book(_h_X0,1,1,1);                                     // XiC0 production cross section
      book(_h_XP,2,1,1);                                     // XiC+ production cross section
      book(_h_X0D0,3,1,1);                                   // ratio of production cross section between XiC0 and D0
      book(_h_XPDP,4,1,1);                                   // ratio of production cross section between XiC+ and D0
      book(_h_X0Lc,5,1,1);                                   // ratio of production cross section between XiC and LambdaC
      book(_h_XcSc,6,1,1);                                   // ratio of production cross section between XiC and SigmaC
      book(_h_X0Iint,"TMP/Xint", refData(7,1,1));            // XiC0 pt-integrated production cross section with 1<pt<12 GeV/c
      book(_h_X0Oint,8,1,1);                                 // XiC0 pt-integrated production cross section with pt>0 GeV/c
      book(_h_XPint,9,1,1);                                  // XiC+ pt-integrated production cross section with 4<pt<12 GeV/c


      book(_h_X0D,"TMP/_h_X0D",refData(3,1,1));              // XiC0 production cross section
      book(_h_D0,"TMP/_h_D0",refData(3,1,1));                // D0 production cross section

      book(_h_DP,"TMP/_h_DP",refData(4,1,1));                // D0 production cross section
      book(_h_XPD,"TMP/_h_XPD",refData(4,1,1));              // XiC+ production cross section

      book(_h_Lc,"TMP/_h_Lc",refData(5,1,1));                // LambdaC production cross section
      book(_h_X0L,"TMP/_h_X0L",refData(5,1,1));              // XiC0 production cross section

      book(_h_Sc,"TMP/_h_Sc",refData(6,1,1));                // SigmaC production cross section
      book(_h_Xc,"TMP/_h_Xc",refData(6,1,1));                // XiC production cross section


    }


    void analyze(const Event& event) {
      if(_edges.empty()) _edges=_h_X0Oint->xEdges();
      const UnstableParticles& up = apply<UnstableParticles>(event, "up");

      for (const Particle& p : up.particles()) {
        if(p.fromBottom())
          continue;

        else{
          if(p.abspid() == 4222 || p.abspid() == 4212 || p.abspid() == 4112){
            _h_Sc->fill(p.pT()/GeV);
          }

          else if(p.abspid() == 4122){
            _h_Lc->fill(p.pT()/GeV);
          }

          else if(p.abspid() == 421){
            _h_D0->fill(p.pT()/GeV);
            _h_DP->fill(p.pT()/GeV);
          }

          else if(p.abspid() == 4132){
            _h_X0->fill(p.pT()/GeV);
            _h_X0D->fill(p.pT()/GeV);
            _h_Xc->fill(p.pT()/GeV);
            _h_X0L->fill(p.pT()/GeV);
            _h_X0Oint->fill(_edges[0]);

            if(p.pT()/GeV < 12.0 && p.pT()/GeV >= 1.0){
              _h_X0Iint->fill(1);
            }

          }

          else if(p.abspid() == 4232){
            _h_XP->fill(p.pT()/GeV);
            _h_Xc->fill(p.pT()/GeV);
            _h_XPD->fill(p.pT()/GeV);

             if(p.pT()/GeV < 12.0 && p.pT()/GeV >= 4.0){
              _h_XPint->fill(8);
            }
          }
        }
      }
    }

    void finalize() {

      scale(_h_Sc,              crossSection()/(microbarn*2*sumOfWeights()));
      scale(_h_Lc,              crossSection()/(microbarn*2*sumOfWeights()));
      scale(_h_D0,              crossSection()/(microbarn*2*sumOfWeights()));
      scale(_h_DP,              crossSection()/(microbarn*2*sumOfWeights()));

      scale(_h_Xc,              crossSection()/(microbarn*2*sumOfWeights()));
      scale(_h_X0,              crossSection()/(microbarn*2*sumOfWeights()));
      scale(_h_XP,              crossSection()/(microbarn*2*sumOfWeights()));

      scale(_h_X0D,              crossSection()/(microbarn*2*sumOfWeights()));
      scale(_h_XPD,              crossSection()/(microbarn*2*sumOfWeights()));
      scale(_h_X0L,              crossSection()/(microbarn*2*sumOfWeights()));

      divide(_h_X0D, _h_D0, _h_X0D0);
      divide(_h_XPD, _h_DP, _h_XPDP);
      divide(_h_X0L, _h_Lc, _h_X0Lc);
      divide(_h_Xc, _h_Sc, _h_XcSc);

      scale(_h_X0Iint,              crossSection()/(microbarn*2*sumOfWeights()));
      Estimate1DPtr tmp;
      book(tmp,7,1,1);
      barchart(_h_X0Iint,tmp);
      scale(_h_X0Oint,              crossSection()/(microbarn*2*sumOfWeights()));
      scale(_h_XPint,               crossSection()/(microbarn*2*sumOfWeights()));

    }

    Histo1DPtr _h_X0, _h_XP, _h_X0Iint, _h_XPint, _h_Sc, _h_Lc, _h_D0, _h_DP, _h_Xc, _h_X0D, _h_XPD, _h_X0L;
    Estimate1DPtr _h_X0D0, _h_XPDP, _h_X0Lc, _h_XcSc;
    BinnedHistoPtr<string> _h_X0Oint;
    vector<string> _edges;

  };


  RIVET_DECLARE_PLUGIN(ALICE_2021_I1862793);

}