NuRadioReco.modules package¶
Subpackages¶
- NuRadioReco.modules.ARA package
- NuRadioReco.modules.ARIANNA package
- NuRadioReco.modules.io package
- Subpackages
- Submodules
- NuRadioReco.modules.io.NuRadioRecoio module
- NuRadioReco.modules.io.eventReader module
- NuRadioReco.modules.io.eventWriter module
- Module contents
- NuRadioReco.modules.phasedarray package
- NuRadioReco.modules.trigger package
Submodules¶
NuRadioReco.modules.channelBandPassFilter module¶
-
class
NuRadioReco.modules.channelBandPassFilter.
channelBandPassFilter
¶ Bases:
object
Band pass filters the channels using different band-pass filters.
-
begin
()¶
-
end
()¶
-
get_filter
(frequencies, station_id, channel_id, det, passband, filter_type, order=2)¶ helper function to return the filter that the module applies.
The unused parameters station_id, channel_id, det are needed to have the same signature as the get_filter functions of other modules, e.g. the hardwareResponseIncorporator.
- frequencies: array of floats
the frequency array for which the filter should be returned
- station_id: int
the station id
- channel_id: int
the channel id
- det: detector instance
the detector
- passband: list or dict of lists, (default: [55 * units.MHz, 1000 * units.MHz])
passband[0]: lower boundary of filter, passband[1]: upper boundary of filter a dict can be used to specify a different bandwidth per channel, the key is the channel_id
- filter_type: string or dict
‘rectangular’: perfect straight line filter ‘butter’: butterworth filter from scipy ‘butterabs’: absolute of butterworth filter from scipy or any filter that is implemented in NuRadioReco.detector.filterresponse. In this case the passband parameter is ignored or ‘FIR <type> <parameter>’ - see below for FIR filter options
a dict can be used to specify a different bandwidth per channel, the key is the channel_id
- order: int (optional, default 2) or dict
for a butterworth filter: specifies the order of the filter
a dict can be used to specify a different bandwidth per channel, the key is the channel_id
- array of complex floats
the complex filter amplitudes
-
get_filter_arguments
(channel_id, passband, filter_type, order=2)¶
-
run
(evt, station, det, passband=None, filter_type='rectangular', order=2)¶ Run the filter
- evt, station, det
Event, Station, Detector
- passband: list or dict of lists, (default: [55 * units.MHz, 1000 * units.MHz])
passband[0]: lower boundary of filter, passband[1]: upper boundary of filter a dict can be used to specify a different bandwidth per channel, the key is the channel_id
- filter_type: string or dict
‘rectangular’: perfect straight line filter ‘butter’: butterworth filter from scipy ‘butterabs’: absolute of butterworth filter from scipy or any filter that is implemented in NuRadioReco.detector.filterresponse. In this case the passband parameter is ignored or ‘FIR <type> <parameter>’ - see below for FIR filter options
a dict can be used to specify a different bandwidth per channel, the key is the channel_id
- order: int (optional, default 2) or dict
for a butterworth filter: specifies the order of the filter
a dict can be used to specify a different bandwidth per channel, the key is the channel_id
Added Jan-07-2018 by robert.lahmann@fau.de: FIR filter: see https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.get_window.html for window types; some windows need additional parameters; Default window is hamming (does not need parameters). Examples: filter_type=’FIR’ : use hamming window filter_type=’FIR hamming’: same as above filter_type=’FIR kaiser 10’ : Use Kaiser window with beta parameter 10 filter_type=’FIR kaiser’ : Use Kaiser window with default beta parameter 6
In principal, window names are just passed on to signal.firwin(), but if parameters are required, then these cases must be explicitly implemented in the code below.
The four main filter types can be implemented: LP: passband[0]=None, passband[1] = f_cut HP: passband[0]=f_cut, passband[1] = None BP: passband[0]=f_cut_low, passband[1] = f_cut_high BS: passband[0]=f_cut_high, passband[1] = f_cut_low (i.e. passband[0] > passband[1])
-
NuRadioReco.modules.channelGenericNoiseAdder module¶
-
class
NuRadioReco.modules.channelGenericNoiseAdder.
channelGenericNoiseAdder
¶ Bases:
object
Module that generates noise in some generic fashion (not based on measured data), which can be added to data.
-
add_random_phases
(amps, n_samples_time_domain)¶ Adding random phase information to given amplitude spectrum.
- amps: array of floats
Data that random phase is added to.
- n_samples_time_domain: int
number of samples in the time domain to differentiate between odd and even number of samples
-
bandlimited_noise
(min_freq, max_freq, n_samples, sampling_rate, amplitude, type='perfect_white', time_domain=True, bandwidth=None)¶ Generating noise of n_samples in a bandwidth [min_freq,max_freq].
- min_freq: float
Minimum frequency of passband for noise generation min_freq = None: Only the DC component is removed. If the DC component should be included, min_freq = 0 has to be specified
- max_freq: float
Maximum frequency of passband for noise generation If the maximum frequency is above the Nquist frequencey (0.5 * sampling rate), the Nquist frequency is used max_freq = None: Frequencies up to Nyquist freq are used.
- n_samples: int
number of samples in the time domain
- sampling_rate: float
desired sampling rate of data
- amplitude: float
desired voltage of noise as V_rms (only roughly, since bandpass limited)
- type: string
perfect_white: flat frequency spectrum rayleigh: Amplitude of each frequency bin is drawn from a Rayleigh distribution # white: flat frequency spectrum with random jitter
- time_domain: bool (default True)
if True returns noise in the time domain, if False it returns the noise in the frequency domain. The latter might be more performant as the noise is generated internally in the frequency domain.
- bandwidth: float or None (default)
if this parameter is specified, the amplitude is interpreted as the amplitude for the bandwidth specified here Otherwise the amplitude is interpreted for the bandwidth of min(max_freq, 0.5 * sampling rate) - min_freq If bandwidth is larger then (min(max_freq, 0.5 * sampling rate) - min_freq) it has the same effect as None
Note that by design the max frequency is the Nyquist frequency, even if a bigger max_freq is implemented (RL 17-Sept-2018)
Add ‘multi_white’ noise option on 20-Sept-2018 (RL)
-
begin
(debug=False, seed=None)¶
-
end
()¶
-
fftnoise_fullfft
(f)¶ Adding random phase information to given amplitude spectrum.
- f: array of floats
Data that random phase is added to.
-
run
(event, station, detector, amplitude=0.001, min_freq=0.05, max_freq=2.0, type='perfect_white', excluded_channels=None, bandwidth=None)¶ Add noise to given event.
event
station
detector
- amplitude: float or dict of floats
desired voltage of noise as V_rms for the specified bandwidth a dict can be used to specify a different amplitude per channel, the key is the channel_id
- min_freq: float
Minimum frequency of passband for noise generation
- max_freq: float
Maximum frequency of passband for noise generation If the maximum frequency is above the Nquist frequencey (0.5 * sampling rate), the Nquist frequency is used
- type: string
perfect_white: flat frequency spectrum rayleigh: Amplitude of each frequency bin is drawn from a Rayleigh distribution
- excluded_channels: list of ints
the channels ids of channels where no noise will be added, default is that no channel is excluded
- bandwidth: float or None (default)
if this parameter is specified, the amplitude is interpreted as the amplitude for the bandwidth specified here Otherwise the amplitude is interpreted for the bandwidth of min(max_freq, 0.5 * sampling rate) - min_freq If bandwidth is larger then (min(max_freq, 0.5 * sampling rate) - min_freq) it has the same effect as None
-
NuRadioReco.modules.channelLengthAdjuster module¶
-
class
NuRadioReco.modules.channelLengthAdjuster.
channelLengthAdjuster
¶ Bases:
object
cuts the trace to detector specifications, uses a simple algorithm to determine the location of the pulse
-
begin
(number_of_samples=256, offset=50)¶ Defines number of samples to cut the data to and how many samples before maximum in trace
- number_of_samples: int
Number of samples desired in signal
- offset: int
(roughly) How many samples before pulse
-
end
()¶
-
run
(evt, station, det)¶
-
NuRadioReco.modules.channelResampler module¶
-
class
NuRadioReco.modules.channelResampler.
channelResampler
¶ Bases:
object
Resamples the trace to a new sampling rate.
-
begin
(debug=False, log_level=30)¶
-
end
()¶
-
run
(evt, station, det, sampling_rate)¶ Run the channelResampler
- evt, station, det
Event, Station, Detector
- sampling_rate: float
In units 1/time provides the desired sampling rate of the data.
-
NuRadioReco.modules.channelSignalReconstructor module¶
-
class
NuRadioReco.modules.channelSignalReconstructor.
channelSignalReconstructor
(log_level=30)¶ Bases:
object
Calculates basic signal parameters.
-
begin
(debug=False, signal_window_start=None, signal_window_length=120, noise_window_start=None, noise_window_length=None)¶ - debug: bool
Set module to debug output
- signal_window_start: float or None
Start time (relative to the trace start time) of the window in which signal quantities will be calculated, with time units If None is passed as a parameter, the signal window is laid around the trace maximum
- signal_window_length: float
Length of the signal window, with time units
- noise_window_start: float or None
Start time (relative to the trace start time) of the window in which noise quantities will be calculated, with time units If noise_window_start or noise_window_length are None, the noise window is the part of the trace outside the signal window
- noise_window_length: float or None
Length of the noise window, with time units If noise_window_start or noise_window_length are None, the noise window is the part of the trace outside the signal window
-
end
()¶
-
get_SNR
(station_id, channel, det, stored_noise=False, rms_stage=None)¶ - station_id: int
ID of the station
- channel, det
Channel, Detector
- stored_noise: bool
Calculates noise from pre-computed forced triggers
- rms_stage: string
See functionality of det.get_noise_RMS
- SNR: dict
dictionary of various SNR parameters
-
run
(evt, station, det, stored_noise=False, rms_stage='amp')¶ - evt, station, det
Event, Station, Detector
- stored_noise: bool
Calculates noise from pre-computed forced triggers
- rms_stage: string
See functionality of det.get_noise_RMS
-
NuRadioReco.modules.channelStopFilter module¶
-
class
NuRadioReco.modules.channelStopFilter.
channelStopFilter
¶ Bases:
object
at the beginning and end of the trace (around the ‘stop’) our electronic produces a glitch this modules smoothly filters the beginning and the end of the trace
-
begin
()¶
-
end
()¶
-
run
(evt, station, det, filter_size=0.1, prepend=128, append=128)¶ - evt: Event
The event to run the module on
- station: Station
The station to run the module on
- det: Detector
The detector description
- filter_size: size of tukey window (float)
specifies the percentage of the trace where the filter is active. default is 0.1, i.e. the first 5% and the last 5% of the trace are filtered
- prepend: time interval to prepend
the time span that is filled with zeros and prepended to the trace
- append: time interval to append
the time span that is filled with zeros and appended to the trace
-
NuRadioReco.modules.channelTemplateCorrelation module¶
-
class
NuRadioReco.modules.channelTemplateCorrelation.
channelTemplateCorrelation
(template_directory)¶ Bases:
object
Calculates correlation of waveform with neutrino/cr templates
-
begin
(debug=False)¶
-
end
()¶
-
match_sampling
(ref_template, resampling_factor)¶
-
run
(evt, station, det, channels_to_use=None, cosmic_ray=False, n_templates=1)¶ - evt: Event
Event to run the module on
- station: Station
Station to run the module on
- det: Detector
The detector description
- channels_to_use: List of int (default: [0, 1, 2, 3])
List of channel IDs for which the template correlation shall be calculated
- cosmic_ray: bool
Switch for cosmic ray and neutrino analysis. Default is neutrino templates.
- n_templates: int
default is 1: use just on standard template for all channels if n_templates is larger than one multiple templates are used and the average cross correlation for all templates is calculated. The set of templates contains several coreas input pulses and different incoming directions. The index first loops first over 6 different coreas pulses with different frequency content and then over azimuth angles of 0, 22.5 and 45 degree and then over zenith angles of 60, 50 and 70 degree
-
NuRadioReco.modules.channelTimeWindow module¶
-
class
NuRadioReco.modules.channelTimeWindow.
channelTimeWindow
¶ Bases:
object
Set trace outside time window to zero.
-
begin
(debug=False)¶
-
end
()¶
-
run
(evt, station, det, window=None, window_function='rectangular', around_pulse=True, window_width=50, window_rise_time=20)¶ - evt, station, det
Event, Station, Detector
- window: list or None
[time_window_start, time_window_end] in which the signal should be kept (in units of time)
- window_function: string
select window function * rectangular * hanning
- around_pulse: float or None
if not None: specifies time interval around ‘signal_time’, if this option is set, ‘window’ is ignored
- window_width: float
if around_pulse is set, defines the time width of the trace where the filter is 1.
- window_rise_time: float
if window_function is not rectangular, defines the rise time where the filter goes from 0 to 1.
-
NuRadioReco.modules.correlationDirectionFitter module¶
-
class
NuRadioReco.modules.correlationDirectionFitter.
correlationDirectionFitter
¶ Bases:
object
Fits the direction using correlation of parallel channels.
-
begin
(debug=False, log_level=None)¶
-
end
()¶
-
run
(evt, station, det, n_index=None, ZenLim=None, AziLim=None, channel_pairs=((0, 2), (1, 3)), use_envelope=False)¶ reconstruct signal arrival direction for all events
- evt: Event
The event to run the module on
- station: Station
The station to run the module on
- det: Detector
The detector description
- n_index: float
the index of refraction
- ZenLim: 2-dim array/list of floats (default: [0 * units.deg, 90 * units.deg])
the zenith angle limits for the fit
- AziLim: 2-dim array/list of floats (default: [0 * units.deg, 360 * units.deg])
the azimuth angle limits for the fit
- channel_pairs: pair of pair of integers
specify the two channel pairs to use, default ((0, 2), (1, 3))
- use_envelope: bool (default False)
if True, the hilbert envelope of the traces is used
-
NuRadioReco.modules.cosmicRayEnergyReconstructor module¶
-
class
NuRadioReco.modules.cosmicRayEnergyReconstructor.
cosmicRayEnergyReconstructor
¶ Bases:
object
Reconstructs the energy of an air shower from its radio signal Requires the following modules to be run beforehand:
a 10th order Butterworth bandpass filter with passband 80-300 MHz
a direction reconstruction
the voltageToAnalyticEfieldConverter
-
begin
(site='mooresbay')¶
-
run
(event, station, detector)¶
NuRadioReco.modules.efieldAirToIcePropagator module¶
NuRadioReco.modules.efieldGenericNoiseAdder module¶
-
class
NuRadioReco.modules.efieldGenericNoiseAdder.
efieldGenericNoiseAdder
¶ Bases:
object
Module that adds noise to the electric field – such as Galactic emission and background from human communication.
-
begin
(debug=False)¶
-
end
()¶
-
run
(evt, station, det, type, narrowband_freq, narrowband_power, passband)¶ - evt: Event
The event to run the module on
- station: Station
The station to run the module on
- det: Detector
The detector description
- type: string
narrowband: single frequency background with FM galactic: galactic emission calculated from temperature plots
- narrowband_freq: list
mean frequency of one or more narrowband transmitters
- narrowband_power: list
must be same size as narrowband_freq list. Each element in the list should be a list consisting of 3 elements: the power of the signal in x,y,z polarization.
- passband: list
galactic background will not be simulated below the lower cutoff
-
NuRadioReco.modules.efieldTimeDirectionFitter module¶
-
class
NuRadioReco.modules.efieldTimeDirectionFitter.
efieldTimeDirectionFitter
¶ Bases:
object
Calculates basic signal parameters.
-
begin
(debug=False, time_uncertainty=0.1)¶
-
end
()¶
-
run
(evt, station, det, channels_to_use=None, cosmic_ray=False)¶ - evt: Event
The event to run the module on
- station: Station
The station to run the module on
- det: Detector
The detector description
- channels_to_use: list of int (default: [0, 1, 2, 3])
List with the IDs of channels to use for reconstruction
- cosmic_ray: Bool (default: False)
Flag to mark event as cosmic ray
-
NuRadioReco.modules.efieldToVoltageConverter module¶
-
class
NuRadioReco.modules.efieldToVoltageConverter.
efieldToVoltageConverter
(log_level=30)¶ Bases:
object
Module that should be used to convert simulations to data. It assumes that at least one efield is given per channel as input. It will convolve the electric field with the corresponding antenna response for the incoming direction specified in the channel object. The station id, defines antenna location and antenna type.
-
begin
(debug=False, uncertainty=None, time_resolution=0.1, pre_pulse_time=200, post_pulse_time=200)¶ Begin method, sets general parameters of module
- debug: bool
enable/disable debug mode (default: False -> no debug output)
- uncertainty: dictionary (default: {})
- optional argument to specify systematic uncertainties. currently supported keys
‘sys_dx’: systematic uncertainty of x position of antenna
‘sys_dy’: systematic uncertainty of y position of antenna
‘sys_dz’: systematic uncertainty of z position of antenna
- ‘sys_amp’: systematic uncertainty of the amplifier aplification,
specify value as relative difference of linear gain
- ‘amp’: statistical uncertainty of the amplifier aplification,
specify value as relative difference of linear gain
- time_resolution: float
time resolution of shifting pulse times
- pre_pulse_time: float
length of empty samples that is added before the first pulse
- post_pulse_time: float
length of empty samples that is added after the simulated trace
-
end
()¶
-
run
(evt, station, det)¶
-
NuRadioReco.modules.electricFieldBandPassFilter module¶
-
class
NuRadioReco.modules.electricFieldBandPassFilter.
electricFieldBandPassFilter
¶ Bases:
object
-
begin
()¶
-
end
()¶
-
run
(evt, station, det, passband=None, filter_type='rectangular', order=2)¶ Applies bandpass filter to electric field
evt: event
station: station
det: detector
- passband: seq, array (default: [55 * units.MHz, 1000 * units.MHz])
passband for filter, in phys units
- filter_type: string
‘rectangular’: perfect straight line filter ‘butter’: butterworth filter from scipy ‘butterabs’: absolute of butterworth filter from scipy
- order: int (optional, default 2)
for a butterworth filter: specifies the order of the filter
-
NuRadioReco.modules.electricFieldResampler module¶
-
class
NuRadioReco.modules.electricFieldResampler.
electricFieldResampler
¶ Bases:
object
resamples the electric field trace to a new sampling rate
-
begin
()¶
-
end
()¶
-
run
(event, station, det, sampling_rate)¶ resample electric field
event: event
station: station
det: detector
- sampling_rate: float
desired new sampling rate
-
NuRadioReco.modules.electricFieldSignalReconstructor module¶
-
class
NuRadioReco.modules.electricFieldSignalReconstructor.
electricFieldSignalReconstructor
¶ Bases:
object
Calculates basic signal parameters.
-
begin
(signal_window_pre=10, signal_window_post=40, noise_window=100, log_level=None)¶
-
end
()¶
-
run
(evt, station, det, debug=False)¶ reconstructs quantities for electric field
evt: event
station: station
det: detector
- debug: bool
set debug
-
NuRadioReco.modules.eventTypeIdentifier module¶
-
class
NuRadioReco.modules.eventTypeIdentifier.
eventTypeIdentifier
¶ Bases:
object
Use this module to distinguish cosmic ray events from neutrino events
-
begin
()¶
-
run
(event, station, mode, forced_event_type='neutrino')¶ Determines the type of event so that the correct modules can be executed accordingly. Currently neutrino and cosmic ray events are supported, but others can be added in the future.
event: event
station: station
- mode: string
specifies which criteria the decision to flag the event as cosmic ray or neutrino should be based on. Currently only supports ‘forced’, which automatically flags the event to a specified type. Add new modes to use different criteria
- forced_event_type: string
if the mode is set to forced, this is the type the event will be set to. Currently supported options are neutrino and cosmic_ray
-
NuRadioReco.modules.templateDirectionFitter module¶
-
class
NuRadioReco.modules.templateDirectionFitter.
templateDirectionFitter
¶ Bases:
object
Calculates basic signal parameters.
-
begin
()¶
-
end
()¶
-
run
(evt, station, det, channels_to_use=None, cosmic_ray=False)¶ Fits the direction using templates
evt: event
station: station
det: detector
- channels_to_use: list (default: [0, 1, 2, 3]
antenna to use for fit
- cosmic_ray: bool
type to set correlation template
-
NuRadioReco.modules.triggerTimeAdjuster module¶
-
class
NuRadioReco.modules.triggerTimeAdjuster.
triggerTimeAdjuster
¶ Bases:
object
Modifies channel traces to simulate the effects of the trigger
-
begin
(trigger_name=None, pre_trigger_time=55.0)¶ - trigger_name: string or None
name of the trigger that should be used. If trigger_name is None, the trigger with the smalles trigger_time will be used. If a name is give, corresponding trigger module must be run beforehand. If the trigger does not exist or did not trigger, this module will do nothing
- pre_trigger_time: float
Amount of time that should be stored in the channel trace before the trigger. If the channel trace is long enough, it will be cut accordingly. Otherwise, it will be rolled.
- cut_trace: bool
If true, the trace will be cut to the length specified in the detector description
-
run
(event, station, detector)¶
-
NuRadioReco.modules.voltageToAnalyticEfieldConverter module¶
-
NuRadioReco.modules.voltageToAnalyticEfieldConverter.
covariance
(function, vmin, up, fast=False)¶ Numerically compute the covariance matrix from a chi^2 or -logLikelihood function.
- function: function-like
The function may accept only a vector argument and has to return a scalar.
- vmin: array of floats
Position of the minimum.
- up: float
Threshold value to pass when climbing uphill. up = 1 for a chi^2 function up = 0.5 for a -logLikelihood function
- fast: boolean
If true invert hesse matrix at the minimum, use this if computing function is expensive.
>>> cov = ((2.0,0.2),(0.2,2.0)) >>> invcov = np.linalg.inv(cov) >>> xs = np.array((1.0,-1.0)) >>> def ChiSquare(pars, grad = None): return np.dot(xs-pars,np.dot(invcov,xs-pars)) >>> def NegLogLike(pars, grad = None): return 0.5*ChiSquare(pars) >>> covariance(ChiSquare, xs, 1.0) array([[ 2. , 0.2], [ 0.2, 2. ]]) >>> covariance(ChiSquare, xs, 1.0, fast=True) array([[ 2. , 0.2], [ 0.2, 2. ]]) >>> covariance(NegLogLike, xs, 0.5) array([[ 2. , 0.2], [ 0.2, 2. ]]) >>> covariance(NegLogLike, xs, 0.5, fast=True) array([[ 2. , 0.2], [ 0.2, 2. ]])
The algorithm is slow (it needs many function evaluations), but robust. The covariance matrix is derived by explicitly following the chi^2 or -logLikelihood function uphill until it crosses the 1-sigma contour.
The fast alternative is to invert the hessian matrix at the minimum.
Hans Dembinski <hans.dembinski@kit.edu>
-
NuRadioReco.modules.voltageToAnalyticEfieldConverter.
stacked_lstsq
(L, b, rcond=1e-10)¶ Solve L x = b, via SVD least squares cutting of small singular values L is an array of shape (…, M, N) and b of shape (…, M). Returns x of shape (…, N)
-
class
NuRadioReco.modules.voltageToAnalyticEfieldConverter.
voltageToAnalyticEfieldConverter
¶ Bases:
object
reconstucts the electric-field by foward folding an analytic pulse function through the antenna
This module works only for cosmic rays so far. The cosmic-ray radio pulse can be described in Fourier space with a simple exponential function for the magnitude as a function of frequency. The phase is set to zero. A slope in the phase spectrum corresponds to a translation in time. In each iteration step, the time shift is set to the shift that results in the maximal cross correlation.
The module also calculates the polarization angle and the energy fluence from the fit parameters.
-
begin
()¶ begin method. This function is executed before the event loop.
The antenna pattern provider is initialized here.
-
end
()¶
-
run
(evt, station, det, debug=False, debug_plotpath=None, use_channels=None, bandpass=None, use_MC_direction=False)¶ run method. This function is executed for each event
evt station det debug: bool
if True debug plotting is enables
- debug_plotpath: string or None
if not None plots will be saved to a file rather then shown. Plots will be save into the debug_plotpath directory
- use_channels: array of ints (default: [0, 1, 2, 3])
the channel ids to use for the electric field reconstruction default: 0 - 3
- bandpass: [float, float] (default: [100 * units.MHz, 500 * units.MHz])
the lower and upper frequecy for which the analytic pulse is calculated. A butterworth filter of 10th order and a rectangular filter is applied. default 100 - 500 MHz
- use_MC_direction: bool
use simulated direction instead of reconstructed direction
-
NuRadioReco.modules.voltageToEfieldConverter module¶
-
NuRadioReco.modules.voltageToEfieldConverter.
get_array_of_channels
(station, use_channels, det, zenith, azimuth, antenna_pattern_provider, time_domain=False)¶
-
NuRadioReco.modules.voltageToEfieldConverter.
stacked_lstsq
(L, b, rcond=1e-10)¶ Solve L x = b, via SVD least squares cutting of small singular values L is an array of shape (…, M, N) and b of shape (…, M). Returns x of shape (…, N)
-
class
NuRadioReco.modules.voltageToEfieldConverter.
voltageToEfieldConverter
¶ Bases:
object
-
begin
()¶
-
end
()¶
-
run
(evt, station, det, use_channels=None, use_MC_direction=False, force_Polarization='')¶ run method. This function is executed for each event
evt station det use_channels: array of ints (default: [0, 1, 2, 3])
the channel ids to use for the electric field reconstruction
- use_MC_direction: bool
if True uses zenith and azimuth direction from simulated station if False uses reconstructed direction from station parameters.
- force_Polarization: str
if eTheta or ePhi, then only reconstructs chosen polarization of electric field, assuming the other is 0. Otherwise, reconstructs electric field for both eTheta and ePhi
-
NuRadioReco.modules.voltageToEfieldConverterPerChannel module¶
-
class
NuRadioReco.modules.voltageToEfieldConverterPerChannel.
voltageToEfieldConverterPerChannel
¶ Bases:
object
Converts voltage trace to electric field per channel
Assumes either co-pole or cross-pole, then finds the electric field per channel by E = V/H in fourier space.
-
begin
()¶
-
end
()¶
-
run
(evt, station, det, pol=0)¶ Performs computation for voltage trace to electric field per channel
Will provide a deconvoluted (electric field) trace for each channel from the stations input voltage traces
- evt: event data structure
the event data structure
- station: station data structure
the station data structure
- det: detector object
the detector object
- pol: polarization
0 = eTheta polarized, 1 = ePhi polarized
-