Hadd ROOT 5.10.00 and multi-dimensional arrays

Hi,
We’re using ROOT 5.10.00 on red hat linux.

We create relatively simple ntuples where some branches are multi-dimensional arrays. Here is the structure as reported by ROOT:
root [4] t->Print()


*Tree :CalTuple : Glast tuple *
*Entries : 10 : Total = 1460101 bytes File Size = 44416 *

  •    :          : Tree compression factor =  31.55                       *
    

*Br 0 :RunID : RunID/I *
*Entries : 10 : Total Size= 674 bytes One basket in memory *
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 *

*Br 1 :EventID : EventID/I *
*Entries : 10 : Total Size= 686 bytes One basket in memory *
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 *

*Br 2 :CalXtalAdcPed[16][8][12][2] : CalXtalAdcPed[16][8][12][2]/F *
*Entries : 10 : Total Size= 148918 bytes File Size = 5147 *
*Baskets : 5 : Basket Size= 32000 bytes Compression= 23.97 *

*Br 3 :CalXtalAdcPedAllRange[16][8][12][2][4] : *

  •     | CalXtalAdcPedAllRange[16][8][12][2][4]/F                         *
    

*Entries : 10 : Total Size= 542859 bytes File Size = 17403 *
*Baskets : 10 : Basket Size= 32000 bytes Compression= 28.31 *

*Br 4 :CalXtalAdcRng[16][8][12][2] : CalXtalAdcRng[16][8][12][2]/I *
*Entries : 10 : Total Size= 148918 bytes File Size = 1441 *
*Baskets : 5 : Basket Size= 32000 bytes Compression= 85.61 *

Br 5 :CalXtalFaceSignal[16][8][12][2] : CalXtalFaceSignal[16][8][12][2]/F
*Entries : 10 : Total Size= 124186 bytes File Size = 5189 *
*Baskets : 5 : Basket Size= 32000 bytes Compression= 23.78 *

*Br 6 :CalXtalFaceSignalAllRange[16][8][12][2][4] : *

  •     | CalXtalFaceSignalAllRange[16][8][12][2][4]/F                     *
    

*Entries : 10 : Total Size= 493549 bytes File Size = 13774 *
*Baskets : 10 : Basket Size= 32000 bytes Compression= 35.77 *

We use hadd to combine two or more of these files. This works fine when using hadd from ROOT 4.08.00, however we are seeing strange results when using hadd in ROOT 5.10.00, we’ve tried various levels of compression and still seem odd results. It seems some of the entires associated with the multi-dimensional arrays are being scrambled. Here is a scan of the first 3 events in the first file, followed by the first 3 events in the resulting merged file:

root [1] t->Scan(“RunID:EventID:CalXtalAdcPed[3][2][5][0]:CalXtalAdcPedAllRange[3][2][5][0][1]:CalXtalAdcRng[3][2][5][0]”)


  • Row * RunID * EventID * CalXtalAd * CalXtalAd * CalXtalAd *

  •    0 *         0 *         1 *  1505.625 * 164.59300 *         0 *
    
  •    1 *         0 *         2 *  1383.625 * 149.59300 *         0 *
    
  •    2 *         0 *         3 * 1255.5930 * 1255.5930 *         1 *
    

root [2] t2->Scan(“RunID:EventID:CalXtalAdcPed[3][2][5][0]:CalXtalAdcPedAllRange[3][2][5][0][1]:CalXtalAdcRng[3][2][5][0]”)


  • Row * RunID * EventID * CalXtalAd * CalXtalAd * CalXtalAd *

  •    0 *         0 *         1 *  1505.625 * 164.59300 *         0 *
    
  •    1 *         0 *         2 *  1383.625 * 149.59300 *         0 *
    
  •    2 *         0 *         3 * 787.59301 * 1255.5930 *         1 *
    

You can see in the third event, that CalXtalAdcPed[3][2][5][0] is no longer 1255.5930, but rather 787.59301

We can merge these files successfully using our own scripts created from scratch, but we’re hoping to continue to use hadd as it’s rather conveniently bundled with ROOT.

Is there any known problem with hadd in 5.10.00 that was fixed in later versions?

Thanks,
Heather

Hi Heather,

This problem has already been reported by Thierry Reposur and francesco Longo. We will investigate.

Rene

Heather, Thierry, Francesco,

Thanks for reporting this problem. Thanks to the short data file I was able to finally understand this elusive problem. This will be fixed shortly.

Cheers,
Philippe.

This problem is fixed in CVS and will be part of the next release (5.13/02).

Cheers,
Philippe.

Hi,

Thanks for the update. When is 5.13/02 scheduled to be released?

Thanks,
Heather

The current plan for 5.13/02 is August 30

Rene