00001 // -*- C++ -*- 00002 #ifndef RIVET_MC_JetAnalysis_HH 00003 #define RIVET_MC_JetAnalysis_HH 00004 00005 #include "Rivet/Analysis.hh" 00006 #include "Rivet/Projections/FinalState.hh" 00007 00008 namespace Rivet { 00009 00010 00011 class MC_JetAnalysis : public Analysis { 00012 00013 public: 00014 00015 /// Default constructor. 00016 MC_JetAnalysis(const string& name, 00017 const size_t& njet, 00018 const string& jetpro_name); 00019 00020 00021 /// @name Analysis methods 00022 //@{ 00023 virtual void init(); 00024 virtual void analyze(const Event& event); 00025 virtual void finalize(); 00026 //@} 00027 00028 00029 protected: 00030 00031 /// The number of jets for which histograms are to be initialised 00032 size_t m_njet; 00033 00034 /// The name of the jet projection to be used for this analysis 00035 /// (this projection has to be registered by the derived analysis!) 00036 const std::string m_jetpro_name; 00037 00038 /// @name Histograms 00039 //@{ 00040 std::vector<AIDA::IHistogram1D *> _h_log10_d; 00041 std::vector<AIDA::IDataPointSet *> _h_log10_R; 00042 std::vector<AIDA::IHistogram1D *> _h_pT_jet; 00043 std::vector<AIDA::IHistogram1D *> _h_eta_jet; 00044 std::map<std::pair<size_t, size_t>, AIDA::IHistogram1D*> _h_deta_jets; 00045 std::map<std::pair<size_t, size_t>, AIDA::IHistogram1D*> _h_dR_jets; 00046 AIDA::IHistogram1D * _h_jet_multi_exclusive; 00047 AIDA::IHistogram1D * _h_jet_multi_inclusive; 00048 AIDA::IDataPointSet * _h_jet_multi_ratio; 00049 //@} 00050 00051 }; 00052 00053 } 00054 00055 #endif