rivet is hosted by Hepforge, IPPP Durham

## Rivet analyses reference

### CMS_2012_I1193338

Measurement of the inelastic proton-proton cross section at $\sqrt{s} = 7$ TeV
Experiment: CMS (LHC)
Inspire ID: 1193338
Status: VALIDATED
Authors:
• Sercan Sen
References:
Beams: p+ p+
Beam energies: (3500.0, 3500.0) GeV
Run details:
• Inelastic events (non-diffractive and inelastic diffractive).

The inelastic cross-section is measured through two independent methods based on information from (i) forward calorimetry (for pseudorapidity $3 < |\eta| < 5$), in collisions where at least one proton loses more than $\xi > 5 \cdot 10^{-6}$ of its longitudinal momentum, and (ii) the central tracker ($|\eta| < 2.4$), in collisions containing an interaction vertex with more than 1, 2, or 3 tracks with $p_\perp > 200\;\text{MeV}/c$.

Source code: CMS_2012_I1193338.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 // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/ChargedFinalState.hh" #include "Rivet/Projections/FinalState.hh" namespace Rivet { class CMS_2012_I1193338 : public Analysis { public: CMS_2012_I1193338() : Analysis("CMS_2012_I1193338") { } void init() { declare(ChargedFinalState((Cuts::etaIn(-2.4, 2.4) && Cuts::pT >= 0.2*GeV)), "CFS"); declare(FinalState(), "FS"); book(_h_sigma ,1, 1, 1); } void analyze(const Event& event) { const double weight = 1.0; const ChargedFinalState& cfs = apply(event, "CFS"); if (cfs.size() > 1) {_h_sigma->fill(1.5, weight);} if (cfs.size() > 2) {_h_sigma->fill(2.5, weight);} if (cfs.size() > 3) {_h_sigma->fill(3.5, weight);} const FinalState& fs = apply(event, "FS"); if (fs.size() < 2) vetoEvent; // need at least two particles to calculate gaps double gapcenter = 0.; double LRG = 0.; double etapre = 0.; bool first = true; for(const Particle& p : fs.particles(cmpMomByEta)) { // sorted from minus to plus if (first) { // First particle first = false; etapre = p.eta(); } else { double gap = fabs(p.eta()-etapre); if (gap > LRG) { LRG = gap; // largest gap gapcenter = (p.eta()+etapre)/2.; // find the center of the gap to separate the X and Y systems. } etapre = p.eta(); } } FourMomentum mxFourVector, myFourVector; for(const Particle& p : fs.particles(cmpMomByEta)) { ((p.eta() > gapcenter) ? mxFourVector : myFourVector) += p.momentum(); } const double M2 = max(mxFourVector.mass2(), myFourVector.mass2()); const double xi = M2/sqr(sqrtS()); // sqrt(s)=7000 GeV, note that units cancel if (xi < 5e-6) vetoEvent; _h_sigma->fill(0.5, weight); } void finalize() { scale(_h_sigma, crossSection()/millibarn/sumOfWeights()); } private: Histo1DPtr _h_sigma; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(CMS_2012_I1193338); }