Source code for blissoda.tests.mock_id31.attenuator
import numpy
[docs]
def SiO2trans(E, att_position):
"""
:param E: energy in keV
:param att_position: attenuator position (raw bits field value)
:returns: oyield
"""
coeff = [-0.0030624, 0.16457, -2.708, 20.659, -80.612, 153.42, -109.27]
ln_E = numpy.log(numpy.asarray(E))
muL = 0.0
for c in coeff:
muL = muL * ln_E + c
muL = numpy.exp(muL) # 1/cm
thickness = numpy.asarray(att_position) * 1.25 # cm
return numpy.exp(-thickness * muL)