CDF_2008_S8093652.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   /// @brief CDF dijet mass spectrum
00012   class CDF_2008_S8093652 : public Analysis {
00013   public:
00014 
00015     /// Constructor
00016     CDF_2008_S8093652()
00017       : Analysis("CDF_2008_S8093652")
00018     {    }
00019 
00020 
00021     /// @name Analysis methods
00022     //@{
00023 
00024     /// Book histograms
00025     void init() {
00026       FinalState fs;
00027       FastJets conefinder(fs, FastJets::CDFMIDPOINT, 0.7);
00028       addProjection(conefinder, "ConeFinder");
00029 
00030       _h_m_dijet = bookHistogram1D(1, 1, 1);
00031     }
00032 
00033 
00034     /// Do the analysis
00035     void analyze(const Event & e) {
00036       const double weight = e.weight();
00037 
00038       const JetAlg& jetpro = applyProjection<JetAlg>(e, "ConeFinder");
00039       const Jets& jets = jetpro.jetsByPt();
00040 
00041       if (jets.size() < 2) vetoEvent;
00042 
00043       const FourMomentum j0(jets[0].momentum());
00044       const FourMomentum j1(jets[1].momentum());
00045       if (fabs(j1.rapidity()) > 1.0 || fabs(j0.rapidity()) > 1.0) {
00046         vetoEvent;
00047       }
00048 
00049       double mjj = FourMomentum(j0+j1).mass();
00050       _h_m_dijet->fill(mjj, weight);
00051     }
00052 
00053 
00054     /// Finalize
00055     void finalize() {
00056       scale(_h_m_dijet, crossSection()/sumOfWeights());
00057     }
00058     //@}
00059 
00060 
00061   private:
00062 
00063     /// @name Histograms
00064     //@{
00065     AIDA::IHistogram1D* _h_m_dijet;
00066     //@}
00067 
00068   };
00069 
00070 
00071 
00072   // The hook for the plugin system
00073   DECLARE_RIVET_PLUGIN(CDF_2008_S8093652);
00074 
00075 }