forked from hepcpt/qgraf-xml-drawer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdrawer.py
executable file
·59 lines (46 loc) · 1.72 KB
/
drawer.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import sys
from qgraf_interpreter import *
#Particle dictionnary. Adapt this to your model
pt = {"H": "scalar",
"eCARETMINUS": "fermion",
"eCARETPLUS": "anti fermion",
"BACKSLASHmuCARETMINUS": "fermion",
"BACKSLASHmuCARETPLUS": "anti fermion",
"BACKSLASHtauCARETMINUS": "fermion",
"BACKSLASHtauCARETPLUS": "anti fermion",
"BACKSLASHnu_e": "fermion",
"BACKSLASHoverlineCURLYLBACKSLASHnu_eCURLYR": "anti fermion",
"BACKSLASHnu_BACKSLASHmu": "fermion",
"BACKSLASHoverlineCURLYLBACKSLASHnu_BACKSLASHmuCURLYR": "anti fermion",
"BACKSLASHnu_BACKSLASHtau": "fermion",
"BACKSLASHoverlineCURLYLBACKSLASHnu_BACKSLASHtauCURLYR": "anti fermion",
"u": "fermion",
"BACKSLASHoverlineCURLYLuCURLYR": "anti fermion",
"c": "fermion",
"BACKSLASHoverlineCURLYLcCURLYR": "anti fermion",
"t": "fermion",
"BACKSLASHoverlineCURLYLtCURLYR": "anti fermion",
"d": "fermion",
"BACKSLASHoverlineCURLYLdCURLYR": "anti fermion",
"s": "fermion",
"BACKSLASHoverlineCURLYLsCURLYR": "anti fermion",
"b": "fermion",
"BACKSLASHoverlineCURLYLbCURLYR": "anti fermion",
"BACKSLASHgamma": "photon",
"WCARETMINUS": "charged boson",
"WCARETPLUS": "anti charged boson",
"Z": "photon",
"g": "gluon"}
input_file = "out" #QGRAF output file
if len(sys.argv) > 1:
input_file = sys.argv[1]
output_file = "diagrams.tex"
if len(sys.argv) > 2:
output_file = sys.argv[2]
graphs=XML(default_loader(input_file,parse))
diagrams=graphs.find("diagrams")
file = open(output_file,"w+")
for diagram in list(diagrams):
diag_info = qgraf_info(diagram)
print("Drawing diagram " + str(diag_info.id))
diag_info.draw(file, pt)