1 | SUBROUTINE ACCEPTANCE(Lmax) |
---|
2 | IMPLICIT NONE |
---|
3 | #include "detector.inc" |
---|
4 | #include "event.inc" |
---|
5 | #include "cwntvars.inc" |
---|
6 | #include "constants.inc" |
---|
7 | INTEGER i_z_dist |
---|
8 | SAVE i_z_dist,zmin |
---|
9 | DATA i_z_dist/0/ |
---|
10 | REAL dir_unit(3),SCALAR11,SCALAR12,DISCR,z_ground,zmin |
---|
11 | REAL Lmax,L1,L2 |
---|
12 | IF(i_z_dist.EQ.0) THEN |
---|
13 | zmin = ISS(3)*SIN(FOV)**2 + COS(FOV)**2* |
---|
14 | + SQRT(R_EARTH**2-TAN(FOV)**2*(ISS(3)**2-R_EARTH**2)) |
---|
15 | i_z_dist = 1 |
---|
16 | ENDIF |
---|
17 | |
---|
18 | * ... DECIDE WHAT KIND OF THE SHOWER IT IS : |
---|
19 | * ... HITTING THE GROUND SURFACE: |
---|
20 | * ... INSIDE SPACE TELESCOPE FOV (1) |
---|
21 | * ... OUTSIDE SPACE TELESCOPE FOV (2) |
---|
22 | * ... NOT HITTING THE EARTH AT ALL (3) |
---|
23 | * |
---|
24 | dir_unit(1) = -SIN(THETA/180.*PI)*COS(PHI/180.*PI) |
---|
25 | dir_unit(2) = -SIN(THETA/180.*PI)*SIN(PHI/180.*PI) |
---|
26 | dir_unit(3) = -COS(THETA/180.*PI) |
---|
27 | CALL VECTORDOT(3,RINT,RINT,SCALAR11) |
---|
28 | CALL VECTORDOT(3,RINT,dir_unit,SCALAR12) |
---|
29 | DISCR = SCALAR12**2 - SCALAR11 + (R_EARTH)**2 |
---|
30 | IF(DISCR.LT.0.) THEN |
---|
31 | * ... NO SOLUTION --> TYPE(3) |
---|
32 | ACCEPTANCE_TYPE = 3. |
---|
33 | XG = 10000. |
---|
34 | YG = 10000. |
---|
35 | ZG = 10000. |
---|
36 | Lmax = 10000. |
---|
37 | ELSE |
---|
38 | L1 = -SCALAR12 + SQRT(DISCR) |
---|
39 | L2 = -SCALAR12 - SQRT(DISCR) |
---|
40 | IF(L1.GT.0..AND.L2.GT.0.) THEN |
---|
41 | * ... CHOOSE MINIMAL L ... |
---|
42 | Lmax = MIN(L1,L2) |
---|
43 | ELSEIF(L1.LT.0..AND.L2.LT.0.) THEN |
---|
44 | * ... NO SOLUTION --> TYPE(3) |
---|
45 | ACCEPTANCE_TYPE = 3. |
---|
46 | XG = 10000. |
---|
47 | YG = 10000. |
---|
48 | ZG = 10000. |
---|
49 | Lmax = 10000. |
---|
50 | RETURN |
---|
51 | ELSEIF(L1*L2.LT.0.) THEN |
---|
52 | WRITE(6,*) 'RINT GENERATED INSIDE THE EARTH' |
---|
53 | STOP |
---|
54 | ENDIF |
---|
55 | z_ground = RINT(3) - Lmax*COS(THETA/180.*PI) |
---|
56 | XG = RINT(1) - Lmax*SIN(THETA/180.*PI)*COS(PHI/180.*PI) |
---|
57 | YG = RINT(2) - Lmax*SIN(THETA/180.*PI)*SIN(PHI/180.*PI) |
---|
58 | ZG = z_ground |
---|
59 | IF(z_ground.GE.zmin) THEN |
---|
60 | ACCEPTANCE_TYPE = 1. |
---|
61 | ELSE |
---|
62 | ACCEPTANCE_TYPE = 2. |
---|
63 | ENDIF |
---|
64 | ENDIF |
---|
65 | END |
---|