[ROOT] TClonesArray in trees

From: Stefano Argiro' (Stefano.Argiro@mi.infn.it)
Date: Thu Jul 20 2000 - 19:02:43 MEST


Hi Rooters,

I am very confused about the following:
suppose you store many objects of the kind 'Particle' in a
TClonesArray of particles called "ArrayofParticles"
You now want to store the array in a TTree. Then ,
TTree::Branch("ArrayofParticles",clonesarrayname,...) splits in many
sub-branches, each containing, at the end, basic data types of the kind
'Particle.fPX, etc... '.

If I want to read back directly Particle.fPX from its associated branch,
no problem.

The question is: can you read back ArrayofParticles and have access to
every 'Particle ' in the TClonesArray ??

I tried with something like:

 TClonesArray *ArrayofParticles = new TClonesArray();
 tree->SetBranchAddress("ArrayofParticles", ArrayofParticles);
 tree->GetEvent(0);
 Particle * p = (Particle *) ArrayofParticles->At(1);
 cout<< p->GetPX(); 

 ROOT tells me something like 
Error: non class,struct,union object p used with . or ->
FILE:/tmp/fileg62HaS_cint LINE:1

 Thank you very much

Stefano



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:30 MET