Skip to content

Commit

Permalink
Merge pull request #3646 from ferencek/NMSSM_XToYH_YToHH_13p6TeV
Browse files Browse the repository at this point in the history
Generic X->YH->HHH cards for Run 3
  • Loading branch information
menglu21 authored Feb 28, 2024
2 parents b153f04 + 8dad96e commit 2f1af73
Show file tree
Hide file tree
Showing 5 changed files with 345 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
set param_card mass 45 xxx
set param_card mass 35 yyy
set param_card mass 25 125
set param_card DECAY 45 1.00000e-03
set param_card DECAY 35 1.00000e-03
set param_card DECAY 25 4.00000e-03
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# X > YH model
# This is an extended version of the NMSSM model available on CMS generators: https://cms-project-generators.web.cern.ch/cms-project-generators/NMSSMHET_UFO.zip
# This version includes couplings to fermions for all the scalars. Privately produced by Yiming Zhong and acknowledged by the NMSSM LHC HXSWG group contacts.
NMSSMHET_UFO_fermioncouplings.zip
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
set group_subprocesses Auto
set ignore_six_quark_processes False
set loop_optimized_output True
set gauge unitary
set complex_mass_scheme False
import model NMSSMHET_UFO --modelname
generate g g > h03, (h03 > h01 h02, (h02 > h01 h01) )
output NMSSM_XToYH_YToHH_MX_xxx_MY_yyy -nojpeg
Original file line number Diff line number Diff line change
@@ -0,0 +1,269 @@
#*********************************************************************
# MadGraph5_aMC@NLO *
# *
# run_card.dat MadEvent *
# *
# This file is used to set the parameters of the run. *
# *
# Some notation/conventions: *
# *
# Lines starting with a '# ' are info or comments *
# *
# mind the format: value = variable ! comment *
#*********************************************************************
#
#*******************
# Running parameters
#*******************
#
#*********************************************************************
# Tag name for the run (one word) *
#*********************************************************************
tag_1 = run_tag ! name of the run
#*********************************************************************
# Number of events and rnd seed *
# Warning: Do not generate more than 1M events in a single run *
# If you want to run Pythia, avoid more than 50k events in a run. *
#*********************************************************************
10000 = nevents ! Number of unweighted events requested
0 = iseed ! rnd seed (0=assigned automatically=default))
#*********************************************************************
# Collider type and energy *
# lpp: 0=No PDF, 1=proton, -1=antiproton, 2=photon from proton, *
# 3=photon from electron *
#*********************************************************************
1 = lpp1 ! beam 1 type
1 = lpp2 ! beam 2 type
6800.0 = ebeam1 ! beam 1 total energy in GeV
6800.0 = ebeam2 ! beam 2 total energy in GeV
#*********************************************************************
# Beam polarization from -100 (left-handed) to 100 (right-handed) *
#*********************************************************************
0.0 = polbeam1 ! beam polarization for beam 1
0.0 = polbeam2 ! beam polarization for beam 2
#*********************************************************************
# PDF CHOICE: this automatically fixes also alpha_s and its evol. *
#*********************************************************************
lhapdf = pdlabel ! PDF set
$DEFAULT_PDF_SETS = lhaid ! if pdlabel=lhapdf, this is the lhapdf number
$DEFAULT_PDF_MEMBERS = reweight_PDF ! if pdlabel=lhapdf, this is the lhapdf number
#*********************************************************************
# Renormalization and factorization scales *
#*********************************************************************
False = fixed_ren_scale ! if .true. use fixed ren scale
False = fixed_fac_scale ! if .true. use fixed fac scale
91.188 = scale ! fixed ren scale
91.188 = dsqrt_q2fact1 ! fixed fact scale for pdf1
91.188 = dsqrt_q2fact2 ! fixed fact scale for pdf2
-1 = dynamical_scale_choice ! Choose one of the preselected dynamical choices
1.0 = scalefact ! scale factor for event-by-event scales
#*********************************************************************
# Type and output format
#*********************************************************************
False = gridpack !True = setting up the grid pack
-1.0 = time_of_flight ! threshold (in mm) below which the invariant livetime is not written (-1 means not written)
3.0 = lhe_version ! Change the way clustering information pass to shower.
True = clusinfo ! include clustering tag in output
average = event_norm ! average/sum. Normalization of the weight in the LHEF

#*********************************************************************
# Matching parameter (MLM only)
#*********************************************************************
0 = ickkw ! 0 no matching, 1 MLM
1.0 = alpsfact ! scale factor for QCD emission vx
False = chcluster ! cluster only according to channel diag
4 = asrwgtflavor ! highest quark flavor for a_s reweight
False = auto_ptj_mjj ! Automatic setting of ptj and mjj if xqcut >0
! (turn off for VBF and single top processes)
0.0 = xqcut ! minimum kt jet measure between partons
#*********************************************************************
#
#*********************************************************************
# handling of the helicities:
# 0: sum over all helicities
# 1: importance sampling over helicities
#*********************************************************************
0 = nhel ! using helicities importance sampling or not.
#*********************************************************************
# Generation bias, check the wiki page below for more information: *
# 'cp3.irmp.ucl.ac.be/projects/madgraph/wiki/LOEventGenerationBias' *
#*********************************************************************
None = bias_module ! Bias type of bias, [None, ptj_bias, -custom_folder-]
{} = bias_parameters ! Specifies the parameters of the module.
#
#*******************************
# Parton level cuts definition *
#*******************************
#
#
#*********************************************************************
# BW cutoff (M+/-bwcutoff*Gamma) ! Define on/off-shell for "$" and decay
#*********************************************************************
15.0 = bwcutoff ! (M+/-bwcutoff*Gamma)
#*********************************************************************
# Apply pt/E/eta/dr/mij/kt_durham cuts on decay products or not
# (note that etmiss/ptll/ptheavy/ht/sorted cuts always apply)
#*********************************************************************
False = cut_decays ! Cut decay products
#*********************************************************************
# Standard Cuts *
#*********************************************************************
# Minimum and maximum pt's (for max, -1 means no cut) *
#*********************************************************************
20.0 = ptj ! minimum pt for the jets
0.0 = ptb ! minimum pt for the b
10.0 = pta ! minimum pt for the photons
10.0 = ptl ! minimum pt for the charged leptons
0.0 = misset ! minimum missing Et (sum of neutrino's momenta)
-1.0 = ptjmax ! maximum pt for the jets
-1.0 = ptbmax ! maximum pt for the b
-1.0 = ptamax ! maximum pt for the photons
-1.0 = ptlmax ! maximum pt for the charged leptons
-1.0 = missetmax ! maximum missing Et (sum of neutrino's momenta)
#*********************************************************************
# Minimum and maximum E's (in the center of mass frame) *
#*********************************************************************
0.0 = ej ! minimum E for the jets
0.0 = eb ! minimum E for the b
0.0 = ea ! minimum E for the photons
0.0 = el ! minimum E for the charged leptons
-1.0 = ejmax ! maximum E for the jets
-1.0 = ebmax ! maximum E for the b
-1.0 = eamax ! maximum E for the photons
-1.0 = elmax ! maximum E for the charged leptons
#*********************************************************************
# Maximum and minimum absolute rapidity (for max, -1 means no cut) *
#*********************************************************************
5.0 = etaj ! max rap for the jets
-1.0 = etab ! max rap for the b
2.5 = etaa ! max rap for the photons
2.5 = etal ! max rap for the charged leptons
0.0 = etajmin ! min rap for the jets
0.0 = etabmin ! min rap for the b
0.0 = etaamin ! min rap for the photons
0.0 = etalmin ! main rap for the charged leptons
#*********************************************************************
# Minimum and maximum DeltaR distance *
#*********************************************************************
0.4 = drjj ! min distance between jets
0.0 = drbb ! min distance between b's
0.4 = drll ! min distance between leptons
0.4 = draa ! min distance between gammas
0.0 = drbj ! min distance between b and jet
0.4 = draj ! min distance between gamma and jet
0.4 = drjl ! min distance between jet and lepton
0.0 = drab ! min distance between gamma and b
0.0 = drbl ! min distance between b and lepton
0.4 = dral ! min distance between gamma and lepton
-1.0 = drjjmax ! max distance between jets
-1.0 = drbbmax ! max distance between b's
-1.0 = drllmax ! max distance between leptons
-1.0 = draamax ! max distance between gammas
-1.0 = drbjmax ! max distance between b and jet
-1.0 = drajmax ! max distance between gamma and jet
-1.0 = drjlmax ! max distance between jet and lepton
-1.0 = drabmax ! max distance between gamma and b
-1.0 = drblmax ! max distance between b and lepton
-1.0 = dralmax ! maxdistance between gamma and lepton
#*********************************************************************
# Minimum and maximum invariant mass for pairs *
# WARNING: for four lepton final state mmll cut require to have *
# different lepton masses for each flavor! *
#*********************************************************************
0.0 = mmjj ! min invariant mass of a jet pair
0.0 = mmbb ! min invariant mass of a b pair
0.0 = mmaa ! min invariant mass of gamma gamma pair
0.0 = mmll ! min invariant mass of l+l- (same flavour) lepton pair
-1.0 = mmjjmax ! max invariant mass of a jet pair
-1.0 = mmbbmax ! max invariant mass of a b pair
-1.0 = mmaamax ! max invariant mass of gamma gamma pair
-1.0 = mmllmax ! max invariant mass of l+l- (same flavour) lepton pair
#*********************************************************************
# Minimum and maximum invariant mass for all letpons *
#*********************************************************************
0.0 = mmnl ! min invariant mass for all letpons (l+- and vl)
-1.0 = mmnlmax ! max invariant mass for all letpons (l+- and vl)
#*********************************************************************
# Minimum and maximum pt for 4-momenta sum of leptons *
#*********************************************************************
0.0 = ptllmin ! Minimum pt for 4-momenta sum of leptons(l and vl)
-1.0 = ptllmax ! Maximum pt for 4-momenta sum of leptons(l and vl)
#*********************************************************************
# Inclusive cuts *
#*********************************************************************
0.0 = ptheavy ! minimum pt for at least one heavy final state
0.0 = xptj ! minimum pt for at least one jet
0.0 = xptb ! minimum pt for at least one b
0.0 = xpta ! minimum pt for at least one photon
0.0 = xptl ! minimum pt for at least one charged lepton
#*********************************************************************
# Control the pt's of the jets sorted by pt *
#*********************************************************************
0.0 = ptj1min ! minimum pt for the leading jet in pt
0.0 = ptj2min ! minimum pt for the second jet in pt
0.0 = ptj3min ! minimum pt for the third jet in pt
0.0 = ptj4min ! minimum pt for the fourth jet in pt
-1.0 = ptj1max ! maximum pt for the leading jet in pt
-1.0 = ptj2max ! maximum pt for the second jet in pt
-1.0 = ptj3max ! maximum pt for the third jet in pt
-1.0 = ptj4max ! maximum pt for the fourth jet in pt
0 = cutuse ! reject event if fails any (0) / all (1) jet pt cuts
#*********************************************************************
# Control the pt's of leptons sorted by pt *
#*********************************************************************
0.0 = ptl1min ! minimum pt for the leading lepton in pt
0.0 = ptl2min ! minimum pt for the second lepton in pt
0.0 = ptl3min ! minimum pt for the third lepton in pt
0.0 = ptl4min ! minimum pt for the fourth lepton in pt
-1.0 = ptl1max ! maximum pt for the leading lepton in pt
-1.0 = ptl2max ! maximum pt for the second lepton in pt
-1.0 = ptl3max ! maximum pt for the third lepton in pt
-1.0 = ptl4max ! maximum pt for the fourth lepton in pt
#*********************************************************************
# Control the Ht(k)=Sum of k leading jets *
#*********************************************************************
0.0 = htjmin ! minimum jet HT=Sum(jet pt)
-1.0 = htjmax ! maximum jet HT=Sum(jet pt)
0.0 = ihtmin !inclusive Ht for all partons (including b)
-1.0 = ihtmax !inclusive Ht for all partons (including b)
0.0 = ht2min ! minimum Ht for the two leading jets
0.0 = ht3min ! minimum Ht for the three leading jets
0.0 = ht4min ! minimum Ht for the four leading jets
-1.0 = ht2max ! maximum Ht for the two leading jets
-1.0 = ht3max ! maximum Ht for the three leading jets
-1.0 = ht4max ! maximum Ht for the four leading jets
#***********************************************************************
# Photon-isolation cuts, according to hep-ph/9801442 *
# When ptgmin=0, all the other parameters are ignored *
# When ptgmin>0, pta and draj are not going to be used *
#***********************************************************************
0.0 = ptgmin ! Min photon transverse momentum
0.4 = R0gamma ! Radius of isolation code
1.0 = xn ! n parameter of eq.(3.4) in hep-ph/9801442
1.0 = epsgamma ! epsilon_gamma parameter of eq.(3.4) in hep-ph/9801442
True = isoEM ! isolate photons from EM energy (photons and leptons)
#*********************************************************************
# WBF cuts *
#*********************************************************************
0.0 = xetamin ! minimum rapidity for two jets in the WBF case
0.0 = deltaeta ! minimum rapidity for two jets in the WBF case
#***********************************************************************
# Turn on either the ktdurham or ptlund cut to activate *
# CKKW(L) merging with Pythia8 [arXiv:1410.3012, arXiv:1109.4829] *
#***********************************************************************
-1.0 = ktdurham
0.4 = dparameter
-1.0 = ptlund
1, 2, 3, 4, 5, 6, 21, 1000001, 1000002, 1000003, 1000004, 1000005, 1000006, 1000021, 2000001, 2000002, 2000003, 2000004, 2000005, 2000006 = pdgs_for_merging_cut ! PDGs for two cuts above
#*********************************************************************
# maximal pdg code for quark to be considered as a light jet *
# (otherwise b cuts are applied) *
#*********************************************************************
4 = maxjetflavor ! Maximum jet pdg code
#*********************************************************************
#
#*********************************************************************
# Store info for systematics studies *
# WARNING: Do not use for interference type of computation *
#*********************************************************************
True = use_syst ! Enable systematics studies
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
from __future__ import print_function

import os, glob
import numpy as np

# Script for replacing X->YH MG5 template cards with actual mass points

process = 'NMSSM_XToYH_YToHH_MX_'
card_dir = './'

cards = glob.glob('{}{}*_*.dat'.format(card_dir,process))

for card in cards:
print(card)

# mass grid agreed by B2G dib / MC&I conveners:
# https://gitlab.cern.ch/cms-b2g/b-2-g-m-csample-requests/-/issues/6
X_mass = [240, 280, 300, 320, 350, 400, 450, 500, 550, 600, 650, 700, 750, 800, 850, 900, 950, 1000, 1200, 1400, 1600, 1800, 2000, 2200, 2400, 2500, 2600, 2800, 3000, 3500, 4000]
Y_mass = [50, 60, 70, 80, 90, 95, 100, 125, 150, 170, 200, 250, 300, 350, 400, 450, 500, 550, 600, 650, 700, 800, 1000, 1200, 1400, 1600, 1800, 2000, 2200, 2300, 2400, 2600, 2800, 3000, 3300, 3500, 3800]


def is_mass_ok(m_x,m_y):
return m_y < (m_x-125.)

Ngridpacks=0
for X_m in X_mass:
print("X: ", X_m)

for Y_m in Y_mass:
if not is_mass_ok(X_m,Y_m):
continue
print("Y:", Y_m)
Ngridpacks+=1

outdir = card_dir + process + str(X_m) + "_MY_" + str(Y_m)

if not os.path.isdir(outdir):
os.makedirs(outdir)

for card in cards:
src_file = card
tgt_file = outdir + "/" + src_file.replace('xxx',str(X_m))\
.replace('yyy',str(Y_m))

print('{} -> {}'.format(src_file,tgt_file))

src_txt = open(src_file, 'r').read()

if ('proc_card' in card) or ('customizecards' in card):
tgt_txt = src_txt.replace('xxx', str(X_m)).replace('yyy', str(Y_m))
else:
tgt_txt = src_txt

with open(tgt_file, 'w') as f:
f.write(tgt_txt)


print(Ngridpacks)

0 comments on commit 2f1af73

Please sign in to comment.