rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

CMS_2016_I1491950

Differential cross sections for top quark pair production using the lepton+jets final state in proton proton collisions at 13 TeV
Experiment: CMS (LHC)
Inspire ID: 1491950
Status: VALIDATED
Authors:
  • Regina Demina
  • Yi-Ting Duh
  • Mario Galanti
  • Aran Garcia-Bellido
  • Otto Hindrichs
  • Mauro Verzetti
  • Markus Seidel
References: Beams: p+ p+
Beam energies: (6500.0, 6500.0) GeV
Run details:
  • pp QCD interactions at $\sqrt{s} = 13$ TeV. Data collected by CMS during the year 2015. Selection of lepton+jets top pair candidate events at particle level.

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}