Hi Sean,
As I already reported yesterday to roottalk in the discussion about STL,
ROOT needs the compiled class in case of STL members.
I would like to include the possibility to support simple cases like
vector<int>
vector<myclass>
such that the compiled class is not required to read the original file.
Meanwhile, you can use ACLIC as a nice substitute.
To use ACLIC in your case, I have modified the file run_readback.C as follow;
#include "TTree.h"
#include "read_back.h"
void readback() {
read_back t;
t.GetEntry(1);
t.Show();
t.Loop();
}
then in a ROOT session
root > .L run_readback.C+
root > readback()
Rene Brun
Sean Kelly wrote:
>
> Dear ROOT'ers
>
> I have followed a few STL ROOT I/O threads on the web
> but didn't see a clear answer to the following type
> problem. I am running 3.02/06 redhat release
> 2.2.19-6.2.1smp.
>
> I have defined a simple class that has an STL vector
> as a data memeber. In compiled code it is possible
> to write and then read back the object without any
> problems with a split level that puts the stl vector
> in its own branch.
>
> I have noticed the following.
>
> 1) MakeClass does not generated the necessary member
> declarations and Branch calls for the vector.
>
> 2) I put these in by hand and everything works fine
> in compiled code
>
> 3) CINT chokes on the vector member functions
>
> I have tarred up my test project and one can reproduce
> the successfull (failure) mode by typing.
>
> make
> ./run_test
> ./run_readback
> root
> root [0] .L run_readback.C
> root [1] main()
>
> The output from the failed mode is shown below.
>
> ======> EVENT:1
> x = 1.000000
> y = 10.000000
> z = 100.000000
> q = 1000.000000
> stl_vector = printing kStreamer case (500)
> Error: Can't call vector<int,__malloc_alloc_template<0> >::size() in
> current scope FILE:read_back.h LINE:142
> Possible candidates are...
> filename line:size busy function type and name (in
> vector<int,__malloc_alloc_template<0> >)
> Error: << Illegal operator for pointer 3 FILE:read_back.h LINE:142
> *** Interpreter error recovered ***
>
> thanks for any help
>
> Sean
>
> +-------------------------------------------------------------------------+
> || Sean Kelly EMAIL: kelly@nevis.columbia.edu ||
> || Columbia University WWW: www.nevis.columbia.edu/~kelly ||
> || PHONE: (914) 591 - 2840 (NEVIS) ||
> || PHONE: (212) 854 - 5275 (CAMPUS) ||
> || PHONE: (646) 281 - 5282 (MOBILE) ||
> || FAX: (212) 854 - 3379 ||
> +-------------------------------------------------------------------------+
>
> --------------------------------------------------------------------------------
>
> Name: test_root_io.tar.gz
> test_root_io.tar.gz Type: Unix Tape Archive (application/x-tar)
> Encoding: BASE64
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:37 MET