18#include "RConfigure.h"
21#include "TObjString.h"
22#include "TVirtualPad.h"
36#include "TAttMarker.h"
37#include "TPaveStats.h"
38#include "TBufferXML.h"
137 auto cl = TClass::GetClass<T>();
138 if (!obj || !cl)
return nullptr;
139 auto shift = obj->IsA()->GetBaseClassOffset(cl);
140 if (shift < 0)
return nullptr;
141 return (T *)((
char *) obj + shift);
183 fiNDivX = (ndivx < 1) ? 1 : ndivx;
184 fiNDivY = (ndivy < 1) ? 1 : ndivy;
236 for (Int_t n = 0; n < numlines; n++)
242 Int_t n0, Int_t n1, Int_t n2, Int_t n3, Int_t n4,
243 Int_t n5, Int_t n6, Int_t n7, Int_t n8, Int_t n9)
245 const Int_t numbers[10] = { n0, n1, n2, n3, n4, n5, n6, n7, n8, n9};
253 if (!sub)
return nullptr;
275 AddObject(posy, posx, histo, DrawOption);
315 fxNames->Add(
new TObjString(name));
365 if (!
fxNames || (n < 0) || (n >
fxNames->GetLast()))
return nullptr;
366 TObjString* str =
dynamic_cast<TObjString*
> (
fxNames->At(n));
367 return str ? str->String().Data() :
nullptr;
379 AddObjName(posy, posx, obj->GetName(), DrawOption);
532 if (!line)
return kFALSE;
534 Long_t color = -111, style = -111, width = -111;
538 return (color!=-111) && (style!=-111) && (width!=-111);
566 if (!fill)
return kFALSE;
568 Long_t color = -111, style = -111;
571 return (color != -111) && (style != -111);
600 if (!marker)
return kFALSE;
602 Long_t color = -111, size = -111, style = -111;
606 return (color != -111) && (size != -111) && (style != -111);
696 if ((naxis<0) || (naxis>2))
return;
708 if ((naxis<0) || (naxis>2))
return;
788 if ((naxis<0) || (naxis>2))
return;
806 if (decimals) bits = bits | 1;
808 if (strchr(ticks,
'+')) bits = bits | 2;
809 if (strchr(ticks,
'-')) bits = bits | 4;
818 axis->GetAxisColor(),
819 axis->GetLabelColor(),
820 axis->GetLabelFont(),
821 axis->GetLabelOffset(),
822 axis->GetLabelSize(),
823 axis->GetNdivisions(),
824 axis->GetTickLength(),
825 axis->GetTitleColor(),
826 axis->GetTitleFont(),
827 axis->GetTitleOffset(),
828 axis->GetTitleSize(),
831 axis->TestBits(0x0ff0),
841 if (!axis || (naxis<0) || (naxis>2))
return;
849 if (
GetOption (index, op+0, lv)) axis->SetAxisColor(lv);
850 if (
GetOption (index, op+1, lv)) axis->SetLabelColor(lv);
851 if (
GetOption (index, op+2, lv)) axis->SetLabelFont(lv);
852 if (
GetOptionF(index, op+3, fv)) axis->SetLabelOffset(fv);
853 if (
GetOptionF(index, op+4, fv)) axis->SetLabelSize(fv);
854 if (
GetOption (index, op+5, lv)) axis->SetNdivisions(lv);
855 if (
GetOptionF(index, op+6, fv)) axis->SetTickLength(fv);
856 if (
GetOption (index, op+7, lv)) axis->SetTitleColor(lv);
857 if (
GetOption (index, op+8, lv)) axis->SetTitleFont(lv);
858 if (
GetOptionF(index, op+9, fv)) axis->SetTitleOffset(fv);
859 if (
GetOptionF(index, op+10, fv)) axis->SetTitleSize(fv);
861 axis->SetDecimals((lv & 1) != 0);
863 if ((lv & 2) != 0) ticks+=
"+";
864 if ((lv & 4) != 0) ticks+=
"-";
865 axis->SetTicks(ticks.Data());
866 for(
int n=9;n<24;n++) {
869 axis->SetBit(mask, (lv & mask) != 0);
907 pad->GetBorderSize(),
948 if ((TMath::Abs( pad->GetLeftMargin() - gStyle->GetPadLeftMargin()) > 0.001) ||
949 (TMath::Abs( pad->GetTopMargin() - gStyle->GetPadTopMargin()) > 0.001) ||
950 (TMath::Abs( pad->GetRightMargin() - gStyle->GetPadRightMargin()) > 0.001) ||
951 (TMath::Abs( pad->GetBottomMargin() - gStyle->GetPadBottomMargin()) > 0.001))
952 SetFrameAttr(pad->GetLeftMargin(), pad->GetTopMargin(), pad->GetRightMargin(), pad->GetBottomMargin());
957 if (!pad)
return kFALSE;
980 Int_t optstat,
const char *statformat,
981 Int_t optfit,
const char *fitformat)
998 stats->GetX2NDC(), stats->GetY2NDC(),
999 stats->GetOptStat(), stats->GetStatFormat(),
1000 stats->GetOptFit(), stats->GetFitFormat());
1005 if (!stats)
return kFALSE;
1007 Double_t x1, y1, x2, y2;
1012 stats->SetX1NDC(x1);
1013 stats->SetY1NDC(y1);
1014 stats->SetX2NDC(x2);
1015 stats->SetY2NDC(y2);
1016 stats->ConvertNDCtoPad();
1019 Long_t optstat, optfit;
1021 stats->SetOptStat(optstat);
1024 stats->SetOptFit(optfit);
1027 if (fmtstat) stats->SetStatFormat(fmtstat);
1030 if (fmtfit) stats->SetFitFormat(fmtfit);
1074 titl->GetX2NDC(), titl->GetY2NDC(),
1075 titl->GetTextSize());
1088 if (!titl)
return kFALSE;
1090 Double_t x1, y1, x2, y2, sz = 0.;
1099 titl->ConvertNDCtoPad();
1103 titl->SetTextSize(sz);
1105 titl->SetTextSize(0);
1260 if ((numdim==1) && !
GetRange(1, min, max)) {
1264 if ((numdim==2) && !
GetRange(1, min, max)) {
1324 for (
int n = 0; n < 3; n++)
1340 if (!source)
return;
1343 SetName(source->GetName());
1344 SetTitle(source->GetTitle());
1362 for (Int_t n = 0; n <= source->
fxSubPictures->GetLast(); n++) {
1403 Long_t zn = index + 1 + (typ << 16);
1412 Long_t zn = index + 1 + (typ << 16);
1434 if (pos < 0)
return kFALSE;
1442 if (!
GetOption(index, typ, value))
return def;
1452 memcpy(&buf, &v,
sizeof(Long_t));
1454 memcpy(&buf, &value,
sizeof(Long_t));
1462 Bool_t res =
GetOption(index, typ, buf);
1467 memcpy(&v, &buf,
sizeof(Long_t));
1470 memcpy(&value, &buf,
sizeof(Long_t));
1480 memcpy(&buf, &value,
sizeof(Long_t));
1483 memcpy(&buf, &v,
sizeof(Long_t));
1491 Bool_t res =
GetOption(index, typ, buf);
1495 memcpy(&value, &buf,
sizeof(Long_t));
1498 memcpy(&v, &buf,
sizeof(Long_t));
1508 if (!
GetOptionD(index, typ, value))
return def;
1536 if (pos < 0)
return nullptr;
1548 TObjString *ostr =
dynamic_cast<TObjString*
> (
GetObjOption(index, typ));
1549 if (!ostr)
return defvalue;
1550 return ostr->String().Data();
1577 if (pos < 0)
return nullptr;
1586 style =
new TStyle(*gStyle);
1599 if (pos < 0)
return;
1654 if (strcmp(
GetObjName(n), obj->GetName()) == 0)
1665 for (Int_t posx = 0; posx <
GetDivX(); posx++)
1666 for (Int_t posy = 0; posy <
GetDivY(); posy++) {
1673 TString str =
"Obj: ";
1676 if (!opt && (indx == 0))
1683 TText *txt =
new TText(0.1, txt_y, str.Data());
1689 txt_y -= 0.8 / numobj;
1695 TCanvas *c =
nullptr;
1700 c = gPad->GetCanvas();
1707 TString txt = c->GetName();
1710 if (strcmp(GetName(), GetTitle()) != 0) {
1714 c->SetTitle(txt.Data());
1722 for (
int n = 0; n < shift; n++)
1725 std::cout <<
"Divided numx:" <<
GetDivX() <<
" numy:" <<
GetDivY() << std::endl;
1726 for (Int_t posx = 0; posx <
GetDivX(); posx++)
1727 for (Int_t posy = 0; posy <
GetDivY(); posy++) {
1728 for (
int n = 0; n < shift + 2; n++)
1730 std::cout <<
"subpic x:" << posx <<
" y:" << posy << std::endl;
1736 std::cout <<
"Objects:" << std::endl;
1739 for (
int n = 0; n < shift + 2; n++)
1741 std::cout << objname;
1745 std::cout <<
" opt: " << drawopt;
1746 std::cout << std::endl;
1750 for (
int n = 0; n < shift; n++)
1752 std::cout <<
"Options:" << std::endl;
1753 for (Int_t nop = 0; nop <
fiOptSize; nop++) {
1756 for (
int n = 0; n < shift + 2; n++)
1758 std::cout << indx <<
" " << op <<
" " <<
fxOptValue[nop] << std::endl;
1765 std::cout <<
"Picture " << GetName() << std::endl;
1791 TObject *obj = TBufferXML::ConvertFromXML(xmlcode);
1797 Long_t sz = IsA()->Size();
1800 sz += TObjArray::Class()->Size() +
fxNames->GetSize() *
sizeof(
void *);
1801 for (
int n = 0; n <=
fxNames->GetLast(); n++) {
1802 TObjString *str = (TObjString *)
fxNames->At(n);
1803 if (str) sz += str->IsA()->Size() + str->GetString().Length();
1808 sz += TObjArray::Class()->Size() +
fxSubPictures->GetSize() *
sizeof(
void *);
1811 sz += TObjArray::Class()->Size() +
fxOptObjects->GetSize() *
sizeof(
void *);
1814 if (obj) sz += obj->IsA()->Size();
1819 sz += TList::Class()->Size();
1822 while (
auto obj = iter())
1823 sz +=
sizeof(TObjLink) + obj->IsA()->Size();
1830 for (
int ny = 0; ny <
GetDivY(); ny++)
1831 for (
int nx = 0; nx <
GetDivX(); nx++)
1840 fs <<
"TGo4Picture *" << GetName() <<
" = new TGo4Picture(\"" << GetName()
1841 <<
"\", \"" << GetTitle() <<
"\");" << std::endl;
1842 TString name = GetName();
1845 fs << name <<
"SetCrosshair(" << (
IsCrosshair() ?
"true" :
"false") <<
");" << std::endl;
1852 if ((naxis<0) || (naxis>2))
return;
1853 const char *axisname =
"X";
1855 if (naxis==1) { op =
op_AxisY; axisname =
"Y"; }
else
1856 if (naxis==2) { op =
op_AxisZ; axisname =
"Z"; }
1860 if (!
GetOption (index, op+0, lv))
return;
1862 fs << name <<
"SetAxisAtt(" << naxis <<
", ";
1864 if (!
GetOption (index, op+1, lv)) lv = gStyle->GetLabelColor(axisname);
1866 if (!
GetOption (index, op+2, lv)) lv = gStyle->GetLabelFont(axisname);
1868 if (!
GetOptionF(index, op+3, fv)) fv = gStyle->GetLabelOffset(axisname);
1870 if (!
GetOptionF(index, op+4, fv)) fv = gStyle->GetLabelSize(axisname);
1872 if (!
GetOption (index, op+5, lv)) lv = gStyle->GetNdivisions(axisname);
1874 if (!
GetOptionF(index, op+6, fv)) fv = gStyle->GetTickLength(axisname);
1876 if (!
GetOption (index, op+7, lv)) lv = gStyle->GetTitleColor(axisname);
1878 if (!
GetOption (index, op+8, lv)) lv = gStyle->GetTitleFont(axisname);
1880 if (!
GetOptionF(index, op+9, fv)) fv = gStyle->GetTitleOffset(axisname);
1882 if (!
GetOptionF(index, op+10, fv)) fv = gStyle->GetTitleSize(axisname);
1886 if ((lv & 1) != 0) fs <<
"kTRUE, ";
1887 else fs <<
"kFALSE, ";
1889 if ((lv & 2) != 0) ticks+=
"+";
1890 if ((lv & 4) != 0) ticks+=
"-";
1891 fs <<
"\"" << ticks <<
"\", ";
1892 fs << (lv & 0x0ff0) <<
", ";
1894 fs <<
"kTRUE, \"+\", 0, ";
1896 fs << index <<
");" << std::endl;
1917 for (Int_t naxis = 0; naxis < 3; naxis++)
1919 fs << name <<
"SetLogScale(" << naxis <<
", 1);" << std::endl;
1923 fs << name <<
"SetRangeX(" << min <<
", " << max <<
");" << std::endl;
1925 fs << name <<
"SetRangeY(" << min <<
", " << max <<
");" << std::endl;
1927 fs << name <<
"SetRangeZ(" << min <<
", " << max <<
");" << std::endl;
1929 Double_t v1,v2,v3,v4;
1934 fs << name <<
"SetFrameAttr(" << v1 <<
", " << v2 <<
", " << v3 <<
", " << v4 <<
");" << std::endl;
1941 fs << name <<
"SetLineAtt("
1942 << latt.GetLineColor() <<
", "
1943 << latt.GetLineStyle() <<
", "
1944 << latt.GetLineWidth() <<
", " <<
PictureIndex <<
");" << std::endl;
1946 fs << name <<
"SetFillAtt("
1947 << fatt.GetFillColor() <<
", "
1948 << fatt.GetFillStyle() <<
", " <<
PictureIndex <<
");" << std::endl;
1950 fs << name <<
"SetMarkerAtt("
1951 << matt.GetMarkerColor() <<
", "
1952 << matt.GetMarkerSize() <<
", "
1953 << matt.GetMarkerStyle()<<
", " <<
PictureIndex <<
");" << std::endl;
1955 fs << name <<
"SetHisStats(" << (
IsHisStats() ?
"true" :
"false") <<
");" << std::endl;
1958 fs << name <<
"SetStatsAttr("
1969 fs << name <<
"SetHisTitle(" << (
IsHisTitle() ?
"true" :
"false") <<
");" << std::endl;
1971 fs << name <<
"SetTitleAttr("
1981 fs <<
");" << std::endl;
1983 fs << name <<
"SetTitleTime(" << (
IsTitleTime() ?
"true" :
"false") <<
");" << std::endl;
1984 fs << name <<
"SetTitleDate(" << (
IsTitleDate() ?
"true" :
"false") <<
");" << std::endl;
1985 fs << name <<
"SetTitleItem(" << (
IsTitleItem() ?
"true" :
"false") <<
");" << std::endl;
1989 if (nlvl > 0) fs << name <<
"SetHisContour(" << nlvl <<
");" << std::endl;
1991 fs << name <<
"SetAutoScale(" << (
IsAutoScale() ?
"true" :
"false") <<
");" << std::endl;
1994 fs << name <<
"SetSuperimpose(true);" << std::endl;
1995 fs << name <<
"SetLegendDraw(" << (
IsLegendDraw() ?
"true" :
"false") <<
");" << std::endl;
1998 fs << name <<
"SetApplyToAll(" << (
IsApplyToAll() ?
"true" :
"false") <<
");" << std::endl;
1999 fs << name <<
"SetAutoZoom(" << (
IsAutoZoom() ?
"true" :
"false") <<
");" << std::endl;
2002 fs << name <<
"SetXYRatioOne(" << (
IsXYRatioOne() ?
"true" :
"false") <<
");" << std::endl;
2007 fs << name <<
"SetPadAtt(";
2023 fs << lv <<
");" << std::endl;
2027 fs << name <<
"SetDrawOption(\"" << drawopt <<
"\", " <<
PictureIndex <<
");" << std::endl;
2030 Bool_t tdisp=kFALSE;
2033 fs << name <<
"SetXAxisAttTime(";
2034 fs << tdisp <<
", ";
2035 fs <<
"\"" << format.Data()<<
"\"" <<
", ";
2042 fs << name <<
"AddObjName(\"" << objname <<
"\"";
2043 if (objopt) fs <<
", \"" << objopt <<
"\"";
2044 fs <<
");" << std::endl;
2046 fs << name <<
"SetLineAtt("
2047 << latt.GetLineColor() <<
", "
2048 << latt.GetLineStyle() <<
", "
2049 << latt.GetLineWidth() <<
", " << indx <<
");" << std::endl;
2051 fs << name <<
"SetFillAtt("
2052 << fatt.GetFillColor() <<
", "
2053 << fatt.GetFillStyle() <<
", " << indx <<
");" << std::endl;
2055 fs << name <<
"SetMarkerAtt("
2056 << matt.GetMarkerColor() <<
", "
2057 << matt.GetMarkerSize() <<
", "
2058 << matt.GetMarkerStyle() <<
", " << indx <<
");" << std::endl;
2065 fs << name <<
"SetRebinX(" <<
GetRebinX(indx) <<
", " << indx <<
");" << std::endl;
2068 fs << name <<
"SetRebinY(" <<
GetRebinY(indx) <<
", " << indx <<
");" << std::endl;
2072 while (
auto obj = iter()) {
2074 TString xmlbuf = TBufferXML::ConvertToXML(obj);
2076 TString buf = xmlbuf;
2080 buf.ReplaceAll(
"\n ",
"\n");
2081 }
while (len!=buf.Length());
2083 buf.ReplaceAll(
"\n",
" ");
2084 buf.ReplaceAll(
"\"",
"\\\"");
2089 if (buf.Length()>950) {
2090 fs <<
"TString sbuf = \"\";" << std::endl;
2091 const char *pos = xmlbuf.Data();
2093 const char *lastpos = pos;
2094 while ((*pos != 0) && (*pos!=
'\n')) pos++;
2095 TString subbuf(lastpos, pos-lastpos);
2096 subbuf.ReplaceAll(
"\"",
"\\\"");
2097 fs <<
"TGo4Picture::Add(sbuf,\"" << subbuf <<
"\");" << std::endl;
2098 if (*pos == 0)
break;
2104 fs << name <<
"AddSpecialObjectXml(" << buf;
2106 Option_t *opt = iter.GetOption();
2108 if (opt && (*opt != 0))
2109 fs <<
", \"" << opt <<
"\"";
2110 fs <<
");" << std::endl;
2114 fs << name <<
"SetDivision(" <<
GetDivY() <<
", " <<
GetDivX() <<
");" << std::endl;
2115 for (
int ny = 0; ny <
GetDivY(); ny++)
2116 for (
int nx = 0; nx <
GetDivX(); nx++) {
2117 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)
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
TObjArray * fxSubPictures
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)