Rivet analyses referenceCMS_2018_I1703993Measurements of ttbar differential cross sections in proton-proton collisions at 13 TeV using events containing two leptonsExperiment: CMS (LHC) Inspire ID: 1703993 Status: VALIDATED Authors:
Beam energies: (6500.0, 6500.0) GeV Run details:
Absolute and normalised differential top quark pair production cross sections are measured in the dilepton decay channels. The differential cross sections have been obtained by the CMS experiment at the CERN LHC in 2016 in proton-proton collisions at a centre-of-mass energy of 13 TeV. The measurements are performed with data corresponding to an integrated luminosity of 35.9/fb. The cross sections are measured differentially as a function of the kinematic properties of the top quarks and the tt system at the particle and parton levels, and the top quark decay products at the particle level. The results are compared to Monte Carlo simulations from POWHEG interfaced with the parton shower generators PYTHIA 8 and HERWIG 7 up to NNLO (next-to-next leading order) accuracy. Source code: CMS_2018_I1703993.cc 1#include "Rivet/Analysis.hh"
2#include "Rivet/Projections/FinalState.hh"
3#include "Rivet/Projections/FastJets.hh"
4#include "Rivet/Projections/PartonicTops.hh"
5#include "Rivet/Projections/LeptonFinder.hh"
6#include "Rivet/Projections/IdentifiedFinalState.hh"
7#include "Rivet/Projections/InvisibleFinalState.hh"
8#include "Rivet/Projections/PromptFinalState.hh"
9#include "Rivet/Projections/VetoedFinalState.hh"
10#include "Rivet/Projections/ChargedLeptons.hh"
11#include "Rivet/Math/LorentzTrans.hh"
12
13namespace Rivet {
14
15
16 /// ttbar dilepton differential cross-sections in pp collisions at 13 TeV
17 class CMS_2018_I1703993 : public Analysis { //
18 public:
19
20 RIVET_DEFAULT_ANALYSIS_CTOR(CMS_2018_I1703993); //
21
22 void init() {
23 // Parton level top quarks dilepton e/mu channels only
24 declare(PartonicTops(TopDecay::E_MU, PromptEMuFromTau::NO), "PartonTops"); // Partonic top decaying to e or mu
25
26 // Build particle level tops starting from FinalState
27 const FinalState fs(Cuts::pT > 0. && Cuts::abseta < 6.);
28
29 // Neutrinos
30 InvisibleFinalState neutrinos(OnlyPrompt::YES, TauDecaysAs::PROMPT, MuDecaysAs::PROMPT);
31 declare(neutrinos, "Neutrinos");
32
33 // Projection for electrons and muons
34 Cut lepton_cut = Cuts::pt > 20 * GeV && Cuts::abseta < 2.4;
35
36 // Dressed leptons
37 ChargedLeptons charged_leptons(fs);
38 IdentifiedFinalState photons(fs);
39 photons.acceptIdPair(PID::PHOTON);
40
41 PromptFinalState prompt_leptons(charged_leptons, TauDecaysAs::NONPROMPT);
42 PromptFinalState prompt_photons(photons, TauDecaysAs::PROMPT);
43
44 LeptonFinder dressed_leptons(prompt_leptons, prompt_photons, 0.1, lepton_cut);
45 declare(dressed_leptons, "LeptonFinder");
46
47 // Projection for jets
48 VetoedFinalState fs_jets(fs);
49 fs_jets.addVetoOnThisFinalState(dressed_leptons);
50 fs_jets.vetoNeutrinos();
51 declare(FastJets(fs_jets, JetAlg::ANTIKT, 0.4), "ak4jets");
52
53 // Book hists for particle level, normalized values
54 book(_h["top_pt_norm"], "d07-x01-y01"); // table 15, normalized values
55 book(_h["atop_pt_norm"], "d15-x01-y01"); // table 16, normalized values
56 book(_h["top1_pt_norm"], "d23-x01-y01"); // table 17, normalized values
57 book(_h["top2_pt_norm"], "d31-x01-y01"); // table 18, normalized values
58 book(_h["top_pt_ttrf_norm"], "d39-x01-y01"); // table 19, normalized values
59 book(_h["top_y_norm"], "d47-x01-y01"); // table 20, normalized values
60 book(_h["atop_y_norm"], "d55-x01-y01"); // table 21, normalized values
61 book(_h["top1_y_norm"], "d63-x01-y01"); // table 22, normalized values
62 book(_h["top2_y_norm"], "d71-x01-y01"); // table 23, normalized values
63 book(_h["tt_pt_norm"], "d79-x01-y01"); // table 24, normalized values
64 book(_h["tt_y_norm"], "d87-x01-y01"); // table 25, normalized values
65 book(_h["tt_m_norm"], "d95-x01-y01"); // table 26, normalized values
66 book(_h["tt_dy_norm"], "d103-x01-y01"); // table 27, normalized values
67 book(_h["tt_dphi_norm"], "d111-x01-y01"); // table 28, normalized values
68 book(_h["lep_pt_norm"], "d115-x01-y01"); // table 29, normalized values,lepton
69 book(_h["alep_pt_norm"], "d119-x01-y01"); // table 30, normalized values,antilepton
70 book(_h["lep1_pt_norm"], "d123-x01-y01"); // table 31, normalized values,leading
71 book(_h["lep2_pt_norm"], "d127-x01-y01"); // table 32, normalized values,trailing
72 book(_h["lep_eta_norm"], "d131-x01-y01"); // table 33, normalized values, eta lepton
73 book(_h["alep_eta_norm"], "d135-x01-y01"); // table 34, normalized values, eta antilepton
74 book(_h["lep1_eta_norm"], "d139-x01-y01"); // table 35, normalized values, eta l leading
75 book(_h["lep2_eta_norm"], "d143-x01-y01"); // table 36, normalized values, eta l trailing
76 book(_h["ll_pt_norm"], "d147-x01-y01"); // table 37, normalized values
77 book(_h["ll_m_norm"], "d151-x01-y01"); // table 38, normalized values
78 book(_h["ll_dphi_norm"], "d155-x01-y01"); // table 39, normalized values
79 book(_h["ll_deta_norm"], "d159-x01-y01"); // table 40, normalized values
80 book(_h["jet_sz_norm"], "d187-x01-y01"); // table 41(47), normalized values
81 book(_h["jet1_pt_norm"], "d163-x01-y01"); // table 42, normalized values, leading
82 book(_h["jet2_pt_norm"], "d167-x01-y01"); // table 43, normalized values
83 book(_h["b1_eta_norm"], "d171-x01-y01"); // table 44(43), normalized values, leading
84 book(_h["b2_eta_norm"], "d175-x01-y01"); // table 45(44), normalized values, trailing
85 book(_h["bb_pt_norm"], "d179-x01-y01"); // table 46(45), normalized values
86 book(_h["bb_m_norm"], "d183-x01-y01"); // table 47(46), normalized values
87
88 // book hists for particle level, absolute values
89 book(_h_abs["top_pt"], "d05-x01-y01"); // table 15
90 book(_h_abs["atop_pt"], "d13-x01-y01"); // table 16
91 book(_h_abs["top1_pt"], "d21-x01-y01"); // table 17
92 book(_h_abs["top2_pt"], "d29-x01-y01"); // table 18
93 book(_h_abs["top_pt_ttrf"], "d37-x01-y01"); // table 19
94 book(_h_abs["top_y"], "d45-x01-y01"); // table 20
95 book(_h_abs["atop_y"], "d53-x01-y01"); // table 21
96 book(_h_abs["top1_y"], "d61-x01-y01"); // table 22
97 book(_h_abs["top2_y"], "d69-x01-y01"); // table 23
98 book(_h_abs["tt_pt"], "d77-x01-y01"); // table 24
99 book(_h_abs["tt_y"], "d85-x01-y01"); // table 25
100 book(_h_abs["tt_m"], "d93-x01-y01"); // table 26
101 book(_h_abs["tt_dy"], "d101-x01-y01"); // table 27
102 book(_h_abs["tt_dphi"], "d109-x01-y01"); // table 28
103 book(_h_abs["lep_pt"], "d113-x01-y01"); // table 29, lepton
104 book(_h_abs["alep_pt"], "d117-x01-y01"); // table 30, antilepton
105 book(_h_abs["lep1_pt"], "d121-x01-y01"); // table 31, leading
106 book(_h_abs["lep2_pt"], "d125-x01-y01"); // table 32, trailing
107 book(_h_abs["lep_eta"], "d129-x01-y01"); // table 33, eta lepton
108 book(_h_abs["alep_eta"], "d133-x01-y01"); // table 34, eta antilepton
109 book(_h_abs["lep1_eta"], "d137-x01-y01"); // table 35, eta l leading
110 book(_h_abs["lep2_eta"], "d141-x01-y01"); // table 36, eta l trailing
111 book(_h_abs["ll_pt"], "d145-x01-y01"); // table 37
112 book(_h_abs["ll_m"], "d149-x01-y01"); // table 38
113 book(_h_abs["ll_dphi"], "d153-x01-y01"); // table 39
114 book(_h_abs["ll_deta"], "d157-x01-y01"); // table 40
115 book(_h_abs["jet_sz"], "d185-x01-y01"); // table 41(47)
116 book(_h_abs["jet1_pt"], "d161-x01-y01"); // table 42(41), leading
117 book(_h_abs["jet2_pt"], "d165-x01-y01"); // table 43(42)
118 book(_h_abs["b1_eta"], "d169-x01-y01"); // table 44(43), leading
119 book(_h_abs["b2_eta"], "d173-x01-y01"); // table 45(44), trailing
120 book(_h_abs["bb_pt"], "d177-x01-y01"); // table 46(45)
121 book(_h_abs["bb_m"], "d181-x01-y01"); // table 47(46)
122
123 //book hists for parton level, normalized values
124 book(_h_part["top_pt_norm"], "d03-x01-y01"); // table 1
125 book(_h_part["atop_pt_norm"], "d11-x01-y01"); // table 2
126 book(_h_part["top1_pt_norm"], "d19-x01-y01"); // table 3
127 book(_h_part["top2_pt_norm"], "d27-x01-y01"); // table 4
128 book(_h_part["top_pt_ttrf_norm"], "d35-x01-y01"); // table 5
129 book(_h_part["top_y_norm"], "d43-x01-y01"); // table 6
130 book(_h_part["atop_y_norm"], "d51-x01-y01"); // table 7
131 book(_h_part["top1_y_norm"], "d59-x01-y01"); // table 8
132 book(_h_part["top2_y_norm"], "d67-x01-y01"); // table 9
133 book(_h_part["tt_pt_norm"], "d75-x01-y01"); // table 10
134 book(_h_part["tt_y_norm"], "d83-x01-y01"); // table 11
135 book(_h_part["tt_m_norm"], "d91-x01-y01"); // table 12
136 book(_h_part["tt_dy_norm"], "d99-x01-y01"); // table 13
137 book(_h_part["tt_dphi_norm"], "d107-x01-y01"); // table 14
138
139 //book hists for parton level, absolute values
140 book(_h_part_abs["top_pt"], "d01-x01-y01"); // table 1
141 book(_h_part_abs["atop_pt"], "d09-x01-y01"); // table 2
142 book(_h_part_abs["top1_pt"], "d17-x01-y01"); // table 3
143 book(_h_part_abs["top2_pt"], "d25-x01-y01"); // table 4
144 book(_h_part_abs["top_pt_ttrf"], "d33-x01-y01"); // table 5
145 book(_h_part_abs["top_y"], "d41-x01-y01"); // table 6
146 book(_h_part_abs["atop_y"], "d49-x01-y01"); // table 7
147 book(_h_part_abs["top1_y"], "d57-x01-y01"); // table 8
148 book(_h_part_abs["top2_y"], "d65-x01-y01"); // table 9
149 book(_h_part_abs["tt_pt"], "d73-x01-y01"); // table 10
150 book(_h_part_abs["tt_y"], "d81-x01-y01"); // table 11
151 book(_h_part_abs["tt_m"], "d89-x01-y01"); // table 12
152 book(_h_part_abs["tt_dy"], "d97-x01-y01"); // table 13
153 book(_h_part_abs["tt_dphi"], "d105-x01-y01"); // table 14
154 }
155
156 void analyze(const Event& event) {
157 // Parton-level analysis
158 const Particles partonTops = apply<ParticleFinder>(event, "PartonTops").particlesByPt();
159 if (partonTops.size() == 2) {
160 Particle top1 = partonTops[0];
161 Particle top2 = partonTops[1];
162
163 Particle top = top1;
164 Particle atop = top2;
165 if (top.pid() < 0) {
166 std::swap(top, atop);
167 }
168
169 const FourMomentum tt = top1.momentum() + top2.momentum();
170 const LorentzTransform rf = LorentzTransform::mkFrameTransform(tt);
171 const FourMomentum top_rf = rf.transform(top);
172
173 //Parton level normalized values
174 _h_part["top_pt_norm"]->fill(top.pt()/GeV);
175 _h_part["atop_pt_norm"]->fill(atop.pt()/GeV);
176 _h_part["top1_pt_norm"]->fill(top1.pt()/GeV);
177 _h_part["top2_pt_norm"]->fill(top2.pt()/GeV);
178 _h_part["top_pt_ttrf_norm"]->fill(top_rf.pt()/GeV);
179 _h_part["top_y_norm"]->fill(top.rapidity());
180 _h_part["atop_y_norm"]->fill(atop.rapidity());
181 _h_part["top1_y_norm"]->fill(top1.rapidity());
182 _h_part["top2_y_norm"]->fill(top2.rapidity());
183 _h_part["tt_pt_norm"]->fill(tt.pt()/GeV);
184 _h_part["tt_y_norm"]->fill(tt.rapidity());
185 _h_part["tt_m_norm"]->fill(tt.mass()/GeV);
186 _h_part["tt_dy_norm"]->fill(deltaRap(top.absrap(), atop.absrap(), true));
187 _h_part["tt_dphi_norm"]->fill(deltaPhi(top.phi(), atop.phi()));
188
189 //Parton level absolute values
190 _h_part_abs["top_pt"]->fill(top.pt()/GeV);
191 _h_part_abs["atop_pt"]->fill(atop.pt()/GeV);
192 _h_part_abs["top1_pt"]->fill(top1.pt()/GeV);
193 _h_part_abs["top2_pt"]->fill(top2.pt()/GeV);
194 _h_part_abs["top_pt_ttrf"]->fill(top_rf.pt()/GeV);
195 _h_part_abs["top_y"]->fill(top.rapidity());
196 _h_part_abs["atop_y"]->fill(atop.rapidity());
197 _h_part_abs["top1_y"]->fill(top1.rapidity());
198 _h_part_abs["top2_y"]->fill(top2.rapidity());
199 _h_part_abs["tt_pt"]->fill(tt.pt()/GeV);
200 _h_part_abs["tt_y"]->fill(tt.rapidity());
201 _h_part_abs["tt_m"]->fill(tt.mass()/GeV);
202 _h_part_abs["tt_dy"]->fill(deltaRap(top.absrap(), atop.absrap(), true));
203 _h_part_abs["tt_dphi"]->fill(deltaPhi(top.phi(), atop.phi()));
204 }
205
206 //Particle-level analysis
207 // Select leptons
208 const DressedLeptons& dressedLeptons = apply<LeptonFinder>(event, "LeptonFinder").dressedLeptons();
209 if (dressedLeptons.size() != 2) vetoEvent;
210
211 const FourMomentum& lepton1 = dressedLeptons[0].momentum();
212 const FourMomentum& lepton2 = dressedLeptons[1].momentum();
213 if ((lepton1 + lepton2).mass() < 20*GeV) vetoEvent;
214
215 // Select neutrinos
216 const Particles neutrinos = apply<InvisibleFinalState>(event, "Neutrinos").particlesByPt();
217 if (neutrinos.size() < 2) vetoEvent;
218
219 // Select bjets
220 const FastJets& fjJets = apply<FastJets>(event, "ak4jets");
221 const Jets jets = fjJets.jetsByPt(Cuts::abseta < 2.4 && Cuts::pT > 30 * GeV);
222 const Jets bJets = select(jets, hasBTag());
223
224 // There should at least two b jets.
225 if (bJets.size() < 2)
226 vetoEvent;
227
228 // Construct particle level top
229 FourMomentum nu1 = neutrinos[0].momentum();
230 FourMomentum nu2 = neutrinos[1].momentum();
231 if (std::abs((lepton1 + nu1).mass() - 80.4*GeV) + std::abs((lepton2 + nu2).mass() - 80.4*GeV) >
232 std::abs((lepton1 + nu2).mass() - 80.4*GeV) + std::abs((lepton2 + nu1).mass() - 80.4*GeV)) {
233 std::swap(nu1, nu2);
234 }
235 const FourMomentum w1 = lepton1 + nu1;
236 const FourMomentum w2 = lepton2 + nu2;
237
238 double dm = 1e9; // Reset once again for top combination.
239 int selB1 = -1, selB2 = -1;
240 for (unsigned int i = 0; i < bJets.size(); ++i) {
241 const auto& bjet1 = bJets.at(i);
242 if (deltaR(bjet1, lepton1) < 0.4)
243 continue;
244 if (deltaR(bjet1, lepton2) < 0.4)
245 continue;
246
247 const double dm1 = std::abs((w1 + bjet1).mass() - 172.5*GeV);
248 for (unsigned int j = 0; j < bJets.size(); ++j) {
249 if (i == j)
250 continue;
251 const auto& bjet2 = bJets.at(j);
252 if (deltaR(bjet2, lepton1) < 0.4)
253 continue;
254 if (deltaR(bjet2, lepton2) < 0.4)
255 continue;
256 const double dm2 = std::abs((w2 + bjet2).mass() - 172.5*GeV);
257 const double newDm = dm1 + dm2;
258
259 if (newDm < dm) {
260 dm = newDm;
261 selB1 = i;
262 selB2 = j;
263 }
264 }
265 }
266
267 if (dm >= 1e9)
268 vetoEvent;
269
270 FourMomentum bjet1 = bJets[selB1].momentum();
271 FourMomentum bjet2 = bJets[selB2].momentum();
272
273 const FourMomentum t1 = w1 + bjet1;
274 const FourMomentum t2 = w2 + bjet2;
275 const FourMomentum tt = t1 + t2;
276
277 int q1 = dressedLeptons[0].charge();
278 int q2 = dressedLeptons[1].charge();
279 if (q1 * q2 > 0)
280 vetoEvent;
281
282 int idx_lep = (q1 == -1) ? 0 : 1;
283 int idx_alep = (q2 == 1) ? 1 : 0;
284
285 FourMomentum top = t1;
286 FourMomentum atop = t2;
287 if (q1 == -1) {
288 std::swap(top, atop);
289 }
290
291 FourMomentum top1 = t1;
292 FourMomentum top2 = t2;
293 if (top1.pt() < top2.pt()) {
294 std::swap(top1, top2);
295 }
296
297 if (bjet1.pt() < bjet2.pt()) {
298 std::swap(bjet1, bjet2);
299 }
300
301 const LorentzTransform rf = LorentzTransform::mkFrameTransform(tt);
302 const FourMomentum top_rf = rf.transform(top);
303
304 const FourMomentum ll = lepton1 + lepton2;
305
306 const FourMomentum bb = bjet1 + bjet2;
307
308 //particle level normalized values
309 _h["top_pt_norm"]->fill(top.pt()/GeV);
310 _h["atop_pt_norm"]->fill(atop.pt()/GeV);
311 _h["top1_pt_norm"]->fill(top1.pt()/GeV);
312 _h["top2_pt_norm"]->fill(top2.pt()/GeV);
313 _h["top_pt_ttrf_norm"]->fill(top_rf.pt()/GeV);
314 _h["top_y_norm"]->fill(top.rapidity());
315 _h["atop_y_norm"]->fill(atop.rapidity());
316 _h["top1_y_norm"]->fill(top1.rapidity());
317 _h["top2_y_norm"]->fill(top2.rapidity());
318 _h["tt_pt_norm"]->fill(tt.pt()/GeV);
319 _h["tt_dy_norm"]->fill(deltaRap(top.absrap(), atop.absrap(), true));
320 _h["tt_y_norm"]->fill(tt.rapidity());
321 _h["tt_m_norm"]->fill(tt.mass()/GeV);
322 _h["tt_dphi_norm"]->fill(deltaPhi(top.phi(), atop.phi()));
323 _h["lep_pt_norm"]->fill(dressedLeptons[idx_lep].pt()/GeV);
324 _h["alep_pt_norm"]->fill(dressedLeptons[idx_alep].pt()/GeV);
325 _h["lep1_pt_norm"]->fill(lepton1.pt()/GeV);
326 _h["lep2_pt_norm"]->fill(lepton2.pt()/GeV);
327 _h["lep_eta_norm"]->fill(dressedLeptons[idx_lep].eta());
328 _h["alep_eta_norm"]->fill(dressedLeptons[idx_alep].eta());
329 _h["lep1_eta_norm"]->fill(lepton1.eta());
330 _h["lep2_eta_norm"]->fill(lepton2.eta());
331 _h["ll_pt_norm"]->fill(ll.pt()/GeV);
332 _h["ll_m_norm"]->fill(ll.mass()/GeV);
333 _h["ll_dphi_norm"]->fill(deltaPhi(dressedLeptons[idx_lep], dressedLeptons[idx_alep]));
334 _h["ll_deta_norm"]->fill(deltaEta(dressedLeptons[idx_lep].abseta(), dressedLeptons[idx_alep].abseta(), true));
335 _h["jet_sz_norm"]->fill(jets.size());
336 _h["jet1_pt_norm"]->fill(bjet1.pt()/GeV);
337 _h["jet2_pt_norm"]->fill(bjet2.pt()/GeV);
338 _h["b1_eta_norm"]->fill(bjet1.eta());
339 _h["b2_eta_norm"]->fill(bjet2.eta());
340 _h["bb_pt_norm"]->fill(bb.pt()/GeV);
341 _h["bb_m_norm"]->fill(bb.mass()/GeV);
342
343 // absolute values
344 _h_abs["top_pt"]->fill(top.pt()/GeV);
345 _h_abs["atop_pt"]->fill(atop.pt()/GeV);
346 _h_abs["top1_pt"]->fill(top1.pt()/GeV);
347 _h_abs["top2_pt"]->fill(top2.pt()/GeV);
348 _h_abs["top_pt_ttrf"]->fill(top_rf.pt()/GeV);
349 _h_abs["top_y"]->fill(top.rapidity());
350 _h_abs["atop_y"]->fill(atop.rapidity());
351 _h_abs["top1_y"]->fill(top1.rapidity());
352 _h_abs["top2_y"]->fill(top2.rapidity());
353 _h_abs["tt_pt"]->fill(tt.pt()/GeV);
354 _h_abs["tt_y"]->fill(tt.rapidity());
355 _h_abs["tt_m"]->fill(tt.mass()/GeV);
356 _h_abs["tt_dy"]->fill(deltaRap(top.absrap(), atop.absrap(), true));
357 _h_abs["tt_dphi"]->fill(deltaPhi(top.phi(), atop.phi()));
358 _h_abs["lep_pt"]->fill(dressedLeptons[idx_lep].pt()/GeV);
359 _h_abs["alep_pt"]->fill(dressedLeptons[idx_alep].pt()/GeV);
360 _h_abs["lep1_pt"]->fill(lepton1.pt()/GeV);
361 _h_abs["lep2_pt"]->fill(lepton2.pt()/GeV);
362 _h_abs["lep_eta"]->fill(dressedLeptons[idx_lep].eta());
363 _h_abs["alep_eta"]->fill(dressedLeptons[idx_alep].eta());
364 _h_abs["lep1_eta"]->fill(lepton1.eta());
365 _h_abs["lep2_eta"]->fill(lepton2.eta());
366 _h_abs["ll_pt"]->fill(ll.pt()/GeV);
367 _h_abs["ll_m"]->fill(ll.mass()/GeV);
368 _h_abs["ll_dphi"]->fill(deltaPhi(dressedLeptons[idx_lep], dressedLeptons[idx_alep]));
369 _h_abs["ll_deta"]->fill(deltaEta(dressedLeptons[idx_lep].abseta(), dressedLeptons[idx_alep].abseta(), true));
370 _h_abs["jet_sz"]->fill(jets.size());
371 _h_abs["jet1_pt"]->fill(bjet1.pt()/GeV);
372 _h_abs["jet2_pt"]->fill(bjet2.pt()/GeV);
373 _h_abs["b1_eta"]->fill(bjet1.eta());
374 _h_abs["b2_eta"]->fill(bjet2.eta());
375 _h_abs["bb_pt"]->fill(bb.pt()/GeV);
376 _h_abs["bb_m"]->fill(bb.mass()/GeV);
377 }
378
379 /// Normalise histograms etc., after the run
380 void finalize() {
381 normalize(_h);
382 scale(_h_abs, crossSection() / picobarn / sumOfWeights());
383
384 normalize(_h_part);
385 scale(_h_part_abs,
386 crossSection() / picobarn / sumOfWeights() /
387 0.04553956); // BR correction for E_MU: 0.04553956 //BR correction for MUON: 0.01129969
388 }
389
390 private:
391 map<string, Histo1DPtr> _h;
392 map<string, Histo1DPtr> _h_abs;
393 map<string, Histo1DPtr> _h_part;
394 map<string, Histo1DPtr> _h_part_abs;
395 };
396
397 RIVET_DECLARE_PLUGIN(CMS_2018_I1703993);
398
399} // namespace Rivet
|