22 #include "marley/DecayScheme.hh"
23 #include "marley/MassTable.hh"
24 #include "marley/OpticalModel.hh"
25 #include "marley/marley_utils.hh"
46 = DEFAULT_NUMEROV_STEP_SIZE_);
49 double fragment_KE_lab,
int fragment_pdg,
int two_j,
int l,
int two_s,
50 int target_charge = 0)
override;
53 int fragment_pdg,
int two_j,
int l,
int two_s,
int target_charge = 0)
57 int fragment_pdg,
int two_s,
size_t l_max,
int target_charge = 0)
63 double total_CM_frame_KE_;
65 double fragment_mass_;
68 double fragment_KE_lab_;
70 double CM_frame_momentum_squared_;
79 std::complex<double> s_matrix_element(
int fragment_pdg,
int two_j,
83 void calculate_om_parameters(
int fragment_pdg,
int two_j,
int l,
87 std::complex<double> omp(
double r)
const;
91 std::complex<double> omp_minus_Vc(
double r)
const;
94 double f(
double r,
double R,
double a)
const;
97 double dfdr(
double r,
double R,
double a)
const;
101 double Vc(
double r,
double R,
int Q,
int q)
const;
105 std::complex<double> a(
double r,
int l);
109 std::complex<double> a(
double r,
int l, std::complex<double> U)
const;
112 double v1n, v2n, v3n, v4n, w1n, w2n, d1n, d2n, d3n, vso1n, vso2n;
113 double wso1n, wso2n, Efn, Rvn, avn, Rdn, adn, Rso_n, aso_n;
115 double v1p, v2p, v3p, v4p, w1p, w2p, d1p, d2p, d3p, vso1p, vso2p;
116 double wso1p, wso2p, Efp, Vcbar_p, Rvp, avp, Rdp, adp, Rso_p, aso_p;
121 static constexpr
double mpiplus = 139.57018;
123 static constexpr
double lambda_piplus2 = (marley_utils::hbar_c
124 / mpiplus) * (marley_utils::hbar_c / mpiplus);
127 double Rv, av, Rd, ad, Rso, aso;
128 double Vv, Wv, Wd, Vso, Wso;
129 double spin_orbit_eigenvalue;
134 static constexpr
double MATCHING_RADIUS_THRESHOLD = 1e-3;
138 double step_size_ = DEFAULT_NUMEROV_STEP_SIZE_;
146 static constexpr
double DEFAULT_NUMEROV_STEP_SIZE_ = 0.1;
149 void calculate_kinematic_variables(
double KE_tot_CM,
int fragment_pdg);
150 void update_target_mass(
int target_charge);
Nuclear optical model for fragment emission calculations.
Definition: KoningDelarocheOpticalModel.hh:37
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)
Definition: KoningDelarocheOpticalModel.cc:25
virtual double transmission_coefficient(double total_KE_CM, int fragment_pdg, int two_j, int l, int two_s, int target_charge=0) override
Calculate the transmission coefficient for a nuclear fragment.
Definition: KoningDelarocheOpticalModel.cc:292
KoningDelarocheOpticalModel(int Z, int A, double step_size=DEFAULT_NUMEROV_STEP_SIZE_)
Definition: KoningDelarocheOpticalModel.cc:194
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.
Definition: KoningDelarocheOpticalModel.cc:256
Abstract base class for nuclear optical model implementations.
Definition: OpticalModel.hh:23
int A() const
Get the mass number.
Definition: OpticalModel.hh:97
int Z() const
Get the atomic number.
Definition: OpticalModel.hh:95