NAME
CXC::Optics::Prescription::LVS::Mirror - Parsing and extracting LVS mirror prescriptions
VERSION
version 0.01
SUBROUTINES
load_mirror_model
$model = CXC::Optics::Prescription::LVS::Mirror->load_mirror_model( $model_name );
Creates a CXC::Optics::Prescription::LVS::Mirror object from the pre-parsed model with the given name.
Available models are:
ek05lvs
parse_mirror_output
$model = parse_mrror_output( $file );
Creates a CXC::Optics::Prescription::LVS::Mirror object by parsing the output file written by LVS' mirror program.
METHODS
prescriptions
@prescriptions = $model->prescriptions;
Return the prescription for the model. Linear parameters are in mm. The prescriptions are returned as an array indexed off of the mirror number (1-6).
Each array element looks like this:
{
primary => {
d => 2.49570504674018,
e => 1,
'e-1' => 0,
zoff => 10069.2189948357
},
secondary => {
d => 2.49723582188823,
e => 1.00024809920262,
'e-1' => 0.000248099202621096,
zoff => 0
},
}
osac_prescriptions
@prescriptions = $model->osac_prescriptions;
Return the OSAC prescription for the model. Linear parameters are in mm. The prescriptions are returned as an array indexed off of the mirror number (1-6).
Each array element looks like this:
{
primary => {
k => -2.49570504674018,
p => 0,
rho_0 => 320.569777256348,
z_0 => 419.1
},
secondary => {
k => -7.26202481526188,
p => -0.000496259958456534,
rho_0 => 306.098516687762,
z_0 => 1338.1
},
}
axial_distances
@distances = $model->axial_distances;
Return the axial distances in mm from the focal plane to the primary
, secondary
, and intersect plane
for each shell.
The distances are returned as an array indexed off of the mirror number (1-6). Each array element looks like this:
{
intersect_plane => -3.12348,
primary => {
back => 40.4,
front => 878.6
},
secondary => {
back => -878.6,
front => -40.4
},
}
dimensions
@distances = $model->dimensions;
Return the optic and intersect plane dimensions, in mm. primary
, secondary
, and intersect plane
for each shell.
The distances are returned as an array indexed off of the mirror number (1-6). Each array element looks like this:
{
intersect_plane => {
radius => 316.96956
},
primary => {
length => 838.2,
radius => {
back => 317.29022,
front => 323.81612
}
},
secondary => {
length => 838.2,
radius => {
back => 296.13584,
front => 316.02294
}
},
}
grazing_angles
@angles = $model->grazing_angles;
Return the grazing angles, in radians.
The angles are returned as an array indexed off of the mirror number (1-6). Each array element looks like this:
{
primary => 0.0149014052178367,
secondary => 0.0149201261086361
}
SEE ALSO
Please see those modules/websites for more information related to this module.
AUTHOR
Diab Jerius <djerius@cpan.org>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2018 by Smithsonian Astrophysical Observatory.
This is free software, licensed under:
The GNU General Public License, Version 3, June 2007