File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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 )
You can’t perform that action at this time.
0 commit comments