void Zoom(TObject *o) { static TObject *prev = 0; static TCanvas *c = 0; TObject *mem = o; TString nname; if (o->InheritsFrom(TKey::Class())) { mem = ((TKey*)o)->ReadObj(); // prevent memory leak if (prev) delete prev; } if (c) delete c; if (mem->InheritsFrom(TH2::Class())) { TH2 *hist = (TH2*)mem; // set colz hist->SetOption("colz"); // zoom hist hist->SetAxisRange(-2,2,"X"); hist->SetAxisRange(-2,2,"Y"); if (mem==o) return; // hist in memory // hist from file hist->SetDirectory(0); nname = hist->GetName(); nname += "_colz"; // change hist name to prevent deletion hist->SetName(nname); c = new TCanvas("c1","hist canvas",400,800); c->Divide(1,2); c->cd(1); hist->Draw(); c->cd(2); } }