Rivet analyses referenceA2_2014_I1297221Kinematic distributions in the decay $\eta\to\pi^0\gamma\gamma$Experiment: A2 (MAMI) Inspire ID: 1297221 Status: VALIDATED Authors:
Beam energies: ANY Run details:
Measurement of kinematic distributions in the decay $\eta\to\pi^0\gamma\gamma$. Source code: A2_2014_I1297221.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 eta -> pi0 gamma gamma
10 class A2_2014_I1297221 : public Analysis {
11 public:
12
13 /// Constructor
14 RIVET_DEFAULT_ANALYSIS_CTOR(A2_2014_I1297221);
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::pid==PID::ETA);
24 declare(ufs, "UFS");
25 DecayedParticles ETA(ufs);
26 ETA.addStable(PID::PI0);
27 ETA.addStable(PID::K0S);
28 declare(ETA, "ETA");
29 // histos
30 for(unsigned int ix=0;ix<3;++ix) book(_h[ix],1,1,1+ix);
31 book(_c,"TMP/nEta");
32 }
33
34
35 /// Perform the per-event analysis
36 void analyze(const Event& event) {
37 static const map<PdgId,unsigned int> & mode = { {111,1}, { 22,2} };
38 DecayedParticles ETA = apply<DecayedParticles>(event, "ETA");
39 // loop over particles
40 for(unsigned int ix=0;ix<ETA.decaying().size();++ix) {
41 _c->fill();
42 // select right decay mode
43 if ( !ETA.modeMatches(ix,3,mode)) continue;
44 const Particles & gam = ETA.decayProducts()[ix].at(22);
45 double mass2 = (gam[0].momentum()+gam[1].momentum()).mass2();
46 for(unsigned int ix=0;ix<3;++ix) _h[ix]->fill(mass2);
47 }
48 }
49
50
51 /// Normalise histograms etc., after the run
52 void finalize() {
53 // eta width in eV from PDG2022
54 double gam = 1.31e3;
55 for(unsigned int ix=0;ix<3;++ix) {
56 scale(_h[ix],gam / *_c);
57 }
58 }
59
60 /// @}
61
62
63 /// @name Histograms
64 /// @{
65 Histo1DPtr _h[3];
66 CounterPtr _c;
67 /// @}
68
69
70 };
71
72
73 RIVET_DECLARE_PLUGIN(A2_2014_I1297221);
74
75}
|