*
* $Id: gptofv.F,v 3.6 2006/11/16 18:45:29 pam-ba Exp $
*
* $Log: gptofv.F,v $
* Revision 3.6  2006/11/16 18:45:29  pam-ba
* Simulated an aluminum container for S4
*
* Revision 3.5  2006/05/18 10:52:32  pam-ba
* TOF geometry completed and a new material, the polystyrene (density 35 g/l), added
*
* Revision 3.4  2006/05/02 10:40:13  pam-ba
* TOF geometry and position updated and a new material, the mylar, added
*
* Revision 3.3  2006/04/09 23:29:22  cafagna
* Several new things, among this: ND and CARD
*
* Revision 3.2  2005/06/21 02:42:29  cafagna
* Major modification to the geometry and to the random number chain
*
* Revision 3.1.1.1  2002/07/11 16:02:01  cafagna
* First GPAMELA release on CVS
*
*
*CMZ :  2.01/00 05/04/2000  14.35.18  by  Marialuigia Ambriola
*CMZ :  2.00/00 03/03/2000  15.39.05  by  Francesco Cafagna
*CMZ :  1.02/00 21/10/99  16.30.25  by  Francesco Cafagna
*CMZ :  1.00/02 18/03/96  17.18.03  by  Francesco Cafagna
*-- Author :    Francesco Cafagna   05/12/95
      SUBROUTINE GPTOFV
************************************************************************
*                                                                      *
* Volumes definition for the scintillators counters                    *
* Called by: GPGEO                                                     *
* Author: Francesco Cafagna, 05/12/95 13.39.41                         *
*                                                                      *
************************************************************************
#include "gpgeo.inc"
#include "gpmed.inc"
*
      INTEGER IROT,IVOLU,N,NMED,NUM
      REAL X,Y,Z
*
      NMED=MAL
*
*  Define the S1     volume
*
      CALL GSVOLU('S1  ','BOX ',NMED,S1, 3,IVOLU)
*
*  Define the S2     volume
*
      CALL GSVOLU('S2  ','BOX ',NMED,S2, 3,IVOLU)
*
      NMED=MN2
*
*  Define the S1A     volume
*
      CALL GSVOLU('S1A ','BOX ',NMED,S1A, 3,IVOLU)
*
*  Define the S2A     volume
*
      CALL GSVOLU('S2A ','BOX ',NMED,S2A, 3,IVOLU)
*
*  Define the S3     volume
*
      CALL GSVOLU('S3  ','BOX ',NMED,S3, 3,IVOLU)
*
      NMED=MMYL
*
*  Define the S11M     volume
*
      CALL GSVOLU('S11M','BOX ',NMED,S11M, 3,IVOLU)
*
*  Define the S12M     volume
*
      CALL GSVOLU('S12M','BOX ',NMED,S12M, 3,IVOLU)
*
*  Define the S21M     volume
*
      CALL GSVOLU('S21M','BOX ',NMED,S21M, 3,IVOLU)
*
*  Define the S22M     volume
*
      CALL GSVOLU('S22M','BOX ',NMED,S22M, 3,IVOLU)
*
*  Define the S31M     volume
*
      CALL GSVOLU('S31M','BOX ',NMED,S31M, 3,IVOLU)
*
*  Define the S32M     volume
*
      CALL GSVOLU('S32M','BOX ',NMED,S32M, 3,IVOLU)
*
*  Define the POL1     volume
*
      NMED=MPOL
      CALL GSVOLU('POL1','BOX ',NMED,POL1, 3,IVOLU)
*
*  Define the POL2     volume
*
      CALL GSVOLU('POL2','BOX ',NMED,POL2, 3,IVOLU)
*
*  Define the POLY     volume
*
      CALL GSVOLU('POLY','BOX ',NMED,POLY, 3,IVOLU)
*
*
*  S4 container volume.
*
      NMED=MAL
      CALL GSVOLU('S4AL','BOX ',NMED,S4AL, 3,IVOLU)
*
*
*  Change medium just for S4.
*
      NMED=MSCIN
*
*  Define the S4     volume
*
      CALL GSVOLU('S4  ','BOX ',NMED,S4, 3,IVOLU)
*
*  Start subvolume definition.
*
*
*  Define the S11Y     volume
*
      CALL GSVOLU('S11Y','BOX ',NMED,S11Y, 3,IVOLU)
*
*  Define the S12X     volume
*
      CALL GSVOLU('S12X','BOX ',NMED,S12X, 3,IVOLU)
*
*  Define the S21X     volume
*
      CALL GSVOLU('S21X','BOX ',NMED,S21X, 3,IVOLU)
*
*  Define the S22Y     volume
*
      CALL GSVOLU('S22Y','BOX ',NMED,S22Y, 3,IVOLU)
*
*  Define the S31Y     volume
*
      CALL GSVOLU('S31Y','BOX ',NMED,S31Y, 3,IVOLU)
*
*  Define the S32X     volume
*
      CALL GSVOLU('S32X','BOX ',NMED,S32X, 3,IVOLU)

c$$$<<<<<<< gptofv.F
c$$$=======
c$$$c ml: 21/12/04:
c$$$      NMED=MAL
c$$$*
c$$$*  Define the SC11     volume
c$$$*
c$$$      CALL GSVOLU('SC11','BOX ',NMED,SC11, 3,IVOLU)
c$$$*
c$$$*  Define the SC12     volume
c$$$*
c$$$      CALL GSVOLU('SC12','BOX ',NMED,SC12, 3,IVOLU)
c$$$*
c$$$*  Define the SC21     volume
c$$$*
c$$$      CALL GSVOLU('SC21','BOX ',NMED,SC21, 3,IVOLU)
c$$$*
c$$$*  Define the SC22     volume
c$$$*
c$$$      CALL GSVOLU('SC22','BOX ',NMED,SC22, 3,IVOLU)
c$$$
c$$$>>>>>>> 3.3
*
* Positioning volumes
*
      X=0.
      Y=0.
      Z=0.
      CALL GSPOS('S1A ',N,'S1  ',X,Y,Z,0,'ONLY')
*
      N=1
      X=0.
      Y=0.
      Z=-S1A(3)+HGLUTOF+HPVCMIN/2.
      CALL GSPOS('POL2',N,'S1A ',X,Y,Z,0,'ONLY')
*
      X=0.
      Z=-S1A(3)+HGLUTOF+HPVCMIN+S12M(3)
      DO I=1,NS12X
         N= I
c ab mod         Y= -S1A(2) + HMYLTOF + (2*I-1)*S12M(2)
         Y= -S1A(2) + (2*I-1)*S12M(2)
         CALL GSPOS('S12M',N,'S1A ',X,Y,Z,0,'ONLY')
      ENDDO
*
      Y= 0.
      Z=-S1A(3)+HGLUTOF+HPVCMIN+2*S12M(3)+S11M(3)
      DO I=1,NS11Y
         N= I
c ab mod         X= -S1A(1) + HMYLTOF + (2*I-1)*S11M(1)
         X= -S1A(1) + (2*I-1)*S11M(1)
         CALL GSPOS('S11M',N,'S1A ',X,Y,Z,0,'ONLY')
      ENDDO
*
      N=1
      X=0.
      Y=0.
      Z=-S1A(3)+HGLUTOF+HPVCMIN+2*S12M(3)+2.*S11M(3)+HPVCMAX/2.
      CALL GSPOS('POL1',N,'S1A ',X,Y,Z,0,'ONLY')
C      Z=-S1A(3)+HGLUTOF+HPVCMAX+S12M(3)
C      CALL GSPOS('S12M',N,'S1A ',X,Y,Z,0,'ONLY')
C      Z=-S1A(3)+HGLUTOF+0.4+2*S12M(3)+S11M(3)
C      CALL GSPOS('S11M',N,'S1A ',X,Y,Z,0,'ONLY')
*
      X=0.
      Y=0.
      Z=0.
      CALL GSPOS('S2A ',N,'S2  ',X,Y,Z,0,'ONLY')
*
      Y= 0.
      Z=-S2A(3)+HGLUTOF+S22M(3)
      DO I=1,NS22Y
         N= I
c ab mod         X= -S2A(1) + HMYLTOF + (2*I-1)*S22M(1)
         X= -S2A(1) + (2*I-1)*S22M(1)
         CALL GSPOS('S22M',N,'S2A ',X,Y,Z,0,'ONLY')
      ENDDO
*
      X= 0.
      Z=-S2A(3)+HGLUTOF+2*S22M(3)+S21M(3)
      DO I=1,NS21X
         N= I
c ab mod         Y= -S2A(2) + HMYLTOF+ (2*I-1)*S21M(2)
         Y= -S2A(2) + (2*I-1)*S21M(2)
         CALL GSPOS('S21M',N,'S2A ',X,Y,Z,0,'ONLY')
      ENDDO
*
      N=1
      X=0.
      Y=0.
      Z=-S2A(3)+HGLUTOF+2*S22M(3)+2.*S21M(3)+HPVCMIN/2.
      CALL GSPOS('POLY',N,'S2A ',X,Y,Z,0,'ONLY')
C      Z=-S2A(3)+HGLUTOF+S22M(3)
C      CALL GSPOS('S22M',N,'S2A ',X,Y,Z,0,'ONLY')
C      Z=-S2A(3)+HGLUTOF+2*S22M(3)+S21M(3)
C      CALL GSPOS('S21M',N,'S2A ',X,Y,Z,0,'ONLY')
*
      X= 0.
ccC      Z=-S3(3)+HAIRS3+S32M(3)
      Z=-S3(3)+S32M(3)
      DO I=1,NS32X
         N= I
         Y= -S3(2)+ (2*I-1)*S32M(2)
         CALL GSPOS('S32M',N,'S3  ',X,Y,Z,0,'ONLY')
      ENDDO
*
      Y= 0.
ccC      Z= -S3(3)+HAIRS3+2*S32M(3)+HAIRS3+S31M(3)
      Z=-S3(3)+2*S32M(3)+HAIRS3+S31M(3)
      DO I=1,NS31Y
         N= I
         X= -S3(1)+(2*I-1)*S31M(1)
         CALL GSPOS('S31M',N,'S3  ',X,Y,Z,0,'ONLY')
      ENDDO

*
C      Z=-S3(3)+HAIRS3+S32M(3)
C      CALL GSPOS('S32M',N,'S3  ',X,Y,Z,0,'ONLY')
C      Z=-S32(3)+HAIRS3+2*S32M(3)+HAIRS3+S31M(3)
C      CALL GSPOS('S31M',N,'S3  ',X,Y,Z,0,'ONLY')
****************************************
c ml: 21/12/04:
      X=0.
      Y= 0.
      Z= 0.
      N=1
c ml: 27/10/04:
c      DO I=1,NS11Y
c         N= I
c         X= -S11M(1) + HMYLTOF + (2*I-1)*S11Y(1)
      CALL GSPOS('S11Y',N,'S11M',X,Y,Z,0,'ONLY')
c      ENDDO
c end ml.
*
      X= 0.
      Y=0.
      Z= 0.
      N=1
c ml: 27/10/04
C      DO I=1,NS12X
C         N= I
C         Y= -S11M(2) + HMYLTOF + (2*I-1)*S12X(2)
      CALL GSPOS('S12X',N,'S12M',X,Y,Z,0,'ONLY')
C      ENDDO
c end ml.
*
      X=0.
      y=0.
      Z= 0.
      N=1
C      DO I=1,NS21X
C         N= I
c      Y= -S21M(2) + HMYLTOF+ (2*I-1)*S21X(2)
      CALL GSPOS('S21X',N,'S21M',X,Y,Z,0,'ONLY')
C      ENDDO
*
      X=0.
      Y= 0.
      Z= 0.
      N=1
C      DO I=1,NS22Y
C         N= I
C      X= -S22M(1) + HMYLTOF + (2*I-1)*S22Y(1)
      CALL GSPOS('S22Y',N,'S22M',X,Y,Z,0,'ONLY')
C      ENDDO
      Y= 0.
      Z= -S31M(3)+HMYLTOF+S31Y(3)
      N=1
C      DO I=1,NS31Y
C         N= I
C         X= -S31M(1) + HMYLTOF+(2*I-1)*S31Y(1)
      X= -S31M(1) + 2*(HMYLTOF/2)+S31Y(1)
      CALL GSPOS('S31Y',N,'S31M',X,Y,Z,0,'ONLY')
C      ENDDO
*
      X= 0.
      Z= -S32M(3)+HMYLTOF+S32X(3)
      N=1
C      DO I=1,NS32X
C         N= I
C      Y= -S32M(2) + HMYLTOF+ (2*I-1)*S32X(2)
      Y= -S32M(2) + 2*(HMYLTOF/2)+ S32X(2)
      CALL GSPOS('S32X',N,'S32M',X,Y,Z,0,'ONLY')
C      ENDDO
      X=0.
      Y=0.
      Z=0.
      CALL GSPOS('S4  ',N,'S4AL',X,Y,Z,0,'ONLY')
*
      RETURN
      END
