Stream a TClonesArray of objects w/ non-basic type: pointers

It’s the same problem that I described in my other post yesterday. I changed the title, because it seems the new title describes the problem more precisely.

Ok, if I really want to stream a bunch of objects, which DO have non-basic type of data memebers, e.g. pointers pointing to other classes, what should I use? I mean which container should I use to contain them? According to this page: I cann’t use TClonesArray to contain these objects. Since there are a bunch of these objects and the number differs from event to event, so I have to use a container. Should it be a TObjArray? How will the automatical streamer deal with the objects being pointed to? If there are a chain of pointers and objects, will the automatical streamer stream all of them until it finds the end of the chain? (I mean a structure like this: class A has a data member pointer to class B, class B has pointer to class C, and so on and so forth.)

ROOT I/O follows C++ pointers avoiding circular references.
However, In case you use an object in split mode in a Tree, you run
the risk to see the same object in different branches.
To solve this problem, we are proposing the TRef/TRefArray classes.
See example in tutorial $ROOTSYS/tutorial/Jets.C