subroutine ebdump(MS) IMPLICIT NONE #include "geant321/gtcons.inc" #include "geant321/gconst.inc" C INTEGER MS Real*4 PAR(10) Real*4 cic/2.54/ !inch to centimeter conversion factor Real*4 TunnISzX/140.0/ !(inch) Tunnel inside width Real*4 TunnISzY/177.165/ !(inch) Tunnel inside height (=450 cm from the tagger AREA) Real*4 TunnISzZ/720.0/ !(inch) Tunnel inside length 2x(window to wall) Real*4 TunnWThS/36.0/ !(inch) Tunnel walls thickness (sides) Real*4 TunnWThF/43.0/ !(inch) Tunnel walls thickness (front) Real*4 BeamElev !(inch) Beam elevation above floor Real*4 WLabThk/24.0/ !(inch) Labyrinth wall thickness Real*4 WLabHgt !(inch) Labyrinth wall height Real*4 HousLen/182.0/ !(inch) Iron House length Real*4 HousHgt !(inch) Iron House height Real*4 WL1Dist/19.0/ !(inch) Distance to first Lab Wall (fr. iron) Real*4 WL2Dist/56.0/ !(inch) Distance to second Lab Wall (fr. 1st) Real*4 WL3Dist/56.0/ !(inch) Distance to second Lab Wall (fr. 1st back) Real*4 WL1Door/22.0/ !(inch) Door width in 1st Lab Wall Real*4 WL2Door/23.0/ !(inch) Door width in 2nd Lab Wall Real*4 WL3Door/22.0/ !(inch) Door width in 1st Lab Wall Real*4 BdholeX/26.0/ !(Inch) Hole For The Beam Dump size - X Real*4 BdholeY/26.0/ !(Inch) Hole For The Beam Dump size - Y Real*4 BdholeZ/78.0/ !(Inch) Hole For The Beam Dump size - Z Real*4 CWBDDist/179.6/ !(Inch) Dist from mid-wind to BD end wall Real*4 CWWDist/1.25/ !(Inch) Dist from mid-wind to windows'centers Real*4 CWEnDist/2.00/ !(Inch) Dist from entrance to mid-wind Cu Win Real*4 CWExDist/3.00/ !(Inch) Dist from mid-wind Cu Win to exit CuW Real*4 CWThick/0.118/ !(Inch) Copper Window Thicknesses Real*4 CWDiam/1.18/ !(Inch) Copper Window Diams (3cm) Real*4 CW2Th/0.354/ !(Inch) Copper Window (thick part) Thicknesses Real*4 CWFlTh/0.625/ !(Inch) Copper Window Flange Thickness Real*4 CWinDia/1.95/ !(Inch) Copper Window Weldment inner diam Real*4 CWoutDia/2.88/ !(Inch) Copper Window Weldment outer diam Real*4 CWFlDi/4.60/ !(Inch) Copper Window Weldment Flange out diam Real*4 FSLeng/12.188/ !(Inch) Front Section Weldment Length Real*4 FSinDia/3.0/ !(Inch) Front Section inner diameter Real*4 FSoutDia/6.625/ !(Inch) Front Section outer diameter Real*4 FSFlDi/9.50/ !(Inch) Front Section Flange out diam Real*4 FSFlTh/0.875/ !(Inch) Front Section Flange thick Real*4 FSEFlTh/1.628/ !(Inch) Front Section entrance Flange thick Real*4 FSEFlDi/2.50/ !(Inch) Front Sect entr. Flange inner diam Real*4 FSWCinD/5.50/ !(Inch) Front Sect Water Cylinder inner diam Real*4 FSWCThk/0.25/ !(Inch) Front Sect Water Cylinder thick Real*4 ACSLeng/41.50/ !(Inch) Al Center Section Length Real*4 ACSDiam/10.00/ !(Inch) Al Center Section Diameter Real*4 ACHLeng/19.60/ !(Inch) Al Center Section Hole Length Real*4 ACHDiam/2.25/ !(Inch) Al Center Section Hole Diameter Real*4 ACWCinD/3.50/ !(Inch) Al Center Sect Water Cylinder inner diam Real*4 ACWCThk/0.25/ !(Inch) Al Center Sect Water Cylinder thick Real*4 CESdiam/10.0/ !(Inch) Copper End Section Diam - X,Y Real*4 CESleng/11.5/ !(Inch) Copper End Section Length - Z Real*4 CESgap/0.25/ !(Inch) Gap between Al & Cu Sections Real*4 CEWCinD/9.00/ !(Inch) Copper End Water Cylinder inner diam Real*4 CEWCThk/0.25/ !(Inch) Copper End Water Cylinder thick Real*4 Xbeam,Ybeam,Zbeam,x,y,z,x0,y0,z0,theta3,SizeBD,shftBSYV Integer irot,ivolu Real*4 TunnDist/400.0/ !(cm) Distance from the center of the EDUT volume to the center of TUNC Real*4 CV_Zsize,CV_Zshft C C ========================= C C -- Set up mother volume for the dump enclosure C Use rotation matrix 22 from Richard's code, C x0,y0,z0 of the EDUT volume inside AREA volume, and distance from it along the line x0 = -130 - 227.401 y0 = 50 - 50 z0 = 900 + 1227 irot = 22 theta3 = 13.4 BeamElev = TunnISzY/2. - 50./cic ! Beam in the center HousHgt = BeamElev*2. WLabHgt = TunnISzY C C -- Beam coordinates Xbeam = 0. Ybeam = cic*BeamElev - cic*TunnISzY/2. Zbeam = -20. Print *, ' %%BSYDUMP: X,Y,Z-beam = ',Xbeam,Ybeam,Zbeam C C -- Create Concrete Box in the Ground (TUNC) - Walls C PAR(1) = cic*(TunnISzX+2.*TunnWThS)/2. PAR(2) = cic*(TunnISzY+2.*TunnWThS)/2. PAR(3) = cic*(TunnISzZ+2.*TunnWThF)/2. C C -- Zero coordinates: mid-window position X = x0-TunnDist*sin(DEGRAD*theta3) Y = y0 + 50. Z = z0+TunnDist*cos(DEGRAD*theta3) CALL GSVOLU('TUNC', 'BOX ', MS+24, PAR, 3, IVOLU) CALL GSPOS ('TUNC',1,'HILL',X,Y,Z,irot,'MANY') C C -- Create Air Box in the TUNC (TUNA) - Air in the Tunnel C PAR(1) = cic*TunnISzX/2. PAR(2) = cic*TunnISzY/2. PAR(3) = cic*TunnISzZ/2. X = 0. Y = 0. Z = 0. CALL GSVOLU('TUNA', 'BOX ', MS+31, PAR, 3, IVOLU) CALL GSPOS ('TUNA',1,'TUNC',X,Y,Z,0,'MANY') C C -- Create Concrete Boxes in the TUNA (CLAB -1,2,3) - Labyrinth Walls C CALL GSVOLU('CLAB', 'BOX ', MS+24, PAR, 0, IVOLU) PAR(1) = cic*(TunnISzX-WL1Door)/2. PAR(2) = cic*WLabHgt/2. PAR(3) = cic*WLabThk/2. X = cic*WL1Door/2. Y = -cic*(TunnISzY-WLabHgt)/2. Z = -par(3) - cic*(WL1Dist + HousLen - CWBDDist) CALL GSPOSP('CLAB',1,'TUNA',X,Y,Z,0,'MANY',PAR,3) C PAR(1) = cic*(TunnISzX-WL2Door)/2. X = -cic*WL2Door/2. Z = -par(3) - cic*(WL1Dist + HousLen - CWBDDist) - & cic*(WL2Dist + WLabThk) CALL GSPOSP('CLAB',2,'TUNA',X,Y,Z,0,'MANY',PAR,3) C PAR(1) = cic*(TunnISzX-WL3Door)/2. X = -cic*WL3Door/2. Z = -par(3) - cic*(WL1Dist + HousLen - CWBDDist) + & cic*(WL3Dist + WLabThk) CALL GSPOSP('CLAB',3,'TUNA',X,Y,Z,0,'MANY',PAR,3) C PAR(1) = 100. PAR(2) = cic*WLabHgt/2. PAR(3) = 31. X = par(1)-280. Y = 0. Z = 135.5 CALL GSPOSP('CLAB',4,'TUNL',X,Y,Z,0,'MANY',PAR,3) C C -- Create iron shield blocks in the TUNA (IRON) C PAR(1) = cic*TunnISzX/2. PAR(2) = cic*HousHgt/2. PAR(3) = cic*HousLen/2. X = 0. Y = -cic*(TunnISzY-HousHgt)/2. Z = -par(3) + cic*TunnISzZ/2. CALL GSVOLU('IRON', 'BOX ', MS+10, PAR, 3, IVOLU) CALL GSPOS ('IRON',1,'TUNA',X,Y,Z,0,'ONLY') C C -- Create the BD-hole in the iron shield blocks (BSYV) C PAR(1) = cic*BdholeX/2. PAR(2) = cic*BdholeY/2. PAR(3) = cic*BdholeZ/2. X = 0. Y = cic*BeamElev - cic*HousHgt/2. Z = par(3) - cic*HousLen/2. CALL GSVOLU('BSYV', 'BOX ', MS+31, PAR, 3, IVOLU) CALL GSPOS ('BSYV',1,'IRON',X,Y,Z,0,'ONLY') C C -- Mid Win center relative to BSYV center (negative) shftBSYV = cic*(HousLen - CWBDDist) - par(3) C C -- Create the Win Section Tube (WINT) C PAR(1) = cic*CWinDia/2. PAR(2) = cic*CWoutDia/2. PAR(3) = cic*(CWEnDist+CWExDist)/2. X = 0. Y = 0. Z = shftBSYV + cic*(CWExDist-CWEnDist)/2. CALL GSVOLU('WINT', 'TUBE', MS+9, PAR, 3, IVOLU) CALL GSPOS ('WINT',1,'BSYV',X,Y,Z,0,'ONLY') C C -- Create the Win Section Flange (WINF) C PAR(1) = cic*CWoutDia/2. PAR(2) = cic*CWFlDi/2. PAR(3) = cic*CWFlTh/2. X = 0. Y = 0. Z = shftBSYV - par(3) + cic*CWExDist CALL GSVOLU('WINF', 'TUBE', MS+9, PAR, 3, IVOLU) CALL GSPOS ('WINF',1,'BSYV',X,Y,Z,0,'ONLY') C C -- Create the copper Windows (WIND) C CALL GSVOLU('WIND', 'TUBE', MS+11, PAR, 0, IVOLU) PAR(1) = 0. PAR(2) = cic*CWDiam/2. PAR(3) = cic*CWThick/2. X = 0. Y = 0. Z = shftBSYV - cic*CWWDist CALL GSPOSP('WIND',1,'BSYV',X,Y,Z,0,'ONLY',PAR,3) Z = shftBSYV + cic*CWWDist CALL GSPOSP('WIND',2,'BSYV',X,Y,Z,0,'ONLY',PAR,3) C PAR(1) = cic*CWDiam/2. PAR(2) = cic*CWinDia/2. PAR(3) = cic*CW2Th/2. X = 0. Y = 0. Z = shftBSYV - cic*CWWDist CALL GSPOSP('WIND',3,'BSYV',X,Y,Z,0,'ONLY',PAR,3) Z = shftBSYV + cic*CWWDist CALL GSPOSP('WIND',4,'BSYV',X,Y,Z,0,'ONLY',PAR,3) C C -- Create the Front Section Tube (FSST) C PAR(1) = cic*FSinDia/2. PAR(2) = cic*FSoutDia/2. PAR(3) = cic*FSLeng/2. X = 0. Y = 0. Z = shftBSYV + par(3) + cic*CWExDist CALL GSVOLU('FSST', 'TUBE', MS+9, PAR, 3, IVOLU) CALL GSPOS ('FSST',1,'BSYV',X,Y,Z,0,'ONLY') C C -- Create the Front Section Tube entrance flange inside (FSEF) C PAR(1) = cic*FSEFlDi/2. PAR(2) = cic*FSinDia/2. PAR(3) = cic*FSEFlTh/2. X = 0. Y = 0. Z = shftBSYV + par(3) + cic*CWExDist CALL GSVOLU('FSEF', 'TUBE', MS+9, PAR, 3, IVOLU) CALL GSPOS ('FSEF',1,'BSYV',X,Y,Z,0,'ONLY') C C -- Create the Front Section Flange (FSSF) C PAR(1) = cic*FSoutDia/2. PAR(2) = cic*FSFlDi/2. PAR(3) = cic*FSFlTh/2. X = 0. Y = 0. Z = shftBSYV - par(3) + cic*FSLeng + cic*CWExDist CALL GSVOLU('FSSF', 'TUBE', MS+9, PAR, 3, IVOLU) CALL GSPOS ('FSSF',1,'BSYV',X,Y,Z,0,'ONLY') C C -- Create the Front Section Tube Water (FSTW) C PAR(1) = cic*FSWCinD/2. PAR(2) = cic*(FSWCinD/2. + FSWCThk) PAR(3) = cic*FSLeng/2. X = 0. Y = 0. Z = 0. CALL GSVOLU('FSTW', 'TUBE',MS+18, PAR, 3, IVOLU) CALL GSPOS ('FSTW',1,'FSST',X,Y,Z,0,'ONLY') C C -- Create the Al Center Section Tube (ACST) C PAR(1) = 0. PAR(2) = cic*ACSDiam/2. PAR(3) = cic*ACSLeng/2. X = 0. Y = 0. Z = shftBSYV + par(3) + cic*(CWExDist+FSLeng) CALL GSVOLU('ACST', 'TUBE', MS+9, PAR, 3, IVOLU) CALL GSPOS ('ACST',1,'BSYV',X,Y,Z,0,'ONLY') C C -- Create the Hole in Al Center Section Tube (ACHT) C PAR(1) = 0. PAR(2) = cic*ACHDiam/2. PAR(3) = cic*ACHLeng/2. X = 0. Y = 0. Z = par(3) - cic*ACSLeng/2. CALL GSVOLU('ACHT', 'TUBE', MS+31, PAR, 3, IVOLU) CALL GSPOS ('ACHT',1,'ACST',X,Y,Z,0,'ONLY') C C -- Create the cone in the Hole in Al Center Section Tube (ACCT) C PAR(1) = cic*ACHDiam/4. PAR(2) = cic*ACHDiam/2. PAR(3) = cic*ACHDiam/2. PAR(4) = 0. PAR(5) = cic*ACHDiam/2. X = 0. Y = 0. Z = - par(1) + cic*ACHLeng/2. CALL GSVOLU('ACCT', 'CONE', MS+9, PAR, 5, IVOLU) CALL GSPOS ('ACCT',1,'ACHT',X,Y,Z,0,'ONLY') C C -- Create the Al Center Section Tube Water (ACTW) C PAR(1) = cic*ACWCinD/2. PAR(2) = cic*ACWCinD/2. + cic*ACWCThk PAR(3) = cic*ACSLeng/2. X = 0. Y = 0. Z = 0. CALL GSVOLU('ACTW', 'TUBE', MS+18, PAR, 3, IVOLU) CALL GSPOS ('ACTW',1,'ACST',X,Y,Z,0,'ONLY') C C -- Create the Copper End Section Tube (CEST) C PAR(1) = 0. PAR(2) = cic*CESDiam/2. PAR(3) = cic*CESLeng/2. X = 0. Y = 0. Z = shftBSYV + par(3) + cic*(CWExDist+FSLeng+ACSLeng+CESgap) CALL GSVOLU('CEST', 'TUBE', MS+11, PAR, 3, IVOLU) CALL GSPOS ('CEST',1,'BSYV',X,Y,Z,0,'ONLY') C C -- Create the Copper End Section Tube Water (CETW) C PAR(1) = cic*CEWCinD/2. PAR(2) = cic*CEWCinD/2. + cic*CEWCThk PAR(3) = cic*CESLeng/2. X = 0. Y = 0. Z = 0. CALL GSVOLU('CETW', 'TUBE',MS+18, PAR, 3, IVOLU) CALL GSPOS ('CETW',1,'CEST',X,Y,Z,0,'ONLY') C C ==-- Create Amplification Volumes CMxx C C -- Create the side cyl. outside BD C PAR(1) = cic*ACSDiam/2. PAR(2) = par(1) + 0.5 PAR(3) = cic*(CWEnDist+CWExDist+FSLeng+ACSLeng+CESgap+CESLeng)/2. SizeBD = par(3) X = 0. Y = 0. Z = shftBSYV - cic*CWEnDist + par(3) CALL GSVOLU('CMB0', 'TUBE', MS+16, PAR, 3, IVOLU) CALL GSPOS ('CMB0',1,'BSYV',X,Y,Z,0,'ONLY') C C -- Create the forward cyl. outside BD C PAR(1) = 0. PAR(2) = cic*ACSDiam/2. + 0.5 PAR(3) = 0.25 X = 0. Y = 0. Z = shftBSYV - cic*CWEnDist + 2.*SizeBD + par(3) CALL GSVOLU('CMB1', 'TUBE', MS+16, PAR, 3, IVOLU) CALL GSPOS ('CMB1',1,'BSYV',X,Y,Z,0,'ONLY') C C -- Create the backward cyl. outside BD C PAR(1) = 0. PAR(2) = cic*ACSDiam/2. + 0.5 PAR(3) = 0.25 X = 0. Y = 0. Z = shftBSYV - cic*CWEnDist - par(3) CALL GSVOLU('CMB2', 'TUBE', MS+16, PAR, 3, IVOLU) CALL GSPOS ('CMB2',1,'BSYV',X,Y,Z,0,'ONLY') C C -- Create Air Plates in the TUNC (entrance from TUNA) CV_Zsize = WL1Dist + HousLen - CWBDDist - 300./cic + TunnISzZ/2. C - +X PAR(1) = 0.25 PAR(2) = cic*TunnISzY/2. c# PAR(3) = cic*TunnISzZ/2. PAR(3) = cic*CV_Zsize/2. X = par(1) + cic*TunnISzX/2. Y = 0. c# Z = 0. Z = cic*TunnISzZ/2. - PAR(3) CALL GSVOLU('CMC1', 'BOX ', MS+16, PAR, 3, IVOLU) CALL GSPOS ('CMC1',1,'TUNC',X,Y,Z,0,'ONLY') C - -X PAR(1) = 0.25 PAR(2) = cic*TunnISzY/2. c# PAR(3) = cic*TunnISzZ/2. PAR(3) = cic*CV_Zsize/2. X = - par(1) - cic*TunnISzX/2. Y = 0. c# Z = 0. Z = cic*TunnISzZ/2. - PAR(3) CALL GSVOLU('CMC2', 'BOX ', MS+16, PAR, 3, IVOLU) CALL GSPOS ('CMC2',1,'TUNC',X,Y,Z,0,'ONLY') C C - +Y PAR(1) = 0.5+cic*TunnISzX/2. PAR(2) = 0.25 c# PAR(3) = cic*TunnISzZ/2. PAR(3) = cic*CV_Zsize/2. X = 0. Y = par(2) + cic*TunnISzY/2. c# Z = 0. Z = cic*TunnISzZ/2. - PAR(3) CALL GSVOLU('CMC3', 'BOX ', MS+16, PAR, 3, IVOLU) CALL GSPOS ('CMC3',1,'TUNC',X,Y,Z,0,'ONLY') C - -Y PAR(1) = 0.5+cic*TunnISzX/2. PAR(2) = 0.25 c# PAR(3) = cic*TunnISzZ/2. PAR(3) = cic*CV_Zsize/2. X = 0. Y = - par(2) - cic*TunnISzY/2. c# Z = 0. Z = cic*TunnISzZ/2. - PAR(3) CALL GSVOLU('CMC4', 'BOX ', MS+16, PAR, 3, IVOLU) CALL GSPOS ('CMC4',1,'TUNC',X,Y,Z,0,'ONLY') C C - +Z PAR(1) = 0.5+cic*TunnISzX/2. PAR(2) = 0.5+cic*TunnISzY/2. PAR(3) = 0.25 X = 0. Y = 0. Z = par(3) + cic*TunnISzZ/2. CALL GSVOLU('CMC5', 'BOX ', MS+16, PAR, 3, IVOLU) CALL GSPOS ('CMC5',1,'TUNC',X,Y,Z,0,'ONLY') C - -Z PAR(1) = cic*TunnISzX/2. PAR(2) = cic*TunnISzY/2. PAR(3) = 0.25 X = 0. Y = 0. C# Z = - par(3) - cic*TunnISzZ/2. Z = par(3) - cic*(WL1Dist + HousLen - CWBDDist - 300./cic) CALL GSVOLU('CMC6', 'BOX ', MS+16, PAR, 3, IVOLU) CALL GSPOS ('CMC6',1,'TUNC',X,Y,Z,0,'ONLY') C end