void wp1(TCanvas* canvas, char* filename="junk", int nbPadLow = 1, int nbPadHigh= 1) { for (int index = nbPadLow; index <= nbPadHigh; index++) { canvas->cd(index); TPad* thispad = (TPad*) gPad; TCanvas *tempcanvas = new TCanvas(); tempcanvas->cd(); TPad *clonepad = (TPad*) thispad->DrawClone(); clonepad->SetPad(0,0,1,1); TString tempfilename(filename); if (index == nbPadLow) tempfilename += "("; if (index == nbPadHigh) tempfilename += ")"; tempcanvas->SaveAs(tempfilename); delete tempcanvas; } } void wp() { TFile *f = new TFile("test.root"); TCanvas *canvas = (TCanvas*)f->Get("testcanvas"); canvas->Draw(); wp1(canvas,"junk.ps",1,3); }