Rivet analyses referenceTASSO_1986_I228876$\gamma\gamma\to\pi^+\pi^-\pi^0$ between 0.9 and 2.4 GeVExperiment: TASSO (DORIS) Inspire ID: 228876 Status: VALIDATED Authors:
Beam energies: ANY Run details:
Measurement of the differential cross section for $\gamma\gamma\to\pi^+\pi^-\pi^0$for $0.9 \text{GeV} < W < 2.4 \text{GeV}$. The cross section is measured as a function of the centre-of-mass energy of the photonic collision for the final state only Source code: TASSO_1986_I228876.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/FinalState.hh"
4
5namespace Rivet {
6
7
8 /// @brief gamma gamma -> pi+pi-pi0
9 class TASSO_1986_I228876 : public Analysis {
10 public:
11
12 /// Constructor
13 RIVET_DEFAULT_ANALYSIS_CTOR(TASSO_1986_I228876);
14
15
16 /// @name Analysis methods
17 /// @{
18
19 /// Book histograms and initialise projections before the run
20 void init() {
21 // Initialise and register projections
22 declare(FinalState(), "FS");
23 // book histos
24 if (inRange(sqrtS()/GeV,0.9,2.4)) {
25 book(_nMeson, "TMP/nMeson", refData(1, 1, 1));
26 }
27 else {
28 throw Error("Invalid CMS energy for TASSO_1986_I228876");
29 }
30 }
31
32 /// Perform the per-event analysis
33 void analyze(const Event& event) {
34 const FinalState& fs = apply<FinalState>(event, "FS");
35 // find the final-state particles
36 map<long,int> nCount;
37 int ntotal(0);
38 for (const Particle& p : fs.particles()) {
39 nCount[p.pid()] += 1;
40 ++ntotal;
41 }
42 // check the 3 meson final state
43 if (ntotal==3 && nCount[PID::PI0]==1 &&
44 nCount[PID::PIPLUS]==1 && nCount[PID::PIMINUS]==1 ) {
45 _nMeson->fill(sqrtS()/GeV);
46 }
47 }
48
49
50 /// Normalise histograms etc., after the run
51 void finalize() {
52 scale(_nMeson, crossSection()/nanobarn/sumOfWeights());
53 Estimate1DPtr tmp;
54 book(tmp,1,1,1);
55 barchart(_nMeson,tmp);
56 }
57
58 /// @}
59
60
61 /// @name Histograms
62 /// @{
63 Histo1DPtr _nMeson;
64 /// @}
65
66
67 };
68
69
70 RIVET_DECLARE_PLUGIN(TASSO_1986_I228876);
71
72}
|