#!/usr/bin/perl

@gov = split (/\//,$0); pop @gov; $BINDIR = join ('/',@gov);
$getpar   = "$BINDIR/getpar";

# Read common PERL subs
require "$BINDIR/perlutil.pl";

$UNDEF = "undefined";

@PARS = &fixpars (@ARGV); # this is needed to escape arguments with parens etc
chop (
($chips,$ebgmin,$ebgmax,$evtfile,$bgfile,$gtifile) =
`$getpar chips,ebgmin,ebgmax,evtfile,bg_file,gtifile @PARS`
);

if ( $chips   eq $UNDEF )  {  die "chips=?\n"}
if ( $evtfile eq $UNDEF )  {  die "evtfile=?\n"}
if ( $bgfile  eq $UNDEF )  {  die "bg_file=?\n"}
if ( $gtifile eq $UNDEF )  {  die "gtifile=?\n"}

if ( $ebgmin eq $UNDEF )  {  $ebgmin=9000; }
if ( $ebgmax eq $UNDEF )  {  $ebgmax=12000; }

%ccdidfilter = ();
$ccdidfilter{"i"} = "ccd_id<4";
$ccdidfilter{"i-3"} = "ccd_id<3";
$ccdidfilter{"i0"} = "ccd_id==0";
$ccdidfilter{"i1"} = "ccd_id==1";
$ccdidfilter{"i2"} = "ccd_id==2";
$ccdidfilter{"i3"} = "ccd_id==3";
$ccdidfilter{"s3"} = "ccd_id==7";
$ccdidfilter{"s1"} = "ccd_id==5";
$ccdidfilter{"s2"} = "ccd_id==6";

if (! defined $ccdidfilter{$chips}) {
  print STDERR "I understand only chips = ",join (' ',sort keys %ccdidfilter),"\n";
  exit (1);
}
$ccd_id_filter = $ccdidfilter{$chips};


$nphot = `printkey $evtfile\"[events][$ccd_id_filter&&energy>$ebgmin&&energy<$ebgmax]\" NAXIS2`;
chop $nphot;
$texp = `gtiexp $gtifile+1`; chop $texp;
if ( $texp <= 0 ) {
  $crate = 0;
} else {
  $crate = $nphot/$texp;
}

chop(($nphotbg,$texpbg) = `printkey $bgfile\"[events][$ccd_id_filter&&energy>$ebgmin&&energy<$ebgmax]\" NAXIS2,EXPOSURE`);
$cratebg = $nphotbg/$texpbg;

print $crate," ",$cratebg," ",$crate/$cratebg,"\n\n";

print "BACKSCAL=",$crate/$cratebg,"\n";
printf "bgnorm=%5.3f\n",$crate/$cratebg;
