I’m having trouble reading a file that is more than 2GB in size. I found some users who’d reported a similar error, but I haven’t been able to find their solutions helpful. I’m running ROOT 6.06 that I compiled myself, and I have a root file as an output from Geant4. I used hadd to combine 16 individual root files from each Geant4 worker thread to the one final Root file that is 2.82 GB in size.
When I open the TBrowser and try to view the histogram of any tuples I have saved in the file, I get the following error:
Error in <TBranch::GetBasket>: File: gammabgmicro.root at byte:-2147381916, branch:Energy_keV, entry:64530902, badread=0, nerrors=1, basketnumber=16143 ... Error in <TBranch::GetBasket>: File: gammabgmicro.root at byte:-2147381916, branch:Energy_keV, entry:64530910, badread=0, nerrors=9, basketnumber=16143 file probably overwritten: stopping reporting error messages ===>File is more than 2 Gigabytes
I observe the same error trying to read the data in with PyROOT, where I am trying line by line to access the tuple and place it into an array in memory.
It seems that a 32 bit integer might be looping around to stop me from reading beyond a certain limit (As the byte is suspiciously close to -2^31). Am I missing something when trying to read files larger than 2GB in ROOT, do I need to change a compilation flag to read things with 64 bit support? When I call TFile->GetVersion() I get 1060414, which I expected should have meant the file was opened with support for large files enabled, but I am not familiar enough with the Root internals to be sure.
Or should I just try and use smaller files?
Thanks in advance for your help.