Skip to content

Commit

Permalink
Fix at disable_6d (#625)
Browse files Browse the repository at this point in the history
Fix problem when PolynomB is zeros. Now use the Class attribute
  • Loading branch information
lfarv committed Jul 5, 2023
1 parent 99c483c commit 5cafb95
Showing 1 changed file with 14 additions and 10 deletions.
24 changes: 14 additions & 10 deletions atmat/atphysics/Radiation/getclass_6d.m
Original file line number Diff line number Diff line change
@@ -1,22 +1,26 @@
function atclass=getclass_6d(elem)
%GETCLASS_6D Private. Guess class for 6d motion
%
% Returns the element class ignoring its Class field
% Returns the element class ignoring its Class field when non-ambiguous
% Simplified and faster version of atguessclass

if isfield(elem,'BendingAngle')
atclass='Bend';
elseif isfield(elem,'PolynomB') && elem.Length > 0
maxorder=elem.MaxOrder+1;
loworder=find(abs(elem.PolynomB(2:maxorder))~=0,1);
if isempty(loworder)
atclass='Drift';
elseif loworder==1
atclass='Quadrupole';
elseif loworder==2
atclass='Sextupole';
if isfield(elem, 'Class')
atclass=elem.Class;
else
atclass='Multipole';
maxorder=elem.MaxOrder+1;
loworder=find(abs(elem.PolynomB(2:maxorder))~=0,1);
if isempty(loworder)
atclass='Drift';
elseif loworder==1
atclass='Quadrupole';
elseif loworder==2
atclass='Sextupole';
else
atclass='Multipole';
end
end
elseif isfield(elem,'Frequency')
atclass='RFCavity';
Expand Down

0 comments on commit 5cafb95

Please sign in to comment.