Rivet analyses referenceALICE_2021_I1863039$\Xi_c^ 0 $ production at 5.02 TeVExperiment: ALICE (LHC) Inspire ID: 1863039 Status: VALIDATED Authors:
Beam energies: (2510.0, 2510.0) GeV Run details:
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}
|