Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-27 09:14:53

0001 // Parameterization of a resonant amplitude in the s-channel

0002 //

0003 // Author:       Daniel Winney (2020)

0004 // Affiliation:  Joint Physics Analysis Center (JPAC)

0005 // Email:        dwinney@iu.edu

0006 // ---------------------------------------------------------------------------

0007 
0008 #ifndef _RESONANCE_
0009 #define _RESONANCE_
0010 
0011 #include "amplitude.hpp"
0012 
0013 // ---------------------------------------------------------------------------

0014 // baryon_resonance class describes the amplitude corresponding to a narrow

0015 // (Breit-Wigner) resonance in the channel. It is parameterized in terms of

0016 // 3 functions:

0017 //

0018 // 1. Breit-Wigner pole for given mass and width

0019 // 2. Hadronic decay coupling to J/psi p final state

0020 // 3. Photo-excitation coupling to the gamma p initial state

0021 // ---------------------------------------------------------------------------

0022 
0023 namespace jpacPhoto
0024 {
0025     class baryon_resonance : public amplitude
0026     {
0027         public:
0028         // Constructor

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             // save momentum and other J^P dependent quantities

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         // Setting utility

0065         void set_params(std::vector<double> params)
0066         {
0067             check_nParams(params);
0068             _xBR = params[0];
0069             _photoR = params[1];
0070         };
0071 
0072         // Combined total amplitude including Breit Wigner pole

0073         std::complex<double> helicity_amplitude(std::array<int, 4> helicities, double s, double t);
0074 
0075         // only vector kinematics allowed

0076         inline std::vector<std::array<int,2>> allowedJP()
0077         {
0078             return {{1, -1}};
0079         };
0080 
0081         private:
0082 
0083         // Photoexcitation helicity amplitude for the process gamma p -> R

0084         std::complex<double> photo_coupling(int lam_i);
0085 
0086         // Hadronic decay helicity amplitude for the R -> J/psi p process

0087         std::complex<double> hadronic_coupling(int lam_f);
0088 
0089         // Ad-hoc threshold factor to kill the resonance at threshold

0090         double threshold_factor(double beta);
0091 
0092         int _resJ, _resP, _naturality; // (2xSpin) and parity of the resonance

0093         double _mRes, _gamRes; // Resonant mass and width

0094 
0095         int _lmin; // lowest allowed relative angular momentum

0096         double _pt; // Combinatorial factor due to only transverse polarized J/psi contribute

0097 
0098         // Couplings

0099         double _xBR; // Hadronic banching fraction to j/psi p

0100         double _photoR; // Photocoupling ratio

0101 
0102         // Initial and final CoM momenta evaluated at resonance energy.

0103         double _pibar, _pfbar;
0104 
0105         // saved energies and angle

0106         double _s, _t, _theta;
0107     };
0108 };
0109 #endif