| 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);
|