rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

OPAL_2007_I734955

Inclusive charged hadrons in gm+gm
Experiment: OPAL (LEP II)
Inspire ID: 734955
Status: UNVALIDATED
Authors:
  • I. Helenius
References:
  • Phys.Lett. B651 (2007) 92-101
  • CERN-PH-EP-2006-038
  • arXiv: hep-ex/0612045
Beams: e+ e-
Beam energies: (91.5, 91.5); (104.5, 104.5); (98.0, 98.0) GeV
Run details:
  • e+e- collisions with center-of-mass energies from 183 GeV to 209 GeV; Inclusive production of charged hadrons in photon-photon collisions; Differential cross section as a function of p_T and \eta;

OPAL measurement for inclusive charged hadrons in photon-photon collisions et LEP-II. Data binned in invariant mass of the gm+gm system (W) with bins 10 < W < 125 GeV, 10 < W < 30 GeV, 30 < W < 50 GeV and 50 < W < 125 GeV. Charged particles within $|\eta| < 1.5$ and $p_T>120$ MeV. Maximum photon virtuality of $Q^2 < 4.5$ GeV$^2$.

Source code: OPAL_2007_I734955.cc
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/Beam.hh"
#include "Rivet/Projections/GammaGammaFinalState.hh"
#include "Rivet/Projections/GammaGammaKinematics.hh"

namespace Rivet {


  /// @brief OPAL charged hadron production in photon-photon collisions.
  class OPAL_2007_I734955 : public Analysis {
  public:

    /// Constructor
    RIVET_DEFAULT_ANALYSIS_CTOR(OPAL_2007_I734955);

    /// @name Analysis methods
    //@{

    // Book projections and histograms
    void init() {

      // Kinematics for leptons and intermediate photons.
      const GammaGammaKinematics gmgmkin;
      declare(gmgmkin, "Kinematics");

      const GammaGammaFinalState gmgmfs(Cuts::abseta < 1.5 && Cuts::pT > 0.12*GeV && Cuts::charge != 0, gmgmkin);
      declare(gmgmfs, "FS");

      // pT spectra of charged particles in W bins.
      book(_h_pTch[0], 1, 1, 1);
      book(_h_pTch[1], 2, 1, 1);
      book(_h_pTch[2], 3, 1, 1);
      book(_h_pTch[3], 4, 1, 1);

      // eta distributions of charged particles in W bins.
      book(_h_etach[0], 5, 1, 1);
      book(_h_etach[1], 6, 1, 1);
      book(_h_etach[2], 7, 1, 1);
      book(_h_etach[3], 8, 1, 1);

      // pT spectra of charged particles with L3-type W cuts.
      book(_h_pTch2[0], 9, 1, 1);
      book(_h_pTch2[1], 10, 1, 1);

      // pT spectra of charged pions with L3-type W cuts.
      book(_h_pTpi[0], 11, 1, 1);
      book(_h_pTpi[1], 12, 1, 1);
    }

    // Do the analysis
    void analyze(const Event& event) {

      // Calculate invariant mass of photon pair.
      const GammaGammaKinematics& kinematics = apply<GammaGammaKinematics>(event, "Kinematics");

      const double Wgmgm = sqrt(kinematics.W2());
      const double Q2A = kinematics.Q2().first;
      const double Q2B = kinematics.Q2().second;

      // Reject events where photon virtuality is too large.
      if ( Q2A > 4.5*GeV2 || Q2B > 4.5*GeV2 ) vetoEvent;

      // Loop through charged particles.
      const Particles& chParticles = apply<GammaGammaFinalState>(event, "FS").particles();
      for (const Particle& p : chParticles) {
        const double pT  = p.pT() / GeV;
        const double eta = p.abseta();

        // Fill charged-hadron pT-spectra.
        if ( inRange(Wgmgm, 10., 30. ) ) _h_pTch[0]->fill(pT);
        if ( inRange(Wgmgm, 30., 50. ) ) _h_pTch[1]->fill(pT);
        if ( inRange(Wgmgm, 50., 125.) ) _h_pTch[2]->fill(pT);
        if ( inRange(Wgmgm, 10., 125.) ) _h_pTch[3]->fill(pT);

        // Fill charged-hadron eta distributions.
        if (pT > 3.5) {
          if ( inRange(Wgmgm, 10., 30. ) ) _h_etach[0]->fill(eta);
          if ( inRange(Wgmgm, 30., 50. ) ) _h_etach[1]->fill(eta);
          if ( inRange(Wgmgm, 50., 125.) ) _h_etach[2]->fill(eta);
          if ( inRange(Wgmgm, 10., 125.) ) _h_etach[3]->fill(eta);
        }

        // Fill charged-hadron pT-spectra with only lower W bound.
        if (Wgmgm > 30.) _h_pTch2[0]->fill(pT);
        if (Wgmgm > 50.) _h_pTch2[1]->fill(pT);

        // Fill charged-pion pT-spectra with only lower W bound.
        if ((p.abspid() == PID::PIPLUS || p.abspid() == PID::PIMINUS) && eta < 1.0) {
          if (Wgmgm > 30.) _h_pTpi[0]->fill(pT);
          if (Wgmgm > 50.) _h_pTpi[1]->fill(pT);
        }

      }

    }

    // Finalize
    void finalize() {
      const double sf = crossSection()/picobarn/sumOfWeights();
      scale(_h_pTch,  sf);
      scale(_h_etach, sf);
      scale(_h_pTch2, sf);
      scale(_h_pTpi,  sf);
    }

    //@}

  private:

    /// @name Histograms
    //@{
    Histo1DPtr _h_pTch[4], _h_etach[4], _h_pTch2[2], _h_pTpi[2];
    //@}

  };

  RIVET_DECLARE_PLUGIN(OPAL_2007_I734955);

}