NuRadioReco.modules.phasedarray.triggerSimulator module
- class NuRadioReco.modules.phasedarray.triggerSimulator.triggerSimulator(log_level=0)[source]
Bases:
object
Calculates the trigger for a phased array with a primary beam.
The channels that participate in both beams and the pointing angle for each subbeam can be specified.
See https://arxiv.org/pdf/1809.04573.pdf
Methods
calculate_time_delays
(station, det, ...[, ...])Calculates the delays needed for phasing the array.
check_vertical_string
(station, det, ...)Checks if the triggering antennas lie in a straight vertical line Throws error if not.
get_antenna_positions
(station, det[, ...])Calculates the vertical coordinates of the antennas of the detector
get_channel_trace_start_time
(station, ...)Finds the start time of the desired traces.
phase_signals
(traces, beam_rolls)Phase signals together given the rolls
phased_trigger
(station, det[, Vrms, ...])simulates phased array trigger for each event
power_sum
(coh_sum, window, step[, adc_output])Calculate power summed over a length defined by 'window', overlapping at intervals defined by 'step'
run
(evt, station, det[, Vrms, threshold, ...])Simulates phased array trigger for each event.
begin
end
- get_antenna_positions(station, det, triggered_channels=None, component=2)[source]
Calculates the vertical coordinates of the antennas of the detector
- Parameters:
- station: Station object
Description of the current station
- det: Detector object
Description of the current detector
- triggered_channels: array of ints
channels ids of the channels that form the primary phasing array if None, all channels are taken
- component: int
Which cartesian coordinate to return
- Returns:
- ant_pos: array of floatss
Desired antenna position in requested coordinate
- calculate_time_delays(station, det, triggered_channels, phasing_angles=array([-9.59931089e-01, -7.14608352e-01, -5.13801244e-01, -3.33826648e-01, -1.64572284e-01, 1.11022302e-16, 1.64572284e-01, 3.33826648e-01, 5.13801244e-01, 7.14608352e-01, 9.59931089e-01]), ref_index=1.75, sampling_frequency=None)[source]
Calculates the delays needed for phasing the array.
- Parameters:
- station: Station object
Description of the current station
- det: Detector object
Description of the current detector
- triggered_channels: array of ints
channels ids of the channels that form the primary phasing array if None, all channels are taken
- phasing_angles: array of float
pointing angles for the primary beam
- ref_index: float
refractive index for beam forming
- sampling_frequency: float
Rate of the ADC used
- Returns:
- beam_rolls: array of dicts of keys=antenna and content=delay
- get_channel_trace_start_time(station, triggered_channels)[source]
Finds the start time of the desired traces. Throws an error if all the channels dont have the same start time.
- Parameters:
- station: Station object
Description of the current station
- triggered_channels: array of ints
channels ids of the channels that form the primary phasing array if None, all channels are taken
- Returns:
- channel_trace_start_time: float
Channel start time
- check_vertical_string(station, det, triggered_channels)[source]
Checks if the triggering antennas lie in a straight vertical line Throws error if not.
- Parameters:
- station: Station object
Description of the current station
- det: Detector object
Description of the current detector
- triggered_channels: array of ints
channels ids of the channels that form the primary phasing array if None, all channels are taken
- power_sum(coh_sum, window, step, adc_output='voltage')[source]
Calculate power summed over a length defined by ‘window’, overlapping at intervals defined by ‘step’
- Parameters:
- coh_sum: array of floats
Phased signal to be integrated over
- window: int
Power integral window Units of ADC time ticks
- step: int
Time step in power integral. If equal to window, there is no time overlap in between neighboring integration windows Units of ADC time ticks.
- adc_output: string
‘voltage’ to store the ADC output as discretised voltage trace
‘counts’ to store the ADC output in ADC counts
- Returns:
- power:
Integrated power in each integration window
- num_frames
Number of integration windows calculated
- phase_signals(traces, beam_rolls)[source]
Phase signals together given the rolls
- Parameters:
- traces: 2D array of floats
Signals from the antennas to be phased together.
- beam_rolls: 2D array of floats
The amount to shift each signal before phasing the traces together
- Returns:
- phased_traces: array of arrays
- phased_trigger(station, det, Vrms=None, threshold=0.06, triggered_channels=None, phasing_angles=array([-9.59931089e-01, -7.14608352e-01, -5.13801244e-01, -3.33826648e-01, -1.64572284e-01, 1.11022302e-16, 1.64572284e-01, 3.33826648e-01, 5.13801244e-01, 7.14608352e-01, 9.59931089e-01]), ref_index=1.75, trigger_adc=False, clock_offset=0, adc_output='voltage', trigger_filter=None, upsampling_factor=1, window=32, step=16, apply_digitization=True)[source]
simulates phased array trigger for each event
Several channels are phased by delaying their signals by an amount given by a pointing angle. Several pointing angles are possible in order to cover the sky. The array triggered_channels controls the channels that are phased, according to the angles phasing_angles.
- Parameters:
- station: Station object
Description of the current station
- det: Detector object
Description of the current detector
- Vrms: float
RMS of the noise on a channel, used to automatically create the digitizer reference voltage. If set to None, tries to use reference voltage as defined int the detector description file.
- threshold: float
threshold above (or below) a trigger is issued, absolute amplitude
- triggered_channels: array of ints
channels ids of the channels that form the primary phasing array if None, all channels are taken
- phasing_angles: array of float
pointing angles for the primary beam
- ref_index: float (default 1.75)
refractive index for beam forming
- trigger_adc: bool (default True)
If True, uses the ADC settings from the trigger. It must be specified in the detector file. See analogToDigitalConverter module for information (see option apply_digitization)
- clock_offset: float (default 0)
Overall clock offset, for adc clock jitter reasons (see apply_digitization)
- adc_output: string (default ‘voltage’)
‘voltage’ to store the ADC output as discretised voltage trace
‘counts’ to store the ADC output in ADC counts
- trigger_filter: array floats (default None)
Freq. domain of the response to be applied to post-ADC traces Must be length for “MC freq”
- upsampling_factor: integer (default 1)
Upsampling factor. The trace will be a upsampled to a sampling frequency int_factor times higher than the original one after conversion to digital
- window: int (default 32)
Power integral window Units of ADC time ticks
- step: int (default 16)
Time step in power integral. If equal to window, there is no time overlap in between neighboring integration windows. Units of ADC time ticks
- apply_digitization: bool (default True)
Perform the quantization of the ADC. If set to true, should also set options trigger_adc, adc_output, clock_offset
- Returns:
- is_triggered: bool
True if the triggering condition is met
- trigger_delays: dictionary
the delays for the primary channels that have caused a trigger. If there is no trigger, it’s an empty dictionary
- trigger_time: float
the earliest trigger time with respect to first interaction time.
- trigger_times: dictionary
all time bins that fulfil the trigger condition per beam. The key is the beam number. Time with respect to first interaction time.
- maximum_amps: list of floats (length equal to that of phasing_angles)
the maximum value of all the integration windows for each of the phased waveforms
- run(evt, station, det, Vrms=None, threshold=0.06, triggered_channels=None, trigger_name='simple_phased_threshold', phasing_angles=array([-9.59931089e-01, -7.14608352e-01, -5.13801244e-01, -3.33826648e-01, -1.64572284e-01, 1.11022302e-16, 1.64572284e-01, 3.33826648e-01, 5.13801244e-01, 7.14608352e-01, 9.59931089e-01]), set_not_triggered=False, ref_index=1.75, trigger_adc=False, clock_offset=0, adc_output='voltage', trigger_filter=None, upsampling_factor=1, window=32, step=16, apply_digitization=True, pre_trigger_time=None)[source]
Simulates phased array trigger for each event.
Several channels are phased by delaying their signals by an amount given by a pointing angle. Several pointing angles are possible in order to cover the sky. The array triggered_channels controls the channels that are phased, according to the angles phasing_angles.
- Parameters:
- evt: Event object
Description of the current event
- station: Station object
Description of the current station
- det: Detector object
Description of the current detector
- Vrms: float
RMS of the noise on a channel, used to automatically create the digitizer reference voltage. If set to None, tries to use reference voltage as defined int the detector description file.
- threshold: float
threshold above (or below) a trigger is issued, absolute amplitude
- triggered_channels: array of ints
channels ids of the channels that form the primary phasing array if None, all channels are taken
- trigger_name: string
name for the trigger
- phasing_angles: array of float
pointing angles for the primary beam
- set_not_triggered: bool (default False)
If True, no trigger simulation will be performed and this trigger will be set to not_triggered
- ref_index: float (default 1.75)
refractive index for beam forming
- trigger_adc: bool, (default True)
If True, uses the ADC settings from the trigger. It must be specified in the detector file. See analogToDigitalConverter module for information
- clock_offset: float (default 0)
Overall clock offset, for adc clock jitter reasons
- adc_output: string (default ‘voltage’)
‘voltage’ to store the ADC output as discretised voltage trace
‘counts’ to store the ADC output in ADC counts
- trigger_filter: array floats (default None)
Freq. domain of the response to be applied to post-ADC traces Must be length for “MC freq”
- upsampling_factor: integer (default 1)
Upsampling factor. The trace will be a upsampled to a sampling frequency int_factor times higher than the original one after conversion to digital
- window: int (default 32)
Power integral window Units of ADC time ticks
- step: int (default 16)
Time step in power integral. If equal to window, there is no time overlap in between neighboring integration windows. Units of ADC time ticks
- apply_digitization: bool (default True)
Perform the quantization of the ADC. If set to true, should also set options trigger_adc, adc_output, clock_offset
- pre_trigger_time: float or dict of floats
Defines the amount of trace recorded before the trigger time. This module does not cut the traces, but this trigger property is later used to trim traces accordingly. if a dict is given, the keys are the channel_ids, and the value is the pre_trigger_time between the start of the trace and the trigger time. if only a float is given, the same pre_trigger_time is used for all channels If none, the default value of the Trigger class is used, which is currently 55ns.
- Returns:
- is_triggered: bool
True if the triggering condition is met