1 |
greg |
1.1 |
{ New functions for calculating light transmission through prisms. |
2 |
|
|
|
3 |
|
|
R. Compagnon and F. Di Pasquale (Spring 1992) |
4 |
|
|
LESO-PB |
5 |
|
|
EPFL |
6 |
|
|
CH-1015 LAUSANNE |
7 |
|
|
|
8 |
|
|
G. Ward modified for new fprism.c 6/30/93 |
9 |
|
|
} |
10 |
|
|
|
11 |
|
|
{ function fprism(A1..A10) performs the calculations |
12 |
|
|
A1: length a of the prism panel |
13 |
|
|
A2: length b " |
14 |
|
|
A3: length c " |
15 |
|
|
A4: length d " |
16 |
|
|
A5: indice of refraction of the prism material |
17 |
|
|
A6: fraction of the incident ray under which the ray propagation inside |
18 |
|
|
the prism is aborted (0<A6<1) |
19 |
|
|
A7: indicates which face of the prism is covered by a metallic layer |
20 |
|
|
1: face beta |
21 |
|
|
2: face gamma |
22 |
|
|
4: no face |
23 |
|
|
A8: reflection factor of the metallic layer (0<=A8<=1) |
24 |
|
|
A9: angle tolerance (in radians) for combining rays travelling nearly |
25 |
|
|
in the same direction |
26 |
|
|
A10: angle tolerance (in radians) for assuming that a ray is directed |
27 |
|
|
toward a source |
28 |
|
|
|
29 |
|
|
function fprism_val(a,b,c,d) is used to pick the necessary output values |
30 |
|
|
calculated by fprism |
31 |
|
|
a: selector for choosing which value we ask for: |
32 |
|
|
0: X direction of the ray |
33 |
|
|
1: Y " |
34 |
|
|
2: Z " |
35 |
|
|
3: transmission or reflection factor of the ray |
36 |
|
|
b: selector for choosing which kind of ray we ask for: |
37 |
|
|
-1: a reflected ray is expected |
38 |
|
|
0: any ray (reflected or transmitted) is expected |
39 |
|
|
1: a transmitted ray is expected |
40 |
|
|
c: rank of the expected ray (1<=c) |
41 |
|
|
} |
42 |
|
|
tau1 = fprism_val(3,1,1); |
43 |
|
|
dx1 = fprism_val(0,1,1); |
44 |
|
|
dy1 = fprism_val(1,1,1); |
45 |
|
|
dz1 = fprism_val(2,1,1); |
46 |
|
|
tau2 = fprism_val(3,1,2); |
47 |
|
|
dx2 = fprism_val(0,1,2); |
48 |
|
|
dy2 = fprism_val(1,1,2); |
49 |
|
|
dz2 = fprism_val(2,1,2); |