NuRadioReco.detector.response module
- class NuRadioReco.detector.response.Response(frequency, y, y_unit, time_delay=0, weight=1, name='default', station_id=None, channel_id=None, remove_time_delay=True, debug_plot=False, log_level=0, attenuator_in_dB=0)[source]
Bases:
object
This class provides an interface to read-in and apply the complex response functions of the various components of the signal chain of a RNO-G channel. The class allows to combine the response of several components into one response by multiplying them.
Examples
response = det.get_signal_chain_response(station_id=24, channel_id=0) # Multipy the response to a trace. The multiply operator takes care of everything trace_at_readout = trace_at_antenna * response # getting the complex response as array freq = np.arange(50, 1000) * units.MHz complex_resp = response(freq)
Methods
__call__
(freq[, component_names, blacklist])Returns the complex response for a given frequency.
Get list of the names of all individual responses
Get time delay from DB
remove
(name)Remove a component response from the response object.
plot
- Parameters:
- frequencylist(float)
The frequency vector at which the response is measured. Unit has to be GHz.
- y[list(float), list(float)]
The measured response. First entry is the vector of the measured amplitude, the second entry is the measured phase. The unit of both entries is specified with the next argument.
- y_unit[str, str]
The first entry specifies the unit of the measured amplitude. Options are “dB”, “MAG” and “mag”. The second entry specifies the unit of the measured phase. Options are “rad” and “deg”.
- time_delayfloat (Default: 0)
“Average” group delay. Read from database. Will be used to normalize the phase and stored alongside response
- weightfloat (Default: 1)
Specifies the weight with which this component reponse “adds” to the total signal-chain response or data. Its the exponent of the complex multiplicitive gain. That means that a value of 1 means to linear multiply this reponse while a value of -1 means to divide by this reponse.
- namestr (Default: “default”)
Give the response a name. This is only use for printing purposes.
- station_idint (Default: None)
Associated station id.
- channel_idint (Default: None)
Associated channel id.
- remove_time_delaybool (Default: True)
If True, remove time_delay from response.
- debug_plotbool (Default: False)
If True, produce a debug plot
- attenuator_in_dBfloat (Default: 0)
Allows to add an additional attenuation/gain to the response. This is useful to simulate or correct of the the effect of an attenuator. The value is in dB. A value of 10dB will increase the response by 10 dB. (Default: 0 -> no attenuation)
- log_levellogging.LOG_LEVEL (Default: logging.NOTSET)
Overrides verbosity level of logger. Other options are:
logging.WARNING
,logging.DEBUG
, …
Methods
__call__
(freq[, component_names, blacklist])Returns the complex response for a given frequency.
Get list of the names of all individual responses
Get time delay from DB
remove
(name)Remove a component response from the response object.
plot
- NuRadioReco.detector.response.subtract_time_delay_from_response(frequencies, resp, phase=None, time_delay=None)[source]
Remove a constant time delay from a complex response function
- Parameters:
- frequenciesarray of floats
Corresponding frequencies
- resparray of (complex) floats
Complex response function (if phase is None), Real gain of a complex response function (if phase is not None).
- phasearray of floats
Phase of the complex response function (optional). (Default: None)
- time_delayfloat
Time delay to be removed
- Returns:
- resp: array of complex floats
Corrected response function