File indexing completed on 2025-04-19 09:05:37
0001
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
0012 class MC_PARTICLES_BASE : public Analysis {
0013 public:
0014
0015
0016 MC_PARTICLES_BASE(const string& name,
0017 size_t nparticles,
0018 const string& particle_name);
0019
0020
0021
0022
0023
0024
0025 virtual void init();
0026
0027
0028 virtual void analyze(const Event& event) = 0;
0029
0030
0031 virtual void finalize();
0032
0033
0034 virtual void _analyze(const Event& event, const Particles& particles);
0035
0036
0037
0038 protected:
0039
0040
0041 size_t _nparts;
0042
0043
0044 std::string _pname;
0045
0046
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