This component models a rectangular infinitely thin mirror.
For an unrotated component, the mirror surface lies in the Y-Z
plane (ie. parallel to the beam).
It relies on similar physics as the Monochromator_pol.
The reflec function (see e.g. share/ref-lib for examples) and parameters
are passed to this component to give a bigger freedom.
The up direction is hardcoded to be along the y-axis (0, 1, 0)
For now we assume:
P(Transmit|Q) = 1 - P(Reflect|Q)
i.e. NO ABSORPTION!
There are 3 options:
1) Reflect and transmit (randomly choose) [default]
2) Only reflect (reduce weight)
3) Only transmit (reduce weight)
The parameters can either be
double pointer initializations (e.g. {1.0, 0.0219, 6.07, 2.0, 0.003})
or table names (e.g."supermirror_m2.rfl" AND useTables=1).
NB! This might cause warnings by the compiler that can be ignored.
Examples:
Reflection function parametrization
Pol_mirror(zw = 0.40, yh = 0.40, option=1,
rUpFunc=StdReflecFunc, rUpPar={1.0, 0.0219, 6.07, 2.0, 0.003})
Table function
Pol_mirror(zw = 0.40, yh = 0.40, option=2,
rUpFunc=TableReflecFunc, rUpPar="supermirror_m2.rfl",
rDownFunc=TableReflecFunc, rDownPar="supermirror_m3.rfl",
useTables=1)
See also the example instrument Test_Pol_Mirror (under tests).
GRAVITY: YES
POLARISATION: YES
%BUGS
NO ABSORPTION
Input parameters
Parameters in boldface are required;
the others are optional.
Name
Unit
Description
Default
rUpFunc
1
Reflection function for spin up (q, *par, *r)
StdReflecFunc
rDownFunc
1
Reflection function for spin down (q, *par, *r)
rUpFunc
rUpPar
1
Parameters for rUpFunc
{0.99
rDownPar
1
Parameters for rDownFunc
rUpPar
useTables
1
Parameters are 0: Values, 1: Table names
0
zw
m
Width of the mirror
yh
m
Height of the mirror
option
1
1:Reflect/trasmit, 2:Reflect only, 3:Transmit only