[Rivet] CMS inelastic cross-section Rivet routine

Hendrik Hoeth hendrik.hoeth at cern.ch
Mon Dec 17 10:49:27 GMT 2012


Hi Sercan,

> We would be happy if you can check the attached Rivet routine (CMS
> inelastic cross-section paper, [...]
> 
> This is very similar to the ATLAS inelastic cross-section measurement
> which is already validated by you.

I've changed the code such that it corresponds directly to the ATLAS
analysis as it is in svn, so that it is easier to compare. Except for
the n_charged histogram entries the analysis is identical to the ATLAS
analysis and my code still produces identical results to yours.

If your physics analysis is identical to ATLAS', then your Rivet code
looks fine (though I'd rather put my version into svn ...). Since I
don't know what kind of problems you observe, I'm afraid I can't help
you further than this.

BTW, I've also done some cosmetic changes to your .plot and .info files.

Cheers,

    Hendrik

-- 
If your dreams don't scare you, then you are not dreaming big enough.
-------------- next part --------------
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/RivetAIDA.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")
    {    }

  public:

    void init() {
      addProjection(ChargedFinalState(-2.4, 2.4, 0.2*GeV), "CFS");
      addProjection(FinalState(), "FS");

      _h_sigma = bookHistogram1D(1, 1, 1);
    }


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

      const ChargedFinalState& cfs = applyProjection<ChargedFinalState>(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 = applyProjection<FinalState>(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;

      foreach(const Particle& p, fs.particlesByEta()) { // sorted from minus to plus
        if (first) { // First particle
          first = false;
          etapre = p.momentum().eta();
        } else {
          double gap = fabs(p.momentum().eta()-etapre);
          if (gap > LRG) {
            LRG = gap; // largest gap
            gapcenter = (p.momentum().eta()+etapre)/2.; // find the center of the gap to separate the X and Y systems.
          }
          etapre = p.momentum().eta();
        }
      }


      FourMomentum mxFourVector, myFourVector;
      foreach(const Particle& p, fs.particlesByEta()) {
        if (p.momentum().eta() > gapcenter) {
          mxFourVector += p.momentum();
        } else {
          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 < 5*10e-6) vetoEvent;

      _h_sigma->fill(0.5, weight);
    }


    void finalize() {
      scale(_h_sigma, crossSection()/millibarn/sumOfWeights());
    }

  private:

    AIDA::IHistogram1D* _h_sigma;

  };


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

}
-------------- next part --------------
Name: CMS_2012_I1193338
Year: 2012
Summary: Measurement of the inelastic proton-proton cross section at sqrt(s)=7 TeV
Experiment: CMS
Collider: LHC
SpireID:
InspireID: 1193338
Status:
Authors:
 - Sercan Sen <ssen at cern.ch>
References:
 - arXiv:1210.6718 [hep-ex]
RunInfo:
   Inelastic events (non-diffractive and inelastic diffractive).
NumEvents: 100000
NeedCrossSection: no
Beams: [p+, p+]
Energies: [7000]
PtCuts: [0]
Description:
   '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$ MeV/c.'
BibKey: :2012
BibTeX: '@article{:2012,
      author         = "Chatrchyan, Serguei and others",
      title          = "{Measurement of the inelastic proton-proton cross section
                        at sqrt(s) = 7 TeV}",
      collaboration  = " CMS Collaboration",
      year           = "2012",
      eprint         = "1210.6718",
      archivePrefix  = "arXiv",
      primaryClass   = "hep-ex",
      reportNumber   = "CMS-FWD-11-001, CERN-PH-EP-2012-293",
      SLACcitation   = "%%CITATION = ARXIV:1210.6718;%%",}'
-------------- next part --------------
# BEGIN PLOT /CMS_2012_I1193338/d01-x01-y01 
Title=$\sigma_\text{inel}$ at $\sqrt{s}=7$ TeV
XCustomMajorTicks=0.5	$\xi>5x10^{-6}$	1.5	$n_\text{ch} > 1$	2.5	$n_\text{ch} > 2$	3.5	$n_\text{ch} > 3$
YLabel=$\sigma_\text{inel}$ [mb]
LegendYPos=0.4
LogY=0
# END PLOT


More information about the Rivet mailing list