Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
feynman.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_graphics
3/// \notebook
4/// Draw Feynman diagrams.
5///
6/// \macro_image
7/// \macro_code
8///
9/// \author Otto Schaile
10
11void feynman()
12{
13 TCanvas *c1 = new TCanvas("c1", "A canvas", 10, 10, 600, 300);
14 c1->Range(0, 0, 140, 60);
15 Int_t linsav = gStyle->GetLineWidth();
17 TLatex t;
18 t.SetTextAlign(22);
19 t.SetTextSize(0.1);
20 TLine *l;
21 l = new TLine(10, 10, 30, 30);
22 l->Draw();
23 l = new TLine(10, 50, 30, 30);
24 l->Draw();
25 TCurlyArc *ginit = new TCurlyArc(30, 30, 12.5 * sqrt(2), 135, 225);
26 ginit->SetWavy();
27 ginit->Draw();
28 t.DrawLatex(7, 6, "e^{-}");
29 t.DrawLatex(7, 55, "e^{+}");
30 t.DrawLatex(7, 30, "#gamma");
31
32 TCurlyLine *Gamma = new TCurlyLine(30, 30, 55, 30);
33 Gamma->SetWavy();
34 Gamma->Draw();
35 t.DrawLatex(42.5, 37.7, "#gamma");
36
37 TArc *a = new TArc(70, 30, 15);
38 a->Draw();
39 t.DrawLatex(55, 45, "#bar{q}");
40 t.DrawLatex(85, 15, "q");
41 TCurlyLine *gluon = new TCurlyLine(70, 45, 70, 15);
42 gluon->Draw();
43 t.DrawLatex(77.5, 30, "g");
44
45 TCurlyLine *z0 = new TCurlyLine(85, 30, 110, 30);
46 z0->SetWavy();
47 z0->Draw();
48 t.DrawLatex(100, 37.5, "Z^{0}");
49
50 l = new TLine(110, 30, 130, 10);
51 l->Draw();
52 l = new TLine(110, 30, 130, 50);
53 l->Draw();
54
55 TCurlyArc *gluon1 = new TCurlyArc(110, 30, 12.5 * sqrt(2), 315, 45);
56 gluon1->Draw();
57
58 t.DrawLatex(135, 6, "#bar{q}");
59 t.DrawLatex(135, 55, "q");
60 t.DrawLatex(135, 30, "g");
61 c1->Update();
62 gStyle->SetLineWidth(linsav);
63}
#define a(i)
Definition RSha256.hxx:99
int Int_t
Definition RtypesCore.h:45
R__EXTERN TStyle * gStyle
Definition TStyle.h:436
Create an Arc.
Definition TArc.h:26
virtual Width_t GetLineWidth() const
Return the line width.
Definition TAttLine.h:35
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
Definition TAttLine.h:43
virtual void SetTextAlign(Short_t align=11)
Set the text alignment.
Definition TAttText.h:42
virtual void SetTextSize(Float_t tsize=1)
Set the text size.
Definition TAttText.h:47
The Canvas class.
Definition TCanvas.h:23
Implements curly or wavy arcs used to draw Feynman diagrams.
Definition TCurlyArc.h:16
Implements curly or wavy polylines used to draw Feynman diagrams.
Definition TCurlyLine.h:19
virtual void SetWavy()
Set wavy.
To draw Mathematical Formula.
Definition TLatex.h:18
TLatex * DrawLatex(Double_t x, Double_t y, const char *text)
Make a copy of this object with the new parameters And copy object attributes.
Definition TLatex.cxx:1943
Use the TLine constructor to create a simple line.
Definition TLine.h:22
virtual void Draw(Option_t *option="")
Default Draw method for all objects.
Definition TObject.cxx:292
void Draw(Option_t *option="") override
Draw this polyline with its current attributes.
return c1
Definition legend1.C:41
VecExpr< UnaryOp< Sqrt< T >, VecExpr< A, T, D >, T >, T, D > sqrt(const VecExpr< A, T, D > &rhs)
static int ginit
Definition rsalib.cxx:256
TLine l
Definition textangle.C:4