Observables and workspaces¶
The xs submodule contains the Workspace classes which are used to compute observables.
Elastic-scattering observables built from the R-matrix solver.
- class jitr.xs.elastic.ElasticXS(dsdo, Ay, Q, t, rxn)[source]¶
Bases:
objectContainer for elastic-scattering observables.
- Variables:
dsdo – Differential cross section in mb/sr.
Ay – Analyzing power.
Q – Spin-rotation function.
t – Total cross section in mb.
rxn – Reaction cross section in mb.
- Parameters:
- t: float64¶
- rxn: float64¶
- class jitr.xs.elastic.IntegralWorkspace(reaction, kinematics, channel_radius_fm, solver, lmax, smatrix_abs_tol=1e-06)[source]¶
Bases:
objectWorkspace for integral elastic observables with spin-orbit coupling.
- Parameters:
- smatrix(central_potential, spin_orbit_potential=None, coulomb_potential=None)[source]¶
Compute the elastic S-matrix for
j=l±1/2channels.
- xs(central_potential, spin_orbit_potential=None, coulomb_potential=None)[source]¶
Return total and reaction cross sections in mb.
- class jitr.xs.elastic.DifferentialWorkspace(integral_workspace, angles)[source]¶
Bases:
objectWorkspace for angular elastic-scattering observables.
- Parameters:
integral_workspace (IntegralWorkspace)
angles (FloatArray)
- classmethod build_from_system(reaction, kinematics, channel_radius_fm, solver, lmax, angles, smatrix_abs_tol=1e-06)[source]¶
Construct a differential workspace from the raw system inputs.
- jitr.xs.elastic.integral_elastic_xs(k, Splus, Sminus, ls)[source]¶
Return total and reaction cross sections for spin-1/2 on spin-0 scattering.
- jitr.xs.elastic.differential_elastic_xs(k, angles, splus, sminus, ls, P_l_costheta, P_1_l_costheta, f_c=0, sigma_l=0, eps=1e-30)[source]¶
Return differential and integral elastic observables.
The returned tuple contains
(dσ/dΩ, A_y, Q, σ_total, σ_reaction).
- jitr.xs.elastic.check_angles(angles)[source]¶
Validate that the angle grid is one-dimensional and lies on
[0, π).
DWBA workspaces for quasi-elastic (p,n) scattering observables.
- class jitr.xs.quasielastic_pn.QuasielasticPnXS(dsdo, Ay, Q)[source]¶
Bases:
objectContainer for quasi-elastic
(p,n)observables.- Variables:
dsdo – Differential cross section in mb/sr.
Ay – Analyzing power.
Q – Spin-rotation function.
- Parameters:
- jitr.xs.quasielastic_pn.isovector_factor(reaction)[source]¶
Return \(\sqrt{|N-Z|}/(N-Z-1)\) for the target of
reaction.This scales the difference of the neutron and proton optical potentials into the default (p,n) transition potential.
- jitr.xs.quasielastic_pn.as_local_potential(potential, nbasis, name)[source]¶
Validate and cast a local potential array on the quadrature grid.
- jitr.xs.quasielastic_pn.as_optional_local_potential(potential, nbasis, name)[source]¶
Return a validated local potential or a zero array when omitted.
- jitr.xs.quasielastic_pn.pn_potentials(nbasis, isovector_factor, U_p_coulomb, U_p_central, U_p_spin_orbit=None, U_n_central=None, U_n_spin_orbit=None, U1_central=None, U1_spin_orbit=None)[source]¶
Validate the (p,n) potentials and fill in the default transition terms.
- Parameters:
nbasis (
int) – Size of the quadrature grid.isovector_factor (
float) – Scale applied toU_n - U_pin the default transition potentials (seeisovector_factor()).U_p_coulomb (
TypeAliasType) – Coulomb interaction for the proton.U_p_central (
TypeAliasType) – Central interaction for the proton.U_p_spin_orbit (
TypeAliasType|None) – Spin-orbit interaction for the proton.U_n_central (
TypeAliasType|None) – Central interaction for the neutron (required).U_n_spin_orbit (
TypeAliasType|None) – Spin-orbit interaction for the neutron.U1_central (
TypeAliasType|None) – Central transition potential, used as-is. Defaults to-(U_n_central - U_p_central) * isovector_factor.U1_spin_orbit (
TypeAliasType|None) – Spin-orbit transition potential, used as-is. Defaults to-(U_n_spin_orbit - U_p_spin_orbit) * isovector_factor.
- Return type:
- Returns:
Validated complex arrays keyed by argument name; omitted spin-orbit terms are zero.
- jitr.xs.quasielastic_pn.spin_half_transition_geometry(lmax, angles)[source]¶
Angular factors for a spin-1/2 transition on a spin-0 target.
For a transition that conserves \(l\) and \(j\), the amplitude for projectile spin projection \(m \to m'\) is a sum over partial waves of
\[\sqrt{2l+1} \langle l 0 \tfrac{1}{2} m | j m \rangle \langle l, m-m'; \tfrac{1}{2} m' | j m \rangle Y_l^{m-m'}(\theta, 0)\]times a partial-wave amplitude.
- Parameters:
- Return type:
- Returns:
Array of shape
(2, 2, lmax + 1, 2, len(angles))indexed by[m, m', l, j], withm, m'in(-1/2, +1/2)andjin(l + 1/2, l - 1/2). Entries with no allowedjare zero.
- jitr.xs.quasielastic_pn.pn_observables(f, xs_factor=0.5, eps=1e-30)[source]¶
Observables from the spin-1/2 transition amplitude matrix.
The scattering plane is taken at \(\phi = 0\), so the normal is \(\hat n = \hat k_{in} \times \hat k_{out} = \hat y\) and, for a transition with \(l = s = j = 0\) transfer, the amplitude matrix is
\[M = A + B\, \sigma \cdot \hat n ,\]with \(A\) the non-spin-flip and \(B\) the spin-flip amplitude. In the
f[m, m']basis ofspin_half_transition_geometry()this is \(A = f[1, 1] = f[0, 0]\) and \(\langle -|M|+\rangle = f[1, 0] = i B\), which gives\[\frac{d\sigma}{d\Omega} = \frac{1}{2}\sum_{mm'}|f_{mm'}|^2 = |A|^2 + |B|^2, \qquad A_y = \frac{2\,\mathrm{Im}(A^* f[1,0])}{|A|^2 + |B|^2}, \qquad Q = \frac{2\,\mathrm{Re}(A^* f[1,0])}{|A|^2 + |B|^2}.\]This is the same convention as
jitr.xs.elastic.differential_elastic_xs()and as Eq. (12) of Gosset, Mayer and Escudie, Phys. Rev. C 14, 878 (1976).The cross section is the full sum over
m, m'. The analyzing power and spin-rotation function, on the other hand, are only meaningful whenfreally does reduce to two amplitudes, i.e. when the transition conserveslandjon a spin-0 target so thatf[0, 0] == f[1, 1]andf[0, 1] == -f[1, 0].- Parameters:
f (
ndarray[tuple[Any,...],dtype[cdouble]]) – Amplitude matrix with shape(2, 2, len(angles))indexed by[m, m', theta], withm, m'in(-1/2, +1/2).xs_factor (
float) – Overall factor multiplying \(\sum_{mm'}|f_{mm'}|^2\) to give the cross section in fm^2/sr. Defaults to the1/(2s+1)spin average of a flux-normalized S-matrix amplitude.eps (
float) – Floor on the cross section used to regularize the ratios.
- Return type:
- Returns:
The differential cross section in mb/sr, the analyzing power and the spin-rotation function at each angle.
- class jitr.xs.quasielastic_pn.System(channel_radius_fm, lmax, reaction, kinematics_entrance, kinematics_exit)[source]¶
Bases:
objectSystem for (p,n) quasi-elastic scattering observables for local interactions This system contains the entrance and exit channels, which are defined by the projectile and target masses, charges, and the channel radius.
- Variables:
channel_radius_fm – The channel radius in femtometers.
lmax – The maximum angular momentum quantum number.
l – An array of angular momentum quantum numbers from 0 to lmax.
entrance – The entrance channel system, including projectile/target masses, charges, and the channel radius.
exit – The exit channel system, including product/residual masses, charges, and the channel radius.
- Parameters:
channel_radius_fm (float)
lmax (int)
reaction (Reaction)
kinematics_entrance (ChannelKinematics)
kinematics_exit (ChannelKinematics)
- class jitr.xs.quasielastic_pn.Workspace(reaction, kinematics_entrance, kinematics_exit, solver, angles, lmax, channel_radius_fm, tmatrix_abs_tol=1e-06)[source]¶
Bases:
objectWorkspace for (p,n) quasi-elastic scattering observables in the DWBA. This class computes the transition matrix and differential cross section for the (p,n) reaction using the distorted wave Born approximation (DWBA).
- Parameters:
- tmatrix(U_p_coulomb, U_p_central, U_p_spin_orbit=None, U_n_central=None, U_n_spin_orbit=None, U1_central=None, U1_spin_orbit=None)[source]¶
Calculate the transition matrix for (p,n) quasi-elastic scattering using the distorted wave Born approximation (DWBA).
- Parameters:
U_p_coulomb (
TypeAliasType) – Coulomb interaction for the proton.U_p_central (
TypeAliasType) – Central interaction for the proton.U_p_spin_orbit (
TypeAliasType|None) – Spin-orbit interaction for the proton.U_n_central (
TypeAliasType|None) – Central interaction for the neutron.U_n_spin_orbit (
TypeAliasType|None) – Spin-orbit interaction for the neutron.U1_central (
TypeAliasType|None) – Central (p,n) transition potential on the quadrature grid, used as-is in the radial integral. If None, defaults to-(U_n_central - U_p_central) * isovector_factor.U1_spin_orbit (
TypeAliasType|None) – Spin-orbit (p,n) transition potential on the quadrature grid, used as-is in the radial integral. If None, defaults to-(U_n_spin_orbit - U_p_spin_orbit) * isovector_factor.
- Return type:
- Returns:
Tuple (Tpn, Sn, Sp) where Tpn is the transition matrix for the (p,n) reaction, Sn is the S-matrix for the neutron elastic exit channel, and Sp is the S-matrix for the proton elastic entrance channel.
- xs(U_p_coulomb, U_p_central, U_p_spin_orbit=None, U_n_central=None, U_n_spin_orbit=None, U1_central=None, U1_spin_orbit=None)[source]¶
Calculate the differential cross section for (p,n) quasi-elastic scattering in mb/Sr in the outgoing neutron angle using DWBA.
- Parameters:
U_p_coulomb (
TypeAliasType) – Coulomb interaction for the proton.U_p_central (
TypeAliasType) – Central interaction for the proton.U_p_spin_orbit (
TypeAliasType|None) – Spin-orbit interaction for the proton.U_n_central (
TypeAliasType|None) – Central interaction for the neutron.U_n_spin_orbit (
TypeAliasType|None) – Spin-orbit interaction for the neutron.U1_central (
TypeAliasType|None) – Central (p,n) transition potential on the quadrature grid, used as-is in the radial integral. If None, defaults to-(U_n_central - U_p_central) * isovector_factor.U1_spin_orbit (
TypeAliasType|None) – Spin-orbit (p,n) transition potential on the quadrature grid, used as-is in the radial integral. If None, defaults to-(U_n_spin_orbit - U_p_spin_orbit) * isovector_factor.
- Return type:
- Returns:
Differential cross section for the (p,n) reaction in mb/Sr.
- observables(U_p_coulomb, U_p_central, U_p_spin_orbit=None, U_n_central=None, U_n_spin_orbit=None, U1_central=None, U1_spin_orbit=None)[source]¶
Differential cross section, analyzing power and spin-rotation function for (p,n) quasi-elastic scattering in DWBA.
Args are as for
xs().- Return type:
- Returns:
Observables at
self.angles; the cross section is in mb/Sr.- Parameters:
U_p_coulomb (ArrayLike)
U_p_central (ArrayLike)
U_p_spin_orbit (ArrayLike | None)
U_n_central (ArrayLike | None)
U_n_spin_orbit (ArrayLike | None)
U1_central (ArrayLike | None)
U1_spin_orbit (ArrayLike | None)