ZEUS_2001_S4815815.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/FastJets.hh"
00006 
00007 namespace Rivet {
00008 
00009 
00010   /// @brief ZEUS dijet photoproduction study used in the ZEUS Jets PDF fit
00011   ///
00012   /// This class is a reproduction of the HZTool routine for the ZEUS
00013   /// dijet photoproduction paper which was used in the ZEUS Jets PDF fit.
00014   ///
00015   /// @author Jon Butterworth
00016   class ZEUS_2001_S4815815 : public Analysis {
00017   public:
00018 
00019     /// Constructor
00020     ZEUS_2001_S4815815() : Analysis("ZEUS_2001_S4815815")
00021     {
00022       setBeams(POSITRON, PROTON);
00023     }
00024 
00025 
00026     /// @name Analysis methods
00027     //@{
00028 
00029     // Book projections and histograms
00030     void init() {
00031       FinalState fs;
00032       addProjection(fs, "FS");
00033       /// @todo This is the *wrong* jet def: correct it!
00034       addProjection(FastJets(fs, FastJets::KT, 0.7), "Jets");
00035       getLog() << Log::WARN << "This analysis uses the wrong jet definition: the "
00036                << "paper just says 'a cone algorithm was applied to the CAL cells and jets "
00037                << "were reconstructed using the energies and positions of these cells'" << endl;
00038 
00039       /// @todo This doesn't seem to correspond to the plots in the paper (SPIRES 4730372)
00040       _histJetEt1 = bookHistogram1D("JetET1", 11, 14.0, 75.0);
00041     }
00042 
00043 
00044     // Do the analysis
00045     void analyze(const Event& event) {
00046       const double weight = event.weight();
00047       const JetAlg& jets = applyProjection<FastJets>(event, "Jets");
00048       getLog() << Log::INFO << "Jet multiplicity = " << jets.size() << endl;
00049       foreach (const Jet& j, jets.jets()) {
00050         _histJetEt1->fill(j.momentum().pT(), weight);
00051       }
00052     }
00053  
00054  
00055     // Finalize
00056     void finalize() {
00057       //
00058     }
00059 
00060     //@}
00061 
00062   private:
00063 
00064     /// @name Histograms
00065     //@{
00066     AIDA::IHistogram1D* _histJetEt1;
00067     //@}
00068 
00069 
00070   };
00071 
00072  
00073  
00074   // This global object acts as a hook for the plugin system
00075   AnalysisBuilder<ZEUS_2001_S4815815> plugin_ZEUS_2001_S4815815;
00076 
00077 }