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 #include "LWH/Histogram1D.h" 00008 00009 namespace Rivet { 00010 00011 00012 /// @brief Base class providing common functionality for MC jet validation analyses 00013 class MC_JetAnalysis : public Analysis { 00014 public: 00015 00016 /// Default constructor. 00017 MC_JetAnalysis(const string& name, 00018 size_t njet, 00019 const string& jetpro_name, 00020 double jetptcut=20*GeV); 00021 00022 00023 /// @name Analysis methods 00024 //@{ 00025 virtual void init(); 00026 virtual void analyze(const Event& event); 00027 virtual void finalize(); 00028 //@} 00029 00030 00031 protected: 00032 00033 /// The number of jets for which histograms are to be initialised 00034 size_t m_njet; 00035 00036 /// The name of the jet projection to be used for this analysis 00037 /// (this projection has to be registered by the derived analysis!) 00038 const std::string m_jetpro_name; 00039 00040 /// Jet pT cutoff 00041 double m_jetptcut; 00042 00043 /// @todo Add jet masses and d(rap) 00044 00045 /// @name Histograms 00046 //@{ 00047 std::vector<AIDA::IHistogram1D *> _h_log10_d; 00048 std::vector<AIDA::IDataPointSet *> _h_log10_R; 00049 std::vector<AIDA::IHistogram1D *> _h_pT_jet; 00050 std::vector<AIDA::IHistogram1D *> _h_eta_jet; 00051 std::vector<shared_ptr<LWH::Histogram1D> > _h_eta_jet_plus, _h_eta_jet_minus; 00052 std::vector<AIDA::IHistogram1D *> _h_rap_jet; 00053 std::vector<shared_ptr<LWH::Histogram1D> > _h_rap_jet_plus, _h_rap_jet_minus; 00054 std::vector<AIDA::IHistogram1D *> _h_mass_jet; 00055 std::map<std::pair<size_t, size_t>, AIDA::IHistogram1D*> _h_deta_jets; 00056 std::map<std::pair<size_t, size_t>, AIDA::IHistogram1D*> _h_dR_jets; 00057 AIDA::IHistogram1D * _h_jet_multi_exclusive; 00058 AIDA::IHistogram1D * _h_jet_multi_inclusive; 00059 AIDA::IDataPointSet * _h_jet_multi_ratio; 00060 //@} 00061 00062 }; 00063 00064 } 00065 00066 #endif