1 | function [CavityState, PassMethod, ATCavityIndex, RF, HarmNumber] = getcavity |
---|
2 | %GETCAVITY - Returns the RF cavity state ('On' / 'Off') |
---|
3 | % [CavityState, PassMethod, ATCavityIndex, RF, HarmonicNumber] = getcavity |
---|
4 | % |
---|
5 | % OUTPUTS |
---|
6 | % 1. CavityState |
---|
7 | % 2. PassMethod |
---|
8 | % 3. ATCavityIndex - AT Index of the RF cavities |
---|
9 | % 4. RF - RF frequency [Hz] |
---|
10 | % 5. HarmonicNumber - Harmonic number |
---|
11 | % |
---|
12 | % See also setcavity, setradiation |
---|
13 | % |
---|
14 | % Written by Greg Portmann |
---|
15 | |
---|
16 | |
---|
17 | global THERING |
---|
18 | |
---|
19 | ATCavityIndex = findcells(THERING, 'Frequency'); |
---|
20 | |
---|
21 | CavityState = ''; |
---|
22 | PassMethod = ''; |
---|
23 | RF = []; |
---|
24 | HarmNumber = []; |
---|
25 | |
---|
26 | if isempty(ATCavityIndex) |
---|
27 | %disp(' No cavities were found in the lattice'); |
---|
28 | return |
---|
29 | end |
---|
30 | |
---|
31 | ATCavityIndex =ATCavityIndex(:)'; |
---|
32 | for ii = ATCavityIndex(:)' |
---|
33 | if strcmpi(THERING{ii}.PassMethod, 'DriftPass') || strcmpi(THERING{ii}.PassMethod, 'IdentityPass') |
---|
34 | CavityState = strvcat(CavityState,'Off'); |
---|
35 | else |
---|
36 | CavityState = strvcat(CavityState,'On'); |
---|
37 | end |
---|
38 | PassMethod = strvcat(PassMethod, THERING{ii}.PassMethod); |
---|
39 | RF = [RF; THERING{ii}.Frequency]; |
---|
40 | |
---|
41 | if isfield(THERING{ii}, 'HarmNumber') |
---|
42 | HarmNumber = THERING{ii}.HarmNumber; |
---|
43 | end |
---|
44 | end |
---|
45 | |
---|
46 | ATCavityIndex = ATCavityIndex(:); |
---|
47 | |
---|
48 | |
---|