Rivet analyses
Z production in PbPb and pp collisions at 2.76 TeV in the dimuon and dielectron decay channels
Experiment: CMS (LHC)
Inspire ID: 1322726
Status: VALIDATED
Authors: - Hannes Jung - Sara Taheri Monfared - Muhammad Ibrahim Abdulhamid
References: - Expt page: CMS-HIN-13-004 - JHEP 03 (2015) 022 - arXiv: 1410.4825
Beams: p+ p+
Beam energies: (1380.0, 1380.0)GeV
Run details: - DY events with m(ll)>60 GeV, run in pp mode (PbPb to be added)
The differential cross-section for Z production in PbPb and pp collisions at 2.76 TeV in the dimuon and dielectron decay channels has been measured from data acquired by the CMS collaboration at the LHC during the year 2010.
Source
code:CMS_2014_I1322726.cc
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/FinalState.hh"
#include "Rivet/Projections/FastJets.hh"
#include "Rivet/Projections/DileptonFinder.hh"
namespace Rivet {
/// Z production in PbPb and pp collisions at 2.76 TeV in the dimuon and dielectron decay channels
class CMS_2014_I1322726 : public Analysis {
public:
/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(CMS_2014_I1322726);
/// @name Analysis methods
///@{
/// Book histograms and initialise projections before the run
void init() {
DileptonFinder zmumuFinder(91.2*GeV, 0.1, Cuts::abseta < 4.9 && Cuts::abspid == PID::MUON, Cuts::massIn(60*GeV, 120*GeV));
declare(zmumuFinder, "ZmumuFinder");
DileptonFinder zeeFinder(91.2*GeV, 0.1, Cuts::abseta < 4.9 && Cuts::abspid == PID::ELECTRON, Cuts::massIn(60*GeV, 120*GeV));
declare(zeeFinder, "ZeeFinder");
FastJets jetfs(FinalState(Cuts::abseta < 4.9), JetAlg::ANTIKT, 0.4, JetMuons::NONE, JetInvisibles::NONE);
declare(jetfs, "jets");
book(_h["ds/dydp-mu"], 1, 1, 1);
book(_h["ds/dydp-el"], 2, 1, 1);
book(_h["ds/dy-mu"], 3, 1, 1);
book(_h["ds/dy-el"], 4, 1, 1);
}
/// Perform the per-event analysis
void analyze(const Event& event) {
const DileptonFinder& zfindermu = apply<DileptonFinder>(event, "ZmumuFinder"); // muon
const Particles& zmumus = zfindermu.bosons();
const DileptonFinder& zfinderel = apply<DileptonFinder>(event, "ZeeFinder"); // electron
const Particles& zelels = zfinderel.bosons();
if ((zmumus.size() + zelels.size()) != 1)
vetoEvent;
if (zmumus.size() == 1) { //cout <<"zmumus " <<zmumus <<endl;
if (abs(zmumus[0].momentum().rapidity()) < 2) { //5 //2
_h["ds/dydp-mu"]->fill(zmumus[0].momentum().pT() / GeV, 0.25);
_h["ds/dy-mu"]->fill(zmumus[0].momentum().rapidity());
}
}
if (zelels.size() == 1) { //cout <<"electron-find"<< endl;
if (abs(zelels[0].momentum().rapidity()) < 1.44) { //5 //1.44
_h["ds/dydp-el"]->fill(zelels[0].momentum().pT() / GeV, 1 / 2.88);
_h["ds/dy-el"]->fill(zelels[0].momentum().rapidity());
}
}
}
void finalize() {
double norm = crossSection() / picobarn / sumW();
scale(_h["ds/dydp-mu"], norm);
scale(_h["ds/dydp-el"], norm);
scale(_h["ds/dy-mu"], norm);
scale(_h["ds/dy-el"], norm);
}
///@}
/// Histograms
map<string, Histo1DPtr> _h;
};
RIVET_DECLARE_PLUGIN(CMS_2014_I1322726);
}