// ...
TPad *p1 = new TPad("p1", "", 0, 0, 1, 1);
p1->SetTopMargin(0.15); // 15% top margin
// ...
TPad *p2 = new TPad("p2", "", 0, 0, 1, 1);
p2->SetTopMargin(0.15); // 15% top margin
// ...
Double_t dy = (ymax - ymin) / 0.75; // 15% top margin and 10% bottom margin
p2->Range(xmin-0.1*dx, ymin-0.1*dy, xmax+0.1*dx, ymax+0.15*dy);
// ...