Back to home page

sPhenix code displayed by LXR

 
 

    


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   // PHObject virtual overloads
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   // vertex info
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()};  //< unique identifier within container
0052   float _t{std::numeric_limits<float>::quiet_NaN()};          //< collision time
0053   float _t_err{std::numeric_limits<float>::quiet_NaN()};      //< collision time uncertainty
0054   float _z{std::numeric_limits<float>::quiet_NaN()};          //< collision position z
0055   float _z_err{std::numeric_limits<float>::quiet_NaN()};      //< collision position z uncertainty
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