| 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)
|
|---|
| 172 | CCC CALL GDAXIS (PAXIS,PAXIS,PAXIS,SAXIS)
|
|---|
| 173 | CALL GDSCAL (10. , 0.3)
|
|---|
| 174 | CALL GDCLOS
|
|---|
| 175 | END DO
|
|---|
| 176 | *
|
|---|
| 177 | END
|
|---|