Skip to content

Commit 7e71dab

Browse files
committed
Work around ROOT bug in HitPattern IO read rule
Until root-project/root#17523, ROOT had a (long-standing) issue that array dimensions would spill into all following source types. To allow the rule to compile with old and new versions of ROOT, move the array source last to work around the issue. For illustration purposes, here is the generated type of onfile before: ``` struct recocLcLHitPattern_Onfile { typedef uint16_t onfile_hitPattern_t[50]; onfile_hitPattern_t &hitPattern; typedef uint8_t onfile_hitCount_t[50]; onfile_hitCount_t &hitCount; typedef uint8_t onfile_beginTrackHits_t[50]; onfile_beginTrackHits_t &beginTrackHits; typedef uint8_t onfile_endTrackHits_t[50]; onfile_endTrackHits_t &endTrackHits; typedef uint8_t onfile_beginInner_t[50]; onfile_beginInner_t &beginInner; typedef uint8_t onfile_endInner_t[50]; onfile_endInner_t &endInner; typedef uint8_t onfile_beginOuter_t[50]; onfile_beginOuter_t &beginOuter; typedef uint8_t onfile_endOuter_t[50]; onfile_endOuter_t &endOuter; } ``` and after this change: ``` struct recocLcLHitPattern_Onfile { uint8_t &hitCount; uint8_t &beginTrackHits; uint8_t &endTrackHits; uint8_t &beginInner; uint8_t &endInner; uint8_t &beginOuter; uint8_t &endOuter; typedef uint16_t onfile_hitPattern_t[50]; }; ```
1 parent 7f549d8 commit 7e71dab

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

DataFormats/TrackReco/src/classes_def.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,16 @@
2929
</class>
3030
<ioread
3131
sourceClass="reco::HitPattern"
32-
source="uint16_t hitPattern[50]; uint8_t hitCount; uint8_t beginTrackHits; uint8_t endTrackHits;uint8_t beginInner; uint8_t endInner; uint8_t beginOuter; uint8_t endOuter;"
32+
source="uint8_t hitCount; uint8_t beginTrackHits; uint8_t endTrackHits;uint8_t beginInner; uint8_t endInner; uint8_t beginOuter; uint8_t endOuter; uint16_t hitPattern[50];"
3333
targetClass="reco::HitPattern"
3434
target="hitPattern,hitCount,beginTrackHits,endTrackHits,beginInner,endInner,beginOuter,endOuter"
3535
version="[12]"
3636
>
3737
<![CDATA[
38-
(void) reco::HitPattern::fillNewHitPatternWithOldHitPattern_v12(onfile.hitPattern, *onfile.hitCount,
39-
*onfile.beginTrackHits, *onfile.endTrackHits,
40-
*onfile.beginInner, *onfile.endInner,
41-
*onfile.beginOuter, *onfile.endOuter,
38+
(void) reco::HitPattern::fillNewHitPatternWithOldHitPattern_v12(onfile.hitPattern, onfile.hitCount,
39+
onfile.beginTrackHits, onfile.endTrackHits,
40+
onfile.beginInner, onfile.endInner,
41+
onfile.beginOuter, onfile.endOuter,
4242
newObj);
4343
]]>
4444
</ioread>

0 commit comments

Comments
 (0)