rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

CDF_2012_I1124333

CDF measurement of the Z pT in the electron channel using 2.1 fb-1
Experiment: CDF (Tevatron)
Inspire ID: 1124333
Status: VALIDATED
Authors:
  • Simone Amoroso
References: Beams: p- p+
Beam energies: (980.0, 980.0) GeV
Run details:
  • $Z\to ee$ event, a cut on the dilepton invariant mass between 60 and 120 GeV can be added to increase statistics

Measurement of the Z boson pT in the electron channel performed by the CDF experiment, using ppbar at 1960 GeV. A cut on the dielectron invariant mass of $66 GeV < m_{ee} < 116 GeV$ is applied.

Source code: CDF_2012_I1124333.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/ZFinder.hh"
 4
 5namespace Rivet {
 6
 7  /// @ CDF Run II Z \f$ p_\perp \f$ in Drell-Yan events
 8  /// @author Simone Amoroso
 9  class CDF_2012_I1124333 : public Analysis {
10  public:
11
12    /// Constructor
13    RIVET_DEFAULT_ANALYSIS_CTOR(CDF_2012_I1124333);
14
15
16    /// @name Analysis methods
17    //@{
18
19    /// Book histograms and initialise projections before the run
20    void init() {
21
22      ///  Initialise and register projections here
23      ZFinder zfinder(FinalState(), Cuts::open(), PID::ELECTRON, 66*GeV, 116*GeV, 0.0, ZFinder::ClusterPhotons::NONE);
24      declare(zfinder, "ZFinder");
25
26
27      ///  Book histograms here, e.g.:
28      //book(      _hist_z_xs ,1, 1, 1);
29      book(_hist_zpt, 2, 1, 1);
30    }
31
32
33    /// Perform the per-event analysis
34    void analyze(const Event& event) {
35      /// @todo Do the event by event analysis here
36      const ZFinder& zfinder = apply<ZFinder>(event, "ZFinder");
37      if (zfinder.bosons().size() != 1) {
38        MSG_DEBUG("Num e+ e- pairs found = " << zfinder.bosons().size());
39        vetoEvent;
40      }
41      const FourMomentum& pZ = zfinder.bosons()[0].momentum();
42      if (pZ.mass2() < 0) {
43        MSG_DEBUG("Negative Z mass**2 = " << pZ.mass2()/GeV2 << "!");
44        vetoEvent;
45      }
46
47      MSG_DEBUG("Dilepton mass = " << pZ.mass()/GeV << " GeV");
48      _hist_zpt->fill(pZ.pT());
49      //      _hist_z_xs->fill(1);
50    }
51
52
53    /// Normalise histograms etc., after the run
54    void finalize() {
55      scale(_hist_zpt, crossSection()/picobarn/sumOfWeights());
56    }
57
58    //@}
59
60
61  private:
62    /// @name Histograms
63    //@{
64    Histo1DPtr _hist_zpt;
65    //    Histo1DPtr _hist_z_xs;
66    //@}
67
68
69  };
70
71
72
73  // The hook for the plugin system
74  RIVET_DECLARE_PLUGIN(CDF_2012_I1124333);
75
76}