rivet is hosted by Hepforge, IPPP Durham
CDF_2000_S4266730.cc
Go to the documentation of this file.
00001 // -*- C++ -*-
00002 #include "Rivet/Analysis.hh"
00003 #include "Rivet/RivetYODA.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 cross-section, differential in dijet mass
00012   class CDF_2000_S4266730 : public Analysis {
00013   public:
00014 
00015     /// @name Constructors etc.
00016     //@{
00017 
00018     /// Constructor
00019     CDF_2000_S4266730()
00020       : Analysis("CDF_2000_S4266730")
00021     {    }
00022 
00023     //@}
00024 
00025 
00026   public:
00027 
00028     /// @name Analysis methods
00029     //@{
00030 
00031     /// Book histograms and initialise projections before the run
00032     void init() {
00033       FinalState fs(-4.2, 4.2);
00034       addProjection(FastJets(fs, FastJets::CDFJETCLU, 0.7), "Jets");
00035 
00036       _h_mjj = bookHisto1D(1, 1, 1);
00037 
00038     }
00039 
00040 
00041     /// Perform the per-event analysis
00042     void analyze(const Event& event) {
00043       const double weight = event.weight();
00044 
00045       Jets jets = applyProjection<FastJets>(event, "Jets").jetsByEt();
00046       if (jets.size()<2) {
00047         vetoEvent;
00048       }
00049       FourMomentum jet1 = jets[0].momentum();
00050       FourMomentum jet2 = jets[1].momentum();
00051       double eta1 = jet1.eta();
00052       double eta2 = jet2.eta();
00053       if (fabs(eta1)>2.0 || fabs(eta2)>2.0) {
00054         vetoEvent;
00055       }
00056       if (fabs(tanh((eta1-eta2)/2))>2.0/3.0) {
00057         vetoEvent;
00058       }
00059       double mjj = FourMomentum(jet1+jet2).mass()/GeV;
00060       if (mjj<180.0) {
00061         vetoEvent;
00062       }
00063       _h_mjj->fill(mjj, weight);
00064 
00065     }
00066 
00067 
00068     /// Normalise histograms etc., after the run
00069     void finalize() {
00070       scale(_h_mjj, crossSection()/picobarn/sumOfWeights());
00071     }
00072 
00073     //@}
00074   private:
00075 
00076     /// @name Histograms
00077     //@{
00078     Histo1DPtr _h_mjj;
00079     //@}
00080 
00081   };
00082 
00083 
00084 
00085   // The hook for the plugin system
00086   DECLARE_RIVET_PLUGIN(CDF_2000_S4266730);
00087 
00088 }