FUNCTION ispoiss(ifile, ipha, rate, varnce, region, & brgion, areasc, breasc, ckey) REAL rate(*), varnce(*), region(*), brgion(*) REAL areasc(*), breasc(*) INTEGER ifile, ipha CHARACTER ckey LOGICAL ispoiss c Returns whether the given data bin has poisson errors. c Arguments : c ifile i i: The dataset containing IPHA c ipha i i: PHA bin for which poisson nature is to be checked c rate r i: The observed rate c varnce r i: Observed variance c region r i: Source BACKSCAL values c brgion r i: Background BACKSCAL values c areasc r i: Source AREASCAL values c breasc r i: Background AREASCAL values c ckey c c: "s"=source, "b"=background c ispoiss l r: true if bin is Poisson REAL datnrm REAL dgtime, dgbtme EXTERNAL dgtime, dgbtme ispoiss = .TRUE. c Set the conversion to go from rate (cts/cm^2/s) back to counts. IF ( ckey .EQ. 's' ) THEN datnrm = areasc(ipha)*dgtime(ifile) ELSEIF ( ckey .EQ. 'b' ) THEN datnrm = breasc(ipha)*dgbtme(ifile)*brgion(ipha)/region(ipha) ELSE RETURN ENDIF IF ( datnrm .EQ. 0 ) datnrm = 1. c If the bin is poisson then rate*datnrm = varnce*datnrm*datnrm because c the mean and variance are identical. IF ( abs(rate(ipha)-varnce(ipha)*datnrm) .GT. 1e-5 ) THEN ispoiss = .FALSE. ENDIF RETURN END