File indexing completed on 2025-08-06 08:17:50
0001 #ifndef G4BBC_BBCVERTEXV2_H
0002 #define G4BBC_BBCVERTEXV2_H
0003
0004 #include "BbcVertex.h"
0005
0006 #include <iostream>
0007 #include <limits>
0008
0009 class BbcVertexv2 : public BbcVertex
0010 {
0011 public:
0012 BbcVertexv2();
0013 ~BbcVertexv2() override = default;
0014
0015
0016
0017 void identify(std::ostream& os = std::cout) const override;
0018 void Reset() override { *this = BbcVertexv2(); }
0019 int isValid() const override;
0020 PHObject* CloneMe() const override { return new BbcVertexv2(*this); }
0021
0022
0023
0024 unsigned int get_id() const override { return _id; }
0025 void set_id(unsigned int id) override { _id = id; }
0026
0027 float get_t() const override { return _t; }
0028 void set_t(float t) override { _t = t; }
0029
0030 float get_t_err() const override { return _t_err; }
0031 void set_t_err(float t_err) override { _t_err = t_err; }
0032
0033 float get_z() const override { return _z; }
0034 void set_z(float z) override { _z = z; }
0035
0036 float get_z_err() const override { return _z_err; }
0037 void set_z_err(float z_err) override { _z_err = z_err; }
0038
0039 void set_bbc_ns(int iarm, int bbc_npmt, float bbc_q, float bbc_t) override
0040 {
0041 _bbc_ns_npmt[iarm] = bbc_npmt;
0042 _bbc_ns_q[iarm] = bbc_q;
0043 _bbc_ns_t[iarm] = bbc_t;
0044 }
0045
0046 int get_bbc_npmt(int iarm) const override { return _bbc_ns_npmt[iarm]; }
0047 float get_bbc_q(int iarm) const override { return _bbc_ns_q[iarm]; }
0048 float get_bbc_t(int iarm) const override { return _bbc_ns_t[iarm]; }
0049
0050 private:
0051 unsigned int _id{std::numeric_limits<unsigned int>::max()};
0052 float _t{std::numeric_limits<float>::quiet_NaN()};
0053 float _t_err{std::numeric_limits<float>::quiet_NaN()};
0054 float _z{std::numeric_limits<float>::quiet_NaN()};
0055 float _z_err{std::numeric_limits<float>::quiet_NaN()};
0056 int _bbc_ns_npmt[2]{};
0057 float _bbc_ns_q[2]{};
0058 float _bbc_ns_t[2]{};
0059
0060 ClassDefOverride(BbcVertexv2, 1);
0061 };
0062
0063 #endif