#!/usr/local/bin/perl 

# re-format Spitzer bandpass files to .par format

@bands=("1", "2", "3", "4", "24", "70", "160");
$jegdir="spitzer";
foreach $band (@bands) {
    if ($band =~ /^\d$/){
	$instrument= "IRAC";
	$filename= "$jegdir/irac_tr$band.dat";
	$outfilename= "./spitzer_irac_ch$band.par";
    }else{
	$instrument= "MIPS";
	$filename= "$jegdir/MIPSfiltsumm\_$band.txt";
	$outfilename= "./spitzer_mips\_$band.par";
    }
    print "$filename -> $outfilename\n";
    open(ofp,">$outfilename");

    print ofp "# Units:\n";
    print ofp "#   \"lambda\" is in Angstroms\n";
    print ofp "#   \"pass\"   is *probably* the contribution to the detector signal\n";
    print ofp "#            per photon\n";
    print ofp "# Bandpass Name:\n";
    print ofp "#   ch$band\n";
    print ofp "# Instrument:\n";
    print ofp "#   Spitzer $instrument\n";
    print ofp "# Notes:\n";
    print ofp "#   - Original data from\n";
    print ofp "#     \"http://ssc.spitzer.caltech.edu/irac/spectral_response.html\"\n";
    print ofp "#   - \".par\" file built automatically by processspitzer.\n";

    print ofp "\ntypedef struct {\n";
    print ofp "  double lambda;\n";
    print ofp "  double pass;\n";
    print ofp "} KFILTER;\n\n";
    open(ifp,"<$filename");
    while(<ifp>) {
	if(/^\s*(\d+\.\d+)\s+(\d+\.\d+)\s+/){
	    $lambda= $1*10000.0;
	    $pass= $2;
	    printf ofp "KFILTER %8.1f %9.6f\n",$lambda,$pass;
	}
    }
    close(ifp);
    close(ofp);
}
