void reaction_virtual_LBL(void) { TCanvas *c1 = new TCanvas("c1"); c1->Range(-1.0, -1.0, +1.0, +1.0); gStyle->SetLineWidth(6); TArrow *electron_initial = new TArrow(-0.75, +0.75, -0.1, +0.3, 0.05, "->-"); electron_initial->Draw(); TArrow *positron_initial = new TArrow(-0.75, -0.75, -0.1, -0.3, 0.05, "->-"); positron_initial->Draw(); TArrow *electron_final = new TArrow(-0.1, +0.3, +0.75, +0.75, 0.05, "->"); electron_final->Draw(); TArrow *positron_final = new TArrow(-0.1, -0.3, +0.75, -0.75, 0.05, "->"); positron_final->Draw(); TArrow *pip = new TArrow(0.0, 0.0, 0.75, +0.30, 0.05, "->"); pip->Draw(); TArrow *pim = new TArrow(0.0, 0.0, 0.75, -0.30, 0.05, "->"); pim->Draw(); TCurlyLine *gamma1 = new TCurlyLine(-0.1, +0.3, 0.0, 0.0); gamma1->SetWavy(); gamma1->SetWaveLength(0.03); gamma1->Draw(); TCurlyLine *gamma2 = new TCurlyLine(-0.1, -0.3, 0.0, 0.0); gamma2->SetWavy(); gamma2->SetWaveLength(0.03); gamma2->Draw(); TLatex t; t.SetTextSize(0.2); t.DrawLatex(-0.97, +0.70, "#it{e}^{-}"); t.DrawLatex(+0.77, +0.70, "#it{e}^{-}"); t.DrawLatex(-0.97, -0.92, "#it{e}^{+}"); t.DrawLatex(+0.77, -0.95, "#it{e}^{+}"); t.DrawLatex(0.77, +0.27, "#pi^{+}"); t.DrawLatex(0.77, -0.38, "#pi^{-}"); t.SetTextSize(0.12); t.DrawLatex(-0.239, +0.089, "#gamma*"); t.DrawLatex(-0.220, -0.18, "#gamma*"); c1->SaveAs("reaction_virtual_LBL.png"); c1->SaveAs("reaction_virtual_LBL.pdf"); } void AddMiddleArrowHead(TCurlyLine *cl) { double xmid = (cl->GetStartX() + cl->GetEndX())/2.0; double ymid = (cl->GetStartY() + cl->GetEndY())/2.0; double dX = (cl->GetEndX() - cl->GetStartX())/1000.0; double dY = (cl->GetEndY() - cl->GetStartY())/1000.0; xmid += 10.0*dX; ymid += 10.0*dY; TArrow *arrow = new TArrow(xmid, ymid, xmid+dX, ymid+dY, 0.05, "->-"); arrow->Draw(); } void AddEndArrowHead(TCurlyLine *cl) { double xend = cl->GetEndX(); double yend = cl->GetEndY(); double dX = (cl->GetEndX() - cl->GetStartX())/1000.0; double dY = (cl->GetEndY() - cl->GetStartY())/1000.0; TArrow *arrow = new TArrow(xend-dX, yend-dY, xend, yend, 0.05, "->-"); arrow->Draw(); }