|
Rivet analyses reference
CMS_2012_I1102908
Measurement of inclusive and exclusive dijet production ratio at large rapidity intervals at center-of-mass energy 7 TeV.
Experiment: CMS (LHC)
Inspire ID: 1102908
Status: VALIDATED
Authors:
- Grzegorz Brona
- Vladimir Gavrilov
- Hannes Jung
- Victor Kim
- Victor Murzin
- Vadim Oreshkin
- Grigory Pivovarov
- Ivan Pozdnyakov
- Grigory Safronov
References:
Beams: p+ p+
Beam energies: (3500.0, 3500.0) GeV
Run details:
- Inclusive QCD at 7TeV comEnergy, ptHat (or equivalent) greater than 15 GeV
This is a measurement of the ratio of inclusive to exclusive dijet production as a function of the absolute distance in rapidity, $\Delta y$, between jets. The ratio of the Mueller-Navelet to exclusive dijet production is also measured. These measurements were performed with the CMS detector in proton-proton collisions at $\sqrt{s} = 7$ TeV for jets with $p_T > 35$ GeV and $|y| < 4.7$ taken from a mixture of two data samples, one of which containing dijets with moderate rapidity separation and the other containing dijets with large rapidity separation, with integrated luminosity of 33/nb and 5/pb respectively. The measured observables are corrected for detector effects.
Source code:
CMS_2012_I1102908.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 | // -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/FinalState.hh"
#include "Rivet/Projections/FastJets.hh"
#include <sstream>
namespace Rivet {
/// @brief CMS inclusive and exclusive dijet production ratio at large rapidity intervals
class CMS_2012_I1102908 : public Analysis {
public:
CMS_2012_I1102908()
: Analysis("CMS_2012_I1102908")
{ }
void init() {
// Projections
declare(FastJets(FinalState(), FastJets::ANTIKT, 0.5), "antikT");
// Histograms
/// @todo Can we manage to only register these as they are "really" created in the finalize()?
book(_h_dijet_ratio , 1, 1, 1);
book(_h_MN_dijet_ratio, 2, 1, 1);
// Temporary histograms (directly instantiated)
book(_h_DeltaY_exclusive ,"TMP/excl",refData(1, 1, 1));
book(_h_DeltaY_inclusive ,"TMP/incl",refData(1, 1, 1));
book(_h_DeltaY_MN ,"TMP/YMN",refData(1, 1, 1));
}
void analyze(const Event & event) {
const double weight = 1.0;
// Jets with pT > 35.0, -4.7 < y < 4.7
const JetAlg& jet_alg = apply<JetAlg>(event, "antikT");
const Jets& jets = jet_alg.jets(Cuts::pT > 35*GeV && Cuts::absrap < 4.7);
// Veto event if number of jets less than 2
if (jets.size() < 2) return;
// Loop over jet pairs
double deltaY_MN = 0.0;
for (size_t ij1 = 0; ij1 < jets.size(); ++ij1) {
for (size_t ij2 = ij1 + 1; ij2 < jets.size(); ++ij2) {
const double deltaY = fabs(jets[ij1].rapidity() - jets[ij2].rapidity());
// Exclusive dijet case:
if (jets.size() == 2) _h_DeltaY_exclusive->fill(deltaY, weight);
// Inclusive jets case:
_h_DeltaY_inclusive->fill(deltaY, weight);
// Mueller-Navelet:
if (deltaY > deltaY_MN) deltaY_MN = deltaY;
}
}
_h_DeltaY_MN->fill(deltaY_MN, weight);
}
void finalize() {
efficiency(_h_DeltaY_exclusive, _h_DeltaY_inclusive, _h_dijet_ratio);
efficiency(_h_DeltaY_exclusive, _h_DeltaY_MN, _h_MN_dijet_ratio);
transformY(*_h_dijet_ratio, _invert);
transformY(*_h_MN_dijet_ratio, _invert);
}
private:
/// Reciprocal function with div-by-zero protection, for inverting the efficiency measure
static double _invert(double x) { return (x > 0) ? 1/x : 0; }
/// @name Histograms
//@{
Scatter2DPtr _h_dijet_ratio, _h_MN_dijet_ratio;
Histo1DPtr _h_DeltaY_inclusive, _h_DeltaY_exclusive, _h_DeltaY_MN;
//@}
};
RIVET_DECLARE_PLUGIN(CMS_2012_I1102908);
}
|
|