icecube.snowstorm.perturber module

class icecube.snowstorm.perturber.Perturber

Bases: object

add(name, parametrization, distribution)

Adds a new systematic parametrization to the perturber.

Parameters:
  • name – A descriptive name for the parametrization to add. This should contain enough information so that analyzers can later identify the parametrizations and know how they affect the simulation.

  • parametrization – An instance of Parametrization that transforms a parameter vector into frame objects.

  • distribution – An instance of Distribution with the same dimensionality as parametrization.

perturb(rng, frame)

Apply all parametrizations that were previously added.

Parameters:
  • rng – An instance of an I3RandomService to use for sampling.

  • frame – The frame the parametrizations will be applied to.

to_frame(frame)

Store bookkeeping info in an I3Frame. This will store the serialized sampling distributions for all parametrizations along with their name in the frame.

Parameters:

frame – The frame to hold the bookkeeping info.