[ROOT] STL, split trees and TTree::Draw() -- part 1

From: Walter F.J. Mueller (W.F.J.Mueller@gsi.de)
Date: Sun Apr 20 2003 - 18:06:08 MEST


Dear ROOTer's				using 3.05/03

sorry for bringing up STL issues up again. I'm trying to figure out
whether Objects containing STL vectors, split tree  and tree->Draw()
now work as one would expect. I started out with the little example
given by Rene on Nov 24 1999 on ROOTtalk, see

http://root.cern.ch/cgi-bin/print_hit_bold.pl/root/roottalk/roottalk99/2746.html

To have a STL and a non-STL member variable I added an Int_t member
variable 'nh' in EventSTL. See attached sources for details. After a

   rootcint -f STLcint.cxx -c EventSTL.h EventSTL.LinkDef.h
   g++ -g -fPIC -I$ROOTSYS/include -c STLcint.cxx EventSTL.cxx
   g++ -g -Wl,-soname,EventSTL.so -shared STLcint.o EventSTL.o \
         -o EventSTL.so

I get with

   root -q -l STLw.C
   root -q -l STLr.C

exactly what onw would expect, proving that object branches with STL
vectors work fine.

Now lets turn to split trees with STL vectors and use in STLw.C

   mytree->Branch("abc","EventSTL",&CC,16000,2);

Again STLw.C and STLr.C work and produce what one expects.

Finaly lets try to process the split tree with the TTree::Draw():

   file = new TFile("STL.root");
   T->Draw("nh");

gives the correct distribution for 'nh'. However a

   T->Draw("A");

produces for each processed event two messages

    Error in <TBuffer::CheckByteCount>: object of class TStreamerInfo
        read too few bytes: 2 instead of 6
    Warning in <TBuffer::CheckByteCount>: TStreamerInfo::Streamer()
        not in sync with data on file, fix Streamer()

and one gets a histogram with 40 entries at 0.

If one loads the EventSTL code with

   gSystem->Load("EventSTL");

before the TFile is opened no Warnings and Errors appear, but the
'A' histogram is still wrong (40 entries @ 0).

So storing an object with a STL vector a split tree seems to work,
but the TTree::Draw() seems to have problems in processing it.

It this expected behaviour, or am I'm missing something ?


		Cheers and happy Easter,
	
			 Walter










This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:11 MET