Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef GLOBALVERTEX_VERTEX_H
0004 #define GLOBALVERTEX_VERTEX_H
0005 
0006 #include <phool/PHObject.h>
0007 
0008 #include <cstddef>
0009 #include <iostream>
0010 #include <limits>
0011 #include <set>
0012 
0013 class Vertex : public PHObject
0014 {
0015  public:
0016   typedef std::set<unsigned int> TrackSet;
0017   typedef std::set<unsigned int>::const_iterator ConstTrackIter;
0018   typedef std::set<unsigned int>::iterator TrackIter;
0019 
0020   ~Vertex() override = default;
0021 
0022   // PHObject virtual overloads
0023 
0024   void identify(std::ostream& os = std::cout) const override { os << "Vertex base class" << std::endl; }
0025   PHObject* CloneMe() const override { return nullptr; }
0026   int isValid() const override { return 0; }
0027 
0028   // vertex info
0029 
0030   virtual unsigned int get_id() const { return std::numeric_limits<unsigned int>::max(); }
0031   virtual void set_id(unsigned int) {}
0032 
0033   virtual float get_t() const { return std::numeric_limits<float>::quiet_NaN(); }
0034   virtual void set_t(float) {}
0035 
0036   // Interface functions to maintain backwards compatibility with svtxvertex_v1
0037   virtual float get_t0() const { return get_t(); }
0038   virtual void set_t0(float t0) { set_t(t0); }
0039 
0040   virtual float get_t_err() const { return std::numeric_limits<float>::quiet_NaN(); }
0041   virtual void set_t_err(float) {}
0042 
0043   virtual float get_x() const { return std::numeric_limits<float>::quiet_NaN(); }
0044   virtual void set_x(float) {}
0045 
0046   virtual float get_y() const { return std::numeric_limits<float>::quiet_NaN(); }
0047   virtual void set_y(float) {}
0048 
0049   virtual float get_z() const { return std::numeric_limits<float>::quiet_NaN(); }
0050   virtual void set_z(float) {}
0051 
0052   virtual float get_chisq() const { return std::numeric_limits<float>::quiet_NaN(); }
0053   virtual void set_chisq(float) {}
0054 
0055   virtual unsigned int get_ndof() const { return std::numeric_limits<unsigned int>::max(); }
0056   virtual void set_ndof(unsigned int) {}
0057 
0058   virtual float get_position(unsigned int) const { return std::numeric_limits<float>::quiet_NaN(); }
0059   virtual void set_position(unsigned int /*coor*/, float /*xi*/) {}
0060 
0061   virtual float get_error(unsigned int /*i*/, unsigned int /*j*/) const { return std::numeric_limits<float>::quiet_NaN(); }
0062   virtual void set_error(unsigned int /*i*/, unsigned int /*j*/, float /*value*/) {}
0063 
0064   // beam crossing methods
0065   virtual unsigned int get_beam_crossing() const { return std::numeric_limits<unsigned int>::max(); }
0066   virtual void set_beam_crossing(unsigned int) {}
0067 
0068   // bbcvertex methods
0069   virtual void set_bbc_ns(int, int, float, float) {}
0070   virtual int get_bbc_npmt(int) const { return std::numeric_limits<int>::max(); }
0071   virtual float get_z_err() const { return std::numeric_limits<float>::quiet_NaN(); }
0072   virtual void set_z_err(float) {}
0073 
0074   virtual float get_bbc_q(int) const { return std::numeric_limits<float>::quiet_NaN(); }
0075   virtual float get_bbc_t(int) const { return std::numeric_limits<float>::quiet_NaN(); }
0076 
0077   // svtxvertex methods
0078   virtual void clear_tracks() {}
0079   virtual bool empty_tracks() { return true; }
0080   virtual size_t size_tracks() const { return 0; }
0081   virtual void insert_track(unsigned int /*trackid*/) {}
0082   virtual size_t erase_track(unsigned int /*trackid*/) { return 0; }
0083   virtual ConstTrackIter begin_tracks() const;
0084   virtual ConstTrackIter find_track(unsigned int trackid) const;
0085   virtual ConstTrackIter end_tracks() const;
0086   virtual TrackIter begin_tracks();
0087   virtual TrackIter find_track(unsigned int trackid);
0088   virtual TrackIter end_tracks();
0089 
0090  protected:
0091   Vertex() = default;
0092 
0093  private:
0094   ClassDefOverride(Vertex, 1);
0095 };
0096 
0097 #endif