# Laue Lens Library

The code used for the Monte Carlo simulations is developed in Python. It describes the lens geometry and the diffraction process which concentrates the incident photons on the lens crystals towards the lens focal point. The lens is made of a spherical cup filled with crystal tiles distributed in concentric rings around the lens axis.

The software consists of a number of functions each responsible of a given task (photon production, crystal definition, lens geometry, physics of the processes, data acquisition).

The user interacts with the code providing the parameters required for the definition of the lens properties. The crystal tiles can be made of a single or more materials, while the diffraction planes of each crystal material are defined through the Miller indices. The user must provide the crystal dimensions (l along the crystal curvature, s along the normal (non-focusing) direction and t the crystal thickness), while the tile spatial position and the orientation angles are independently calculated by the software once the Laue lens radial extension and focal length are provided. The crystals can be either flat or bent and, in the latter case, the curvature radius

of each tile must be provided. Each crystal can be correctly oriented at its nominal position or misaligned within a given range with respect to the nominal orientation. Moreover, the crystal curvature radius can be either set at the nominal value or distributed over a range of curvature radii

centered at the nominal radius and following a uniform or a Gaussian distribution. Depending on the lens energy passband and on the lens focal length, the total number of crystals, arranged into rings or sectors, also depends on the adjustable inter-distances between contiguous tiles.