Skip to content

Commit e3a65bf

Browse files
committed
catch runtime errors
1 parent 5465e24 commit e3a65bf

1 file changed

Lines changed: 19 additions & 7 deletions

File tree

src/graphnet/data/extractors/icecube/i3highesteparticleextractor.py

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -203,13 +203,25 @@ def get_tracks(
203203
break
204204
MMCTrackList = simclasses.I3MMCTrackList(temp_MMCTrackList)
205205
elif self._is_corsika & self.daughters:
206-
MMCTrackList = [
207-
track
208-
for track in MMCTrackList
209-
if frame[self.mctree].get_primary(track.GetI3Particle())
210-
in primaries
211-
]
212-
MMCTrackList = simclasses.I3MMCTrackList(MMCTrackList)
206+
MMCTrackList_filtered = []
207+
for track in MMCTrackList:
208+
try:
209+
if (
210+
frame[self.mctree].get_primary(track.GetI3Particle())
211+
in primaries
212+
):
213+
MMCTrackList_filtered.append(track)
214+
except RuntimeError as e:
215+
if "particle not found" in str(e):
216+
# get event header
217+
self.warning(
218+
f"Particle {track.GetI3Particle().id} not found in MCTree."
219+
f" Skipping track in event {frame['I3EventHeader']}"
220+
)
221+
else:
222+
raise e # re-raise unexpected errors
223+
224+
MMCTrackList = simclasses.I3MMCTrackList(MMCTrackList_filtered)
213225

214226
MuonGun_tracks = np.array(
215227
MuonGun.Track.harvest(frame[self.mctree], MMCTrackList)

0 commit comments

Comments
 (0)