#include "TPad.h" /* Set aspect of pad *pad = TPad pad to be altered aspect = aspect ratio X:Y */ void SetAspect( TPad *pad, double aspect ) { double xlo, ylo, xup, yup; double xmid, ymid, xwid, xwid2, ywid, ywid2; // Check for valid aspect ratio if( aspect <= 0. ) { printf("aspad: ERROR Invalid aspect ratio %lf\n",aspect); return; } // Get originial pad coordinates pad->GetPadPar( xlo, ylo, xup, yup ); xwid = (xup - xlo)/2.; ywid = (yup - ylo)/2.; xmid = (xlo + xup)/2.; ymid = (ylo + yup)/2.; // Set pad to size of smaller width, being careful not to overstep bounds if( xwid < ywid ) { xwid2 = xwid; ywid2 = aspect/xwid2; if( ywid2 > ywid ) { ywid2 = ywid; xwid2 = ywid2*aspect; } } else { ywid2 = ywid; xwid2 = aspect*ywid2; if( xwid2 > xwid ) { xwid2 = xwid; ywid2 = xwid2/aspect; } } xlo = xmid - xwid2; xup = xmid + xwid2; ylo = ymid - ywid2; yup = ymid + ywid2; pad->SetPad( xlo, ylo, xup, yup ); }