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.