File indexing completed on 2026-09-27 09:14:53
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef _RESONANCE_
0009 #define _RESONANCE_
0010
0011 #include "amplitude.hpp"
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 namespace jpacPhoto
0024 {
0025 class baryon_resonance : public amplitude
0026 {
0027 public:
0028
0029 baryon_resonance(reaction_kinematics * xkinem, int j, int p, double mass, double width, std::string name = "baryon_resonance")
0030 : amplitude(xkinem, name),
0031 _mRes(mass), _gamRes(width),
0032 _resJ(j), _resP(p), _naturality(p * pow(-1, (j-1)/2))
0033 {
0034 set_nParams(2);
0035 check_JP(xkinem->_jp);
0036
0037
0038 _pibar = real(xkinem->_initial_state->momentum(mass * mass));
0039 _pfbar = real(xkinem->_final_state->momentum(mass * mass));
0040
0041 if (abs(p) != 1)
0042 {
0043 std::cout << "Invalid parity " << p << " passed to " << name << ". Quitting...\n";
0044 exit(0);
0045 };
0046 switch (p * j)
0047 {
0048 case 1: {_lmin = 0; _pt = 2./3.; break;}
0049 case -1: {_lmin = 1; _pt = 3./5.; break;}
0050 case 3: {_lmin = 1; _pt = 3./5.; break;}
0051 case -3: {_lmin = 0; _pt = 2./3.; break;}
0052 case 5: {_lmin = 1; _pt = 3./5.; break;}
0053 case -5: {_lmin = 2; _pt = 1./3.; break;}
0054
0055 default:
0056 {
0057 std::cout << "\nbaryon_resonance: spin-parity combination for J = " << j << "/2 and p = " << p << " not available. ";
0058 std::cout << "Quiting... \n";
0059 exit(0);
0060 }
0061 };
0062 };
0063
0064
0065 void set_params(std::vector<double> params)
0066 {
0067 check_nParams(params);
0068 _xBR = params[0];
0069 _photoR = params[1];
0070 };
0071
0072
0073 std::complex<double> helicity_amplitude(std::array<int, 4> helicities, double s, double t);
0074
0075
0076 inline std::vector<std::array<int,2>> allowedJP()
0077 {
0078 return {{1, -1}};
0079 };
0080
0081 private:
0082
0083
0084 std::complex<double> photo_coupling(int lam_i);
0085
0086
0087 std::complex<double> hadronic_coupling(int lam_f);
0088
0089
0090 double threshold_factor(double beta);
0091
0092 int _resJ, _resP, _naturality;
0093 double _mRes, _gamRes;
0094
0095 int _lmin;
0096 double _pt;
0097
0098
0099 double _xBR;
0100 double _photoR;
0101
0102
0103 double _pibar, _pfbar;
0104
0105
0106 double _s, _t, _theta;
0107 };
0108 };
0109 #endif