Skip to content

Commit

Permalink
groot/{rcmd,rtree}: handle Geant4 recovery baskets
Browse files Browse the repository at this point in the history
  • Loading branch information
sbinet committed Sep 24, 2020
1 parent f4d329e commit 7536fc7
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 6 deletions.
21 changes: 21 additions & 0 deletions groot/rcmd/dump_test.go
Expand Up @@ -164,6 +164,27 @@ func TestDump(t *testing.T) {
[002][x]: [[10] [] [10 20]]
[003][x]: [[20 -21 -22]]
[004][x]: [[200] [-201] [202]]
`,
},
{
// Geant4 w/ recover baskets
name: "../testdata/g4-like.root",
want: `key[000]: mytree;1 "my title" (TTree)
[000][i32]: 1
[000][f64]: 1
[000][slif64]: []
[001][i32]: 2
[001][f64]: 2
[001][slif64]: [1]
[002][i32]: 3
[002][f64]: 3
[002][slif64]: [2 3]
[003][i32]: 4
[003][f64]: 4
[003][slif64]: [3 4 5]
[004][i32]: 5
[004][f64]: 5
[004][slif64]: [4 5 6 7]
`,
},
} {
Expand Down
17 changes: 11 additions & 6 deletions groot/rtree/bkreader.go
Expand Up @@ -58,12 +58,17 @@ func newBkReader(b Branch, n int, beg, end int64) *bkreader {
name: b.Name(),
}

for i, seek := range base.basketSeek {
bkr.spans[i] = rspan{
pos: seek,
sz: base.basketBytes[i],
beg: base.basketEntry[i],
end: base.basketEntry[i+1],
if len(base.basketEntry) == len(base.basketSeek) {
// prepare for recover basket mode.
base.basketEntry = append(base.basketEntry, 0)
} else {
for i, seek := range base.basketSeek {
bkr.spans[i] = rspan{
pos: seek,
sz: base.basketBytes[i],
beg: base.basketEntry[i],
end: base.basketEntry[i+1],
}
}
}

Expand Down
Binary file added groot/testdata/g4-like.root
Binary file not shown.

0 comments on commit 7536fc7

Please sign in to comment.