Package pyfeyn :: Module hepnames
[hide private]
[frames] | no frames]

Source Code for Module pyfeyn.hepnames

  1  """Convenience interfaces between the hepnames LaTeX package and pyfeyn.""" 
  2   
  3  pions_dict = { 
  4  "gp" : "\Pgp", # pion 
  5  "gppm" : "\Pgppm", "gpmp" : "\Pgpmp", # charged pion 
  6  "gpm" : "\Pgpm", # negative pion 
  7  "gpp" : "\Pgpp", # positive pion 
  8  "gpz" : "\Pgpz", # neutral pion 
  9  "gpa" : "\Pgpa", 
 10  "gpii" : "\Pgpii", 
 11  ## nice names 
 12  "pi" : "\Pgp", "pion" : "\Pgp", 
 13  "pipm" : "\Pgppm", "pimp" : "\Pgpmp", 
 14  "piplus" : "\Pgpp", "pi+" : "\Pgpp", 
 15  "piminus" : "\Pgpm", "pi-" : "\Pgpm", 
 16  "pizero" : "\Pgpz", "pi0" : "\Pgpz" 
 17  } 
 18  hepnames_dict = pions_dict.copy() 
 19   
 20  etamesons_dict = { 
 21  "gh" : "\Pgh", 
 22  "ghpr" : "\Pghpr", 
 23  "cgh" : "\Pcgh", 
 24  "gha" : "\Pgha", 
 25  "ghb" : "\Pghb", 
 26  "ghpri" : "\Pghpri", 
 27  "cghi" : "\Pcghi", 
 28  ## nice names 
 29  "eta" : "\Pgh", 
 30  "etaprime" : "\Pghpr", 
 31  "etac" : "\Pcgh" 
 32  } 
 33  hepnames_dict.update(etamesons_dict) 
 34   
 35  omegamesons_dict = { 
 36  "go" : "\Pgo", 
 37  "goi" : "\Pgoi", 
 38  "goa" : "\Pgoa", 
 39  "gob" : "\Pgob", 
 40  "goiii" : "\Pgoiii", 
 41  ## nice names 
 42  "omega" : "\Pgo" 
 43  } 
 44  hepnames_dict.update(omegamesons_dict) 
 45   
 46  rhomesons_dict = { 
 47  "gr" : "\Pgr", # resonance removed 
 48  "grp" : "\Pgrp", 
 49  "grm" : "\Pgrm", 
 50  "grpm" : "\Pgrpm", "grmp" : "\Pgrmp", 
 51  "grz" : "\Pgrz", 
 52  "gri" : "\Pgri", # new 
 53  "gra" : "\Pgra", 
 54  "grb" : "\Pgrb", 
 55  "griii" : "\Pgriii", 
 56  ## nice names 
 57  "rho" : "\Pgr", 
 58  "rhoplus" : "\Pgrp", "rho+" : "\Pgrp", 
 59  "rhominus" : "\Pgrm", "rho-" : "\Pgrm", 
 60  "rhopm" : "\Pgrpm", "rhomp" : "\Pgrmp", 
 61  "rhozero" : "\Pgrz", "rho0" : "\Pgrz" 
 62  } 
 63  hepnames_dict.update(rhomesons_dict) 
 64   
 65  amesons_dict = { 
 66  "aii" : "\Paii", 
 67  "ai" : "\Pai", 
 68  "az" : "\Paz", 
 69  "bgcia" : "\Pbgcia", 
 70  "bgciia" : "\Pbgciia", 
 71  "bgcii" : "\Pbgcii", 
 72  "bgci" : "\Pbgci", 
 73  "bgcza" : "\Pbgcza", 
 74  "bgcz" : "\Pbgcz", 
 75  "bi" : "\Pbi", 
 76  "hia" : "\Phia" 
 77  } 
 78  hepnames_dict.update(amesons_dict) 
 79   
 80  fmesons_dict = { 
 81  "fia" : "\Pfia", 
 82  "fib" : "\Pfib", 
 83  "fiia" : "\Pfiia", 
 84  "fiib" : "\Pfiib", 
 85  "fiic" : "\Pfiic", 
 86  "fiid" : "\Pfiid", 
 87  "fiipr" : "\Pfiipr", 
 88  "fii" : "\Pfii", 
 89  "fiv" : "\Pfiv", 
 90  "fi" : "\Pfi", 
 91  "fza" : "\Pfza", 
 92  "fzb" : "\Pfzb", 
 93  "fz" : "\Pfz" 
 94  } 
 95  hepnames_dict.update(fmesons_dict) 
 96   
 97  phimesons_dict = { 
 98  "gf" : "\Pgf", 
 99  "gfi" : "\Pgfi", 
100  "gfa" : "\Pgfa", 
101  "gfiii" : "\Pgfiii", 
102  ## nice names 
103  "phi" : "\Pgf" 
104  } 
105  hepnames_dict.update(phimesons_dict) 
106   
107  psimesons_dict = { 
108  "Jgy" : "\PJgy", 
109  "Jgyi" : "\PJgyi", 
110  "gy" : "\Pgy", 
111  "gyii" : "\Pgyii", 
112  "gya" : "\Pgya", 
113  "gyb" : "\Pgyb", 
114  "gyc" : "\Pgyc", 
115  "gyd" : "\Pgyd", 
116  ## nice names 
117  "Jpsi" : "\PJgy", 
118  "JpsiOneS" : "\PJgyi", "Jpsi(1S)": "\PJgyi", 
119  "psi" : "\Pgy", 
120  "psiTwoS" : "\Pgyii", "psi(2S)" : "\Pgyii" 
121  } 
122  hepnames_dict.update(psimesons_dict) 
123   
124  Upsilonmesons_dict = { 
125  "gU" : "\PgU", 
126  "gUi" : "\PgUi", 
127  "gUa" : "\PgUa", 
128  "gUb" : "\PgUb", 
129  "gUc" : "\PgUc", 
130  "gUd" : "\PgUd", 
131  "gUe" : "\PgUe", 
132  ## nice names 
133  "Upsilon" : "\PgU", 
134  "UpsilonOneS" : "\PgUi", "Upsilon(1S)" : "\PgUi", 
135  "UpsilonTwoS" : "\PgUa", "Upsilon(2S)" : "\PgUa", 
136  "UpsilonThreeS" : "\PgUb", "Upsilon(3S)" : "\PgUb", 
137  "UpsilonFourS" : "\PgUc", "Upsilon(4S)" : "\PgUc" 
138  } 
139  hepnames_dict.update(Upsilonmesons_dict) 
140   
141  Kaons_dict = { 
142  "K" : "\PK", # kaon 
143  "Kpm" : "\PKpm", "Kmp" : "\PKmp", # charged kaon 
144  "Km" : "\PKm", # negative kaon 
145  "Kp" : "\PKp", # positive kaon 
146  "Kz" : "\PKz", # neutral kaon 
147  "KzL" : "\PKzL", # K-long 
148  "KzS" : "\PKzS", # K-short 
149  "Kst" : "\PKst", # K star 
150  "aK" : "\PaK", # anti-kaon 
151  "aKz" : "\PaKz", # neutral anti-kaon 
152  "Keiii" : "\PKeiii", 
153  "Kgmiii" : "\PKgmiii", 
154  "Kzeiii" : "\PKzeiii", 
155  "Kzgmiii" : "\PKzgmiii", 
156  "Kia" : "\PKia", 
157  "Kii" : "\PKii", 
158  "Ki" : "\PKi", 
159  "Ksti" : "\PKsti", 
160  "Ksta" : "\PKsta", 
161  "Kstb" : "\PKstb", 
162  "Kstiii" : "\PKstiii", 
163  "Kstii" : "\PKstii", 
164  "Kstiv" : "\PKstiv", 
165  "Kstz" : "\PKstz", 
166  ## nice names 
167  "Kplus" : "\PKp", "K+" : "\PKp", 
168  "Kminus" : "\PKm", "K-" : "\PKm", 
169  "Kzero" : "\PKz", "K0" : "\PKz", 
170  "Kshort" : "\PKzS", "Ks" : "\PKzS", "KS" : "\PKzS",  
171  "Klong" : "\PKzL", "Kl" : "\PKzL", "KL" : "\PKzL", 
172  "Kstar" : "\PKst", 
173  "APK" : "\PaKz", "antiK" : "\PaKz", 
174  "APKzero" : "\PaKz", "antiKzero" : "\PaKz", 
175  "APK0" : "\PaKz", "antiK0" : "\PaKz" 
176  } 
177  hepnames_dict.update(Kaons_dict) 
178   
179  Chi_cmesons_dict = { 
180  "cgc" : "\Pcgc", 
181  "cgcii" : "\Pcgcii", 
182  "cgci" : "\Pcgci", 
183  "cgcz" : "\Pcgcz" 
184  } 
185  hepnames_dict.update(Chi_cmesons_dict) 
186   
187  Dmesons_dict = { 
188  "D" : "\PD", 
189  "Dpm" : "\PDpm", "Dmp" : "\PDmp", 
190  "Dz" : "\PDz", 
191  "Dm" : "\PDm", 
192  "Dp" : "\PDp", 
193  "Dst" : "\PDst", 
194  "aD" : "\PaD", 
195  "aDz" : "\PaDz", 
196  "sD" : "\PsD", # new 2005-07-08 
197  "sDm" : "\PsDm", 
198  "sDp" : "\PsDp", 
199  "sDpm" : "\PsDpm", 
200  "sDmp" : "\PsDmp", 
201  "sDst" : "\PsDst", 
202  "sDipm" : "\PsDipm", 
203  "sDimp" : "\PsDimp", 
204  "Diz" : "\PDiz", 
205  "Dstiiz" : "\PDstiiz", 
206  "Dstpm" : "\PDstpm", 
207  "Dstmp" : "\PDstmp", 
208  "Dstz" : "\PDstz", 
209  ## nice names 
210  "Dzero" : "\PDz", "D0" : "\PDz", 
211  "Dminus" : "\PDm", "D-" : "\PDm", 
212  "Dplus" : "\PDp", "D+" : "\PDp", 
213  "Dstar" : "\PDst", 
214  "APD" : "\PaD", "antiD" : "\PaD", 
215  "APDzero" : "\PaDz", "antiDzero" : "\PaDz", 
216  "APD0" : "\PaDz", "antiD0" : "\PaDz", 
217  "Ds" : "\PsD", 
218  "Dsminus" : "\PsDm", "Ds-" : "\PsDm", 
219  "Dsplus" : "\PsDp", "Ds+" : "\PsDp", 
220  "Dspm" : "\PsDpm", 
221  "Dsmp" : "\PsDmp", 
222  "Dsstar" : "\PsDst" 
223  } 
224  hepnames_dict.update(Dmesons_dict) 
225   
226  Bmesons_dict = { 
227  "B" : "\PB", 
228  "Bpm" : "\PBpm", "Bmp" : "\PBmp", 
229  "Bp" : "\PBp", 
230  "Bm" : "\PBm", 
231  "Bz" : "\PBz", 
232  "dB" : "\PdB", 
233  "uB" : "\PuB", 
234  "cB" : "\PcB", 
235  "sB" : "\PsB", 
236  "aB" : "\PaB", 
237  "aBz" : "\PaBz", 
238  "adB" : "\PadB", 
239  "auB" : "\PauB", 
240  "acB" : "\PacB", 
241  "asB" : "\PasB", 
242  ## nice names 
243  "Bplus" : "\PBp", "B+" : "\PBp", 
244  "Bminus" : "\PBm","B-" : "\PBm", 
245  "Bzero" : "\PBz","B0" : "\PBz", 
246  "Bd" : "\PdB", 
247  "Bu" : "\PuB", 
248  "Bc" : "\PcB", 
249  "Bs" : "\PsB", 
250  "APB" : "\PaB", "antiB" : "\PaB", 
251  "APBzero" : "\PaBz", "antiBzero" : "\PaBz", 
252  "APB0" : "\PaBz", "antiB0" : "\PaBz", 
253  "APBd" : "\PadB", "antiBd" : "\PadB", 
254  "APBu" : "\PauB", "antiBu" : "\PauB", 
255  "APBc" : "\PacB", "antiBc" : "\PacB", 
256  "APBs" : "\PasB", "antiBs" : "\PasB" 
257  } 
258  hepnames_dict.update(Bmesons_dict) 
259   
260  mesons_dict = pions_dict.copy() 
261  mesons_dict.update(etamesons_dict) 
262  mesons_dict.update(omegamesons_dict) 
263  mesons_dict.update(rhomesons_dict) 
264  mesons_dict.update(phimesons_dict) 
265  mesons_dict.update(amesons_dict) 
266  mesons_dict.update(fmesons_dict) 
267  mesons_dict.update(psimesons_dict) 
268  mesons_dict.update(Upsilonmesons_dict) 
269  mesons_dict.update(Kaons_dict) 
270  mesons_dict.update(Dmesons_dict) 
271  mesons_dict.update(Chi_cmesons_dict) 
272  mesons_dict.update(Bmesons_dict) 
273   
274  Nucleons_dict = { 
275  "p" : "\Pp", # proton 
276  "n" : "\Pn", # neutron 
277  "ap" : "\Pap", # anti-proton 
278  "an" : "\Pan", # anti-neutron 
279  "proton" : "\Pp", 
280  "neutron" : "\Pn", 
281  "APproton" : "\Pap", "antiproton" : "\Pap", 
282  "APneutron" : "\Pan", "antineutron" : "\Pan", 
283  } 
284  hepnames_dict.update(Nucleons_dict) 
285   
286  NucleonResonances_dict = { 
287  "N" : "\PN", 
288  "Na" : "\PNa", 
289  "Nb" : "\PNb", 
290  "Nc" : "\PNc", 
291  "Nd" : "\PNd", 
292  "Ne" : "\PNe", 
293  "Nf" : "\PNf", 
294  "Ng" : "\PNg", 
295  "Nh" : "\PNh", 
296  "Ni" : "\PNi", 
297  "Nj" : "\PNj", 
298  "Nk" : "\PNk", 
299  "Nl" : "\PNl", 
300  "Nm" : "\PNm", 
301  ## nice names 
302  "nucleon" : "\PN" 
303  } 
304  hepnames_dict.update(NucleonResonances_dict) 
305   
306  DeltaBaryons_dict = { 
307  "gD" : "\PgD", 
308  "gDa" : "\PgDa", 
309  "gDb" : "\PgDb", 
310  "gDc" : "\PgDc", 
311  "gDd" : "\PgDd", 
312  "gDe" : "\PgDe", 
313  "gDf" : "\PgDf", 
314  "gDh" : "\PgDh", 
315  "gDi" : "\PgDi", 
316  "gDj" : "\PgDj", 
317  "gDk" : "\PgDk" 
318  } 
319  hepnames_dict.update(DeltaBaryons_dict) 
320   
321  LambdaBaryons_dict = { 
322  "gL" : "\PgL", # Lambda 
323  "agL" : "\PagL", # Anti-lambda 
324  "cgLp" : "\PcgLp", # Lambda_c 
325  "bgL" : "\PbgL", # Lambda_b 
326  "gLa" : "\PgLa", 
327  "gLb" : "\PgLb", 
328  "gLc" : "\PgLc", 
329  "gLd" : "\PgLd", 
330  "gLe" : "\PgLe", 
331  "gLf" : "\PgLf", 
332  "gLg" : "\PgLg", 
333  "gLh" : "\PgLh", 
334  "gLi" : "\PgLi", 
335  "gLj" : "\PgLj", 
336  "gLk" : "\PgLk", 
337  "gLl" : "\PgLl", 
338  "gLm" : "\PgLm", 
339  ## nice names 
340  "Lambda" : "\PgL", 
341  "APLambda" : "\PagL", "antiLambda" : "\PagL", 
342  "Lambdac" : "\PcgLp", 
343  "Lambdab" : "\PbgL", ## Lambda_b 
344  } 
345  hepnames_dict.update(LambdaBaryons_dict) 
346   
347  OmegaBaryons_dict = { 
348  "gO" : "\PgO", # Omega 
349  "gOpm" : "\PgOpm", "gOmp" : "\PgOmp", # charged Omega 
350  "gOp" : "\PgOp", # Omega-plus 
351  "gOm" : "\PgOm", # Omega-minus 
352  "gOma" : "\PgOma", 
353  "agO" : "\PagO", # anti-Omega 
354  "agOp" : "\PagOp", # anti-Omega-plus 
355  "agOm" : "\PagOm", # anti-Omega-minus 
356  ## nice names 
357  "Omega" : "\PgO", 
358  "Omegapm" : "\PgOpm", "Omegamp" : "\PgOmp", 
359  "Omegaplus" : "\PgOp", "Omega+" : "\PgOp", 
360  "Omegaminus" : "\PgOm", "Omega-" : "\PgOm", 
361  "APOmega" : "\PagO", "antiOmega" : "\PagO", 
362  "APOmegaplus" : "\PagOp", "antiOmegaplus" : "\PagOp", 
363  "APOmega+" : "\PagOp", "antiOmega+" : "\PagOp", 
364  "APOmegaminus" : "\PagOm", "antiOmegaminus" : "\PagOm", 
365  "APOmega-" : "\PagOm", "antiOmega-" : "\PagOm", 
366  } 
367  hepnames_dict.update(OmegaBaryons_dict) 
368   
369  SigmaBaryons_dict = { 
370  "gS" : "\PgS", # Sigma 
371  "gSpm" : "\PgSpm", "gSmp" : "\PgSmp", # charged Sigma 
372  "gSm" : "\PgSm", 
373  "gSp" : "\PgSp", 
374  "gSz" : "\PgSz", 
375  "cgS" : "\PcgS", 
376  "agSm" : "\PagSm", 
377  "agSp" : "\PagSp", 
378  "agSz" : "\PagSz", 
379  "acgS" : "\PacgS", 
380  "gSa" : "\PgSa", 
381  "gSb" : "\PgSb", 
382  "gSc" : "\PgSc", 
383  "gSd" : "\PgSd", 
384  "gSe" : "\PgSe", 
385  "gSf" : "\PgSf", 
386  "gSg" : "\PgSg", 
387  "gSh" : "\PgSh", 
388  "gSi" : "\PgSi", 
389  "cgSi" : "\PcgSi", 
390  ## nice names 
391  "Sigma" : "\PgS", 
392  "Sigmapm" : "\PgSpm", "Sigmamp" : "\PgSmp", 
393  "Sigmaminus" : "\PgSm", "Sigma-" : "\PgSm", 
394  "Sigmaplus" : "\PgSp", "Sigma+" : "\PgSp", 
395  "Sigmazero" : "\PgSz", "Sigma0" : "\PgSz", 
396  "Sigmac" : "\PcgS", 
397  "APSigmaminus" : "\PagSm", "antiSigmaminus" : "\PagSm", 
398  "APSigma-" : "\PagSm", "antiSigma-" : "\PagSm", 
399  "APSigmaplus" : "\PagSp", "antiSigmaplus" : "\PagSp", 
400  "APSigma+" : "\PagSp", "antiSigma+" : "\PagSp", 
401  "APSigmazero" : "\PagSz", "antiSigmazero" : "\PagSz", 
402  "APSigma0" : "\PagSz", "antiSigma0" : "\PagSz", 
403  "APSigmac" : "\PacgS", "antiSigmac" : "\PacgS" 
404  } 
405  hepnames_dict.update(SigmaBaryons_dict) 
406   
407  XiBaryons_dict = { 
408  "gX" : "\PgX", 
409  "gXp" : "\PgXp", 
410  "gXm" : "\PgXm", 
411  "gXz" : "\PgXz", 
412  "gXa" : "\PgXa", 
413  "gXb" : "\PgXb", 
414  "gXc" : "\PgXc", 
415  "gXd" : "\PgXd", 
416  "gXe" : "\PgXe", 
417  "agXp" : "\PagXp", 
418  "agXm" : "\PagXm", 
419  "agXz" : "\PagXz", 
420  "cgXp" : "\PcgXp", 
421  "cgXz" : "\PcgXz", 
422  ## nice names 
423  "Xi" : "\PgX", 
424  "Xiplus" : "\PgXp", "Xi+" : "\PgXp", 
425  "Ximinus" : "\PgXm", "Xi-" : "\PgXm", 
426  "Xizero" : "\PgXz", "Xi0" : "\PgXz", 
427  "APXiplus" : "\PagXp", "antiXiplus" : "\PagXp", 
428  "APXi+" : "\PagXp", "antiXi+" : "\PagXp", 
429  "APXiminus" : "\PagXm", "antiXiminus" : "\PagXm", 
430  "APXi-" : "\PagXm", "antiXi-" : "\PagXm", 
431  "APXizero" : "\PagXz", "antiXizero" : "\PagXz", 
432  "APXi0" : "\PagXz", "antiXi0" : "\PagXz", 
433  "Xicplus" : "\PcgXp", "Xic+" : "\PcgXp", 
434  "Xiczero" : "\PcgXz", "Xic0" : "\PcgXz" 
435  } 
436  hepnames_dict.update(XiBaryons_dict) 
437   
438  Baryons_dict = Nucleons_dict.copy() 
439  Baryons_dict.update(NucleonResonances_dict) 
440  Baryons_dict.update(DeltaBaryons_dict) 
441  Baryons_dict.update(XiBaryons_dict) 
442  Baryons_dict.update(SigmaBaryons_dict) 
443  Baryons_dict.update(OmegaBaryons_dict) 
444  Baryons_dict.update(LambdaBaryons_dict) 
445   
446  Hadrons_dict = mesons_dict.copy() 
447  Hadrons_dict.update(Baryons_dict) 
448   
449  Gluon_dict = { 
450  "g" : "\Pg", "gluon" : "\Pg" # gluon 
451  } 
452  hepnames_dict.update(Gluon_dict) 
453   
454  Photon_dict = { 
455  "gg" : "\Pgg", "photon" : "\Pgg", "gamma" : "\Pgg" # photon 
456  } 
457  hepnames_dict.update(Photon_dict) 
458   
459  VectorBosons_dict = { 
460  "W" : "\PW", # W boson 
461  "Wpm" : "\PWpm", "Wmp" : "\PWmp", # charged W boson 
462  "Wp" : "\PWp", # W-plus 
463  "Wm" : "\PWm", # W-minus 
464  "WR" : "\PWR", 
465  "Wpr" : "\PWpr", # W-prime boson 
466  "Z" : "\PZ", # Z boson 
467  "Zz" : "\PZz", # neutral Z boson 
468  "Zpr" : "\PZpr", # Z-prime boson 
469  "ZLR" : "\PZLR", # left-right Z boson 
470  "Zgc" : "\PZgc", 
471  "Zge" : "\PZge", 
472  "Zgy" : "\PZgy", 
473  "Zi" : "\PZi", 
474  ## nice names 
475  "Wplus" : "\PWp", "W+" : "\PWp", 
476  "Wminus" : "\PWm", "W-" : "\PWm", 
477  "Wprime" : "\PWpr", 
478  "Zzero" : "\PZz", "Z0" : "\PZz", # Z with a zero 
479  "Zprime" : "\PZpr" # Z-prime 
480  } 
481  hepnames_dict.update(VectorBosons_dict) 
482   
483  GaugeBosons_dict = Gluon_dict.copy() 
484  GaugeBosons_dict.update(Photon_dict) 
485  GaugeBosons_dict.update(VectorBosons_dict) 
486   
487  Axions_dict = { 
488  "Az" : "\PAz", "axion" : "\PAz" # axion 
489  } 
490  hepnames_dict.update(Axions_dict) 
491   
492  Higgses_dict = {    # (inc. SUSY Higgs) 
493  "H" : "\PH", # standard/heavy Higgs 
494  "Hz" : "\PHz", # explicitly neutral standard/heavy Higgs 
495  "h" : "\Ph", # light Higgs 
496  "hz" : "\Phz", # explicitly neutral light Higgs 
497  "A" : "\PA", # pseudoscalar Higgs 
498  "Az" : "\PAz", # explicitly neutral pseudoscalar Higgs 
499  "Hpm" : "\PHpm", # charged Higgs 
500  "Hmp" : "\PHmp", # charged Higgs 
501  "Hp" : "\PHp", # positive-charged Higgs 
502  "Hm" : "\PHm", # negative-charged Higgs 
503  ## nice names 
504  "Higgs" : "\PH", 
505  "Higgsheavy" : "\PH", 
506  "Higgslight" : "\Ph", 
507  "Higgsheavyzero" : "\PHz", "Higgsheavy0" : "\PHz", 
508  "Higgslightzero" : "\Phz", "Higgslight0" : "\Phz", 
509  "Higgsps" : "\PA", 
510  "Higgspszero" : "\PAz", "Higgsps0" : "\PAz", 
511  "Higgsplus" : "\PHp", "Higgs+" : "\PHp", 
512  "Higgsminus" : "\PHm", "Higgs-" : "\PHm", 
513  "Higgspm" : "\PHpm", 
514  "Higgsmp" : "\PHmp", 
515  "Higgszero" : "\PHz", "Higgs0" : "\PHz" 
516  } 
517  hepnames_dict.update(Higgses_dict) 
518   
519  BasicBosons_dict = GaugeBosons_dict.copy() 
520  BasicBosons_dict.update(Axions_dict) 
521  BasicBosons_dict.update(Higgses_dict) 
522   
523  Leptons_dict = { 
524  "l" : "\Pl", # lepton 
525  "lpm" : "\Plpm", # charged lepton 
526  "lmp" : "\Plmp", # charged lepton 
527  "lp" : "\Plp", # positive lepton 
528  "lm" : "\Plm", # negative lepton 
529  "al" : "\Pal", # anti-lepton 
530  "gn" : "\Pgn", # generic neutrino 
531  "gnl" : "\Pgnl", # neutrino (for lepton \ell) 
532  "agn" : "\Pagn", # generic anti-neutrino 
533  "agnl" : "\Pagnl", # anti-neutrino (for lepton \ell) 
534  "e" : "\Pe", # electronic 
535  "epm" : "\Pepm", # e plus/minus 
536  "emp" : "\Pemp", # e minus/plus 
537  "em" : "\Pem", # electron 
538  "ep" : "\Pep", # positron 
539  "gm" : "\Pgm", # muonic 
540  "gmpm" : "\Pgmpm", # mu plus/minus 
541  "gmmp" : "\Pgmmp", # mu minus/plus 
542  "gmm" : "\Pgmm", # muon 
543  "gmp" : "\Pgmp", # anti-muon 
544  "gt" : "\Pgt", # tauonic 
545  "gtpm" : "\Pgtpm", # tau plus/minus 
546  "gtmp" : "\Pgtmp", # tau minus/plus 
547  "gtm" : "\Pgtm", # tau lepton 
548  "gtp" : "\Pgtp", # anti-tau 
549  "gne" : "\Pgne", # electron neutrino 
550  "gngm" : "\Pgngm", # muon neutrino 
551  "gngt" : "\Pgngt", # tau neutrino 
552  "agne" : "\Pagne", # electron anti-neutrino 
553  "agngm" : "\Pagngm", # muon anti-neutrino 
554  "agngt" : "\Pagngt", # tau anti-neutrino 
555  ## nice names 
556  "lepton" : "\Pl", # lepton 
557  "leptonpm" : "\Plpm", "leptonmp" : "\Plmp", # charged lepton 
558  "leptonplus" : "\Plp" , "lepton+" : "\Plp", # positive lepton 
559  "leptonminus" : "\Plm" , "lepton-" : "\Plm", # negative lepton 
560  "APlepton" : "\Pal", "antilepton" : "\Pal", # anti-lepton 
561  "nu" : "\Pgn", # neutrino 
562  "APnu" : "\Pagn", "antinu" : "\Pagn", # antineutrino 
563  "neutrino" : "\Pgn", # neutrino 
564  "APneutrino" : "\Pagn", "antineutrino" : "\Pagn", # antineutrino 
565  "nulepton" : "\Pgnl", # l-flavour neutrino 
566  "APnulepton" : "\Pagnl", "antinulepton" : "\Pagnl", # l-flavour antineutrino 
567  "electron" : "\Pem", "e-": "\Pem", 
568  "APelectron" : "\Pep", "antielectron" : "\Pep", 
569  "positron" : "\Pep", "e+": "\Pep", 
570  "mu" : "\Pgm", 
571  "mupm" : "\Pgmpm", "mump" : "\Pgmmp", 
572  "muon" : "\Pgmm", "mu-": "\Pgmm", 
573  "APmuon" : "\Pgmp", "antimuon" : "\Pgmp", "mu+": "\Pgmp", 
574  "tau" : "\Pgt", 
575  "taupm" : "\Pgtpm","taump" : "\Pgtmp", 
576  "tauon" : "\Pgtm", "tau-": "\Pgtm", 
577  "APtauon" : "\Pgtp", "antitauon" : "\Pgtp", "tau+" : "\Pgtp", 
578  "nue" : "\Pgne", 
579  "num" : "\Pgngm", "numu": "\Pgngm", 
580  "nut" : "\Pgngt", "nutau": "\Pgngt", 
581  "APnue" : "\Pagne", "antinue" : "\Pagne", 
582  "APnum" : "\Pagngm", "antinum" : "\Pagngm", 
583  "APnut" : "\Pagngt", "antinut" : "\Pagngt" 
584  } 
585  hepnames_dict.update(Leptons_dict) 
586   
587  Quarks_dict = { 
588  "q" : "\Pq", # quark 
589  "aq" : "\Paq", # anti-quark 
590  "qd" : "\Pqd", # down quark 
591  "qu" : "\Pqu", # up quark 
592  "qs" : "\Pqs", # strange quark 
593  "qc" : "\Pqc", # charm quark 
594  "qb" : "\Pqb", # bottom quark 
595  "qt" : "\Pqt", # top quark 
596  "aqd" : "\Paqd", # down anti-quark 
597  "aqu" : "\Paqu", # up anti-quark 
598  "aqs" : "\Paqs", # strange anti-quark 
599  "aqc" : "\Paqc", # charm anti-quark 
600  "aqb" : "\Paqb", # bottom anti-quark 
601  "aqt" : "\Paqt", # top anti-quark 
602  ## nice names 
603  "quark" : "\Pq", 
604  "APquark" : "\Paq", "antiquark" : "\Paq", 
605  "down" : "\Pqd", 
606  "up" : "\Pqu", 
607  "strange" : "\Pqs", 
608  "charm" : "\Pqc", 
609  "bottom" : "\Pqb", 
610  "beauty" : "\Pqb", 
611  "top" : "\Pqt", "truth" : "\Pqt", 
612  "APdown" : "\Paqd", "antidown" : "\Paqd", 
613  "APqd" : "\Paqd", "antiqd" : "\Paqd", 
614  "APup" : "\Paqu", "antiup" : "\Paqu", 
615  "APqu" : "\Paqu", "antiqu" : "\Paqu", 
616  "APstrange" : "\Paqs", "antistrange" : "\Paqs", 
617  "APqs" : "\Paqs", "antiqs" : "\Paqs", 
618  "APcharm" : "\Paqc", "anticharm" : "\Paqc", 
619  "APqc" : "\Paqc", "antiqc" : "\Paqc", 
620  "APbottom" : "\Paqb", "antibottom" : "\Paqb", 
621  "APbeauty" : "\Paqb", "antibeauty" : "\Paqb", 
622  "APqb" : "\Paqb", "antiqb" : "\Paqb", 
623  "APtop" : "\Paqt", "antitop" : "\Paqt", 
624  "APtruth" : "\Paqb", "antitruth" : "\Paqb", 
625  "APqt" : "\Paqt", "antiqt" : "\Paqt" 
626  } 
627  hepnames_dict.update(Quarks_dict) 
628   
629  BasicFermions_dict = Leptons_dict.copy() 
630  BasicFermions_dict.update(Quarks_dict) 
631   
632  AllFermions_dict = BasicFermions_dict.copy() 
633  AllFermions_dict.update(Baryons_dict) 
634   
635  AllBosons_dict = BasicBosons_dict.copy() 
636  AllBosons_dict.update(mesons_dict) 
637   
638  MiscParticles_dict = { 
639  "Ez" : "\PEz", 
640  "Lpm" : "\PLpm", 
641  "Lmp" : "\PLmp", 
642  "Lz" : "\PLz", 
643  } 
644  hepnames_dict.update(MiscParticles_dict) 
645   
646  Ghost_dict = {"ghost" : ""} # Fadeev-Popov ghosts (needed for internal lines) 
647   
648  SUSYparticles_dict = { 
649  "SH" : "\PSH", # Higgsino 
650  "SHp" : "\PSHp", # positive Higgsino 
651  "SHm" : "\PSHm", # negative Higgsino 
652  "SHpm" : "\PSHpm", "SHmp" : "\PSHmp", # charged Higgsino 
653  "SHz" : "\PSHz", # neutral Higgsino 
654  "SW" : "\PSW", # wino 
655  "SWp" : "\PSWp", # positive wino 
656  "SWm" : "\PSWm", # negative wino 
657  "SWpm" : "\PSWpm", "SWmp" : "\PSWmp", # charged wino 
658  "SZ" : "\PSZ", # zino 
659  "SZz" : "\PSZz", # neutral zino 
660  "SB" : "\PSB", # bino 
661  "Se" : "\PSe", # selectron 
662  "Sgg" : "\PSgg", # photino 
663  "Sgm" : "\PSgm", # smuon 
664  "Sgn" : "\PSgn", # sneutrino 
665  "Sgt" : "\PSgt", # stau 
666  "Sgx" : "\PSgx", # chargino/neutralino 
667  "Sgxpm" : "\PSgxpm", "Sgxmp" : "\PSgxmp", # charged chargino 
668  "Sgxz" : "\PSgxz", # neutralino 
669  "Sgxzi" : "\PSgxzi", # lightest neutralino 
670  "Sgxzii" : "\PSgxzii", # next-to-lightest neutralino 
671  "Sg" : "\PSg", # gluino 
672  "Sl" : "\PSl", # slepton (generic) 
673  "aSl" : "\PaSl", # anti-slepton (generic) 
674  "Sq" : "\PSq", # squark (generic) 
675  "aSq" : "\PaSq", # anti-squark (generic) 
676  "Sqd" : "\PSqd", # down squark 
677  "Squ" : "\PSqu", # up squark 
678  "Sqs" : "\PSqs", # strange squark 
679  "Sqc" : "\PSqc", # charm squark 
680  "Sqb" : "\PSqb", # bottom squark (sbottom) 
681  "Sqt" : "\PSqt", # top squark (stop) 
682  "aSqd" : "\PaSqd", # anti-down squark 
683  "aSqu" : "\PaSqu", # anti-up squark 
684  "aSqs" : "\PaSqs", # anti-strange squark 
685  "aSqc" : "\PaSqc", # anti-charm squark 
686  "aSqb" : "\PaSqb", # anti-bottom squark 
687  "aSqt" : "\PaSqt", # anti-top squark (stop) 
688  ## nice names 
689  "SHiggs" : "\PSH", "SHiggsino" : "\PSH", "Higgsino" : "\PSH", 
690  "SHiggsplus" : "\PSHp", "SHiggs+" : "\PSHp", 
691  "SHiggsinoplus" : "\PSHp", "SHiggsino+" : "\PSHp", 
692  "Higgsinoplus" : "\PSHp", "Higgsino+" : "\PSHp", 
693  "SHiggsminus" : "\PSHm", "SHiggs-" : "\PSHm", 
694  "SHiggsinominus" : "\PSHm", "SHiggsino-" : "\PSHm", 
695  "Higgsinominus" : "\PSHm", "Higgsino-" : "\PSHm", 
696  "SHiggspm" : "\PSHpm", "SHiggsinopm" : "\PSHpm", "Higgsinopm" : "\PSHpm", 
697  "SHiggsmp" : "\PSHmp", "SHiggsinomp" : "\PSHmp", "Higgsinomp" : "\PSHmp", 
698  "SHiggszero" : "\PSHz", "SHiggs0" : "\PSHz", 
699  "SHiggsinozero" : "\PSHz", "SHiggsino0" : "\PSHz", 
700  "Higgsinozero" : "\PSHz", "Higgsino0" : "\PSHz", 
701  "SBino" : "\PSB", # bino, 
702  "Bino" : "\PSB", 
703  "SWplus" : "\PSWp" , "SW+" : "\PSWp", # wino 
704  "SWminus" : "\PSWm" , "SW-" : "\PSWm", 
705  "SWino" : "\PSW", "Wino" : "\PSW",  
706  "SWinopm" : "\PSWpm", "Winopm" : "\PSWpm",  
707  "SWinomp" : "\PSWmp", "Winomp" : "\PSWmp",  
708  "SZzero" : "\PSZz", "SZ0" : "\PSZz", 
709  "Sphoton" : "\PSgg", # photino 
710  "Sphotino" : "\PSgg", 
711  "photino" : "\PSgg",  
712  "Smu" : "\PSgm", # smuon 
713  "Snu" : "\PSgn", # sneutrino 
714  "Stau" : "\PSgt", # stau 
715  "Sino" : "\PSgx", # neutralino/chargino 
716  "Scharginopm" : "\PSgxpm", "Scharginomp" : "\PSgxmp", # chargino 
717  "charginopm" : "\PSgxpm", "charginomp" : "\PSgxmp", # chargino 
718  "Sneutralino" : "\PSgxz", # neutralino 
719  "neutralino" : "\PSgxz", 
720  "SneutralinoOne" : "\PSgxzi", # lightest neutralino 
721  "neutralinoOne" : "\PSgxzi",  
722  "SneutralinoTwo" : "\PSgxzii", # next-to-lightest neutralino 
723  "neutralinoTwo" : "\PSgxzii", 
724  "Sgluino" : "\PSg", "gluino" : "\PSg", # gluino 
725  "Slepton" : "\PSl", "slepton" : "\PSl", # slepton 
726  "APSlepton" : "\PaSl", "antiSlepton" : "\PaSl", # anti-slepton 
727  "APslepton" : "\PaSl", "antislepton" : "\PaSl", 
728  "squark" : "\PSq", # squarks 
729  "APSq" : "\PaSq", "antiSq" : "\PaSq", 
730  "APsquark" : "\PaSq", "antisquark" : "\PaSq", 
731  "Sdown" : "\PSqd", 
732  "Sup" : "\PSqu", 
733  "Sstrange" : "\PSqs", 
734  "Scharm" : "\PSqc", 
735  "Sbottom" : "\PSqb", 
736  "Stop" : "\PSqt", 
737  "ASdown" : "\PaSqd", "antiSdown" : "\PaSqd", # antisquarks 
738  "ASup" : "\PaSqu", "antiSup" : "\PaSqu", 
739  "ASstrange" : "\PaSqs", "antiSstrange" : "\PaSqs", 
740  "AScharm" : "\PaSqc", "antiScharm" : "\PaSqc", 
741  "ASbottom" : "\PaSqb", "antiSbottom" : "\PaSqb", 
742  "AStop" : "\PaSqt", "antiStop" : "\PaSqt" 
743  } 
744  hepnames_dict.update(SUSYparticles_dict) 
745   
746   
747  ## Gauge boson type testing 
748   
749 -def is_photon(name):
750 return Photon_dict.has_key(name)
751
752 -def is_gluon(name):
753 return Gluon_dict.has_key(name)
754
755 -def is_weakboson(name):
756 return VectorBosons_dict.has_key(name)
757
758 -def is_gauge(name):
759 return is_photon(name) or is_gluon(name) or is_weakboson(name)
760 761 ## Higgs boson type testing 762
763 -def is_higgs(name):
764 return Higgses_dict.has_key(name)
765 766 ## Fermion type testing 767
768 -def is_quark(name):
769 return Quarks_dict.has_key(name)
770
771 -def is_lepton(name):
772 return Leptons_dict.has_key(name)
773
774 -def is_quark_lepton(name):
775 return is_quark(name) or is_lepton(name)
776 777 ## Hadron type testing 778
779 -def is_meson(name):
780 return mesons_dict.has_key(name)
781
782 -def is_baryon(name):
783 return Baryons_dict.has_key(name)
784
785 -def is_hadron(name):
786 return Hadrons_dict.has_key(name)
787 788 ## Other type tests 789
790 -def is_ghost(name):
791 return Ghost_dict.has_key(name)
792 793 ## Classify particle according to its coarse physical type 794
795 -def hep_classify(name):
796 if is_ghost(name): 797 return "ghost" 798 elif is_meson(name): 799 return "meson" 800 elif is_baryon(name): 801 return "baryon" 802 elif is_quark(name): 803 return "quark" 804 elif is_lepton(name): 805 return "lepton" 806 elif is_higgs(name): 807 return "higgs boson" 808 elif is_gauge(name): 809 return "gauge boson" 810 else: 811 return "other particle"
812 813 ## Classify particle according to the linestyle to use when drawing 814
815 -def hep_linestyle(name):
816 if is_ghost(name): 817 return "ghost" # dotted or dashed 818 elif is_meson(name): 819 return "meson" # dashed, dotted, solid or double 820 elif is_baryon(name): 821 return "baryon" # solid or double 822 elif is_quark_lepton(name): 823 return "fermion" # solid (sometimes double if heavy) 824 elif is_higgs(name): 825 return "higgs" # usually dashed 826 elif is_photon(name): 827 return "photon" # wavy 828 elif is_gluon(name): 829 return "gluon" # curly 830 elif is_weakboson(name): 831 return "weak" # wavy or zigzag 832 else: 833 return "ask_user" # can't determine automatically
834