rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

ATLAS_2013_I1240670

$B^+$ meson production at 7 TeV
Experiment: ATLAS (LHC)
Inspire ID: 1240670
Status: VALIDATED
Authors:
  • Peter Richardson
References: Beams: p+ p+
Beam energies: (3500.0, 3500.0) GeV
Run details:
  • bottom hadron production

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}