| | 24 | {{{ |
| | 25 | import matrix2py |
| | 26 | |
| | 27 | def invert_momenta(p): |
| | 28 | """ fortran/C-python do not order table in the same order""" |
| | 29 | new_p = [] |
| | 30 | for i in range(len(p[0])): new_p.append([0]*len(p)) |
| | 31 | for i, onep in enumerate(p): |
| | 32 | for j, x in enumerate(onep): |
| | 33 | new_p[j][i] = x |
| | 34 | return new_p |
| | 35 | |
| | 36 | matrix2py.initialisemodel('../../Cards/param_card.dat') |
| | 37 | p = [[ 0.5000000E+03, 0.0000000E+00, 0.0000000E+00, 0.5000000E+03], |
| | 38 | [ 0.5000000E+03, 0.0000000E+00, 0.0000000E+00, -0.5000000E+03], |
| | 39 | [ 0.5000000E+03, 0.1109243E+03, 0.4448308E+03, -0.1995529E+03], |
| | 40 | [ 0.5000000E+03, -0.1109243E+03, -0.4448308E+03, 0.1995529E+03]] |
| | 41 | |
| | 42 | P =invert_momenta(p) |
| | 43 | alphas = 0.13 |
| | 44 | nhel = -1 # means sum over all helicity |
| | 45 | me2 = matrix2py.get_value(P, alphas, nhel) |
| | 46 | print me2 |
| | 47 | }}} |
| | 48 | |
| | 49 | === Full library of process in python |
| | 50 | |
| | 51 | If you are interested to have a single python library for a set of matrix-element. |
| | 52 | This is also possible in fortran/python. |
| | 53 | This is possible both for loop output ([sqr=virt]) and for tree level. |
| | 54 | {{{ |
| | 55 | generate p p > t t~ |
| | 56 | output standalone PATH --prefix=int |
| | 57 | }}} |
| | 58 | |
| | 59 | then you can compile the library by going to the SubProcesses directory and |
| | 60 | {{{ |
| | 61 | make allmatrix2py.so |
| | 62 | }}} |
| | 63 | |
| | 64 | Here is one example in that case |
| | 65 | {{{ |
| | 66 | import allmatrix2py |
| | 67 | allmatrix2py.initialise('../Cards/param_card.dat') |
| | 68 | |
| | 69 | def invert_momenta(p): |
| | 70 | """ fortran/C-python do not order table in the same order""" |
| | 71 | new_p = [] |
| | 72 | for i in range(len(p[0])): new_p.append([0]*len(p)) |
| | 73 | for i, onep in enumerate(p): |
| | 74 | for j, x in enumerate(onep): |
| | 75 | new_p[j][i] = x |
| | 76 | return new_p |
| | 77 | p =[[ 0.5000000E+03, 0.0000000E+00, 0.0000000E+00, 0.5000000E+03], |
| | 78 | [0.5000000E+03, 0.0000000E+00, 0.0000000E+00, -0.5000000E+03], |
| | 79 | [ 0.5000000E+03, 0.1040730E+03, 0.4173556E+03, -0.1872274E+03], |
| | 80 | [ 0.5000000E+03, -0.1040730E+03, -0.4173556E+03, 0.1872274E+03] |
| | 81 | ] |
| | 82 | |
| | 83 | p =invert_momenta(p) |
| | 84 | nhel = -1 # means sum over all helicity |
| | 85 | pdgs = [21,21,6,-6] #which pdg is requested |
| | 86 | scale2 = 0. #only used for loop matrix element. should be set to 0 for tree-level |
| | 87 | alphas=0.13 |
| | 88 | |
| | 89 | ans = allmatrix2py.smatrixhel(pdgs,p,alphas,scale2,nhel) |
| | 90 | print ans |
| | 91 | }}} |
| | 92 | |
| | 93 | === Python for version MG5_aMC version 2.5.x |
| | 94 | |
| | 95 | For version of the code older than 2.6.0, the syntax was: |
| | 96 | |