@@ -40,6 +40,7 @@ def convert_sad_to_xsuite(
4040 reverse_element_order : bool = False ,
4141 reverse_bend_direction : bool = False ,
4242 reverse_charge : bool = False ,
43+ install_apertures_as_markers : bool = False ,
4344 ** kwargs ):
4445
4546 ############################################################################
@@ -74,6 +75,25 @@ def convert_sad_to_xsuite(
7475 parsed_lattice_data = parsed_lattice_data ,
7576 excluded_elements = excluded_elements ,
7677 config = config )
78+
79+ ############################################################################
80+ # Check if apertures should become markers
81+ ############################################################################
82+ if install_apertures_as_markers :
83+ if config ._verbose :
84+ print_section_heading ("Converting apertures to markers" , mode = 'section' )
85+
86+ if "apert" in parsed_lattice_data ['elements' ]:
87+ if "mark" in parsed_lattice_data ['elements' ]:
88+ merged = {
89+ ** parsed_lattice_data ['elements' ]["apert" ],
90+ ** parsed_lattice_data ['elements' ]["mark" ]} # Mark takes precedence
91+ parsed_lattice_data ['elements' ]["mark" ] = merged
92+ else :
93+ parsed_lattice_data ['elements' ]["mark" ] = \
94+ parsed_lattice_data ['elements' ]["apert" ]
95+
96+ parsed_lattice_data ['elements' ].pop ("apert" )
7797
7898 ############################################################################
7999 # Build Environment
0 commit comments