A class encapsulating the multilayer reflection of a ray.
More...
#include <rl_DielectricLayer.h>
|
| ~rl_DielectricLayer () |
| Destructor.
|
|
| rl_DielectricLayer (char const layer_name[]=0) |
| Constructor. More...
|
|
| rl_DielectricLayer (rl_DielectricLayer const &other) |
| DEEP Copy constructor. More...
|
|
| rl_DielectricLayer (rl_Traits::rl_DielectricPOD const *diel, std::size_t ndielpts, double layer_thickness, double roughness, rl_Traits::ERoughType roughness_type, rl_Traits::EInterpMode interp_mode, double bulkdensity, char const *layer_name, rl_Traits::Bool is_substrate=rl_Traits::False) |
| Constructor. More...
|
|
void | init (rl_Traits::rl_DielectricPOD const *diel, std::size_t ndielpts, double layer_thickness, double roughness, rl_Traits::ERoughType roughness_type, rl_Traits::EInterpMode interp_mode, double bulkdensity, char const *layer_name, rl_Traits::Bool is_substrate=rl_Traits::False) |
| Initializer. More...
|
|
int | setup_for (double energy, double sinphi) |
| Set up layer state for given energy and graze angle. More...
|
|
void | reflect_nlayer (rl_DielectricLayer layer[], int num) |
| Compute reflectivity for a stack of num layers. More...
|
|
void | reflect_amp (rl_DielectricLayer const &layer, double sinphi) |
| Compute reflection amplitude for the interface between this layer and the layer immediately above it. More...
|
|
complex const & | propagator () const |
| The propagator for this layer. More...
|
|
double | alpha () const |
| Returns this layer's dielectric decrement (real part). More...
|
|
double | gamma () const |
| Returns this layer's dielectric decrement (imag part). More...
|
|
double | roughness () const |
| Returns the roughness parameter of the upper surface of this layer. More...
|
|
ERoughType | roughness_type () const |
| Returns the roughness type of the upper surface of this layer. More...
|
|
rl_ReflectionCoefPOD const & | reflection_coef () const |
| Returns this layer's complex reflection coefficient. More...
|
|
double | reflectivity (double polarization_factor=0.0) const |
| Returns: this layer's reflectivity. More...
|
|
rl_Traits::Bool | is_substrate () const |
|
rl_Traits::Bool | is_vacuum () const |
|
char const * | layer_name () const |
|
double | energy_min () const |
|
double | energy_max () const |
|
double | thickness () const |
|
double | zcoat () const |
|
double | bulk_density_factor () const |
|
std::ostream & | dump_on (std::ostream &os, char const pre[]="", char const pst[]="") const |
| Dumps layer information to a stream. More...
|
|
void | cdump_on (std::FILE *of, char const pre[]="", char const pst[]="") const |
| Dumps layer information to a C-style FILE* stream. More...
|
|
void | cprint_constraints_on (std::FILE *of, char const pre[]="", char const pst[]="") const |
| Dumps layer information and constraints to a C-style FILE* stream. More...
|
|
A class encapsulating the multilayer reflection of a ray.
Given the energy and the sine of the graze angle, the reflection coefficient is evaluated.
Definition at line 60 of file rl_DielectricLayer.h.
◆ rl_DielectricLayer() [1/3]
rl_DielectricLayer::rl_DielectricLayer |
( |
char const |
layer_name[] = 0 | ) |
|
Constructor.
By default, constructs a VACUUM layer. Use init method to initialize for conditions other than vacuum.
- Parameters
-
layer_name | optional string naming the layer. |
Definition at line 56 of file rl_DielectricLayer.cc.
◆ rl_DielectricLayer() [2/3]
◆ rl_DielectricLayer() [3/3]
Constructor.
- Parameters
-
diel | array of dielectric decrement information. |
ndielpts | number of points in diel array. |
layer_thickness | layer thickness (Angstroms). |
roughness | layer roughness'' (Angstroms). @param roughness_type interlayer grading roughness'' type. |
interp_mode | type of optical constant interpolation to be done. |
bulkdensity | relative bulk density factor; 1 for full bulk density. |
layer_name | string describing the layer composition. |
is_substrate | boolean: True if this is the substrate layer. |
Definition at line 140 of file rl_DielectricLayer.cc.
◆ alpha()
double rl_DielectricLayer::alpha |
( |
| ) |
const |
|
inline |
Returns this layer's dielectric decrement (real part).
- Returns
- this layer's dielectric decrement (real part).
Definition at line 524 of file rl_DielectricLayer.h.
◆ bulk_density_factor()
double rl_DielectricLayer::bulk_density_factor |
( |
| ) |
const |
|
inline |
- Returns
- the relative bulk density for this layer. 1.0 is nominal full bulk density
Definition at line 576 of file rl_DielectricLayer.h.
◆ cdump_on()
void rl_DielectricLayer::cdump_on |
( |
std::FILE * |
of, |
|
|
char const |
pre[] = "" , |
|
|
char const |
pst[] = "" |
|
) |
| const |
Dumps layer information to a C-style FILE* stream.
- Parameters
-
of | output file. |
pre | optional prefix string. |
pst | optional postfix string. |
Definition at line 832 of file rl_DielectricLayer.cc.
◆ cprint_constraints_on()
void rl_DielectricLayer::cprint_constraints_on |
( |
std::FILE * |
of, |
|
|
char const |
pre[] = "" , |
|
|
char const |
pst[] = "" |
|
) |
| const |
Dumps layer information and constraints to a C-style FILE* stream.
- Parameters
-
of | output file. |
pre | optional prefix string. |
pst | optional postfix string. |
Definition at line 876 of file rl_DielectricLayer.cc.
◆ dump_on()
std::ostream & rl_DielectricLayer::dump_on |
( |
std::ostream & |
os, |
|
|
char const |
pre[] = "" , |
|
|
char const |
pst[] = "" |
|
) |
| const |
Dumps layer information to a stream.
- Parameters
-
os | stream. |
pre | optional prefix string. |
pst | optional postfix string. |
Definition at line 787 of file rl_DielectricLayer.cc.
◆ energy_max()
double rl_DielectricLayer::energy_max |
( |
| ) |
const |
|
inline |
◆ energy_min()
double rl_DielectricLayer::energy_min |
( |
| ) |
const |
|
inline |
◆ gamma()
double rl_DielectricLayer::gamma |
( |
| ) |
const |
|
inline |
Returns this layer's dielectric decrement (imag part).
- Returns
- this layer's dielectric decrement (imag part).
Definition at line 528 of file rl_DielectricLayer.h.
◆ init()
Initializer.
- Parameters
-
diel | array of dielectric decrement information. |
ndielpts | number of points in diel array. |
layer_thickness | layer thickness (Angstroms). |
roughness | interlayer grading "roughness" (Angstrom). |
roughness_type | interlayer grading "roughness" type. |
interp_mode | type of optical constant interpolation to be done. |
bulkdensity | relative bulk density factor; 1 for full bulk density. |
layer_name | string describing the layer composition. |
is_substrate | boolean: True if this is the substrate layer. |
Definition at line 157 of file rl_DielectricLayer.cc.
◆ is_substrate()
- Returns
- rl_Traits::True if this layer is the substrate, rl_Traits::False otherwise.
Definition at line 556 of file rl_DielectricLayer.h.
◆ is_vacuum()
- Returns
- rl_Traits::True if this layer is the vacuum, rl_Traits::False otherwise.
Definition at line 560 of file rl_DielectricLayer.h.
◆ layer_name()
char const * rl_DielectricLayer::layer_name |
( |
| ) |
const |
|
inline |
◆ propagator()
The propagator for this layer.
- Returns
- propagator for this layer.
Definition at line 520 of file rl_DielectricLayer.h.
◆ reflect_amp()
Compute reflection amplitude for the interface between this layer and the layer immediately above it.
sinphi is the graze angle at the topmost layer (i.e., in vacuum). Layer "layer" is assumed to be adjacent to this layer, with "layer" nearer the vacuum and this layer nearer the substrate. The reflection coefficient for this layer is updated.
PRECONDITION: The layers must be pre-initialized with setup_for
- Parameters
-
layer | adjacent layer above this layer, where above means closer to the vacuum. |
sinphi | sine of the graze angle between the ray (in vacuum) and the top surface of the multilayer. |
Definition at line 320 of file rl_DielectricLayer.cc.
◆ reflect_nlayer()
Compute reflectivity for a stack of num layers.
PRECONDITION: The layers must be pre-initialized with setup_for and the reflection coefficients evaluated with reflect_amp.
- Parameters
-
layer | array of layers. |
num | number of layers in the array. |
Definition at line 516 of file rl_DielectricLayer.cc.
◆ reflection_coef()
Returns this layer's complex reflection coefficient.
- Returns
- this layer's complex reflection coefficient.
Definition at line 548 of file rl_DielectricLayer.h.
◆ reflectivity()
double rl_DielectricLayer::reflectivity |
( |
double |
polarization_factor = 0.0 | ) |
const |
|
inline |
Returns: this layer's reflectivity.
- Parameters
-
polarization_factor | - polarization factor; it must be a value between -1 and 1. |
The polarization factor is related to parallel (p) and perpendicular (s) polarization by: polarization_factor
or polarization_factor
where
are the perpendicular and parallel E-field intensities, respectively. Thus,
- -1: pure parallel (p) polarization.
- 0: completely unpolarized.
- +1: pure perpendicular (s) polarization.
- Returns
- this layer's reflectivity
Definition at line 552 of file rl_DielectricLayer.h.
◆ roughness()
double rl_DielectricLayer::roughness |
( |
| ) |
const |
|
inline |
Returns the roughness parameter of the upper surface of this layer.
- Returns
- the roughness parameter of the upper surface of this layer.
Definition at line 544 of file rl_DielectricLayer.h.
◆ roughness_type()
Returns the roughness type of the upper surface of this layer.
- Returns
- the roughness type of the upper surface of this layer.
Definition at line 540 of file rl_DielectricLayer.h.
◆ setup_for()
int rl_DielectricLayer::setup_for |
( |
double |
energy, |
|
|
double |
sinphi |
|
) |
| |
Set up layer state for given energy and graze angle.
- Parameters
-
energy | energy (keV). |
sinphi | sine of the graze angle between the ray (in vacuum) and the top surface of the multilayer. |
Definition at line 220 of file rl_DielectricLayer.cc.
◆ thickness()
double rl_DielectricLayer::thickness |
( |
| ) |
const |
|
inline |
◆ zcoat()
double rl_DielectricLayer::zcoat |
( |
| ) |
const |
|
inline |
The documentation for this class was generated from the following files: