<?xml version="1.0" encoding="UTF-8"?>
<!--DOCTYPE HDDS>

  GlueX Electron Beam Dump
  *************************

     version 1.0: Initial version	-rtj

<HDDS specification="v1.0" xmlns="http://www.gluex.org/hdds">
-->

<section name        = "ElectronBeamDump"
         version     = "1.0"
         date        = "2006-03-24"
         author      = "R.T. Jones"
         top_volume  = "electronDump"
         specification = "v1.0">

<!-- The electron beam dump consists of a long narrow passageway
     connected to the tagger area that contains the actual electron
     dump and associated shielding.  Everything is contained inside
     a container called electronDump whose origin is the intersection
     of the photon beam axis with the unscattered electron beam axis
     after it exits the tagger.                                  -->

  <composition name="electronDump">
    <posXYZ volume="electronDumpPassageway" X_Y_Z="0 45.0 2040.794"/>
  </composition>
  <composition name="electronDumpPassageway" envelope="TUNL">
    <posXYZ volume="electronDumpTube" X_Y_Z="-1.50 -45 -319.225"/>
    <posXYZ volume="labyrinth_wall_1" X_Y_Z="27.94 0 -108.0"/>
    <posXYZ volume="labyrinth_wall_2" X_Y_Z="-29.21 0 -311.2"/>
    <posXYZ volume="labyrinth_wall_3" X_Y_Z="-27.94 0 95.2"/>
    <posXYZ volume="electronBeamDump" X_Y_Z="-1.50 -45 600.0"/>
  </composition>
  <box name="TUNL" X_Y_Z="346. 450. 1650.413" material="Air"
       				comment="electron beam dump access tunnel"/>

<!-- Create the labyrinth walls as concrete boxes with holes for beam pipe -->

  <composition name="labyrinth_wall_1" envelope="LAB1">
    <posXYZ volume="labyrinth_wall_beam_hole" X_Y_Z="-29.44 -45 0"/>
  </composition>
  <composition name="labyrinth_wall_2" envelope="LAB2">
    <posXYZ volume="labyrinth_wall_beam_hole" X_Y_Z="27.71 -45 0"/>
  </composition>
  <composition name="labyrinth_wall_3" envelope="LAB3">
    <posXYZ volume="labyrinth_wall_beam_hole" X_Y_Z="26.44 -45 0"/>
  </composition>
  <composition name="labyrinth_wall_beam_hole" envelope="BEHO">
    <posXYZ volume="BEHV" X_Y_Z="-0.5 0 0"/>
  </composition>
  <box name="LAB1" X_Y_Z="290.120 450 60.960" material="Concrete"
		comment="first labyrinth wall in electron beam dump passage"/>
  <box name="LAB2" X_Y_Z="287.580 450 60.960" material="Concrete"
		comment="second labyrinth wall in electron beam dump passage"/>
  <box name="LAB3" X_Y_Z="290.120 450 60.960" material="Concrete"
		comment="third labyrinth wall in electron beam dump passage"/>
  <box name="BEHO" X_Y_Z="10 5 60.960" material="Iron"
		comment="hole for beam pipe through labyrinth walls"/>
  <box name="BEHV" X_Y_Z="8 4 60.970" material="TaggerVacuum"
		comment="hole for beam vacuum through labyrinth walls"/>

  <composition name="electronDumpTube" envelope="EDMT">
    <posXYZ volume="EDMV" X_Y_Z="-0.5 0 0"/>
  </composition>
  <box name="EDMT" X_Y_Z="10.0 5.0 1012.0" material="Iron"/>
  <box name="EDMV" X_Y_Z="8.0 4.0 1012.1" material="TaggerVacuum"/>

  <composition name="electronBeamDump" envelope="EDHS">
    <posXYZ volume="EDUM" X_Y_Z="0 0 -131.140"/>
  </composition>
  <box name="EDHS" X_Y_Z="346.0 360.0 462.280" material="Iron"/>
  <tubs name="EDUM" Rio_Z="0 33.0 200.0" material="Aluminum"/>

</section>

<!-- </HDDS> -->

<!--
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
-->
