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       _h_ET = bookHisto1D(1, 1, 1);
00034     }
00035 
00036 
00037     /// Perform the per-event analysis
00038     void analyze(const Event& event) {
00039       const double weight = event.weight();
00040       Jets jets = applyProjection<FastJets>(event, "Jets").jets(Cuts::Et > 40*GeV, cmpMomByEt);
00041       foreach (const Jet& jet, jets) {
00042         if (inRange(jet.abseta(), 0.1, 0.7))
00043           _h_ET->fill(jet.Et(), weight);
00044       }
00045     }
00046 
00047 
00048     /// Normalise histograms etc., after the run
00049     void finalize() {
00050       const double deta = 1.2;
00051       scale(_h_ET, crossSection()/sumOfWeights()/deta/nanobarn);
00052     }
00053 
00054     //@}
00055 
00056 
00057   private:
00058 
00059     /// @name Histograms
00060     //@{
00061     Histo1DPtr _h_ET;
00062     //@}
00063 
00064   };
00065 
00066 
00067 
00068   // The hook for the plugin system
00069   DECLARE_RIVET_PLUGIN(CDF_2001_S4563131);
00070 
00071 }