Hi,
if
sprintf(finName,"%s/result_%s.root", chose1[ic], chose2[ic]);
fin[ic] = new TFile(finName,"READ");
doesn’t work but
fin[ic] = new TFile(Form("%s/result_%s.root", chose1[ic], chose2[ic]),"READ");
works, then I guess that finName results in a wrong filename in the first case.
You could print it to check what its value is. You should also check the value of fin[ic].IsZombie(): if it’s true, the file was not opened correctly.
The problem does not seem to be related to the ROOT version used.
Cheers,
Enrico