NuRadioReco.modules.phasedarray package¶
Submodules¶
NuRadioReco.modules.phasedarray.triggerSimulator module¶
-
class
NuRadioReco.modules.phasedarray.triggerSimulator.
triggerSimulator
¶ Bases:
object
Calculates the trigger for a phased array with a primary and a secondary 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
-
begin
(debug=False, pre_trigger_time=100)¶
-
check_vertical_string
(station, det, triggered_channels)¶ Checks if the triggering antennas lie in a straight vertical line
-
end
()¶
-
get_antenna_positions
(station, det, triggered_channels=None, component=2)¶ Calculates the vertical coordinates of the antennas of the detector
-
get_beam_rolls
(station, det, triggered_channels, phasing_angles=array([-0.9250245, -0.76059219, -0.61880925, -0.49017544, -0.36987162, -0.25496423, -0.14341699, -0.03364725, 0.07571637, 0.1859996, 0.29863294, 0.41533762, 0.53842424, 0.67138216, 0.82030475]), ref_index=1.55, trigger_adc=False, upsampling_factor=None)¶ Calculates the delays needed for phasing the array.
-
get_channel_trace_start_time
(station, triggered_channels)¶
-
phased_trigger
(station, det, beam_rolls, sec_beam_rolls, triggered_channels, threshold, window_time=10.67, cut_times=(None, None), trigger_adc=False, upsampling_factor=None, nyquist_zone=None, bandwidth_edge=0.02)¶ Calculates the trigger for a certain phasing configuration. Beams are formed. A set of overlapping time windows is created and the square of the voltage is averaged within each window. If the average surpasses the given threshold squared times the number of antennas in any of these windows, a trigger is created. This is an ARA-like power trigger.
- station: Station object
Description of the current station
- det: Detector object
Description of the current detector
- beam_rolls: array of ints
Contains the integers for rolling the voltage traces (delays)
- sec_beam_rolls: array of ints
Contains the secondary beam integers for rolling the voltage traces (delays)
- triggered_channels: array of ints
Ids of the triggering channels
- threshold: float
Voltage threshold for a SINGLE antenna. It will be rescaled with the square root of the number of antennas.
- window_time: float
Width of the time window used in the power integration
- cut_times: (float, float) tuple
Times for cutting the trace. This helps reducing the number of noise-induced triggers.
- trigger_adc: bool
If True, analog to digital conversion is performed. It must be specified in the detector file. See analogToDigitalConverter module for information
- upsampling_factor: integer
Upsampling factor. The trace will be a upsampled to a sampling frequency int_factor times higher than the original one before conversion to digital
- nyquist_zone: integer
To be used with the trigger_adc function If None, the trace is not filtered If n, it uses the n-th Nyquist zone by applying an 8th-order Butterworth filter with critical frequencies: (n-1) * adc_sampling_frequency/2 + bandwidth_edge and n * adc_sampling_frequency/2 - bandwidth_edge
- bandwidth_edge: float
Frequency interval used for filtering the chosen Nyquist zone. See above
- 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
- sec_trigger_delays: dictionary
the delays for the secondary channels that have caused a trigger. If there is no trigger or no secondary channels, it’s an empty dictionary
-
run
(evt, station, det, threshold=0.06, triggered_channels=None, secondary_channels=None, trigger_name='simple_phased_threshold', phasing_angles=array([-0.9250245, -0.76059219, -0.61880925, -0.49017544, -0.36987162, -0.25496423, -0.14341699, -0.03364725, 0.07571637, 0.1859996, 0.29863294, 0.41533762, 0.53842424, 0.67138216, 0.82030475]), secondary_phasing_angles=array([-0.84280835, -0.68970072, -0.55449235, -0.43002353, -0.31241792, -0.19919061, -0.08853212, 0.02103456, 0.13085798, 0.24231627, 0.35698528, 0.47688093, 0.6049032, 0.74584345, 0.88139127]), set_not_triggered=False, window_time=10.67, coupled=True, ref_index=1.75, cut_times=(None, None), trigger_adc=False, upsampling_factor=None, nyquist_zone=None, bandwidth_edge=0.02)¶ 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. A secondary phasing that is added to this primary phasing is possible, and it is controlled by the parametres secondary_channels and secondary_phasing_angles.
- evt: Event object
Description of the current event
- station: Station object
Description of the current station
- det: Detector object
Description of the current detector
- 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
- secondary_channels: array of int
channel ids of the channels that form the secondary phasing array if None, no channels are taken
- trigger_name: string
name for the trigger
- phasing_angles: array of float
pointing angles for the primary beam
- secondary_phasing_angles: array of float
pointing angles for the secondary beam
- set_not_triggered: bool (default: False)
if True not trigger simulation will be performed and this trigger will be set to not_triggered
- window_time: float
Width of the time window used in the power integration
- coupled: bool
if True, the primary sub-beams are paired to the secondary sub-beams. if False, the primary sub-beams and the secondary sub-beams specify independent beams.
- ref_index: float
refractive index for beam forming
- cut_times: (float, float) tuple
Times for cutting the trace. This helps reducing the number of noise-induced triggers.
- trigger_adc: bool
If True, analog to digital conversion is performed. It must be specified in the detector file. See analogToDigitalConverter module for information
- upsampling_factor: integer
Upsampling factor. The trace will be a upsampled to a sampling frequency int_factor times higher than the original one before conversion to digital
- nyquist_zone: integer
To be used with the trigger_adc function If None, the trace is not filtered If n, it uses the n-th Nyquist zone by applying an 8th-order Butterworth filter with critical frequencies: (n-1) * adc_sampling_frequency/2 + bandwidth_edge and n * adc_sampling_frequency/2 - bandwidth_edge
- bandwidth_edge: float
Frequency interval used for filtering the chosen Nyquist zone. See above
- is_triggered: bool
True if the triggering condition is met
-