Rivet analyses

CDF transverse momentum distributions at 630 GeV and 1800 GeV.

Experiment: CDF (Tevatron Run I)

Inspire ID: 263320

Status: VALIDATED

Authors: - Christophe Vaillant - Andy Buckley

References: - Phys.Rev.Lett.61:1819,1988 - DOI: 10.1103/PhysRevLett.61.1819

Beams: p- p+

Beam energies: (900.0, 900.0); (315.0, 315.0)GeV

Run details: - QCD min bias events at $\sqrt{s} = 630$ GeV and 1800 GeV, |η| < 1.0.

Transverse momentum distributions at 630 GeV and 1800 GeV based on data from the CDF experiment at the Tevatron collider.

Source code:CDF_1988_I263320.cc

// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/ChargedFinalState.hh"
#include "Rivet/Projections/TriggerCDFRun0Run1.hh"

namespace Rivet {


  /// @brief CDF track \f$ p_\perp \f$ distributions at 630 and 1800 GeV
  class CDF_1988_I263320 : public Analysis {
  public:

    RIVET_DEFAULT_ANALYSIS_CTOR(CDF_1988_I263320);


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

    /// Book histograms and set up projections
    void init() {
      // Set up projections
      declare(TriggerCDFRun0Run1(), "Trigger");
      const ChargedFinalState cfs(Cuts::abseta < 1.0 && Cuts::pT >= 0.4*GeV);
      declare(cfs, "CFS");

      // Book histo
      _axis[0] = YODA::Axis<double>{0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0125, 1.1, 1.2, 1.3,
                                    1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3.0, 3.025,
                                    3.2, 3.4, 3.6, 3.8, 4.0, 4.2, 4.4, 4.6, 4.8, 5.05, 5.4, 5.8, 6.2, 6.6, 7.15, 8.25, 9.75};
      _axis[1] = YODA::Axis<double>{0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0125, 1.1, 1.2, 1.3,
                                    1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.025, 2.2, 2.4, 2.6, 2.8, 3.2, 3.8};

      for (double eVal : allowedEnergies()) {
        size_t ih = eVal < 1000.;
        if (isCompatibleWithSqrtS(eVal))  _sqs = ih;

        book(_h[ih], 1+ih, 1, 1);
      }
      raiseBeamErrorIf(_sqs > 1);
    }


    /// Do the analysis
    void analyze(const Event& event) {
      if (_edges.empty())  _edges = _h[_sqs]->xEdges();
      // Trigger
      const bool trigger = apply<TriggerCDFRun0Run1>(event, "Trigger").minBiasDecision();
      if (!trigger) vetoEvent;

      const FinalState& trackfs = apply<ChargedFinalState>(event, "CFS");
      for (Particle p : trackfs.particles()) {
        const double pt = p.pT()/GeV;
        // Effective weight for d3sig/dp3 = weight / ( Delta eta * 2pi * pt ), with Delta(eta) = 2
        const double eff_weight = 1.0/(2*2*TWOPI*pt);
        _h[_sqs]->fill(map2string(pt), eff_weight);
      }
    }


   string map2string(const double value) const {
     const size_t idx = _axis[_sqs].index(value);
     if (idx && idx < _edges.size() + 1)  return _edges[idx-1];
     return "OTHER";
   }

    /// Scale histos
    void finalize() {
      scale(_h, crossSectionPerEvent()/millibarn);
      for (size_t ih=0; ih<2; ++ih) {
        for (auto& b : _h[ih]->bins()) {
          b.scaleW(1.0/_axis[ih].width(b.index()));
        }
      }
    }

    /// @}


  private:

    /// Histo
    BinnedHistoPtr<string> _h[2];
    YODA::Axis<double> _axis[2];
    vector<string> _edges;
    size_t _sqs = 2;

  };



  RIVET_DECLARE_ALIASED_PLUGIN(CDF_1988_I263320, CDF_1988_S1865951);

}

Aliases: - CDF_1988_S1865951