5 * Revision 1.1.1.1 1995/10/24 10:21:43 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 03/07/94 19.07.28 by S.Giani
12 SUBROUTINE GSKPHO (IGK)
14 C. ******************************************************************
17 C. * Stores in stack JSTAK either the IGKth Cherenkov photon of *
18 C. * /GCKIN2/, or the NPHOT tracks when IGK is 0. *
20 C. * Called by : 'User' *
21 C. * Authors : F.Carminati *
23 C. ******************************************************************
25 #include "geant321/gcbank.inc"
26 #include "geant321/gcjloc.inc"
27 #include "geant321/gcking.inc"
28 #include "geant321/gcnum.inc"
29 #include "geant321/gcunit.inc"
30 #include "geant321/gctrak.inc"
31 #include "geant321/gcmzfo.inc"
32 #include "geant321/gcstak.inc"
33 #include "geant321/gckine.inc"
37 C. ------------------------------------------------------------------
40 * *** Make sure the request is reasonable
41 IF (NGPHOT.LE.0) GO TO 999
46 IF (IGK.LT.0.OR.IGK.GT.NGPHOT) THEN
47 WRITE(CHMAIL,10000) IGK, NGPHOT
48 10000 FORMAT(' **** GSKPHO: ',I6,'th photon requested, ',
57 * *** Store photons in stack JSTAK
59 * *** Check that the bank is there and big enough
61 NDBOOK = NTSTKP*NWSTAK +3
62 NDPUSH = NTSTKS*NWSTAK
63 CALL MZBOOK (IXCONS,JSTAK,JSTAK,1,'STAK', 1,1,NDBOOK, IOSTAK,3)
66 IF(IQ(JSTAK-2).EQ.0) THEN
67 CALL MZPUSH(IXCONS,JSTAK,1,0,'I')
69 IF(LQ(JSTAK-1).EQ.0) THEN
70 CALL MZBOOK(IXCONS,JPOLAR,JSTAK,-1,'POLA',0,0,
73 MISSNG=IQ(JSTAK+1)+N2-N1+1-IQ(JSTAK+2)
75 CALL MZPUSH (IXCONS, JSTAK, 0, MISSNG*NWSTAK+NDPUSH, 'I')
76 IQ(JSTAK+2) = IQ(JSTAK+2) +NTSTKS+MISSNG
78 MSSPOL = IQ(JSTAK+1)+N2-N1+1-IQ(JPOLAR-1)/3
80 CALL MZPUSH (IXCONS,JPOLAR,0,(NTSTKS+MSSPOL)*NWPOLA, 'I')
85 JST = JSTAK +IQ(JSTAK+1)*NWSTAK +3
86 JPO = JPOLAR +IQ(JSTAK+1)*NWPOLA
87 IQ(JSTAK+1) = IQ(JSTAK+1) +1
88 IF (IQ(JSTAK+3).EQ.0) IQ(JSTAK+3) = IQ(JSTAK+1)
89 IF (IQ(JSTAK+1).GT.NSTMAX) NSTMAX = IQ(JSTAK+1)
95 Q(JST+3+I) = XPHOT(I ,NN)
96 Q(JST+6+I) = XPHOT(I+3,NN)*XPHOT(7,NN)
97 Q(JPO+ I) = XPHOT(I+7,NN)
99 Q(JST+10) = XPHOT(11,NN)