snf_simulations.physics#

Module for atomic physics calculations.

Module Contents#

Classes#

DecayChain

Class to represent a decay chain from parent to daughter isotope.

Functions#

calculate_event_rate

Calculate the expected event rate in the VIDARR detector for a given flux.

calculate_flux_at_distance

Calculate the antineutrino flux at a given distance from the source.

get_decay_mass

Calculate the mass of a daughter isotope created from parent decay.

get_isotope_activity

Calculate the activity of an isotope after a given time since removal.

API#

class snf_simulations.physics.DecayChain[source]#

Bases: typing.NamedTuple

Class to represent a decay chain from parent to daughter isotope.

branching_ratio: float#

1.0

daughter: str#

None

parent: str#

None

snf_simulations.physics.calculate_event_rate(flux: float, lower_efficiency: float = 0.2, upper_efficiency: float = 0.4) tuple[float, float][source]#

Calculate the expected event rate in the VIDARR detector for a given flux.

Parameters:
  • flux – Antineutrino flux in cm^-2 s^-1.

  • lower_efficiency – Lower limit on detection efficiency.

  • upper_efficiency – Upper limit on detection efficiency.

Returns:

Tuple of lower and upper event rates in s^-1.

snf_simulations.physics.calculate_flux_at_distance(total_flux: float, distance: float) float[source]#

Calculate the antineutrino flux at a given distance from the source.

We assume the source is a point source emitting isotropically in all directions, so the flux decreases with the square of the distance from the source.

Parameters:
  • total_flux – The total antineutrino flux emitted by the source in s^-1 .

  • distance – Distance from the source in meters.

Returns:

Antineutrino flux at the given distance in cm^-2 s^-1.

snf_simulations.physics.get_decay_mass(time_elapsed: float, parent_mass: float, parent_half_life: float, daughter_half_life: float, branching_ratio: float = 1) float[source]#

Calculate the mass of a daughter isotope created from parent decay.

Computes the mass of a daughter isotope that has been created from the radioactive decay of its parent isotope using first-order decay equations.

Parameters:
  • time_elapsed – Time elapsed since initial measurement (years).

  • parent_mass – Initial mass of parent isotope (kg).

  • parent_half_life – Half-life of parent isotope (years).

  • daughter_half_life – Half-life of daughter isotope (years).

  • branching_ratio – Branching ratio for this decay chain.

Returns:

Mass of the daughter isotope (kg).

snf_simulations.physics.get_isotope_activity(mass: float, molar_mass: float, half_life: float, removal_time: float) float[source]#

Calculate the activity of an isotope after a given time since removal.

Calculates the current activity of an isotope given its initial mass and the time elapsed since removal from the reactor, accounting for radioactive decay.

Parameters:
  • mass – Mass of the isotope in kg.

  • molar_mass – Molar mass of the isotope in g/mol.

  • half_life – Half-life of the isotope in years.

  • removal_time – Time since removal from reactor in years.

Returns:

Activity of the isotope in decays per second (Becquerels) after the given removal time.