rxmc.ias_pn_observation.IsobaricAnalogPNObservation#

class rxmc.ias_pn_observation.IsobaricAnalogPNObservation(x: ndarray, y: ndarray, Elab: float, reaction: Reaction, ExIAS: float, 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, 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]), wavelengths_beyond_range: float = 2.0, zeros_per_node: int = 5, transform=None, mask=None)[source]#

Bases: Observation

Observation for (p,n) isobaric analog state (IAS) reactions.

This is an Observation (statistical error only): it inherits statistical_term and num_pts_within_interval. Any correlated systematic is composed explicitly as an extra_terms entry in the Constraint.

It is designed to handle (p,n) IAS reaction measurements in differential cross section form.

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

__init__(x: ndarray, y: ndarray, Elab: float, reaction: Reaction, ExIAS: float, 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, 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]), wavelengths_beyond_range: float = 2.0, zeros_per_node: int = 5, transform=None, mask=None)[source]#

Initialize a Observation instance for the (p,n) IAS reaction.

Parameters:
  • x (np.ndarray) – Measured angle grid in degrees.

  • y (np.ndarray) – Measured differential cross section data.

  • Elab (float) – Laboratory energy of the incoming proton (MeV).

  • reaction (jitr.reactions.Reaction) – Reaction information.

  • ExIAS (float) – Excitation energy of the IAS in the residual nucleus (MeV).

  • y_units (str) – Units of the supplied y values.

  • 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).

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

  • lmax (int) – Maximum angular momentum

  • angles_vis (np.ndarray) – Array of angles in degrees for visualization.

  • wavelengths_beyond_range (float) – Number of wavelengths beyond the interaction range to set the channel radius.

  • zeros_per_node (int) – Number of zeros of the basis functions per node in the R-matrix solver.

Methods

__init__(x, y, Elab, reaction, ExIAS, y_units)

Initialize a Observation instance for the (p,n) IAS reaction.

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

log_jacobian

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

n_active

Number of active (unmasked) points.

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

Construct from an exfor_tools Distribution.

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