Modelling the vignetting function of eROSITA

This is a holding page to gather together notes on producing an analytic vignetting model for eSASS tasks

Problem: The current method to represent the eROSITA vignetting function in the eSASS required interpolation from a tabulated grid of calibration measurements, this is computationally awkward, and can lead to discontinuities in the derived system response. Desired improvement: Compute an analytic description of the vignetting function of each eROSITA telescope module, and save the parameters of this model into the CALDB

Zeroth order model (TD)

Input data

Derivation of model parameters

Figures demonstrating the fit

Vignetting model fitted to SIXTE file at defined energies Trends of vignetting model parameters with energy

The parameters describing the model

Results of fits at each energy:

Energy=    1.25 keV: theta0= 0.44966 +-  0.02004  beta=-1.02111 +-  0.05693  alpha= 1.71288 +-  0.01767
Energy=       4 keV: theta0= 0.22575 +-  0.00860  beta=-0.83151 +-  0.04289  alpha= 1.97408 +-  0.03523
Energy=     7.5 keV: theta0= 0.10547 +-  0.00350  beta=-0.50753 +-  0.03063  alpha= 2.52732 +-  0.09069

coeff[1,1],coeff[2,1],coeff[3,1] = [ 0.44966, -1.02111, 1.71288]
coeff[1,2],coeff[2,2],coeff[3,2] = [ 0.22575, -0.83151, 1.97408]
coeff[1,3],coeff[2,3],coeff[3,3] = [ 0.10547, -0.50753, 2.52732] 

emin = 0.0
emax = 7.5
clip(eraw) = (eraw<emin?emin:(eraw>emax?emax:eraw))

lagr(x,x1,x2,x3,y1,y2,y3) = y1*((x-x2)/(x1-x2))*((x-x3)/(x1-x3)) + y2*((x-x1)/(x2-x1))*((x-x3)/(x2-x3)) + y3*((x-x1)/(x3-x1))*((x-x2)/(x3-x2))

f_theta0(energy) = lagr(clip(energy),e[1],e[2],e[3],coeff[1,1],coeff[1,2],coeff[1,3])
f_beta(energy)   = lagr(clip(energy),e[1],e[2],e[3],coeff[2,1],coeff[2,2],coeff[2,3])
f_alpha(energy)  = lagr(clip(energy),e[1],e[2],e[3],coeff[3,1],coeff[3,2],coeff[3,3])

vign_gen(oa,energy) = vign(oa,f_theta0(energy),f_beta(energy),f_alpha(energy))

Vignetting model at arbitrary energies

Description of model in CALDB

Using the analytic vignetting model in eSASS