Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // Class for dirac spinors for the spin-1/2 nucleon

0002 //

0003 // Author:       Daniel Winney (2019)

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

0005 // Email:        dwinney@iu.edu

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

0007 
0008 #ifndef _SPINOR_
0009 #define _SPINOR_
0010 
0011 #include <cmath>
0012 #include <complex>
0013 
0014 #include "constants.hpp"
0015 #include "gamma_matrices.hpp"
0016 #include "two_body_state.hpp"
0017 
0018 // ---------------------------------------------------------------------------

0019 // The dirac_spinor object is exactly as it sounds. :)

0020 // Spin-1/2 particles are assumed always particle 2.

0021 //

0022 // That being said, particle 2 phase is already included in definition but

0023 // angle pi for the - z direction is not!

0024 // ---------------------------------------------------------------------------

0025 
0026 namespace jpacPhoto
0027 {
0028     class dirac_spinor
0029     {
0030         public:
0031 
0032         // Constructor

0033         dirac_spinor(two_body_state * xstate, bool if_anti = false)
0034         : _state(xstate), _antiParticle(if_anti)
0035         {};
0036 
0037         // Default destructor

0038         ~dirac_spinor(){};
0039 
0040         // Components

0041         std::complex<double> component(int i, int lambda, double s, double theta);
0042         std::complex<double> adjoint_component(int i, int lambda, double s, double theta);
0043 
0044         private:
0045 
0046         // masses, energies, and momenta

0047         two_body_state * _state;
0048 
0049         //Whether its an anti-particle or not

0050         const bool _antiParticle = false;
0051 
0052         // Energy component

0053         std::complex<double> omega(int sign, double s);
0054 
0055         // angular component

0056         double half_angle(int lam, double theta);
0057     };
0058 };
0059 
0060 #endif