-
Notifications
You must be signed in to change notification settings - Fork 0
/
ElectrónSelfEnergy.wls
88 lines (46 loc) · 2.06 KB
/
ElectrónSelfEnergy.wls
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/usr/bin/env wolframscript
(* ::Package:: *)
(* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *)
(* :Title: One-Loop Electron Self-Energy in QED. *)
(*
This software is covered by the GNU General Public License 3.
Copyright (C) 2022 Edilson A. Reyes R.
Copyright (C) 2022 Cristian A. Lobo B.
*)
(* :Summary: This is a Mathematica routine for the calculation of the electron
self-energy in QED at one-loop level. *)
(* ------------------------------------------------------------------------ *)
$LoadFeynArts=True;
Get["FeynCalc.m"]
TopSE=CreateTopologies[1,1->1,ExcludeTopologies->{Internal},Adjacencies->3 ]
Paint[TopSE,ColumnsXRows->1,FieldNumbers->True]
excludefields={F[1, _],F[2,{2}],F[2,{3}], F[3, _], F[4, _],
S[1],S[2], S[3],
V[2], V[3], V[5],
U[1 | 2 | 3 | 4 | 5 ]};
FDSE=InsertFields[TopSE, F[2,{1}]->F[2,{1}],
Model->"SM",
InsertionLevel -> {Particles},
ExcludeParticles->excludefields]
Paint[FDSE,ColumnsXRows->1]
AmpFASE=CreateFeynAmp[FDSE,Truncated->True]
AmpFCSE=FCFAConvert[AmpFASE,
ChangeDimension->D,
IncomingMomenta->{p},
OutgoingMomenta->{p},
LoopMomenta->{k},
UndoChiralSplittings->True]
Changes = {FCGV[a_]:>a,k->k+p}
Den=Flatten@@Cases[AmpFCSE,FeynAmpDenominator[__],Infinity] /. Changes // FCE
Num=Block[{res},
res=DeleteCases[AmpFCSE,FeynAmpDenominator[__],Infinity];
res=res /. Changes // FCE ]
Amp=Contract[Flatten@@Times[Num,Den]] // FCE
AmpOL=OneLoopSimplify[Amp,k,FeynCalcExternal->True]
res=OneLoop[k,Amp,Dimension->D,FeynCalcExternal->True] /. D-> 4 // Simplify
Changes2 = {"ME" -> m,"EL"^2->4*Pi*\[Alpha],SP[a_, a_]->a^2}
resmod = res /. Changes2;
resmod = Collect[resmod,GS[p]]
(** The final result is written in terms of Passarino-Veltmann functions. **)
Print["The End !"];
Quit[];