Rivet analyses referenceCMS_2011_I954992Exclusive photon-photon production of muon pairs in proton-proton collisions at $\sqrt{s} = 7$ TeVExperiment: CMS (LHC) Inspire ID: 954992 Status: VALIDATED Authors:
Beam energies: (3500.0, 3500.0) GeV Run details:
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// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/ChargedFinalState.hh"
4#include "Rivet/Projections/IdentifiedFinalState.hh"
5
6namespace Rivet {
7
8
9 /// Exclusive photon-photon production of muon pairs at 7 TeV
10 class CMS_2011_I954992 : public Analysis {
11 public:
12
13 /// Constructor
14 RIVET_DEFAULT_ANALYSIS_CTOR(CMS_2011_I954992);
15
16
17 void init() {
18 ChargedFinalState cfs(Cuts::abseta < 2.4);
19 declare(cfs,"CFS");
20
21 // Get muons which pass the initial kinematic cuts
22 IdentifiedFinalState muon_fs(Cuts::abseta < 2.1 && Cuts::pT > 4*GeV);
23 muon_fs.acceptIdPair(PID::MUON);
24 declare(muon_fs, "MUON_FS");
25
26 book(_h_sigma ,1,1,1);
27 }
28
29
30 void analyze(const Event& event) {
31
32 const ChargedFinalState& cfs = apply<ChargedFinalState>(event, "CFS");
33 if (cfs.size() != 2) vetoEvent; // no other charged particles in 2.4
34
35 const Particles& muonFS = apply<IdentifiedFinalState>(event, "MUON_FS").particles();
36 if (muonFS.size() != 2) vetoEvent;
37
38 if (muonFS[0].charge() != muonFS[1].charge()) {
39 const double dimuon_mass = (muonFS[0].momentum() + muonFS[1].momentum()).mass();
40 const double v_angle = muonFS[0].momentum().angle(muonFS[1].momentum());
41 const double dPhi = deltaPhi(muonFS[0], muonFS[1]);
42 const double deltaPt = fabs(muonFS[0].pT() - muonFS[1].pT());
43
44 if (dimuon_mass >= 11.5*GeV &&
45 v_angle < 0.95*PI &&
46 dPhi > 0.9*PI &&
47 deltaPt < 1.*GeV ) {
48 _h_sigma->fill(7000);
49 }
50 }
51 }
52
53
54 /// Normalise histograms etc., after the run
55 void finalize() {
56 scale(_h_sigma, crossSection()/picobarn/sumOfWeights());
57 }
58
59
60 /// Histogram
61 BinnedHistoPtr<int> _h_sigma;
62
63 };
64
65
66 RIVET_DECLARE_PLUGIN(CMS_2011_I954992);
67
68}
|