################################################################################ # # Copyright (c) 2011 The MadGraph5_aMC@NLO Development team and Contributors # # This file is a part of the MadGraph5_aMC@NLO project, an application which # automatically generates Feynman diagrams and matrix elements for arbitrary # high-energy processes in the Standard Model and beyond. # # It is subject to the MadGraph5_aMC@NLO license which should accompany this # distribution. # # For more information, visit madgraph.phys.ucl.ac.be and amcatnlo.web.cern.ch # ################################################################################ from __future__ import division import random import StringIO import os import sys import tests.unit_tests as unittest _file_path = os.path.split(os.path.dirname(os.path.realpath(__file__)))[0] import madgraph.core.base_objects as base_objects import models.import_ufo as import_ufo sys.path.append('%s/../../Template/bin/internal' % _file_path) import models.check_param_card as writter class TestBlock(unittest.TestCase): """Check the class linked to a block of the param_card""" def test_block_load_string(self): """test that we recognize the different syntax""" text = """Block SMINPUTS""" b = writter.Block() b.load_str(text) self.assertEqual(b.name, 'sminputs') self.assertEqual(b.scale, None) text = """Block SMINPUTS # Q=1 #""" b = writter.Block() b.load_str(text) self.assertEqual(b.name, 'sminputs') self.assertEqual(b.scale, None) text = """Block SMINPUTS Q=1 #""" b = writter.Block() b.load_str(text) self.assertEqual(b.name, 'sminputs') self.assertEqual(b.scale, 1) def test_block_str(self): """check that we can write correctly the block""" text = """Block SMINPUTS Q=1 # test""" b = writter.Block() b.load_str(text) target="""################################### ## INFORMATION FOR SMINPUTS ################################### BLOCK SMINPUTS Q= 1.000000e+00 # test """ self.assertEqual(str(b).split('\n'), target.split('\n')) def test_block_append_remove(self): """check if we can safely add a parameter""" text = """Block SMINPUTS Q=1 # test""" b = writter.Block() b.load_str(text) b.append(writter.Parameter(block='sminputs', lhacode=[1,2], value=3)) b.append(writter.Parameter(block='sminputs', lhacode=[1], value=4)) self.assertEqual(len(b),2) self.assertRaises(AssertionError, b.append, writter.Parameter(block='other')) self.assertRaises(writter.InvalidParamCard, b.append, writter.Parameter(block='sminputs', lhacode=[1,2], value=9)) self.assertEqual(len(b),2) b.remove([1,2]) self.assertEqual(len(b),1) self.assertEqual(b.param_dict.keys(),[(1,)]) class TestParamCard(unittest.TestCase): """ Test the ParamCard Object """ def test_mod_param(self): """ test that we can modify a param card """ full_card = os.path.join(_file_path, os.path.pardir, 'input_files', 'param_card_sm.dat') card = writter.ParamCard(full_card) self.assertFalse(card.has_param('mass', [999])) self.assertFalse(card.has_param('new', [24])) self.assertFalse(card.has_param('new', [23])) card.copy_param('mass',[23], 'new', [24]) self.assertFalse(card.has_param('mass', [24])) self.assertTrue(card.has_param('mass', [23])) self.assertTrue(card.has_param('new', [24])) self.assertFalse(card.has_param('new', [23])) card.copy_param('mass',[23], 'new') card.copy_param('mass',[23], lhacode=[999]) self.assertEqual(len(card['new']), 2) self.assertTrue(card.has_param('mass', [999])) self.assertTrue(card.has_param('new', [24])) self.assertTrue(card.has_param('new', [23])) self.assertTrue(card.has_param('mass', [23])) card.remove_param('new', [23]) card.remove_param('new', [24]) card.remove_param('mass',[999]) self.assertFalse(card.has_param('mass', [999])) self.assertFalse(card.has_param('new', [24])) self.assertFalse(card.has_param('new', [23])) self.assertTrue(card.has_param('mass', [23])) self.assertFalse('new' in card.keys()) card.mod_param('mass', [23], 'new', [25], 43) card.mod_param('decay', [23], 'new', [26], 43) self.assertEqual(len(card['new']), 2) self.assertTrue(card.has_param('new', [25])) self.assertTrue(card.has_param('new', [26])) self.assertFalse(card.has_param('new', [23])) self.assertFalse(card.has_param('mass', [23])) self.assertEqual(card['new'].get([25]).value, 43) card.mod_param('new', [25], 'mass', [23]) card.mod_param('new', [26], 'decay', [23]) self.assertFalse('new' in card.keys()) def test_mod_card(self): """ test that we can modify a param card """ full_card = os.path.join(_file_path, os.path.pardir, 'input_files', 'param_card_sm.dat') card = writter.ParamCard(full_card) # Rename the blocks mass = card['mass'] card.rename_blocks({'mass':'polemass','decay':'width'}) self.assertTrue(card.has_key('polemass')) self.assertTrue(card.has_key('width')) self.assertFalse(card.has_key('mass')) self.assertFalse(card.has_key('decay')) self.assertEqual(mass, card['polemass']) self.assertEqual(mass.name, 'polemass') # Change the lhacode of a parameter param = card['width'].get([23]) card.mod_param('width', [23], lhacode=[32]) self.assertRaises(KeyError, card['width'].get, [23]) self.assertEqual(param, card['width'].get([32])) self.assertEqual(param.lhacode, [32]) # change the block of a parameter card.mod_param('width', [32], block='mass') self.assertRaises(KeyError, card['width'].get, [32]) self.assertEqual(param, card['mass'].get([32])) self.assertEqual(param.lhacode, [32]) self.assertEqual(param.lhablock, 'mass') # change the block of a parameter and lhacode card.mod_param('mass', [32], block='polemass', lhacode=[35]) self.assertFalse(card.has_key('mass')) self.assertRaises(KeyError, card['polemass'].get, [32]) self.assertRaises(KeyError, card['width'].get, [32]) self.assertEqual(param, card['polemass'].get([35])) self.assertEqual(param.lhacode, [35]) self.assertEqual(param.lhablock, 'polemass') # change the value / comment card.mod_param('polemass', [35], value=2, comment='new') self.assertEqual(param.value, 2) self.assertEqual(param.comment, 'new') self.assertRaises(writter.InvalidParamCard, card.mod_param, *('polemass', [35], 'width', [24])) class TestParamCardIterator(unittest.TestCase): """ Test the ParamCard Object """ def test_paramcard_scan(self): full_card = os.path.join(_file_path, os.path.pardir, 'input_files', 'param_card_sm.dat') card = writter.ParamCard(full_card) # create a simple 1D scan card['mass'].get(6).value = "scan:[1,2,3,4,5]" mh = card['mass'].get(25).value # to check that param_card are independant itercard = writter.ParamCardIterator(card) card['mass'].get(25).value = 25.0 for i, new_card in enumerate(itercard): self.assertEqual(new_card['mass'].get(6).value, i+1) self.assertEqual(new_card['mass'].get(25).value, mh) self.assertEqual(i, 4) # create a 1D scan with two parameter card['mass'].get(6).value = "scan1:[1,2,3,4,5]" card['mass'].get(25).value = "scan1:[0,10,20,30,40]" itercard = writter.ParamCardIterator(card) for i, new_card in enumerate(itercard): self.assertEqual(new_card['mass'].get(6).value, i+1) self.assertEqual(new_card['mass'].get(25).value, 10*i) self.assertEqual(i, 4) # create a 2D scan with two parameter card['mass'].get(6).value = "scan:[1,2,3]" card['mass'].get(25).value = "scan:[0,10,20,30]" all_possibilities = [(1,0), (1,10),(1,20),(1,30), (2,0), (2,10),(2,20),(2,30), (3,0), (3,10),(3,20),(3,30) ] itercard = writter.ParamCardIterator(card) for i, new_card in enumerate(itercard): choice = (new_card['mass'].get(6).value, new_card['mass'].get(25).value) self.assertIn(choice, all_possibilities) all_possibilities.remove(choice) self.assertEqual(i, 11) self.assertFalse(all_possibilities) class TestParamCardRule(unittest.TestCase): """ Test the ParamCardRule Object""" def setUp(self): """test""" self.main = writter.ParamCardRule() def test_read(self): """Check if we can read a file""" self.main.load_rule(os.path.join(_file_path, os.path.pardir, 'input_files', 'param_card_rule_sm.dat')) self.assertEqual(2, len(self.main.zero)) self.assertEqual(self.main.zero,[('Mass', [1], ''), ('Mass', [2], '')]) self.assertEqual(self.main.one,[('CKM', [1, 1], ''), ('CKM', [2, 2], '')]) self.assertEqual(self.main.identical,[('Mass', [1], [2], '')]) def test_write(self): """Check if we can write a file""" self.main.add_zero('mass',[1]) self.main.add_zero('mass',[2]) self.main.add_one('mass',[3,2]) self.main.add_identical('mass',[1],[2]) fsock = StringIO.StringIO() self.main.write_file(fsock) out = fsock.getvalue() target = """###################################################################### ## VALIDITY RULE FOR THE PARAM_CARD #### ###################################################################### mass 1 # mass 2 # mass 3 2 # mass 1 : 2 # """ self.assertEqual(out.split('\n'), target.split('\n')) def test_read_write_param_card(self): """Test that we can write a param_card from the ParamCard object""" dict = self.main.read_param_card(os.path.join(_file_path, os.path.pardir, 'input_files', 'restrict_sm.dat')) solution = {'yukawa': {'[4]': (0.0, 'ymc'), '[5]': (0.0, 'ymb'), '[6]': (164.5, 'ymt'), '[15]': (1.777, 'ymtau')}, 'wolfenstein': {'[1]': (0.0, 'cabi'), '[2]': (0.0, 'cabi'), '[3]': (0.0, 'cabi'), '[4]': (0.0, 'cabi')}, 'sminputs': {'[3]': (0.118, 'as'), '[1]': (132.507, 'aewm1'), '[2]': (1.16639e-05, 'gf')}, 'mass': {'[13]': (0.0, 'mm'), '[23]': (91.188, 'mz'), '[15]': (1.777, 'mta'), '[11]': (0.0, 'me'), '[6]': (172.0, 'mt'), '[25]': (91.188, 'mh'), '[4]': (0.0, 'mc'), '[5]': (0.0, 'mb'), }, 'decay': {'[6]': (0.0, 'wt'), '[25]': (2.441404, 'wh'), '[24]': (3.0, 'ww'), '[23]': (2.441404, 'wz')}} for key, item in solution.items(): for key2, (value, comment) in item.items(): self.assertEqual(value, float(dict[key].get(eval(key2)).value)) fsock = StringIO.StringIO() self.main.write_param_card(fsock, dict) output = fsock.getvalue() target = """###################################################################### ## PARAM_CARD AUTOMATICALY GENERATED BY MG5 #### ###################################################################### ################################### ## INFORMATION FOR SMINPUTS ################################### BLOCK SMINPUTS # 1 1.325070e+02 # aewm1 2 1.166390e-05 # gf 3 1.180000e-01 # as ################################### ## INFORMATION FOR MASS ################################### BLOCK MASS # 4 0.000000e+00 # mc 5 0.000000e+00 # mb 6 1.720000e+02 # mt 11 0.000000e+00 # me 13 0.000000e+00 # mm 15 1.777000e+00 # mta 23 9.118800e+01 # mz 25 9.118800e+01 # mh ################################### ## INFORMATION FOR WOLFENSTEIN ################################### BLOCK WOLFENSTEIN # 1 0.000000e+00 # lamws 2 0.000000e+00 # aws 3 0.000000e+00 # rhows 4 0.000000e+00 # etaws ################################### ## INFORMATION FOR YUKAWA ################################### BLOCK YUKAWA # 4 0.000000e+00 # ymc 5 0.000000e+00 # ymb 6 1.645000e+02 # ymt 11 0.000000e+00 # yme 13 0.000000e+00 # ymm 15 1.777000e+00 # ymtau ################################### ## INFORMATION FOR DECAY ################################### DECAY 6 0.000000e+00 # wt 9.900000e-01 2 5 24 # branching ratio 1.000000e-02 2 3 24 # branching ratio DECAY 15 0.000000e+00 # DECAY 23 2.441404e+00 # wz 1.000000e+00 2 -5 5 # DECAY 24 3.000000e+00 # ww DECAY 25 2.441404e+00 # wh """ self.assertEqual(target.split('\n'), output.split('\n')) dict = self.main.read_param_card([l+'\n' for l in output.split('\n')]) for key, item in solution.items(): for key2, (value, comment) in item.items(): self.assertEqual(value, float(dict[key].get(eval(key2)).value)) def test_load_with_restrict_model(self): """ check that the rule are correctly set for a restriction """ # Load a model and a given restriction file sm_path = import_ufo.find_ufo_path('sm') base_model = import_ufo.import_full_model(sm_path) base_model = import_ufo.RestrictModel(base_model) restrict_file = os.path.join(_file_path, os.path.pardir, 'input_files', 'restrict_sm.dat') base_model.set_parameters_and_couplings(restrict_file) base_model.restrict_model(restrict_file) # Check the information of the CardRule is present and fine: self.assertTrue(hasattr(base_model,'rule_card')) target_zero =[('wolfenstein', [1], ''), ('wolfenstein', [2], ''), ('wolfenstein', [3], ''), ('wolfenstein', [4], ''), ('yukawa', [4], ''), ('yukawa', [5], ''), ('yukawa', [11], ''), ('yukawa', [13], ''), ('mass', [4], ''), ('mass', [5], ''), ('mass', [11], ''), ('mass', [13], ''), ('decay', [6], ''), ('decay', [15], '')] self.assertEqual(base_model.rule_card.zero, target_zero) target_one = [] self.assertEqual(base_model.rule_card.one, target_one) target_identical = [('mass', [25], [23], '')] self.assertEqual(base_model.rule_card.identical, target_identical) target_rule = [] self.assertEqual(base_model.rule_card.rule, target_rule) # test that the rule_card is what we expect fsock = StringIO.StringIO() base_model.rule_card.write_file(fsock) out = fsock.getvalue() target ="""###################################################################### ## VALIDITY RULE FOR THE PARAM_CARD #### ###################################################################### wolfenstein 1 # wolfenstein 2 # wolfenstein 3 # wolfenstein 4 # yukawa 4 # yukawa 5 # yukawa 11 # yukawa 13 # mass 4 # mass 5 # mass 11 # mass 13 # decay 6 # decay 15 # mass 25 : 23 # """ self.assertEqual(out.split('\n'), target.split('\n')) def test_check_param(self): """check if the check param_card is working""" # Load a model and a given restriction file sm_path = import_ufo.find_ufo_path('sm') base_model = import_ufo.import_full_model(sm_path) base_model = import_ufo.RestrictModel(base_model) restrict_file = os.path.join(_file_path, os.path.pardir, 'input_files', 'restrict_sm.dat') base_model.set_parameters_and_couplings(restrict_file) base_model.restrict_model(restrict_file) # base_model.rule_card.check_param_card(restrict_file) full_card = os.path.join(_file_path, os.path.pardir, 'input_files', 'param_card_sm.dat') self.assertRaises(writter.InvalidParamCard, base_model.rule_card.check_param_card, full_card) def test_make_valid(self): """ check that we can modify a param_card following a restriction""" # Load a model and a given restriction file full_card = os.path.join(_file_path, os.path.pardir, 'input_files', 'param_card_sm.dat') restriction = """###################################################################### ## VALIDITY RULE FOR THE PARAM_CARD #### ###################################################################### ckmblock 1 # yukawa 4 # yukawa 5 # mass 11 # mass 13 # mass 2 # mass 4 # mass 1 # mass 3 # mass 5 # decay 15 # decay 6 # mass 25 : 23 # decay 25 : 23 # """ fsock = StringIO.StringIO() writter.make_valid_param_card(full_card, restriction, outputpath=fsock) output = fsock.getvalue() target = """###################################################################### ## PARAM_CARD AUTOMATICALY GENERATED BY MG5 #### ###################################################################### ################################### ## INFORMATION FOR MASS ################################### BLOCK MASS # 15 1.777000e+00 # mta 6 1.743000e+02 # mt 5 0.000000e+00 # mb fixed by the model 23 9.118800e+01 # mz 25 9.118800e+01 # mh must be identical to [23] 11 0.000000e+00 # fixed by the model 13 0.000000e+00 # fixed by the model 2 0.000000e+00 # fixed by the model 4 0.000000e+00 # fixed by the model 1 0.000000e+00 # fixed by the model 3 0.000000e+00 # fixed by the model ################################### ## INFORMATION FOR SMINPUTS ################################### BLOCK SMINPUTS # 1 1.325070e+02 # aewm1 2 1.166390e-05 # gf 3 1.180000e-01 # as ################################### ## INFORMATION FOR YUKAWA ################################### BLOCK YUKAWA # 5 0.000000e+00 # ymb fixed by the model 6 1.645000e+02 # ymt 15 1.777000e+00 # ymtau 4 0.000000e+00 # fixed by the model ################################### ## INFORMATION FOR DECAY ################################### DECAY 6 0.000000e+00 # fixed by the model DECAY 23 2.441404e+00 # DECAY 24 2.047600e+00 # DECAY 25 2.441404e+00 # must be identical to [23] DECAY 15 0.000000e+00 # fixed by the model ################################### ## INFORMATION FOR CKMBLOCK ################################### BLOCK CKMBLOCK # 1 0.000000e+00 # fixed by the model """ self.assertEqual(output.split('\n'), target.split('\n')) class TestConvertSLAH(unittest.TestCase): """ Test the ParamCardRule Object""" sps1a = os.path.join(_file_path, os.path.pardir, 'input_files', 'sps1a_param_card.dat') output = '/tmp/mg5param.dat' def tearDown(self): if os.path.exists(self.output): os.remove(self.output) def test_convert_to_mg5(self): """take the slah1 and convert it to mg5""" target = """###################################################################### ## PARAM_CARD AUTOMATICALY GENERATED BY MG5 #### ###################################################################### ################################### ## INFORMATION FOR DCINFO ################################### BLOCK DCINFO # decay program information 1 sdecay # decay calculator 2 1.1a # version number ################################### ## INFORMATION FOR SPINFO ################################### BLOCK SPINFO # spectrum calculator information 1 softsusy # spectrum calculator 2 2.0.5 # version number ################################### ## INFORMATION FOR MODSEL ################################### BLOCK MODSEL # model selection 1 1 sugra # 2 1 # fake line for the formating line point of view ################################### ## INFORMATION FOR SMINPUTS ################################### BLOCK SMINPUTS # standard model inputs 1 1.279340e+02 # alpha_em^-1(m_z)^msbar 3 1.180000e-01 # alpha_s(m_z)^msbar 5 4.250000e+00 # mb(mb)^msbar ################################### ## INFORMATION FOR MINPAR ################################### BLOCK MINPAR # input parameters - minimal models 1 1.000000e+02 # m0 2 2.500000e+02 # m12 3 1.000000e+01 # tanb 4 1.000000e+00 # sign(mu) 5 -1.000000e+02 # a0 ################################### ## INFORMATION FOR MASS ################################### BLOCK MASS # mass spectrum 5 4.889917e+00 # b-quark pole mass calculated from mb(mb)_msbar 6 1.750000e+02 # mt pole mass (not read by me) 24 7.982901e+01 # w+ 25 1.108991e+02 # h 35 3.999601e+02 # h 36 3.995839e+02 # a 37 4.078790e+02 # h+ 1000001 5.684411e+02 # ~d_l 2000001 5.452285e+02 # ~d_r 1000002 5.611190e+02 # ~u_l 2000002 5.492593e+02 # ~u_r 1000003 5.684411e+02 # ~s_l 2000003 5.452285e+02 # ~s_r 1000004 5.611190e+02 # ~c_l 2000004 5.492593e+02 # ~c_r 1000005 5.130652e+02 # ~b_1 2000005 5.437267e+02 # ~b_2 1000006 3.996685e+02 # ~t_1 2000006 5.857858e+02 # ~t_2 1000011 2.029157e+02 # ~e_l 2000011 1.441028e+02 # ~e_r 1000012 1.852583e+02 # ~nu_el 1000013 2.029157e+02 # ~mu_l 2000013 1.441028e+02 # ~mu_r 1000014 1.852583e+02 # ~nu_mul 1000015 1.344909e+02 # ~tau_1 2000015 2.068678e+02 # ~tau_2 1000016 1.847085e+02 # ~nu_taul 1000021 6.077137e+02 # ~g 1000022 9.668807e+01 # ~chi_10 1000023 1.810882e+02 # ~chi_20 1000025 -3.637560e+02 # ~chi_30 1000035 3.817294e+02 # ~chi_40 1000024 1.816965e+02 # ~chi_1+ 1000037 3.799393e+02 # ~chi_2+ ################################### ## INFORMATION FOR NMIX ################################### BLOCK NMIX # neutralino mixing matrix 1 1 9.863644e-01 # n_11 1 2 -5.311036e-02 # n_12 1 3 1.464340e-01 # n_13 1 4 -5.311861e-02 # n_14 2 1 9.935054e-02 # n_21 2 2 9.449493e-01 # n_22 2 3 -2.698467e-01 # n_23 2 4 1.561507e-01 # n_24 3 1 -6.033880e-02 # n_31 3 2 8.770049e-02 # n_32 3 3 6.958775e-01 # n_33 3 4 7.102270e-01 # n_34 4 1 -1.165071e-01 # n_41 4 2 3.107390e-01 # n_42 4 3 6.492260e-01 # n_43 4 4 -6.843778e-01 # n_44 ################################### ## INFORMATION FOR UMIX ################################### BLOCK UMIX # chargino mixing matrix u 1 1 9.168349e-01 # u_11 1 2 -3.992666e-01 # u_12 2 1 3.992666e-01 # u_21 2 2 9.168349e-01 # u_22 ################################### ## INFORMATION FOR VMIX ################################### BLOCK VMIX # chargino mixing matrix v 1 1 9.725578e-01 # v_11 1 2 -2.326612e-01 # v_12 2 1 2.326612e-01 # v_21 2 2 9.725578e-01 # v_22 ################################### ## INFORMATION FOR HMIX ################################### BLOCK HMIX Q= 4.670342e+02 # drbar higgs parameters 1 3.576810e+02 # mu(q)mssm drbar 2 9.748624e+00 # tan beta(q)mssm drba 4 1.664391e+05 # ma^2(q)mssm drbar ################################### ## INFORMATION FOR GAUGE ################################### BLOCK GAUGE Q= 4.670342e+02 # the gauge couplings 3 1.101787e+00 # g3(q) msbar ################################### ## INFORMATION FOR YU ################################### BLOCK YU Q= 4.670342e+02 # the yukawa couplings 3 3 8.928445e-01 # y_t(q) drbar ################################### ## INFORMATION FOR YD ################################### BLOCK YD Q= 4.670342e+02 # the yukawa couplings 3 3 1.388402e-01 # y_b(q) drbar ################################### ## INFORMATION FOR YE ################################### BLOCK YE Q= 4.670342e+02 # the yukawa couplings 3 3 1.008908e-01 # y_tau(q) drbar ################################### ## INFORMATION FOR MSOFT ################################### BLOCK MSOFT Q= 4.670342e+02 # the soft susy breaking masses at the scale q 1 1.013965e+02 # m_1(q) 2 1.915042e+02 # m_2(q) 3 5.882630e+02 # m_3(q) 21 3.233749e+04 # mh1^2(q) 22 -1.288001e+05 # mh2^2(q) ################################### ## INFORMATION FOR DECAY ################################### DECAY 23 2.411433e+00 # z width (sm calculation) DECAY 24 2.002822e+00 # w width (sm calculation) DECAY 6 1.561950e+00 # top decays 1.000000e+00 2 5 24 # br(t -> b w+) 0.000000e+00 2 5 37 # br(t -> b h+) 0.000000e+00 2 1000006 1000022 # br(t -> ~t_1 ~chi_10) 0.000000e+00 2 1000006 1000023 # br(t -> ~t_1 ~chi_20) 0.000000e+00 2 1000006 1000025 # br(t -> ~t_1 ~chi_30) 0.000000e+00 2 1000006 1000035 # br(t -> ~t_1 ~chi_40) 0.000000e+00 2 1000022 2000006 # br(t -> ~t_2 ~chi_10) 0.000000e+00 2 1000023 2000006 # br(t -> ~t_2 ~chi_20) 0.000000e+00 2 1000025 2000006 # br(t -> ~t_2 ~chi_30) 0.000000e+00 2 1000035 2000006 # br(t -> ~t_2 ~chi_40) DECAY 25 1.986108e-03 # h decays 1.456430e-01 2 -15 15 # br(h1 -> tau- tau+) 8.190707e-01 2 -5 5 # br(h1 -> b bb) 3.363382e-02 2 -24 24 # br(h1 -> w+ w-) 1.652515e-03 2 23 23 # br(h1 -> z z) DECAY 35 5.748014e-01 # h decays 1.390727e-01 2 -15 15 # br(h -> tau- tau+) 4.841109e-02 2 -6 6 # br(h -> t tb) 7.895001e-01 2 -5 5 # br(h -> b bb) 3.876812e-03 2 -24 24 # br(h -> w+ w-) 1.804548e-03 2 23 23 # br(h -> z z) 0.000000e+00 2 -37 24 # br(h -> w+ h-) 0.000000e+00 2 -24 37 # br(h -> w- h+) 0.000000e+00 2 -37 37 # br(h -> h+ h-) 1.733481e-02 2 25 25 # br(h -> h h) 0.000000e+00 2 36 36 # br(h -> a a) DECAY 36 6.321785e-01 # a decays 1.266597e-01 2 -15 15 # br(a -> tau- tau+) 1.510815e-01 2 -6 6 # br(a -> t tb) 7.194061e-01 2 -5 5 # br(a -> b bb) 2.852612e-03 2 23 25 # br(a -> z h) 0.000000e+00 2 23 35 # br(a -> z h) 0.000000e+00 2 -37 24 # br(a -> w+ h-) 0.000000e+00 2 -24 37 # br(a -> w- h+) DECAY 37 5.469628e-01 # h+ decays 1.494351e-01 2 -15 16 # br(h+ -> tau+ nu_tau) 8.468117e-01 2 -5 6 # br(h+ -> t bb) 3.753154e-03 2 24 25 # br(h+ -> w+ h) 0.000000e+00 2 24 35 # br(h+ -> w+ h) 0.000000e+00 2 24 36 # br(h+ -> w+ a) DECAY 1000021 5.506754e+00 # gluino decays 2.084542e-02 2 -1 1000001 # br(~g -> ~d_l db) 2.084542e-02 2 -1000001 1 # br(~g -> ~d_l* d ) 5.070753e-02 2 -1 2000001 # br(~g -> ~d_r db) 5.070753e-02 2 -2000001 1 # br(~g -> ~d_r* d ) 2.897878e-02 2 -2 1000002 # br(~g -> ~u_l ub) 2.897878e-02 2 -1000002 2 # br(~g -> ~u_l* u ) 4.468728e-02 2 -2 2000002 # br(~g -> ~u_r ub) 4.468728e-02 2 -2000002 2 # br(~g -> ~u_r* u ) 2.084542e-02 2 -3 1000003 # br(~g -> ~s_l sb) 2.084542e-02 2 -1000003 3 # br(~g -> ~s_l* s ) 5.070753e-02 2 -3 2000003 # br(~g -> ~s_r sb) 5.070753e-02 2 -2000003 3 # br(~g -> ~s_r* s ) 2.897878e-02 2 -4 1000004 # br(~g -> ~c_l cb) 2.897878e-02 2 -1000004 4 # br(~g -> ~c_l* c ) 4.468728e-02 2 -4 2000004 # br(~g -> ~c_r cb) 4.468728e-02 2 -2000004 4 # br(~g -> ~c_r* c ) 1.058402e-01 2 -5 1000005 # br(~g -> ~b_1 bb) 1.058402e-01 2 -1000005 5 # br(~g -> ~b_1* b ) 5.565748e-02 2 -5 2000005 # br(~g -> ~b_2 bb) 5.565748e-02 2 -2000005 5 # br(~g -> ~b_2* b ) 4.806428e-02 2 -6 1000006 # br(~g -> ~t_1 tb) 4.806428e-02 2 -1000006 6 # br(~g -> ~t_1* t ) 0.000000e+00 2 -6 2000006 # br(~g -> ~t_2 tb) 0.000000e+00 2 -2000006 6 # br(~g -> ~t_2* t ) DECAY 1000006 2.021596e+00 # stop1 decays 1.929476e-01 2 6 1000022 # br(~t_1 -> ~chi_10 t ) 1.174692e-01 2 6 1000023 # br(~t_1 -> ~chi_20 t ) 0.000000e+00 2 6 1000025 # br(~t_1 -> ~chi_30 t ) 0.000000e+00 2 6 1000035 # br(~t_1 -> ~chi_40 t ) 6.757477e-01 2 5 1000024 # br(~t_1 -> ~chi_1+ b ) 1.383548e-02 2 5 1000037 # br(~t_1 -> ~chi_2+ b ) 0.000000e+00 2 6 1000021 # br(~t_1 -> ~g t ) 0.000000e+00 2 37 1000005 # br(~t_1 -> ~b_1 h+) 0.000000e+00 2 37 2000005 # br(~t_1 -> ~b_2 h+) 0.000000e+00 2 24 1000005 # br(~t_1 -> ~b_1 w+) 0.000000e+00 2 24 2000005 # br(~t_1 -> ~b_2 w+) DECAY 2000006 7.373133e+00 # stop2 decays 2.968256e-02 2 6 1000022 # br(~t_2 -> ~chi_10 t ) 8.680354e-02 2 6 1000023 # br(~t_2 -> ~chi_20 t ) 4.184084e-02 2 6 1000025 # br(~t_2 -> ~chi_30 t ) 1.932816e-01 2 6 1000035 # br(~t_2 -> ~chi_40 t ) 2.196324e-01 2 5 1000024 # br(~t_2 -> ~chi_1+ b ) 2.022061e-01 2 5 1000037 # br(~t_2 -> ~chi_2+ b ) 0.000000e+00 2 6 1000021 # br(~t_2 -> ~g t ) 3.663977e-02 2 25 1000006 # br(~t_2 -> ~t_1 h ) 0.000000e+00 2 35 1000006 # br(~t_2 -> ~t_1 h ) 0.000000e+00 2 36 1000006 # br(~t_2 -> ~t_1 a ) 0.000000e+00 2 37 1000005 # br(~t_2 -> ~b_1 h+) 0.000000e+00 2 37 2000005 # br(~t_2 -> ~b_2 h+) 1.899131e-01 2 23 1000006 # br(~t_2 -> ~t_1 z ) 0.000000e+00 2 24 1000005 # br(~t_2 -> ~b_1 w+) 0.000000e+00 2 24 2000005 # br(~t_2 -> ~b_2 w+) DECAY 1000005 3.736276e+00 # sbottom1 decays 4.433071e-02 2 5 1000022 # br(~b_1 -> ~chi_10 b ) 3.563199e-01 2 5 1000023 # br(~b_1 -> ~chi_20 b ) 5.160838e-03 2 5 1000025 # br(~b_1 -> ~chi_30 b ) 1.041051e-02 2 5 1000035 # br(~b_1 -> ~chi_40 b ) 4.458301e-01 2 -1000024 6 # br(~b_1 -> ~chi_1- t ) 0.000000e+00 2 -1000037 6 # br(~b_1 -> ~chi_2- t ) 0.000000e+00 2 5 1000021 # br(~b_1 -> ~g b ) 0.000000e+00 2 -37 1000006 # br(~b_1 -> ~t_1 h-) 0.000000e+00 2 -37 2000006 # br(~b_1 -> ~t_2 h-) 1.379480e-01 2 -24 1000006 # br(~b_1 -> ~t_1 w-) 0.000000e+00 2 -24 2000006 # br(~b_1 -> ~t_2 w-) DECAY 2000005 8.015663e-01 # sbottom2 decays 2.862006e-01 2 5 1000022 # br(~b_2 -> ~chi_10 b ) 1.403159e-01 2 5 1000023 # br(~b_2 -> ~chi_20 b ) 5.326356e-02 2 5 1000025 # br(~b_2 -> ~chi_30 b ) 7.487481e-02 2 5 1000035 # br(~b_2 -> ~chi_40 b ) 1.797343e-01 2 -1000024 6 # br(~b_2 -> ~chi_1- t ) 0.000000e+00 2 -1000037 6 # br(~b_2 -> ~chi_2- t ) 0.000000e+00 2 5 1000021 # br(~b_2 -> ~g b ) 0.000000e+00 2 25 1000005 # br(~b_2 -> ~b_1 h ) 0.000000e+00 2 35 1000005 # br(~b_2 -> ~b_1 h ) 0.000000e+00 2 36 1000005 # br(~b_2 -> ~b_1 a ) 0.000000e+00 2 -37 1000006 # br(~b_2 -> ~t_1 h-) 0.000000e+00 2 -37 2000006 # br(~b_2 -> ~t_2 h-) 0.000000e+00 2 23 1000005 # br(~b_2 -> ~b_1 z ) 2.656108e-01 2 -24 1000006 # br(~b_2 -> ~t_1 w-) 0.000000e+00 2 -24 2000006 # br(~b_2 -> ~t_2 w-) DECAY 1000002 5.477195e+00 # sup_l decays 6.652410e-03 2 2 1000022 # br(~u_l -> ~chi_10 u) 3.190515e-01 2 2 1000023 # br(~u_l -> ~chi_20 u) 8.449291e-04 2 2 1000025 # br(~u_l -> ~chi_30 u) 1.034852e-02 2 2 1000035 # br(~u_l -> ~chi_40 u) 6.494995e-01 2 1 1000024 # br(~u_l -> ~chi_1+ d) 1.360317e-02 2 1 1000037 # br(~u_l -> ~chi_2+ d) 0.000000e+00 2 2 1000021 # br(~u_l -> ~g u) DECAY 2000002 1.152973e+00 # sup_r decays 9.863774e-01 2 2 1000022 # br(~u_r -> ~chi_10 u) 8.466406e-03 2 2 1000023 # br(~u_r -> ~chi_20 u) 1.238947e-03 2 2 1000025 # br(~u_r -> ~chi_30 u) 3.917226e-03 2 2 1000035 # br(~u_r -> ~chi_40 u) 0.000000e+00 2 1 1000024 # br(~u_r -> ~chi_1+ d) 0.000000e+00 2 1 1000037 # br(~u_r -> ~chi_2+ d) 0.000000e+00 2 2 1000021 # br(~u_r -> ~g u) DECAY 1000001 5.312788e+00 # sdown_l decays 2.323180e-02 2 1 1000022 # br(~d_l -> ~chi_10 d) 3.102351e-01 2 1 1000023 # br(~d_l -> ~chi_20 d) 1.523348e-03 2 1 1000025 # br(~d_l -> ~chi_30 d) 1.488498e-02 2 1 1000035 # br(~d_l -> ~chi_40 d) 6.064525e-01 2 -1000024 2 # br(~d_l -> ~chi_1- u) 4.367232e-02 2 -1000037 2 # br(~d_l -> ~chi_2- u) 0.000000e+00 2 1 1000021 # br(~d_l -> ~g d) DECAY 2000001 2.858123e-01 # sdown_r decays 9.865296e-01 2 1 1000022 # br(~d_r -> ~chi_10 d) 8.445104e-03 2 1 1000023 # br(~d_r -> ~chi_20 d) 1.211721e-03 2 1 1000025 # br(~d_r -> ~chi_30 d) 3.813561e-03 2 1 1000035 # br(~d_r -> ~chi_40 d) 0.000000e+00 2 -1000024 2 # br(~d_r -> ~chi_1- u) 0.000000e+00 2 -1000037 2 # br(~d_r -> ~chi_2- u) 0.000000e+00 2 1 1000021 # br(~d_r -> ~g d) DECAY 1000004 5.477195e+00 # scharm_l decays 6.652410e-03 2 4 1000022 # br(~c_l -> ~chi_10 c) 3.190515e-01 2 4 1000023 # br(~c_l -> ~chi_20 c) 8.449291e-04 2 4 1000025 # br(~c_l -> ~chi_30 c) 1.034852e-02 2 4 1000035 # br(~c_l -> ~chi_40 c) 6.494995e-01 2 3 1000024 # br(~c_l -> ~chi_1+ s) 1.360317e-02 2 3 1000037 # br(~c_l -> ~chi_2+ s) 0.000000e+00 2 4 1000021 # br(~c_l -> ~g c) DECAY 2000004 1.152973e+00 # scharm_r decays 9.863774e-01 2 4 1000022 # br(~c_r -> ~chi_10 c) 8.466406e-03 2 4 1000023 # br(~c_r -> ~chi_20 c) 1.238947e-03 2 4 1000025 # br(~c_r -> ~chi_30 c) 3.917226e-03 2 4 1000035 # br(~c_r -> ~chi_40 c) 0.000000e+00 2 3 1000024 # br(~c_r -> ~chi_1+ s) 0.000000e+00 2 3 1000037 # br(~c_r -> ~chi_2+ s) 0.000000e+00 2 4 1000021 # br(~c_r -> ~g c) DECAY 1000003 5.312788e+00 # sstrange_l decays 2.323180e-02 2 3 1000022 # br(~s_l -> ~chi_10 s) 3.102351e-01 2 3 1000023 # br(~s_l -> ~chi_20 s) 1.523348e-03 2 3 1000025 # br(~s_l -> ~chi_30 s) 1.488498e-02 2 3 1000035 # br(~s_l -> ~chi_40 s) 6.064525e-01 2 -1000024 4 # br(~s_l -> ~chi_1- c) 4.367232e-02 2 -1000037 4 # br(~s_l -> ~chi_2- c) 0.000000e+00 2 3 1000021 # br(~s_l -> ~g s) DECAY 2000003 2.858123e-01 # sstrange_r decays 9.865296e-01 2 3 1000022 # br(~s_r -> ~chi_10 s) 8.445104e-03 2 3 1000023 # br(~s_r -> ~chi_20 s) 1.211721e-03 2 3 1000025 # br(~s_r -> ~chi_30 s) 3.813561e-03 2 3 1000035 # br(~s_r -> ~chi_40 s) 0.000000e+00 2 -1000024 4 # br(~s_r -> ~chi_1- c) 0.000000e+00 2 -1000037 4 # br(~s_r -> ~chi_2- c) 0.000000e+00 2 3 1000021 # br(~s_r -> ~g s) DECAY 1000011 2.136822e-01 # selectron_l decays 5.731554e-01 2 11 1000022 # br(~e_l -> ~chi_10 e-) 1.645226e-01 2 11 1000023 # br(~e_l -> ~chi_20 e-) 0.000000e+00 2 11 1000025 # br(~e_l -> ~chi_30 e-) 0.000000e+00 2 11 1000035 # br(~e_l -> ~chi_40 e-) 2.623220e-01 2 -1000024 12 # br(~e_l -> ~chi_1- nu_e) 0.000000e+00 2 -1000037 12 # br(~e_l -> ~chi_2- nu_e) DECAY 2000011 2.161216e-01 # selectron_r decays 1.000000e+00 2 11 1000022 # br(~e_r -> ~chi_10 e-) 0.000000e+00 2 11 1000023 # br(~e_r -> ~chi_20 e-) 0.000000e+00 2 11 1000025 # br(~e_r -> ~chi_30 e-) 0.000000e+00 2 11 1000035 # br(~e_r -> ~chi_40 e-) 0.000000e+00 2 -1000024 12 # br(~e_r -> ~chi_1- nu_e) 0.000000e+00 2 -1000037 12 # br(~e_r -> ~chi_2- nu_e) DECAY 1000013 2.136822e-01 # smuon_l decays 5.731554e-01 2 13 1000022 # br(~mu_l -> ~chi_10 mu-) 1.645226e-01 2 13 1000023 # br(~mu_l -> ~chi_20 mu-) 0.000000e+00 2 13 1000025 # br(~mu_l -> ~chi_30 mu-) 0.000000e+00 2 13 1000035 # br(~mu_l -> ~chi_40 mu-) 2.623220e-01 2 -1000024 14 # br(~mu_l -> ~chi_1- nu_mu) 0.000000e+00 2 -1000037 14 # br(~mu_l -> ~chi_2- nu_mu) DECAY 2000013 2.161216e-01 # smuon_r decays 1.000000e+00 2 13 1000022 # br(~mu_r -> ~chi_10 mu-) 0.000000e+00 2 13 1000023 # br(~mu_r -> ~chi_20 mu-) 0.000000e+00 2 13 1000025 # br(~mu_r -> ~chi_30 mu-) 0.000000e+00 2 13 1000035 # br(~mu_r -> ~chi_40 mu-) 0.000000e+00 2 -1000024 14 # br(~mu_r -> ~chi_1- nu_mu) 0.000000e+00 2 -1000037 14 # br(~mu_r -> ~chi_2- nu_mu) DECAY 1000015 1.483273e-01 # stau_1 decays 1.000000e+00 2 15 1000022 # br(~tau_1 -> ~chi_10 tau-) 0.000000e+00 2 15 1000023 # br(~tau_1 -> ~chi_20 tau-) 0.000000e+00 2 15 1000025 # br(~tau_1 -> ~chi_30 tau-) 0.000000e+00 2 15 1000035 # br(~tau_1 -> ~chi_40 tau-) 0.000000e+00 2 -1000024 16 # br(~tau_1 -> ~chi_1- nu_tau) 0.000000e+00 2 -1000037 16 # br(~tau_1 -> ~chi_2- nu_tau) 0.000000e+00 2 -37 1000016 # br(~tau_1 -> ~nu_taul h-) 0.000000e+00 2 -24 1000016 # br(~tau_1 -> ~nu_taul w-) DECAY 2000015 2.699061e-01 # stau_2 decays 5.966530e-01 2 15 1000022 # br(~tau_2 -> ~chi_10 tau-) 1.545368e-01 2 15 1000023 # br(~tau_2 -> ~chi_20 tau-) 0.000000e+00 2 15 1000025 # br(~tau_2 -> ~chi_30 tau-) 0.000000e+00 2 15 1000035 # br(~tau_2 -> ~chi_40 tau-) 2.488102e-01 2 -1000024 16 # br(~tau_2 -> ~chi_1- nu_tau) 0.000000e+00 2 -1000037 16 # br(~tau_2 -> ~chi_2- nu_tau) 0.000000e+00 2 -37 1000016 # br(~tau_2 -> ~nu_taul h-) 0.000000e+00 2 -24 1000016 # br(~tau_2 -> ~nu_taul w-) 0.000000e+00 2 25 1000015 # br(~tau_2 -> ~tau_1 h) 0.000000e+00 2 35 1000015 # br(~tau_2 -> ~tau_1 h) 0.000000e+00 2 36 1000015 # br(~tau_2 -> ~tau_1 a) 0.000000e+00 2 23 1000015 # br(~tau_2 -> ~tau_1 z) DECAY 1000012 1.498816e-01 # snu_el decays 9.777008e-01 2 12 1000022 # br(~nu_el -> ~chi_10 nu_e) 8.115549e-03 2 12 1000023 # br(~nu_el -> ~chi_20 nu_e) 0.000000e+00 2 12 1000025 # br(~nu_el -> ~chi_30 nu_e) 0.000000e+00 2 12 1000035 # br(~nu_el -> ~chi_40 nu_e) 1.418369e-02 2 11 1000024 # br(~nu_el -> ~chi_1+ e-) 0.000000e+00 2 11 1000037 # br(~nu_el -> ~chi_2+ e-) DECAY 1000014 1.498816e-01 # snu_mul decays 9.777008e-01 2 14 1000022 # br(~nu_mul -> ~chi_10 nu_mu) 8.115549e-03 2 14 1000023 # br(~nu_mul -> ~chi_20 nu_mu) 0.000000e+00 2 14 1000025 # br(~nu_mul -> ~chi_30 nu_mu) 0.000000e+00 2 14 1000035 # br(~nu_mul -> ~chi_40 nu_mu) 1.418369e-02 2 13 1000024 # br(~nu_mul -> ~chi_1+ mu-) 0.000000e+00 2 13 1000037 # br(~nu_mul -> ~chi_2+ mu-) DECAY 1000016 1.475190e-01 # snu_taul decays 9.859945e-01 2 16 1000022 # br(~nu_taul -> ~chi_10 nu_tau) 6.251296e-03 2 16 1000023 # br(~nu_taul -> ~chi_20 nu_tau) 0.000000e+00 2 16 1000025 # br(~nu_taul -> ~chi_30 nu_tau) 0.000000e+00 2 16 1000035 # br(~nu_taul -> ~chi_40 nu_tau) 7.754175e-03 2 15 1000024 # br(~nu_taul -> ~chi_1+ tau-) 0.000000e+00 2 15 1000037 # br(~nu_taul -> ~chi_2+ tau-) 0.000000e+00 2 -1000015 -37 # br(~nu_taul -> ~tau_1+ h-) 0.000000e+00 2 -2000015 -37 # br(~nu_taul -> ~tau_2+ h-) 0.000000e+00 2 -1000015 -24 # br(~nu_taul -> ~tau_1+ w-) 0.000000e+00 2 -2000015 -24 # br(~nu_taul -> ~tau_2+ w-) DECAY 1000024 1.704145e-02 # chargino1+ decays 0.000000e+00 2 -1 1000002 # br(~chi_1+ -> ~u_l db) 0.000000e+00 2 -1 2000002 # br(~chi_1+ -> ~u_r db) 0.000000e+00 2 -1000001 2 # br(~chi_1+ -> ~d_l* u ) 0.000000e+00 2 -2000001 2 # br(~chi_1+ -> ~d_r* u ) 0.000000e+00 2 -3 1000004 # br(~chi_1+ -> ~c_l sb) 0.000000e+00 2 -3 2000004 # br(~chi_1+ -> ~c_r sb) 0.000000e+00 2 -1000003 4 # br(~chi_1+ -> ~s_l* c ) 0.000000e+00 2 -2000003 4 # br(~chi_1+ -> ~s_r* c ) 0.000000e+00 2 -5 1000006 # br(~chi_1+ -> ~t_1 bb) 0.000000e+00 2 -5 2000006 # br(~chi_1+ -> ~t_2 bb) 0.000000e+00 2 -1000005 6 # br(~chi_1+ -> ~b_1* t ) 0.000000e+00 2 -2000005 6 # br(~chi_1+ -> ~b_2* t ) 0.000000e+00 2 -11 1000012 # br(~chi_1+ -> ~nu_el e+ ) 0.000000e+00 2 -13 1000014 # br(~chi_1+ -> ~nu_mul mu+ ) 0.000000e+00 2 -15 1000016 # br(~chi_1+ -> ~nu_tau1 tau+) 0.000000e+00 2 -1000011 12 # br(~chi_1+ -> ~e_l+ nu_e) 0.000000e+00 2 -2000011 12 # br(~chi_1+ -> ~e_r+ nu_e) 0.000000e+00 2 -1000013 14 # br(~chi_1+ -> ~mu_l+ nu_mu) 0.000000e+00 2 -2000013 14 # br(~chi_1+ -> ~mu_r+ nu_mu) 9.251611e-01 2 -1000015 16 # br(~chi_1+ -> ~tau_1+ nu_tau) 0.000000e+00 2 -2000015 16 # br(~chi_1+ -> ~tau_2+ nu_tau) 7.483888e-02 2 24 1000022 # br(~chi_1+ -> ~chi_10 w+) 0.000000e+00 2 24 1000023 # br(~chi_1+ -> ~chi_20 w+) 0.000000e+00 2 24 1000025 # br(~chi_1+ -> ~chi_30 w+) 0.000000e+00 2 24 1000035 # br(~chi_1+ -> ~chi_40 w+) 0.000000e+00 2 37 1000022 # br(~chi_1+ -> ~chi_10 h+) 0.000000e+00 2 37 1000023 # br(~chi_1+ -> ~chi_20 h+) 0.000000e+00 2 37 1000025 # br(~chi_1+ -> ~chi_30 h+) 0.000000e+00 2 37 1000035 # br(~chi_1+ -> ~chi_40 h+) DECAY 1000037 2.486895e+00 # chargino2+ decays 0.000000e+00 2 -1 1000002 # br(~chi_2+ -> ~u_l db) 0.000000e+00 2 -1 2000002 # br(~chi_2+ -> ~u_r db) 0.000000e+00 2 -1000001 2 # br(~chi_2+ -> ~d_l* u ) 0.000000e+00 2 -2000001 2 # br(~chi_2+ -> ~d_r* u ) 0.000000e+00 2 -3 1000004 # br(~chi_2+ -> ~c_l sb) 0.000000e+00 2 -3 2000004 # br(~chi_2+ -> ~c_r sb) 0.000000e+00 2 -1000003 4 # br(~chi_2+ -> ~s_l* c ) 0.000000e+00 2 -2000003 4 # br(~chi_2+ -> ~s_r* c ) 0.000000e+00 2 -5 1000006 # br(~chi_2+ -> ~t_1 bb) 0.000000e+00 2 -5 2000006 # br(~chi_2+ -> ~t_2 bb) 0.000000e+00 2 -1000005 6 # br(~chi_2+ -> ~b_1* t ) 0.000000e+00 2 -2000005 6 # br(~chi_2+ -> ~b_2* t ) 2.009688e-02 2 -11 1000012 # br(~chi_2+ -> ~nu_el e+ ) 2.009688e-02 2 -13 1000014 # br(~chi_2+ -> ~nu_mul mu+ ) 2.745074e-02 2 -15 1000016 # br(~chi_2+ -> ~nu_tau1 tau+) 5.204061e-02 2 -1000011 12 # br(~chi_2+ -> ~e_l+ nu_e) 0.000000e+00 2 -2000011 12 # br(~chi_2+ -> ~e_r+ nu_e) 5.204061e-02 2 -1000013 14 # br(~chi_2+ -> ~mu_l+ nu_mu) 0.000000e+00 2 -2000013 14 # br(~chi_2+ -> ~mu_r+ nu_mu) 2.828599e-04 2 -1000015 16 # br(~chi_2+ -> ~tau_1+ nu_tau) 5.667293e-02 2 -2000015 16 # br(~chi_2+ -> ~tau_2+ nu_tau) 2.315133e-01 2 23 1000024 # br(~chi_2+ -> ~chi_1+ z ) 6.767151e-02 2 24 1000022 # br(~chi_2+ -> ~chi_10 w+) 2.936548e-01 2 24 1000023 # br(~chi_2+ -> ~chi_20 w+) 0.000000e+00 2 24 1000025 # br(~chi_2+ -> ~chi_30 w+) 0.000000e+00 2 24 1000035 # br(~chi_2+ -> ~chi_40 w+) 1.784788e-01 2 25 1000024 # br(~chi_2+ -> ~chi_1+ h ) 0.000000e+00 2 35 1000024 # br(~chi_2+ -> ~chi_1+ h ) 0.000000e+00 2 36 1000024 # br(~chi_2+ -> ~chi_1+ a ) 0.000000e+00 2 37 1000022 # br(~chi_2+ -> ~chi_10 h+) 0.000000e+00 2 37 1000023 # br(~chi_2+ -> ~chi_20 h+) 0.000000e+00 2 37 1000025 # br(~chi_2+ -> ~chi_30 h+) 0.000000e+00 2 37 1000035 # br(~chi_2+ -> ~chi_40 h+) DECAY 1000022 0.000000e+00 # neutralino1 decays DECAY 1000023 2.077700e-02 # neutralino2 decays 0.000000e+00 2 23 1000022 # br(~chi_20 -> ~chi_10 z ) 0.000000e+00 2 -24 1000024 # br(~chi_20 -> ~chi_1+ w-) 0.000000e+00 2 -1000024 24 # br(~chi_20 -> ~chi_1- w+) 0.000000e+00 2 -24 1000037 # br(~chi_20 -> ~chi_2+ w-) 0.000000e+00 2 -1000037 24 # br(~chi_20 -> ~chi_2- w+) 0.000000e+00 2 25 1000022 # br(~chi_20 -> ~chi_10 h ) 0.000000e+00 2 35 1000022 # br(~chi_20 -> ~chi_10 h ) 0.000000e+00 2 36 1000022 # br(~chi_20 -> ~chi_10 a ) 0.000000e+00 2 -37 1000024 # br(~chi_20 -> ~chi_1+ h-) 0.000000e+00 2 -1000024 37 # br(~chi_20 -> ~chi_1- h+) 0.000000e+00 2 -37 1000037 # br(~chi_20 -> ~chi_2+ h-) 0.000000e+00 2 -1000037 37 # br(~chi_20 -> ~chi_2- h+) 0.000000e+00 2 -2 1000002 # br(~chi_20 -> ~u_l ub) 0.000000e+00 2 -1000002 2 # br(~chi_20 -> ~u_l* u ) 0.000000e+00 2 -2 2000002 # br(~chi_20 -> ~u_r ub) 0.000000e+00 2 -2000002 2 # br(~chi_20 -> ~u_r* u ) 0.000000e+00 2 -1 1000001 # br(~chi_20 -> ~d_l db) 0.000000e+00 2 -1000001 1 # br(~chi_20 -> ~d_l* d ) 0.000000e+00 2 -1 2000001 # br(~chi_20 -> ~d_r db) 0.000000e+00 2 -2000001 1 # br(~chi_20 -> ~d_r* d ) 0.000000e+00 2 -4 1000004 # br(~chi_20 -> ~c_l cb) 0.000000e+00 2 -1000004 4 # br(~chi_20 -> ~c_l* c ) 0.000000e+00 2 -4 2000004 # br(~chi_20 -> ~c_r cb) 0.000000e+00 2 -2000004 4 # br(~chi_20 -> ~c_r* c ) 0.000000e+00 2 -3 1000003 # br(~chi_20 -> ~s_l sb) 0.000000e+00 2 -1000003 3 # br(~chi_20 -> ~s_l* s ) 0.000000e+00 2 -3 2000003 # br(~chi_20 -> ~s_r sb) 0.000000e+00 2 -2000003 3 # br(~chi_20 -> ~s_r* s ) 0.000000e+00 2 -6 1000006 # br(~chi_20 -> ~t_1 tb) 0.000000e+00 2 -1000006 6 # br(~chi_20 -> ~t_1* t ) 0.000000e+00 2 -6 2000006 # br(~chi_20 -> ~t_2 tb) 0.000000e+00 2 -2000006 6 # br(~chi_20 -> ~t_2* t ) 0.000000e+00 2 -5 1000005 # br(~chi_20 -> ~b_1 bb) 0.000000e+00 2 -1000005 5 # br(~chi_20 -> ~b_1* b ) 0.000000e+00 2 -5 2000005 # br(~chi_20 -> ~b_2 bb) 0.000000e+00 2 -2000005 5 # br(~chi_20 -> ~b_2* b ) 0.000000e+00 2 -11 1000011 # br(~chi_20 -> ~e_l- e+) 0.000000e+00 2 -1000011 11 # br(~chi_20 -> ~e_l+ e-) 2.950720e-02 2 -11 2000011 # br(~chi_20 -> ~e_r- e+) 2.950720e-02 2 -2000011 11 # br(~chi_20 -> ~e_r+ e-) 0.000000e+00 2 -13 1000013 # br(~chi_20 -> ~mu_l- mu+) 0.000000e+00 2 -1000013 13 # br(~chi_20 -> ~mu_l+ mu-) 2.950720e-02 2 -13 2000013 # br(~chi_20 -> ~mu_r- mu+) 2.950720e-02 2 -2000013 13 # br(~chi_20 -> ~mu_r+ mu-) 4.409856e-01 2 -15 1000015 # br(~chi_20 -> ~tau_1- tau+) 4.409856e-01 2 -1000015 15 # br(~chi_20 -> ~tau_1+ tau-) 0.000000e+00 2 -15 2000015 # br(~chi_20 -> ~tau_2- tau+) 0.000000e+00 2 -2000015 15 # br(~chi_20 -> ~tau_2+ tau-) 0.000000e+00 2 -12 1000012 # br(~chi_20 -> ~nu_el nu_eb) 0.000000e+00 2 -1000012 12 # br(~chi_20 -> ~nu_el* nu_e ) 0.000000e+00 2 -14 1000014 # br(~chi_20 -> ~nu_mul nu_mub) 0.000000e+00 2 -1000014 14 # br(~chi_20 -> ~nu_mul* nu_mu ) 0.000000e+00 2 -16 1000016 # br(~chi_20 -> ~nu_tau1 nu_taub) 0.000000e+00 2 -1000016 16 # br(~chi_20 -> ~nu_tau1* nu_tau ) DECAY 1000025 1.915985e+00 # neutralino3 decays 1.132266e-01 2 23 1000022 # br(~chi_30 -> ~chi_10 z ) 2.119692e-01 2 23 1000023 # br(~chi_30 -> ~chi_20 z ) 2.953298e-01 2 -24 1000024 # br(~chi_30 -> ~chi_1+ w-) 2.953298e-01 2 -1000024 24 # br(~chi_30 -> ~chi_1- w+) 0.000000e+00 2 -24 1000037 # br(~chi_30 -> ~chi_2+ w-) 0.000000e+00 2 -1000037 24 # br(~chi_30 -> ~chi_2- w+) 2.130765e-02 2 25 1000022 # br(~chi_30 -> ~chi_10 h ) 0.000000e+00 2 35 1000022 # br(~chi_30 -> ~chi_10 h ) 0.000000e+00 2 36 1000022 # br(~chi_30 -> ~chi_10 a ) 1.245383e-02 2 25 1000023 # br(~chi_30 -> ~chi_20 h ) 0.000000e+00 2 35 1000023 # br(~chi_30 -> ~chi_20 h ) 0.000000e+00 2 36 1000023 # br(~chi_30 -> ~chi_20 a ) 0.000000e+00 2 -37 1000024 # br(~chi_30 -> ~chi_1+ h-) 0.000000e+00 2 -1000024 37 # br(~chi_30 -> ~chi_1- h+) 0.000000e+00 2 -37 1000037 # br(~chi_30 -> ~chi_2+ h-) 0.000000e+00 2 -1000037 37 # br(~chi_30 -> ~chi_2- h+) 0.000000e+00 2 -2 1000002 # br(~chi_30 -> ~u_l ub) 0.000000e+00 2 -1000002 2 # br(~chi_30 -> ~u_l* u ) 0.000000e+00 2 -2 2000002 # br(~chi_30 -> ~u_r ub) 0.000000e+00 2 -2000002 2 # br(~chi_30 -> ~u_r* u ) 0.000000e+00 2 -1 1000001 # br(~chi_30 -> ~d_l db) 0.000000e+00 2 -1000001 1 # br(~chi_30 -> ~d_l* d ) 0.000000e+00 2 -1 2000001 # br(~chi_30 -> ~d_r db) 0.000000e+00 2 -2000001 1 # br(~chi_30 -> ~d_r* d ) 0.000000e+00 2 -4 1000004 # br(~chi_30 -> ~c_l cb) 0.000000e+00 2 -1000004 4 # br(~chi_30 -> ~c_l* c ) 0.000000e+00 2 -4 2000004 # br(~chi_30 -> ~c_r cb) 0.000000e+00 2 -2000004 4 # br(~chi_30 -> ~c_r* c ) 0.000000e+00 2 -3 1000003 # br(~chi_30 -> ~s_l sb) 0.000000e+00 2 -1000003 3 # br(~chi_30 -> ~s_l* s ) 0.000000e+00 2 -3 2000003 # br(~chi_30 -> ~s_r sb) 0.000000e+00 2 -2000003 3 # br(~chi_30 -> ~s_r* s ) 0.000000e+00 2 -6 1000006 # br(~chi_30 -> ~t_1 tb) 0.000000e+00 2 -1000006 6 # br(~chi_30 -> ~t_1* t ) 0.000000e+00 2 -6 2000006 # br(~chi_30 -> ~t_2 tb) 0.000000e+00 2 -2000006 6 # br(~chi_30 -> ~t_2* t ) 0.000000e+00 2 -5 1000005 # br(~chi_30 -> ~b_1 bb) 0.000000e+00 2 -1000005 5 # br(~chi_30 -> ~b_1* b ) 0.000000e+00 2 -5 2000005 # br(~chi_30 -> ~b_2 bb) 0.000000e+00 2 -2000005 5 # br(~chi_30 -> ~b_2* b ) 5.572205e-04 2 -11 1000011 # br(~chi_30 -> ~e_l- e+) 5.572205e-04 2 -1000011 11 # br(~chi_30 -> ~e_l+ e-) 1.252668e-03 2 -11 2000011 # br(~chi_30 -> ~e_r- e+) 1.252668e-03 2 -2000011 11 # br(~chi_30 -> ~e_r+ e-) 5.572205e-04 2 -13 1000013 # br(~chi_30 -> ~mu_l- mu+) 5.572205e-04 2 -1000013 13 # br(~chi_30 -> ~mu_l+ mu-) 1.252668e-03 2 -13 2000013 # br(~chi_30 -> ~mu_r- mu+) 1.252668e-03 2 -2000013 13 # br(~chi_30 -> ~mu_r+ mu-) 5.262792e-03 2 -15 1000015 # br(~chi_30 -> ~tau_1- tau+) 5.262792e-03 2 -1000015 15 # br(~chi_30 -> ~tau_1+ tau-) 6.728146e-03 2 -15 2000015 # br(~chi_30 -> ~tau_2- tau+) 6.728146e-03 2 -2000015 15 # br(~chi_30 -> ~tau_2+ tau-) 3.189205e-03 2 -12 1000012 # br(~chi_30 -> ~nu_el nu_eb) 3.189205e-03 2 -1000012 12 # br(~chi_30 -> ~nu_el* nu_e ) 3.189205e-03 2 -14 1000014 # br(~chi_30 -> ~nu_mul nu_mub) 3.189205e-03 2 -1000014 14 # br(~chi_30 -> ~nu_mul* nu_mu ) 3.202459e-03 2 -16 1000016 # br(~chi_30 -> ~nu_tau1 nu_taub) 3.202459e-03 2 -1000016 16 # br(~chi_30 -> ~nu_tau1* nu_tau ) DECAY 1000035 2.585851e+00 # neutralino4 decays 2.153693e-02 2 23 1000022 # br(~chi_40 -> ~chi_10 z ) 1.855000e-02 2 23 1000023 # br(~chi_40 -> ~chi_20 z ) 0.000000e+00 2 23 1000025 # br(~chi_40 -> ~chi_30 z ) 2.495414e-01 2 -24 1000024 # br(~chi_40 -> ~chi_1+ w-) 2.495414e-01 2 -1000024 24 # br(~chi_40 -> ~chi_1- w+) 0.000000e+00 2 -24 1000037 # br(~chi_40 -> ~chi_2+ w-) 0.000000e+00 2 -1000037 24 # br(~chi_40 -> ~chi_2- w+) 6.932133e-02 2 25 1000022 # br(~chi_40 -> ~chi_10 h ) 0.000000e+00 2 35 1000022 # br(~chi_40 -> ~chi_10 h ) 0.000000e+00 2 36 1000022 # br(~chi_40 -> ~chi_10 a ) 1.476023e-01 2 25 1000023 # br(~chi_40 -> ~chi_20 h ) 0.000000e+00 2 35 1000023 # br(~chi_40 -> ~chi_20 h ) 0.000000e+00 2 36 1000023 # br(~chi_40 -> ~chi_20 a ) 0.000000e+00 2 25 1000025 # br(~chi_40 -> ~chi_30 h ) 0.000000e+00 2 35 1000025 # br(~chi_40 -> ~chi_30 h ) 0.000000e+00 2 36 1000025 # br(~chi_40 -> ~chi_30 a ) 0.000000e+00 2 -37 1000024 # br(~chi_40 -> ~chi_1+ h-) 0.000000e+00 2 -1000024 37 # br(~chi_40 -> ~chi_1- h+) 0.000000e+00 2 -37 1000037 # br(~chi_40 -> ~chi_2+ h-) 0.000000e+00 2 -1000037 37 # br(~chi_40 -> ~chi_2- h+) 0.000000e+00 2 -2 1000002 # br(~chi_40 -> ~u_l ub) 0.000000e+00 2 -1000002 2 # br(~chi_40 -> ~u_l* u ) 0.000000e+00 2 -2 2000002 # br(~chi_40 -> ~u_r ub) 0.000000e+00 2 -2000002 2 # br(~chi_40 -> ~u_r* u ) 0.000000e+00 2 -1 1000001 # br(~chi_40 -> ~d_l db) 0.000000e+00 2 -1000001 1 # br(~chi_40 -> ~d_l* d ) 0.000000e+00 2 -1 2000001 # br(~chi_40 -> ~d_r db) 0.000000e+00 2 -2000001 1 # br(~chi_40 -> ~d_r* d ) 0.000000e+00 2 -4 1000004 # br(~chi_40 -> ~c_l cb) 0.000000e+00 2 -1000004 4 # br(~chi_40 -> ~c_l* c ) 0.000000e+00 2 -4 2000004 # br(~chi_40 -> ~c_r cb) 0.000000e+00 2 -2000004 4 # br(~chi_40 -> ~c_r* c ) 0.000000e+00 2 -3 1000003 # br(~chi_40 -> ~s_l sb) 0.000000e+00 2 -1000003 3 # br(~chi_40 -> ~s_l* s ) 0.000000e+00 2 -3 2000003 # br(~chi_40 -> ~s_r sb) 0.000000e+00 2 -2000003 3 # br(~chi_40 -> ~s_r* s ) 0.000000e+00 2 -6 1000006 # br(~chi_40 -> ~t_1 tb) 0.000000e+00 2 -1000006 6 # br(~chi_40 -> ~t_1* t ) 0.000000e+00 2 -6 2000006 # br(~chi_40 -> ~t_2 tb) 0.000000e+00 2 -2000006 6 # br(~chi_40 -> ~t_2* t ) 0.000000e+00 2 -5 1000005 # br(~chi_40 -> ~b_1 bb) 0.000000e+00 2 -1000005 5 # br(~chi_40 -> ~b_1* b ) 0.000000e+00 2 -5 2000005 # br(~chi_40 -> ~b_2 bb) 0.000000e+00 2 -2000005 5 # br(~chi_40 -> ~b_2* b ) 9.648354e-03 2 -11 1000011 # br(~chi_40 -> ~e_l- e+) 9.648354e-03 2 -1000011 11 # br(~chi_40 -> ~e_l+ e-) 3.756845e-03 2 -11 2000011 # br(~chi_40 -> ~e_r- e+) 3.756845e-03 2 -2000011 11 # br(~chi_40 -> ~e_r+ e-) 9.648354e-03 2 -13 1000013 # br(~chi_40 -> ~mu_l- mu+) 9.648354e-03 2 -1000013 13 # br(~chi_40 -> ~mu_l+ mu-) 3.756845e-03 2 -13 2000013 # br(~chi_40 -> ~mu_r- mu+) 3.756845e-03 2 -2000013 13 # br(~chi_40 -> ~mu_r+ mu-) 2.682152e-03 2 -15 1000015 # br(~chi_40 -> ~tau_1- tau+) 2.682152e-03 2 -1000015 15 # br(~chi_40 -> ~tau_1+ tau-) 1.622898e-02 2 -15 2000015 # br(~chi_40 -> ~tau_2- tau+) 1.622898e-02 2 -2000015 15 # br(~chi_40 -> ~tau_2+ tau-) 2.537965e-02 2 -12 1000012 # br(~chi_40 -> ~nu_el nu_eb) 2.537965e-02 2 -1000012 12 # br(~chi_40 -> ~nu_el* nu_e ) 2.537965e-02 2 -14 1000014 # br(~chi_40 -> ~nu_mul nu_mub) 2.537965e-02 2 -1000014 14 # br(~chi_40 -> ~nu_mul* nu_mu ) 2.547244e-02 2 -16 1000016 # br(~chi_40 -> ~nu_tau1 nu_taub) 2.547244e-02 2 -1000016 16 # br(~chi_40 -> ~nu_tau1* nu_tau ) ################################### ## INFORMATION FOR USQMIX ################################### BLOCK USQMIX # 1 1 1.000000e+00 # 2 2 1.000000e+00 # 4 4 1.000000e+00 # 5 5 1.000000e+00 # 3 3 5.536450e-01 # o_{11} 3 6 8.327528e-01 # o_{12} 6 3 8.327528e-01 # o_{21} 6 6 -5.536450e-01 # o_{22} ################################### ## INFORMATION FOR DSQMIX ################################### BLOCK DSQMIX # 1 1 1.000000e+00 # 2 2 1.000000e+00 # 4 4 1.000000e+00 # 5 5 1.000000e+00 # 3 3 9.387379e-01 # o_{11} 3 6 3.446319e-01 # o_{12} 6 3 -3.446319e-01 # o_{21} 6 6 9.387379e-01 # o_{22} ################################### ## INFORMATION FOR SELMIX ################################### BLOCK SELMIX # 1 1 1.000000e+00 # 2 2 1.000000e+00 # 4 4 1.000000e+00 # 5 5 1.000000e+00 # 3 3 2.824872e-01 # o_{11} 3 6 9.592711e-01 # o_{12} 6 3 9.592711e-01 # o_{21} 6 6 -2.824872e-01 # o_{22} ################################### ## INFORMATION FOR FRALPHA ################################### BLOCK FRALPHA # 1 -1.138252e-01 # mixing angle in the neutral higgs boson sector ################################### ## INFORMATION FOR VCKM ################################### BLOCK VCKM # 1 1 1.000000e+00 # 2 2 1.000000e+00 # 3 3 1.000000e+00 # ################################### ## INFORMATION FOR SNUMIX ################################### BLOCK SNUMIX # 1 1 1.000000e+00 # 2 2 1.000000e+00 # 3 3 1.000000e+00 # ################################### ## INFORMATION FOR UPMNS ################################### BLOCK UPMNS # 1 1 1.000000e+00 # 2 2 1.000000e+00 # 3 3 1.000000e+00 # ################################### ## INFORMATION FOR TE ################################### BLOCK TE # 1 1 0.000000e+00 # T_e(Q) DRbar 2 2 0.000000e+00 # T_mu(Q) DRbar 3 3 -2.540197e+01 # T_tau(Q) DRbar ################################### ## INFORMATION FOR TU ################################### BLOCK TU # 1 1 0.000000e+00 # T_u(Q) DRbar 2 2 0.000000e+00 # T_c(Q) DRbar 3 3 -4.447525e+02 # T_t(Q) DRbar ################################### ## INFORMATION FOR TD ################################### BLOCK TD # 1 1 0.000000e+00 # T_d(Q) DRbar 2 2 0.000000e+00 # T_s(Q) DRbar 3 3 -1.106937e+02 # T_b(Q) DRbar ################################### ## INFORMATION FOR MSL2 ################################### BLOCK MSL2 # 1 1 3.815567e+04 # mel(q) 2 2 3.815567e+04 # mmul(q) 3 3 3.782868e+04 # mtaul(q) ################################### ## INFORMATION FOR MSE2 ################################### BLOCK MSE2 # 1 1 1.863063e+04 # mer(q) 2 2 1.863063e+04 # mmur(q) 3 3 1.796764e+04 # mtaur(q) ################################### ## INFORMATION FOR MSQ2 ################################### BLOCK MSQ2 # 1 1 2.998367e+05 # mql1(q) 2 2 2.998367e+05 # mql2(q) 3 3 2.487654e+05 # mql3(q) ################################### ## INFORMATION FOR MSU2 ################################### BLOCK MSU2 # 1 1 2.803821e+05 # mur(q) 2 2 2.803821e+05 # mcr(q) 3 3 1.791371e+05 # mtr(q) ################################### ## INFORMATION FOR MSD2 ################################### BLOCK MSD2 # 1 1 2.736847e+05 # mdr(q) 2 2 2.736847e+05 # msr(q) 3 3 2.702620e+05 # mbr(q) """ fsock = StringIO.StringIO() writter.convert_to_mg5card(self.sps1a, fsock) output = fsock.getvalue() self.assertEqual(output.split('\n'), target.split('\n'))