MC_JetAnalysis.hh

Go to the documentation of this file.
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