Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GlobalVertexv2.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file GlobalVertexv2.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef G4VERTEX_GLOBALVERTEXV2_H
4 #define G4VERTEX_GLOBALVERTEXV2_H
5 
6 #include "GlobalVertex.h"
7 
8 #include <cstddef> // for size_t
9 #include <iostream>
10 #include <limits>
11 #include <map>
12 #include <utility> // for pair, make_pair
13 
14 class PHObject;
15 
17 {
18  public:
20  GlobalVertexv2(const unsigned int id);
21  ~GlobalVertexv2() override = default;
22 
23  // PHObject virtual overloads
24 
25  void identify(std::ostream& os = std::cout) const override;
26  void Reset() override { *this = GlobalVertexv2(); }
27  int isValid() const override;
28  PHObject* CloneMe() const override { return new GlobalVertexv2(*this); }
29 
30  unsigned int get_id() const override { return _id; }
31  void set_id(unsigned int id) override { _id = id; }
32 
33  unsigned int get_beam_crossing() const override { return _bco; }
34  void set_beam_crossing(unsigned int bco) override { _bco = bco; }
35 
36  float get_t() const override;
37  float get_t_err() const override;
38  float get_x() const override;
39  float get_y() const override;
40  float get_z() const override;
41  float get_chisq() const override;
42  unsigned int get_ndof() const override;
43  float get_position(unsigned int coor) const override;
44  float get_error(unsigned int i, unsigned int j) const override;
45 
46 
47  //
48  // associated vertex methods
49  //
50 
51  bool empty_vtxs() const override { return _vtxs.empty(); }
52  size_t size_vtxs() const override { return _vtxs.size(); }
53  size_t count_vtxs(GlobalVertex::VTXTYPE type) const override;
54 
55  void clear_vtxs() override { _vtxs.clear(); }
56  void insert_vtx(GlobalVertex::VTXTYPE type, const Vertex* vertex) override;
57  size_t erase_vtxs(GlobalVertex::VTXTYPE type) override { return _vtxs.erase(type); }
58  void erase_vtxs(GlobalVertex::VertexIter iter) override { _vtxs.erase(iter); }
59 
60  GlobalVertex::ConstVertexIter begin_vertexes() const override { return _vtxs.begin(); }
62  GlobalVertex::ConstVertexIter end_vertexes() const override { return _vtxs.end(); }
63 
64  GlobalVertex::VertexIter begin_vertexes() override { return _vtxs.begin(); }
66  GlobalVertex::VertexIter end_vertexes() override { return _vtxs.end(); }
67 
68  private:
69  unsigned int _id;
70  unsigned int _bco; //< global bco
71  std::map<GlobalVertex::VTXTYPE, VertexVector> _vtxs; //< list of vtxs
72 
74 };
75 
76 #endif