source: JEM-EUSO/esaf_cc_at_lal/packages/simulation/externals/slast/src/kernel/acceptance.F @ 114

Last change on this file since 114 was 114, checked in by moretto, 11 years ago

actual version of ESAF at CCin2p3

File size: 2.0 KB
Line 
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
Note: See TracBrowser for help on using the repository browser.