This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / GEANT321 / ghits / gsdeta.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1995/10/24 10:21:11  cernlib
6 * Geant
7 *
8 *
9 #include "geant321/pilot.h"
10 *CMZ :  3.21/02 29/03/94  15.41.20  by  S.Giani
11 *-- Author :
12       SUBROUTINE GSDETA (IUSET, IUDET, IUALI, NWHI, NWDI, IALI)
13 C.
14 C.    ******************************************************************
15 C.    *                                                                *
16 C.    *                 Handling Detector Aliases                      *
17 C.    *                 --------------------------                     *
18 C.    *                                                                *
19 C.    * Detector  'aliases'  can  be  specified  for  any  sensitive   *
20 C.    * detector for  which the  user needs to  store more  than one   *
21 C.    * type of hit.                                                   *
22 C.    *   Defines an  alias IUALI for  detector IUDET of  set IUSET.   *
23 C.    * Enters it in the JSET structure as an additional detector in   *
24 C.    * the corresponding set,  at the position IALI.  Copies to the   *
25 C.    * link  position  IALI  the  GSDET  parameter  bank  from  the   *
26 C.    * original detector  IUDET,  with empty  links to  the GSDETH,   *
27 C.    * GSDETD and GSDETU parameter banks.    The user can therefore   *
28 C.    * call  these   three  routines   again  with   the  arguments   *
29 C.    * appropriate to the  detector IUALI.  Several aliases  can be   *
30 C.    * defined  for the  same  detector through  as  many calls  to   *
31 C.    * GSDETA.                                                        *
32 C.    *                                                                *
33 C.    *    ==>Called by : <USER>, UGEOM                                *
34 C.    *       Author    F.Bruyant  *********                           *
35 C.    *                                                                *
36 C.    ******************************************************************
37 C.
38 #include "geant321/gcbank.inc"
39 #include "geant321/gcunit.inc"
40 #include "geant321/gcmzfo.inc"
41       CHARACTER*4 IUSET,IUDET,IUALI
42 C.
43 C.    ------------------------------------------------------------------
44 C.
45       IF (JSET.LE.0) GO TO 90
46       NSET = IQ(JSET-1)
47       IF (NSET.LE.0) GO TO 90
48       CALL GLOOK(IUSET,IQ(JSET+1),NSET,ISET)
49       IF (ISET.LE.0) GO TO 90
50       JS = LQ(JSET-ISET)
51       NDET = IQ(JS-1)
52       IF (NDET.LE.0) GO TO 90
53       CALL GLOOK(IUDET,IQ(JS+1),NDET,IDET)
54       IF (IDET.LE.0) GO TO 90
55       CALL GLOOK(IUALI,IQ(JS+1),NDET,IALI)
56       IF (IALI.NE.0) GO TO 95
57       JD = LQ(JS-IDET)
58       NDATA = IQ(JD-1)
59 C
60       CALL MZPUSH(IXCONS, JS, 1, 1,'I')
61       NDET = NDET +1
62       IALI = NDET
63       CALL UCTOH(IUALI,IQ(JS+IALI),4,4)
64 C
65       CALL MZBOOK(IXCONS,JD2,JS,-IALI, 'SEJD',4,4, NDATA,IOSEJD,0)
66       IQ(JD2-5)=10*ISET+IALI
67       JD = LQ(JS-IDET)
68       CALL UCOPY (IQ(JD+1), IQ(JD2+1), NDATA)
69       IQ(JD2+7) = NWHI
70       IQ(JD2+8) = NWDI
71       IQ(JD2+10) = IDET
72       GO TO 99
73 C
74    90 WRITE (CHMAIL, 1000) IUSET, IUDET
75       CALL GMAIL(0,0)
76  1000 FORMAT (' ***** GSDETA ERROR FOR SET ',A4,' OR DETECTOR ',A4)
77       GO TO 99
78    95 WRITE (CHMAIL, 2000) IUSET, IUALI
79       CALL GMAIL(0,0)
80  2000 FORMAT (' ***** GSDETA ERROR FOR SET ', A4, ' ALIAS NAME '
81      +, A4, ' ALREADY USED')
82 C
83   99  RETURN
84       END