source: MML/trunk/at/atphysics/findspos.m @ 4

Last change on this file since 4 was 4, checked in by zhangj, 10 years ago

Initial import--MML version from SOLEIL@2013

File size: 984 bytes
Line 
1function spos = findspos(LINE,REFPTS)
2%FINDSPOS returns longitudinal positions of accelerator lattice elements.
3%  Return value is a vector of positions S at the entrance of each element
4%  specified by its number in REFPTS
5%
6% Note: REFPTS is an array of increasing indexes that 
7%   select elements from range 1 to length(LATTICE)+1.
8%   REFPTS is allowed to go 1 point beyond the
9%   number of elements. In this case the last point is
10%   the EXIT of the last element. If LATTICE is a RING
11%   it is also the entrance of the first element after 1 turn.
12%   
13%   Note:
14%   1. Use findspos(RING,1:length(RING)) for to find
15%      longitudinal position of all elements
16%   2. Use findspos(LINE,length(LINE)+1) to find the
17%      total physical length
18%   3. If line is a closed ring, exit of the last element
19%      is also the entrance to the first.
20
21NEp1 = length(LINE) + 1;
22
23L  = zeros(1,NEp1);
24
25for k = 2:NEp1
26   L(k) = L(k-1) + LINE{k-1}.Length;
27end
28
29spos = L(REFPTS);
Note: See TracBrowser for help on using the repository browser.