diff --git a/analyses/pluginATLAS/ATLAS_2012_I1094061.cc b/analyses/pluginATLAS/ATLAS_2012_I1094061.cc --- a/analyses/pluginATLAS/ATLAS_2012_I1094061.cc +++ b/analyses/pluginATLAS/ATLAS_2012_I1094061.cc @@ -1,275 +1,275 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/ChargedFinalState.hh" namespace Rivet { /// Two-particle correlation functions in pp collisions at 900 GeV and 7 TeV class ATLAS_2012_I1094061 : public Analysis { /// Container for a pair of foreground and background histos, divided at the end of the analysis struct HistoPair{ enum HistoType { FOREGROUND, BACKGROUND }; HistoPair() : _ana(nullptr) { } void init(int ds, int xaxis, int yaxis, ATLAS_2012_I1094061* ana) { _ana = ana; const string hcode = ana->makeAxisCode(ds, xaxis, yaxis); _h_foreground = ana->bookHisto1D("tmpForeground_" + hcode, ana->refData(ds, xaxis, yaxis)); _h_background = ana->bookHisto1D("tmpBackground_" + hcode, ana->refData(ds, xaxis, yaxis)); _s_final = ana->bookScatter2D(ds, xaxis, yaxis, true); } void fillForeground(double value, double weight) { _h_foreground->fill(value, weight); _h_foreground->fill(-value, weight); } void fillBackground(double value, double weight) { _h_background->fill(value, weight); _h_background->fill(-value, weight); } void fill(double value, double weight, HistoType type) { if (type == FOREGROUND) { fillForeground(value, weight); } else { // type == BACKGROUND fillBackground(value, weight); } } void finalize(double wgtSum, double bgWeight, double avNTracks) { _h_foreground->scaleW(1/wgtSum); _h_background->scaleW(1/bgWeight); _ana->divide(_h_foreground, _h_background, _s_final); for (Point2D& p : _s_final->points()) { p.setY(p.y() - (avNTracks-1)); } } private: ATLAS_2012_I1094061 *_ana; Histo1DPtr _h_foreground; Histo1DPtr _h_background; Scatter2DPtr _s_final; }; public: /// Constructor ATLAS_2012_I1094061() : Analysis("ATLAS_2012_I1094061"), - _minpT(100.*MeV), _etaMax(2.5), _nVersions(5), _version(0), + _minpT(100.*MeV), _nVersions(5), _version(0), _etaCut(2.), _phiCut(0.5*M_PI), _historyInclusive(_nVersions, ParticleVector()), _historyN20(_nVersions, ParticleVector()), _historyInclusiveWgts(_nVersions, 0.), _historyN20Wgts(_nVersions, 0.), _particleCountInclusive(0.), _particleCountN20(0.), _weightInclusive(0.), _weightN20(0.), _bgWeightInclusive(0.), _bgWeightN20(0.) { } /// @name Analysis methods //@{ void init() { const ChargedFinalState cfs(-2.5, 2.5, _minpT); declare(cfs, "ChargedParticles"); // Only do the multiplicity > 20 plots for 7 TeV collisions _doN20 = (fabs(sqrtS() - 7000.*GeV) < 0.1*GeV); int yaxis = (_doN20) ? 2: 1; _hp_DEta_0_pi.init(1, 1, yaxis, this); _hp_DEta_0_pi2.init(2, 1, yaxis, this); _hp_DEta_pi2_pi.init(3, 1, yaxis, this); _hp_DPhi_0_2.init(4, 1, yaxis, this); _hp_DPhi_2_5.init(5, 1, yaxis, this); if (_doN20) { yaxis = 3; _hp_N20_DEta_0_pi.init(1, 1, yaxis, this); _hp_N20_DEta_0_pi2.init(2, 1, yaxis, this); _hp_N20_DEta_pi2_pi.init(3, 1, yaxis, this); _hp_N20_DPhi_0_2.init(4, 1, yaxis, this); _hp_N20_DPhi_2_5.init(5, 1, yaxis, this); } } void analyze(const Event& evt) { const ChargedFinalState& cfsProj = apply(evt, "ChargedParticles"); Particles chargedParticles = cfsProj.particles(); if (chargedParticles.size() < 2) vetoEvent; const bool hasN20 = (_doN20 && chargedParticles.size() >= 20); const double dMultiplicity = (double) chargedParticles.size(); const double multiplicityWeightIncr = dMultiplicity * evt.weight(); _weightInclusive += evt.weight(); _particleCountInclusive += multiplicityWeightIncr; if (hasN20) { _weightN20 += evt.weight(); _particleCountN20 += multiplicityWeightIncr; } double fgWeight = 2.*evt.weight() / dMultiplicity; for (Particles::const_iterator p1 = chargedParticles.begin(); p1 != chargedParticles.end(); ++p1) { Particles::const_iterator p2 = p1; ++p2; // Fill the foreground distributions while (p2 != chargedParticles.end()) { fillHistosInclusive(*p1, *p2, fgWeight, HistoPair::FOREGROUND); if (hasN20) fillHistosN20(*p1, *p2, fgWeight, HistoPair::FOREGROUND); ++p2; } // Loop over the history of particles from previous events and fill the background // by correlating those particles with the current event for (size_t version = 0; version != _nVersions; ++version) { const Particles& bgParticles = _historyInclusive[version]; double bgWeight = evt.weight() * _historyInclusiveWgts[version]; for (Particles::const_iterator p2 = bgParticles.begin(); p2 != bgParticles.end(); ++p2) { fillHistosInclusive(*p1, *p2, bgWeight, HistoPair::BACKGROUND); _bgWeightInclusive += bgWeight; } if (!hasN20) continue; const Particles& bgParticlesN20 = _historyN20[version]; bgWeight = evt.weight() * _historyN20Wgts[version]; for (Particles::const_iterator p2 = bgParticlesN20.begin(); p2 != bgParticlesN20.end(); ++p2) { fillHistosN20(*p1, *p2, bgWeight, HistoPair::BACKGROUND); _bgWeightN20 += bgWeight; } } } // Overwrite the history for the version count number _historyInclusive[_version] = chargedParticles; _historyInclusiveWgts[_version] = evt.weight(); if (hasN20) { _historyN20[_version] = chargedParticles; _historyN20Wgts[_version] = evt.weight(); } ++_version; if (_version == _nVersions) _version = 0; } void finalize() { const double avMultiplicity = _particleCountInclusive / _weightInclusive; _hp_DEta_0_pi.finalize(_weightInclusive, _bgWeightInclusive, avMultiplicity); _hp_DEta_0_pi2.finalize(_weightInclusive, _bgWeightInclusive, avMultiplicity); _hp_DEta_pi2_pi.finalize(_weightInclusive,_bgWeightInclusive, avMultiplicity); _hp_DPhi_0_2.finalize(_weightInclusive, _bgWeightInclusive, avMultiplicity); _hp_DPhi_2_5.finalize(_weightInclusive, _bgWeightInclusive, avMultiplicity); if (_doN20) { const double avMultiplicityN20 = _particleCountN20 / _weightN20; _hp_N20_DEta_0_pi.finalize(_weightN20, _bgWeightN20, avMultiplicityN20); _hp_N20_DEta_0_pi2.finalize(_weightN20, _bgWeightN20, avMultiplicityN20); _hp_N20_DEta_pi2_pi.finalize(_weightN20, _bgWeightN20, avMultiplicityN20); _hp_N20_DPhi_0_2.finalize(_weightN20, _bgWeightN20, avMultiplicityN20); _hp_N20_DPhi_2_5.finalize(_weightN20, _bgWeightN20, avMultiplicityN20); } } //@} void fillHistos(const Particle &p1, const Particle &p2, double weight, HistoPair::HistoType type, bool inclusive) { const double dEta = fabs(p1.eta() - p2.eta()); const double dPhi = mapAngle0ToPi(p1.phi() - p2.phi()); const double dPhiShift = TWOPI - dPhi; HistoPair& dEta_0_pi = (inclusive)? _hp_DEta_0_pi :_hp_N20_DEta_0_pi; HistoPair& dPhi_0_2 = (inclusive)? _hp_DPhi_0_2 :_hp_N20_DPhi_0_2; HistoPair& dPhi_2_5 = (inclusive)? _hp_DPhi_2_5 :_hp_N20_DPhi_2_5; HistoPair& dEta_0_pi2 = (inclusive)? _hp_DEta_0_pi2 :_hp_N20_DEta_0_pi2; HistoPair& dEta_pi2_pi = (inclusive)? _hp_DEta_pi2_pi :_hp_N20_DEta_pi2_pi; dEta_0_pi.fill(dEta, weight, type); if (dEta < _etaCut) { dPhi_0_2.fill(dPhi, weight, type); dPhi_0_2.fill(dPhiShift, weight, type); } else { dPhi_2_5.fill(dPhi, weight, type); dPhi_2_5.fill(dPhiShift, weight, type); } if (dPhi < _phiCut) { dEta_0_pi2.fill(dEta, weight, type); } else { dEta_pi2_pi.fill(dEta, weight, type); } } void fillHistosInclusive(const Particle &p1, const Particle &p2, double weight, HistoPair::HistoType type) { fillHistos(p1, p2, weight, type, true); } void fillHistosN20(const Particle &p1, const Particle &p2, double weight, HistoPair::HistoType type) { fillHistos(p1, p2, weight, type, false); } private: /// Cut values - double _minpT, _etaMax; + double _minpT; /// History versions size_t _nVersions, _version; /// Cut values double _etaCut, _phiCut; /// Vectors of particles from _nVersions previous events, to construct the background correlation. vector _historyInclusive, _historyN20; /// History-event weights vector _historyInclusiveWgts, _historyN20Wgts; double _particleCountInclusive, _particleCountN20; double _weightInclusive, _weightN20; double _bgWeightInclusive, _bgWeightN20; bool _doN20; HistoPair _hp_DEta_0_pi, _hp_DEta_0_pi2, _hp_DEta_pi2_pi; HistoPair _hp_DPhi_0_2, _hp_DPhi_2_5; HistoPair _hp_N20_DEta_0_pi, _hp_N20_DEta_0_pi2, _hp_N20_DEta_pi2_pi; HistoPair _hp_N20_DPhi_0_2, _hp_N20_DPhi_2_5; }; DECLARE_RIVET_PLUGIN(ATLAS_2012_I1094061); } diff --git a/analyses/pluginCMS/CMS_2016_I1491953.cc b/analyses/pluginCMS/CMS_2016_I1491953.cc --- a/analyses/pluginCMS/CMS_2016_I1491953.cc +++ b/analyses/pluginCMS/CMS_2016_I1491953.cc @@ -1,334 +1,334 @@ #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/FastJets.hh" #include "Rivet/Projections/VetoedFinalState.hh" #include "Rivet/Projections/WFinder.hh" namespace Rivet { /// @brief Differential cross sections for associated production of a W boson and jets at 8 TeV class CMS_2016_I1491953 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(CMS_2016_I1491953); /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { // Initialise and register projections FinalState fs; WFinder wfinder_mu(fs, Cuts::abseta < 2.4 && Cuts::pT > 0*GeV, PID::MUON, 0*GeV, 1000000*GeV, 0*GeV, 0.1, WFinder::CLUSTERNODECAY, WFinder::TRACK, WFinder::TRANSMASS); addProjection(wfinder_mu, "WFinder_mu"); // Define veto FS VetoedFinalState vfs; vfs.addVetoOnThisFinalState(wfinder_mu); vfs.addVetoPairId(PID::MUON); vfs.vetoNeutrinos(); FastJets fastjets(vfs, FastJets::ANTIKT, 0.5); addProjection(fastjets, "Jets"); _hist_Mult_exc = bookHisto1D("d01-x01-y01"); _hist_inc_WJetMult = bookHisto1D("d02-x01-y01"); _hist_addJetPt1j = bookHisto1D("d03-x01-y01"); _hist_addJetPt2j = bookHisto1D("d04-x01-y01"); _hist_addJetPt3j = bookHisto1D("d05-x01-y01"); _hist_addJetPt4j = bookHisto1D("d06-x01-y01"); _hist_addHt_1j = bookHisto1D("d07-x01-y01"); _hist_addHt_2j = bookHisto1D("d08-x01-y01"); _hist_addHt_3j = bookHisto1D("d09-x01-y01"); _hist_addHt_4j = bookHisto1D("d10-x01-y01"); _hist_diJetPt_2j = bookHisto1D("d11-x01-y01"); _hist_diJetPt_3j = bookHisto1D("d12-x01-y01"); _hist_diJetPt_4j = bookHisto1D("d13-x01-y01"); _hist_dijetM_2j = bookHisto1D("d14-x01-y01"); _hist_dijetM_3j = bookHisto1D("d15-x01-y01"); _hist_dijetM_4j = bookHisto1D("d16-x01-y01"); _hist_Jeteta1j = bookHisto1D("d17-x01-y01"); _hist_Jeteta2j = bookHisto1D("d18-x01-y01"); _hist_Jeteta3j = bookHisto1D("d19-x01-y01"); _hist_Jeteta4j = bookHisto1D("d20-x01-y01"); _hist_dyj1j2_2j = bookHisto1D("d21-x01-y01"); _hist_dyj1j2_3j = bookHisto1D("d22-x01-y01"); _hist_dyj1j2_4j = bookHisto1D("d23-x01-y01"); _hist_dyj1j3_3j = bookHisto1D("d24-x01-y01"); _hist_dyj2j3_3j = bookHisto1D("d25-x01-y01"); _hist_dyjFjB_2j = bookHisto1D("d26-x01-y01"); _hist_dyjFjB_3j = bookHisto1D("d27-x01-y01"); _hist_dyjFjB_4j = bookHisto1D("d28-x01-y01"); _hist_dphij1j2_2j = bookHisto1D("d29-x01-y01"); _hist_dphijFjB_2j = bookHisto1D("d30-x01-y01"); _hist_dRj1j2_2j = bookHisto1D("d31-x01-y01"); _hist_dphij1mu_1j = bookHisto1D("d32-x01-y01"); _hist_dphij2mu_2j = bookHisto1D("d33-x01-y01"); _hist_dphij3mu_3j = bookHisto1D("d34-x01-y01"); _hist_dphij4mu_4j = bookHisto1D("d35-x01-y01"); _hist_MeanNJht_1j = bookProfile1D("d36-x01-y01"); _hist_MeanNJht_2j = bookProfile1D("d37-x01-y01"); _hist_MeanNJdyj1j2_2j = bookProfile1D("d38-x01-y01"); _hist_MeanNJdyjFjB_2j = bookProfile1D("d39-x01-y01"); } // Define function used for filiing inc Njets histo void _fill(Histo1DPtr& _histJetMult, const double& weight, vector& finaljet_list) { _histJetMult->fill(0, weight); for (size_t i = 0 ; i < finaljet_list.size() ; ++i) { if (i == 7) break; _histJetMult->fill(i+1, weight); // inclusive multiplicity } } /// Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); const WFinder& wfinder_mu = apply(event, "WFinder_mu"); if (wfinder_mu.bosons().size() != 1) vetoEvent; //const FourMomentum& lepton0 = wfinder_mu.constituentLeptons()[0].momentum(); //const FourMomentum& neutrino = wfinder_mu.constituentNeutrinos()[0].momentum(); //double WmT = sqrt( 2 * lepton0.pT() * neutrino.pT() * (1 - cos(deltaPhi(lepton0, neutrino))) ); const FourMomentum& lepton0 = wfinder_mu.constituentLepton().momentum(); - const FourMomentum& neutrino = wfinder_mu.constituentNeutrino().momentum(); + //const FourMomentum& neutrino = wfinder_mu.constituentNeutrino().momentum(); double WmT = wfinder_mu.mT(); if (WmT < 50.0*GeV) vetoEvent; if (lepton0.abseta() > 2.1 || lepton0.pT() < 25.0*GeV) vetoEvent; // Select final jets, ordered by decreasing pT vector finaljet_list; double HT = 0.0; const Jets jListAll = apply(event, "Jets").jetsByPt(30.0*GeV); for (const Jet& j : jListAll) { if (j.abseta() < 2.4 && j.pT() > 30.0*GeV && deltaR(lepton0, j) > 0.5) { finaljet_list.push_back(j.momentum()); HT += j.pT(); } } // Another jet list, sorted by increasing rapidity vector jListRap = finaljet_list; std::sort(jListRap.begin(), jListRap.end(), cmpMomByRap); // Multiplicity exc plot. if (finaljet_list.size()<=7) { _hist_Mult_exc->fill(finaljet_list.size(), weight); } else if (finaljet_list.size()>7){ _hist_Mult_exc->fill(7., weight); } // Multiplicity inc plot. _fill(_hist_inc_WJetMult, weight, finaljet_list); if (finaljet_list.size()>=1) { _hist_addJetPt1j->fill(finaljet_list[0].pT(), weight); _hist_Jeteta1j->fill(fabs(finaljet_list[0].eta()), weight); _hist_addHt_1j->fill(HT, weight); _hist_dphij1mu_1j->fill( deltaPhi(finaljet_list[0].phi(), lepton0.phi()), weight ); _hist_MeanNJht_1j->fill( HT, finaljet_list.size(), weight); } if (finaljet_list.size()>=2) { _hist_addJetPt2j->fill(finaljet_list[1].pT(), weight); _hist_Jeteta2j->fill(fabs(finaljet_list[1].eta()), weight); _hist_addHt_2j->fill(HT, weight); _hist_dyj1j2_2j ->fill( fabs(finaljet_list[0].rapidity() - finaljet_list[1].rapidity()), weight); _hist_dyjFjB_2j ->fill( fabs(jListRap[0].rapidity() - jListRap[jListRap.size()-1].rapidity()), weight); _hist_dphij1j2_2j ->fill( deltaPhi(finaljet_list[0].phi(), finaljet_list[1].phi()), weight); _hist_dphijFjB_2j ->fill( deltaPhi(jListRap[0].phi(), jListRap[jListRap.size()-1].phi()) , weight); _hist_dijetM_2j ->fill( (add(finaljet_list[0], finaljet_list[1])).mass(), weight); _hist_diJetPt_2j ->fill( (add(finaljet_list[0], finaljet_list[1])).pT(), weight); _hist_dRj1j2_2j ->fill( deltaR(finaljet_list[0].rapidity(), finaljet_list[0].phi(), finaljet_list[1].rapidity(), finaljet_list[1].phi()), weight); _hist_dphij2mu_2j ->fill( deltaPhi(finaljet_list[1].phi(), lepton0.phi()), weight ); _hist_MeanNJht_2j->fill( HT, finaljet_list.size(), weight); _hist_MeanNJdyj1j2_2j->fill( fabs(finaljet_list[0].rapidity() - finaljet_list[1].rapidity()), finaljet_list.size(), weight); _hist_MeanNJdyjFjB_2j->fill( fabs(jListRap[0].rapidity() - jListRap[jListRap.size()-1].rapidity()), finaljet_list.size(), weight); } if (finaljet_list.size()>=3) { _hist_addJetPt3j->fill(finaljet_list[2].pT(), weight); _hist_Jeteta3j->fill(fabs(finaljet_list[2].eta()), weight); _hist_addHt_3j->fill(HT, weight); _hist_dyj1j2_3j ->fill( fabs(finaljet_list[0].rapidity() - finaljet_list[1].rapidity()), weight); _hist_dyj1j3_3j ->fill( fabs(finaljet_list[0].rapidity() - finaljet_list[2].rapidity()), weight); _hist_dyj2j3_3j ->fill( fabs(finaljet_list[1].rapidity() - finaljet_list[2].rapidity()), weight); _hist_dyjFjB_3j ->fill( fabs(jListRap[0].rapidity() - jListRap[jListRap.size()-1].rapidity()), weight); _hist_dijetM_3j ->fill( (add(finaljet_list[0], finaljet_list[1])).mass(), weight); _hist_diJetPt_3j ->fill( (add(finaljet_list[0], finaljet_list[1])).pT(), weight); _hist_dphij3mu_3j->fill( deltaPhi(finaljet_list[2].phi(), lepton0.phi()), weight ); } if (finaljet_list.size()>=4) { _hist_addJetPt4j->fill(finaljet_list[3].pT(), weight); _hist_Jeteta4j->fill(fabs(finaljet_list[3].eta()), weight); _hist_addHt_4j->fill(HT, weight); _hist_dyj1j2_4j ->fill( fabs(finaljet_list[0].rapidity() - finaljet_list[1].rapidity()), weight); _hist_dyjFjB_4j ->fill( fabs(jListRap[0].rapidity() - jListRap[jListRap.size()-1].rapidity()), weight); _hist_dijetM_4j ->fill( (add(finaljet_list[0], finaljet_list[1])).mass(), weight); _hist_diJetPt_4j ->fill( (add(finaljet_list[0], finaljet_list[1])).pT(), weight); _hist_dphij4mu_4j->fill( deltaPhi(finaljet_list[3].phi(), lepton0.phi()), weight ); } } //void loop /// Normalise histograms etc., after the run void finalize() { const double crossec = !std::isnan(crossSectionPerEvent()) ? crossSection() : 36703*picobarn; if (std::isnan(crossSectionPerEvent())){ MSG_INFO("No valid cross-section given, using NNLO xsec calculated by FEWZ " << crossec/picobarn << " pb"); } scale(_hist_Mult_exc, crossec/picobarn/sumOfWeights()); scale(_hist_inc_WJetMult, crossec/picobarn/sumOfWeights()); scale(_hist_addJetPt1j, crossec/picobarn/sumOfWeights()); scale(_hist_addJetPt2j, crossec/picobarn/sumOfWeights()); scale(_hist_addJetPt3j, crossec/picobarn/sumOfWeights()); scale(_hist_addJetPt4j, crossec/picobarn/sumOfWeights()); scale(_hist_Jeteta1j, crossec/picobarn/sumOfWeights()); scale(_hist_Jeteta2j, crossec/picobarn/sumOfWeights()); scale(_hist_Jeteta3j, crossec/picobarn/sumOfWeights()); scale(_hist_Jeteta4j, crossec/picobarn/sumOfWeights()); scale(_hist_addHt_1j, crossec/picobarn/sumOfWeights()); scale(_hist_addHt_2j, crossec/picobarn/sumOfWeights()); scale(_hist_addHt_3j, crossec/picobarn/sumOfWeights()); scale(_hist_addHt_4j, crossec/picobarn/sumOfWeights()); //------------------------------------- scale(_hist_dyj1j2_2j, crossec/picobarn/sumOfWeights()); scale(_hist_dyj1j2_3j, crossec/picobarn/sumOfWeights()); scale(_hist_dyj1j2_4j, crossec/picobarn/sumOfWeights()); scale(_hist_dyjFjB_2j, crossec/picobarn/sumOfWeights()); scale(_hist_dyjFjB_3j, crossec/picobarn/sumOfWeights()); scale(_hist_dyjFjB_4j, crossec/picobarn/sumOfWeights()); scale(_hist_dyj1j3_3j, crossec/picobarn/sumOfWeights()); scale(_hist_dyj2j3_3j, crossec/picobarn/sumOfWeights()); scale(_hist_dphij1j2_2j, crossec/picobarn/sumOfWeights()); scale(_hist_dphijFjB_2j, crossec/picobarn/sumOfWeights()); scale(_hist_dRj1j2_2j, crossec/picobarn/sumOfWeights()); scale(_hist_dijetM_2j, crossec/picobarn/sumOfWeights()); scale(_hist_dijetM_3j, crossec/picobarn/sumOfWeights()); scale(_hist_dijetM_4j, crossec/picobarn/sumOfWeights()); scale(_hist_diJetPt_2j, crossec/picobarn/sumOfWeights()); scale(_hist_diJetPt_3j, crossec/picobarn/sumOfWeights()); scale(_hist_diJetPt_4j, crossec/picobarn/sumOfWeights()); scale(_hist_dphij1mu_1j, crossec/picobarn/sumOfWeights()); scale(_hist_dphij2mu_2j, crossec/picobarn/sumOfWeights()); scale(_hist_dphij3mu_3j, crossec/picobarn/sumOfWeights()); scale(_hist_dphij4mu_4j, crossec/picobarn/sumOfWeights()); } //@} private: /// @name Histograms //@{ Histo1DPtr _hist_inc_WJetMult; Histo1DPtr _hist_Mult_exc; Histo1DPtr _hist_addJetPt1j; Histo1DPtr _hist_addJetPt2j; Histo1DPtr _hist_addJetPt3j; Histo1DPtr _hist_addJetPt4j; Histo1DPtr _hist_Jeteta1j; Histo1DPtr _hist_Jeteta2j; Histo1DPtr _hist_Jeteta3j; Histo1DPtr _hist_Jeteta4j; Histo1DPtr _hist_addHt_1j; Histo1DPtr _hist_addHt_2j; Histo1DPtr _hist_addHt_3j; Histo1DPtr _hist_addHt_4j; //------------------------------------- Histo1DPtr _hist_dyj1j2_2j; Histo1DPtr _hist_dyj1j2_3j; Histo1DPtr _hist_dyj1j2_4j; Histo1DPtr _hist_dyjFjB_2j; Histo1DPtr _hist_dyjFjB_3j; Histo1DPtr _hist_dyjFjB_4j; Histo1DPtr _hist_dyj1j3_3j; Histo1DPtr _hist_dyj2j3_3j; Histo1DPtr _hist_dphij1j2_2j; Histo1DPtr _hist_dphijFjB_2j; Histo1DPtr _hist_dRj1j2_2j; Histo1DPtr _hist_dijetM_2j; Histo1DPtr _hist_dijetM_3j; Histo1DPtr _hist_dijetM_4j; Histo1DPtr _hist_diJetPt_2j; Histo1DPtr _hist_diJetPt_3j; Histo1DPtr _hist_diJetPt_4j; Histo1DPtr _hist_dphij1mu_1j; Histo1DPtr _hist_dphij2mu_2j; Histo1DPtr _hist_dphij3mu_3j; Histo1DPtr _hist_dphij4mu_4j; //------------------------------------- Profile1DPtr _hist_MeanNJht_1j; Profile1DPtr _hist_MeanNJht_2j; Profile1DPtr _hist_MeanNJdyj1j2_2j; Profile1DPtr _hist_MeanNJdyjFjB_2j; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(CMS_2016_I1491953); }