File indexing completed on 2025-08-06 08:17:38
0001
0002
0003 #ifndef GLOBALVERTEX_GLOBALVERTEXV2_H
0004 #define GLOBALVERTEX_GLOBALVERTEXV2_H
0005
0006 #include "GlobalVertex.h"
0007
0008 #include <cstddef> // for size_t
0009 #include <iostream>
0010 #include <limits>
0011 #include <map>
0012
0013 class PHObject;
0014
0015 class GlobalVertexv2 : public GlobalVertex
0016 {
0017 public:
0018 GlobalVertexv2() = default;
0019 GlobalVertexv2(const unsigned int id);
0020 ~GlobalVertexv2() override;
0021
0022
0023
0024 void identify(std::ostream& os = std::cout) const override;
0025 void Reset() override;
0026 int isValid() const override;
0027 PHObject* CloneMe() const override { return new GlobalVertexv2(*this); }
0028
0029 unsigned int get_id() const override { return _id; }
0030 void set_id(unsigned int id) override { _id = id; }
0031
0032 unsigned int get_beam_crossing() const override { return _bco; }
0033 void set_beam_crossing(unsigned int bco) override { _bco = bco; }
0034
0035 float get_t() const override;
0036 float get_t_err() const override;
0037 float get_x() const override;
0038 float get_y() const override;
0039 float get_z() const override;
0040 float get_chisq() const override;
0041 unsigned int get_ndof() const override;
0042 float get_position(unsigned int coor) const override;
0043 float get_error(unsigned int i, unsigned int j) const override;
0044
0045
0046
0047
0048
0049 bool empty_vtxs() const override { return _vtxs.empty(); }
0050 size_t size_vtxs() const override { return _vtxs.size(); }
0051 size_t count_vtxs(GlobalVertex::VTXTYPE type) const override;
0052
0053 void clear_vtxs() override { _vtxs.clear(); }
0054 void insert_vtx(GlobalVertex::VTXTYPE type, const Vertex* vertex) override;
0055 void clone_insert_vtx(GlobalVertex::VTXTYPE type, const Vertex* vertex) override;
0056 size_t erase_vtxs(GlobalVertex::VTXTYPE type) override { return _vtxs.erase(type); }
0057 void erase_vtxs(GlobalVertex::VertexIter iter) override { _vtxs.erase(iter); }
0058
0059 GlobalVertex::ConstVertexIter begin_vertexes() const override { return _vtxs.begin(); }
0060 GlobalVertex::ConstVertexIter find_vertexes(GlobalVertex::VTXTYPE type) const override { return _vtxs.find(type); }
0061 GlobalVertex::ConstVertexIter end_vertexes() const override { return _vtxs.end(); }
0062
0063 GlobalVertex::VertexIter begin_vertexes() override { return _vtxs.begin(); }
0064 GlobalVertex::VertexIter find_vertexes(GlobalVertex::VTXTYPE type) override { return _vtxs.find(type); }
0065 GlobalVertex::VertexIter end_vertexes() override { return _vtxs.end(); }
0066
0067 private:
0068 unsigned int _id{std::numeric_limits<unsigned int>::max()};
0069 unsigned int _bco{std::numeric_limits<unsigned int>::max()};
0070 std::map<GlobalVertex::VTXTYPE, VertexVector> _vtxs;
0071
0072 ClassDefOverride(GlobalVertexv2, 2);
0073 };
0074
0075 #endif