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:=20
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=B4t 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.=20
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=20
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