D0_2009_S8320160.cc

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