ATLAS Offline Software
Loading...
Searching...
No Matches
SUSY_SimplifiedModel_PreInclude.py
Go to the documentation of this file.
1# Generator transform pre-include
2# Gets us ready for on-the-fly SUSY SM generation
3
4# Simple variable setups
5param_blocks = {} # For general params
6decoupled_mass = '4.5E9'
7masses = {}
8for p in ['1000001','1000002','1000003','1000004','1000005','1000006','2000001','2000002','2000003','2000004','2000005','2000006','1000021',\
9 '1000023','1000024','1000025','1000011','1000013','1000015','2000011','2000013','2000015','1000012','1000014','1000016','1000022',\
10 '1000035','1000037','35','36','37']: # Note that gravitino is non-standard
11 masses[p]=decoupled_mass
12decays = {}
13
14# Useful definitions
15squarks = []
16squarksl = []
17for anum in [1,2,3,4]:
18 squarks += [str(1000000+anum),str(-1000000-anum),str(2000000+anum),str(-2000000-anum)]
19 squarksl += [str(1000000+anum),str(-1000000-anum)]
20
21# Basic settings for production and filters
22ktdurham = None # Only set if you want a non-standard setting (1/4 heavy mass)
23madspin_card = None
24param_card = None # Only set if you *can't* just modify the default param card to get your settings (e.g. pMSSM)
25
26# In case someone wants to set a systematic variation in their job options fragment
27syst_mod = None
28
29# Default run settings
30run_settings = {'event_norm':'average',
31 'drjj':0.0,
32 'lhe_version':'3.0',
33 'cut_decays':'F',
34 'ickkw':0,
35 'xqcut':0} # use CKKW-L merging (yes, this is a weird setting)
36# Set up default PDF and systematic settings (note: action in import module)
38from AthenaCommon import Logging
39presusylog = Logging.logging.getLogger('SUSY_PreInclude')
40
41# Setting for writing out a gridpack
42writeGridpack = False
43
44# Event multipliers for getting more events out of madgraph to feed through athena (esp. for filters)
45evt_multiplier=-1
46
47# in case someone needs to be able to keep the output directory for testing
48keepOutput = False
49
50# fixing LHE files after madspin? do that here.
51fixEventWeightsForBridgeMode=False
52
53# In case you want to keep lifetimes in the LHE files
54add_lifetimes_lhe = False
55
56# Do we want to use PDG defaults?
57usePMGSettings = True
58
59# Do we need to use a custom plugin?
60plugin = None
61
62# Do we want 4FS or 5FS? 5 is now default
63# * 5-flavor scheme always should use nQuarksMerge=5 [5FS -> nQuarksMerge=5]
64# * 4-flavor scheme with light-flavor MEs (p p > go go j , with j = g d u s c)
65# should use nQuarksMerge=4 [4FS -> nQuarksMerge=4]
66# * 4-flavor scheme with HF MEs (p p > go go j, with j = g d u s c b) should
67# use nQuarksMerge=5 [4FS + final state b -> nQuarksMerge=5]
68flavourScheme = 5
69define_pj_5FS = True # Defines p and j to include b in process string with 5FS
70force_nobmass_5FS = True # Forces massless b with 5FS
71finalStateB = False # Used with 4FS
72
73from MCJobOptionUtils.JOsupport import get_physics_short
74phys_short = get_physics_short()
75if 'py1up' in phys_short:
76 include("Pythia8_i/Pythia8_A14_NNPDF23LO_Var1Up_EvtGen_Common.py")
77elif 'py1dw' in phys_short:
78 include("Pythia8_i/Pythia8_A14_NNPDF23LO_Var1Down_EvtGen_Common.py")
79elif 'py2up' in phys_short:
80 include("Pythia8_i/Pythia8_A14_NNPDF23LO_Var2Up_EvtGen_Common.py")
81elif 'py2dw' in phys_short:
82 include("Pythia8_i/Pythia8_A14_NNPDF23LO_Var2Down_EvtGen_Common.py")
83elif 'py3aup' in phys_short:
84 include("Pythia8_i/Pythia8_A14_NNPDF23LO_Var3aUp_EvtGen_Common.py")
85elif 'py3adw' in phys_short:
86 include("Pythia8_i/Pythia8_A14_NNPDF23LO_Var3aDown_EvtGen_Common.py")
87elif 'py3bup' in phys_short:
88 include("Pythia8_i/Pythia8_A14_NNPDF23LO_Var3bUp_EvtGen_Common.py")
89elif 'py3bdw' in phys_short:
90 include("Pythia8_i/Pythia8_A14_NNPDF23LO_Var3bDown_EvtGen_Common.py")
91elif 'py3cup' in phys_short:
92 include("Pythia8_i/Pythia8_A14_NNPDF23LO_Var3cUp_EvtGen_Common.py")
93elif 'py3cdw' in phys_short:
94 include("Pythia8_i/Pythia8_A14_NNPDF23LO_Var3cDown_EvtGen_Common.py")
95else:
96 include("Pythia8_i/Pythia8_A14_NNPDF23LO_EvtGen_Common.py")
97
98include("Pythia8_i/Pythia8_MadGraph.py")
99
100# Helper function that can be called from control file to use common mixing matrices
102 presusylog.info(f"Will set mixing to {mtype}")
103 # Include various cases for common mixing matrices here
104 # https://arxiv.org/pdf/0801.0045
105 if mtype == 'higgsino':
106 # Off-diagonal chargino mixing matrix V
107 param_blocks['VMIX']={}
108 param_blocks['VMIX']['1 1']='0.00E+00'
109 param_blocks['VMIX']['1 2']='1.00E+00'
110 param_blocks['VMIX']['2 1']='1.00E+00'
111 param_blocks['VMIX']['2 2']='0.00E+00'
112 # Off-diagonal chargino mixing matrix U
113 param_blocks['UMIX']={}
114 param_blocks['UMIX']['1 1']='0.00E+00'
115 param_blocks['UMIX']['1 2']='1.00E+00'
116 param_blocks['UMIX']['2 1']='1.00E+00'
117 param_blocks['UMIX']['2 2']='0.00E+00'
118 # Neutralino mixing matrix chi_i0 = N_ij (B,W,H_d,H_u)_j
119 param_blocks['NMIX']={}
120 param_blocks['NMIX']['1 1']=' 0.00E+00' # N_11 bino
121 param_blocks['NMIX']['1 2']=' 0.00E+00' # N_12
122 param_blocks['NMIX']['1 3']=' 7.07E-01' # N_13
123 param_blocks['NMIX']['1 4']='-7.07E-01' # N_14
124 param_blocks['NMIX']['2 1']=' 0.00E+00' # N_21
125 param_blocks['NMIX']['2 2']=' 0.00E+00' # N_22
126 param_blocks['NMIX']['2 3']='-7.07E-01' # N_23 higgsino
127 param_blocks['NMIX']['2 4']='-7.07E-01' # N_24 higgsino
128 param_blocks['NMIX']['3 1']=' 1.00E+00' # N_31
129 param_blocks['NMIX']['3 2']=' 0.00E+00' # N_32
130 param_blocks['NMIX']['3 3']=' 0.00E+00' # N_33 higgsino
131 param_blocks['NMIX']['3 4']=' 0.00E+00' # N_34 higgsino
132 param_blocks['NMIX']['4 1']=' 0.00E+00' # N_41
133 param_blocks['NMIX']['4 2']='-1.00E+00' # N_42 wino
134 param_blocks['NMIX']['4 3']=' 0.00E+00' # N_43
135 param_blocks['NMIX']['4 4']=' 0.00E+00' # N_44
136 if masses['1000022'] * masses['1000023'] > 0:
137 presusylog.warning("Expected N1 and N2 masses to have opposite sign for a higgsino signal. Possibly set after the mixing.")
138 elif mtype == 'winobino':
139 # Chargino mixing matrix V
140 param_blocks['VMIX']={}
141 param_blocks['VMIX']['1 1']='9.72557835E-01' # V_11
142 param_blocks['VMIX']['1 2']='-2.32661249E-01' # V_12
143 param_blocks['VMIX']['2 1']='2.32661249E-01' # V_21
144 param_blocks['VMIX']['2 2']='9.72557835E-01' # V_22
145 # Chargino mixing matrix U
146 param_blocks['UMIX']={}
147 param_blocks['UMIX']['1 1']='9.16834859E-01' # U_11
148 param_blocks['UMIX']['1 2']='-3.99266629E-01' # U_12
149 param_blocks['UMIX']['2 1']='3.99266629E-01' # U_21
150 param_blocks['UMIX']['2 2']='9.16834859E-01' # U_22
151 # Neutralino mixing matrix
152 param_blocks['NMIX']={}
153 param_blocks['NMIX']['1 1']='9.86364430E-01' # N_11
154 param_blocks['NMIX']['1 2']='-5.31103553E-02' # N_12
155 param_blocks['NMIX']['1 3']='1.46433995E-01' # N_13
156 param_blocks['NMIX']['1 4']='-5.31186117E-02' # N_14
157 param_blocks['NMIX']['2 1']='9.93505358E-02' # N_21
158 param_blocks['NMIX']['2 2']='9.44949299E-01' # N_22
159 param_blocks['NMIX']['2 3']='-2.69846720E-01' # N_23
160 param_blocks['NMIX']['2 4']='1.56150698E-01' # N_24
161 param_blocks['NMIX']['3 1']='-6.03388002E-02' # N_31
162 param_blocks['NMIX']['3 2']='8.77004854E-02' # N_32
163 param_blocks['NMIX']['3 3']='6.95877493E-01' # N_33
164 param_blocks['NMIX']['3 4']='7.10226984E-01' # N_34
165 param_blocks['NMIX']['4 1']='-1.16507132E-01' # N_41
166 param_blocks['NMIX']['4 2']='3.10739017E-01' # N_42
167 param_blocks['NMIX']['4 3']='6.49225960E-01' # N_43
168 param_blocks['NMIX']['4 4']='-6.84377823E-01' # N_44
169 elif mtype == 'stau_maxmix':
170 param_blocks['selmix'] = {}
171 # use maximally mixed staus
172 param_blocks['selmix'][ '3 3' ] = '0.70710678118' # # RRl3x3
173 param_blocks['selmix'][ '3 6' ] = '0.70710678118' # # RRl3x6
174 param_blocks['selmix'][ '6 3' ] = '-0.70710678118' # # RRl6x3
175 param_blocks['selmix'][ '6 6' ] = '0.70710678118' # # RRl6x6
176 elif mtype == 'stau_nomix':
177 param_blocks['selmix'] = {}
178 # No mixing
179 param_blocks['selmix'][ '3 3' ] = '1.0' # # RRl3x3
180 param_blocks['selmix'][ '3 6' ] = '0.0' # # RRl3x6
181 param_blocks['selmix'][ '6 3' ] = '0.0' # # RRl6x3
182 param_blocks['selmix'][ '6 6' ] = '1.0' # # RRl6x6
183 elif mtype == 'stop_maxmix':
184 param_blocks['USQMIX']={}
185 # use maximally mixed stop
186 param_blocks['USQMIX']['1 1'] = '1.0' # RRu1x1
187 param_blocks['USQMIX']['2 2'] = '1.0' # RRu2x2
188 param_blocks['USQMIX']['3 3'] = ' 0.70710678118' # RRu3x3
189 param_blocks['USQMIX']['3 6'] = ' 0.70710678118' # RRu3x6
190 param_blocks['USQMIX']['4 4'] = '1.0' # RRu4x4
191 param_blocks['USQMIX']['5 5'] = '1.0' # RRu5x5
192 param_blocks['USQMIX']['6 3'] = ' 0.70710678118' # RRu6x3
193 param_blocks['USQMIX']['6 6'] = ' -0.70710678118'# RRu6x6
194 elif mtype == 'stop_pureL':
195 param_blocks['USQMIX']={}
196 # stop only left-handed
197 param_blocks['USQMIX']['1 1'] = '1.0' # RRu1x1
198 param_blocks['USQMIX']['2 2'] = '1.0' # RRu2x2
199 param_blocks['USQMIX']['3 3'] = '1.0' # RRu3x3
200 param_blocks['USQMIX']['3 6'] = '0.0' # RRu3x6
201 param_blocks['USQMIX']['4 4'] = '1.0' # RRu4x4
202 param_blocks['USQMIX']['5 5'] = '1.0' # RRu5x5
203 param_blocks['USQMIX']['6 3'] = '0.0' # RRu6x3
204 param_blocks['USQMIX']['6 6'] = '1.0' # RRu6x6
205 elif mtype == 'stop_pureR':
206 param_blocks['USQMIX']={}
207 # stop only right-handed
208 param_blocks['USQMIX']['1 1'] = '1.0' # RRu1x1
209 param_blocks['USQMIX']['2 2'] = '1.0' # RRu2x2
210 param_blocks['USQMIX']['3 3'] = '0.0' # RRu3x3
211 param_blocks['USQMIX']['3 6'] = '1.0' # RRu3x6
212 param_blocks['USQMIX']['4 4'] = '1.0' # RRu4x4
213 param_blocks['USQMIX']['5 5'] = '1.0' # RRu5x5
214 param_blocks['USQMIX']['6 3'] = '1.0' # RRu6x3
215 param_blocks['USQMIX']['6 6'] = '0.0' # RRu6x6