Rivet analyses referenceCMS_2016_I1491950Differential cross sections for top quark pair production using the lepton+jets final state in proton proton collisions at 13 TeVExperiment: CMS (LHC) Inspire ID: 1491950 Status: VALIDATED Authors:
Beam energies: (6500.0, 6500.0) GeV Run details:
Abstract: Differential and double-differential cross sections for the production of top quark pairs in proton-proton collisions at 13 TeV are measured as a function of jet multiplicity and of kinematic variables of the top quarks and the top quark-antiquark system. This analysis is based on data collected by the CMS experiment at the LHC corresponding to an integrated luminosity of 2.3 inverse femtobarns. The measurements are performed in the lepton+jets decay channels with a single muon or electron in the final state. The differential cross sections are presented at particle level, within a phase space close to the experimental acceptance, and at parton level in the full phase space. The results are compared to several standard model predictions. Rivet: This analysis is to be run on $\text{t}\bar{\text{t}}$ Monte Carlo. The particle-level phase space is defined using the following definitions: an electron or muon with $p_\text{T}>30\,\text{GeV}$ and $|\eta|<2.5$, dressed within a cone of radius 0.1; a jet is reconstructed with the anti-$k_t$ algorithm with a radius of 0.4, after removing the neutrinos and dressed leptons, with $p_\text{T}>25\,\text{GeV}$ and $|\eta|<2.5$; a jet that contains a B-hadron. A W boson is reconstructed from a lepton and the sum of the neutrino energies, while another W boson is reconstructed from a light jet pair. The two top quarks are reconstructed by combining b jets to these W boson. A check based on the W boson and top quark masses is performed to choose the proper combinations. Source code: CMS_2016_I1491950.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/FinalState.hh"
4#include "Rivet/Projections/FastJets.hh"
5#include "Rivet/Projections/LeptonFinder.hh"
6#include "Rivet/Projections/PromptFinalState.hh"
7#include "Rivet/Projections/IdentifiedFinalState.hh"
8#include "Rivet/Projections/VetoedFinalState.hh"
9
10namespace Rivet {
11
12
13 class CMS_2016_I1491950 : public Analysis {
14 public:
15
16 /// Constructor
17 RIVET_DEFAULT_ANALYSIS_CTOR(CMS_2016_I1491950);
18
19
20 /// Book histograms and initialise projections before the run
21 void init() {
22
23 FinalState fs(Cuts::pT > 0. && Cuts::abseta < 6.);
24 PromptFinalState prompt_fs(fs);
25 prompt_fs.acceptMuonDecays(true);
26 prompt_fs.acceptTauDecays(true);
27
28 // Projection for dressed electrons and muons
29 Cut leptonCuts = Cuts::abseta < 2.5 and Cuts::pt > 30.*GeV;
30 SpecialLeptonFinder dressedleptons(prompt_fs, leptonCuts);
31 declare(dressedleptons, "LeptonFinder");
32
33 // Neutrinos
34 IdentifiedFinalState neutrinos(prompt_fs);
35 neutrinos.acceptNeutrinos();
36 declare(neutrinos, "Neutrinos");
37
38 // Projection for jets
39 VetoedFinalState fsForJets(fs);
40 fsForJets.addVetoOnThisFinalState(dressedleptons);
41 fsForJets.addVetoOnThisFinalState(neutrinos);
42 declare(FastJets(fsForJets, JetAlg::ANTIKT, 0.4, JetMuons::DECAY, JetInvisibles::DECAY), "Jets");
43
44 //book hists
45 book(_hist_thadpt, "d01-x02-y01");
46 book(_hist_thady, "d03-x02-y01");
47 book(_hist_tleppt, "d05-x02-y01");
48 book(_hist_tlepy, "d07-x02-y01");
49 book(_hist_ttpt, "d09-x02-y01");
50 book(_hist_tty, "d13-x02-y01");
51 book(_hist_ttm, "d11-x02-y01");
52 book(_hist_njet, "d15-x02-y01");
53 book(_hist_njets_thadpt_1, "d17-x02-y01");
54 book(_hist_njets_thadpt_2, "d18-x02-y01");
55 book(_hist_njets_thadpt_3, "d19-x02-y01");
56 book(_hist_njets_thadpt_4, "d20-x02-y01");
57 book(_hist_njets_ttpt_1, "d22-x02-y01");
58 book(_hist_njets_ttpt_2, "d23-x02-y01");
59 book(_hist_njets_ttpt_3, "d24-x02-y01");
60 book(_hist_njets_ttpt_4, "d25-x02-y01");
61 book(_hist_thady_thadpt_1, "d27-x02-y01");
62 book(_hist_thady_thadpt_2, "d28-x02-y01");
63 book(_hist_thady_thadpt_3, "d29-x02-y01");
64 book(_hist_thady_thadpt_4, "d30-x02-y01");
65 book(_hist_ttm_tty_1, "d32-x02-y01");
66 book(_hist_ttm_tty_2, "d33-x02-y01");
67 book(_hist_ttm_tty_3, "d34-x02-y01");
68 book(_hist_ttm_tty_4, "d35-x02-y01");
69 book(_hist_ttpt_ttm_1, "d37-x02-y01");
70 book(_hist_ttpt_ttm_2, "d38-x02-y01");
71 book(_hist_ttpt_ttm_3, "d39-x02-y01");
72 book(_hist_ttpt_ttm_4, "d40-x02-y01");
73 book(_histnorm_thadpt, "d42-x02-y01");
74 book(_histnorm_thady, "d44-x02-y01");
75 book(_histnorm_tleppt, "d46-x02-y01");
76 book(_histnorm_tlepy, "d48-x02-y01");
77 book(_histnorm_ttpt, "d50-x02-y01");
78 book(_histnorm_tty, "d54-x02-y01");
79 book(_histnorm_ttm, "d52-x02-y01");
80 book(_histnorm_njet, "d56-x02-y01");
81 book(_histnorm_njets_thadpt_1, "d58-x02-y01");
82 book(_histnorm_njets_thadpt_2, "d59-x02-y01");
83 book(_histnorm_njets_thadpt_3, "d60-x02-y01");
84 book(_histnorm_njets_thadpt_4, "d61-x02-y01");
85 book(_histnorm_njets_ttpt_1, "d63-x02-y01");
86 book(_histnorm_njets_ttpt_2, "d64-x02-y01");
87 book(_histnorm_njets_ttpt_3, "d65-x02-y01");
88 book(_histnorm_njets_ttpt_4, "d66-x02-y01");
89 book(_histnorm_thady_thadpt_1, "d68-x02-y01");
90 book(_histnorm_thady_thadpt_2, "d69-x02-y01");
91 book(_histnorm_thady_thadpt_3, "d70-x02-y01");
92 book(_histnorm_thady_thadpt_4, "d71-x02-y01");
93 book(_histnorm_ttm_tty_1, "d73-x02-y01");
94 book(_histnorm_ttm_tty_2, "d74-x02-y01");
95 book(_histnorm_ttm_tty_3, "d75-x02-y01");
96 book(_histnorm_ttm_tty_4, "d76-x02-y01");
97 book(_histnorm_ttpt_ttm_1, "d78-x02-y01");
98 book(_histnorm_ttpt_ttm_2, "d79-x02-y01");
99 book(_histnorm_ttpt_ttm_3, "d80-x02-y01");
100 book(_histnorm_ttpt_ttm_4, "d81-x02-y01");
101
102 }
103
104
105 /// Perform the per-event analysis
106 void analyze(const Event& event) {
107
108 // leptons
109 const SpecialLeptonFinder& dressedleptons_proj = apply<SpecialLeptonFinder>(event, "LeptonFinder");
110 DressedLeptons dressedLeptons = dressedleptons_proj.dressedLeptons();
111 if(dressedLeptons.size() != 1) return;
112
113 // neutrinos
114 const Particles neutrinos = apply<FinalState>(event, "Neutrinos").particlesByPt();
115 _nusum = FourMomentum(0., 0., 0., 0.);
116 for(const Particle& neutrino : neutrinos)
117 _nusum += neutrino.momentum();
118 _wl = _nusum + dressedLeptons[0].momentum();
119
120 // jets
121 Cut jet_cut = (Cuts::abseta < 2.5) and (Cuts::pT > 25.*GeV);
122 const Jets jets = apply<FastJets>(event, "Jets").jetsByPt(jet_cut);
123 Jets allJets;
124 for (const Jet& jet : jets) {
125 allJets.push_back(jet);
126 }
127 Jets bJets;
128 for (const Jet& jet : allJets) {
129 if (jet.bTagged()) bJets.push_back(jet);
130 }
131
132 if(bJets.size() < 2 || allJets.size() < 4) return;
133
134 //construct top quark proxies
135 double Kmin = numeric_limits<double>::max();
136 for(const Jet& itaj : allJets) {
137 for(const Jet& itbj : allJets) {
138 if (itaj.momentum() == itbj.momentum()) continue;
139 FourMomentum wh(itaj.momentum() + itbj.momentum());
140 for(const Jet& ithbj : bJets) {
141 if(itaj.momentum() == ithbj.momentum() || itbj.momentum() == ithbj.momentum()) continue;
142 FourMomentum th(wh + ithbj.momentum());
143 for(const Jet& itlbj : bJets) {
144 if(itaj.momentum() == itlbj.momentum() || itbj.momentum() == itlbj.momentum() || ithbj.momentum() == itlbj.momentum()) continue;
145 FourMomentum tl(_wl + itlbj.momentum());
146
147 double K = pow(wh.mass() - 80.4, 2) + pow(th.mass() - 172.5, 2) + pow(tl.mass() - 172.5, 2);
148 if(K < Kmin)
149 {
150 Kmin = K;
151 _tl = tl;
152 _th = th;
153 _wh = wh;
154 }
155 }
156 }
157 }
158 }
159
160 _hist_thadpt->fill(_th.pt());
161 _hist_thady->fill(abs(_th.rapidity()) );
162 _hist_tleppt->fill(_tl.pt() );
163 _hist_tlepy->fill(abs(_tl.rapidity()) );
164 _histnorm_thadpt->fill(_th.pt());
165 _histnorm_thady->fill(abs(_th.rapidity()) );
166 _histnorm_tleppt->fill(_tl.pt() );
167 _histnorm_tlepy->fill(abs(_tl.rapidity()) );
168 FourMomentum tt(_tl+_th);
169 _hist_ttpt->fill(tt.pt() );
170 _hist_tty->fill(abs(tt.rapidity()) );
171 _hist_ttm->fill(tt.mass() );
172 _hist_njet->fill(min(allJets.size()-4., 4.));
173 _histnorm_ttpt->fill(tt.pt() );
174 _histnorm_tty->fill(abs(tt.rapidity()) );
175 _histnorm_ttm->fill(tt.mass() );
176 _histnorm_njet->fill(min(allJets.size()-4., 4.));
177 if(allJets.size() == 4)
178 {
179 _hist_njets_thadpt_1->fill(_th.pt());
180 _hist_njets_ttpt_1->fill(tt.pt());
181 _histnorm_njets_thadpt_1->fill(_th.pt());
182 _histnorm_njets_ttpt_1->fill(tt.pt());
183 }
184 else if(allJets.size() == 5)
185 {
186 _hist_njets_thadpt_2->fill(_th.pt());
187 _hist_njets_ttpt_2->fill(tt.pt());
188 _histnorm_njets_thadpt_2->fill(_th.pt());
189 _histnorm_njets_ttpt_2->fill(tt.pt());
190 }
191 else if(allJets.size() == 6)
192 {
193 _hist_njets_thadpt_3->fill(_th.pt());
194 _hist_njets_ttpt_3->fill(tt.pt());
195 _histnorm_njets_thadpt_3->fill(_th.pt());
196 _histnorm_njets_ttpt_3->fill(tt.pt());
197 }
198 else //>= 4 jets
199 {
200 _hist_njets_thadpt_4->fill(_th.pt());
201 _hist_njets_ttpt_4->fill(tt.pt());
202 _histnorm_njets_thadpt_4->fill(_th.pt());
203 _histnorm_njets_ttpt_4->fill(tt.pt());
204 }
205
206 if(abs(_th.rapidity()) < 0.5)
207 {
208 _hist_thady_thadpt_1->fill(_th.pt());
209 _histnorm_thady_thadpt_1->fill(_th.pt());
210 }
211 else if(abs(_th.rapidity()) < 1.0)
212 {
213 _hist_thady_thadpt_2->fill(_th.pt());
214 _histnorm_thady_thadpt_2->fill(_th.pt());
215 }
216 else if(abs(_th.rapidity()) < 1.5)
217 {
218 _hist_thady_thadpt_3->fill(_th.pt());
219 _histnorm_thady_thadpt_3->fill(_th.pt());
220 }
221 else if(abs(_th.rapidity()) < 2.5)
222 {
223 _hist_thady_thadpt_4->fill(_th.pt());
224 _histnorm_thady_thadpt_4->fill(_th.pt());
225 }
226
227 if(tt.mass() >= 300. && tt.mass() < 450.)
228 {
229 _hist_ttm_tty_1->fill(abs(tt.rapidity()));
230 _histnorm_ttm_tty_1->fill(abs(tt.rapidity()));
231 }
232 else if(tt.mass() >= 450. && tt.mass() < 625.)
233 {
234 _hist_ttm_tty_2->fill(abs(tt.rapidity()));
235 _histnorm_ttm_tty_2->fill(abs(tt.rapidity()));
236 }
237 else if(tt.mass() >= 625. && tt.mass() < 850.)
238 {
239 _hist_ttm_tty_3->fill(abs(tt.rapidity()));
240 _histnorm_ttm_tty_3->fill(abs(tt.rapidity()));
241 }
242 else if(tt.mass() >= 850. && tt.mass() < 2000.)
243 {
244 _hist_ttm_tty_4->fill(abs(tt.rapidity()));
245 _histnorm_ttm_tty_4->fill(abs(tt.rapidity()));
246 }
247
248 if(tt.pt() < 35.)
249 {
250 _hist_ttpt_ttm_1->fill(tt.mass());
251 _histnorm_ttpt_ttm_1->fill(tt.mass());
252 }
253 else if(tt.pt() < 80.)
254 {
255 _hist_ttpt_ttm_2->fill(tt.mass());
256 _histnorm_ttpt_ttm_2->fill(tt.mass());
257 }
258 else if(tt.pt() < 140.)
259 {
260 _hist_ttpt_ttm_3->fill(tt.mass());
261 _histnorm_ttpt_ttm_3->fill(tt.mass());
262 }
263 else if(tt.pt() < 500.)
264 {
265 _hist_ttpt_ttm_4->fill(tt.mass());
266 _histnorm_ttpt_ttm_4->fill(tt.mass());
267 }
268
269 }
270
271
272 /// Normalise histograms etc., after the run
273 void finalize()
274 {
275 scale(_hist_thadpt, crossSection()/picobarn/sumOfWeights());
276 scale(_hist_thady, crossSection()/picobarn/sumOfWeights());
277 scale(_hist_tleppt, crossSection()/picobarn/sumOfWeights());
278 scale(_hist_tlepy, crossSection()/picobarn/sumOfWeights());
279 scale(_hist_ttpt, crossSection()/picobarn/sumOfWeights());
280 scale(_hist_tty, crossSection()/picobarn/sumOfWeights());
281 scale(_hist_ttm, crossSection()/picobarn/sumOfWeights());
282 scale(_hist_njet, crossSection()/picobarn/sumOfWeights());
283 scale(_hist_njets_thadpt_1, crossSection()/picobarn/sumOfWeights());
284 scale(_hist_njets_thadpt_2, crossSection()/picobarn/sumOfWeights());
285 scale(_hist_njets_thadpt_3, crossSection()/picobarn/sumOfWeights());
286 scale(_hist_njets_thadpt_4, crossSection()/picobarn/sumOfWeights());
287 scale(_hist_njets_ttpt_1, crossSection()/picobarn/sumOfWeights());
288 scale(_hist_njets_ttpt_2, crossSection()/picobarn/sumOfWeights());
289 scale(_hist_njets_ttpt_3, crossSection()/picobarn/sumOfWeights());
290 scale(_hist_njets_ttpt_4, crossSection()/picobarn/sumOfWeights());
291 scale(_hist_thady_thadpt_1, crossSection()/picobarn/sumOfWeights()/0.5);
292 scale(_hist_thady_thadpt_2, crossSection()/picobarn/sumOfWeights()/0.5);
293 scale(_hist_thady_thadpt_3, crossSection()/picobarn/sumOfWeights()/0.5);
294 scale(_hist_thady_thadpt_4, crossSection()/picobarn/sumOfWeights()/1.0);
295 scale(_hist_ttm_tty_1, crossSection()/picobarn/sumOfWeights()/150.);
296 scale(_hist_ttm_tty_2, crossSection()/picobarn/sumOfWeights()/175.);
297 scale(_hist_ttm_tty_3, crossSection()/picobarn/sumOfWeights()/225.);
298 scale(_hist_ttm_tty_4, crossSection()/picobarn/sumOfWeights()/1150.);
299 scale(_hist_ttpt_ttm_1, crossSection()/picobarn/sumOfWeights()/35.);
300 scale(_hist_ttpt_ttm_2, crossSection()/picobarn/sumOfWeights()/45.);
301 scale(_hist_ttpt_ttm_3, crossSection()/picobarn/sumOfWeights()/60.);
302 scale(_hist_ttpt_ttm_4, crossSection()/picobarn/sumOfWeights()/360.);
303
304 scale(_histnorm_thadpt, 1./_histnorm_thadpt->sumW(false));
305 scale(_histnorm_thady, 1./_histnorm_thady->sumW(false));
306 scale(_histnorm_tleppt, 1./_histnorm_tleppt->sumW(false));
307 scale(_histnorm_tlepy, 1./_histnorm_tlepy->sumW(false));
308 scale(_histnorm_ttpt, 1./_histnorm_ttpt->sumW(false));
309 scale(_histnorm_tty, 1./_histnorm_tty->sumW(false));
310 scale(_histnorm_ttm, 1./_histnorm_ttm->sumW(false));
311 scale(_histnorm_njet, 1./_histnorm_njet->sumW(false));
312 double sum_njets_thadpt = _histnorm_njets_thadpt_1->sumW(false) + _histnorm_njets_thadpt_2->sumW(false) + _histnorm_njets_thadpt_3->sumW(false) + _histnorm_njets_thadpt_4->sumW(false);
313 scale(_histnorm_njets_thadpt_1, 1./sum_njets_thadpt);
314 scale(_histnorm_njets_thadpt_2, 1./sum_njets_thadpt);
315 scale(_histnorm_njets_thadpt_3, 1./sum_njets_thadpt);
316 scale(_histnorm_njets_thadpt_4, 1./sum_njets_thadpt);
317 double sum_njets_ttpt = _histnorm_njets_ttpt_1->sumW(false) + _histnorm_njets_ttpt_2->sumW(false) + _histnorm_njets_ttpt_3->sumW(false) + _histnorm_njets_ttpt_4->sumW(false);
318 scale(_histnorm_njets_ttpt_1, 1./sum_njets_ttpt);
319 scale(_histnorm_njets_ttpt_2, 1./sum_njets_ttpt);
320 scale(_histnorm_njets_ttpt_3, 1./sum_njets_ttpt);
321 scale(_histnorm_njets_ttpt_4, 1./sum_njets_ttpt);
322 double sum_thady_thadpt = _histnorm_thady_thadpt_1->sumW(false) + _histnorm_thady_thadpt_2->sumW(false) + _histnorm_thady_thadpt_3->sumW(false) + _histnorm_thady_thadpt_4->sumW(false);
323 scale(_histnorm_thady_thadpt_1, 1./sum_thady_thadpt/0.5);
324 scale(_histnorm_thady_thadpt_2, 1./sum_thady_thadpt/0.5);
325 scale(_histnorm_thady_thadpt_3, 1./sum_thady_thadpt/0.5);
326 scale(_histnorm_thady_thadpt_4, 1./sum_thady_thadpt/1.0);
327 double sum_ttm_tty = _histnorm_ttm_tty_1->sumW(false) + _histnorm_ttm_tty_2->sumW(false) + _histnorm_ttm_tty_3->sumW(false) + _histnorm_ttm_tty_4->sumW(false);
328 scale(_histnorm_ttm_tty_1, 1./sum_ttm_tty/150.);
329 scale(_histnorm_ttm_tty_2, 1./sum_ttm_tty/175.);
330 scale(_histnorm_ttm_tty_3, 1./sum_ttm_tty/225.);
331 scale(_histnorm_ttm_tty_4, 1./sum_ttm_tty/1150.);
332 double sum_ttpt_ttm = _histnorm_ttpt_ttm_1->sumW(false) + _histnorm_ttpt_ttm_2->sumW(false) + _histnorm_ttpt_ttm_3->sumW(false) + _histnorm_ttpt_ttm_4->sumW(false);
333 scale(_histnorm_ttpt_ttm_1, 1./sum_ttpt_ttm/35.);
334 scale(_histnorm_ttpt_ttm_2, 1./sum_ttpt_ttm/45.);
335 scale(_histnorm_ttpt_ttm_3, 1./sum_ttpt_ttm/60.);
336 scale(_histnorm_ttpt_ttm_4, 1./sum_ttpt_ttm/360.);
337
338 }
339
340
341 /// @brief Special dressed lepton finder
342 ///
343 /// Find dressed leptons by clustering all leptons and photons
344 class SpecialLeptonFinder : public FinalState {
345 public:
346
347 /// The default constructor. May specify cuts
348 SpecialLeptonFinder(const FinalState& fs, const Cut& cut)
349 : FinalState(cut)
350 {
351 setName("SpecialLeptonFinder");
352 IdentifiedFinalState ifs(fs);
353 ifs.acceptIdPair(PID::PHOTON);
354 ifs.acceptIdPair(PID::ELECTRON);
355 ifs.acceptIdPair(PID::MUON);
356 declare(ifs, "IFS");
357 declare(FastJets(ifs, JetAlg::ANTIKT, 0.1), "LeptonJets");
358 }
359
360 /// Clone on the heap.
361 virtual unique_ptr<Projection> clone() const {
362 return unique_ptr<Projection>(new SpecialLeptonFinder(*this));
363 }
364
365 /// Import to avoid warnings about overload-hiding
366 using Projection::operator =;
367
368 /// Retrieve the dressed leptons
369 const DressedLeptons& dressedLeptons() const { return _clusteredLeptons; }
370
371 private:
372 /// Container which stores the clustered lepton objects
373 DressedLeptons _clusteredLeptons;
374
375 public:
376 void project(const Event& e) {
377
378 _theParticles.clear();
379 _clusteredLeptons.clear();
380
381 DressedLeptons allClusteredLeptons;
382
383 const Jets jets = apply<FastJets>(e, "LeptonJets").jetsByPt(Cuts::pT > 5.*GeV);
384 for (const Jet& jet : jets) {
385 Particle lepCand;
386 for (const Particle& cand : jet.particles()) {
387 const int absPdgId = abs(cand.pid());
388 if (absPdgId == PID::ELECTRON || absPdgId == PID::MUON) {
389 if (cand.pt() > lepCand.pt()) lepCand = cand;
390 }
391 }
392
393 //Central lepton must be the major component
394 if ((lepCand.pt() < jet.pt()/2.) || (lepCand.pid() == 0)) continue;
395
396 DressedLepton lepton(lepCand);
397 for (const Particle& cand : jet.particles()) {
398 if (isSame(cand, lepCand)) continue;
399 if (cand.pid() != PID::PHOTON) continue;
400 lepton.addConstituent(cand, true);
401 }
402 allClusteredLeptons.push_back(lepton);
403 }
404
405 for (const DressedLepton& lepton : allClusteredLeptons) {
406 if (accept(lepton)) {
407 _clusteredLeptons.push_back(lepton);
408 _theParticles.push_back(lepton.bareLepton());
409 _theParticles += lepton.photons();
410 }
411 }
412 }
413
414 };
415
416
417 private:
418
419 FourMomentum _tl;
420 FourMomentum _th;
421 FourMomentum _wl;
422 FourMomentum _wh;
423 FourMomentum _nusum;
424
425 Histo1DPtr _hist_thadpt;
426 Histo1DPtr _hist_thady;
427 Histo1DPtr _hist_tleppt;
428 Histo1DPtr _hist_tlepy;
429 Histo1DPtr _hist_ttpt;
430 Histo1DPtr _hist_tty;
431 Histo1DPtr _hist_ttm;
432 Histo1DPtr _hist_njet;
433 Histo1DPtr _hist_njets_thadpt_1;
434 Histo1DPtr _hist_njets_thadpt_2;
435 Histo1DPtr _hist_njets_thadpt_3;
436 Histo1DPtr _hist_njets_thadpt_4;
437 Histo1DPtr _hist_njets_ttpt_1;
438 Histo1DPtr _hist_njets_ttpt_2;
439 Histo1DPtr _hist_njets_ttpt_3;
440 Histo1DPtr _hist_njets_ttpt_4;
441 Histo1DPtr _hist_thady_thadpt_1;
442 Histo1DPtr _hist_thady_thadpt_2;
443 Histo1DPtr _hist_thady_thadpt_3;
444 Histo1DPtr _hist_thady_thadpt_4;
445 Histo1DPtr _hist_ttm_tty_1;
446 Histo1DPtr _hist_ttm_tty_2;
447 Histo1DPtr _hist_ttm_tty_3;
448 Histo1DPtr _hist_ttm_tty_4;
449 Histo1DPtr _hist_ttpt_ttm_1;
450 Histo1DPtr _hist_ttpt_ttm_2;
451 Histo1DPtr _hist_ttpt_ttm_3;
452 Histo1DPtr _hist_ttpt_ttm_4;
453
454 Histo1DPtr _histnorm_thadpt;
455 Histo1DPtr _histnorm_thady;
456 Histo1DPtr _histnorm_tleppt;
457 Histo1DPtr _histnorm_tlepy;
458 Histo1DPtr _histnorm_ttpt;
459 Histo1DPtr _histnorm_tty;
460 Histo1DPtr _histnorm_ttm;
461 Histo1DPtr _histnorm_njet;
462 Histo1DPtr _histnorm_njets_thadpt_1;
463 Histo1DPtr _histnorm_njets_thadpt_2;
464 Histo1DPtr _histnorm_njets_thadpt_3;
465 Histo1DPtr _histnorm_njets_thadpt_4;
466 Histo1DPtr _histnorm_njets_ttpt_1;
467 Histo1DPtr _histnorm_njets_ttpt_2;
468 Histo1DPtr _histnorm_njets_ttpt_3;
469 Histo1DPtr _histnorm_njets_ttpt_4;
470 Histo1DPtr _histnorm_thady_thadpt_1;
471 Histo1DPtr _histnorm_thady_thadpt_2;
472 Histo1DPtr _histnorm_thady_thadpt_3;
473 Histo1DPtr _histnorm_thady_thadpt_4;
474 Histo1DPtr _histnorm_ttm_tty_1;
475 Histo1DPtr _histnorm_ttm_tty_2;
476 Histo1DPtr _histnorm_ttm_tty_3;
477 Histo1DPtr _histnorm_ttm_tty_4;
478 Histo1DPtr _histnorm_ttpt_ttm_1;
479 Histo1DPtr _histnorm_ttpt_ttm_2;
480 Histo1DPtr _histnorm_ttpt_ttm_3;
481 Histo1DPtr _histnorm_ttpt_ttm_4;
482
483 };
484
485
486
487 RIVET_DECLARE_PLUGIN(CMS_2016_I1491950);
488
489}
|