]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/gtrak/gskpho.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / GEANT321 / gtrak / gskpho.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
2c0ad21d 5* Revision 1.1.1.1 1999/05/18 15:55:21 fca
6* AliRoot sources
7*
fe4da5cc 8* Revision 1.1.1.1 1995/10/24 10:21:43 cernlib
9* Geant
10*
11*
12#include "geant321/pilot.h"
13*CMZ : 3.21/02 03/07/94 19.07.28 by S.Giani
14*-- Author :
15 SUBROUTINE GSKPHO (IGK)
16C.
17C. ******************************************************************
18C. * *
19C. * *
20C. * Stores in stack JSTAK either the IGKth Cherenkov photon of *
21C. * /GCKIN2/, or the NPHOT tracks when IGK is 0. *
22C. * *
23C. * Called by : 'User' *
24C. * Authors : F.Carminati *
25C. * *
26C. ******************************************************************
27C.
28#include "geant321/gcbank.inc"
29#include "geant321/gcjloc.inc"
30#include "geant321/gcking.inc"
31#include "geant321/gcnum.inc"
32#include "geant321/gcunit.inc"
33#include "geant321/gctrak.inc"
34#include "geant321/gcmzfo.inc"
35#include "geant321/gcstak.inc"
36#include "geant321/gckine.inc"
37*
38 PARAMETER (NWPOLA=3)
39C.
40C. ------------------------------------------------------------------
41C.
42*
43* *** Make sure the request is reasonable
44 IF (NGPHOT.LE.0) GO TO 999
45 IF (IGK.EQ.0) THEN
46 N1 = 1
47 N2 = NGPHOT
48 ELSE
49 IF (IGK.LT.0.OR.IGK.GT.NGPHOT) THEN
50 WRITE(CHMAIL,10000) IGK, NGPHOT
5110000 FORMAT(' **** GSKPHO: ',I6,'th photon requested, ',
52 + I6,' in stack')
53 CALL GMAIL(0,0)
54 GO TO 999
55 ENDIF
56 N1 = IGK
57 N2 = IGK
58 ENDIF
59*
60* *** Store photons in stack JSTAK
61*
62* *** Check that the bank is there and big enough
63 IF (JSTAK.EQ.0) THEN
64 NDBOOK = NTSTKP*NWSTAK +3
65 NDPUSH = NTSTKS*NWSTAK
66 CALL MZBOOK (IXCONS,JSTAK,JSTAK,1,'STAK', 1,1,NDBOOK, IOSTAK,3)
67 IQ(JSTAK+2) = NTSTKP
68 ENDIF
69 IF(IQ(JSTAK-2).EQ.0) THEN
70 CALL MZPUSH(IXCONS,JSTAK,1,0,'I')
71 ENDIF
72 IF(LQ(JSTAK-1).EQ.0) THEN
73 CALL MZBOOK(IXCONS,JPOLAR,JSTAK,-1,'POLA',0,0,
74 + NTSTKP*NWPOLA,3,-1)
75 ENDIF
76 MISSNG=IQ(JSTAK+1)+N2-N1+1-IQ(JSTAK+2)
77 IF (MISSNG.GT.0) THEN
78 CALL MZPUSH (IXCONS, JSTAK, 0, MISSNG*NWSTAK+NDPUSH, 'I')
79 IQ(JSTAK+2) = IQ(JSTAK+2) +NTSTKS+MISSNG
80 ENDIF
81 MSSPOL = IQ(JSTAK+1)+N2-N1+1-IQ(JPOLAR-1)/3
82 IF(MSSPOL.GT.0) THEN
83 CALL MZPUSH (IXCONS,JPOLAR,0,(NTSTKS+MSSPOL)*NWPOLA, 'I')
84 ENDIF
85*
86* *** Now we can go
87 DO 20 NN=N1,N2
88 JST = JSTAK +IQ(JSTAK+1)*NWSTAK +3
89 JPO = JPOLAR +IQ(JSTAK+1)*NWPOLA
90 IQ(JSTAK+1) = IQ(JSTAK+1) +1
91 IF (IQ(JSTAK+3).EQ.0) IQ(JSTAK+3) = IQ(JSTAK+1)
92 IF (IQ(JSTAK+1).GT.NSTMAX) NSTMAX = IQ(JSTAK+1)
93*
94 IQ(JST+1) = -ITRA
2c0ad21d 95 IQ(JST+2) = IPART
fe4da5cc 96 IQ(JST+3) = 0
97 DO 10 I = 1,3
98 Q(JST+3+I) = XPHOT(I ,NN)
99 Q(JST+6+I) = XPHOT(I+3,NN)*XPHOT(7,NN)
100 Q(JPO+ I) = XPHOT(I+7,NN)
101 10 CONTINUE
102 Q(JST+10) = XPHOT(11,NN)
103 Q(JST+11) = SAFETY
104 Q(JST+12) = UPWGHT
105*
106 NALIVE = NALIVE +1
107 20 CONTINUE
108* END GSKPHO
109 999 END