rxmc.elastic_diffxs_observation.ElasticDifferentialXSObservation#

class rxmc.elastic_diffxs_observation.ElasticDifferentialXSObservation(x: ndarray, y: ndarray, Elab: float, reaction: Reaction, quantity: str, measurement_quantity: str, y_units: str, y_stat_err=None, y_sys_err_normalization=None, y_sys_err_offset=None, dataset_label: str | None = None, lmax: int = 20, wavelengths_beyond_range=2.0, zeros_per_node=5, angles_vis: ndarray = array([1.00000000e-02, 1.82808081e+00, 3.64616162e+00, 5.46424242e+00, 7.28232323e+00, 9.10040404e+00, 1.09184848e+01, 1.27365657e+01, 1.45546465e+01, 1.63727273e+01, 1.81908081e+01, 2.00088889e+01, 2.18269697e+01, 2.36450505e+01, 2.54631313e+01, 2.72812121e+01, 2.90992929e+01, 3.09173737e+01, 3.27354545e+01, 3.45535354e+01, 3.63716162e+01, 3.81896970e+01, 4.00077778e+01, 4.18258586e+01, 4.36439394e+01, 4.54620202e+01, 4.72801010e+01, 4.90981818e+01, 5.09162626e+01, 5.27343434e+01, 5.45524242e+01, 5.63705051e+01, 5.81885859e+01, 6.00066667e+01, 6.18247475e+01, 6.36428283e+01, 6.54609091e+01, 6.72789899e+01, 6.90970707e+01, 7.09151515e+01, 7.27332323e+01, 7.45513131e+01, 7.63693939e+01, 7.81874747e+01, 8.00055556e+01, 8.18236364e+01, 8.36417172e+01, 8.54597980e+01, 8.72778788e+01, 8.90959596e+01, 9.09140404e+01, 9.27321212e+01, 9.45502020e+01, 9.63682828e+01, 9.81863636e+01, 1.00004444e+02, 1.01822525e+02, 1.03640606e+02, 1.05458687e+02, 1.07276768e+02, 1.09094848e+02, 1.10912929e+02, 1.12731010e+02, 1.14549091e+02, 1.16367172e+02, 1.18185253e+02, 1.20003333e+02, 1.21821414e+02, 1.23639495e+02, 1.25457576e+02, 1.27275657e+02, 1.29093737e+02, 1.30911818e+02, 1.32729899e+02, 1.34547980e+02, 1.36366061e+02, 1.38184141e+02, 1.40002222e+02, 1.41820303e+02, 1.43638384e+02, 1.45456465e+02, 1.47274545e+02, 1.49092626e+02, 1.50910707e+02, 1.52728788e+02, 1.54546869e+02, 1.56364949e+02, 1.58183030e+02, 1.60001111e+02, 1.61819192e+02, 1.63637273e+02, 1.65455354e+02, 1.67273434e+02, 1.69091515e+02, 1.70909596e+02, 1.72727677e+02, 1.74545758e+02, 1.76363838e+02, 1.78181919e+02, 1.80000000e+02]), compound_correction: ndarray = None, transform=None, mask=None)[source]#

Bases: Observation

Observation for elastic differential cross sections.

This is an Observation (statistical error only): it inherits statistical_term and num_pts_within_interval. Any correlated systematic — the dataset’s reported normalisation/offset, or a fixed covariance block (an array-valued Term) — is composed explicitly as an extra_terms entry in the Constraint.

It is designed to handle elastic differential cross section measurements, specifically absolute differential cross sections, Rutherford normalized differential cross sections, and analyzing powers (Ay).

Internally, this involves initializing a jitr.xs.elastic.DifferentialWorkspace which precomputes things like boundary conditions to speed up computation of observables for a given set of interaction parameter.

__init__(x: ndarray, y: ndarray, Elab: float, reaction: Reaction, quantity: str, measurement_quantity: str, y_units: str, y_stat_err=None, y_sys_err_normalization=None, y_sys_err_offset=None, dataset_label: str | None = None, lmax: int = 20, wavelengths_beyond_range=2.0, zeros_per_node=5, angles_vis: ndarray = array([1.00000000e-02, 1.82808081e+00, 3.64616162e+00, 5.46424242e+00, 7.28232323e+00, 9.10040404e+00, 1.09184848e+01, 1.27365657e+01, 1.45546465e+01, 1.63727273e+01, 1.81908081e+01, 2.00088889e+01, 2.18269697e+01, 2.36450505e+01, 2.54631313e+01, 2.72812121e+01, 2.90992929e+01, 3.09173737e+01, 3.27354545e+01, 3.45535354e+01, 3.63716162e+01, 3.81896970e+01, 4.00077778e+01, 4.18258586e+01, 4.36439394e+01, 4.54620202e+01, 4.72801010e+01, 4.90981818e+01, 5.09162626e+01, 5.27343434e+01, 5.45524242e+01, 5.63705051e+01, 5.81885859e+01, 6.00066667e+01, 6.18247475e+01, 6.36428283e+01, 6.54609091e+01, 6.72789899e+01, 6.90970707e+01, 7.09151515e+01, 7.27332323e+01, 7.45513131e+01, 7.63693939e+01, 7.81874747e+01, 8.00055556e+01, 8.18236364e+01, 8.36417172e+01, 8.54597980e+01, 8.72778788e+01, 8.90959596e+01, 9.09140404e+01, 9.27321212e+01, 9.45502020e+01, 9.63682828e+01, 9.81863636e+01, 1.00004444e+02, 1.01822525e+02, 1.03640606e+02, 1.05458687e+02, 1.07276768e+02, 1.09094848e+02, 1.10912929e+02, 1.12731010e+02, 1.14549091e+02, 1.16367172e+02, 1.18185253e+02, 1.20003333e+02, 1.21821414e+02, 1.23639495e+02, 1.25457576e+02, 1.27275657e+02, 1.29093737e+02, 1.30911818e+02, 1.32729899e+02, 1.34547980e+02, 1.36366061e+02, 1.38184141e+02, 1.40002222e+02, 1.41820303e+02, 1.43638384e+02, 1.45456465e+02, 1.47274545e+02, 1.49092626e+02, 1.50910707e+02, 1.52728788e+02, 1.54546869e+02, 1.56364949e+02, 1.58183030e+02, 1.60001111e+02, 1.61819192e+02, 1.63637273e+02, 1.65455354e+02, 1.67273434e+02, 1.69091515e+02, 1.70909596e+02, 1.72727677e+02, 1.74545758e+02, 1.76363838e+02, 1.78181919e+02, 1.80000000e+02]), compound_correction: ndarray = None, transform=None, mask=None)[source]#
Parameters:
  • x (np.ndarray) – Measured angle grid in degrees.

  • y (np.ndarray) – Measured observable values.

  • Elab (float) – Laboratory energy in MeV.

  • reaction (jitr.reactions.Reaction) – Reaction system definition.

  • quantity (str) – Observable to compute: "dXS/dA", "dXS/dRuth", or "Ay".

  • measurement_quantity (str) – Observable represented by the supplied y values.

  • y_units (str) – Units of the supplied y values (e.g. "mb/sr").

  • y_stat_err (np.ndarray, optional) – Statistical errors associated with y.

  • y_sys_err_normalization (float or np.ndarray, optional) – Reported fractional (dimensionless) normalisation uncertainty. Retained as inert metadata (see rxmc.observation.Observation.systematic_terms()); not divided by the unit normalisation.

  • y_sys_err_offset (float or np.ndarray, optional) – Reported absolute offset uncertainty in the same units as y. Retained as inert metadata, converted to internal units (divided by the unit normalisation, per-angle where applicable).

  • dataset_label (str, optional) – Human-readable dataset identifier used in error messages.

  • lmax (int, optional) – Maximum angular momentum. Defaults to 20.

  • wavelengths_beyond_range (float, optional) – Number of wavelengths beyond the interaction range used to set the channel radius. Defaults to 2.0.

  • zeros_per_node (int, optional) – Number of basis-function zeros per node in the R-matrix solver. Defaults to 5.

  • angles_vis (np.ndarray, optional) – Angle grid in degrees for visualisation. Defaults to np.linspace(0.01, 180, 100).

  • compound_correction (np.ndarray, optional) – Compound-nuclear contribution to dXS/dΩ in mb/sr, added to the calculated cross section before comparing to data.

  • transform, mask (optional) – Comparison-space transform and active-point mask; see Observation.

Methods

__init__(x, y, Elab, reaction, quantity, ...)

calculate_normalization(...)

from_measurement(measurement, reaction, ...)

Construct from an exfor_tools Distribution.

masked(mask[, label])

A shallow copy of this observation with a new point mask.

masked_where(predicate[, label])

masked() with mask = predicate(x) (points where it is True).

num_pts_within_interval(ylow, yhigh[, xlim])

Number of active points of y that fall within [ylow, yhigh).

statistical_term([support])

The always-on, genuinely uncorrelated statistical diagonal.

systematic_terms([support])

This dataset's reported correlated systematics as fixed rank-one terms.

Attributes

k

Entrance-channel wavenumber in fm^-1.

log_jacobian

sum(log |t'(y_raw)|) over the active points.

n_active

Number of active (unmasked) points.

property k: float#

Entrance-channel wavenumber in fm^-1.

classmethod from_measurement(measurement: Distribution, reaction: Reaction, quantity: str, **kwargs)[source]#

Construct from an exfor_tools Distribution.

**kwargs (solver settings, compound_correction, transform, mask, …) are forwarded to the constructor.

calculate_normalization(measurement_quantity: str, measurement_y_units: str)[source]#