Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:17:38

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
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   // PHObject virtual overloads
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   // associated vertex methods
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()};  //< global bco
0070   std::map<GlobalVertex::VTXTYPE, VertexVector> _vtxs;          //< list of vtxs
0071 
0072   ClassDefOverride(GlobalVertexv2, 2);
0073 };
0074 
0075 #endif