Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2026-08-31 08:21:24

0001 #ifndef TPCTRACKRECO_TPCCROSSINGDECISIONV1_H
0002 #define TPCTRACKRECO_TPCCROSSINGDECISIONV1_H
0003 
0004 
0005 #include "TpcCrossingDecision.h"
0006 
0007 #include <iostream>
0008 #include <limits>
0009 
0010 class TpcCrossingDecisionv1 : public TpcCrossingDecision
0011 {
0012  public:
0013   TpcCrossingDecisionv1();
0014   ~TpcCrossingDecisionv1() override = default;
0015 
0016   void identify(std::ostream& os = std::cout) const override;
0017   void Reset() override;
0018   int isValid() const override;
0019   PHObject* CloneMe() const override { return new TpcCrossingDecisionv1(*this); }
0020 
0021   unsigned int get_assembled_track_id() const override { return m_assembled_track_id; }
0022   void set_assembled_track_id(unsigned int v) override { m_assembled_track_id = v; }
0023 
0024   short get_selected_crossing() const override { return m_selected_crossing; }
0025   void set_selected_crossing(short v) override { m_selected_crossing = v; }
0026 
0027   unsigned int get_silicon_vertex_id() const override { return m_silicon_vertex_id; }
0028   void set_silicon_vertex_id(unsigned int v) override { m_silicon_vertex_id = v; }
0029 
0030   float get_tpc_z0() const override { return m_tpc_z0; }
0031   void set_tpc_z0(float v) override { m_tpc_z0 = v; }
0032 
0033   float get_silicon_vertex_z() const override { return m_silicon_vertex_z; }
0034   void set_silicon_vertex_z(float v) override { m_silicon_vertex_z = v; }
0035 
0036   float get_delta_z() const override { return m_delta_z; }
0037   void set_delta_z(float v) override { m_delta_z = v; }
0038 
0039   float get_best_abs_delta_z() const override { return m_best_abs_delta_z; }
0040   void set_best_abs_delta_z(float v) override { m_best_abs_delta_z = v; }
0041 
0042   float get_second_best_abs_delta_z() const override { return m_second_best_abs_delta_z; }
0043   void set_second_best_abs_delta_z(float v) override { m_second_best_abs_delta_z = v; }
0044 
0045   unsigned char get_selected_tier() const override { return m_selected_tier; }
0046   void set_selected_tier(unsigned char v) override { m_selected_tier = v; }
0047 
0048   float get_selected_score() const override { return m_selected_score; }
0049   void set_selected_score(float v) override { m_selected_score = v; }
0050 
0051   unsigned short get_number_of_available_crossings() const override { return m_number_of_available_crossings; }
0052   void set_number_of_available_crossings(unsigned short v) override { m_number_of_available_crossings = v; }
0053 
0054   unsigned short get_number_of_allowed_crossings() const override { return m_number_of_allowed_crossings; }
0055   void set_number_of_allowed_crossings(unsigned short v) override { m_number_of_allowed_crossings = v; }
0056 
0057   unsigned short get_number_of_tested_crossings() const override { return m_number_of_tested_crossings; }
0058   void set_number_of_tested_crossings(unsigned short v) override { m_number_of_tested_crossings = v; }
0059 
0060   unsigned short get_number_of_tpc_valid_crossings() const override { return m_number_of_tpc_valid_crossings; }
0061   void set_number_of_tpc_valid_crossings(unsigned short v) override { m_number_of_tpc_valid_crossings = v; }
0062 
0063   unsigned short get_number_of_vertex_compatible_crossings() const override { return m_number_of_vertex_compatible_crossings; }
0064   void set_number_of_vertex_compatible_crossings(unsigned short v) override { m_number_of_vertex_compatible_crossings = v; }
0065 
0066   unsigned int get_number_of_candidates() const override { return m_candidates.size(); }
0067   const TpcCrossingCandidate* get_candidate(unsigned int index) const override { return index < m_candidates.size() ? &m_candidates[index] : nullptr; }
0068   void add_candidate(const TpcCrossingCandidate& candidate) override { m_candidates.push_back(candidate); }
0069   void clear_candidates() override { m_candidates.clear(); }
0070 
0071   unsigned char get_status() const override { return m_status; }
0072   void set_status(unsigned char v) override { m_status = v; }
0073   void set_status(TpcCrossingStatus status) override { set_status(static_cast<unsigned char>(status)); }
0074 
0075  private:
0076   static float nan() { return std::numeric_limits<float>::quiet_NaN(); }
0077 
0078   unsigned int m_assembled_track_id {0};
0079   short m_selected_crossing {std::numeric_limits<short>::max()};
0080   unsigned int m_silicon_vertex_id {std::numeric_limits<unsigned int>::max()};
0081   float m_tpc_z0 {nan()};
0082   float m_silicon_vertex_z {nan()};
0083   float m_delta_z {nan()};
0084   float m_best_abs_delta_z {nan()};
0085   float m_second_best_abs_delta_z {nan()};
0086   unsigned char m_selected_tier {std::numeric_limits<unsigned char>::max()};
0087   float m_selected_score {nan()};
0088   unsigned short m_number_of_available_crossings {0};
0089   unsigned short m_number_of_allowed_crossings {0};
0090   unsigned short m_number_of_tested_crossings {0};
0091   unsigned short m_number_of_tpc_valid_crossings {0};
0092   unsigned short m_number_of_vertex_compatible_crossings {0};
0093   std::vector<TpcCrossingCandidate> m_candidates;
0094   unsigned char m_status {static_cast<unsigned char>(TpcCrossingStatus::Unknown)};
0095 
0096   ClassDefOverride(TpcCrossingDecisionv1, 3)
0097 };
0098 
0099 #endif  // TPCTRACKRECO_TPCCROSSINGDECISIONV1_H