Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:05:37

0001 // -*- C++ -*-
0002 #ifndef RIVET_MC_PARTICLES_BASE_HH
0003 #define RIVET_MC_PARTICLES_BASE_HH
0004 
0005 #include "Rivet/Analysis.hh"
0006 #include "Rivet/Projections/FinalState.hh"
0007 
0008 namespace Rivet {
0009 
0010 
0011   /// @brief Base class providing common functionality for MC particle species validation analyses
0012   class MC_PARTICLES_BASE : public Analysis {
0013   public:
0014 
0015     /// Default constructor.
0016     MC_PARTICLES_BASE(const string& name,
0017                       size_t nparticles,
0018                       const string& particle_name);
0019 
0020 
0021     /// @name Analysis methods
0022     /// @{
0023 
0024     /// Bookings as usual, using the particle name specified by the derived classe
0025     virtual void init();
0026 
0027     /// To be implemented by derived classes, making particle selection then calling _analyze
0028     virtual void analyze(const Event& event) = 0;
0029 
0030     /// Normalization, division, etc.
0031     virtual void finalize();
0032 
0033     /// For derived classes to call, passing the sorted particle collection that they wish to analyse
0034     virtual void _analyze(const Event& event, const Particles& particles);
0035     /// @}
0036 
0037 
0038   protected:
0039 
0040     /// The number of particles for which histograms are to be initialised
0041     size_t _nparts;
0042 
0043     /// The name of the particle species/group being analysed
0044     std::string _pname;
0045 
0046     /// @name Histograms
0047     /// @{
0048     std::vector<Histo1DPtr> _h_pt;
0049     std::vector<Histo1DPtr> _h_eta;
0050     std::vector<Histo1DPtr> _h_eta_plus, _h_eta_minus;
0051     std::vector<Histo1DPtr> _h_rap;
0052     std::vector<Histo1DPtr> _h_rap_plus, _h_rap_minus;
0053     std::vector<Estimate1DPtr> tmpeta, tmprap;
0054 
0055     std::map<std::pair<size_t, size_t>, Histo1DPtr> _h_deta;
0056     std::map<std::pair<size_t, size_t>, Histo1DPtr> _h_dphi;
0057     std::map<std::pair<size_t, size_t>, Histo1DPtr> _h_dR;
0058     BinnedHistoPtr<int> _h_multi_exclusive, _h_multi_inclusive;
0059     BinnedHistoPtr<int> _h_multi_exclusive_prompt, _h_multi_inclusive_prompt;
0060     BinnedEstimatePtr<std::string> _h_multi_ratio, _h_multi_ratio_prompt;
0061     /// @}
0062 
0063   };
0064 
0065 }
0066 
0067 #endif