BrOutputTreeModule

From: Peter H. L. Christiansen (pchristi@nbi.dk)
Date: Fri Sep 20 2002 - 07:05:09 EDT

  • Next message: Jens Ivar Jordre: "Re: BrOutputTreeModule"

    Hi
    
    Kris and I noticed that with the new BrOutputTreeModule it is not possible 
    to "downcast" things in a tree.
    
    The actual problem is that I want to add the table that contains 
    BrTpcTrackCandidates ( : BrTrackCandidate : BrTrack : ....) to a tree 
    branch as BrTrack(s) since I don't need the residuals. In the old code I 
    believe this used to work, but now it doesn't i.e., adding a table of 
    BrTracks(s) gives some Streamer/class version conflicts, while adding the 
    full BrTpcTrackCandidate works. I believe this has to do with the part in 
    the event method that reads :
    
           TClass* cl = gROOT->GetClass(fClassName);
           TObject*o  = arr->New(iE);
           TBuffer b(TBuffer::kWrite);
           TObject * obj = table->At(iE);
           obj->Streamer(b);
           b.SetReadMode();
           b.SetBufferOffset();
           o->Streamer(b);
    
    PC comments :
    What is cl used for ?
    ie is the index looping over the datatable
    arr is a TClonesArray of here BrTracks(s) 
    obj is of type BrTpcTrackCandidate here
    
    So somehow I need to tell either obj or o when I stream that I want a 
    BrTrack instead of the full monty. Does anybody know a fix for this ?
    
    The lazy way is to use the old, but as FV notes it is 100 times slower!
    Or I could just copy everything, but that increases my filesize.
    
    Cheers
       Peter
    
    -- 
    :-) --------------------------- )-:
     Peter H L Christiansen @ NBI
     EMAIL  : pchristi@nbi.dk
     OFFICE : Tb1@NBI  (353 25269)
     HOME   : Hjertensfrydsgade 3, st
     PHONE  : 33330493(New)/ 40840492(mob.) 
    :-D --------------------------- \-:
    



    This archive was generated by hypermail 2b30 : Fri Sep 20 2002 - 07:05:43 EDT