def writeparamcard(options,masses,parameters):
    from MadGraphControl.MadGraphUtils import new_process
    process_dir = new_process()
    options["processdir"] = process_dir
    
    from MadGraphControl.MadGraphUtils import build_param_card
    from os.path import join as pathjoin
    build_param_card(param_card_old=pathjoin(options["processdir"],'Cards/param_card.dat'),param_card_new='param_card_new.dat',
                     masses=masses,params=parameters)
示例#2
0
def writeparamcard(options,masses,parameters):
    from MadGraphControl.MadGraphUtils import new_process
    process_dir = new_process()
    options["processdir"] = process_dir
    
    from MadGraphControl.MadGraphUtils import build_param_card
    from os.path import join as pathjoin
    build_param_card(param_card_old=pathjoin(options["processdir"],'Cards/param_card.dat'),param_card_new='param_card_new.dat',
                     masses=masses,params=parameters)
示例#3
0
evgenConfig.keywords += ['gaugino', 'chargino', 'neutralino', 'stau']
evgenConfig.description = 'direct stau pair production in the pMSSM with direct decays, m_stauLR = %s GeV, M1 = %s GeV' % (
    MassToFloat(cardAppend.split('_')[0]), MassToFloat(
        cardAppend.split('_')[1]))

#defining input slha file
param_card_in = 'susy.%s.pMSSM_%s_%s_%s.slha' % (dsid, gentype, decaytype,
                                                 cardAppend)
#defing output card file
decaytype += "." + cardAppend
param_card_out = 'param_card.SM.%s.%s.dat' % (gentype, decaytype)

#Creating final parameter card
from MadGraphControl.MadGraphUtils import build_param_card
build_param_card(param_card_old=param_card_in, param_card_new=param_card_out)

#Reading stau-mass from parameter file
include('MC15JobOptions/SUSYMetadata.py')
stauMass = mass_extract(param_card_out, ['1000015'])
masses['1000015'] = MassToFloat(stauMass[0])

evt_multiplier = 3

include('MC15JobOptions/MadGraphControl_SimplifiedModelPostInclude.py')

if njets > 0:
    genSeq.Pythia8.Commands += [
        "Merging:Process = pp>{ta1+,1000015}{ta1-,-1000015}",
        "Merging:Process = pp>{ta2+,2000015}{ta2-,-2000015}",
        "Merging:Process = pp>{ta1+,1000015}{ta2-,-2000015}",
示例#4
0
def get_SMEFT_cards(model_nick,
                    process,
                    param_name=None,
                    reweight_name=None,
                    eft_params=None):

    #determine model from nick and use naming conventions of model
    if model_nick == "EFTAaUm":
        model = "SMEFTsim_A_U35_alphaScheme_UFO"
        eft_parameter_block = 'frblock'
        restriction = None
        sm_restriction = 'SMlimit'
    elif model_nick == "EFTAWUm":
        model = "SMEFTsim_A_U35_MwScheme_UFO"
        eft_parameter_block = 'frblock'
        restriction = None
        sm_restriction = 'SMlimit'
    elif model_nick == "EFTBaUm":
        model = "SMEFT_alpha_FLU_UFO"
        eft_parameter_block = 'NEWCOUP'
        restriction = None
        sm_restriction = 'SM'
    elif model_nick == "EFTBWUm":
        model = "SMEFT_mW_FLU_UFO"
        eft_parameter_block = 'NEWCOUP'
        restriction = None
        sm_restriction = 'SM'
    elif model_nick == "EFTAaU":
        model = "SMEFTsim_A_U35_alphaScheme_UFO"
        eft_parameter_block = 'frblock'
        restriction = 'massless'
        sm_restriction = 'SMlimit_massless'
    elif model_nick == "EFTAWU":
        model = "SMEFTsim_A_U35_MwScheme_UFO"
        eft_parameter_block = 'frblock'
        restriction = 'massless'
        sm_restriction = 'SMlimit_massless'

    else:
        raise RuntimeError("Unkown model: " + model_nick)

    # get reweight card and param card for reweighting
    reweight_card_loc = None
    if reweight_name != None:
        param_card_loc = 'MadGraph_param_card_' + model_nick + '_reweight' + reweight_name + '.dat'
        restrict_card_loc = 'MadGraph_restrict_card_' + model_nick + '_reweight' + reweight_name + '.dat'
        reweight_card_loc = 'MadGraph_reweight_card_' + model_nick + '_' + reweight_name + '.dat'
        get_param_file = subprocess.Popen(
            ['get_files', '-data', param_card_loc])
        get_param_file.wait()
        if not os.path.exists(param_card_loc):
            raise RuntimeError("Cannot find " + param_card_loc)
        get_restrict_file = subprocess.Popen(
            ['get_files', '-data', restrict_card_loc])
        get_restrict_file.wait()
        if not os.path.exists(restrict_card_loc):
            print 'running without user defined restriction card'
            restrict_card_loc = None
        get_reweight_file = subprocess.Popen(
            ['get_files', '-data', reweight_card_loc])
        get_reweight_file.wait()
        if not os.path.exists(reweight_card_loc):
            raise RuntimeError("Cannot find " + reweight_card_loc)
        eft_params = None

    # get param card and set non-zero parameters
    elif param_name != None:
        param_card_loc = 'MadGraph_param_card_' + model_nick + '_' + param_name + '.dat'
        param_card_loc = 'MadGraph_restrict_card_' + model_nick + '_' + param_name + '.dat'
        get_param_file = subprocess.Popen(
            ['get_files', '-data', param_card_loc])
        get_param_file.wait()
        if not os.path.exists(param_card_loc):
            raise RuntimeError("Cannot find " + param_card_loc)
        get_restrict_file = subprocess.Popen(
            ['get_files', '-data', restrict_card_loc])
        get_restrict_file.wait()
        if not os.path.exists(restrict_card_loc):
            print 'running without user defined restriction card'
            restrict_card_loc = None

    # set only one or a few parameter non-zero
    # dynamically create restricted model that only contains the relevant operators
    else:
        param_card_default = 'MadGraph_param_card_' + model_nick + '.dat'
        get_param_file = subprocess.Popen(
            ['get_files', '-data', param_card_default])
        get_param_file.wait()
        if not os.path.exists(param_card_default):
            raise RuntimeError("Cannot find " + param_card_default)
        param_card_loc = param_card_default.replace('.dat', '_updated.dat')
        if len(eft_params) > 0:
            build_param_card(param_card_default,
                             param_card_loc,
                             params={eft_parameter_block: eft_params})
        else:
            shutil.copy(param_card_default, param_card_loc)
        if os.path.exists('mgmodels_local'):
            shutil.rmtree('mgmodels_local')
        os.mkdir('mgmodels_local')
        restricted_model = 'mgmodels_local/' + model
        shutil.copytree(mgmodels + model, restricted_model)
        eft_params_to_keep = eft_params
        for p in eft_params_to_keep:
            eft_params_to_keep[p] = '9.999999e-01'
        if len(eft_params_to_keep) == 0:
            process = process.replace('NP==0', '')
        restriction = 'without_irrelevant_couplings'
        if len(eft_params_to_keep) > 0:
            build_param_card(param_card_default,
                             restricted_model + '/' + 'restrict_' +
                             restriction + '.dat',
                             params={eft_parameter_block: eft_params_to_keep})
        else:
            shutil.copy(
                param_card_default,
                restricted_model + '/' + 'restrict_' + restriction + '.dat')
        model = './' + restricted_model
        restrict_card_loc = None

    if restrict_card_loc != None and (reweight_name != None
                                      or param_name != None):
        if os.path.exists('mgmodels_local'):
            shutil.rmtree('mgmodels_local')
        os.mkdir('mgmodels_local')
        restricted_model = 'mgmodels_local/' + model
        shutil.copytree(mgmodels + model, restricted_model)
        restriction = 'without_irrelevant_couplings'
        shutil.copy(
            restrict_card_loc,
            restricted_model + '/' + 'restrict_' + restriction + '.dat')
        model = './' + restricted_model

    # write process card
    proc_card = "import model " + model
    if restriction != None:
        proc_card += '-' + restriction
    proc_card += "\n"
    proc_card += process + "\noutput -f\n"
    proc_card_loc = 'proc_card.dat'
    f_proc_card = open(proc_card_loc, 'w')
    f_proc_card.write(proc_card)
    f_proc_card.close()

    return proc_card_loc, param_card_loc, reweight_card_loc
'''
njets = 2
evgenLog.info('Registered generation of stau pair production, decay via stau; grid point '+str(runArgs.runNumber) )

evgenConfig.keywords += ['gaugino', 'chargino', 'neutralino', 'stau']
evgenConfig.description = 'direct stau pair production in the pMSSM with direct decays, m_stauLR = %s GeV, M1 = %s GeV'%(MassToFloat(cardAppend.split('_')[0]),MassToFloat(cardAppend.split('_')[1]))

#defining input slha file
param_card_in = 'susy.%s.pMSSM_%s_%s_%s.slha'%(dsid,gentype,decaytype,cardAppend)
#defing output card file
decaytype  += "."+cardAppend
param_card_out = 'param_card.SM.%s.%s.dat'%(gentype,decaytype)

#Creating final parameter card
from MadGraphControl.MadGraphUtils import build_param_card
build_param_card( param_card_old = param_card_in, param_card_new = param_card_out )

#Reading stau-mass from parameter file
include ( 'MC15JobOptions/SUSYMetadata.py' )
stauMass = mass_extract( param_card_out, ['1000015'] )
masses['1000015'] = MassToFloat(stauMass[0])

evt_multiplier = 3

include ( 'MC15JobOptions/MadGraphControl_SimplifiedModelPostInclude.py' )

if njets>0:
    genSeq.Pythia8.Commands += [ "Merging:Process = pp>{ta1+,1000015}{ta1-,-1000015}",
                                 "Merging:Process = pp>{ta2+,2000015}{ta2-,-2000015}",
                                 "Merging:Process = pp>{ta1+,1000015}{ta2-,-2000015}",
                                 "Merging:Process = pp>{ta2+,2000015}{ta1-,-1000015}"]
示例#6
0
mk_jo_proxy(cvmfs_mc15, "MC15JobOptions", "_joproxy15")

# Updating JOBOPTSEARCHPATH env var on the athena side
import re, os
from AthenaCommon import Include
Include.optionsPathEnv = os.environ['JOBOPTSEARCHPATH']
Include.optionsPath = re.split(',|' + os.pathsep, Include.optionsPathEnv)

# Include the job options themselves
include(JO)

# Build the param card, aka SLHA file
from MadGraphControl.MadGraphUtils import build_param_card
build_param_card(param_card_old='param_card.SM.%s.%s.dat' %
                 (gentype, decaytype),
                 param_card_new='SLHA_INPUT.DAT',
                 masses=masses,
                 decays=decays)

# Get the spectrum number if it's in the metadata
spectrum = 1 if 'SPECTRUM' not in simdict else simdict['SPECTRUM']

# Last step, load up the files
load_files_for_rhadrons_scenario('SLHA_INPUT.DAT', spectrum)

# Add any lines that were missing
# In case we want to use Pythia8 for decays during simulation
lifetime = float(simdict['LIFETIME']) if simdict.has_key("LIFETIME") else -1.
if lifetime > 0.:
    if lifetime < 1. and hasattr(runArgs, 'outputEVNT_TRFile'):
        rhlog.warning(