56 double fragment_KE_lab,
int fragment_pdg,
int two_j,
int l,
int two_s,
57 int target_charge = 0 )
override;
60 int fragment_pdg,
int two_s,
size_t l_max,
int target_charge = 0 )
63 virtual void print( std::ostream& out )
const override;
67 virtual double compute_transmission_coefficient(
double total_KE_CM,
68 int fragment_pdg,
int two_j,
int l,
int two_s,
int target_charge = 0 )
72 double total_CM_frame_KE_;
74 double fragment_mass_;
77 double fragment_KE_lab_;
79 double CM_frame_momentum_squared_;
88 std::complex< double > s_matrix_element(
int fragment_pdg,
int two_j,
92 void calculate_om_parameters(
int fragment_pdg,
int two_j,
int l,
96 std::complex< double > omp(
double r )
const;
100 std::complex< double > omp_minus_Vc(
double r )
const;
103 double f(
double r,
double R,
double a )
const;
106 double dfdr(
double r,
double R,
double a )
const;
110 double Vc(
double r,
double R,
int Q,
int q )
const;
114 std::complex< double > a(
double r,
int l );
118 std::complex< double > a(
double r,
int l,
119 std::complex< double > U )
const;
122 double v1n, v2n, v3n, v4n, w1n, w2n, d1n, d2n, d3n, vso1n, vso2n;
123 double wso1n, wso2n, Efn, Rvn, avn, Rdn, adn, Rso_n, aso_n;
125 double v1p, v2p, v3p, v4p, w1p, w2p, d1p, d2p, d3p, vso1p, vso2p;
126 double wso1p, wso2p, Efp, Vcbar_p, Rvp, avp, Rdp, adp, Rso_p, aso_p;
131 static constexpr double mpiplus = 139.57018;
133 static constexpr double lambda_piplus2 = ( marley_utils::hbar_c
134 / mpiplus ) * ( marley_utils::hbar_c / mpiplus );
137 double Rv, av, Rd, ad, Rso, aso;
138 double Vv, Wv, Wd, Vso, Wso;
139 double spin_orbit_eigenvalue;
144 static constexpr double MATCHING_RADIUS_THRESHOLD = 1e-3;
148 double step_size_ = DEFAULT_NUMEROV_STEP_SIZE_;
156 static constexpr double DEFAULT_NUMEROV_STEP_SIZE_ = 0.1;
159 void calculate_kinematic_variables(
double KE_tot_CM,
int fragment_pdg );
160 void update_target_mass(
int target_charge );
virtual std::complex< double > optical_model_potential(double r, double fragment_KE_lab, int fragment_pdg, int two_j, int l, int two_s, int target_charge=0) override
Calculate the optical model potential (including the Coulomb potential)
virtual double total_cross_section(double fragment_KE_lab, int fragment_pdg, int two_s, size_t l_max, int target_charge=0) override
Compute the energy-averaged total cross section (MeV -2) for a nuclear fragment projectile.