[ Identification | Description | Input parameters | Output parameters | Links ]

# The `Pol_mirror` Component

Polarising mirror.

## Identification

- Author: Peter Christiansen
- Origin: RISOE
- Date: July 2006
- Version: 1.4

## Description

    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 | 1

## Output parameters

Name | Unit | Description | Default
--- | --- | --- | ---
rUpParPtr |  |  |
rDownParPtr |  |  |

## Links

- Source code for `Pol_mirror.comp`.

[ Identification | Description | Input parameters | Output parameters | Links ]