#!/usr/bin/env /proj/axaf/bin/perlwrap use warnings; # Modify the calalign files to reflect improved calibration of ACIS-S # fid sim-Z dependence use lib '/proj/axaf/simul/lib/perl'; # use Analysis::Run; # use CXC::Envs; use Ska::Process qw(run_tool); # baffin-693: plot_simz.pl # Number of data points: 144 # DY coeffs: [0.0028072378 -0.0033344999 -3.2135358e-05] (mm) # DZ coeffs: [-0.0044972804 0.0030785254 -0.000128211] (mm) # # These coefficients are applied to all ACIS fid lights. Future # investigations may reveal specifically which fids are being # distorted, but this appears to give a good average correction. $arcsec_per_mm = 20.0; # approximately.. @dy = (0.0028072378, -0.0033344999, -3.2135358e-05); @dz = (-0.0044972804, 0.0030785254, -0.000128211); # Set min and max adjustments (in arcsec, but convert to mm) ($dy_min, $dz_min, $dy_max, $dz_max) = map { 1000 * $_ / $arcsec_per_mm } (-0.5, -0.5, 1.0, 0.5); # Set row offset %row_off = (acis_s => 0, acis_i => 6, hrc_s => 12, hrc_i => 16); $row_off = $row_off{acis_s}; # %ENV = CXC::Envs::ftools(); # Analysis::Run::Configure(Verbose => 1); # (this program is really poorly written..) foreach $file (@ARGV) { print "$file\n"; foreach $row (1 .. 6) { for $i (0 .. $#dy) { # Y coefficients run_tool('fpartab', fitsfile => "${file}\[2\]", value => -$dy[$i], column => 'fid_y_corr', row => $row_off + $row, element => $i+1); # Z coefficients run_tool('fpartab', fitsfile => "${file}\[2\]", value => -$dz[$i], column => 'fid_z_corr', row => $row_off + $row, element => $i+1); } # Y limits run_tool('fpartab', fitsfile => "${file}\[2\]", value => $dy_min, column => 'fid_y_lim', row => $row_off + $row, element => 1); run_tool('fpartab', fitsfile => "${file}\[2\]", value => $dy_max, column => 'fid_y_lim', row => $row_off + $row, element => 2); # Z limits run_tool('fpartab', fitsfile => "${file}\[2\]", value => $dz_min, column => 'fid_z_lim', row => $row_off + $row, element => 1); run_tool('fpartab', fitsfile => "${file}\[2\]", value => $dz_max, column => 'fid_z_lim', row => $row_off + $row, element => 2); } }