rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

CELLO_1989_I266414

$\gamma\gamma\to K^0_SK^\pm\pi^\mp$ for centre-of-mass energies between 1.4 and 4.2 GeV
Experiment: CELLO (PETRA)
Inspire ID: 266414
Status: VALIDATED
Authors:
  • Peter Richardson
References:
  • Z.Phys.C 42 (1989) 367
Beams: 22 22
Beam energies: ANY
Run details:
  • gamma gamma to hadrons, K0S mesons must be set stable

Measurement of the differential cross section for $\gamma\gamma\to K^0_SK^\pm\pi^\mp$ for $1.4 \text{GeV} < W < 4.2 \text{GeV}$. The cross section is measured as a function of the centre-of-mass energy of the photonic collision.

Source code: CELLO_1989_I266414.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/FinalState.hh"
 4
 5namespace Rivet {
 6
 7
 8  /// @brief gamma gamma -> KKpi
 9  class CELLO_1989_I266414 : public Analysis {
10  public:
11
12    /// Constructor
13    RIVET_DEFAULT_ANALYSIS_CTOR(CELLO_1989_I266414);
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,1.4,4.2)) {
25       	book(_nKKPi,"TMP/nKKPi");
26      }
27      else {
28        throw Error("Invalid CMS energy for CELLO_1989_I266414");
29      }
30    }
31
32
33    /// Perform the per-event analysis
34    void analyze(const Event& event) {
35      const FinalState& fs = apply<FinalState>(event, "FS");
36      // find the final-state particles
37      map<long,int> nCount;
38      int ntotal(0);
39      for (const Particle& p : fs.particles()) {
40        nCount[p.pid()] += 1;
41        ++ntotal;
42      }
43      if (ntotal!=3) vetoEvent;
44      if (nCount[PID::K0S]==1 &&
45          ( (nCount[PID::PIPLUS ]==1 && nCount[PID::KMINUS]==1 ) ||
46            (nCount[PID::PIMINUS]==1 && nCount[PID::KPLUS]==1 ))) {
47        _nKKPi->fill();
48      }
49    }
50
51
52    /// Normalise histograms etc., after the run
53    void finalize() {
54      scale(_nKKPi, crossSection()/nanobarn/sumOfWeights());
55      Estimate1DPtr mult;
56      book(mult, 1, 1, 1);
57      for (auto& b : mult->bins()) {
58        if (inRange(sqrtS()/GeV, b.xMin(), b.xMax())) {
59          b.set(_nKKPi->val(), _nKKPi->err());
60        }
61      }
62    }
63
64    /// @}
65
66
67    /// @name Histograms
68    /// @{
69    CounterPtr _nKKPi;
70    /// @}
71
72
73  };
74
75
76  RIVET_DECLARE_PLUGIN(CELLO_1989_I266414);
77
78}