-
Notifications
You must be signed in to change notification settings - Fork 0
/
PairAnnihilation.C
126 lines (59 loc) · 2.4 KB
/
PairAnnihilation.C
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
//JC-a simple graphic which displays the Feynman diagram for Pair Annihilation
//open in CERN ROOT.
/*
An electron and a positron collide and form a bound state, known as positronium.
Positronium is a pseudo-atom, with a positron and electron orbiting around a common "virutal nucleus".
This bound state decays by an EM decay in 10^-7 seconds after formation.
2 gamma rays are released with opposite but equal momentum.
Interaction in 4-Vector notation:
For an electron with a rest mass E1, and a positron with a rest mass E2:
(E1+E2,0,0,0) =>
(E1,P1,0,0) +
(E2,-P2,0,0)
P1=P2
*/
void PairAnnihilation()
{
TCanvas *c1 = new TCanvas("c1", "A canvas", 10,10, 600, 300);
c1->Range(0, 0, 140, 60);
Int_t linsav = gStyle->GetLineWidth();
gStyle->SetLineWidth(3);
TLatex t;
t.SetTextAlign(22);
t.SetTextSize(0.1);
TCurlyLine *g1 = new TCurlyLine(10, 50, 30, 30);
g1->SetWavy();
g1->SetLineColor(5);
g1->Draw();
TCurlyLine *g2 = new TCurlyLine(110, 30, 130, 10);
g2->SetWavy();
g2->SetLineColor(5);
g2->Draw();
t.DrawLatex(7,6,"e^{-}");
t.DrawLatex(7,55,"#gamma");
TLine *z0 = new TLine(30, 30, 110, 30);
z0->Draw();
//t.DrawLatex(70, 37.5,"e^{+} + e^{-}");
TArc *a = new TArc(70, 30, 15);
a->Draw();
t.DrawLatex(55, 45,"e^{-}");
t.DrawLatex(85, 15,"e^{+}");
TPaveText *pt = new TPaveText(50,10,.95,.8);
pt->AddText("Positronium Bound State(Lifetime ~ 10^-7 s)");
pt->Draw();
TPaveText *Title = new TPaveText(50,10,.95,.8);
Title->AddText("Pair Annihilation");
Title->AddText("For an electron with a rest mass E1, and a positron with a rest mass E2:");
Title->AddText("(E1+E2,0,0,0) => (E1,P1,0,0) + (E2,-P2,0,0) ; P1=P2");
Title->AddText("Gamma Rays have equal energy and opposite momentum vectors and are emitted back-to-back");
Title->Draw();
l = new TArrow(110, 30, 130, 50,0.05,"<"); l->Draw();
l->SetLineColor(2);
l = new TArrow(10, 10, 30, 30,0.05,">"); l->Draw();
l->SetLineColor(4);
t.DrawLatex(135,6,"#gamma");
t.DrawLatex(135,55,"e^{+}");
c1->Update();
c1->Print("PairAnnihilation.gif");
gStyle->SetLineWidth(linsav);
}