Hi Ben, On Mon, 17 Jun 2002, Ben Morgan wrote: > Hi Rene, > Thanks for the suggestions, however, > > > The TSelector object is automatically deleted by TTreePlayer::Process. > > If you use gObjectTable->Print, you should see only the current/last > > selector object, not more. > > Having inspected the source code for > TTreePlayer::Process I would expect this to happen, but repeated > applications of EventCh->Process("TestSelec.C") on the same or different > chains followed by gObjectTable->Print() does show that the number of > TSelector objects does increase by one each time (although there is only > ever one chain and one TTreePlayer). I cannot reproduce this behaviour. Send me a concrete example. > > > In your MakeChain script, instead of > > void MakeChain() { > > do > > TChain *MakeChain() { > > .. //build your chain > > return the pointer to the chain > > > > I don't quite see how this > modification to MakeChain would work (my limited C++ knowledge I'm > afraid). Surely I'd then have to use MakeChain through TChain *EvCh = > MakeChain() rather than just MakeChain(), so I'd still be creating a > global pointer, but with one extra step? Is there a reason for TChains not > being given a name so that they can be retrieved from gDirectory like > TTrees and THistograms? Sorry for these extra questions, TChains have a name (actually the name of the Tree : TChain argument). A TChain is added to gROOT->GetListOfSpecials(). If you do TChain ch ("T") You can retrieve a pointer to this chain in another module with: TChain *chain = (TChain*)gROOT->GetListOfSpecials()->FindObject("T"); Rene Brun > > Ben Morgan. > (Root 3.02/07 on RH7.1 on Linux PC). > > > > > > On Fri, 14 Jun 2002, Ben Morgan wrote: > > > > > Hi ROOTers, > > > I have a small script that chains a user defined set of files > > > together, with the chain then being processed with code generated by > > > MakeSelector. The basic process is: > > > > > > root [4] MakeChain() > > > root [5] EventCh->Process("TestSelec.C") > > > > > > Whilst this works well (I can remake the chain and reprocess without any > > > problem), I have two questions. Firstly, each call to EventCh->Process() > > > , whether using the same chain again or creating a new one, creates a new > > > TSelector object (visible in gObjectTable) which I don't > > > seem to be able to access to delete before remaking the chain; is there > > > any way to delete this before reprocessing the chain? I assume that > > > the TSelector object created is owned by > > > TChain or TTreePlayer, so I would have though that it would be > > > automatically deleted when I delete and remake the chain, but it doesn't > > > seem to be. > > > > > > Secondly, I need the chain to be available > > > outside of MakeChain(), and the only way to do this seems to be to > > > define a global pointer to the chain outside of MakeChain(): > > > > > > TChain *EventCh; > > > void MakeChain() > > > { > > > ..... > > > } > > > > > > I note from the ROOTtalk mailing list that there was a proposal to give > > > TChain a 'name' so that it could be retrieved from gDirectory. > > > http://root.cern.ch/root/roottalk/roottalk98/0651.html > > > Was this implemented, as there doesn't seem to be anything in the > > > documentation on TChain that suggests it was. > > > > > > I'm using ROOT v3.02/07 on a Linux PC with RH7.1. Thanks, > > > > > > Ben Morgan. > > > > > > -- > > > ------------------------------------------------------------------------------- > > > Mr. Ben Morgan > > > Postgraduate Student > > > University of Sheffield > > > Department of Physics & Astronomy > > > Hicks Building > > > Hounsfield Road > > > Sheffield S3 7RH > > > ------------------------------------------------------------------------------- > > > > > > > > > > > > -- > ------------------------------------------------------------------------------- > Mr. Ben Morgan > Postgraduate Student > University of Sheffield > Department of Physics & Astronomy > Hicks Building > Hounsfield Road > Sheffield S3 7RH > ------------------------------------------------------------------------------- > >
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:57 MET