""" Code to compute the amount of absorption due to Nh.

Context : SRP
Module  : SRPNhAbs.py
Version : 1.0.1
Author  : Stefano Covino
Date    : 10/09/2011
E-mail  : stefano.covino@brera.inaf.it
URL:    : http://www.merate.mi.astro.it/~covino
Purpose : Compute the amount of Nh absorption.

Usage   : SRPNhAbs -e arg1 [-h] -n arg2 [-v] 
            -e Energy (KeV, 0.03-10).
            -n Nh (>= 0, cm^-2)
            Based on photoelectric absorption cross sections in Morrison & McCammon (1983, ApJ, 270, 119)

History : (25/02/2007) First version.
        : (10/09/2011) Better cosmetics.
"""


import SRP.SRPConstants as SRPConstants
import SRP.SRPUtil as SRPUtil
from optparse import OptionParser
import sys


parser = OptionParser(usage="usage: %prog -e arg1 [-h] [-v] -n arg2", version="%prog 1.0.1")
parser.add_option("-e", "--energy", action="store", nargs=1, type="float", dest="energy", help="Energy (KeV, 0.03-10).")
parser.add_option("-n", "--nh", action="store", nargs=1, type="float", dest="nh", help="Nh (>= 0, cm^-2)")
parser.add_option("-v", "--verbose", action="store_true", dest="verbose", help="fully describe operations")
(options, args) = parser.parse_args()

if 0.03 <= options.energy <= 10 and options.nh > 0.0:
 abs = SRPUtil.XAbsorption(options.energy,options.nh)
 if options.verbose:
  print "Eenergy         : %g keV" % options.energy
  print "Column density  : %g cm^-2" % options.nh
  print "Absorption factor: %g" % abs
 else:
  print options.energy, options.nh, abs
else:
 parser.print_help()

