File indexing completed on 2025-08-05 08:16:37
0001 #ifndef JETBASE_JETCONTAINER_H
0002 #define JETBASE_JETCONTAINER_H
0003
0004 #include "Jet.h"
0005
0006 #include <phool/PHObject.h>
0007
0008 #include <cfloat>
0009 #include <cmath>
0010 #include <cstddef> // for size_t
0011 #include <functional>
0012 #include <iostream>
0013 #include <limits>
0014 #include <map>
0015 #include <set>
0016 #include <vector>
0017
0018 class Jet;
0019 class TClonesArray;
0020
0021
0022
0023 class JetContainer : public PHObject
0024 {
0025 public:
0026 JetContainer() = default;
0027 ~JetContainer() override = default;
0028 virtual void identify(std::ostream& ) const override;
0029 int isValid() const override { return 0; }
0030 PHObject* CloneMe() const override { return nullptr; }
0031 virtual TClonesArray* clone_data() const;
0032
0033
0034 virtual bool empty() const { return true; }
0035 virtual size_t size() const { return 0; }
0036
0037
0038
0039 virtual Jet* add_jet() { return nullptr; };
0040 virtual Jet* get_jet(unsigned int ) { return nullptr; };
0041 virtual Jet* get_UncheckedAt(unsigned int ) { return nullptr; };
0042
0043
0044 virtual Jet* operator()(int ) { return nullptr; };
0045 virtual Jet* operator[](int ) { return nullptr; };
0046
0047
0048
0049
0050
0051
0052 virtual void set_algo(Jet::ALGO ) { return; }
0053 virtual Jet::ALGO get_algo() const { return Jet::ALGO::NONE; }
0054
0055 virtual void set_par(float) { return; }
0056 virtual float get_par() const { return std::numeric_limits<float>::quiet_NaN(); }
0057
0058 virtual void set_jetpar_R(float) { return; }
0059 virtual float get_jetpar_R() const { return std::numeric_limits<float>::quiet_NaN(); }
0060
0061
0062
0063
0064
0065
0066 typedef std::set<Jet::SRC>::const_iterator ConstSrcIter;
0067 typedef std::set<Jet::SRC>::iterator SrcIter;
0068
0069 virtual bool empty_src() const { return true; }
0070 virtual void insert_src(Jet::SRC ) { return; }
0071
0072 virtual ConstSrcIter begin_src() const;
0073 virtual ConstSrcIter find_src(Jet::SRC src) const;
0074 virtual ConstSrcIter end_src() const;
0075
0076 virtual SrcIter begin_src();
0077 virtual SrcIter find_src(Jet::SRC src);
0078 virtual SrcIter end_src();
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090 virtual std::map<Jet::PROPERTY, Jet::PROPERTY > property_indices() const { return {}; };
0091 virtual bool has_property(Jet::PROPERTY ) const { return false; };
0092 virtual size_t size_properties() const { return std::numeric_limits<unsigned int>::max(); };
0093 virtual size_t add_property(Jet::PROPERTY ) { return 0; };
0094 virtual size_t add_property(std::set<Jet::PROPERTY> ) { return 0; };
0095 virtual Jet::PROPERTY property_index(Jet::PROPERTY) { return static_cast<Jet::PROPERTY>(1000); };
0096 virtual void print_property_types(std::ostream& ) const {};
0097
0098 virtual void print_jets(std::ostream& os = std::cout)
0099 {
0100 os << "";
0101 return;
0102 };
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116 virtual Jet::IterJetTCA begin();
0117 virtual Jet::IterJetTCA end();
0118
0119
0120 virtual unsigned int get_index_single() const { return std::numeric_limits<unsigned int>::max(); };
0121 virtual std::vector<unsigned int> get_index_vec() const { return {}; };
0122
0123 virtual void set_rho_median(float ){};
0124 virtual float get_rho_median() const { return std::numeric_limits<float>::quiet_NaN(); };
0125
0126 private:
0127 ClassDefOverride(JetContainer, 1);
0128 };
0129
0130 #endif