Hi Birger, Your remark is perfectly valid. This special case was not documented. I have added remarks in TTree::GetEntry, SetBranchStatus and TChain see, eg: http://root.cern.ch/root/htmldoc/TTree.html#TTree:SetBranchStatus http://root.cern.ch/root/htmldoc/TTree.html#TTree:GetEntry Rene Brun koblitz@poly.in2p3.fr wrote: > > Hi Philippe, > > thanks for the help. Maybe it would be a good idea to update the > documentation for > void TTree::SetBranchStatus(const char *bname, Bool_t status) > to say something about split branches. > > Cheers, > Birger > > On Thu, 17 Jul 2003, Philippe Canal wrote: > > > Hi Birger, > > > > Currently SetBranchStatus work only on a name matching basis. Hence if you do not use a regular expression, SetBranchStatus will only affect one branch object (in particular it will NOT affect its potential sub-branches). > > > > To obtain the result you expected just do: > > > > inputChain->SetBranchStatus("BRawHeader*",1); <- This is a split branch > > > > Cheers, > > Philippe. > > > > -----Original Message----- > > From: koblitz@poly.in2p3.fr [mailto:koblitz@poly.in2p3.fr] > > Sent: Thursday, July 17, 2003 10:20 AM > > To: Philippe Canal > > Cc: Rene Brun; roottalk@pcroot.cern.ch > > Subject: Why can I not enable reading of a split branch? > > > > > > Hi Philippe, > > > > following my questions from yesterday I spend another afternoon hunting > > bugs in root (at least I consider this to be a bug). > > What I do is (same file/library as yesterday): > > 1. Create a chain inputChain > > 2. Add a file to it > > 3. Then > > inputChain->SetBranchStatus("*",0); > > inputChain->SetBranchStatus("BRawHeader",1); <- This is a split branch > > b_header=inputChain->GetBranch("BRawHeader"); > > TRawHeader *header=0; > > b_header->SetAddress(&header); > > inputChain->GetEntry(3) > > -> No byte is read, but lots of constructors called, we had that > > yesterday... > > header->Print() > > -> header is not filled, but at least no crash... > > > > You can now nicely enable the individual branches of the split branch but > > enabling them all via inputChain->SetBranchStatus("BRawHeader",1); does > > not seem to work. This is especially problematic as I don't know in my > > code which input branches I have to expect. I consider this behaviour a > > bug, since enabling a branch should work irrespective of its split status. > > > > Cheers, > > Birger > > > > > > -- > Birger Koblitz Tel: +33/1 69 33 31 73 > Ecole Polytechnique - LLR > Route de Saclay > F-91128 Palaiseau
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:13 MET