Rivet analyses referenceATLAS_2013_I1240670$B^+$ meson production at 7 TeVExperiment: ATLAS (LHC) Inspire ID: 1240670 Status: VALIDATED Authors:
Beam energies: (3500.0, 3500.0) GeV Run details:
Measurement of the cross section for the production of $B^+$ mesons at 7 TeV by the ATLAS experiment. Source code: ATLAS_2013_I1240670.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/UnstableParticles.hh"
4#include "Rivet/Tools/HistoGroup.hh"
5
6namespace Rivet {
7
8
9 /// @brief B+ meson at 7 TeV
10 class ATLAS_2013_I1240670 : public Analysis {
11 public:
12
13 /// Constructor
14 RIVET_DEFAULT_ANALYSIS_CTOR(ATLAS_2013_I1240670);
15
16
17 /// @name Analysis methods
18 /// @{
19
20 /// Book histograms and initialise projections before the run
21 void init() {
22 // projection
23 declare(UnstableParticles(Cuts::abspid==521), "UFS");
24 const vector<double> yedges = {0.0,0.5,1.0,1.5,2.25};
25 book(_h_pT_y, yedges);
26 for (auto& b : _h_pT_y->bins()) {
27 book(b, b.index(),1,1);
28 }
29 book(_h_pT,5,1,1);
30 book(_h_y ,6,1,1);
31 }
32
33
34 /// Perform the per-event analysis
35 void analyze(const Event& event) {
36 // Final state of unstable particles to get particle spectra
37 const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
38 // loop over B+ states
39 for (const Particle& p : ufs.particles()) {
40 // cuts on pT and rapidity
41 double y = p.absrap();
42 if (y>2.25) continue;
43 double pT = p.perp();
44 _h_pT_y->fill(y,pT);
45 _h_pT->fill(pT);
46 if(pT>9. && pT<120.) _h_y->fill(y);
47 }
48 }
49
50
51 /// Normalise histograms etc., after the run
52 void finalize() {
53 // br for B+-> J/psi K+ psi->mu+mu- (PDG2020)
54 double br = 1.020e-3*0.05961;
55 double fact = 0.5*br*crossSection()/picobarn/sumOfWeights();
56 scale(_h_pT, fact);
57 // 0.5 from +/- y
58 scale(_h_pT_y, 0.5*fact);
59 divByGroupWidth(_h_pT_y);
60 // 0.5 from +/- y
61 scale(_h_y, 0.5*fact);
62 }
63
64 /// @}
65
66
67 /// @name Histograms
68 /// @{
69 Histo1DGroupPtr _h_pT_y;
70 Histo1DPtr _h_pT,_h_y;
71 /// @}
72
73
74 };
75
76
77 RIVET_DECLARE_PLUGIN(ATLAS_2013_I1240670);
78
79}
|