ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GlobalVertex.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file GlobalVertex.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef G4VERTEX_GLOBALVERTEX_H
4 #define G4VERTEX_GLOBALVERTEX_H
5 
6 #include <phool/PHObject.h>
7 
8 #include <cmath>
9 #include <iostream>
10 #include <map>
11 
12 class GlobalVertex : public PHObject
13 {
14  public:
15  enum VTXTYPE
16  {
17  NONE = 0,
18  BBC = 1,
19  SVTX = 2
20  };
21 
22  typedef std::map<GlobalVertex::VTXTYPE, unsigned int>::const_iterator ConstVtxIter;
23  typedef std::map<GlobalVertex::VTXTYPE, unsigned int>::iterator VtxIter;
24 
25  ~GlobalVertex() override {}
26 
27  // PHObject virtual overloads
28 
29  void identify(std::ostream& os = std::cout) const override
30  {
31  os << "GlobalVertex base class" << std::endl;
32  }
33  int isValid() const override { return 0; }
34  PHObject* CloneMe() const override { return nullptr; }
35 
36  // vertex info
37 
38  virtual unsigned int get_id() const { return 0xFFFFFFFF; }
39  virtual void set_id(unsigned int) {}
40 
41  virtual float get_t() const { return NAN; }
42  virtual void set_t(float) {}
43 
44  virtual float get_t_err() const { return NAN; }
45  virtual void set_t_err(float) {}
46 
47  virtual float get_x() const { return NAN; }
48  virtual void set_x(float) {}
49 
50  virtual float get_y() const { return NAN; }
51  virtual void set_y(float) {}
52 
53  virtual float get_z() const { return NAN; }
54  virtual void set_z(float) {}
55 
56  virtual float get_chisq() const { return NAN; }
57  virtual void set_chisq(float) {}
58 
59  virtual unsigned int get_ndof() const { return 0xFFFFFFFF; }
60  virtual void set_ndof(unsigned int) {}
61 
62  virtual float get_position(unsigned int /*coor*/) const { return NAN; }
63  virtual void set_position(unsigned int /*coor*/, float /*xi*/) {}
64 
65  virtual float get_error(unsigned int /*i*/, unsigned int /*j*/) const { return NAN; }
66  virtual void set_error(unsigned int /*i*/, unsigned int /*j*/, float /*value*/) {}
67 
68  //
69  // associated vertex ids methods
70  //
71  virtual bool empty_vtxids() const { return true; }
72  virtual size_t size_vtxids() const { return 0; }
73  virtual size_t count_vtxids(VTXTYPE /*type*/) const { return 0; }
74 
75  virtual void clear_vtxids() {}
76  virtual void insert_vtxids(VTXTYPE /*type*/, unsigned int /*vtxid*/) {}
77  virtual size_t erase_vtxids(VTXTYPE /*type*/) { return 0; }
78  virtual void erase_vtxids(VtxIter /*iter*/) {}
79  virtual void erase_vtxids(VtxIter /*first*/, VtxIter /*last*/) {}
80 
81  virtual ConstVtxIter begin_vtxids() const;
82  virtual ConstVtxIter find_vtxids(VTXTYPE type) const;
83  virtual ConstVtxIter end_vtxids() const;
84 
85  virtual VtxIter begin_vtxids();
86  virtual VtxIter find_vtxids(VTXTYPE type);
87  virtual VtxIter end_vtxids();
88 
89  protected:
91 
92  private:
94 };
95 
96 #endif