RE: MakeSelector

From: Philippe Canal <pcanal_at_fnal.gov>
Date: Thu, 22 Jun 2006 05:16:42 -0500


> The execution stops exactly at the line where is
> fChain->GetTree()->GetEntry(entry)

This is mostly likely not what you mean.

What is 'entry'? Is the the entry number in the chain or inside the underlying local tree?

Did you run fChain->LoadTree before calling fChain->GetTree? (Otherwise this will return null).

I think you mean:

   fChain->GetEntry(entry);

Cheers,
Philippe

-----Original Message-----
From: Alberto Pulvirenti [mailto:Alberto.Pulvirenti_at_ct.infn.it] Sent: Thursday, June 22, 2006 6:20 AM
To: Philippe Canal
Cc: 'Alberto Pulvirenti'; 'ROOT Mailin List' Subject: RE: [ROOT] MakeSelector

Dear Philippe,

thanks for the help, but I encountered a problem. When I do what you say, that is commenting lines of splitted branches and loading library, etc, I get segmentation faults whenever the Process method tries to get an entry. The execution stops exactly at the line where is

fChain->GetTree()->GetEntry(entry)

maybe this can mean that I made some trivial mistake while doing my modifications?

Cheers,

         Alberto


  Tel :+39-095-3785286


On Fri, 19 May 2006, Philippe Canal wrote:

> 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 :) ).
>
> Cheers,
> Philippe.
>
> -----Original Message-----
> From: owner-roottalk_at_pcroot.cern.ch [mailto:owner-roottalk_at_pcroot.cern.ch]
> 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 Thu Jun 22 2006 - 12:17:40 MEST

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