Hi Maksim,
Thanks for this remark.
I have modified TChain::Add in CVS to sort the files in alphanumeric order
in case a regular expression is used in the argument.
Rene Brun
"Maksim A. Nikulin" wrote:
>
> Hi,
>
> Firstly, mandatory info: root-3.05.07 gcc2.95.2 RedHat-7.3 binary
> installation.
>
> I noticed that file order in a chain after
> Int_t TChain::Add(const char *name, Int_t nentries)
> is depends on file creation sequence, if I use a regular expression.
> I think the file file1.root should be before file2.root when
> chain->Add("file[1-2].root") is used.
>
> If chain1 have a friend chain2 then inappropriate file order in any
> chain leads to wrong entry accordance.
>
> See the script wrong_order in the attachment. Four files
> tree1.root, tree2.root, friend2.root, friend1.root are created and
> merged. I get
> <session>
> $ root wrong_order.C
> <skip />
> ************************************
> * Row * var * friend_va *
> ************************************
> * 0 * 1 * 2 *
> * 1 * 2 * 1 *
> ************************************
> </session>
>
> I expect
> <expected>
> ************************************
> * Row * var * friend_va *
> ************************************
> * 0 * 1 * 1 *
> * 1 * 2 * 2 *
> ************************************
> </expected>
>
> I think this effect takes place because of simple loop other directory
> without sorting in the
> Int_t TChain::Add(const char *name, Int_t nentries)
> implementation.
>
> Best regards,
> Maksim Nikulin
>
> --------------------------------------------------------------------------------
> Name: wrong_order.C
> wrong_order.C Type: Plain Text (text/plain)
> Encoding: 7bit
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:14 MET