rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

CMS_2011_I954992

Exclusive photon-photon production of muon pairs in proton-proton collisions at $\sqrt{s} = 7$ TeV
Experiment: CMS (LHC)
Inspire ID: 954992
Status: VALIDATED
Authors:
  • David d'Enterria
  • Jonathan Hollar
  • Sercan Sen
References: Beams: p+ p+
Beam energies: (3500.0, 3500.0) GeV
Run details:
  • gamma gamma TO mu+ mu- process.

A measurement of the exclusive two-photon production of muon pairs in proton-proton collisions at at a centre-of-mass energy 7 TeV with the final state $p \mu^+ \mu^- p$, is reported using data corresponding to an integrated luminosity of 40 pb$^-1$ collected in 2010. The measured cross section is obtained with a fit to the dimuon $p_T$ distribution for muon pairs with invariant mass greater than 11.5 GeV with each muon $p_T > 4$ GeV and $|\eta| < 2.1$.

Source code: CMS_2011_I954992.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
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/ChargedFinalState.hh"
#include "Rivet/Projections/IdentifiedFinalState.hh"

namespace Rivet {


  class CMS_2011_I954992 : public Analysis {
  public:

    CMS_2011_I954992()
      : Analysis("CMS_2011_I954992")
    {    }


  public:

    void init() {
      ChargedFinalState cfs(Cuts::abseta < 2.4);
      declare(cfs,"CFS");

      /// Get muons which pass the initial kinematic cuts
      IdentifiedFinalState muon_fs(Cuts::abseta < 2.1 && Cuts::pT > 4*GeV);
      muon_fs.acceptIdPair(PID::MUON);
      declare(muon_fs, "MUON_FS");

      _h_sigma = bookHisto1D(1,1,1);
    }


    void analyze(const Event& event) {
      const double weight = event.weight();

      const ChargedFinalState& cfs = apply<ChargedFinalState>(event, "CFS");
      if (cfs.size() != 2) vetoEvent; // no other charged particles in 2.4

      const Particles& muonFS = apply<IdentifiedFinalState>(event, "MUON_FS").particles();
      if (muonFS.size() != 2) vetoEvent;

      if (charge(muonFS[0]) != charge(muonFS[1])) {
         const double dimuon_mass = (muonFS[0].momentum() + muonFS[1].momentum()).mass();
         const double v_angle     = muonFS[0].momentum().angle(muonFS[1].momentum());
         const double dPhi        = deltaPhi(muonFS[0], muonFS[1]);
         const double deltaPt     = fabs(muonFS[0].pT() - muonFS[1].pT());

         if (dimuon_mass >= 11.5*GeV &&
             v_angle < 0.95*PI       &&
             dPhi    > 0.9*PI        &&
             deltaPt < 1.*GeV        ) {
           _h_sigma->fill(sqrtS()/GeV, weight);
         }
      }
    }


    /// Normalise histograms etc., after the run
    void finalize() {
      scale(_h_sigma, crossSection()/picobarn/sumOfWeights());
    }

  private:

    Histo1DPtr _h_sigma;

  };


  // The hook for the plugin system
  DECLARE_RIVET_PLUGIN(CMS_2011_I954992);

}