Rivet analyses referenceBESIII_2022_I2611489Positron momentum spectrum in semileptonic Λ+c decayExperiment: BESIII (BEPC) Inspire ID: 2611489 Status: VALIDATED NOHEPDATA Authors:
Beam energies: (2.0, 2.0); (3.0, 3.0) GeV Run details:
Measurement of the positron momentum spectrum in the lab frame for semileptonic Λ+c decay. Source code: BESIII_2022_I2611489.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/UnstableParticles.hh"
4
5namespace Rivet {
6
7
8 /// @brief Semileptonic Lambda_c+
9 class BESIII_2022_I2611489 : public Analysis {
10 public:
11
12 /// Constructor
13 RIVET_DEFAULT_ANALYSIS_CTOR(BESIII_2022_I2611489);
14
15
16 /// @name Analysis methods
17 /// @{
18
19 /// Book histograms and initialise projections before the run
20 void init() {
21 // projections
22 declare(UnstableParticles(Cuts::abspid==4122),"UFS");
23 // histos
24 book(_h,1,1,1);
25 }
26
27 void findDecayProducts(Particle parent, Particles & em, Particles & ep,
28 Particles & nue, Particles & nueBar) {
29 for(const Particle & p : parent.children()) {
30 if(p.pid() == PID::EMINUS) {
31 em.push_back(p);
32 }
33 else if(p.pid() == PID::EPLUS) {
34 ep.push_back(p);
35 }
36 else if(p.pid() == PID::NU_E) {
37 nue.push_back(p);
38 }
39 else if(p.pid() == PID::NU_EBAR) {
40 nueBar.push_back(p);
41 }
42 else if(!PID::isHadron(p.pid())) {
43 findDecayProducts(p,em,ep,nue,nueBar);
44 }
45 }
46 }
47
48 /// Perform the per-event analysis
49 void analyze(const Event& event) {
50 for(const Particle & p : apply<UnstableParticles>(event, "UFS").particles()) {
51 Particles em,ep,nue,nueBar;
52 findDecayProducts(p,em,ep,nue,nueBar);
53 if(em.size()==1 && nueBar.size()==1) {
54 double pmod = em[0].momentum().p3().mod();
55 _h->fill(pmod);
56 }
57 else if(ep.size()==1 && nue.size()==1) {
58 double pmod = ep[0].momentum().p3().mod();
59 _h->fill(pmod);
60 }
61 }
62 }
63
64
65 /// Normalise histograms etc., after the run
66 void finalize() {
67 normalize(_h,1.,false);
68 }
69
70 /// @}
71
72
73 /// @name Histograms
74 /// @{
75 Histo1DPtr _h;
76 /// @}
77
78
79 };
80
81
82 RIVET_DECLARE_PLUGIN(BESIII_2022_I2611489);
83
84}
|