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)

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.

Source code: R209_1982_I168182.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
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/FinalState.hh"
#include "Rivet/Projections/FastJets.hh"
#include "Rivet/Projections/ZFinder.hh"

namespace Rivet {


  /// Drell Yan measurements $pp \to \mu^+\mu^- +X $ at $\sqrt{s} = 44$ and $62$ GeV at CERN ISR
  class R209_1982_I168182 : public Analysis {
  public:

    /// Constructor
    DEFAULT_RIVET_ANALYSIS_CTOR(R209_1982_I168182);

    /// @name Analysis methods
    ///@{

    /// Book histograms and initialise projections before the run
    void init() {

      // Initialise and register projections
      FinalState fs;
      declare(fs, "FS");
      Cut cut = Cuts::etaIn(-10.,10.);
      ZFinder zfinder(fs, cut, PID::MUON, 3.5*GeV, 18.0*GeV, 0.1, ZFinder::ClusterPhotons::NONE );
      declare(zfinder, "ZFinder");

      // Book histograms
      if (fuzzyEquals(sqrtS()/GeV, 62., sqrts_tol)) {
        MSG_DEBUG("R209: running with 62: " << sqrtS()/GeV);
        book(_hist_M,1, 1, 1);
        book(_hist_pT ,2, 1, 1);
      }
      else if (fuzzyEquals(sqrtS()/GeV, 44., sqrts_tol)) {
        MSG_DEBUG("R209: running with 44: " << sqrtS()/GeV);
        book(_hist_M,1, 1, 2);
      }
      int Nbin = 50;
      book(_h_m_DiMuon,"DiMuon_mass",Nbin,0.0,30.0);
      book(_h_pT_DiMuon,"DiMuon_pT",Nbin,0.0,20.0);
      book(_h_y_DiMuon,"DiMuon_y",Nbin,-8.0, 8.0);
      book(_h_xF_DiMuon,"DiMuon_xF",Nbin, -1.5,  1.5);
    }


    /// Perform the per-event analysis
    void analyze(const Event& event) {

      const ZFinder& zfinder = applyProjection<ZFinder>(event, "ZFinder");
      if (zfinder.particles().size() >= 1) {

        double Zmass = zfinder.bosons()[0].momentum().mass()/GeV;
        double Zpt   = zfinder.bosons()[0].momentum().pT()/GeV;
        double Zpl   = zfinder.bosons()[0].momentum().pz()/GeV;
        double Zy    = zfinder.bosons()[0].momentum().rapidity();
        double xf = 2.*Zpl/sqrtS() ;

        _h_xF_DiMuon->fill(xf);
        _h_m_DiMuon->fill(Zmass/GeV);
        _h_pT_DiMuon->fill(Zpt);
        _h_y_DiMuon->fill(Zy);
        if (fuzzyEquals(sqrtS()/GeV, 62, sqrts_tol)) {
          if (Zmass > 0) _hist_M->fill(Zmass);
          if (Zmass > 5. && Zmass < 8.) {
            if (Zpt > 0) _hist_pT->fill(Zpt,1./2./Zpt);
          }
        }
        else if (fuzzyEquals(sqrtS()/GeV, 44, sqrts_tol)) {
          if (Zmass > 0) _hist_M->fill(Zmass);
        }
      }
    }


    /// Normalise histograms etc., after the run
    void finalize() {
      normalize(_h_m_DiMuon);
      normalize(_h_pT_DiMuon);
      normalize(_h_xF_DiMuon);
      normalize(_h_y_DiMuon);
      scale(_hist_pT,crossSection()/nanobarn/(sumOfWeights()));
      scale(_hist_M,crossSection()/nanobarn/(sumOfWeights()));
    }

    ///@}


    /// @name Histograms
    ///@{
    Histo1DPtr _hist_pT, _hist_M ;
    Histo1DPtr _h_m_DiMuon ;
    Histo1DPtr _h_pT_DiMuon;
    Histo1DPtr _h_y_DiMuon;
    Histo1DPtr _h_xF_DiMuon;
    ///@}

    /// Energy comparison tolerance
    const double sqrts_tol = 0.1;

  };


  DECLARE_RIVET_PLUGIN(R209_1982_I168182);

}