Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Vertex.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file Vertex.h
1 #ifndef VERTEX_H
2 #define VERTEX_H
3 
4 #include <phool/PHObject.h>
5 #include <cmath>
6 #include <iostream>
7 #include <climits>
8 #include <set>
9 #include <vector>
10 
11 class Vertex : public PHObject
12 {
13  public:
14  typedef std::set<unsigned int> TrackSet;
15  typedef std::set<unsigned int>::const_iterator ConstTrackIter;
16  typedef std::set<unsigned int>::iterator TrackIter;
17 
18  ~Vertex() override {}
19 
20  //PHObject virtual overloads
21 
22  void identify(std::ostream& os = std::cout) const override { os << "Vertex base class" << std::endl; }
23  PHObject* CloneMe() const override { return nullptr; }
24  int isValid() const override { return 0; }
25 
26  //vertex info
27 
28  virtual unsigned int get_id() const { return 0xFFFFFFFF; }
29  virtual void set_id(unsigned int) {}
30 
31  virtual float get_t() const { return NAN; }
32  virtual void set_t(float) {}
33 
34  // Interface functions to maintain backwards compatibility with svtxvertex_v1
35  virtual float get_t0() const { return get_t(); }
36  virtual void set_t0(float t0) { set_t(t0); }
37 
38  virtual float get_t_err() const { return NAN; }
39  virtual void set_t_err(float) {}
40 
41  virtual float get_x() const { return NAN; }
42  virtual void set_x(float) {}
43 
44  virtual float get_y() const { return NAN; }
45  virtual void set_y(float) {}
46 
47  virtual float get_z() const { return NAN; }
48  virtual void set_z(float) {}
49 
50  virtual float get_chisq() const { return NAN; }
51  virtual void set_chisq(float) {}
52 
53  virtual unsigned int get_ndof() const { return UINT_MAX; }
54  virtual void set_ndof(unsigned int) {}
55 
56  virtual float get_position(unsigned int) const { return NAN; }
57  virtual void set_position(unsigned int /*coor*/, float /*xi*/) {}
58 
59  virtual float get_error(unsigned int /*i*/, unsigned int /*j*/) const { return NAN; }
60  virtual void set_error(unsigned int /*i*/, unsigned int /*j*/, float /*value*/) {}
61 
62  //beam crossing methods
63  virtual unsigned int get_beam_crossing() const { return UINT_MAX; }
64  virtual void set_beam_crossing(unsigned int) {}
65 
66  //bbcvertex methods
67  virtual void set_bbc_ns(int, int, float, float) {}
68  virtual int get_bbc_npmt(int) const { return std::numeric_limits<int>::max(); }
69  virtual float get_z_err() const { return NAN; }
70  virtual void set_z_err(float) {}
71 
72  virtual float get_bbc_q(int) const { return NAN; }
73  virtual float get_bbc_t(int) const { return NAN; }
74 
75  //svtxvertex methods
76  virtual void clear_tracks() {}
77  virtual bool empty_tracks() { return true; }
78  virtual size_t size_tracks() const { return 0; }
79  virtual void insert_track(unsigned int /*trackid*/) {}
80  virtual size_t erase_track(unsigned int /*trackid*/) { return 0; }
81  virtual ConstTrackIter begin_tracks() const;
82  virtual ConstTrackIter find_track(unsigned int trackid) const;
83  virtual ConstTrackIter end_tracks() const;
84  virtual TrackIter begin_tracks();
85  virtual TrackIter find_track(unsigned int trackid);
86  virtual TrackIter end_tracks();
87 
88  private:
90 
91 };
92 
93 #endif