@@ -735,7 +735,7 @@ class Beam:
735735 pc : float = 0.0 # momentum
736736 mass : float = 0.0
737737 charge : float = 0.0
738- freq0 : float = 0.0 # revolution frequency [MHz ]
738+ freq0 : float = 0.0 # revolution frequency [Hz ]
739739
740740
741741class EvaluationContext :
@@ -2215,9 +2215,14 @@ def _parse_beam_command(self):
22152215 sequence_name = self ._advance ().value .lower ()
22162216 else :
22172217 self ._parse_expression () # consume
2218- elif attr_name in ("energy" , "pc" , "mass" , "charge" , "freq0" ):
2218+ elif attr_name in ("energy" , "pc" , "mass" , "charge" ):
22192219 expr = self ._parse_expression ()
22202220 beam_attrs [attr_name ] = self .context .evaluate (expr )
2221+ elif attr_name == "freq0" :
2222+ expr = self ._parse_expression ()
2223+ # MAD-X BEAM/FREQ0 is specified in MHz; normalize parser
2224+ # state to Hz so downstream consumers use SI units.
2225+ beam_attrs ["freq0" ] = self .context .evaluate (expr ) * 1.0e6
22212226 else :
22222227 # Unknown attribute, skip the value
22232228 self ._parse_expression ()
@@ -2552,7 +2557,7 @@ def getEtot(self) -> float:
25522557 return self .context .beam .energy
25532558
25542559 def getFreq0 (self ) -> float :
2555- """Get revolution frequency in MHz ."""
2560+ """Get revolution frequency in Hz ."""
25562561 return self .context .beam .freq0
25572562
25582563 def getOption (self , name : str , default : Any = 0.0 ) -> Any :
0 commit comments