rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

R209_1982_I168182

Drell Yan measurements $pp \to \mu^+\mu^- +X $ at $\sqrt{s} = 44$ and $62$ GeV at CERN ISR
Experiment: R209 (ISR CERN)
Inspire ID: 168182
Status: VALIDATED
Authors:
  • Hannes Jung hannes.jung@desy.de
References:
  • Phys. Rev. Lett., 48(1982), 302
  • DOI: 10.1103/PhysRevLett.48.302
Beams: p+ p+
Beam energies: (22.0, 22.0); (31.0, 31.0) GeV
Run details:
  • Run in pp mode (center-of-mass frame). Beam energy must be specified as analysis option "ENERGY" when rivet-merging samples.

Measurements of $pp \to \mu^+\mu^- +X $ at $\sqrt{s} = 44$ and $62$ GeV are compared. The data are #taken under identical conditions utilizing clean proton-proton collisions from the CERN intersecting storage rings and confirm scaling to 5%. Data encoded by Mike Whalley, read from the figure in the paper. Note also, cross sections are quoted in [nb]. The errors shown are statistical only. There is an additional 15% overall systematic uncertainty. Beam energy must be specified as analysis option "ENERGY" when rivet-merging samples.

Source code: R209_1982_I168182.cc
  1// -*- C++ -*-
  2#include "Rivet/Analysis.hh"
  3#include "Rivet/Projections/FinalState.hh"
  4#include "Rivet/Projections/FastJets.hh"
  5#include "Rivet/Projections/ZFinder.hh"
  6
  7namespace Rivet {
  8
  9
 10  /// Drell Yan measurements $pp \to \mu^+\mu^- +X $ at $\sqrt{s} = 44$ and $62$ GeV at CERN ISR
 11  class R209_1982_I168182 : public Analysis {
 12  public:
 13
 14    /// Constructor
 15    RIVET_DEFAULT_ANALYSIS_CTOR(R209_1982_I168182);
 16
 17    /// @name Analysis methods
 18    ///@{
 19
 20    /// Book histograms and initialise projections before the run
 21    void init() {
 22
 23      // Initialise and register projections
 24      FinalState fs;
 25      declare(fs, "FS");
 26      Cut cut = Cuts::etaIn(-10.,10.);
 27      ZFinder zfinder(fs, cut, PID::MUON, 3.5*GeV, 18.0*GeV, 0.1, ZFinder::ClusterPhotons::NONE );
 28      declare(zfinder, "ZFinder");
 29
 30      // Book histograms
 31      if (isCompatibleWithSqrtS(62., sqrts_tol)) {
 32        MSG_DEBUG("R209: running with 62: " << sqrtS()/GeV);
 33        book(_hist_M,1, 1, 1);
 34        book(_hist_pT ,2, 1, 1);
 35      }
 36      else if (isCompatibleWithSqrtS(44., sqrts_tol)) {
 37        MSG_DEBUG("R209: running with 44: " << sqrtS()/GeV);
 38        book(_hist_M,1, 1, 2);
 39      }
 40      int Nbin = 50;
 41      book(_h_m_DiMuon,"DiMuon_mass",Nbin,0.0,30.0);
 42      book(_h_pT_DiMuon,"DiMuon_pT",Nbin,0.0,20.0);
 43      book(_h_y_DiMuon,"DiMuon_y",Nbin,-8.0, 8.0);
 44      book(_h_xF_DiMuon,"DiMuon_xF",Nbin, -1.5,  1.5);
 45    }
 46
 47
 48    /// Perform the per-event analysis
 49    void analyze(const Event& event) {
 50
 51      const ZFinder& zfinder = applyProjection<ZFinder>(event, "ZFinder");
 52      if (zfinder.particles().size() >= 1) {
 53
 54        double Zmass = zfinder.bosons()[0].momentum().mass()/GeV;
 55        double Zpt   = zfinder.bosons()[0].momentum().pT()/GeV;
 56        double Zpl   = zfinder.bosons()[0].momentum().pz()/GeV;
 57        double Zy    = zfinder.bosons()[0].momentum().rapidity();
 58        double xf = 2.*Zpl/sqrtS() ;
 59
 60        _h_xF_DiMuon->fill(xf);
 61        _h_m_DiMuon->fill(Zmass/GeV);
 62        _h_pT_DiMuon->fill(Zpt);
 63        _h_y_DiMuon->fill(Zy);
 64        if (isCompatibleWithSqrtS(62, sqrts_tol)) {
 65          if (Zmass > 0) _hist_M->fill(Zmass);
 66          if (Zmass > 5. && Zmass < 8.) {
 67            if (Zpt > 0) _hist_pT->fill(Zpt,1./2./Zpt);
 68          }
 69        }
 70        else if (isCompatibleWithSqrtS(44, sqrts_tol)) {
 71          if (Zmass > 0) _hist_M->fill(Zmass);
 72        }
 73      }
 74    }
 75
 76
 77    /// Normalise histograms etc., after the run
 78    void finalize() {
 79      normalize(_h_m_DiMuon);
 80      normalize(_h_pT_DiMuon);
 81      normalize(_h_xF_DiMuon);
 82      normalize(_h_y_DiMuon);
 83      scale(_hist_pT,crossSection()/nanobarn/(sumOfWeights()));
 84      scale(_hist_M,crossSection()/nanobarn/(sumOfWeights()));
 85    }
 86
 87    ///@}
 88
 89
 90    /// @name Histograms
 91    ///@{
 92    Histo1DPtr _hist_pT, _hist_M ;
 93    Histo1DPtr _h_m_DiMuon ;
 94    Histo1DPtr _h_pT_DiMuon;
 95    Histo1DPtr _h_y_DiMuon;
 96    Histo1DPtr _h_xF_DiMuon;
 97    ///@}
 98
 99    /// Energy comparison tolerance
100    const double sqrts_tol = 0.1;
101
102  };
103
104
105  RIVET_DECLARE_PLUGIN(R209_1982_I168182);
106
107}