""" Code to compute the amount of absorption due to DLA systems.

Context : SRP
Module  : SRPDLA.py
Author  : Stefano Covino
Date    : 26/05/2017
E-mail  : stefano.covino@brera.inaf.it
URL:    : http://www.merate.mi.astro.it/~covino
Purpose : Compute the amount of DLA absorption.

Usage   : SRPDLA -l arg1 [-h] [-v] -n arg2 -z arg3
            -l Observed wavelength (micron)
            -n Nh (>= 0, cm^-2)
            -z DLA system redshift (>= 0)
            
            DLA modeling performed according to Totani et al. (2006, PASP 58, 485)


History : (20/04/2009) First version.
        : (12/06/2009) Cosmetic improvements.
        : (22/08/2011) Better cosmetics.
        : (24/07/2015) python3 porting.
        : (26/05/2017) Minor update.
"""


from SRP.SRPSpectroscopy.TauDLA import TauDLA
from optparse import OptionParser
import math


parser = OptionParser(usage="usage: %prog -l arg1 [-h] [-v] -n arg2 -z arg3", version="%prog 1.1.1")
parser.add_option("-l", "--lambd", action="store", nargs=1, default=0.0, type="float", dest="lambd", help="Observed wavelength (micron)")
parser.add_option("-v", "--verbose", action="store_true", dest="verbose", help="fully describe operations")
parser.add_option("-n", "--nh", action="store", nargs=1, default=0.0, type="float", dest="nh", help="Nh (>= 0, cm^-2)")
parser.add_option("-z", "--z", action="store", nargs=1, default=0.0, type="float", dest="z", help="DLA system redshift (>= 0)")
(options, args) = parser.parse_args()


if options.lambd > 0.0 and options.z >= 0.0 and options.nh > 0.0:
    tau = TauDLA(options.lambd*1e-4,options.nh,options.z)
    if options.verbose:
        print("Wavelength       : %.3f micron" % options.lambd)
        print("Nh               : %g cm^-2" % options.nh)
        print("redshift         : %.2f" % options.z)
        print("Absorption factor: %g" % math.e**-tau)
    else:
        print(options.lambd, options.nh, options.z, math.e**-tau)
else:
    parser.print_help()
