File indexing completed on 2025-10-16 08:21:02
0001 #ifndef TRUTHNEUTRALMESONV1_H
0002 #define TRUTHNEUTRALMESONV1_H
0003
0004 #include <array>
0005 #include "TruthNeutralMeson.h"
0006
0007 class TruthNeutralMesonv1 : public TruthNeutralMeson
0008 {
0009 public:
0010 TruthNeutralMesonv1() = default;
0011 ~TruthNeutralMesonv1() override = default;
0012
0013 int get_pid() const override { return m_pid; }
0014 void set_pid(int pid) override { m_pid = pid; }
0015
0016 bool is_prompt() const override { return m_is_prompt; }
0017 void set_prompt(bool isprompt) override { m_is_prompt = isprompt; }
0018
0019 int get_parent_pid() const override { return m_parent_pid; }
0020 void set_parent_pid(int pid) override { m_parent_pid = pid; }
0021
0022 bool mother_is_eta() const override { return m_mother_is_eta; }
0023 void set_mother_is_eta(bool ismothereta) override { m_mother_is_eta = ismothereta; }
0024
0025 float get_e() const override { return m_e; }
0026 float get_pt() const override { return m_pt; }
0027 float get_eta() const override { return m_eta; }
0028 float get_phi() const override { return m_phi; }
0029 float get_p() const override { return m_p; }
0030
0031 void set_e(float val) override { m_e = val; }
0032 void set_pt(float val) override { m_pt = val; }
0033 void set_eta(float val) override { m_eta = val; }
0034 void set_phi(float val) override { m_phi = val; }
0035 void set_p(float val) override { m_p = val; }
0036
0037 int get_n_photons() const override { return m_n_photons; }
0038 float get_photon_e(int i) const override { return (i >= 0 && i < m_n_photons) ? m_photon_e[i] : 0; }
0039 float get_photon_pt(int i) const override { return (i >= 0 && i < m_n_photons) ? m_photon_pt[i] : 0; }
0040 float get_photon_eta(int i) const override { return (i >= 0 && i < m_n_photons) ? m_photon_eta[i] : 0; }
0041 float get_photon_phi(int i) const override { return (i >= 0 && i < m_n_photons) ? m_photon_phi[i] : 0; }
0042 float get_photon_p(int i) const override { return (i >= 0 && i < m_n_photons) ? m_photon_p[i] : 0; }
0043 float get_photon_converted(int i) const override { return (i >= 0 && i < m_n_photons) ? m_photon_converted[i] : false; }
0044
0045 void add_photon(float e, float pt, float eta, float phi, float p, bool isconv) override;
0046
0047 bool is_eta_3pi0() const override { return m_is_eta_3pi0; }
0048 void set_eta_3pi0(bool isdecay) override { m_is_eta_3pi0 = isdecay; }
0049
0050 bool is_eta_pi0pipm() const override { return m_is_eta_pi0pipm; }
0051 void set_eta_pi0pipm(bool isdecay) override { m_is_eta_pi0pipm = isdecay; }
0052
0053 void identify(std::ostream& os = std::cout) const override;
0054 PHObject* CloneMe() const override { return new TruthNeutralMesonv1(*this); }
0055 void Reset() override;
0056 int isValid() const override { return 1; }
0057
0058 private:
0059 bool m_is_eta_3pi0{false};
0060 bool m_is_eta_pi0pipm{false};
0061 bool m_is_prompt{true};
0062 bool m_mother_is_eta{false};
0063
0064 int m_pid{0};
0065 int m_parent_pid{0};
0066
0067 float m_e{0};
0068 float m_eta{0};
0069 float m_p{0};
0070 float m_phi{0};
0071 float m_pt{0};
0072
0073 int m_n_photons{0};
0074 std::array<float, 2> m_photon_e{{0, 0}};
0075 std::array<float, 2> m_photon_eta{{0, 0}};
0076 std::array<float, 2> m_photon_p{{0, 0}};
0077 std::array<float, 2> m_photon_phi{{0, 0}};
0078 std::array<float, 2> m_photon_pt{{0, 0}};
0079 std::array<bool, 2> m_photon_converted{{false, false}};
0080
0081 ClassDefOverride(TruthNeutralMesonv1, 1);
0082 };
0083
0084 #endif