Try:
void show_quad(const char *filename0,
const char *filename1,
const char *filename2,
const char *filename3)
{
gROOT->cd();
delete gROOT->FindObject("hs"); // prevent "memory leak"
TH2F *hs = new TH2F("hs", ";X;Y", 512, -0.5, 511.5, 512, -0.5, 511.5);
hs->SetStats(kFALSE);
hs->Print();
TFile *f;
TTree *t;
f = TFile::Open(filename0);
f->GetObject("rawtree", t);
gROOT->cd();
t->Draw("511-Row:255-Col>>hs", "", "goff");
delete f;
hs->Print();
f = TFile::Open(filename1);
f->GetObject("rawtree", t);
gROOT->cd();
t->Draw("Row:Col>>+hs", "", "goff");
delete f;
hs->Print();
f = TFile::Open(filename2);
f->GetObject("rawtree", t);
gROOT->cd();
t->Draw("Row:Col+256>>+hs", "", "goff");
delete f;
hs->Print();
f = TFile::Open(filename3);
f->GetObject("rawtree", t);
gROOT->cd();
t->Draw("511-Row:511-Col>>+hs", "", "goff");
delete f;
hs->Print();
TCanvas *c1 = ((TCanvas *)(gROOT->GetListOfCanvases()->FindObject("c1")));
if (!c1) c1 = new TCanvas("c1", "c1", 800, 800);
else c1->Clear();
// gStyle->SetOptStat("");
hs->Draw("colz");
}