rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

JADE_1986_I231554

$\gamma\gamma\to p \bar{p}$ for centre-of-mass energies between 2 and 2.6 GeV
Experiment: JADE (PETRA)
Inspire ID: 231554
Status: VALIDATED
Authors:
  • Peter Richardson
References:
  • Phys.Lett.B 130 (1983) 449-453
Beams: 22 22
Beam energies: ANY
Run details:
  • gamma gamma to hadrons

Measurement of the differential cross section for $\gamma\gamma\to p \bar{p}$ for $2 \text{GeV} < W < 2.6 \text{GeV}$. Both the cross section as a function of the centre-of-mass energy of the photonic collision, and the differential cross section with respect to the proton scattering angle are measured.

Source code: JADE_1986_I231554.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/FinalState.hh"
 4
 5namespace Rivet {
 6
 7
 8  /// @brief gamma gamma -> p pbar
 9  class JADE_1986_I231554 : public Analysis {
10  public:
11
12    /// Constructor
13    RIVET_DEFAULT_ANALYSIS_CTOR(JADE_1986_I231554);
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,2.,2.6)) {
25       	book(_cProton, "TMP/proton", refData(1,1,1));
26        book(_h_cTheta,2,1,1);
27      }
28      else {
29        throw Error("Invalid CMS energy for JADE_1986_I231554");
30      }
31    }
32
33
34    /// Perform the per-event analysis
35    void analyze(const Event& event) {
36      Particles part = apply<FinalState>(event,"FS").particles();
37      if(part.size()!=2) vetoEvent;
38      double cTheta(0.);
39      bool foundP(false),foundM(false);
40      for (const Particle& p : part) {
41        if (p.pid()==PID::PROTON) {
42          foundP=true;
43          cTheta = abs(p.momentum().z()/p.momentum().p3().mod());
44        }
45        else if (p.pid()==PID::ANTIPROTON) foundM=true;
46      }
47      if (!foundP || !foundM) vetoEvent;
48      if (cTheta<=0.6)    _cProton->fill(sqrtS()/GeV);
49      if (_h_cTheta) _h_cTheta->fill(cTheta);
50    }
51
52
53    /// Normalise histograms etc., after the run
54    void finalize() {
55      const double fact = crossSection()/nanobarn/sumOfWeights();
56      if (_h_cTheta) scale(_h_cTheta, fact);
57      scale(_cProton, fact);
58      Estimate1DPtr tmp;
59      book(tmp,1,1,1);
60      barchart(_cProton,tmp);
61    }
62
63    /// @}
64
65
66    /// @name Histograms
67    /// @{
68    Histo1DPtr _h_cTheta, _cProton;
69    /// @}
70
71
72  };
73
74
75  RIVET_DECLARE_PLUGIN(JADE_1986_I231554);
76
77}