@@ -32,17 +32,49 @@ class Eventplaneinfov2 : public Eventplaneinfo
3232 void set_qvector_raw (const std::vector<std::pair<double , double >>& Qvec) override { mQvec_raw = Qvec; }
3333 void set_qvector_recentered (const std::vector<std::pair<double , double >>& Qvec) override { mQvec_recentered = Qvec; }
3434 void set_shifted_psi (std::vector<double > Psi_Shifted) override { mPsi_Shifted = Psi_Shifted; }
35- std::pair<double , double > get_qvector (int order) const override { return std::make_pair (mQvec [order - 1 ]. first , mQvec [ order - 1 ]. second ); }
36- std::pair<double , double > get_qvector_raw (int order) const override { return std::make_pair (mQvec_raw [order - 1 ]. first , mQvec_raw [ order - 1 ]. second ); }
37- std::pair<double , double > get_qvector_recentered (int order) const override { return std::make_pair (mQvec_recentered [order - 1 ]. first , mQvec_recentered [ order - 1 ]. second ); }
35+ std::pair<double , double > get_qvector (int order) const override { return safe_qvec (mQvec , order); }
36+ std::pair<double , double > get_qvector_raw (int order) const override { return safe_qvec (mQvec_raw , order); }
37+ std::pair<double , double > get_qvector_recentered (int order) const override { return safe_qvec (mQvec_recentered , order); }
3838 void set_ring_qvector (std::vector<std::vector<std::pair<double , double >>> Qvec) override { ring_Qvec = Qvec; }
39- std::pair<double , double > get_ring_qvector (int ring_index, int order) const override { return ring_Qvec[ring_index][order - 1 ]; }
40- double get_ring_psi (int ring_index, int order) const override {return GetPsi (ring_Qvec[ring_index][order - 1 ].first ,ring_Qvec[ring_index][order - 1 ].second ,order);}
39+ std::pair<double , double > get_ring_qvector (int ring_index, int order) const override
40+ {
41+ if (ring_index < 0 || static_cast <size_t >(ring_index) >= ring_Qvec.size ())
42+ {
43+ return {NAN, NAN};
44+ }
45+ return safe_qvec (ring_Qvec[ring_index], order);
46+ }
47+ double get_ring_psi (int ring_index, int order) const override
48+ {
49+ auto q = get_ring_qvector (ring_index, order);
50+ return GetPsi (q.first , q.second , static_cast <unsigned int >(order));
51+ }
52+
4153 double GetPsi (double Qx, double Qy, unsigned int order) const override ;
42- double get_psi (int order) const override { return GetPsi (mQvec [order - 1 ].first , mQvec [order - 1 ].second , order);}
43- double get_shifted_psi (int order) const override { return mPsi_Shifted [order - 1 ]; }
44-
54+ double get_psi (int order) const override
55+ {
56+ auto q = get_qvector (order);
57+ return GetPsi (q.first , q.second , static_cast <unsigned int >(order));
58+ }
59+ double get_shifted_psi (int order) const override
60+ {
61+ if (order <= 0 || static_cast <size_t >(order) > mPsi_Shifted .size ())
62+ {
63+ return NAN;
64+ }
65+ return mPsi_Shifted [order - 1 ];
66+ }
67+
4568 private:
69+ static std::pair<double , double > safe_qvec (const std::vector<std::pair<double , double >>& v, int order)
70+ {
71+ if (order <= 0 || static_cast <size_t >(order) > v.size ())
72+ {
73+ return {NAN, NAN};
74+ }
75+ return v[order - 1 ];
76+ }
77+
4678 std::vector<std::pair<double , double >> mQvec ;
4779 std::vector<std::pair<double , double >> mQvec_raw ;
4880 std::vector<std::pair<double , double >> mQvec_recentered ;
0 commit comments