rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

D0_1995_I398175

Transverse energy distributions within jets in $p\bar{p}$ collisions at 1800 GeV
Experiment: D0 (Tevatron)
Inspire ID: 398175
Status: VALIDATED
Authors:
  • Simone Amoroso
References: Beams: p- p+
Beam energies: (900.0, 900.0) GeV
Run details:
  • proton-antiproton collisions at a c.o.m. energy of 1.8 TeV

D0 measurement of the jet shape as a function of jet transverse energy in both the central ($|\eta|<0.2$) and forward ($2.5<|\eta|<3.5$) rapidity regions.

Source code: D0_1995_I398175.cc
  1// -*- C++ -*-
  2#include "Rivet/Analysis.hh"
  3#include "Rivet/Projections/FinalState.hh"
  4#include "Rivet/Projections/JetShape.hh"
  5#include "Rivet/Projections/FastJets.hh"
  6
  7namespace Rivet {
  8
  9
 10  /// @brief D0 Run-1 jet shapes measurement
 11  class D0_1995_I398175 : public Analysis {
 12  public:
 13
 14    /// Constructor
 15    RIVET_DEFAULT_ANALYSIS_CTOR(D0_1995_I398175);
 16
 17
 18    /// @name Analysis methods
 19    /// @{
 20
 21    /// Book histograms and initialise projections before the run
 22    void init() {
 23
 24      const FinalState fs((Cuts::etaIn(-4.0, 4.0)));
 25      declare(fs, "FS");
 26      //      FastJets jets(fs, JetAlg::ANTIKT, 0.6);
 27      FastJets jets(fs, JetAlg::D0ILCONE, 1.0);
 28      jets.useInvisibles();
 29      declare(jets, "Jets");
 30
 31
 32      // Specify jets pT bins
 33      _ptedges = {{ 45.0, 70.0, 105.0, 140.0, 1800.0}};
 34
 35      // Book histograms
 36      for (size_t ptbin = 0; ptbin < 4; ++ptbin) {
 37        _jsnames_pT[ptbin] = "JetShape" + to_str(ptbin) ;
 38        const JetShape jsp(jets, 0.0, 1.0, 10, _ptedges[ptbin], _ptedges[ptbin+1], 0.0, 0.2, PSEUDORAPIDITY);
 39        declare(jsp, _jsnames_pT[ptbin]);
 40        book(	_h_Rho_pT_central[ptbin] ,ptbin+1, 1, 1);
 41      }
 42
 43      const JetShape jspfwd0(jets, 0.0, 1.0, 10, 45, 70, 2.5, 3.5, PSEUDORAPIDITY);
 44      declare(jspfwd0, "JetShapeFwd0");
 45      const JetShape jspfwd1(jets, 0.0, 1.0, 10, 70, 105, 2.5, 3.5, PSEUDORAPIDITY);
 46      declare(jspfwd1, "JetShapeFwd1");
 47      book(	_h_Rho_pT_forward[0] ,5, 1, 1);
 48      book(	_h_Rho_pT_forward[1] ,6, 1, 1);
 49
 50    }
 51
 52
 53    /// Perform the per-event analysis
 54    void analyze(const Event& event) {
 55      if(_edges.empty()) _edges=_h_Rho_pT_central[0]->xEdges();
 56      // Get jets and require at least one to pass pT and y cuts
 57      const Jets jets = apply<FastJets>(event, "Jets").jetsByPt(Cuts::ptIn(_ptedges.front()*GeV, _ptedges.back()*GeV) );
 58      MSG_DEBUG("Selecting jets with pT> "<<_ptedges.front());
 59      MSG_DEBUG("Jet multiplicity before cuts = " << jets.size());
 60      if (jets.size() == 0){
 61	MSG_DEBUG("No jets found in required pT and rapidity range");
 62	vetoEvent;
 63      }
 64
 65      // Calculate and histogram jet shapes
 66      for (size_t ipt = 0; ipt < 4; ++ipt) {
 67	const JetShape& jsipt = apply<JetShape>(event, _jsnames_pT[ipt]);
 68	for (size_t ijet = 0; ijet < jsipt.numJets(); ++ijet) {
 69	  for (size_t rbin = 0; rbin < jsipt.numBins(); ++rbin) {
 70	    const double r_rho = jsipt.rBinMid(rbin);
 71	    MSG_DEBUG(ipt << " " << rbin << " (" << r_rho << ") " << jsipt.diffJetShape(ijet, rbin));
 72	    /// @note Bin width Jacobian factor of 0.7/0.1 = 7 in the differential shapes plot
 73	    //	    _profhistRho_pT[ipt]->fill(r_rho/0.7, (0.7/0.1)*jsipt.diffJetShape(ijet, rbin));
 74	    MSG_DEBUG(ipt << " " << rbin << " (" << r_rho << ") " << jsipt.intJetShape(ijet, rbin));
 75	    _h_Rho_pT_central[ipt]->fill(_edges[rbin], jsipt.intJetShape(ijet, rbin));
 76	  }
 77	}
 78      }
 79
 80
 81      const JetShape& jsiptfwd0 = apply<JetShape>(event, "JetShapeFwd0");
 82      for (size_t ijet = 0; ijet < jsiptfwd0.numJets(); ++ijet) {
 83	for (size_t rbin = 0; rbin < jsiptfwd0.numBins(); ++rbin) {
 84	  _h_Rho_pT_forward[0]->fill(_edges[rbin], jsiptfwd0.intJetShape(ijet, rbin));
 85	}
 86      }
 87
 88      const JetShape& jsiptfwd1 = apply<JetShape>(event, "JetShapeFwd1");
 89      for (size_t ijet = 0; ijet < jsiptfwd1.numJets(); ++ijet) {
 90        for (size_t rbin = 0; rbin < jsiptfwd1.numBins(); ++rbin) {
 91          _h_Rho_pT_forward[1]->fill(_edges[rbin], jsiptfwd1.intJetShape(ijet, rbin));
 92	}
 93      }
 94
 95
 96
 97
 98
 99    }
100
101    /// Normalise histograms etc., after the run
102    void finalize() { }
103
104    /// @}
105
106
107  private:
108
109
110    vector<double> _ptedges;
111    string _jsnames_pT[4];
112    vector<string> _edges;
113    /// @name Histograms
114    /// @{
115    BinnedProfilePtr<string> _h_Rho_pT_central[4];
116    BinnedProfilePtr<string> _h_Rho_pT_forward[2];
117    /// @}
118
119
120  };
121
122
123
124  RIVET_DECLARE_PLUGIN(D0_1995_I398175);
125
126
127}