Rivet analyses referenceBELLE_2002_I566127Mass distributions in $\Lambda_c^+\to \Sigma^+ K^+K^-$ and $\Lambda_c^+\to \Lambda^0K^0_SK^+$Experiment: BELLE (KEKB) Inspire ID: 566127 Status: VALIDATED NOHEPDATA Authors:
Beam energies: ANY
Mass distributions in $\Lambda_c^+\to \Sigma^+ K^+K^-$ and $\Lambda_c^+\to \Lambda^0K^0_SK^+$. The data were read from the plots in the paper and are not corrected. The background given was subtracted. The statistics are fairly low, however these are the only distributions available for these modes. Source code: BELLE_2002_I566127.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 Lambda_c decays
10 class BELLE_2002_I566127 : public Analysis {
11 public:
12
13 /// Constructor
14 RIVET_DEFAULT_ANALYSIS_CTOR(BELLE_2002_I566127);
15
16
17 /// @name Analysis methods
18 /// @{
19
20 /// Book histograms and initialise projections before the run
21 void init() {
22 // Initialise and register projections
23 UnstableParticles ufs = UnstableParticles(Cuts::abspid==4122);
24 declare(ufs, "UFS");
25 DecayedParticles LAMBDAC(ufs);
26 LAMBDAC.addStable(PID::PI0);
27 LAMBDAC.addStable(PID::K0S);
28 LAMBDAC.addStable( 3122);
29 LAMBDAC.addStable(-3122);
30 LAMBDAC.addStable( 3222);
31 LAMBDAC.addStable(-3222);
32 declare(LAMBDAC, "LAMBDAC");
33 // histos
34 for (unsigned int ix=0;ix<3;++ix) {
35 book(_h[ix],1+ix,1,1);
36 }
37 }
38
39
40 /// Perform the per-event analysis
41 void analyze(const Event& event) {
42 DecayedParticles LAMBDAC = apply<DecayedParticles>(event, "LAMBDAC");
43 // loop over particles
44 for (unsigned int ix=0;ix<LAMBDAC.decaying().size();++ix) {
45 int sign = LAMBDAC.decaying()[ix].pid()/LAMBDAC.decaying()[ix].abspid();
46 if ((LAMBDAC.decaying()[ix].pid()>0 && LAMBDAC.modeMatches(ix,3,mode1 )) ||
47 (LAMBDAC.decaying()[ix].pid()<0 && LAMBDAC.modeMatches(ix,3,mode1CC))) {
48 const Particle& sig = LAMBDAC.decayProducts()[ix].at( sign*3222)[0];
49 const Particle& Kp = LAMBDAC.decayProducts()[ix].at( sign*321 )[0];
50 const Particle& Km = LAMBDAC.decayProducts()[ix].at(-sign*321 )[0];
51 _h[0]->fill((Kp .mom()+Km.mom()).mass());
52 _h[1]->fill((sig.mom()+Km.mom()).mass());
53 }
54 else if ((LAMBDAC.decaying()[ix].pid()>0 && LAMBDAC.modeMatches(ix,3,mode2)) ||
55 (LAMBDAC.decaying()[ix].pid()<0 && LAMBDAC.modeMatches(ix,3,mode2CC))) {
56 const Particle& lam = LAMBDAC.decayProducts()[ix].at(sign*3122)[0];
57 const Particle& K0 = LAMBDAC.decayProducts()[ix].at( 310 )[0];
58 _h[2]->fill((lam.mom()+K0.mom()).mass());
59 }
60 }
61 }
62
63
64 /// Normalise histograms etc., after the run
65 void finalize() {
66 normalize(_h, 1.0, false);
67 }
68
69 /// @}
70
71
72 /// @name Histograms
73 /// @{
74 Histo1DPtr _h[3];
75 const map<PdgId,unsigned int> mode1 = { { 3222,1}, { 321,1}, {-321,1} };
76 const map<PdgId,unsigned int> mode1CC = { {-3222,1}, { 321,1}, {-321,1} };
77 const map<PdgId,unsigned int> mode2 = { { 3122,1}, { 310,1}, { 321,1} };
78 const map<PdgId,unsigned int> mode2CC = { {-3122,1}, { 310,1}, {-321,1} };
79 /// @}
80
81
82 };
83
84
85 RIVET_DECLARE_PLUGIN(BELLE_2002_I566127);
86
87}
|