1+ """
2+ @enumx PhaseReference::UInt8 Accelerating BelowTransition AboveTransition
3+
4+ Sets what zero `phi0` RF phase means
5+ - `Accelerating` Zero phase is the maximum accelerating phase.
6+ - `BelowTransition` Zero phase is at the stable zero crossing for particles below transition.
7+ - `AboveTransition` Zero phase is at the stable zero crossing for particles above transition.
8+ """
9+ @enumx PhaseReference:: UInt8 Accelerating BelowTransition AboveTransition
10+
111@kwdef mutable struct RFParams{T} <: AbstractParams
212 rate:: T = Float32 (0.0 ) # RF frequency in Hz or Harmonic number
313 voltage:: T = Float32 (0.0 ) # Voltage in V
414 phi0:: T = Float32 (0.0 ) # Phase at reference energy
515 const harmon_master:: Bool = false # false = frequency in Hz, true = harmonic number
16+ zero_phase:: PhaseReference.T = PhaseReference. Accelerating # Determines the RF phase at phi0 = 0
617 traveling_wave:: Bool = false # Traveling wave or standing wave cavity?
718 is_crabcavity:: Bool = false # Is this a crab cavity?
819 function RFParams (args... )
@@ -19,6 +30,7 @@ function Base.isapprox(a::RFParams, b::RFParams)
1930 a. voltage ≈ b. voltage &&
2031 a. phi0 ≈ b. phi0 &&
2132 a. harmon_master == b. harmon_master &&
33+ a. zero_phase == b. zero_phase &&
2234 a. traveling_wave == b. traveling_wave &&
2335 a. is_crabcavity == b. is_crabcavity
2436end
@@ -39,8 +51,9 @@ function deval(a::RFParams{<:DefExpr})
3951 deval (a. voltage),
4052 deval (a. phi0),
4153 deval (a. harmon_master),
54+ deval (a. zero_phase),
4255 deval (a. traveling_wave),
43- deval (a. is_crabcavity)
56+ deval (a. is_crabcavity),
4457 )
4558end
4659
6073function Base. setproperty! (c:: RFParams{T} , key:: Symbol , value) where {T}
6174 if key in (:rate , :voltage , :phi0 )
6275 return setfield! (c, key, T (value))
63- elseif key in (:harmon_master , :traveling_wave , :is_crabcavity )
76+ elseif key in (:harmon_master , :zero_phase , : traveling_wave , :is_crabcavity )
6477 return setfield! (c, key, value)
6578 elseif key in (:rf_frequency , :harmon )
6679 if (key == :harmon ) == c. harmon_master
0 commit comments