File indexing completed on 2025-08-06 08:17:46
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef G4JET_JETV1_H
0010 #define G4JET_JETV1_H
0011
0012 #include "Jet.h"
0013
0014 #include <cstddef> // for size_t
0015 #include <iostream>
0016 #include <limits>
0017 #include <map>
0018 #include <utility> // for pair, make_pair
0019
0020 class PHObject;
0021
0022
0023
0024
0025 class Jetv1 : public Jet
0026 {
0027 public:
0028 Jetv1();
0029 ~Jetv1() override {}
0030
0031
0032
0033 void identify(std::ostream& os = std::cout) const override;
0034 void Reset() override;
0035 int isValid() const override;
0036 PHObject* CloneMe() const override;
0037
0038
0039
0040 unsigned int get_id() const override { return _id; }
0041 void set_id(unsigned int id) override { _id = id; }
0042
0043 float get_px() const override { return _mom[0]; }
0044 void set_px(float px) override { _mom[0] = px; }
0045
0046 float get_py() const override { return _mom[1]; }
0047 void set_py(float py) override { _mom[1] = py; }
0048
0049 float get_pz() const override { return _mom[2]; }
0050 void set_pz(float pz) override { _mom[2] = pz; }
0051
0052 float get_e() const override { return _e; }
0053 void set_e(float e) override { _e = e; }
0054
0055 float get_p() const override;
0056 float get_pt() const override;
0057 float get_et() const override;
0058 float get_eta() const override;
0059 float get_phi() const override;
0060 float get_mass() const override;
0061 float get_mass2() const override;
0062
0063
0064
0065 bool has_property(Jet::PROPERTY prop_id) const override;
0066 float get_property(Jet::PROPERTY prop_id) const override;
0067 void set_property(Jet::PROPERTY prop_id, float value) override;
0068 void print_property(std::ostream& os) const override;
0069
0070
0071
0072
0073
0074 bool empty_comp() const override { return _comp_ids.empty(); }
0075 size_t size_comp() const override { return _comp_ids.size(); }
0076
0077 void clear_comp() override { _comp_ids.clear(); }
0078 size_t erase_comp(SRC source) override { return _comp_ids.erase(source); }
0079 void erase_comp(Iter iter) override
0080 {
0081 _comp_ids.erase(iter);
0082 return;
0083 }
0084 void erase_comp(Iter first, Iter last) override
0085 {
0086 _comp_ids.erase(first, last);
0087 return;
0088 }
0089
0090 ConstIter begin_comp() const override { return _comp_ids.begin(); }
0091 ConstIter lower_bound_comp(SRC source) const override { return _comp_ids.lower_bound(source); }
0092 ConstIter upper_bound_comp(SRC source) const override { return _comp_ids.upper_bound(source); }
0093 ConstIter find(SRC source) const override { return _comp_ids.find(source); }
0094 ConstIter end_comp() const override { return _comp_ids.end(); }
0095
0096 Iter begin_comp() override { return _comp_ids.begin(); }
0097 Iter lower_bound_comp(SRC source) override { return _comp_ids.lower_bound(source); }
0098 Iter upper_bound_comp(SRC source) override { return _comp_ids.upper_bound(source); }
0099 Iter find(SRC source) override { return _comp_ids.find(source); }
0100 Iter end_comp() override { return _comp_ids.end(); }
0101
0102 private:
0103
0104 unsigned int _id = ~0x0;
0105
0106
0107 float _mom[3]{};
0108
0109
0110 float _e {std::numeric_limits<float>::quiet_NaN()};
0111
0112
0113 typ_comp_ids _comp_ids;
0114
0115 typedef std::map<Jet::PROPERTY, float> typ_property_map;
0116
0117 typ_property_map _property_map;
0118
0119
0120
0121 static void not_in_v1_msg(const std::string& method_name, std::ostream& os = std::cout) ;
0122 size_t size_properties() const override { return _property_map.size(); };
0123 virtual std::vector<float>& get_property_vec() override;
0124
0125 void insert_comp(SRC source, unsigned int compid) override
0126 {
0127 _comp_ids.insert(std::make_pair(source, compid));
0128 }
0129 void insert_comp(SRC source, unsigned int compid, bool) override;
0130 void insert_comp(TYPE_comp_vec&) override;
0131 void insert_comp(TYPE_comp_vec&, bool) override;
0132 void set_comp_sort_flag(bool) override;
0133
0134 size_t num_comp(Jet::SRC ) override;
0135 void print_comp(std::ostream& , bool ) override;
0136 std::vector<Jet::SRC> comp_src_vec() override;
0137 std::map<Jet::SRC, size_t> comp_src_sizemap() override;
0138 size_t count_comp(SRC source) const override { return _comp_ids.count(source); }
0139
0140 ITER_comp_vec comp_begin(Jet::SRC ) override;
0141 ITER_comp_vec comp_end(Jet::SRC ) override;
0142 ITER_comp_vec comp_begin() override;
0143 ITER_comp_vec comp_end() override;
0144 TYPE_comp_vec& get_comp_vec() override;
0145
0146 void resize_properties(size_t ) override;
0147
0148 ClassDefOverride(Jetv1, 1);
0149 };
0150
0151 #endif