Rivet analyses referenceCMS_2013_I1265659Probing color coherence effects in $pp$ collisions at $\sqrt{s} = 7$ TeVExperiment: CMS (LHC) Inspire ID: 1265659 Status: VALIDATED Authors:
Beam energies: (3500.0, 3500.0) GeV Run details:
A study of color coherence effects in $pp$ collisions at a center-of-mass energy of 7 TeV is presented. The data used in the analysis were collected in 2010 with the CMS detector at the LHC and correspond to an integrated luminosity of 36/pb. Events are selected that contain at least three jets and where the two jets with the largest transverse momentum exhibit a back-to-back topology. The measured angular correlation between the second- and third-leading jet is shown to be sensitive to color coherence effects, and is compared to the predictions of Monte Carlo models with various implementations of color coherence. None of the models describe the data satisfactorily. Source code: CMS_2013_I1265659.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/FinalState.hh"
4#include "Rivet/Projections/FastJets.hh"
5
6namespace Rivet {
7
8
9 class CMS_2013_I1265659 : public Analysis {
10 public:
11
12 /// Constructor
13 CMS_2013_I1265659()
14 : Analysis("CMS_2013_I1265659")
15 { }
16
17
18 /// Book histograms and initialise projections before the run
19 void init() {
20 const FastJets jets(FinalState((Cuts::etaIn(-10, 10))), JetAlg::ANTIKT, 0.5);
21 declare(jets, "Jets");
22
23 book(_h_hTotD ,1, 1, 1);
24 book(_h_hTotDF ,1, 1, 2);
25 }
26
27
28 /// Perform the per-event analysis
29 void analyze(const Event& event) {
30 const Jets& jets = apply<FastJets>(event, "Jets").jetsByPt(Cuts::pT > 30*GeV);
31 if (jets.size() < 3) vetoEvent;
32
33 const FourMomentum jet1 = jets[0].momentum();
34 const FourMomentum jet2 = jets[1].momentum();
35 const FourMomentum jet3 = jets[2].momentum();
36
37 // Cut on lead jet pT and lead/sublead jet centrality
38 if (jet1.pT() < 100*GeV) vetoEvent;
39 if (jet1.abseta() > 2.5 || jet2.abseta() > 2.5) vetoEvent;
40
41 // Construct eta & phi distances between 2nd and 3rd jets
42 double dEta23 = jet3.eta() - jet2.eta(); ///< Note not abs
43 double dPhi23 = jet3.phi() - jet2.phi(); ///< Note not abs
44 if (dPhi23 > M_PI) dPhi23 -= 2*M_PI; ///< @todo Use mapTo... functions?
45 if (dPhi23 < -M_PI) dPhi23 += 2*M_PI; ///< @todo Use mapTo... functions?
46
47 // Cut on distance between 2nd and 3rd jets
48 const double R23 = add_quad(dPhi23, dEta23);
49 if (!inRange(R23, 0.5, 1.5)) vetoEvent;
50
51 // Cut on dijet mass
52 const FourMomentum diJet = jet1 + jet2;
53 if (diJet.mass() < 220*GeV) vetoEvent;
54
55 // Calc beta and fill histogram (choose central or fwd histo inline)
56 double beta = fabs(atan2(dPhi23, sign(jet2.eta())*dEta23));
57 ((jet2.abseta() < 0.8) ? _h_hTotD : _h_hTotDF)->fill(beta, 1.0);
58 }
59
60
61 /// Normalise histograms etc., after the run
62 void finalize() {
63 const double width = _h_hTotD->bin(1).xWidth();
64 normalize(_h_hTotD, width);
65 normalize(_h_hTotDF, width);
66 }
67
68
69 private:
70
71 /// Histograms
72 Histo1DPtr _h_hTotD, _h_hTotDF;
73
74 };
75
76
77 RIVET_DECLARE_PLUGIN(CMS_2013_I1265659);
78
79}
|