Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2026-04-02 08:12:46

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef GLOBALVERTEX_GLOBALVERTEXV3_H
0004 #define GLOBALVERTEX_GLOBALVERTEXV3_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 GlobalVertexv3 : public GlobalVertex
0016 {
0017  public:
0018   GlobalVertexv3() = default;
0019   GlobalVertexv3(const unsigned int id);
0020   ~GlobalVertexv3() override;
0021 
0022   // PHObject virtual overloads
0023   void identify(std::ostream& os = std::cout) const override;
0024   void Reset() override;
0025   int isValid() const override;
0026   PHObject* CloneMe() const override { return new GlobalVertexv3(*this); }
0027 
0028   unsigned int get_id() const override { return _id; }
0029   void set_id(unsigned int id) override { _id = id; }
0030 
0031   short int get_beam_crossing() const override { return _bco; }
0032   void set_beam_crossing(short int bco) override { _bco = bco; }
0033 
0034   float get_t() const override;
0035   float get_t_err() const override;
0036   float get_x() const override;
0037   float get_y() const override;
0038   float get_z() const override;
0039   float get_chisq() const override;
0040   unsigned int get_ndof() const override;
0041   float get_position(unsigned int coor) const override;
0042   float get_error(unsigned int i, unsigned int j) const override;
0043 
0044   //
0045   // associated vertex methods
0046   //
0047   bool empty_vtxs() const override { return _vtxs.empty(); }
0048   size_t size_vtxs() const override { return _vtxs.size(); }
0049   size_t count_vtxs(GlobalVertex::VTXTYPE type) const override;
0050 
0051   void clear_vtxs() override { _vtxs.clear(); }
0052   void insert_vtx(GlobalVertex::VTXTYPE type, const Vertex* vertex) override;
0053   void clone_insert_vtx(GlobalVertex::VTXTYPE type, const Vertex* vertex) override;
0054   size_t erase_vtxs(GlobalVertex::VTXTYPE type) override { return _vtxs.erase(type); }
0055   void erase_vtxs(GlobalVertex::VertexIter iter) override { _vtxs.erase(iter); }
0056 
0057   GlobalVertex::ConstVertexIter begin_vertexes() const override { return _vtxs.begin(); }
0058   GlobalVertex::ConstVertexIter find_vertexes(GlobalVertex::VTXTYPE type) const override { return _vtxs.find(type); }
0059   GlobalVertex::ConstVertexIter end_vertexes() const override { return _vtxs.end(); }
0060 
0061   GlobalVertex::VertexIter begin_vertexes() override { return _vtxs.begin(); }
0062   GlobalVertex::VertexIter find_vertexes(GlobalVertex::VTXTYPE type) override { return _vtxs.find(type); }
0063   GlobalVertex::VertexIter end_vertexes() override { return _vtxs.end(); }
0064 
0065  private:
0066   unsigned int _id{std::numeric_limits<unsigned int>::max()};
0067   short int _bco{std::numeric_limits<short int>::max()};          //< global bco (signed short)
0068   std::map<GlobalVertex::VTXTYPE, VertexVector> _vtxs;            //< list of vtxs
0069 
0070   ClassDefOverride(GlobalVertexv3, 3);
0071 };
0072 
0073 #endif