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