]> git.uio.no Git - u/mrichter/AliRoot.git/blob - GEANT321/gscan/gscank.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / GEANT321 / gscan / gscank.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1995/10/24 10:21:36  cernlib
6 * Geant
7 *
8 *
9 #include "geant321/pilot.h"
10 *CMZ :  3.21/02 29/03/94  15.41.31  by  S.Giani
11 *-- Author :
12       SUBROUTINE GSCANK
13 *
14 ************************************************************************
15 *             Generates Kinematics for the SCAN utility                *
16 *                                                                      *
17 *          ==>Called by : <USER>,GUKINE                                *
18 *             Author    R.Brun  *********                              *
19 ************************************************************************
20 *
21 #include "geant321/gcbank.inc"
22 #include "geant321/gcscal.inc"
23 #include "geant321/gcscan.inc"
24 #include "geant321/gcflag.inc"
25 #include "geant321/gconsp.inc"
26 *
27       DIMENSION VERTEX(3),PLAB(3),BUF(1)
28       DATA BUF/0./
29 *
30 *     -----------------------------------------------------------------
31 *
32       IF(LSCAN.EQ.0)CALL GSCANI
33 *
34       VERTEX(1)=VSCAN(1)
35       VERTEX(2)=VSCAN(2)
36       VERTEX(3)=VSCAN(3)
37       IKSCAN = 48
38       DPHI   = (PHIMAX-PHIMIN)/NPHI
39       DTETA  = (TETMAX-TETMIN)/NTETA
40       CALL GSVERT(VERTEX,0,0,UBUF,0,NVERT)
41 *
42       DO 20  IPHI=IPHI1,IPHIL
43          IF(LQ(LSCAN-IPHI).NE.0)GO TO 20
44          PHI=DEGRAD*(PHIMIN+(IPHI-0.5)*DPHI)
45          DO 10 ITETA=1,NTETA
46             TETA=TETMIN+(ITETA-0.5)*DTETA
47             IF(MODTET.EQ.1)THEN
48                THETA=2.*ATAN(EXP(-TETA))
49             ELSE IF(MODTET.EQ.2) THEN
50                THETA=DEGRAD*TETA
51             ELSE IF(MODTET.EQ.3) THEN
52                THETA=ACOS(TETA)
53             ENDIF
54             PLAB(1) = SIN(THETA)*COS(PHI)
55             PLAB(2) = SIN(THETA)*SIN(PHI)
56             PLAB(3) = COS(THETA)
57             CALL GSKINE(PLAB,IKSCAN,NVERT,BUF,0,NT)
58    10    CONTINUE
59          GO TO 30
60    20 CONTINUE
61 *
62 *              Initialize LSTEMP
63 *
64    30 CONTINUE
65       ISCUR=NTETA+1
66       IF(LSTEMP.EQ.0)THEN
67          CALL MZBOOK(IXCONS,LSTEMP,LSTEMP,1,'LPHI',0,0,30000,1,0)
68       ENDIF
69 *
70 *              Kinematic debug (controled by ISWIT(1))
71 *
72       IF(IDEBUG.EQ.1.AND.ISWIT(1).EQ.1) THEN
73          CALL GPRINT('VERT',0)
74          CALL GPRINT('KINE',0)
75       ENDIF
76 *
77       END