File indexing completed on 2025-08-05 08:16:37
0001 #ifndef JETBASE_JetContainerv1__h
0002 #define JETBASE_JetContainerv1__h
0003 #include "JetContainer.h"
0004
0005 #include "Jet.h"
0006
0007 #include <TClonesArray.h>
0008
0009 class JetContainerv1 : public JetContainer
0010 {
0011 public:
0012
0013 JetContainerv1();
0014 ~JetContainerv1() override;
0015 void identify(std::ostream& os = std::cout) const override;
0016 explicit JetContainerv1(const JetContainer& rhs);
0017 JetContainerv1& operator=(const JetContainer& jets);
0018 void Reset() override;
0019 TClonesArray* clone_data() const override
0020 {
0021 return (TClonesArray*) m_clones->Clone();
0022 };
0023
0024
0025 bool empty() const override { return m_njets == 0; };
0026 size_t size() const override { return m_njets; };
0027
0028
0029 Jet* add_jet() override;
0030 Jet* get_jet(unsigned int ijet) override;
0031 Jet* get_UncheckedAt(unsigned int index) override;
0032
0033
0034 inline Jet* operator()(int index) override { return get_jet(index); };
0035 inline Jet* operator[](int index) override { return get_UncheckedAt(index); };
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045 std::map<Jet::PROPERTY, Jet::PROPERTY> property_indices() const override { return m_pindex; };
0046 bool has_property(Jet::PROPERTY prop) const override { return m_pindex.find(prop) != m_pindex.end(); };
0047 size_t size_properties() const override { return m_pindex.size(); };
0048 size_t add_property(Jet::PROPERTY) override;
0049 size_t add_property(std::set<Jet::PROPERTY>) override;
0050 virtual Jet::PROPERTY property_index(Jet::PROPERTY) override;
0051 void print_property_types(std::ostream& os = std::cout) const override;
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062 Jet::IterJetTCA begin() override;
0063 Jet::IterJetTCA end() override;
0064
0065
0066
0067 void set_algo(Jet::ALGO algo) override { m_algo = algo; };
0068 Jet::ALGO get_algo() const override { return m_algo; };
0069
0070 void set_par(float par) override { set_jetpar_R(par); }
0071 float get_par() const override { return get_jetpar_R(); }
0072
0073 void set_jetpar_R(float par) override { m_jetpar_R = par; }
0074 float get_jetpar_R() const override { return m_jetpar_R; }
0075
0076
0077
0078 bool empty_src() const override { return m_src.empty(); }
0079 void insert_src(Jet::SRC src) override { m_src.insert(src); }
0080
0081 ConstSrcIter begin_src() const override { return m_src.begin(); }
0082 ConstSrcIter find_src(Jet::SRC src) const override { return m_src.find(src); }
0083 ConstSrcIter end_src() const override { return m_src.end(); }
0084
0085 SrcIter begin_src() override { return m_src.begin(); }
0086 SrcIter find_src(Jet::SRC src) override { return m_src.find(src); }
0087 SrcIter end_src() override { return m_src.end(); }
0088
0089 void print_jets(std::ostream&) override;
0090
0091 void set_rho_median(float _) override { m_RhoMedian = _; };
0092 float get_rho_median() const override { return m_RhoMedian; };
0093
0094 private:
0095 static std::string str_Jet_PROPERTY(Jet::PROPERTY) ;
0096
0097 TClonesArray* m_clones{nullptr};
0098 size_t m_njets{0};
0099
0100
0101 std::map<Jet::PROPERTY, Jet::PROPERTY > m_pindex{};
0102 size_t m_psize{0};
0103
0104 void resize_jet_pvecs();
0105
0106
0107 Jet::ALGO m_algo{Jet::NONE};
0108 float m_jetpar_R{0.4};
0109
0110 std::set<Jet::SRC> m_src;
0111
0112 float m_RhoMedian{NAN};
0113
0114 ClassDefOverride(JetContainerv1, 1);
0115 };
0116
0117 #endif