Parameter storage - nu-radio/NuRadioReco GitHub Wiki
generic getter/setter functions
The framework.channel and framework.station classes as well as the derived framework.sim_station class allow to save arbitrary parameters via the generic function set_parameter(key, value) or via the shorthand station[key] = value or channel[key] = value respectively.
The parameters can be retrieved via get_parameter(key) or just the shorthand station[key].
The parameter keys needs to be of type framework.parameters.stationParameters or framework.parameters.channelParameters respectively. This is to guarantee well defined parameter names that are unique and meaningful.
Parameters are set via
from NuRadioReco.utilities import units
from NuRadioReco.framework.parameters import stationParameters as stnp
nu_zenith = 23 * units.deg
station.set_parameter(stnp.nu_zenith, nu_zenith)
# or
station[stnp.nu_zenith] = nu_zenith
and retrieved via
from NuRadioReco.utilities import units
from NuRadioReco.framework.parameters import stationParameters as stnp
nu_zenith = station.get_parameter(stnp.nu_zenith)
# or
nu_zenith = station[stnp.nu_zenith]
print('the neutrino zenith angle is {:.1f}deg'.format(nu_zenith/units.deg))
adding parameters
To add a new parameter just add this parameter into the stationParameters or channelParameters class of the file framework.parameters.py. Make sure to add a meaningful description.
saving of parameter errors
The parameter storage functionality also allow to save uncertainties of all parameters:
from NuRadioReco.utilities import units
from NuRadioReco.framework.parameters import stationParameters as stnp
nu_zenith = 23 * units.deg
nu_zenith_error = 2 * units.deg
station.set_parameter(stnp.nu_zenith, nu_zenith)
station.set_parameter_error(stnp.nu_zenith, nu_zenith_error)