20double XtoPad(
double x);
21double YtoPad(
double x);
30 C =
new TCanvas(
"C",
"canvas", 1024, 640);
31 C->SetFillStyle(4000);
44 CanvasPartition(C, Nx, Ny, lMargin, rMargin, bMargin, tMargin);
50 h =
new TH1F(
"histo",
"", 100, -5.0, 5.0);
51 h->FillRandom(
"gaus", 10000);
52 h->GetXaxis()->SetTitle(
"x axis");
53 h->GetYaxis()->SetTitle(
"y axis");
57 for (
Int_t i = 0; i < Nx; i++) {
58 for (
Int_t j = 0; j < Ny; j++) {
109 text.SetTextAlign(31);
110 text.SetTextFont(43);
111 text.SetTextSize(10);
112 text.DrawTextNDC(XtoPad(0.9), YtoPad(0.8),
gPad->GetName());
126 Float_t vStep = (1. - bMargin - tMargin - (Ny - 1) * vSpacing) / Ny;
129 Float_t hStep = (1. - lMargin - rMargin - (Nx - 1) * hSpacing) / Nx;
131 Float_t vposd, vposu, vmard, vmaru, vfactor;
132 Float_t hposl, hposr, hmarl, hmarr, hfactor;
134 for (
Int_t i = 0; i < Nx; i++) {
138 hposr = lMargin + hStep;
139 hfactor = hposr - hposl;
140 hmarl = lMargin / hfactor;
142 }
else if (i == Nx - 1) {
143 hposl = hposr + hSpacing;
144 hposr = hposl + hStep + rMargin;
145 hfactor = hposr - hposl;
147 hmarr = rMargin / (hposr - hposl);
149 hposl = hposr + hSpacing;
150 hposr = hposl + hStep;
151 hfactor = hposr - hposl;
156 for (
Int_t j = 0; j < Ny; j++) {
160 vposu = bMargin + vStep;
161 vfactor = vposu - vposd;
162 vmard = bMargin / vfactor;
164 }
else if (j == Ny - 1) {
165 vposd = vposu + vSpacing;
166 vposu = vposd + vStep + tMargin;
167 vfactor = vposu - vposd;
169 vmaru = tMargin / (vposu - vposd);
171 vposd = vposu + vSpacing;
172 vposu = vposd + vStep;
173 vfactor = vposu - vposd;
181 auto pad = (
TPad *)
C->FindObject(
name.Data());
184 pad =
new TPad(
name.Data(),
"", hposl, vposd, hposr, vposu);
199double XtoPad(
double x)
201 double xl, yl, xu, yu;
202 gPad->GetPadPar(xl, yl, xu, yu);
204 double lm =
gPad->GetLeftMargin();
205 double rm =
gPad->GetRightMargin();
206 double fw = pw - pw * lm - pw * rm;
207 return (
x * fw + pw * lm) / pw;
210double YtoPad(
double y)
212 double xl, yl, xu, yu;
213 gPad->GetPadPar(xl, yl, xu, yu);
215 double tm =
gPad->GetTopMargin();
216 double bm =
gPad->GetBottomMargin();
217 double fh = ph - ph * bm - ph * tm;
218 return (
y * fh + bm * ph) / ph;
int Int_t
Signed integer 4 bytes (int).
float Float_t
Float 4 bytes (float).
virtual void SetTitleOffset(Float_t offset=1)
Set distance between the axis and the axis title.
virtual void SetLabelSize(Float_t size=0.04)
Set size of axis labels.
virtual void SetTitleFont(Style_t font=62)
Set the title font.
virtual void SetLabelOffset(Float_t offset=0.005)
Set distance between the axis and the labels.
virtual void SetLabelFont(Style_t font=62)
Set labels' font.
virtual void SetTitleSize(Float_t size=0.04)
Set size of axis title.
virtual void SetTickLength(Float_t length=0.03)
Set tick mark length.
virtual void SetNdivisions(Int_t n=510, Bool_t optim=kTRUE)
Set the number of divisions for this axis.
virtual void SetBottomMargin(Float_t bottommargin)
Set Pad bottom margin in fraction of the pad height.
virtual void SetLeftMargin(Float_t leftmargin)
Set Pad left margin in fraction of the pad width.
void SetFrameBorderMode(Int_t mode=1)
void SetFrameFillStyle(Style_t styl=0)
virtual void SetRightMargin(Float_t rightmargin)
Set Pad right margin in fraction of the pad width.
virtual void SetTopMargin(Float_t topmargin)
Set Pad top margin in fraction of the pad height.
void CenterTitle(Bool_t center=kTRUE)
Center axis title.
1-D histogram with a float per channel (see TH1 documentation)
virtual void SetMaximum(Double_t maximum=-1111)
void Draw(Option_t *option="") override
Draw this histogram with options.
virtual void SetMinimum(Double_t minimum=-1111)
The most important graphics class in the ROOT system.
void SetBorderSize(Short_t bordersize) override
void SetFillStyle(Style_t fstyle) override
Override TAttFill::FillStyle for TPad because we want to handle style=0 as style 4000.
Double_t GetAbsWNDC() const override
TVirtualPad * cd(Int_t subpadnumber=0) override
Set Current pad.
void Draw(Option_t *option="") override
Draw Pad in Current pad (re-parent pad if necessary).
void SetBorderMode(Short_t bordermode) override
Double_t GetAbsHNDC() const override
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
constexpr Double_t C()
Velocity of light in .