Commit c4db5ba6 authored by Ambra Di Piano's avatar Ambra Di Piano
Browse files

fix energy range

parent bb5e4e8e
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@
# *****************************************************************************

import argparse
from time import time
from os import makedirs
from os.path import join
from rtasci.lib.RTACtoolsSimulation import RTACtoolsSimulation
@@ -15,29 +16,36 @@ from astrort.configure.logging import set_logger, get_log_level
from astrort.configure.slurmjobs import make_sbatch

def base_simulator(configuration_file):
    clock = time()
    configuration = load_yaml_conf(configuration_file)
    logfile = join(configuration['simulator']['output'], configuration['logging']['logfile'])
    datfile = logfile.replace('.log', '.dat')
    log = set_logger(get_log_level(configuration['logging']['level']), logfile)
    log.info(f"Simulator configured, took {time() - clock} s")
    # create output dir
    log.info(f"Creating {configuration['simulator']['output']}")
    log.info(f"Output folder: {configuration['simulator']['output']}")
    makedirs(configuration['simulator']['output'], exist_ok=True)
    # start simulations
    log.info(f"\n {'-'*17} \n| START SIMULATOR | \n {'-'*17} \n")
    for i in range(configuration['simulator']['samples']):
        clock_sim = time()
        simulator = RTACtoolsSimulation()
        # check pointing option
        simulator, point = set_pointing(simulator, configuration['simulator'], log)
        # complete configuration
        simulator = configure_simulator_no_visibility(simulator, configuration['simulator'])
        log.debug(f"IRF [{configuration['simulator']['irf']}] > energy range: {simulator.e} TeV")
        simulator.run_simulation()
        log.info(f"Simulation (seed = {configuration['simulator']['seed']}) complete")
        log.info(f"Simulation (seed = {configuration['simulator']['seed']}) complete, took {time() - clock_sim} s")
        configuration['simulator']['seed'] += 1
        # timing simulation
        clock_sim = time() - clock_sim
        # save simulation data
        write_simulation_info(simulator, configuration['simulator'], point, datfile)
        write_simulation_info(simulator, configuration['simulator'], point, datfile, clock_sim)
        del simulator
    # end simulations
    log.info(f"\n {'-'*17} \n| STOP SIMULATOR | \n {'-'*17} \n")
    log.info(f"Process complete, took {time() - clock} s")


def slurm_submission(configuration_file, nodes):
+6 −4
Original line number Diff line number Diff line
@@ -10,9 +10,10 @@ import yaml
import numpy as np
import astropy.units as u
from os.path import dirname, abspath, join, basename, isfile
from astrort.utils.utils import seeds_to_string_formatter_files, get_instrument_fov, seeds_to_string_formatter
from astrort.utils.utils import seeds_to_string_formatter_files, get_instrument_fov, seeds_to_string_formatter, get_instrument_tev_range
from astrort.configure.check_configuration import CheckConfiguration
from rtasci.lib.RTAManageXml import ManageXml
from rtasci.lib.RTAUtils import check_energy_thresholds
from astropy.coordinates import SkyCoord 

def load_yaml_conf(yamlfile):
@@ -30,6 +31,7 @@ def configure_simulator_no_visibility(simulator, configuration):
    simulator.irf = configuration['irf']
    simulator.fov = get_instrument_fov(configuration['array'])
    simulator.t = [0, configuration['duration']]
    simulator.e = check_energy_thresholds(get_instrument_tev_range(configuration['array']), configuration['irf'])
    simulator.seed = configuration['seed']
    simulator.set_log = False
    return simulator
@@ -71,7 +73,7 @@ def get_point_source_info(simulator):
    separation = source.separation(pointing)
    return {'point_ra': pointing.ra.deg, 'point_dec': pointing.dec.deg, 'offset': separation.value, 'source_ra': source.ra.deg, 'source_dec': source.dec.deg}

def write_simulation_info(simulator, configuration, pointing, datfile):
def write_simulation_info(simulator, configuration, pointing, datfile, clock):
    name = seeds_to_string_formatter(configuration['samples'], configuration['name'], configuration['seed'])
    seed = simulator.seed
    tstart, tstop = simulator.t
@@ -79,7 +81,7 @@ def write_simulation_info(simulator, configuration, pointing, datfile):
    point_ra, point_dec, offset, source_ra, source_dec = pointing['point_ra'], pointing['point_dec'], pointing['offset'], pointing['source_ra'], pointing['source_dec']
    if not isfile(datfile):
        with open(datfile, 'w+') as f:
            f.write('name seed start stop duration source_ra source_dec point_ra point_dec offset\n')
            f.write('name seed start stop duration source_ra source_dec point_ra point_dec offset computation_time\n')
    with open(datfile, 'a') as f:
        f.write(f'{name} {seed} {tstart} {tstop} {duration} {source_ra} {source_dec} {point_ra} {point_dec} {offset}\n')
        f.write(f'{name} {seed} {tstart} {tstop} {duration} {source_ra} {source_dec} {point_ra} {point_dec} {offset} {clock}\n')
    return
 No newline at end of file