rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

TOTEM_2012_I1220862

Measurement of proton-proton elastic scattering and total cross section at $\sqrt{s} = 7\;\text{TeV}$
Experiment: TOTEM (LHC)
Inspire ID: 1220862
Status: VALIDATED
Authors:
  • Sercan Sen
  • Peter Skands
References:
  • CERN-PH-EP-2012-239
  • http://cds.cern.ch/record/1472948
Beams: p+ p+
Beam energies: (3500.0, 3500.0) GeV
Run details:
  • Elastic events only.

Measurement of the elastic differential cross-section in proton-proton interactions at a centre-of-mass energy $\sqrt{s} = 7\;\text{TeV}$ at the LHC. The data, which cover the $|t|$ range $0.005-0.2\;\text{GeV}^2$, were collected using Roman Pot detectors very close to the outgoing beam in October 2011, allowing the precise extrapolation down to the optical point, $t = 0$, and hence the derivation of the elastic as well as the total cross-section via the optical theorem.

Source code: TOTEM_2012_I1220862.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
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/ChargedFinalState.hh"

namespace Rivet {


  /// TOTEM elastic and total cross-section measurement
  class TOTEM_2012_I1220862 : public Analysis {
  public:

    TOTEM_2012_I1220862()
      : Analysis("TOTEM_2012_I1220862")
    {    }


    void init() {
      declare(ChargedFinalState(), "CFS");
      _hist_tlow  = bookHisto1D(1, 1, 1);
      _hist_thigh = bookHisto1D(2, 1, 1);
      _hist_sigma = bookHisto1D(3, 1, 1);
    }


    void analyze(const Event& event) {
      const double weight = event.weight();

      const ChargedFinalState& cfs = apply<ChargedFinalState>(event, "CFS");
      if (cfs.size() > 2) MSG_WARNING("Final state includes more than two charged particles!");
      _hist_sigma->fill(sqrtS()/GeV, weight);

      for (const Particle& p : cfs.particles(Cuts::eta > 0)) { // && Cuts::pid == PID::PROTON)) {
        if (p.pid() != PID::PROTON) continue;
        const double t = sqr(p.pT());
        _hist_tlow->fill(t, weight);
        _hist_thigh->fill(t, weight);
      }
    }


    void finalize() {
      normalize(_hist_tlow, crossSection()/millibarn);
      normalize(_hist_thigh, crossSection()/millibarn);
      normalize(_hist_sigma, crossSection()/millibarn);
    }


  private:

    Histo1DPtr _hist_tlow, _hist_thigh, _hist_sigma;

  };


  DECLARE_ALIASED_RIVET_PLUGIN(TOTEM_2012_I1220862, TOTEM_2012_002);

}