The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use Math::Trig;
use SOOT ':all';

my $c1 = TCanvas->new("c1", "A canvas", 10,10, 600, 300);
$c1->Range(0, 0, 140, 60);
my $linsav = int($gStyle->GetLineWidth());

$gStyle->SetLineWidth(3);

my $t = TLatex->new();
$t->SetTextAlign(22);
$t->SetTextSize(0.1);

my $l;
$l = TLine->new(10, 10, 30, 30); 
$l->Draw();

$l = TLine->new(10, 50, 30, 30); 
$l->Draw();

my $ginit = TCurlyArc->new(30, 30, 12.5*sqrt(2), 135, 225);
$ginit->SetWavy();
$ginit->Draw();

$t->DrawLatex(7,6,"e^{-}");
$t->DrawLatex(7,55,"e^{+}");
$t->DrawLatex(7,30,"#gamma");

my $gamma = TCurlyLine->new(30, 30, 55, 30);
$gamma->SetWavy();
$gamma->Draw();
$t->DrawLatex(42.5,37.7,"#gamma");

my $a = TArc->new(70, 30, 15);
$a->Draw();
$t->DrawLatex(55, 45,"#bar{q}");
$t->DrawLatex(85, 15,"q");

my $gluon = TCurlyLine->new(70, 45, 70, 15);
$gluon->Draw();
$t->DrawLatex(77.5,30,"g");

my $z0 = TCurlyLine->new(85, 30, 110, 30);
$z0->SetWavy();
$z0->Draw();
$t->DrawLatex(100, 37.5,"Z^{0}");

$l = TLine->new(110, 30, 130, 10); 
$l->Draw();

$l = TLine->new(110, 30, 130, 50); 
$l->Draw();

my $gluon1 = TCurlyArc->new(110, 30, 12.5*sqrt(2), 315, 45);
$gluon1->Draw();

$t->DrawLatex(135,6,"#bar{q}");
$t->DrawLatex(135,55,"q");
$t->DrawLatex(135,30,"g");
$c1->Update();

$gStyle->SetLineWidth($linsav);
$gApplication->Run;