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