#! /usr/bin/perl #require "utils.pl"; #require "getopts.pl"; use File::Basename; #&Getopts('i:o:n:c:e'); ############################################# $alpha=2.1; $norm=10; #$mean_rms=0.73; $inp=$ARGV[0]; print "*** READING $inp ***\n"; $out=$inp; open INPP,">$inp.dat"; @spec=`cat $inp`; chomp @spec; $cnt1=0; foreach $sp (@spec){ ($null,$e1[$cnt1],$e2[$cnt1], $rate[$cnt1], $drate[$cnt1], $null)=split / +/,$sp; $rate[$cnt1]=$rate[$cnt1]/1000; $drate[$cnt1]=$drate[$cnt1]/1000; $crrate[$cnt1]=1; $dcrrate[$cnt1]=0.001; print INPP "$cnt1 $rate[$cnt1] $drate[$cnt1]\n"; $cnt1++; } close(INPP); $TFORM2=sprintf "%dE",$cnt1; $rmff="$out.rmf"; open COLS,">cols1"; print COLS "ENERG_LO 1e keV ENERG_HI 1e keV N_GRP I F_CHAN 1I N_CHAN 1I MATRIX $TFORM2 "; close COLS; open COLS,">cols2"; print COLS "CHANNEL J E_MIN E keV E_MAX E keV "; close COLS; open FITS, "|fcreate cols1 datafile=\"-\" outfile=\"$rmff\" tbltype=\"binary\" extname=\"SPECRESP MATRIX\" clobber=yes"; $beta=1-$alpha; for($i=0;$i<$cnt1;){ $ener=($e1[$i]+$e2[$i])/2; $crfl[$i]=$norm*(exp($beta*log($e2[$i]))-exp($beta*log($e1[$i])))/$beta; $rmf[$i]=$crrate[$i]/$crfl[$i]; print"$i $e1[$i] $e2[$i] $rmf[$i] $crfl[$i]\n"; $num=$i+1; print FITS "$e1[$i] $e2[$i] 1 0 $cnt1"; for($j=0;$j<$cnt1;){ $koef=0; if($i==$j){$koef=$rmf[$i];} print FITS " $koef"; $j++; } print FITS "\n"; $i++; } close FITS; open FITS, "|fcreate cols2 datafile=\"-\" outfile=\"temp.fits\" tbltype=\"binary\" extname=\"EBOUNDS\" clobber=yes"; for($i=0;$i<$cnt1;){ $num=$i+1; print FITS "$i $e1[$i] $e2[$i]\n"; $i++; } close FITS; system "fappend temp.fits[1] $rmff"; system "rm -f temp.fits"; system "fparkey OGIP $rmff\[1] HDUCLASS add=yes"; system "fparkey RESPONSE $rmff\[1] HDUCLAS1 add=yes"; system "fparkey RSP_MATRIX $rmff\[1] HDUCLAS2 add=yes"; system "fparkey $cnt1 $rmff\[1] DETCHANS add=yes"; system "fparkey PHA $rmff\[1] CHANTYPE add=yes"; system "fparkey 1.0 $rmff\[1] EFFAREA add=yes"; system "fparkey FULL_RES $rmff\[1] BINNING add=yes"; system "fparkey 1992a $rmff\[1] RMFVERSN add=yes"; system "fparkey INTEGRAL $rmff\[1] TELESCOP add=yes"; system "fparkey ISGRI $rmff\[1] INSTRUME add=yes"; system "fparkey DAL_TABLE $rmff\[1] BASETYPE add=yes"; system "fparkey 1 $rmff\[1] EXTVER add=yes"; system "fparkey 1 $rmff\[1] GRPID1 add=yes"; system "fparkey 8 $rmff\[1] TLMAX4 add=yes"; system "fparkey 0 $rmff\[1] TLMIN4 add=yes"; system "fparkey OGIP $rmff\[2] HDUCLASS add=yes"; system "fparkey RESPONSE $rmff\[2] HDUCLAS1 add=yes"; system "fparkey EBOUNDS $rmff\[2] HDUCLAS2 add=yes"; system "fparkey $cnt1 $rmff\[2] DETCHANS add=yes"; system "fparkey PHA $rmff\[2] CHANTYPE add=yes"; system "fparkey 1.0 $rmff\[2] EFFAREA add=yes"; system "fparkey DAL_TABLE $rmff\[2] BASETYPE add=yes"; system "fparkey 1992a $rmff\[2] RMFVERSN add=yes"; system "fparkey 1.3.0 $rmff\[2] HDUVERS add=yes"; system "fparkey 1.0.0 $rmff\[2] HDUVERS1 add=yes"; system "fparkey 1.3.0 $rmff\[2] HDUVERS2 add=yes"; system "fparkey 8 $rmff\[2] TLMAX1 add=yes"; system "fparkey 0 $rmff\[2] TLMIN1 add=yes"; system "fparkey 8 $rmff\[0] BITPIX add=yes"; #system "cphead crab_1.15.rmf $rmff"; #system "cphead crab_1.15.rmf\[1] $rmff\[1]"; #system "cphead crab_1.15.rmf\[2] $rmff\[2]"; #system "fparkey $cnt1 $rmff\[2] DETCHANS add=yes"; ###### pha file ######### open(COLS,">cols"); print COLS "CHANNEL 1I\n"; print COLS "RATE 1D counts\n"; print COLS "STAT_ERR 1D counts\n"; close(COLS); $base = basename($rmff); open(HEADER,">header"); print HEADER <