rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

HERA_2015_I1353667

Combined H1/ZEUS $D^*$ production cross-sections in DIS
Experiment: H1/ZEUS (HERA)
Inspire ID: 1353667
Status: UNVALIDATED
Authors:
  • Andy Buckley
References:
  • JHEP 1509 (2015) 149
  • DOI:10.1007/JHEP09(2015)149
  • DESY-15-037
  • arxiv:1503.06042
  • http://www-h1.desy.de/publications/htmlsplit/DESY-15-037.long.poster.html
Beams: p+ e-, p+ e+
Beam energies: (159.0, 159.0) GeV
Run details:
  • Inclusive DIS events. $Q^2$ cut must be lower than 1.5 $\text{GeV}^2$.

H1 and ZEUS combined differential cross-sections for inclusive $D^{*\pm}$ production in deep-inelastic $ep$ scattering at HERA. The cross-sections are combined in the common visible phase-space region of photon virtuality $Q^2 > 5 \text{GeV}^2$, electron inelasticity $0.02 < y < 0.7$, and the $D^{*\pm}$ meson's transverse momentum $p_T(D^*) > 1.5 \text{GeV}$ and pseudorapidity $|\eta(D^*)| < 1.5$. The combination procedure takes into account all correlations. Double-differential cross sections $d2\sigma/dQ^2 dy$ are combined with earlier $D^{*\pm}$ data, extending the kinematic range down to $Q^2 > 1.5 \text{GeV}^2$.

Source code: HERA_2015_I1353667.cc
  1// -*- C++ -*-
  2#include "Rivet/Analysis.hh"
  3#include "Rivet/Projections/FinalState.hh"
  4#include "Rivet/Projections/DISKinematics.hh"
  5#include "Rivet/Projections/UnstableParticles.hh"
  6
  7namespace Rivet {
  8
  9
 10  /// @brief Combined H1/ZEUS D* production cross-sections in DIS
 11  class HERA_2015_I1353667 : public Analysis {
 12  public:
 13
 14    /// Constructor
 15    RIVET_DEFAULT_ANALYSIS_CTOR(HERA_2015_I1353667);
 16
 17
 18    /// @name Analysis methods
 19    /// @{
 20
 21    /// Book histograms and initialise projections before the run
 22    void init() {
 23
 24      // Initialise and register projections
 25      // declare(FinalState(Cuts::abseta < 5 && Cuts::pT > 100*MeV), "FS");
 26      // FinalState fs;
 27      declare(DISKinematics(), "Kinematics");
 28      declare(UnstableParticles(), "Dstars");
 29      //Cuts::abspid == PID::DSTARPLUS
 30
 31      // Book histograms
 32      book(_h_pTD, 1, 1, 1);
 33      book(_h_etaD, 2, 1, 1);
 34      book(_h_zD, 3, 1, 1);
 35      book(_h_Q2, 4, 1, 1);
 36      book(_h_y, 5, 1, 1);
 37      book(_h_Q2y, 6, 1, 1);
 38    }
 39
 40
 41    /// Perform the per-event analysis
 42    void analyze(const Event& event) {
 43
 44      // Determine kinematics, including event orientation
 45      const DISKinematics& kin = apply<DISKinematics>(event, "Kinematics");
 46      const int orientation = kin.orientation();
 47
 48      // Q2 and inelasticity cuts
 49      if (!inRange(kin.Q2(), 1.5*GeV2, 1000*GeV2)) vetoEvent;
 50      if (!inRange(kin.y(), 0.02, 0.7)) vetoEvent;
 51
 52
 53      // D* reconstruction
 54      const Particles unstables = apply<ParticleFinder>(event, "Dstars")
 55        .particles(Cuts::pT > 1.5*GeV && Cuts::abseta < 1.5);
 56      const Particles dstars = select(unstables, [](const Particle& p){ return p.abspid() == PID::DSTARPLUS; });
 57      if (dstars.empty()) vetoEvent;
 58      MSG_DEBUG("#D* = " << dstars.size());
 59      const Particle& dstar = dstars.front();
 60      const double zD = (dstar.E() - orientation*dstar.pz()) / (2*kin.beamLepton().E()*kin.y());
 61
 62      // Single-differential histograms with higher low-Q2 cut
 63      if (kin.Q2() > 5*GeV2) {
 64        _h_pTD->fill(dstar.pT()/GeV);
 65        _h_etaD->fill(orientation*dstar.eta());
 66        _h_zD->fill(zD/GeV);
 67        _h_Q2->fill(kin.Q2()/GeV2);
 68        _h_y->fill(kin.y());
 69      }
 70
 71      // // Double-differential (y,Q2) histograms
 72      // _h_Q2y->fill(kin.Q2()/GeV2, kin.y());
 73
 74    }
 75
 76
 77    /// Normalise histograms etc., after the run
 78    void finalize() {
 79      const double sf = crossSection()/nanobarn/sumOfWeights();
 80      scale(_h_pTD, sf);
 81      scale(_h_etaD, sf);
 82      scale(_h_zD, sf);
 83      scale(_h_Q2, sf);
 84      scale(_h_y, sf);
 85    }
 86
 87    /// @}
 88
 89
 90    /// @name Histograms
 91    /// @{
 92    Histo1DPtr _h_pTD, _h_etaD, _h_zD, _h_Q2, _h_y;
 93    Histo2DPtr _h_Q2y;
 94    /// @}
 95
 96
 97  };
 98
 99
100  RIVET_DECLARE_PLUGIN(HERA_2015_I1353667);
101
102
103}