Logo ROOT  
Reference Guide
eval.C File Reference

Detailed Description

View in nbviewer Open in SWAN This macro produces the flowchart of TFormula::Eval.

void eval(){
TCanvas *c1 = new TCanvas("c1");
c1->Range(0,0,20,10);
TPaveLabel *pt1 = new TPaveLabel(0.2,4,3,6,"Eval");
pt1->SetTextSize(0.5);
pt1->SetFillColor(42);
pt1->Draw();
TPaveText *pt2 = new TPaveText(4.5,4,7.8,6);
pt2->Draw();
TText *t1 = pt2->AddText("Read Operator");
TText *t2 = pt2->AddText("number i");
TPaveText *pt3 = new TPaveText(9,3.5,17.5,6.5);
TText *t4 = pt3->AddText("Apply Operator to current stack values");
TText *t5 = pt3->AddText("Example: if operator +");
TText *t6 = pt3->AddText("value[i] += value[i-1]");
t4->SetTextAlign(22);
t5->SetTextAlign(22);
t6->SetTextAlign(22);
t5->SetTextColor(4);
t6->SetTextColor(2);
pt3->Draw();
TPaveLabel *pt4 = new TPaveLabel(4,0.5,12,2.5,"return result = value[i]");
pt4->Draw();
TArrow *ar1 = new TArrow(6,4,6,2.7,0.02,"|>");
ar1->Draw();
TText *t7 = new TText(6.56,2.7,"if i = number of stack elements");
t7->SetTextSize(0.04);
t7->Draw();
ar1->DrawArrow(6,8,6,6.2,0.02,"|>");
TLine *l1 = new TLine(12,6.6,12,8);
l1->Draw();
l1->DrawLine(12,8,6,8);
ar1->DrawArrow(3,5,4.4,5,0.02,"|>");
ar1->DrawArrow(7.8,5,8.9,5,0.02,"|>");
}
Author
Rene Brun

Definition in file eval.C.

TLine::DrawLine
virtual TLine * DrawLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2)
Draw this line with new coordinates.
Definition: TLine.cxx:89
TLine
Definition: TLine.h:22
TArrow::Draw
virtual void Draw(Option_t *option="")
Draw this arrow with its current attributes.
Definition: TArrow.cxx:120
TPaveLabel::Draw
virtual void Draw(Option_t *option="")
Draw this pavelabel with its current attributes.
Definition: TPaveLabel.cxx:77
TPaveText::Draw
virtual void Draw(Option_t *option="")
Draw this pavetext with its current attributes.
Definition: TPaveText.cxx:234
TArrow::DrawArrow
virtual void DrawArrow(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Float_t arrowsize=0, Option_t *option="")
Draw this arrow with new coordinates.
Definition: TArrow.cxx:135
TPaveText::AddText
virtual TText * AddText(Double_t x1, Double_t y1, const char *label)
Add a new Text line to this pavetext at given coordinates.
Definition: TPaveText.cxx:183
TPaveLabel
Definition: TPaveLabel.h:20
TObject::Draw
virtual void Draw(Option_t *option="")
Default Draw method for all objects.
Definition: TObject.cxx:197
TText
Definition: TText.h:22
TCanvas
Definition: TCanvas.h:23
t1
auto * t1
Definition: textangle.C:20
TArrow
Definition: TArrow.h:29
TPaveText
Definition: TPaveText.h:21
c1
return c1
Definition: legend1.C:41