PerfectLens

class marxs.optics.PerfectLens(**kwargs)[source] [edit on github]

Bases: FlatOpticalElement

This describes an infinitely large lens that focusses all rays exactly.

This lens is just perfect, it has no astigmatism, no absorption, etc. It is computationally cheap and if the details of the mirror are not important to the simulation, a perfect lens might provide an approximation for X-ray focussing. In many cases the PerfectLens will be combined with some blur function (e.g. random scatter by 1 arcsec) to achieve a simple approximation to some mirror specification.

Parameters:
focal_lengthfloat

The focal length of the lens in mm.

d_center_optical_axisfloat

Distance between the optical axis and the center of this element in mm. The optical axis is located in -z direction, and the normal pos4d keywords should be used to give the size, location, and rotation of this element.

reflectivity_interpolatorcallable

Callable that accepts energy and reflectivity angle and grid as input and returns the probability of single reflection. The calling signature is written to match a scipy.interpolate.RectBivariateSpline; grid is set to False to evaluate on a list of points. Default is to always return 1.

Define a new MARXS element.

Attributes Summary

display

Dictionary for display specifications, e.g. color.

loc_coos_name

Methods Summary

specific_process_photons(photons, intersect, ...)

Attributes Documentation

display = {'color': (0.0, 0.5, 0.0), 'opacity': 0.5, 'shape': 'box'}

Dictionary for display specifications, e.g. color

loc_coos_name = ['mirror_x', 'mirror_y']

Methods Documentation

specific_process_photons(photons, intersect, interpos, intercoos)[source] [edit on github]