#! /bin/sh # This is the LHEA perl script: /cvmfs/extras-fp7.egi.eu/extras/heasoft/ftools/x86_64-unknown-linux-gnu-libc2.19-0/bin/xsl_rosat_pspc_makeresp # The purpose of this special block is to make this script work with # the user's local perl, regardless of where that perl is installed. # The variable LHEAPERL is set by the initialization script to # point to the local perl installation. #------------------------------------------------------------------------------- eval ' if [ "x$LHEAPERL" = x ]; then echo "Please run standard LHEA initialization before attempting to run /cvmfs/extras-fp7.egi.eu/extras/heasoft/ftools/x86_64-unknown-linux-gnu-libc2.19-0/bin/xsl_rosat_pspc_makeresp." exit 3 elif [ "$LHEAPERL" = noperl ]; then echo "During LHEA initialization, no acceptable version of Perl was found." echo "Cannot execute script /cvmfs/extras-fp7.egi.eu/extras/heasoft/ftools/x86_64-unknown-linux-gnu-libc2.19-0/bin/xsl_rosat_pspc_makeresp." exit 3 elif [ `$LHEAPERL -v < /dev/null 2> /dev/null | grep -ic "perl"` -eq 0 ]; then echo "LHEAPERL variable does not point to a usable perl." exit 3 else # Force Perl into 32-bit mode (to match the binaries) if necessary: if [ "x$HD_BUILD_ARCH_32_BIT" = xyes ]; then if [ `$LHEAPERL -V 2> /dev/null | grep -ic "USE_64_BIT"` -ne 0 ]; then VERSIONER_PERL_PREFER_32_BIT=yes export VERSIONER_PERL_PREFER_32_BIT fi fi exec $LHEAPERL -x $0 ${1+"$@"} fi ' if(0); # Do not delete anything above this comment from an installed LHEA script! #------------------------------------------------------------------------------- #! /usr/bin/perl $version ="1.00"; $date ="2002-11-19"; $author = "kaa"; # This script makes the ROSAT PSPC rmf and arf. It is run by the xselect # routine xsl_rspsav. # Check that we were given an input filename if(@ARGV != 1) { print "\n usage : xsl_rosat_pspc_makeresp infile\n"; exit(0); } $infile = $ARGV[0]; $dot = index($infile,"."); $rootname = substr($infile, 0, $dot); $arffile = $rootname . ".arf"; # copy the rmf from the caldb. Need to know whether this spectrum is # for PSPCB or PSPCC and if the former whether the data were taken # before or after Oct 14 1991. $command = "fkeypar fitsfile=$infile\[SPECTRUM\] keyword=INSTRUME"; system($command); ($instrument = `pget fkeypar value`) =~ tr/'\n//d; if ( substr($instrument,0,5) eq "PSPCC" ) { $rmffile = "pspcc_gain1_256.rmf"; } elsif ( substr($instrument,0,5) eq "PSPCB" ) { $command = "fkeypar $infile DATE-OBS\n"; system($command); $obsdate = `pget fkeypar value`; $year = substr($obsdate,1,4); $month = substr($obsdate,6,2); $day = substr($obsdate,9,2); if ( $year < 1991 || ($year == 1991 && $month < 10) || ($year == 1991 && $month == 10 && $day < 14) ) { $rmffile = "pspcb_gain1_256.rmf"; } else { $rmffile = "pspcb_gain2_256.rmf"; } } else { print "INSTRUME for the spectum is neither PSPCB or PSPCC\n"; exit(1); } # if the rmf file doesn't already exist in this directory then copy it # from the caldb. if ( !-e $rmffile ) { $caldb = $ENV{'CALDB'}; if($caldb !~/\S/) { print "The CALDB environment variable is not set.\n"; exit(2); } $calfile = $caldb . "/data/rosat/pspc/cpf/matrices/" . $rmffile; $command = "cp $calfile $rmffile"; print "\n",$command,"\n\n"; system($command); } # run pcarf to make the arf $command = "pcarf phafil=$infile rmffil=$rmffile outfil=$arffile crffil=CALDB"; print "\n",$command,"\n\n"; system($command); # set the RESPFILE and ANCRFILE keywords in the spectrum to point to the # files that have been created $command = "fparkey value=$rmffile fitsfile=$infile\[SPECTRUM\] keyword=RESPFILE"; system($command); $command = "fparkey value=$arffile fitsfile=$infile\[SPECTRUM\] keyword=ANCRFILE"; system($command);