Rivet analyses referenceBESIII_2024_I2792993$\chi_{c1,2}\to \Lambda\bar\Lambda^0\phi$ decaysExperiment: BESIII (BEPC) Inspire ID: 2792993 Status: VALIDATED NOHEPDATA Authors:
Beam energies: ANY Run details:
Measurements of mass distributions in $\chi_{c1,2}\to \Lambda\bar\Lambda^0\phi$ decays. The data were read from the plots in the paper and may not be corrected for efficiency but are background subtracted. Source code: BESIII_2024_I2792993.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/UnstableParticles.hh"
4#include "Rivet/Projections/DecayedParticles.hh"
5
6namespace Rivet {
7
8
9 /// @brief chi_c1,2 -> Lambda Lambdabar0 phi
10 class BESIII_2024_I2792993 : public Analysis {
11 public:
12
13 /// Constructor
14 RIVET_DEFAULT_ANALYSIS_CTOR(BESIII_2024_I2792993);
15
16 /// @name Analysis methods
17 /// @{
18
19 /// Book histograms and initialise projections before the run
20 void init() {
21 UnstableParticles ufs = UnstableParticles(Cuts::pid==20443 or
22 Cuts::pid==445);
23 declare(ufs, "UFS");
24 DecayedParticles chi(ufs);
25 chi.addStable( PID::PHI);
26 chi.addStable( PID::LAMBDA);
27 chi.addStable(-PID::LAMBDA);
28 declare(chi, "chi");
29 // histos
30 for(unsigned int ix=0;ix<2;++ix)
31 for(unsigned int iy=0;iy<3;++iy)
32 book(_h[ix][iy],1+ix,1,1+iy);
33
34 }
35
36
37 /// Perform the per-event analysis
38 void analyze(const Event& event) {
39 static const map<PdgId,unsigned int> & mode = { { 3122,1}, {-3122,1}, { 333,1} };
40 DecayedParticles chi = apply<DecayedParticles>(event, "chi");
41 for(unsigned int ix=0;ix<chi.decaying().size();++ix) {
42 if(!chi.modeMatches(ix,3,mode)) continue;
43 unsigned int imode = chi.decaying()[ix].pid()==20443 ? 0 : 1;
44 const Particle & lam = chi.decayProducts()[ix].at( 3122)[0];
45 const Particle & lamb = chi.decayProducts()[ix].at(-3122)[0];
46 const Particle & phi = chi.decayProducts()[ix].at( 333)[0];
47 _h[imode][2]->fill((lam .momentum()+lamb.momentum()).mass());
48 _h[imode][0]->fill((lam .momentum()+phi .momentum()).mass());
49 _h[imode][1]->fill((lamb.momentum()+phi .momentum()).mass());
50 }
51
52 }
53
54
55 /// Normalise histograms etc., after the run
56 void finalize() {
57 for(unsigned int ix=0;ix<2;++ix)
58 for(unsigned int iy=0;iy<3;++iy)
59 normalize(_h[ix][iy],1.,false);
60 }
61
62 /// @}
63
64 /// @name Histograms
65 /// @{
66 Histo1DPtr _h[2][3];
67 /// @}
68
69 };
70
71
72 RIVET_DECLARE_PLUGIN(BESIII_2024_I2792993);
73
74}
|