Rivet analyses


title: 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

```c++ // -- 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);

} ```