CDF_1998_S3618439.cc

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 #include "Rivet/Analysis.hh"
00003 #include "Rivet/RivetAIDA.hh"
00004 #include "Rivet/Tools/Logging.hh"
00005 #include "Rivet/Projections/FinalState.hh"
00006 #include "Rivet/Projections/FastJets.hh"
00007 
00008 namespace Rivet {
00009 
00010 
00011   class CDF_1998_S3618439 : public Analysis {
00012   public:
00013 
00014     /// @name Constructors etc.
00015     //@{
00016 
00017     /// Constructor
00018     CDF_1998_S3618439()
00019       : Analysis("CDF_1998_S3618439")
00020     {
00021       setBeams(PROTON, ANTIPROTON);
00022       setNeedsCrossSection(true);
00023     }
00024 
00025     //@}
00026 
00027 
00028   public:
00029 
00030     /// @name Analysis methods
00031     //@{
00032 
00033     /// Book histograms and initialise projections before the run
00034     void init() {
00035       FinalState fs(-4.2, 4.2);
00036       addProjection(FastJets(fs, FastJets::CDFJETCLU, 0.7), "Jets");
00037 
00038       _h_sumET_20 = bookHistogram1D(1, 1, 1);
00039       _h_sumET_100 = bookHistogram1D(1, 1, 2);
00040     }
00041 
00042 
00043     /// Perform the per-event analysis
00044     void analyze(const Event& event) {
00045       const double weight = event.weight();
00046 
00047       Jets jets = applyProjection<FastJets>(event, "Jets").jetsByEt(20.0*GeV);
00048       double sumET_20(0.0), sumET_100(0.0);
00049       foreach (const Jet& jet, jets) {
00050         double ET = jet.momentum().Et()/GeV;
00051         sumET_20 += ET;
00052         if (ET>100.0) sumET_100 += ET;
00053       }
00054       if (sumET_20>320.0) _h_sumET_20->fill(sumET_20, weight);
00055       if (sumET_100>320.0) _h_sumET_100->fill(sumET_100, weight);
00056     }
00057 
00058 
00059     /// Normalise histograms etc., after the run
00060     void finalize() {
00061       scale(_h_sumET_20, crossSection()/picobarn/sumOfWeights());
00062       scale(_h_sumET_100, crossSection()/picobarn/sumOfWeights());
00063     }
00064 
00065     //@}
00066 
00067 
00068   private:
00069 
00070     /// @name Histograms
00071     //@{
00072     AIDA::IHistogram1D *_h_sumET_20, *_h_sumET_100;
00073     //@}
00074 
00075   };
00076 
00077 
00078 
00079   // This global object acts as a hook for the plugin system
00080   AnalysisBuilder<CDF_1998_S3618439> plugin_CDF_1998_S3618439;
00081 
00082 
00083 }