File indexing completed on 2025-08-06 08:17:39
0001
0002
0003 #ifndef GLOBALVERTEX_VERTEX_H
0004 #define GLOBALVERTEX_VERTEX_H
0005
0006 #include <phool/PHObject.h>
0007
0008 #include <cstddef>
0009 #include <iostream>
0010 #include <limits>
0011 #include <set>
0012
0013 class Vertex : public PHObject
0014 {
0015 public:
0016 typedef std::set<unsigned int> TrackSet;
0017 typedef std::set<unsigned int>::const_iterator ConstTrackIter;
0018 typedef std::set<unsigned int>::iterator TrackIter;
0019
0020 ~Vertex() override = default;
0021
0022
0023
0024 void identify(std::ostream& os = std::cout) const override { os << "Vertex base class" << std::endl; }
0025 PHObject* CloneMe() const override { return nullptr; }
0026 int isValid() const override { return 0; }
0027
0028
0029
0030 virtual unsigned int get_id() const { return std::numeric_limits<unsigned int>::max(); }
0031 virtual void set_id(unsigned int) {}
0032
0033 virtual float get_t() const { return std::numeric_limits<float>::quiet_NaN(); }
0034 virtual void set_t(float) {}
0035
0036
0037 virtual float get_t0() const { return get_t(); }
0038 virtual void set_t0(float t0) { set_t(t0); }
0039
0040 virtual float get_t_err() const { return std::numeric_limits<float>::quiet_NaN(); }
0041 virtual void set_t_err(float) {}
0042
0043 virtual float get_x() const { return std::numeric_limits<float>::quiet_NaN(); }
0044 virtual void set_x(float) {}
0045
0046 virtual float get_y() const { return std::numeric_limits<float>::quiet_NaN(); }
0047 virtual void set_y(float) {}
0048
0049 virtual float get_z() const { return std::numeric_limits<float>::quiet_NaN(); }
0050 virtual void set_z(float) {}
0051
0052 virtual float get_chisq() const { return std::numeric_limits<float>::quiet_NaN(); }
0053 virtual void set_chisq(float) {}
0054
0055 virtual unsigned int get_ndof() const { return std::numeric_limits<unsigned int>::max(); }
0056 virtual void set_ndof(unsigned int) {}
0057
0058 virtual float get_position(unsigned int) const { return std::numeric_limits<float>::quiet_NaN(); }
0059 virtual void set_position(unsigned int , float ) {}
0060
0061 virtual float get_error(unsigned int , unsigned int ) const { return std::numeric_limits<float>::quiet_NaN(); }
0062 virtual void set_error(unsigned int , unsigned int , float ) {}
0063
0064
0065 virtual unsigned int get_beam_crossing() const { return std::numeric_limits<unsigned int>::max(); }
0066 virtual void set_beam_crossing(unsigned int) {}
0067
0068
0069 virtual void set_bbc_ns(int, int, float, float) {}
0070 virtual int get_bbc_npmt(int) const { return std::numeric_limits<int>::max(); }
0071 virtual float get_z_err() const { return std::numeric_limits<float>::quiet_NaN(); }
0072 virtual void set_z_err(float) {}
0073
0074 virtual float get_bbc_q(int) const { return std::numeric_limits<float>::quiet_NaN(); }
0075 virtual float get_bbc_t(int) const { return std::numeric_limits<float>::quiet_NaN(); }
0076
0077
0078 virtual void clear_tracks() {}
0079 virtual bool empty_tracks() { return true; }
0080 virtual size_t size_tracks() const { return 0; }
0081 virtual void insert_track(unsigned int ) {}
0082 virtual size_t erase_track(unsigned int ) { return 0; }
0083 virtual ConstTrackIter begin_tracks() const;
0084 virtual ConstTrackIter find_track(unsigned int trackid) const;
0085 virtual ConstTrackIter end_tracks() const;
0086 virtual TrackIter begin_tracks();
0087 virtual TrackIter find_track(unsigned int trackid);
0088 virtual TrackIter end_tracks();
0089
0090 protected:
0091 Vertex() = default;
0092
0093 private:
0094 ClassDefOverride(Vertex, 1);
0095 };
0096
0097 #endif