source: trunk/examples/extended/electromagnetic/TestEm3/geant3/src/ugeom.F @ 1309

Last change on this file since 1309 was 807, checked in by garnier, 16 years ago

update

File size: 6.4 KB
Line 
1
2      SUBROUTINE UGEOM
3*
4* *** Define user geometry set up
5*
6#include "calor.inc"
7#include "geant321/gcbank.inc"
8*
9      DIMENSION PAR(3)
10
11      DIMENSION Aair(2),Zair(2),Wair(2)
12      DIMENSION ACO2(2),ZCO2(2),WCO2(2)
13      DIMENSION AH2O(2),ZH2O(2),WH2O(2)
14      DIMENSION AG10(4),ZG10(4),WG10(4)
15      DIMENSION Asci(2),Zsci(2),Wsci(2)
16      DIMENSION ACsI(2),ZCsI(2),WCsI(2)                                                   
17*
18      CHARACTER*4  volnam
19      CHARACTER*20 matnam
20*     
21* *** Air compound parameters         
22      DATA Aair/14.01, 16.00/
23      DATA Zair/ 7.  ,  8.  /
24      DATA Wair/ 0.7 ,  0.3 /
25*                                                                               
26* *** CO2 compound parameters
27      DATA ACO2/12.01, 16.00/
28      DATA ZCO2/ 6.  ,  8.  /
29      DATA WCO2/ 1.  ,  2.  /
30*                                                                               
31* *** Water compound parameters
32      DATA AH2O/ 1.01, 16.00/
33      DATA ZH2O/ 1.  ,  8.  /
34      DATA WH2O/ 2.  ,  1.  /
35*                                                                               
36* *** G10 compound parameters
37      DATA AG10/ 1.01, 12.00, 16.00, 28.00/
38      DATA ZG10/ 1.  ,  6.  ,  8.  , 14.  /
39      DATA WG10/ 3.  ,  3.  ,  2.  ,  1.  /     
40*                                                                               
41* *** Scintillator compound parameters
42      DATA Asci/12.01,  1.01/
43      DATA Zsci/ 6.  ,  1.  /
44      DATA Wsci/ 9.  , 10.  /                                                                               
45*                                                                               
46* *** CsI compound parameters
47      DATA ACsI/ 126.90, 132.90/
48      DATA ZCsI/ 53.   , 55.   /
49      DATA WCsI/ 1.    , 1.    /     
50*
51* *** Defines USER perticular materials
52      CALL GSMIXT( 1,'Air'      , Aair ,Zair, 1.29E-3, 2   , Wair)
53      CALL GSMIXT( 2,'CO2 gas'  , ACO2 ,ZCO2, 27.0E-3,-2   , WCO2)
54      CALL GSMATE( 3,'H2 Liquid',  1.008,  1., 0.0708 , 865., 790., 0,0)
55      CALL GSMIXT( 4,'Water'    , AH2O ,ZH2O, 1.0    ,-2   , WH2O)
56      CALL GSMATE( 5,'Liquid Ar', 39.95, 18., 1.39   , 14.0, 84.0, 0,0)
57      CALL GSMATE( 6,'Aluminium', 26.98, 13., 2.7    ,  8.9, 37.2, 0,0)
58      CALL GSMATE( 7,'Iron     ', 55.85, 26., 7.87   , 1.76, 17.1, 0,0)
59      CALL GSMATE( 8,'Lead     ',207.19, 82., 11.35  , 0.56, 18.5, 0,0)
60      CALL GSMATE( 9,'Uranium  ',238.03, 92., 18.95  , 0.32, 12. , 0,0)
61      CALL GSMATE(10,'Silicon  ', 28.09, 14.,  2.33  , 9.36, 45.5, 0,0)
62      CALL GSMATE(11,'Tungsten ',183.85, 74., 19.30  , 0.35,  9.6, 0,0)
63      CALL GSMIXT(12,'NemaG10'  , AG10 ,ZG10, 1.7    ,-4   , WG10)
64      CALL GSMATE(13,'Copper   ', 63.55, 29., 8.96   , 1.43, 15.0, 0,0)
65      CALL GSMIXT(14,'Scintilla', Asci ,Zsci, 1.032  ,-2   , Wsci)
66      CALL GSMATE(15,'Gold     ',196.97, 79., 19.32  , 0.33,  9.6, 0,0)
67      CALL GSMIXT(16,'CsI      ', ACsI ,ZCsI, 4.534  ,-2   , WCsI)           
68*
69* *** overwrite the computed radlength of some mixture
70      JMA = LQ(JMATE-14)
71      Q(JMA+9) = 42.549           
72*                                               
73*                                                                               
74* *** Defines USER tracking media parameters
75      IFIELD = 0                                                             
76      IF (Field.GT.0.) IFIELD = 3
77      FIELDM = 10*Field
78      TMAXFD = 10.0                                                             
79      STEMAX = 1000.
80      IF (stepmax.gt.0.) STEMAX = stepmax
81      DEEMAX = 0.20                                                           
82      EPSIL  = 0.001                                                           
83      STMIN  = 0.010                                                           
84*
85      do k=1,NbAbsor
86        CALL GSTMED( k,'absorber',materAbs(k), 0 ,IFIELD,FIELDM,TMAXFD,
87     *                 STEMAX,DEEMAX,EPSIL,STMIN, 0 , 0 )
88      enddo
89*
90* *** set specific bcute/dcute (if any)     
91      do k=1,4*NbAbsor,4
92         itm = prodcut(k) + 0.01
93        if(itm.ge.1) then
94           call GSTPAR(itm,'BCUTE' ,prodcut(k+1))
95           call GSTPAR(itm,'BCUTM' ,prodcut(k+1))         
96           call GSTPAR(itm,'DCUTE' ,prodcut(k+2))
97           call GSTPAR(itm,'DCUTM' ,prodcut(k+2))
98           call GSTPAR(itm,'PPCUTM',prodcut(k+3))
99        endif   
100      enddo
101*
102      nudef = NbAbsor+1
103      CALL GSTMED( nudef,'default' , 1    , 0 ,IFIELD,FIELDM,TMAXFD,
104     *                 STEMAX,DEEMAX,EPSIL,STMIN, 0 , 0 )
105*
106*
107* *** calor dimensions
108      thLayer = 0.
109      do k=1,NbAbsor
110        thLayer = thLayer + thickAbs(k)
111      enddo
112      calorX  = NbLayer*thLayer
113      worldX  = 1.2*calorX
114      worldYZ = 1.2*calorYZ
115*
116* *** world
117      PAR(1) = worldX /2.
118      PAR(2) = worldYZ/2.
119      PAR(3) = worldYZ/2.
120      CALL GSVOLU('worl','BOX ',nudef,PAR,3,IVOL)
121*
122* *** calorimeter
123      PAR(1) = calorX /2.
124      PAR(2) = calorYZ/2.
125      PAR(3) = calorYZ/2.
126      CALL GSVOLU('calo','BOX ',nudef,PAR,3,IVOL)
127      CALL GSPOS ('calo',1,'worl',0.,0.,0.,0,'ONLY')
128*
129* *** layers
130      CALL GSDVN ('layr','calo',NbLayer,1)
131*
132* *** absorbers
133      volnam = 'abs'
134      xfront = -0.5*thLayer
135      do k=1,NbAbsor
136        PAR(1) = thickAbs(k)/2.
137        PAR(2) = calorYZ/2.
138        PAR(3) = calorYZ/2.
139        volnam(4:4) = char(ichar('0')+k)
140        CALL GSVOLU(volnam,'BOX ',k,PAR,3,IVOL)
141        xcenter = xfront + 0.5*thickAbs(k)
142        CALL GSPOS (volnam,1,'layr',xcenter,0.,0.,0,'ONLY')
143        xfront = xfront + thickAbs(k)
144      enddo                                     
145*                                                                               
146* *** Close geometry banks. (mandatory system routine)
147      CALL GGCLOS
148*
149* *** print geometry
150      PRINT 749
151      PRINT 751,NbLayer
152      do k=1,NbAbsor
153        call GFMATE (materAbs(k),matnam,dua,duz,dud,dur,dui,udu,idu)     
154        PRINT 752,matnam,thickAbs(k)
155      enddo
156      PRINT 749                                                             
157*     
158  749 FORMAT(/ ,60(1H-),/)           
159  751 FORMAT(1X,'The calorimeter is ',I2,' layers of:')
160  752 FORMAT(5X,A10,': ',F8.4,' cm')     
161*
162* *** dessin
163      CALL GSATT ('*'   ,'SEEN',1)
164      CALL GSATT ('layr','SEEN',0)
165*
166      DO IX = 1,3
167        CALL GDOPEN (IX)
168        SCALE =   18./max(worldX,worldYZ)
169        PAXIS =   0.
170        SAXIS =   1.
171        CALL GDRAWC ('worl',IX,0.,10.,9.3,SCALE,SCALE)
172CCC        CALL GDAXIS (PAXIS,PAXIS,PAXIS,SAXIS)
173        CALL GDSCAL (10. , 0.3)
174        CALL GDCLOS
175      END DO
176*
177      END                                                                       
Note: See TracBrowser for help on using the repository browser.