128 gROOT->GetListOfCleanups()->Add(
this);
143 if (firstentry < 0 || firstentry >
tree->GetEstimate()) firstentry = 0;
217 if(!varexp[0])
return;
219 if(fvar->
GetNdim() <= 0)
return;
233 while(entriesToDisplay!=0){
235 if(entryNumber < 0)
break;
237 if(localEntry < 0)
break;
263 for(
Int_t inst=0;inst<ndata;++inst){
275 }
else if (inst == 0) {
334 for(ui = 0;ui<
fNcols;++ui){
359 for(ui=0; ui<
fNcols;++ui){
367 for(ui=var+1;ui<
fNcols;++ui){
420 for(ui = 0;ui<
fNcols;++ui){
441 if(!
gPad)
return 9999;
443 xx=
gPad->AbsPixeltoX(px);
444 yy=
gPad->AbsPixeltoY(py);
473 for(ui=0;ui<
fNx*
fNy;++ui){
496 Int_t fillcolor=linecolor;
571 TArc* slice =
new TArc(0,0,
r,(ui-0.25)*angle*conv,(ui+0.25)*angle*conv);
578 slice->
Draw(options);
590 Int_t fillstyle=3002;
592 Int_t fillcolor=linecolor;
680 while(angle < 0 || angle > 2*pi){
681 if(angle < 0) angle+=2*pi;
682 if(angle > 2*pi) angle-=2*pi;
685 if(angle > 0 && angle < pi/2)
return 11;
686 else if(angle > pi/2 && angle < pi)
return 31;
687 else if(angle > pi && angle < 3*pi/2)
return 33;
688 else if(angle > 3*pi/2 && angle < 2*pi)
return 13;
689 else if(angle == 0 || angle == 2*pi)
return 12;
690 else if(angle == pi/2)
return 21;
691 else if(angle == pi)
return 32;
692 else if(angle == 3*pi/2)
return 23;
696 if(angle >= 0 && angle < pi)
return 21;
697 else if(angle >=pi && angle <= 2*pi)
return 23;
710 while(angle < 0 || angle > 2*pi){
711 if(angle < 0) angle+=2*pi;
712 if(angle > 2*pi) angle-=2*pi;
715 if(angle >= 0 && angle <= pi/2)
return angle*convraddeg - 90;
716 else if(angle > pi/2 && angle <= pi)
return (angle + pi)*convraddeg + 90;
717 else if(angle > pi && angle <= 3*pi/2)
return (angle - pi)*convraddeg - 90;
718 else if(angle > 3*pi/2 && angle <= 2*pi)
return angle*convraddeg + 90;
732 nentries = lastentry - firstentry + 1;
813 memmax[i] = -DBL_MAX;
852 while(entriesToDisplay!=0){
854 if(entryNumber < 0)
break;
856 if(localEntry < 0)
break;
881 for(
Int_t inst=0;inst<ndata;++inst){
891 for (ui=0;ui<
fNcols;ui++) {
895 }
else if (inst == 0) {
903 if(inst >
fMax[ui])
fMax[ui] = inst;
904 if(inst <
fMin[ui])
fMin[ui] = inst;
912 if (notSkipped) {
for(ui=0;ui<
fNcols;++ui)
fAve[ui]/=notSkipped;}
933 for(ui=0;ui<
fNx*
fNy;++ui){
1040 for(ui=0;ui<
fNx*
fNy;++ui){
1045 for(ui = 0; ui <
fNx*
fNy; ++ui){
1078 while(entriesToDisplay!=0){
1080 if(entryNumber < 0)
break;
1082 if(localEntry < 0)
break;
1096 for(ui=0;ui<
fNcols;++ui){
1107 for(
Int_t inst=0;inst<ndata;++inst){
1117 for (ui=0;ui<
fNcols;ui++) {
1121 }
else if (inst == 0) {
1142 for(ui=0; ui<
fNx*
fNy;++ui){
1158 for(ui=0; ui<
fNx*
fNy;++ui){
1174 for(ui=0; ui<
fNx*
fNy;++ui){
1190 for(ui=0; ui<
fNx*
fNy;++ui){
1206 for(ui=0; ui<
fNx*
fNy;++ui){
1228 if(
fNx == nx || nx <= 0)
return;
1269 for(ui=0; ui <
fNx*
fNy;++ui){
1284 for(ui = 0;ui<
fNcols;++ui){
1305 if(
fNy == ny || ny <= 0)
return;
1346 for(ui=0; ui <
fNx*
fNy;++ui){
1361 for(ui = 0;ui<
fNcols;++ui){
1387 for(ui=0;ui<
fNx*
fNy;++ui){
1424 for(ui=0;ui<
fNx*
fNy;++ui){
1431 for(ui=0; ui <
fNx*
fNy;++ui){
1446 for(ui=0;ui<
fNcols;++ui){
1473 if (selection && strlen(selection)) {
1489 if (!varexp)
return;
1493 nch = strlen(varexp);
1497 std::vector<TString> cnames;
1498 if (!strcmp(varexp,
"*")) {
fNcols = nleaves; allvar = 1; }
1499 if (nch == 0 || allvar) {
1502 for (
UInt_t ui=0;ui<ncs;++ui) {
1505 cnames.push_back(lf->
GetName());
char * Form(const char *fmt,...)
static struct mg_connection * fc(struct mg_context *ctx)
Fill Area Attributes class.
virtual Color_t GetFillColor() const
Return the fill area color.
virtual Style_t GetFillStyle() const
Return the fill area style.
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
virtual void SetFillStyle(Style_t fstyle)
Set the fill area style.
virtual Color_t GetLineColor() const
Return the line color.
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
virtual Width_t GetLineWidth() const
Return the line width.
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
virtual Style_t GetLineStyle() const
Return the line style.
virtual Float_t GetTextSize() const
Return the text size.
virtual void SetTextAlign(Short_t align=11)
Set the text alignment.
virtual void SetTextSize(Float_t tsize=1)
Set the text size.
TObjArray * GetListOfBranches()
void Clear(Option_t *option="") override
Remove all primitives from the canvas.
TVirtualPad * cd(Int_t subpadnumber=0) override
Set current canvas & pad.
virtual void Selected(TVirtualPad *pad, TObject *obj, Int_t event)
Emit Selected() signal.
void Update() override
Update canvas pad buffers.
virtual void Draw(Option_t *option="")
Draw this ellipse with its current attributes.
A List of entry numbers in a TTree or TChain.
virtual Long64_t GetN() const
virtual void SetValue(const char *name, const char *value, EEnvLevel level=kEnvChange, const char *type=nullptr)
Set the value of a resource or create a new resource.
void SetNdivPolar(Int_t Ndiv=508)
Set the number of Polar divisions: enter a number ij with 0<i<99 and 0<j<99.
void Draw(Option_t *options="")
Draw Polargram.
void SetNdivRadial(Int_t Ndiv=508)
Set the number of radial divisions: enter a number ij with 0<i<99 and 0<j<99.
To draw Mathematical Formula.
virtual void PaintLatex(Double_t x, Double_t y, Double_t angle, Double_t size, const char *text)
Main drawing function.
A TLeaf describes individual elements of a TBranch See TBranch structure in TTree.
TBranch * GetBranch() const
virtual void Add(TObject *obj)
virtual TObject * Remove(TObject *obj)
Remove object from the list.
virtual TObject * At(Int_t idx) const
Returns the object at position idx. Returns 0 if idx is out of range.
virtual void AddAfter(const TObject *after, TObject *obj)
Insert object after object after in the list.
virtual void Delete(Option_t *option="")
Remove all objects from the list AND delete all heap based objects.
The TNamed class is the base class for all named ROOT classes.
virtual const char * GetName() const
Returns name of object.
Int_t GetEntriesFast() const
Int_t GetEntries() const
Return the number of objects in array (i.e.
TObject * At(Int_t idx) const
virtual void AppendPad(Option_t *option="")
Append graphics object to current pad.
virtual void Delete(Option_t *option="")
Delete this object.
virtual const char * GetTitle() const
Returns title of object.
void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0) override
Automatic pad generation by division.
void Modified(Bool_t flag=1) override
TCanvas * GetCanvas() const override
Defined by an array on N points in a 2-D space.
virtual void Draw(Option_t *option="")
Draw this polyline with its current attributes.
A specialized TSelector for TTree::Draw.
virtual UInt_t SplitNames(const TString &varexp, std::vector< TString > &names)
Build Index array for names in varexp.
virtual void SetInputList(TList *input)
void SetAverageLineStyle(Style_t sty)
Set the LineStyle of the average.
TPolyLine * fAveragePoly
Polygon representing the average variables value.
void SetAverageFillColor(Color_t col)
Set the Fill Color of the average.
virtual void SetFillColor(Color_t col)
Set fill color.
UInt_t fNy
Number of vertical spider plots.
virtual void SetLineStyle(Style_t sty)
Set line style.
Bool_t fShowRange
Show range of variables or not.
TList * fInput
Used for fSelector.
void SetNx(UInt_t nx)
Set the X number of sub pads.
Double_t * fAve
[fNcols] Average value of each variable.
Style_t GetAverageLineStyle() const
Get the LineStyle of the average.
void GotoPrevious()
Go to the previous entries.
virtual void SetFillStyle(Style_t sty)
Set fill style.
TList * fSuperposed
Superposed spider plots.
virtual void SetLineColor(Color_t col)
Set lin color.
virtual void Paint(Option_t *options)
Paint the spider.
void DrawSlices(Option_t *options)
Draw the slices of the segment plot.
Long64_t fFirstEntry
First entry.
void UpdateView()
Update the polylines or the arcs for the current entries.
TTree * fTree
Pointer to the TTree to represent.
void SetNdivRadial(Int_t div)
Set number of radial divisions.
void SetCurrentEntries()
Set the current selected entries.
void AddVariable(const char *varexp)
Add a variable to the plot from its expression.
UInt_t fNcols
Number of variables.
void DrawPoly(Option_t *options)
Paint the polygon representing the current entry.
void DrawSlicesAverage(Option_t *options)
Draw the slices representing the average for the segment plot.
void GotoEntry(Long64_t e)
Go to a specified entry.
TCanvas * fCanvas
! Pointer to the mother pad.
Int_t fArraySize
Actual size of the arrays.
void SetAverageLineColor(Color_t col)
Set the LineColor of the average.
TArc ** fAverageSlices
! Average slices.
void SetSelectionExpression(const char *selexp)
Compile selection expression if there is one.
Long64_t fEntry
Present entry number in fTree.
void DeleteVariable(const char *varexp)
Delete a variable from its expression.
void SetAverageLineWidth(Width_t wid)
Set the LineWidth of the average.
TTreeFormulaManager * fManager
Coordinator for the formulas.
Width_t GetAverageLineWidth() const
Get the LineWidth of the average.
TList * fFormulas
List of all formulas to represent.
Color_t GetAverageLineColor() const
Get the LineColor of the average.
TTreeFormula * fSelect
Selection condition.
void InitVariables(Long64_t firstentry, Long64_t nentries)
Browse the tree to set the min, max and average value of each variable of fVar.
void SetDisplayAverage(Bool_t disp)
Display or not the average.
Int_t FindTextAlign(Double_t theta)
Find the alignement rule to apply for TText::SetTextAlign(Short_t).
void SetVariablesExpression(const char *varexp)
Compile the variables expression from the given string varexp.
void SetAverageFillStyle(Style_t sty)
Set the FillStyle of the average.
TSelectorDraw * fSelector
! Selector.
TSpider()
Default constructor.
Double_t FindTextAngle(Double_t theta)
Determine the orientation of the polar labels according to their angle.
void SetSegmentDisplay(Bool_t seg)
Set the segment display or not.
Color_t GetAverageFillColor() const
Get the Fill Color of the average.
void SyncFormulas()
Create a TreeFormulaManager to coordinate the formulas.
void AddSuperposed(TSpider *sp)
Allow to superpose several spider views.
Double_t * fMax
[fNcols] Maximum value of the variables.
Double_t * fMin
[fNcols] Minimum value of the variables.
UInt_t fNx
Number of horizontal spider plots.
void SetNy(UInt_t ny)
Set the Y number of sub pads.
Bool_t fSegmentDisplay
True if displaying a segment plot.
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Compute the distance to the spider.
Bool_t fAngularLabels
True if the labels are oriented according to their axis.
virtual void SetLineWidth(Width_t wid)
Set line width.
Bool_t fForceDim
Force dimension.
void InitArrays(Int_t newsize)
Check if the arrays size is enough and reallocate them if not.
virtual void Draw(Option_t *options="")
Draw the spider.
Long64_t fNentries
Number of entries.
Style_t GetAverageFillStyle() const
Get the FillStyle of the average.
TGraphPolargram * fPolargram
Polar graph.
void GotoNext()
Go to the next entries.
void DrawPolyAverage(Option_t *options)
Paint the Polygon representing the average value of the variables.
Long64_t * fCurrentEntries
![fNx*fNy] current selected entries;
Bool_t fDisplayAverage
Display or not the average.
TList * fPolyList
Polygons representing the variables.
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Execute the corresponding event.
void GotoPreceding()
Go to the last entry.
Long64_t GetEntriesToProcess(Long64_t firstentry, Long64_t nentries) const
return the number of entries to be processed this function checks that nentries is not bigger than th...
void GotoFollowing()
Go to the next entry.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
A TTree represents a columnar dataset.
virtual Int_t GetScanField() const
virtual TObjArray * GetListOfLeaves()
virtual TEntryList * GetEntryList()
Returns the entry list assigned to this tree.
virtual Long64_t GetEntryNumber(Long64_t entry) const
Return entry number corresponding to entry.
virtual Long64_t LoadTree(Long64_t entry)
Set current entry.
virtual Long64_t GetEntriesFriend() const
Return pointer to the 1st Leaf named name in any Branch of this Tree or any branch in the list of fri...
virtual Int_t GetTreeNumber() const
virtual void SetScanField(Int_t n=50)
void Clear(Option_t *option="") override=0