Rivet API documentation

Rivet 4.1.3
MC_PARTICLES_BASE.hh
1// -*- C++ -*-
2#ifndef RIVET_MC_PARTICLES_BASE_HH
3#define RIVET_MC_PARTICLES_BASE_HH
4
5#include "Rivet/Analysis.hh"
6#include "Rivet/Projections/FinalState.hh"
7
8namespace Rivet {
9
10
12 class MC_PARTICLES_BASE : public Analysis {
13 public:
14
16 MC_PARTICLES_BASE(const string& name, size_t nparticles, const string& particle_name);
17
18
21
23 virtual void init();
24
26 virtual void analyze(const Event& event) = 0;
27
29 virtual void finalize();
30
32 virtual void _analyze(const Event& event, const Particles& particles);
34
35
36 protected:
37
39 size_t _nparts;
40
42 std::string _pname;
43
46 std::vector<Histo1DPtr> _h_pt;
47 std::vector<Histo1DPtr> _h_eta;
48 std::vector<Histo1DPtr> _h_eta_plus, _h_eta_minus;
49 std::vector<Histo1DPtr> _h_rap;
50 std::vector<Histo1DPtr> _h_rap_plus, _h_rap_minus;
51 std::vector<Estimate1DPtr> tmpeta, tmprap;
52
53 std::map<std::pair<size_t, size_t>, Histo1DPtr> _h_deta;
54 std::map<std::pair<size_t, size_t>, Histo1DPtr> _h_dphi;
55 std::map<std::pair<size_t, size_t>, Histo1DPtr> _h_dR;
56 BinnedHistoPtr<int> _h_multi_exclusive, _h_multi_inclusive;
57 BinnedHistoPtr<int> _h_multi_exclusive_prompt, _h_multi_inclusive_prompt;
58 BinnedEstimatePtr<std::string> _h_multi_ratio, _h_multi_ratio_prompt;
60 };
61
62}
63
64#endif
Analysis(const std::string &name)
Constructor.
virtual std::string name() const
Get the name of the analysis.
Definition Analysis.hh:165
Representation of a HepMC event, and enabler of Projection caching.
Definition Event.hh:22
MC_PARTICLES_BASE(const string &name, size_t nparticles, const string &particle_name)
Default constructor.
virtual void analyze(const Event &event)=0
To be implemented by derived classes, making particle selection then calling _analyze.
virtual void init()
Bookings as usual, using the particle name specified by the derived classe.
virtual void finalize()
Normalization, division, etc.
Specialised vector of Particle objects.
Definition Particle.hh:21
Definition LHCbCommon.hh:9