00001 // -*- C++ -*- 00002 #ifndef RIVET_HepEx0112029_HH 00003 #define RIVET_HepEx0112029_HH 00004 00005 #include "Rivet/Analysis.hh" 00006 #include "Rivet/Projections/KtJets.hh" 00007 #include "Rivet/RivetAIDA.fhh" 00008 00009 namespace Rivet { 00010 00011 /// This class is a reproduction of the HZTool routine for the ZEUS 00012 /// dijet photoproduction paper which was used in the ZEUS Jets PDF fit. 00013 /// 00014 /// @author Jon Butterworth 00015 class HepEx0112029 : public Analysis { 00016 00017 public: 00018 00019 /// Default constructor. 00020 inline HepEx0112029() 00021 : _fsproj(), _ktjetsproj(_fsproj) 00022 { 00023 setBeams(POSITRON, PROTON); 00024 addProjection(_fsproj); 00025 addProjection(_ktjetsproj); 00026 } 00027 00028 /// Factory method 00029 static Analysis* create() { return new HepEx0112029(); } 00030 00031 /// Get the name of this analysis. 00032 inline string getName() const { 00033 return "HepEx0112029"; 00034 } 00035 00036 public: 00037 00038 void init(); 00039 00040 void analyze(const Event& event); 00041 00042 void finalize(); 00043 00044 private: 00045 00046 /// The FinalState projector used by this analysis. 00047 FinalState _fsproj; 00048 00049 /// The KtJets projector used by this analysis. 00050 KtJets _ktjetsproj; 00051 00052 private: 00053 00054 /// Hide the assignment operator 00055 HepEx0112029& operator=(const HepEx0112029&); 00056 00057 /// @name Histograms 00058 //@{ 00059 AIDA::IHistogram1D* _histJetEt1; 00060 //@} 00061 00062 }; 00063 00064 } 00065 00066 #endif