Rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

ALICE_2010_S8706239

Charged particle $\langle p_\perp \rangle$ vs. $N_\text{ch}$ in $pp$ collisions at 900 GeV
Experiment: ALICE (LHC)
Inspire ID: 860416
Status: VALIDATED
Authors:
  • Holger Schulz
  • Jan Fiete Grosse-Oetringhaus@cern.ch
References: Beams: p+ p+
Beam energies: (450.0, 450.0) GeV
Run details:
  • Diffractive events need to be switched on

ALICE measurement of $\langle p_\perp \rangle$ vs. $N_\text{ch}$ and invariant particle yield (as function of $p_\perp$) in proton-proton collisions at $\sqrt{s} = 900\;\text{GeV}$.

Source code: ALICE_2010_S8706239.cc
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/ChargedFinalState.hh"

namespace Rivet {


  class ALICE_2010_S8706239 : public Analysis {
  public:

    /// @name Constructors etc.
    //@{

    /// Constructor
    ALICE_2010_S8706239()
      : Analysis("ALICE_2010_S8706239"),
        _Nevt_after_cuts(0.0)
    {    }

    //@}


  public:

    /// @name Analysis methods
    //@{

    /// Book histograms and initialise projections before the run
    void init() {

      ChargedFinalState cfs(-0.8, 0.8, 0.15);
      declare(cfs, "CFS");

      _h_pT = bookHisto1D(4, 1, 1);

      _h_pT_Nch_015 = bookProfile1D(11, 1, 1);
      _h_pT_Nch_05  = bookProfile1D(12, 1, 1);

    }


    /// Perform the per-event analysis
    void analyze(const Event& event) {
      const double weight = event.weight();

      const ChargedFinalState& charged = apply<ChargedFinalState>(event, "CFS");

      _Nevt_after_cuts += weight;

      // Get number of particles that fulfill certain pT requirements
      int Nch_015 = 0;
      int Nch_05  = 0;
      foreach (const Particle& p, charged.particles()) {
        double pT = p.pT()/GeV;
        if (pT < 4.0) Nch_015++;
        if (pT > 0.5  && pT < 4.0) Nch_05++;
      }

      // Now we can fill histograms
      foreach (const Particle& p, charged.particles()) {
        double pT = p.pT()/GeV;
        if (pT < 4.0) _h_pT_Nch_015 ->fill(Nch_015, pT, weight);
        if (pT > 0.5  && pT < 4.0) _h_pT_Nch_05  ->fill(Nch_05,  pT, weight);

      // To get the Yield, fill appropriate weight 1/(2PI * pT * d eta)
        _h_pT->fill(pT, weight /(TWOPI*pT*1.6) );
      }

    }


    /// Normalise histograms etc., after the run
    void finalize() {
      scale(_h_pT, 1.0/_Nevt_after_cuts);
    }

    //@}


  private:

    /// @name Histograms
    //@{

    Histo1DPtr _h_pT;

    Profile1DPtr _h_pT_Nch_015 ;
    Profile1DPtr _h_pT_Nch_05  ;

    double _Nevt_after_cuts;
    //@}


  };



  // The hook for the plugin system
  DECLARE_RIVET_PLUGIN(ALICE_2010_S8706239);

}