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