18#include "RConfigure.h"
21#include "TObjString.h"
22#include "TVirtualPad.h"
35#include "TAttMarker.h"
36#include "TPaveStats.h"
37#include "TBufferXML.h"
136 auto cl = TClass::GetClass<T>();
137 if (!obj || !cl)
return nullptr;
138 auto shift = obj->IsA()->GetBaseClassOffset(cl);
139 if (shift < 0)
return nullptr;
140 return (T *)((
char *) obj + shift);
182 fiNDivX = (ndivx < 1) ? 1 : ndivx;
183 fiNDivY = (ndivy < 1) ? 1 : ndivy;
235 for (Int_t n = 0; n < numlines; n++)
241 Int_t n0, Int_t n1, Int_t n2, Int_t n3, Int_t n4,
242 Int_t n5, Int_t n6, Int_t n7, Int_t n8, Int_t n9)
244 const Int_t numbers[10] = { n0, n1, n2, n3, n4, n5, n6, n7, n8, n9};
252 if (!sub)
return nullptr;
274 AddObject(posy, posx, histo, DrawOption);
314 fxNames->Add(
new TObjString(name));
364 if (!
fxNames || (n < 0) || (n >
fxNames->GetLast()))
return nullptr;
365 TObjString* str =
dynamic_cast<TObjString*
> (
fxNames->At(n));
366 return str ? str->String().Data() :
nullptr;
378 AddObjName(posy, posx, obj->GetName(), DrawOption);
531 if (!line)
return kFALSE;
533 Long_t color = -111, style = -111, width = -111;
537 return (color!=-111) && (style!=-111) && (width!=-111);
565 if (!fill)
return kFALSE;
567 Long_t color = -111, style = -111;
570 return (color != -111) && (style != -111);
599 if (!marker)
return kFALSE;
601 Long_t color = -111, size = -111, style = -111;
605 return (color != -111) && (size != -111) && (style != -111);
695 if ((naxis<0) || (naxis>2))
return;
707 if ((naxis<0) || (naxis>2))
return;
787 if ((naxis<0) || (naxis>2))
return;
805 if (decimals) bits = bits | 1;
807 if (strchr(ticks,
'+')) bits = bits | 2;
808 if (strchr(ticks,
'-')) bits = bits | 4;
817 axis->GetAxisColor(),
818 axis->GetLabelColor(),
819 axis->GetLabelFont(),
820 axis->GetLabelOffset(),
821 axis->GetLabelSize(),
822 axis->GetNdivisions(),
823 axis->GetTickLength(),
824 axis->GetTitleColor(),
825 axis->GetTitleFont(),
826 axis->GetTitleOffset(),
827 axis->GetTitleSize(),
830 axis->TestBits(0x0ff0),
840 if (!axis || (naxis<0) || (naxis>2))
return;
848 if (
GetOption (index, op+0, lv)) axis->SetAxisColor(lv);
849 if (
GetOption (index, op+1, lv)) axis->SetLabelColor(lv);
850 if (
GetOption (index, op+2, lv)) axis->SetLabelFont(lv);
851 if (
GetOptionF(index, op+3, fv)) axis->SetLabelOffset(fv);
852 if (
GetOptionF(index, op+4, fv)) axis->SetLabelSize(fv);
853 if (
GetOption (index, op+5, lv)) axis->SetNdivisions(lv);
854 if (
GetOptionF(index, op+6, fv)) axis->SetTickLength(fv);
855 if (
GetOption (index, op+7, lv)) axis->SetTitleColor(lv);
856 if (
GetOption (index, op+8, lv)) axis->SetTitleFont(lv);
857 if (
GetOptionF(index, op+9, fv)) axis->SetTitleOffset(fv);
858 if (
GetOptionF(index, op+10, fv)) axis->SetTitleSize(fv);
860 axis->SetDecimals((lv & 1) != 0);
862 if ((lv & 2) != 0) ticks+=
"+";
863 if ((lv & 4) != 0) ticks+=
"-";
864 axis->SetTicks(ticks.Data());
865 for(
int n=9;n<24;n++) {
868 axis->SetBit(mask, (lv & mask) != 0);
906 pad->GetBorderSize(),
947 if ((TMath::Abs( pad->GetLeftMargin() - gStyle->GetPadLeftMargin()) > 0.001) ||
948 (TMath::Abs( pad->GetTopMargin() - gStyle->GetPadTopMargin()) > 0.001) ||
949 (TMath::Abs( pad->GetRightMargin() - gStyle->GetPadRightMargin()) > 0.001) ||
950 (TMath::Abs( pad->GetBottomMargin() - gStyle->GetPadBottomMargin()) > 0.001))
951 SetFrameAttr(pad->GetLeftMargin(), pad->GetTopMargin(), pad->GetRightMargin(), pad->GetBottomMargin());
956 if (!pad)
return kFALSE;
979 Int_t optstat,
const char *statformat,
980 Int_t optfit,
const char *fitformat)
997 stats->GetX2NDC(), stats->GetY2NDC(),
998 stats->GetOptStat(), stats->GetStatFormat(),
999 stats->GetOptFit(), stats->GetFitFormat());
1004 if (!stats)
return kFALSE;
1006 Double_t x1, y1, x2, y2;
1011 stats->SetX1NDC(x1);
1012 stats->SetY1NDC(y1);
1013 stats->SetX2NDC(x2);
1014 stats->SetY2NDC(y2);
1015 stats->ConvertNDCtoPad();
1018 Long_t optstat, optfit;
1020 stats->SetOptStat(optstat);
1023 stats->SetOptFit(optfit);
1026 if (fmtstat) stats->SetStatFormat(fmtstat);
1029 if (fmtfit) stats->SetFitFormat(fmtfit);
1073 titl->GetX2NDC(), titl->GetY2NDC(),
1074 titl->GetTextSize());
1087 if (!titl)
return kFALSE;
1089 Double_t x1, y1, x2, y2, sz = 0.;
1098 titl->ConvertNDCtoPad();
1102 titl->SetTextSize(sz);
1104 titl->SetTextSize(0);
1259 if ((numdim==1) && !
GetRange(1, min, max)) {
1263 if ((numdim==2) && !
GetRange(1, min, max)) {
1323 for (
int n = 0; n < 3; n++)
1339 if (!source)
return;
1342 SetName(source->GetName());
1343 SetTitle(source->GetTitle());
1361 for (Int_t n = 0; n <= source->
fxSubPictures->GetLast(); n++) {
1402 Long_t zn = index + 1 + (typ << 16);
1411 Long_t zn = index + 1 + (typ << 16);
1433 if (pos < 0)
return kFALSE;
1441 if (!
GetOption(index, typ, value))
return def;
1451 memcpy(&buf, &v,
sizeof(Long_t));
1453 memcpy(&buf, &value,
sizeof(Long_t));
1461 Bool_t res =
GetOption(index, typ, buf);
1466 memcpy(&v, &buf,
sizeof(Long_t));
1469 memcpy(&value, &buf,
sizeof(Long_t));
1479 memcpy(&buf, &value,
sizeof(Long_t));
1482 memcpy(&buf, &v,
sizeof(Long_t));
1490 Bool_t res =
GetOption(index, typ, buf);
1494 memcpy(&value, &buf,
sizeof(Long_t));
1497 memcpy(&v, &buf,
sizeof(Long_t));
1507 if (!
GetOptionD(index, typ, value))
return def;
1535 if (pos < 0)
return nullptr;
1547 TObjString *ostr =
dynamic_cast<TObjString*
> (
GetObjOption(index, typ));
1548 if (!ostr)
return defvalue;
1549 return ostr->String().Data();
1576 if (pos < 0)
return nullptr;
1585 style =
new TStyle(*gStyle);
1598 if (pos < 0)
return;
1653 if (strcmp(
GetObjName(n), obj->GetName()) == 0)
1664 for (Int_t posx = 0; posx <
GetDivX(); posx++)
1665 for (Int_t posy = 0; posy <
GetDivY(); posy++) {
1672 TString str =
"Obj: ";
1675 if (!opt && (indx == 0))
1682 TText *txt =
new TText(0.1, txt_y, str.Data());
1688 txt_y -= 0.8 / numobj;
1694 TCanvas *c =
nullptr;
1699 c = gPad->GetCanvas();
1706 TString txt = c->GetName();
1709 if (strcmp(GetName(), GetTitle()) != 0) {
1713 c->SetTitle(txt.Data());
1721 for (
int n = 0; n < shift; n++)
1724 std::cout <<
"Divided numx:" <<
GetDivX() <<
" numy:" <<
GetDivY() << std::endl;
1725 for (Int_t posx = 0; posx <
GetDivX(); posx++)
1726 for (Int_t posy = 0; posy <
GetDivY(); posy++) {
1727 for (
int n = 0; n < shift + 2; n++)
1729 std::cout <<
"subpic x:" << posx <<
" y:" << posy << std::endl;
1735 std::cout <<
"Objects:" << std::endl;
1738 for (
int n = 0; n < shift + 2; n++)
1740 std::cout << objname;
1744 std::cout <<
" opt: " << drawopt;
1745 std::cout << std::endl;
1749 for (
int n = 0; n < shift; n++)
1751 std::cout <<
"Options:" << std::endl;
1752 for (Int_t nop = 0; nop <
fiOptSize; nop++) {
1755 for (
int n = 0; n < shift + 2; n++)
1757 std::cout << indx <<
" " << op <<
" " <<
fxOptValue[nop] << std::endl;
1764 std::cout <<
"Picture " << GetName() << std::endl;
1790 TObject *obj = TBufferXML::ConvertFromXML(xmlcode);
1796 Long_t sz = IsA()->Size();
1799 sz += TObjArray::Class()->Size() +
fxNames->GetSize() *
sizeof(
void *);
1800 for (
int n = 0; n <=
fxNames->GetLast(); n++) {
1801 TObjString *str = (TObjString *)
fxNames->At(n);
1802 if (str) sz += str->IsA()->Size() + str->GetString().Length();
1807 sz += TObjArray::Class()->Size() +
fxSubPictures->GetSize() *
sizeof(
void *);
1810 sz += TObjArray::Class()->Size() +
fxOptObjects->GetSize() *
sizeof(
void *);
1813 if (obj) sz += obj->IsA()->Size();
1818 sz += TList::Class()->Size();
1821 while (
auto obj = iter())
1822 sz +=
sizeof(TObjLink) + obj->IsA()->Size();
1829 for (
int ny = 0; ny <
GetDivY(); ny++)
1830 for (
int nx = 0; nx <
GetDivX(); nx++)
1839 fs <<
"TGo4Picture *" << GetName() <<
" = new TGo4Picture(\"" << GetName()
1840 <<
"\", \"" << GetTitle() <<
"\");" << std::endl;
1841 TString name = GetName();
1844 fs << name <<
"SetCrosshair(" << (
IsCrosshair() ?
"true" :
"false") <<
");" << std::endl;
1851 if ((naxis<0) || (naxis>2))
return;
1852 const char *axisname =
"X";
1854 if (naxis==1) { op =
op_AxisY; axisname =
"Y"; }
else
1855 if (naxis==2) { op =
op_AxisZ; axisname =
"Z"; }
1859 if (!
GetOption (index, op+0, lv))
return;
1861 fs << name <<
"SetAxisAtt(" << naxis <<
", ";
1863 if (!
GetOption (index, op+1, lv)) lv = gStyle->GetLabelColor(axisname);
1865 if (!
GetOption (index, op+2, lv)) lv = gStyle->GetLabelFont(axisname);
1867 if (!
GetOptionF(index, op+3, fv)) fv = gStyle->GetLabelOffset(axisname);
1869 if (!
GetOptionF(index, op+4, fv)) fv = gStyle->GetLabelSize(axisname);
1871 if (!
GetOption (index, op+5, lv)) lv = gStyle->GetNdivisions(axisname);
1873 if (!
GetOptionF(index, op+6, fv)) fv = gStyle->GetTickLength(axisname);
1875 if (!
GetOption (index, op+7, lv)) lv = gStyle->GetTitleColor(axisname);
1877 if (!
GetOption (index, op+8, lv)) lv = gStyle->GetTitleFont(axisname);
1879 if (!
GetOptionF(index, op+9, fv)) fv = gStyle->GetTitleOffset(axisname);
1881 if (!
GetOptionF(index, op+10, fv)) fv = gStyle->GetTitleSize(axisname);
1885 if ((lv & 1) != 0) fs <<
"kTRUE, ";
1886 else fs <<
"kFALSE, ";
1888 if ((lv & 2) != 0) ticks+=
"+";
1889 if ((lv & 4) != 0) ticks+=
"-";
1890 fs <<
"\"" << ticks <<
"\", ";
1891 fs << (lv & 0x0ff0) <<
", ";
1893 fs <<
"kTRUE, \"+\", 0, ";
1895 fs << index <<
");" << std::endl;
1916 for (Int_t naxis = 0; naxis < 3; naxis++)
1918 fs << name <<
"SetLogScale(" << naxis <<
", 1);" << std::endl;
1922 fs << name <<
"SetRangeX(" << min <<
", " << max <<
");" << std::endl;
1924 fs << name <<
"SetRangeY(" << min <<
", " << max <<
");" << std::endl;
1926 fs << name <<
"SetRangeZ(" << min <<
", " << max <<
");" << std::endl;
1928 Double_t v1,v2,v3,v4;
1933 fs << name <<
"SetFrameAttr(" << v1 <<
", " << v2 <<
", " << v3 <<
", " << v4 <<
");" << std::endl;
1940 fs << name <<
"SetLineAtt("
1941 << latt.GetLineColor() <<
", "
1942 << latt.GetLineStyle() <<
", "
1943 << latt.GetLineWidth() <<
", " <<
PictureIndex <<
");" << std::endl;
1945 fs << name <<
"SetFillAtt("
1946 << fatt.GetFillColor() <<
", "
1947 << fatt.GetFillStyle() <<
", " <<
PictureIndex <<
");" << std::endl;
1949 fs << name <<
"SetMarkerAtt("
1950 << matt.GetMarkerColor() <<
", "
1951 << matt.GetMarkerSize() <<
", "
1952 << matt.GetMarkerStyle()<<
", " <<
PictureIndex <<
");" << std::endl;
1954 fs << name <<
"SetHisStats(" << (
IsHisStats() ?
"true" :
"false") <<
");" << std::endl;
1957 fs << name <<
"SetStatsAttr("
1968 fs << name <<
"SetHisTitle(" << (
IsHisTitle() ?
"true" :
"false") <<
");" << std::endl;
1970 fs << name <<
"SetTitleAttr("
1980 fs <<
");" << std::endl;
1982 fs << name <<
"SetTitleTime(" << (
IsTitleTime() ?
"true" :
"false") <<
");" << std::endl;
1983 fs << name <<
"SetTitleDate(" << (
IsTitleDate() ?
"true" :
"false") <<
");" << std::endl;
1984 fs << name <<
"SetTitleItem(" << (
IsTitleItem() ?
"true" :
"false") <<
");" << std::endl;
1988 if (nlvl > 0) fs << name <<
"SetHisContour(" << nlvl <<
");" << std::endl;
1990 fs << name <<
"SetAutoScale(" << (
IsAutoScale() ?
"true" :
"false") <<
");" << std::endl;
1993 fs << name <<
"SetSuperimpose(true);" << std::endl;
1994 fs << name <<
"SetLegendDraw(" << (
IsLegendDraw() ?
"true" :
"false") <<
");" << std::endl;
1997 fs << name <<
"SetApplyToAll(" << (
IsApplyToAll() ?
"true" :
"false") <<
");" << std::endl;
1998 fs << name <<
"SetAutoZoom(" << (
IsAutoZoom() ?
"true" :
"false") <<
");" << std::endl;
2001 fs << name <<
"SetXYRatioOne(" << (
IsXYRatioOne() ?
"true" :
"false") <<
");" << std::endl;
2006 fs << name <<
"SetPadAtt(";
2022 fs << lv <<
");" << std::endl;
2026 fs << name <<
"SetDrawOption(\"" << drawopt <<
"\", " <<
PictureIndex <<
");" << std::endl;
2029 Bool_t tdisp=kFALSE;
2032 fs << name <<
"SetXAxisAttTime(";
2033 fs << tdisp <<
", ";
2034 fs <<
"\"" << format.Data()<<
"\"" <<
", ";
2041 fs << name <<
"AddObjName(\"" << objname <<
"\"";
2042 if (objopt) fs <<
", \"" << objopt <<
"\"";
2043 fs <<
");" << std::endl;
2045 fs << name <<
"SetLineAtt("
2046 << latt.GetLineColor() <<
", "
2047 << latt.GetLineStyle() <<
", "
2048 << latt.GetLineWidth() <<
", " << indx <<
");" << std::endl;
2050 fs << name <<
"SetFillAtt("
2051 << fatt.GetFillColor() <<
", "
2052 << fatt.GetFillStyle() <<
", " << indx <<
");" << std::endl;
2054 fs << name <<
"SetMarkerAtt("
2055 << matt.GetMarkerColor() <<
", "
2056 << matt.GetMarkerSize() <<
", "
2057 << matt.GetMarkerStyle() <<
", " << indx <<
");" << std::endl;
2064 fs << name <<
"SetRebinX(" <<
GetRebinX(indx) <<
", " << indx <<
");" << std::endl;
2067 fs << name <<
"SetRebinY(" <<
GetRebinY(indx) <<
", " << indx <<
");" << std::endl;
2071 while (
auto obj = iter()) {
2073 TString xmlbuf = TBufferXML::ConvertToXML(obj);
2075 TString buf = xmlbuf;
2079 buf.ReplaceAll(
"\n ",
"\n");
2080 }
while (len!=buf.Length());
2082 buf.ReplaceAll(
"\n",
" ");
2083 buf.ReplaceAll(
"\"",
"\\\"");
2088 if (buf.Length()>950) {
2089 fs <<
"TString sbuf = \"\";" << std::endl;
2090 const char *pos = xmlbuf.Data();
2092 const char *lastpos = pos;
2093 while ((*pos != 0) && (*pos!=
'\n')) pos++;
2094 TString subbuf(lastpos, pos-lastpos);
2095 subbuf.ReplaceAll(
"\"",
"\\\"");
2096 fs <<
"TGo4Picture::Add(sbuf,\"" << subbuf <<
"\");" << std::endl;
2097 if (*pos == 0)
break;
2103 fs << name <<
"AddSpecialObjectXml(" << buf;
2105 Option_t *opt = iter.GetOption();
2107 if (opt && (*opt != 0))
2108 fs <<
", \"" << opt <<
"\"";
2109 fs <<
");" << std::endl;
2113 fs << name <<
"SetDivision(" <<
GetDivY() <<
", " <<
GetDivX() <<
");" << std::endl;
2114 for (
int ny = 0; ny <
GetDivY(); ny++)
2115 for (
int nx = 0; nx <
GetDivX(); nx++) {
2116 TString subname = name;
Int_t GetNumObjNames() const
Bool_t GetStatsAttr(TPaveStats *stats) const
Bool_t GetOptionD(Short_t index, Short_t typ, Double_t &value) const
void ClearOption(Short_t index, Short_t typ)
Bool_t IsXYRatioOne() const
void SetOptionF(Short_t index, Short_t typ, Float_t value)
Bool_t GetLineAtt(TAttLine *line, Int_t index=UndefIndex) const
void DrawPic(TVirtualPad *pad)
TList * GetSpecialObjects() const
Bool_t IsTitleDate() const
void SetHisStats(Bool_t on)
void SetLogScale(Int_t nscale=0, Int_t zn=1)
void SetOptionD(Short_t index, Short_t typ, Double_t value)
void SetRebinY(Int_t ngroupy, Int_t index=UndefIndex)
void SetAxisLabelFontSize(Int_t naxis, Float_t LabelSize, Int_t index=UndefIndex)
void SetPosition(Int_t posy, Int_t posx)
void SetSuperimpose(bool on)
Bool_t GetFillAtt(TAttFill *fill, Int_t index=UndefIndex) const
void ClearRange(Int_t naxis=-1)
void ClearObjNames(Bool_t recursive=kFALSE)
Int_t GetRebinX(Int_t index=UndefIndex) const
void CopyOptionsFrom(TGo4Picture *source)
Bool_t IsHisStats() const
void ClearMarkerAtt(Int_t index=UndefIndex)
void SetRebinX(Int_t ngroupx, Int_t index=UndefIndex)
Int_t GetLogScale(Int_t nscale=0) const
Double_t GetD(Short_t index, Short_t typ, Double_t def=0.) const
void SetRange(Int_t naxis, Double_t min, Double_t max)
void SetLinesDivision(Int_t numlines, const Int_t *numbers)
void SetXAxisTimeDisplay(Bool_t on)
void SetCrosshair(bool on)
void UpdateFrom(TGo4Picture *source, TClass *selectedobjclass=nullptr)
void CheckIndex(Int_t &index) const
void AddObject(TObject *obj, Option_t *DrawOption=nullptr)
void SetXAxisTimeFormat(const char *format)
void SetRangeY(Double_t min, Double_t max)
Option_t * GetDrawOption() const override
void SetPadModified(bool on=true)
void SetAxisTitleFontSize(Int_t naxis, Float_t TitleSize, Int_t index=UndefIndex)
void SetHisTitle(bool on)
void SetApplyToAll(bool on)
TStyle * GetStyle(Int_t index=UndefIndex)
void AddObjName(const char *name, Option_t *DrawOption=nullptr)
void SetPadAtt(Int_t BorderMode, Int_t BorderSize, Int_t Gridx, Int_t Gridy, Double_t Phi, Double_t Theta, Int_t Tickx, Int_t Ticky, Int_t index=PictureIndex)
void SetMarkerAtt(Color_t color, Size_t size, Style_t style, Int_t index=UndefIndex)
TGo4Picture * LPic(Int_t nline, Int_t ncol)
void GetDrawAttributes(TObject *obj, Int_t index=UndefIndex) const
const char * GetObjName(Int_t n) const
TGo4Picture * FindPic(Int_t posy, Int_t posx)
Bool_t GetOption(Short_t index, Short_t typ, Long_t &value) const
void SetAxisAtt(Int_t naxis, Color_t AxisColor, Color_t LabelColor, Style_t LabelFont, Float_t LabelOffset, Float_t LabelSize, Int_t Ndivisions, Float_t TickLength, Color_t TitleColor, Style_t TitleFont, Float_t TitleOffset, Float_t TitleSize, Bool_t decimals, const char *ticks, Int_t bits, Int_t index=UndefIndex)
void AddSubPicture(TGo4Picture *pic)
void SetTitleAttr(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Double_t textsize=0.)
void SetFillAtt(Color_t color, Style_t style, Int_t index=UndefIndex)
Bool_t GetFullRange(Int_t naxis, Double_t &min, Double_t &max) const
Bool_t IsObjNames() const
void AddHStack(THStack *st, Option_t *DrawOption=nullptr)
void ClearAllOptions(Short_t index=UndefIndex)
TObject * GetObjOption(Short_t index, Short_t typ) const
Bool_t GetRangeY(Double_t &min, Double_t &max) const
void GetAxisAtt(Int_t naxis, TAxis *axis, Int_t index=UndefIndex) const
void SetXAxisAttTime(Bool_t timedisplay, const char *format, Int_t index=UndefIndex)
TStyle * FindStyle(Int_t index=UndefIndex)
Int_t GetFullRangeDim() const
Int_t GetObjAttIndex(TObject *obj) const
void SetDrawAttributes(TObject *obj, Int_t index=UndefIndex)
const char * GetStrOption(Short_t index, Short_t typ, const char *defvalue=nullptr) const
void SetLineAtt(Color_t color, Style_t style, Width_t width, Int_t index=UndefIndex)
Bool_t GetMarkerAtt(TAttMarker *marker, Int_t index=UndefIndex) const
void SetStatsAttr(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Int_t optstat=1111, const char *statformat="6.4g", Int_t optfit=1111, const char *fitformat="5.4g")
Long_t GetTotalSize()
Returns total size, used by picture in memory.
void AddCondition(TNamed *cond=nullptr)
void GetLogScales(TVirtualPad *pad)
void SetContentModified(bool on=true)
void SetDrawOption(Option_t *option="") override
bool IsPadModified() const
Int_t GetHisContour() const
void SetTitleItem(Bool_t on=kTRUE)
void AddSpecialObjectXml(const char *xmlcode, Option_t *drawopt=nullptr)
void SetH1Att(TH1 *h1, Int_t index=UndefIndex)
void SetOption(Short_t index, Short_t typ, Long_t value)
Bool_t IsHisTitle() const
void ClearFullRange(Int_t naxis=-1)
Long_t GetI(Short_t index, Short_t typ, Long_t def=0) const
void Clear(Option_t *option="") override
Bool_t IsXAxisTimeDisplay() const
void GetPadAtt(TPad *pad, Int_t index=UndefIndex) const
void SetStyle(TStyle *style, Int_t index=UndefIndex)
Bool_t CheckPosition(Int_t posy, Int_t posx) const
void ChangeDrawOption(Int_t kind, Int_t value)
Int_t ExtendOptPos(Short_t index, Short_t typ)
bool IsLegendDraw() const
bool IsSuperimpose() const
void PrintPic(int shift, Bool_t showopt)
void SetFrameAttr(Double_t left, Double_t top, Double_t right, Double_t bottom)
void SetAutoZoom(bool on)
Int_t GetRebinY(Int_t index=UndefIndex) const
void SetObjOption(Short_t index, Short_t typ, TObject *obj)
void MakeAxisScript(std::ostream &fs, const char *name, Int_t indx, Int_t naxis)
void Print(Option_t *option="") const override
void AddH1(TH1 *histo, Option_t *DrawOption=nullptr)
void AddGraph(TGraph *gr, Option_t *DrawOption=nullptr)
Bool_t GetFrameAttr(TPad *pad) const
void AddSpecialObject(TObject *obj, Option_t *drawopt=nullptr)
void SetTitleTime(Bool_t on=kTRUE)
void ClearLineAtt(Int_t index=UndefIndex)
TObjArray * fxSubPictures
Bool_t GetRangeZ(Double_t &min, Double_t &max) const
void ClearRebin(Int_t index=UndefIndex)
Int_t FindOptPos(Short_t index, Short_t typ) const
void SetLegendDraw(bool on)
void ClearFillAtt(Int_t index=UndefIndex)
Bool_t IsDrawHeader() const
const char * GetXAxisTimeFormat() const
void Draw(Option_t *option="") override
void SetDrawHeader(Bool_t draw=kTRUE)
void GetH1Att(TH1 *h1, Int_t index=UndefIndex) const
void SetTitleDate(Bool_t on=kTRUE)
TGo4Picture * Pic(Int_t posy, Int_t posx)
void SetFullRange(Int_t naxis, Double_t min, Double_t max)
void SetXYRatioOne(Bool_t on)
void SetRangeX(Double_t min, Double_t max)
Bool_t GetOptionF(Short_t index, Short_t typ, Float_t &value) const
void MakeScript(std::ostream &fs, const char *name)
Bool_t GetTitleAttr(TPaveText *title) const
void SavePrimitive(std::ostream &fs, Option_t *opt="") override
Bool_t GetRangeX(Double_t &min, Double_t &max) const
Bool_t GetRange(Int_t naxis, Double_t &min, Double_t &max) const
void SetAutoScale(bool on)
void SetHisContour(Int_t nlvl)
bool IsContentModified() const
void SetDivision(Int_t ndivy, Int_t ndivx)
bool IsApplyToAll() const
void SetStrOption(Short_t index, Short_t typ, const char *value)
Bool_t IsTitleItem() const
Bool_t IsTitleTime() const
void SetRangeZ(Double_t min, Double_t max)
void SetFullRangeDim(Int_t ndim)