File indexing completed on 2025-04-19 09:10:04
0001 #ifndef HADRONS_Current_Library_VA_0_PPP_H
0002 #define HADRONS_Current_Library_VA_0_PPP_H
0003
0004 #include "HADRONS++/Current_Library/Current_Base.H"
0005 #include "HADRONS++/PS_Library/ResonanceFlavour.H"
0006 #include "HADRONS++/Main/Tools.H"
0007
0008 namespace HADRONS {
0009 class VA_0_PPP : public Current_Base {
0010
0011 class FF_Base {
0012 double m_ms[3];
0013
0014 protected :
0015
0016 ResonanceFlavour m_A, m_AA, m_V[2], m_VV[2];
0017 double m_alpha, m_Beta[2];
0018
0019
0020 double m_fpi2;
0021 int m_mode, m_kaon_mode;
0022 bool m_deltas;
0023
0024 public :
0025 FF_Base(int mode, int kaon_mode, GeneralModel _md, double * ms );
0026 virtual ~FF_Base();
0027 virtual Complex FormFactor( int, double, double, double ) = 0;
0028 inline double Mass2(int i) { return m_ms[i]; }
0029 };
0030
0031
0032 class RChT : public FF_Base {
0033
0034 private:
0035 double MassWidthVector( double s );
0036 double MassWidthVector( int a, double s );
0037 double MassWidthAxial( double Q2 );
0038
0039 double FFunc( double, double, double );
0040
0041
0042 double m_MO, m_MO2, m_GO;
0043 double m_gammaR;
0044
0045
0046 double m_l0, m_exp_alpha;
0047 double m_m, m_m2, m_mK2;
0048 double m_GV, m_FV, m_FV2;
0049 double m_FA, m_FA2;
0050 double m_lsum;
0051 double m_l1, m_l2;
0052
0053 public:
0054 RChT(int mode, int kaon_mode, GeneralModel _md, double * _ms);
0055 ~RChT() {}
0056 Complex FormFactor( int, double, double, double );
0057 };
0058
0059 class KS : public FF_Base {
0060
0061
0062 private:
0063 bool m_G123;
0064 double m_X123, m_ms123;
0065
0066
0067 ResonanceFlavour m_AnoV, m_AnoVV, m_AnoVVV;
0068 double m_BetaV[2];
0069 double m_AlphaV;
0070
0071
0072 Complex BW_A( double s );
0073 Complex BW_V( int a, double s );
0074 Complex BW_VV( int a, double s );
0075 Complex Tvector1( int a, int b, double x );
0076 Complex Tvector2( int a, int b, double x );
0077 Complex TSvector( int a, int b, int c, double Q2, double s, double t );
0078 Complex Tgen( int a, int b, int c, double s, double t);
0079
0080 Complex BW_Vano( int a, double q2 );
0081 Complex T_V( double q2 );
0082 Complex T_V13V23( double s, double t );
0083
0084 public:
0085 KS(int mode, int kaon_mode, GeneralModel _md, double * _ms);
0086 ~KS() {}
0087 Complex FormFactor( int, double, double, double );
0088 };
0089
0090 class KS95 : public FF_Base {
0091
0092 private:
0093
0094 ResonanceFlavour m_V_VectorFF, m_VV_VectorFF, m_VVV_VectorFF;
0095 ResonanceFlavour m_Omega_VectorFF, m_Phi_VectorFF;
0096 double m_beta_VectorFF, m_gamma_VectorFF, m_eps_VectorFF;
0097
0098
0099 Complex Axial(double q2);
0100 Complex TVector(int i, double s);
0101 Complex TOmega(double s);
0102 Complex Vector(int i, double s, double u);
0103 Complex G3(double q2, double s, double t, double u );
0104
0105 public:
0106 KS95(int mode, int kaon_mode, GeneralModel _md, double * _ms);
0107 ~KS95() {}
0108 Complex FormFactor( int, double, double, double );
0109 };
0110
0111 int m_pseudo_3, m_pseudo_1, m_pseudo_2;
0112 double m_Vud, m_Vus;
0113 double m_ms[3];
0114 int m_mode, m_kaon_mode;
0115 double m_global, m_B123;
0116 FF_Base * p_ff;
0117
0118 public:
0119 VA_0_PPP(const ATOOLS::Flavour_Vector& flavs,
0120 const std::vector<int>& indices, const std::string& name);
0121 ~VA_0_PPP() {
0122 if (p_ff!=NULL) delete p_ff;
0123 }
0124 Complex FormFactor( int j, double Q2, double s, double t );
0125 void SetModelParameters( struct GeneralModel _md );
0126 void Calc(const ATOOLS::Vec4D_Vector& moms, bool m_anti);
0127 };
0128 }
0129 #endif