NuRadioReco.modules.iftElectricFieldReconstructor.iftElectricFieldReconstructor module

class NuRadioReco.modules.iftElectricFieldReconstructor.iftElectricFieldReconstructor.IftElectricFieldReconstructor[source]

Bases: object

Module that uses Information Field Theory to reconstruct the electric field. A description how this method works can be found at https://arxiv.org/abs/2102.00258

Methods

begin(electric_field_template[, passband, ...])

Define settings for the reconstruction.

make_priors_plot(event, station, detector, ...)

Plots samples from the prior distribution of the electric field.

run(event, station, detector, channel_ids, ...)

Run the electric field reconstruction

begin(electric_field_template, passband=None, filter_type='butter', amp_dct=None, pulse_time_prior=20.0, pulse_time_uncertainty=5.0, n_iterations=5, n_samples=20, polarization='pol', relative_tolerance=1e-07, convergence_level=3, energy_fluence_passbands=None, slope_passbands=None, phase_slope='both', debug=False)[source]

Define settings for the reconstruction.

Parameters:
electric_field_template: NuRadioReco.framework.base_trace.BaseTrace object

BaseTrace (or child class) object containing an electric field template that is used to determine the position of the radio pulse in the channel waveforms.

passband: list of floats or None

Lower and upper bound of the filter that should be applied to the channel waveforms and the IFT model. If None is passed, no filter is applied

filter_type: string

Name of the filter type to be used. Has to be implemented in the NuRadioReco.utilities. bandpass_filter.get_filter_response function. Only used if passband is not None

amp_dct: dictionary

Dictionary containing the prior settings for the electric field spectrum

pulse_time_prior: float

Expected pulse time relative to the trace start time. Note that this is the time of the electric field pulse, not the voltage pulse

pulse_time_uncertainty: float

Uncertainty on the pulse time

n_iterations: integer

Number of times the IFT minimizer iterates. More iterations lead to better results, but increase run time.

n_samples: integer

Number of prior samples the IFT minimizer uses to find the maximum prior. Also the number of samples used to estimate uncertainties

polarization: string

Polarization of the reconstructed radio signal. If set to “theta” or “phi”, only that component of the electric field is reconstructed. If set to “pol”, both components are reconstructed.

relative_tolerance: float

Relative improvement for the minimizer in a cycle for the optimization to finish.

convergence_level: integer

Number of cycles the relative improvement of the minimizer has to be below relative_tolerance for the optimization to finish.

energy_fluence_passbands: list of floats

List of passbands for which the energy fluence is calculated

slope_passbands: list of floats

List of passbands to calculate the ratio of the energy fluences in different passbands.

phase_slope: string

Specifies the sign of the slope of the linear function describing the phase of the electric field. Options are “negative”, “positive” and “both”. If “both” is selected, positive and negative slopes are used and the best fit is selected.

debug: bool

If true, debug plots are drawn.

make_priors_plot(event, station, detector, channel_ids)[source]

Plots samples from the prior distribution of the electric field.

Parameters:
event: NuRadioReco.framework.event.Event object
station: NuRadioReco.framework.station.Station object
detector: NuRadioReco.detector.detector.Detector object or child object
channel_ids: list of floats

IDs of the channels to use for the electric field reconstruction

run(event, station, detector, channel_ids, efield_scaling, use_sim=False)[source]

Run the electric field reconstruction

Parameters:
event: NuRadioReco.framework.event.Event object
station: NuRadioReco.framework.station.Station object
detector: NuRadioReco.detector.detector.Detector object or child object
channel_ids: list of integers

IDs of the channels to be used for the electric field reconstruction

efield_scaling: boolean

If true, a small variation in the amplitude between channels is included in the IFT model.

use_sim: boolean

If true, the simChannels are used to identify the position of the radio pulse.