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 setName("CMS_2016_I1491950::SpecialLeptonFinder");
351 IdentifiedFinalState ifs(fs);
352 ifs.acceptIdPair(PID::PHOTON);
353 ifs.acceptIdPair(PID::ELECTRON);
354 ifs.acceptIdPair(PID::MUON);
355 declare(FastJets(ifs, JetAlg::ANTIKT, 0.1), "LeptonJets");
356 }
357
358 /// Clone on the heap
359 RIVET_DEFAULT_PROJ_CLONE(SpecialLeptonFinder);
360
361 /// Import to avoid warnings about overload-hiding
362 using Projection::operator =;
363
364 /// Retrieve the dressed leptons
365 const DressedLeptons& dressedLeptons() const { return _clusteredLeptons; }
366
367 /// Compare projections
368 CmpState compare(const Projection& p) const {
369 const PCmp fscmp = mkNamedPCmp(p, "LeptonJets");
370 if (fscmp != CmpState::EQ) return fscmp;
371 const SpecialLeptonFinder& other = dynamic_cast<const SpecialLeptonFinder&>(p);
372 const bool cutcmp = _cuts == other._cuts;
373 if (!cutcmp) return CmpState::NEQ;
374 return CmpState::EQ;
375 }
376
377 /// Perform the calculation
378 void project(const Event& e) {
379
380 _theParticles.clear();
381 _clusteredLeptons.clear();
382
383 DressedLeptons allClusteredLeptons;
384
385 const Jets jets = apply<FastJets>(e, "LeptonJets").jetsByPt(Cuts::pT > 5.*GeV);
386 for (const Jet& jet : jets) {
387 Particle lepCand;
388 for (const Particle& cand : jet.particles()) {
389 const int absPdgId = cand.abspid();
390 if (absPdgId == PID::ELECTRON || absPdgId == PID::MUON) {
391 if (cand.pt() > lepCand.pt()) lepCand = cand;
392 }
393 }
394
395 //Central lepton must be the major component
396 if ((lepCand.pt() < jet.pt()/2.) || (lepCand.pid() == 0)) continue;
397
398 DressedLepton lepton(lepCand);
399 for (const Particle& cand : jet.particles()) {
400 if (isSame(cand, lepCand)) continue;
401 if (cand.pid() != PID::PHOTON) continue;
402 lepton.addConstituent(cand, true);
403 }
404 allClusteredLeptons.push_back(lepton);
405 }
406
407 for (const DressedLepton& lepton : allClusteredLeptons) {
408 if (_cuts->accept(static_cast<const Particle&>(lepton))) {
409 _clusteredLeptons.push_back(lepton);
410 _theParticles.push_back(lepton.bareLepton());
411 _theParticles += lepton.photons();
412 }
413 }
414 }
415
416 protected:
417 /// Container which stores the clustered lepton objects
418 DressedLeptons _clusteredLeptons;
419
420 };
421
422
423 private:
424
425 FourMomentum _tl;
426 FourMomentum _th;
427 FourMomentum _wl;
428 FourMomentum _wh;
429 FourMomentum _nusum;
430
431 Histo1DPtr _hist_thadpt;
432 Histo1DPtr _hist_thady;
433 Histo1DPtr _hist_tleppt;
434 Histo1DPtr _hist_tlepy;
435 Histo1DPtr _hist_ttpt;
436 Histo1DPtr _hist_tty;
437 Histo1DPtr _hist_ttm;
438 Histo1DPtr _hist_njet;
439 Histo1DPtr _hist_njets_thadpt_1;
440 Histo1DPtr _hist_njets_thadpt_2;
441 Histo1DPtr _hist_njets_thadpt_3;
442 Histo1DPtr _hist_njets_thadpt_4;
443 Histo1DPtr _hist_njets_ttpt_1;
444 Histo1DPtr _hist_njets_ttpt_2;
445 Histo1DPtr _hist_njets_ttpt_3;
446 Histo1DPtr _hist_njets_ttpt_4;
447 Histo1DPtr _hist_thady_thadpt_1;
448 Histo1DPtr _hist_thady_thadpt_2;
449 Histo1DPtr _hist_thady_thadpt_3;
450 Histo1DPtr _hist_thady_thadpt_4;
451 Histo1DPtr _hist_ttm_tty_1;
452 Histo1DPtr _hist_ttm_tty_2;
453 Histo1DPtr _hist_ttm_tty_3;
454 Histo1DPtr _hist_ttm_tty_4;
455 Histo1DPtr _hist_ttpt_ttm_1;
456 Histo1DPtr _hist_ttpt_ttm_2;
457 Histo1DPtr _hist_ttpt_ttm_3;
458 Histo1DPtr _hist_ttpt_ttm_4;
459
460 Histo1DPtr _histnorm_thadpt;
461 Histo1DPtr _histnorm_thady;
462 Histo1DPtr _histnorm_tleppt;
463 Histo1DPtr _histnorm_tlepy;
464 Histo1DPtr _histnorm_ttpt;
465 Histo1DPtr _histnorm_tty;
466 Histo1DPtr _histnorm_ttm;
467 Histo1DPtr _histnorm_njet;
468 Histo1DPtr _histnorm_njets_thadpt_1;
469 Histo1DPtr _histnorm_njets_thadpt_2;
470 Histo1DPtr _histnorm_njets_thadpt_3;
471 Histo1DPtr _histnorm_njets_thadpt_4;
472 Histo1DPtr _histnorm_njets_ttpt_1;
473 Histo1DPtr _histnorm_njets_ttpt_2;
474 Histo1DPtr _histnorm_njets_ttpt_3;
475 Histo1DPtr _histnorm_njets_ttpt_4;
476 Histo1DPtr _histnorm_thady_thadpt_1;
477 Histo1DPtr _histnorm_thady_thadpt_2;
478 Histo1DPtr _histnorm_thady_thadpt_3;
479 Histo1DPtr _histnorm_thady_thadpt_4;
480 Histo1DPtr _histnorm_ttm_tty_1;
481 Histo1DPtr _histnorm_ttm_tty_2;
482 Histo1DPtr _histnorm_ttm_tty_3;
483 Histo1DPtr _histnorm_ttm_tty_4;
484 Histo1DPtr _histnorm_ttpt_ttm_1;
485 Histo1DPtr _histnorm_ttpt_ttm_2;
486 Histo1DPtr _histnorm_ttpt_ttm_3;
487 Histo1DPtr _histnorm_ttpt_ttm_4;
488
489 };
490
491
492
493 RIVET_DECLARE_PLUGIN(CMS_2016_I1491950);
494
495}
|