ECLAIRsDetectorEffect

class ECLAIRsDetectorEffect[source]

Bases: object

Implementation of detector effects (ARF, IRF, RMF)

Constructor

Read ARF, IRF, RMF and return values/products or processing expected by ECPI

Warning

2015 version with old mask so IRF isn’t up-to-date, ARF is in approximative percent format

Attributes Summary

chan_boundary
chan_center
chan_step

Methods Summary

arf_percent()
chan_nb()
get_energymax_val(chan) Return energy value in a given channel index.
get_energymin_val(chan) Return energy value in a given channel index.
get_irf_array_ijecpi() Return raw IRF array from EIC
get_irf_val_ecllos(y_pix, z_pix[, channel, ngp]) Return IRF value at position with ECLLos referential in pixel unit
get_list_rv_rmf() return a list of generator object for each channel
get_rmf_max_channel_def(channel) return channel where rmf becomes and stay to zero
get_rmf_norm(channel) Normalize rmf distribution
get_rmf_raw(channel)
return:rmf of channel as readed in EIC file
plot_irf([p_mes])
reduce_channel(nb_chan)
set_arf(path_arf) Set ARF related attributes from file path
set_irf(path_irf) Set IRF related attributes from file path
set_rmf(path_rmf) Set RMF related attributes from file path
simu_rmf_channel(channel, nb_photon) Compute RMF for only one channel

Attributes Documentation

chan_boundary
chan_center
chan_step

Methods Documentation

arf_percent()[source]
chan_nb()[source]
get_energymax_val(chan)[source]

Return energy value in a given channel index.

Parameters:chan (int) – upper channel index
Returns:energy value
Return type:float
get_energymin_val(chan)[source]

Return energy value in a given channel index.

Parameters:chan (int) – lower channel index
Returns:energy value
Return type:float
get_irf_array_ijecpi()[source]

Return raw IRF array from EIC

Returns:raw IRF array, ie IRF value for pixel center in array 199x199
Return type:2D numpy array 199x199
get_irf_val_ecllos(y_pix, z_pix, channel=None, ngp=False)[source]

Return IRF value at position with ECLLos referential in pixel unit

Warning

problem with border with array 199x199 ? Need to extrapolate ?

Parameters:y_pix (float) – y position in ECLLos referential in pixel unit

:param z_pix:z position in ECLLos referential in pixel unit :type z_pix: float :param channel: Energy channel index in EIC convention. Default is None. :type channel: int :param ngp: flag to opt for the Nearest Grid Position algorithm. Default is False. :type ngp: bool :param verbose: flag to enable/disable printing of the IRF coeff value. Default is False. :type verbose: bool :return: value of IRF at (y_pix, z_pix) :rtype: float

get_list_rv_rmf()[source]

return a list of generator object for each channel

Returns:list of generator object for each channel
Return type:generator object is an instance of scipy.stats.rv_discrete
get_rmf_max_channel_def(channel)[source]

return channel where rmf becomes and stay to zero :return: index of first zero on distribution :rtype: int

get_rmf_norm(channel)[source]

Normalize rmf distribution :return: rmf normalize :rtype: numpy array

get_rmf_raw(channel)[source]
Returns:rmf of channel as readed in EIC file
Return type:numpy array
plot_irf(p_mes='')[source]
reduce_channel(nb_chan)[source]
set_arf(path_arf)[source]

Set ARF related attributes from file path

Parameters:path_arf (str) – path to ARF file
set_irf(path_irf)[source]

Set IRF related attributes from file path

Parameters:path_irf (str) – path to IRF file
set_rmf(path_rmf)[source]

Set RMF related attributes from file path

Parameters:path_rmf (str) – path to RMF file
simu_rmf_channel(channel, nb_photon)[source]

Compute RMF for only one channel

Parameters:
  • channel (int) – [0..nb channel[
  • nb_photon (int) – number of incident photon in channel
Returns:

channel number where incident photon was detected

Return type:

numpy array with size nb_photon