rivet is hosted by Hepforge, IPPP Durham
CDF_2001_S4563131.cc
Go to the documentation of this file.
00001 // -*- C++ -*-
00002 #include "Rivet/Analysis.hh"
00003 #include "Rivet/Projections/FinalState.hh"
00004 #include "Rivet/Projections/FastJets.hh"
00005 
00006 namespace Rivet {
00007 
00008 
00009   /// @brief CDF Run I inclusive jet cross-section
00010   class CDF_2001_S4563131 : public Analysis {
00011   public:
00012 
00013     /// @name Constructors etc.
00014     //@{
00015 
00016     /// Constructor
00017     CDF_2001_S4563131()
00018       : Analysis("CDF_2001_S4563131")
00019     {    }
00020 
00021     //@}
00022 
00023 
00024   public:
00025 
00026     /// @name Analysis methods
00027     //@{
00028 
00029     /// Book histograms and initialise projections before the run
00030     void init() {
00031       FinalState fs(-4,2, 4.2);
00032       addProjection(FastJets(fs, FastJets::CDFJETCLU, 0.7), "Jets");
00033 
00034       _h_ET = bookHisto1D(1, 1, 1);
00035 
00036     }
00037 
00038 
00039     /// Perform the per-event analysis
00040     void analyze(const Event& event) {
00041       const double weight = event.weight();
00042 
00043       Jets jets = applyProjection<FastJets>(event, "Jets").jetsByEt(40.0*GeV);
00044       foreach (const Jet& jet, jets) {
00045         double eta = fabs(jet.eta());
00046         if (eta>0.1 && eta<0.7) {
00047           _h_ET->fill(jet.momentum().Et(), weight);
00048         }
00049       }
00050 
00051     }
00052 
00053 
00054     /// Normalise histograms etc., after the run
00055     void finalize() {
00056       double deta = 1.2;
00057       scale(_h_ET, crossSection()/sumOfWeights()/deta/nanobarn);
00058     }
00059 
00060     //@}
00061 
00062 
00063   private:
00064 
00065     /// @name Histograms
00066     //@{
00067     Histo1DPtr _h_ET;
00068     //@}
00069 
00070   };
00071 
00072 
00073 
00074   // The hook for the plugin system
00075   DECLARE_RIVET_PLUGIN(CDF_2001_S4563131);
00076 
00077 }