rivet is hosted by Hepforge, IPPP Durham
D0_2009_S8320160.cc
Go to the documentation of this file.
00001 // -*- C++ -*-
00002 #include "Rivet/Analysis.hh"
00003 #include "Rivet/Tools/BinnedHistogram.hh"
00004 #include "Rivet/Projections/FinalState.hh"
00005 #include "Rivet/Projections/ChargedFinalState.hh"
00006 #include "Rivet/Projections/FastJets.hh"
00007 
00008 namespace Rivet {
00009 
00010 
00011   /// @brief D0 dijet angular distributions
00012   class D0_2009_S8320160 : public Analysis {
00013   public:
00014 
00015     /// @name Construction
00016     //@{
00017 
00018     /// Constructor
00019     D0_2009_S8320160() : Analysis("D0_2009_S8320160")
00020     {
00021     }
00022 
00023     //@}
00024 
00025 
00026     /// @name Analysis methods
00027     //@{
00028 
00029     // Book histograms
00030     void init() {
00031       FinalState fs;
00032       FastJets conefinder(fs, FastJets::D0ILCONE, 0.7);
00033       addProjection(conefinder, "ConeFinder");
00034 
00035       _h_chi_dijet.addHistogram(250., 300., bookHisto1D(1, 1, 1));
00036       _h_chi_dijet.addHistogram(300., 400., bookHisto1D(2, 1, 1));
00037       _h_chi_dijet.addHistogram(400., 500., bookHisto1D(3, 1, 1));
00038       _h_chi_dijet.addHistogram(500., 600., bookHisto1D(4, 1, 1));
00039       _h_chi_dijet.addHistogram(600., 700., bookHisto1D(5, 1, 1));
00040       _h_chi_dijet.addHistogram(700., 800., bookHisto1D(6, 1, 1));
00041       _h_chi_dijet.addHistogram(800., 900., bookHisto1D(7, 1, 1));
00042       _h_chi_dijet.addHistogram(900., 1000., bookHisto1D(8, 1, 1));
00043       _h_chi_dijet.addHistogram(1000., 1100., bookHisto1D(9, 1, 1));
00044       _h_chi_dijet.addHistogram(1100., 1960, bookHisto1D(10, 1, 1));
00045     }
00046 
00047 
00048 
00049     /// Do the analysis
00050     void analyze(const Event & e) {
00051       const double weight = e.weight();
00052 
00053       const Jets& jets = applyProjection<JetAlg>(e, "ConeFinder").jetsByPt();
00054       if (jets.size() < 2) vetoEvent;
00055 
00056       FourMomentum j0(jets[0].momentum());
00057       FourMomentum j1(jets[1].momentum());
00058       double y0 = j0.rapidity();
00059       double y1 = j1.rapidity();
00060 
00061       if (fabs(y0+y1)>2) vetoEvent;
00062 
00063       double mjj = FourMomentum(j0+j1).mass();
00064       double chi = exp(fabs(y0-y1));
00065       _h_chi_dijet.fill(mjj, chi, weight);
00066     }
00067 
00068 
00069 
00070     /// Finalize
00071     void finalize() {
00072       foreach (Histo1DPtr hist, _h_chi_dijet.getHistograms()) {
00073         normalize(hist);
00074       }
00075     }
00076 
00077     //@}
00078 
00079 
00080   private:
00081 
00082     /// @name Histograms
00083     //@{
00084     BinnedHistogram<double> _h_chi_dijet;
00085     //@}
00086 
00087   };
00088 
00089 
00090 
00091   // The hook for the plugin system
00092   DECLARE_RIVET_PLUGIN(D0_2009_S8320160);
00093 
00094 }