RE: MakeSelector

From: Philippe Canal <>
Date: Fri, 19 May 2006 13:18:06 -0500

Hi Alberto,

Explictly the current MakeSelector mechanism is 'devolving' the class layout to make that accessible without the original library. If you want to access the object you need to load the library and either use MakeProxy or uncomment the object data member and comment out ALL the other other data members refering to the content of the object AND comment out the line SetMakeClass(1) (or similar).

By reducing the split level you would reduce the amount of data field useable by the current MakeSelector mechanism, you would also loss performance (speed and compression) and still you would need to hand modify the result of MakeSelector (but having less to comment out :) ).


-----Original Message-----
From: [] On Behalf Of Alberto Pulvirenti
Sent: Friday, May 19, 2006 3:51 AM
To: ROOT Mailin List
Subject: [ROOT] MakeSelector

Dear ROOTers,

I have a question about the TTree::MakeSelector() method. I had a TTree with a unique branch containing objects of a ROOT-derived type, say it "class".
When I created the selector by TTree::MakeSelector(), I checked the list of selector data members which define the object which is linked to TTree branches in order to be filled by TTree::GetEntry(). I obtained that many data members were created instead of just one of the type "class". All these objects were datamembers of "class", which were treated as independent branches, instead of the one which I created in the beginning.

There was also an object declared as "class", but it was commented.

I supposed that this is due to the fact that I filled the TTree with a large split value. Is that hypothesis right? What happens if I create TTree branches with split = 0 or split = 1?

Thanks and best regards,

    Alberto Received on Fri May 19 2006 - 20:19:22 MEST

This archive was generated by hypermail 2.2.0 : Mon Jan 01 2007 - 16:31:58 MET