Vector<double> read too many bytes, Streamer() not in sync with data on file

Hi,

I am attempting to output histograms from a root data file named “6GeV_temperature_23_8C_Beam_all.root”

Here’s a link to the file:https://drive.google.com/file/d/1IZCWvNrHepEsyBl3rc9BAVAS-_8-aj9I/view

Whenever I do anything with the file, for example scan the tree contained within it named “FEB_0” the following happens:

33%20PM

Each branch of the tree is a “vector<'double>”.

Outputting histograms is successful, but the same message is displayed in terminal before the histogram appears. I’m worried the histogram is soiled by this.

I’ve looked at previous topics talking about the same type of error occurring, but haven’t seen anything that would help. A basic explanation of what’s going on here would also be appreciated.

Thanks!
David


ROOT Version: root-6.14.00
Platform: High Sierra
Compiler: Cmake


Hi David,

can you exclude that the file is somehow corrupt? Do you know how this file has been written?

Best,
Danilo

Hey Danilo,

I can’t exclude that the file is I corrupted, and unfortunately, I don’t know how it was written.

Do you think these errors suggest it is corrupt?

Kind regards,
David

Your file was created by ROOT 5.34/36 and it uses the default compression algorithm and level 1 (it is about 1.67GB long).
It contains just one “FEB_0” TTree with 12 branches (not split) of types vector<double>.
This TTree contains just 1 entry and all vectors (branches) are roughly of the same size of about 1.12GB which means about 150 million vector elements (so the full “uncompressed” TTree entry is about 13.4GB).
I think this is possibly a problem then as … I remember many reports related to a 1GB branch buffer/basket limit. AFAIK, the data size for an entry in a single branch is limited to 1GB (minus 2 bytes, I guess @pcanal may say something more precise / up-to-date). I think the job which produced your ROOT file should have also reported this problem, if met.

Try:

{
  if (!(gInterpreter->IsLoaded("vector"))) gInterpreter->ProcessLine("#include <vector>");
  TFile *f = TFile::Open("6GeV_temperature_23_8C_Beam_all.root");
  f->Dump();
  f->ls();
  TTree *t; f->GetObject("FEB_0", t);
  t->Dump();
  t->Print();
}

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.