Branch: I want easy access to data

From: Witold Przygoda (Witold.Przygoda@Physik.Tu-Muenchen.DE)
Date: Wed Mar 18 1998 - 02:51:25 MET


Hallo,

excuse me if I repeat the well known question but this is
a very important problem to me.

I will show it on an easy example.
Imagine that I have hit class like this:


class MyHits : public TObject {

public:

int SimpleType;
MyDataClass finalData[3];

// of course Streamer function defined in .cc file

MyHits();
virtual ~MyHits();
ClassDef(MyHits,1)

};


MyDataClass : public TObject {

int SimpleType;
int someData[10];
float *myArrayPtr;

// again I provide Streamer which takes care of pointer also

MyDataClass();
virtual ~MyDataClass();
ClassDef(MyDataClass,1)
};



What I know: 
I can write it to one branch (just dumping data into one solid
block without spliting). This works fine and I can read so
created file, fill back data structure, make loops over events
and fill some histograms.

What I would like and donīt know:
It is demanded by some people to provide them much easier (and faster!)
way to access all data. I do not want to define the detailed (leaf by
leaf) structure of my branch(es) but to stay with Streamer-mechanism.
I know I can set up split mode and each variable will create another
branch. 

My question: I failed with having access to array myData (of type
MyDataClass). The branch seems to be not created. Is it possible
(and how) finally to have the access like
T.Draw("simpleType");

also to T.Draw("myData[0].SimpleType");
        T.Draw("myData[1].someData");
        T.Draw("myData[1].someData[3]");
(I know it is wrong what I write above but I hope it explains
my wish). In other words how to use Streamer method of storing 
of my Class(es) into root-file (branch) and the pointers (keys) to all
fields of my Class (and also fields of component which is of another
class type).

Thank you a lot in advance,

Witek Przygoda



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:31 MET