127 gROOT->GetListOfCleanups()->Add(
this);
142 if (firstentry < 0 || firstentry > tree->
GetEstimate()) firstentry = 0;
216 if(!varexp[0])
return;
218 if(fvar->
GetNdim() <= 0)
return;
232 while(entriesToDisplay!=0){
234 if(entryNumber < 0)
break;
236 if(localEntry < 0)
break;
262 for(
Int_t inst=0;inst<ndata;++inst){
274 }
else if (inst == 0) {
333 for(ui = 0;ui<
fNcols;++ui){
358 for(ui=0; ui<
fNcols;++ui){
366 for(ui=var+1;ui<
fNcols;++ui){
371 fMin[fNcols-1] = DBL_MAX;
372 fMax[fNcols-1] = -DBL_MAX;
419 for(ui = 0;ui<
fNcols;++ui){
440 if(!
gPad)
return 9999;
442 xx=
gPad->AbsPixeltoX(px);
443 yy=
gPad->AbsPixeltoY(py);
472 for(ui=0;ui<
fNx*
fNy;++ui){
495 Int_t fillcolor=linecolor;
570 TArc* slice =
new TArc(0,0,r,(ui-0.25)*angle*conv,(ui+0.25)*angle*conv);
577 slice->
Draw(options);
589 Int_t fillstyle=3002;
591 Int_t fillcolor=linecolor;
679 while(angle < 0 || angle > 2*pi){
680 if(angle < 0) angle+=2*
pi;
681 if(angle > 2*pi) angle-=2*
pi;
684 if(angle > 0 && angle < pi/2)
return 11;
685 else if(angle > pi/2 && angle < pi)
return 31;
686 else if(angle > pi && angle < 3*pi/2)
return 33;
687 else if(angle > 3*pi/2 && angle < 2*pi)
return 13;
688 else if(angle == 0 || angle == 2*pi)
return 12;
689 else if(angle == pi/2)
return 21;
690 else if(angle == pi)
return 32;
691 else if(angle == 3*pi/2)
return 23;
695 if(angle >= 0 && angle < pi)
return 21;
696 else if(angle >=pi && angle <= 2*pi)
return 23;
709 while(angle < 0 || angle > 2*pi){
710 if(angle < 0) angle+=2*
pi;
711 if(angle > 2*pi) angle-=2*
pi;
714 if(angle >= 0 && angle <= pi/2)
return angle*convraddeg - 90;
715 else if(angle > pi/2 && angle <= pi)
return (angle + pi)*convraddeg + 90;
716 else if(angle > pi && angle <= 3*pi/2)
return (angle - pi)*convraddeg - 90;
717 else if(angle > 3*pi/2 && angle <= 2*pi)
return angle*convraddeg + 90;
728 Long64_t lastentry = firstentry + nentries - 1;
731 nentries = lastentry - firstentry + 1;
812 memmax[i] = -DBL_MAX;
851 while(entriesToDisplay!=0){
853 if(entryNumber < 0)
break;
855 if(localEntry < 0)
break;
880 for(
Int_t inst=0;inst<ndata;++inst){
890 for (ui=0;ui<
fNcols;ui++) {
894 }
else if (inst == 0) {
902 if(inst >
fMax[ui])
fMax[ui] = inst;
903 if(inst <
fMin[ui])
fMin[ui] = inst;
911 if (notSkipped) {
for(ui=0;ui<
fNcols;++ui)
fAve[ui]/=notSkipped;}
932 for(ui=0;ui<
fNx*
fNy;++ui){
1039 for(ui=0;ui<
fNx*
fNy;++ui){
1044 for(ui = 0; ui <
fNx*
fNy; ++ui){
1077 while(entriesToDisplay!=0){
1079 if(entryNumber < 0)
break;
1081 if(localEntry < 0)
break;
1095 for(ui=0;ui<
fNcols;++ui){
1106 for(
Int_t inst=0;inst<ndata;++inst){
1116 for (ui=0;ui<
fNcols;ui++) {
1120 }
else if (inst == 0) {
1141 for(ui=0; ui<
fNx*
fNy;++ui){
1157 for(ui=0; ui<
fNx*
fNy;++ui){
1173 for(ui=0; ui<
fNx*
fNy;++ui){
1189 for(ui=0; ui<
fNx*
fNy;++ui){
1205 for(ui=0; ui<
fNx*
fNy;++ui){
1227 if(
fNx == nx || nx <= 0)
return;
1268 for(ui=0; ui <
fNx*
fNy;++ui){
1283 for(ui = 0;ui<
fNcols;++ui){
1304 if(
fNy == ny || ny <= 0)
return;
1345 for(ui=0; ui <
fNx*
fNy;++ui){
1360 for(ui = 0;ui<
fNcols;++ui){
1386 for(ui=0;ui<
fNx*
fNy;++ui){
1423 for(ui=0;ui<
fNx*
fNy;++ui){
1430 for(ui=0; ui <
fNx*
fNy;++ui){
1445 for(ui=0;ui<
fNcols;++ui){
1472 if (selection && strlen(selection)) {
1488 if (!varexp)
return;
1492 nch = strlen(varexp);
1496 std::vector<TString> cnames;
1497 if (!strcmp(varexp,
"*")) {
fNcols = nleaves; allvar = 1; }
1498 if (nch == 0 || allvar) {
1501 for (
UInt_t ui=0;ui<ncs;++ui) {
1504 cnames.push_back(lf->
GetName());
virtual void SetLineColor(Color_t col)
Set lin color.
virtual const char * GetName() const
Returns name of object.
void DrawPoly(Option_t *options)
Paint the polygon representing the current entry.
A TLeaf describes individual elements of a TBranch See TBranch structure in TTree.
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
virtual void Selected(TVirtualPad *pad, TObject *obj, Int_t event)
Emit Selected() signal.
virtual void Delete(Option_t *option="")
Remove all objects from the list AND delete all heap based objects.
void SetAverageLineStyle(Style_t sty)
Set the LineStyle of the average.
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Compute the distance to the spider.
static constexpr double pi
virtual Long64_t GetN() const
void GotoPrevious()
Go to the previous entries.
virtual Int_t GetScanField() const
TList * fFormulas
Pointer to the mother pad.
Int_t FindTextAlign(Double_t theta)
Find the alignement rule to apply for TText::SetTextAlign(Short_t).
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Execute the corresponding event.
Style_t GetAverageFillStyle() const
Get the FillStyle of the average.
virtual TEntryList * GetEntryList()
Returns the entry list, set to this tree.
void SetSegmentDisplay(Bool_t seg)
Set the segment display or not.
virtual void SetLineWidth(Width_t wid)
Set line width.
void Draw(Option_t *options="")
Draw Polargram.
TVirtualPad * cd(Int_t subpadnumber=0)
Set current canvas & pad.
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 DrawSlicesAverage(Option_t *options)
Draw the slices representing the average for the segment plot.
Long64_t * fCurrentEntries
virtual void SetFillStyle(Style_t fstyle)
Set the fill area style.
TObject * At(Int_t idx) const
Color_t GetAverageFillColor() const
Get the Fill Color of the average.
virtual void SetInputList(TList *input)
virtual Width_t GetLineWidth() const
Return the line width.
void GotoNext()
Go to the next entries.
void UpdateView()
Update the polylines or the arcs for the current entries.
void DeleteVariable(const char *varexp)
Delete a variable from its expression.
virtual void SetValue(const char *name, const char *value, EEnvLevel level=kEnvChange, const char *type=0)
Set the value of a resource or create a new resource.
virtual void AppendPad(Option_t *option="")
Append graphics object to current pad.
TCanvas * fCanvas
Average slices.
virtual Style_t GetLineStyle() const
Return the line style.
static struct mg_connection * fc(struct mg_context *ctx)
Style_t GetAverageLineStyle() const
Get the LineStyle of the average.
Fill Area Attributes class.
The TNamed class is the base class for all named ROOT classes.
virtual Float_t GetTextSize() const
Return the text size.
void SetNdivRadial(Int_t div)
Set number of radial divisions.
virtual Long64_t LoadTree(Long64_t entry)
Set current entry.
To draw Mathematical Formula.
void Clear(Option_t *option="")
Remove all primitives from the canvas.
virtual void Paint(Option_t *options)
Paint the spider.
void SetNx(UInt_t nx)
Set the X number of sub pads.
virtual void SetFillColor(Color_t col)
Set fill color.
TObjArray * GetListOfBranches()
virtual void PaintLatex(Double_t x, Double_t y, Double_t angle, Double_t size, const char *text)
Main drawing function.
void SetNdivRadial(Int_t Ndiv=508)
Set the number of radial divisions: enter a number ij with 0<i<99 and 0<j<99.
virtual void Draw(Option_t *option="")
Draw this ellipse with its current attributes.
virtual void SetFillStyle(Style_t sty)
Set fill style.
virtual void SetTextAlign(Short_t align=11)
Set the text alignment.
virtual Int_t GetTreeNumber() const
void SetAverageLineWidth(Width_t wid)
Set the LineWidth of the average.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
Double_t * fAve
[fNx*fNy] current selected entries;
virtual void Delete(Option_t *option="")
Delete this object.
void InitArrays(Int_t newsize)
Check if the arrays size is enough and reallocate them if not.
virtual Long64_t GetEntryNumber(Long64_t entry) const
Return entry number corresponding to entry.
virtual void Draw(Option_t *option="")
Draw this polyline with its current attributes.
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
virtual TObject * Remove(TObject *obj)
Remove object from the list.
void SetNy(UInt_t ny)
Set the Y number of sub pads.
Int_t GetEntriesFast() const
char * Form(const char *fmt,...)
virtual Long64_t GetEstimate() const
void SetVariablesExpression(const char *varexp)
Compile the variables expression from the given string varexp.
virtual TObject * At(Int_t idx) const
Returns the object at position idx. Returns 0 if idx is out of range.
void SetAverageFillColor(Color_t col)
Set the Fill Color of the average.
A specialized TSelector for TTree::Draw.
Width_t GetAverageLineWidth() const
Get the LineWidth of the average.
Bool_t fAngularLabels
Selector.
virtual Color_t GetLineColor() const
Return the line color.
void SetAverageFillStyle(Style_t sty)
Set the FillStyle of the average.
TGraphPolargram * fPolargram
void GotoFollowing()
Go to the next entry.
virtual Color_t GetFillColor() const
Return the fill area color.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
virtual void Draw(Option_t *options="")
Draw the spider.
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
void SetDisplayAverage(Bool_t disp)
Display or not the average.
void SyncFormulas()
Create a TreeFormulaManager to coordinate the formulas.
void GotoPreceding()
Go to the last entry.
virtual void SetLineStyle(Style_t sty)
Set line style.
void AddSuperposed(TSpider *sp)
Allow to superpose several spider views.
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
virtual void AddAfter(const TObject *after, TObject *obj)
Insert object after object after in the list.
TTreeFormulaManager * fManager
virtual const char * GetTitle() const
Returns title of object.
void SetNdivPolar(Int_t Ndiv=508)
Set the number of Polar divisions: enter a number ij with 0<i<99 and 0<j<99.
virtual void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0)
Automatic pad generation by division.
virtual void Add(TObject *obj)
Color_t GetAverageLineColor() const
Get the LineColor of the average.
void DrawSlices(Option_t *options)
Draw the slices of the segment plot.
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 AddVariable(const char *varexp)
Add a variable to the plot from its expression.
Defined by an array on N points in a 2-D space.
Int_t GetEntries() const
Return the number of objects in array (i.e.
virtual UInt_t SplitNames(const TString &varexp, std::vector< TString > &names)
Build Index array for names in varexp.
A TTree object has a header with a name and a title.
virtual Style_t GetFillStyle() const
Return the fill area style.
virtual void SetTextSize(Float_t tsize=1)
Set the text size.
virtual void Update()
Update canvas pad buffers.
TBranch * GetBranch() const
TSpider()
Default constructor.
A List of entry numbers in a TTree or TChain.
Double_t FindTextAngle(Double_t theta)
Determine the orientation of the polar labels according to their angle.
void GotoEntry(Long64_t e)
Go to a specified entry.
static char * skip(char **buf, const char *delimiters)
virtual void SetScanField(Int_t n=50)
void SetCurrentEntries()
Set the current selected entries.
void SetAverageLineColor(Color_t col)
Set the LineColor of the average.
void Modified(Bool_t flag=1)
TSelectorDraw * fSelector
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 TObjArray * GetListOfLeaves()
void DrawPolyAverage(Option_t *options)
Paint the Polygon representing the average value of the variables.
void SetSelectionExpression(const char *selexp)
Compile selection expression if there is one.