Rivet analyses


title: ATLAS_2013_I1240670

$B^+$ meson production at 7 TeV

Experiment: ATLAS (LHC)

Inspire ID: 1240670

Status: VALIDATED

Authors: - Peter Richardson

References: - JHEP 10 (2013) 042 - Expt page: ATLAS-BPHY-2012-05 - arXiv: 1307.0126

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

```c++ // -- C++ --

include "Rivet/Analysis.hh"

include "Rivet/Projections/UnstableParticles.hh"

include "Rivet/Tools/HistoGroup.hh"

namespace Rivet {

/// @brief B+ meson at 7 TeV class ATLAS_2013_I1240670 : public Analysis { public:

/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(ATLAS_2013_I1240670);


/// @name Analysis methods
/// @{

/// Book histograms and initialise projections before the run
void init() {
  // projection
  declare(UnstableParticles(Cuts::abspid == 521), "UFS");
  const vector<double> yedges = {0.0, 0.5, 1.0, 1.5, 2.25};
  book(_h_pT_y, yedges);
  for (auto& b : _h_pT_y->bins()) {
    book(b, b.index(), 1, 1);
  }
  book(_h_pT, 5, 1, 1);
  book(_h_y, 6, 1, 1);
}


/// Perform the per-event analysis
void analyze(const Event& event) {
  // Final state of unstable particles to get particle spectra
  const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
  // loop over B+ states
  for (const Particle& p : ufs.particles()) {
    // cuts on pT and rapidity
    double y = p.absrap();
    if (y > 2.25) continue;
    double pT = p.perp();
    _h_pT_y->fill(y, pT);
    _h_pT->fill(pT);
    if (pT > 9. && pT < 120.) _h_y->fill(y);
  }
}


/// Normalise histograms etc., after the run
void finalize() {
  // br for B+-> J/psi K+ psi->mu+mu- (PDG2020)
  double br = 1.020e-3 * 0.05961;
  double fact = 0.5 * br * crossSection() / picobarn / sumOfWeights();
  scale(_h_pT, fact);
  // 0.5 from +/- y
  scale(_h_pT_y, 0.5 * fact);
  divByGroupWidth(_h_pT_y);
  // 0.5 from +/- y
  scale(_h_y, 0.5 * fact);
}

/// @}


/// @name Histograms
/// @{
Histo1DGroupPtr _h_pT_y;
Histo1DPtr _h_pT, _h_y;
/// @}

};

RIVET_DECLARE_PLUGIN(ATLAS_2013_I1240670);

} ```