Rivet analyses referenceCRYSTAL_BARREL_1997_I456942η′→π+π−γ decaysExperiment: CRYSTAL_BARREL (LEAR) Inspire ID: 456942 Status: VALIDATED NOHEPDATA Authors:
Beam energies: ANY Run details:
Differential decay rates for η′→π+π−γ decays. Data read from table in paper and normalised to unity Source code: CRYSTAL_BARREL_1997_I456942.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/DecayedParticles.hh"
4#include "Rivet/Projections/UnstableParticles.hh"
5
6namespace Rivet {
7
8
9 /// @brief eta' -> pi+pi- gamma decays
10 class CRYSTAL_BARREL_1997_I456942 : public Analysis {
11 public:
12
13 /// Constructor
14 RIVET_DEFAULT_ANALYSIS_CTOR(CRYSTAL_BARREL_1997_I456942);
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==331);
24 declare(ufs, "UFS");
25 DecayedParticles ETA(ufs);
26 ETA.addStable(PID::PI0);
27 declare(ETA, "ETA");
28 // Book histograms
29 book(_h_m, 1, 1, 1);
30 }
31
32 /// Perform the per-event analysis
33 void analyze(const Event& event) {
34 static const map<PdgId,unsigned int> & mode = { {211,1}, {-211,1}, { 22,1} };
35 // Loop over eta' mesons
36 DecayedParticles ETA = apply<DecayedParticles>(event, "ETA");
37 // loop over particles
38 for(unsigned int ix=0;ix<ETA.decaying().size();++ix) {
39 // select right decay mode
40 if ( !ETA.modeMatches(ix,3,mode)) continue;
41 const Particle & pip = ETA.decayProducts()[ix].at( 211)[0];
42 const Particle & pim = ETA.decayProducts()[ix].at(-211)[0];
43 _h_m->fill((pip.momentum()+pim.momentum()).mass()/MeV);
44 }
45 }
46
47
48 /// Normalise histograms etc., after the run
49 void finalize() {
50 normalize(_h_m,1.,false);
51 }
52
53 /// @}
54
55
56 /// @name Histograms
57 /// @{
58 Histo1DPtr _h_m;
59 /// @}
60
61
62 };
63
64
65 RIVET_DECLARE_PLUGIN(CRYSTAL_BARREL_1997_I456942);
66
67}
|