Re: [ROOT] Compress in TClones Array

From: Damir Buskulic (buskulic@lapp.in2p3.fr)
Date: Thu Nov 09 2000 - 11:17:40 MET


Hi Haitao.

TObjString is a string, so it may have a variable length, right ? I
doubt you can use it in TClonesArray. 

Cheers

Damir

Haitao Liu wrote:
> 
> Dear Rooters,
> 
> I have present my problem sometimes ago, but I think I have resolved this
> problem at that time. Now I become more confused.
> 
> First, as said in the mannul.  Object stored by TClonesArray should be fixed
> size. In my class Track, it contains TObjString. I think that should be OK,
> right? But I should use Delete() instead of Clear() I think.
> 
> I want shrink my Event, so I use TClonesArray::Remove() and then Compress.
> I get segmentation fault when I try to read next event in TTree. I can not
> understand that.
> 
> Then I use a tricky method, I modify the source of TClonesArray to allow the
> call of TCloneArray::AddLast(). Then it works. If I do not use TTree, I can
> shrink my Event and then write to file and read again. But when I use TTree,
> I get some problem. It seems work for the first look. When I try to look the
> TTree again, I find all other things works but TObjString was destroyed.
> 
> For my understanding, I have destroyed the internal structure of TClonesArray
> a little bit. fKeep is different with, fCont. But I think for the Streamer to
> output,fKeep is not involve.
> 
> Thanks for attention
> 
> Attached was the head file . and the Shrink method I has use.
> 
> void
> Ana::Shrink(TTree *newTree, int type){
>      newTree->Branch("Event","Event",&pevent,3200,0);
>    for (int i = 0 ; i < Entries; i++){
>      TrackTree->GetEntry(i);
>      pevent->FindSuperTracks();
>      pevent->Shrink(type);
>      newTree->Fill();
>    };
> 
> }
> 
>   ------------------------------------------------------------------------
> 
>                   Name: event.hh
>    event.hh       Type: text/x-c++
>               Encoding: base64
> 
>                   Name: track.hh
>    track.hh       Type: text/english
>               Encoding: base64
> 
>                    Name: event.cxx
>    event.cxx       Type: text/x-c
>                Encoding: base64

-- 
=====================================================================
| Damir Buskulic                  | Universite de Savoie/LAPP       |
|                                 | Chemin de Bellevue, B.P. 110    |
| Tel : +33 (0)450091600          | F-74941 Annecy-le-Vieux Cedex   |
| e-mail: buskulic@lapp.in2p3.fr  | FRANCE                          |
=====================================================================
mailto:buskulic@lapp.in2p3.fr



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