Source code for contur.run.run_init

# make the shared area of a common contur install

from genericpath import exists
import os, glob

import contur.config.config as cfg
from contur.run.arg_utils import setup_common
from contur.data.data_objects import Beam
import contur.data as cdb

import contur.util.utils as cutil
import contur.util.rst_utils as rst_utils

from contur.data import build_database

home_dir=os.path.expanduser('~')
VERBOSITY = 1
[docs] def log(msg, v): if v >= VERBOSITY: print(msg)
[docs] def debug(msg): log(msg, 0)
[docs] def warning(msg): log(msg, 2)
[docs] def generate_rivet_lists(webpages): """ Generate various rivet analysis listings from the Contur database. Called on initialisation only. - the .ana files for Herwig running - the script to set the analysis list environment variables - (optionally) the contur webpage listings. :param webpages: if true, also write out the contur webpage listings. """ # statics rivettxt = "insert Rivet:Analyses 0 " # make the directory if it doesn't already exist output_directory = cfg.output_dir cutil.mkoutdir(output_directory) # open file for the environment setters fl = open(output_directory + "/analysis-list", 'w') known_beams = cdb.static_db.get_beams() known_pools = cdb.static_db.get_pools() envStrings = {} # build the .ana and env variable setters for beam in known_beams: analysis_list = cdb.static_db.get_analyses(beam=beam,filter=False) f = open(os.path.join(output_directory, beam.id + ".ana"), 'w') envStrings[beam.id] = "export CONTUR_RA{}=\"".format(beam.id) for analysis in analysis_list: f.write(rivettxt + analysis.name + " # " + analysis.summary() + "\n") envStrings[beam.id] = envStrings.get(beam.id) + analysis.name + "," f.close() for pool in known_pools: analysis_list =cdb.static_db.get_analyses(poolid=pool,filter=False) if not analysis_list: continue f = open(os.path.join(output_directory, pool + ".ana"), 'w') envStrings[pool] = "export CONTUR_RA_{}=\"".format(pool) for analysis in analysis_list: f.write(rivettxt + analysis.name + " # " + analysis.summary() + "\n") envStrings[pool] = envStrings.get(pool) + analysis.name + "," f.close() for estr in envStrings.values(): if estr.endswith(","): estr = estr[:len(estr) - 1] estr += "\"" fl.write(estr + "\n \n") fl.close() cfg.contur_log.info("Analysis and environment files written to {}".format(output_directory)) if not webpages: return else: rst_utils.write_measurement_list()
[docs] def main(args): """ Main programme to run over the known analysis and build SM theory yodas from the TheoryRaw or REF areas. """ setup_common(args) print("Writing log to {}".format(cfg.logfile_name)) cfg.contur_log.info("Making shared area in {}".format(cfg.output_dir)) # build DB DB=build_database.BuildDB('analyses.db') DB.build_db() cfg.results_dbfile = os.path.join(cfg.output_dir,cfg.results_dbfile) cfg.models_dbfile = os.path.join(cfg.output_dir,cfg.models_dbfile) try: import yoda import rivet import contur.data.data_access_db cdb.data_access_db.generate_model_and_parameter(model_db=True) generate_rivet_lists(args['WEBPAGES']) debug('Successfully found RIVET and YODA Python module') except ImportError as ie: cdb.data_access_db.generate_model_and_parameter(model_db=True) warning('Warning: modules (maybe rivet and yoda?) not found, contur functionality will be limited') warning(ie)