#!/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);
	
    }
}



