vector<vector<float>> (and Athena)

From: Alexander Mann <amann_at_uni-goettingen.de>
Date: Wed, 8 Sep 2010 14:54:46 +0200

Dear ROOT experts,

since over a week I am struggling with the following problem:

I need to read in vector<vector<float>>s from a ROOT file on the GRID, i.e. I need to use a ROOT version that comes with Athena. For this I am creating dictionaries with rootcint and using compiled C++ code. The job runs fine if I compile against a standalone ROOT version locally. If I compile against an Athena ROOT version I get the following error message:

Error in <TBufferFile::CheckByteCount>: object of class vector<vector<float> > read too few bytes: 6 instead of 114

As said above, I need to run on the GRID where I cannot use standalone ROOT, so I need to find a solution for this problem.

I have set-up a test case on lxplus:

lxplus218.cern.ch, /tmp/mann/ROOT

The script makedistallgood.sh in this directory compiles the code against ROOT 5.26.00b and runs the example which should work without problems.

Now if you source Athena (e.g. 15.8.0 or 15.9.0) and run makedistallbad.sh, the job will fail and give the error message from above.

Please have a look and tell me how I can solve this problem. My investigations so far make me believe that the problem is some interference with the dictionaries or libraries that come with Athena, but I don't know how to make ROOT pick the right streamer function.

Best regards,
Alexander Received on Wed Sep 08 2010 - 14:54:43 CEST

This archive was generated by hypermail 2.2.0 : Wed Sep 08 2010 - 17:50:01 CEST