#!/usr/bin/env python

import argparse
from soxs import Spectrum

parser = argparse.ArgumentParser(description='Create a power-law spectrum and write it to a file.')
parser.add_argument("photon_index", type=float, 
                    help='The spectral index of the power law.')
parser.add_argument("redshift", type=float, help="The redshift of the source.")
parser.add_argument("norm", type=float, 
                    help='The normalization of the source in units of '+
                         'photons/s/cm**2/keV at 1 keV in the source frame.')
parser.add_argument("specfile", type=str, help="The filename to write the spectrum to.")
parser.add_argument("emin", help='The minimum energy in keV.')
parser.add_argument("emax", help='The maximum energy in keV.')
parser.add_argument("nbins", type=int, help='The number of bins in the spectrum.')
parser.add_argument("--absorb_model", type=str,
                    help='Model for applying foreground Galactic absorption.')
parser.add_argument("--nh", default=0.02, 
                    help='The hydrogen column in units of 10**22 atoms/cm**2. Default: 0.02')
parser.add_argument("--overwrite", action='store_true', 
                    help='Overwrite an existing file with the same name.')

args = parser.parse_args()

spec = Spectrum.from_powerlaw(args.photon_index, args.redshift, args.norm,
                              args.emin, args.emax, args.nbins)

if args.absorb_model is not None:
    spec.apply_foreground_absorption(args.nh, model=args.absorb_model)

spec.write_file(args.specfile, overwrite=args.overwrite)