@@ -280,43 +280,37 @@ def _slice_element(self, name, element, chosen_slicing, _edge_markers=True) -> O
280280 name = name ,
281281 )
282282
283- if _edge_markers :
284-
285- if isinstance (element , xt .Replica ):
286- element = element .resolve (self ._line )
287- _buffer = element ._buffer
288-
289- entry_marker , exit_marker = f'{ name } _entry' , f'{ name } _exit'
290- self ._line ._element_dict [entry_marker ] = xt .Marker (_buffer = _buffer )
291- self ._line ._element_dict [exit_marker ] = xt .Marker (_buffer = _buffer )
292- slices_to_add = [entry_marker ] + slices_to_add + [exit_marker ]
293-
294- # Handle aperture
295283 if isinstance (element , xt .Replica ):
296284 element = element .resolve (self ._line )
285+
286+ # Handle aperture
297287 if (hasattr (element , 'name_associated_aperture' )
298288 and element .name_associated_aperture is not None ):
299289 new_slices_to_add = []
300290 aper_index = 0
301291 for nn in slices_to_add :
302292 ee = self ._line ._element_dict [nn ]
303293 if (type (ee ).__name__ .startswith ('ThinSlice' )
304- or type (ee ).__name__ .startswith ('ThickSlice' )
305- or (_edge_markers and nn == exit_marker )):
294+ or type (ee ).__name__ .startswith ('ThickSlice' )):
306295 aper_name = f'{ name } _aper..{ aper_index } '
307296 self ._line ._element_dict [aper_name ] = xt .Replica (
308297 parent_name = element .name_associated_aperture )
309298 new_slices_to_add += [aper_name ]
310299 aper_index += 1
311- if not _edge_markers :
312- # If no edge markers, we need to manually add an
313- # aperture after the last slice.
314- aper_name = f'{ name } _aper..{ aper_index } '
315- self ._line ._element_dict [aper_name ] = xt .Replica (
316- parent_name = element .name_associated_aperture )
317- new_slices_to_add += [aper_name ]
318300 new_slices_to_add += [nn ]
319- slices_to_add = new_slices_to_add
301+ # Final aperture
302+ aper_name = f'{ name } _aper..{ aper_index } '
303+ self ._line ._element_dict [aper_name ] = xt .Replica (
304+ parent_name = element .name_associated_aperture )
305+
306+ slices_to_add = new_slices_to_add + [aper_name ]
307+
308+ if _edge_markers :
309+ _buffer = element ._buffer
310+ entry_marker , exit_marker = f'{ name } _entry' , f'{ name } _exit'
311+ self ._line ._element_dict [entry_marker ] = xt .Marker (_buffer = _buffer )
312+ self ._line ._element_dict [exit_marker ] = xt .Marker (_buffer = _buffer )
313+ slices_to_add = [entry_marker ] + slices_to_add + [exit_marker ]
320314
321315 return slices_to_add
322316
0 commit comments