! This is version 2a of the definition of the geometry for the G0 experiment ! in the forward-proton configuration. It is based on the original ! "hard-coded" geometry defined by Neven Simicevic (and output using the ! GEANT WEUCLID command). That geometry file was extensively edited and ! augmented by Emmanuel Rollinde de Beaumont. Finally, Steve Williamson ! made the following additional improvements: ! 1) Where possible, dimensions of GEANT entities are defined in terms ! of numbers taken from drawings and mathematical formulae (rather ! than "magic" number which are hard to check). ! 2) Shapes of volumes, especially in the collimator, are represented ! as accurately as possible. ! 3) Thermal contraction has been taken into account for parts specified ! at room temperature. ! 4) Detectors shapes are taken from the parameter definition file ! dated Feb. 18, 1999 (using the program det2euc). ! 5) Principle collimator (AKA C-collimator) surfaces are approximated ! using a series of elliptical cylinder steps. ! 6) The entire geometry has been checked by making measurements in ! Autocad (this geometry file was translated to Autocad using ! euc2acad). ! ! In version 1a all rotation ID numbers now use subsystem identifiers ! there were a few that escaped this change in the original). A problem ! with non-coplanar points in UPB1 has been fixed by using a different ! local coordinate system for this volume (with repurcussions in the ! definitions of UPB2 and UPC) such that the side opposite the zero-length ! side is a rectangle. A similar problem with non-coplanar points for ! USCP and USCS has been resolved by splitting each of these volumes into ! two volumes (USCP is split into USCP and USCQ; USCS is split into USCS and USCT). ! ! Version 2a contains modifications of the target section by C. Jones of 3/30 ! and 3/31. The target + cryoloop + support is in its own in a mother ! volume (TARG). (A slight error in placement of one target window was ! corrected. The euclid file has been modified to work with a new version ! (2a) of GREUCL. SEEN commands have been replaced by the more general SATT ! command. The DETE and HITS command syntax is simplified. Conditional ! execution is now possible with the IF, ELIF, ELSE and FI commands. ! This feature is used to chose forward or backward mode (see the MODE ! variable below). ! ! Version 2B contains modifications for version 2B of GREUCL. This ! includes the new ECHO command and the use of external variables, ! the values defined by FFKEY commmands in the "data card" file (ftn43). ! in particular, MODE is now an external variable. ! ! Version 2C (5/19/99) fixes a bug in the definition of the lower primary ! collimator discovered by Gilles Quemener and Fernand Merchez. The first ! surface had started at a point too far downstream because the length of ! LOS7 was too great (that length should have been diminished by the ! distance along the top of the LOS block that is occupied by LOS4). Now ! the lower primary collimator begins at Z of about 0 with a thickness of ! about 15 cm. ! ! The following MAJOR approximations are made in this model: ! o No hall geometry (walls, floor, beam dump, etc.) ! o No support (the spectrometer and detectors are suspended in vacuum). ! o Vacuum outside the spectrometer rather than air. ! o No LN2 Shield or superinsolation. ! o Crude target ! o No membrane covering exit window ! o Magnetic field only in vacuum regions. ! o Dimensions of upstream and downstream beam pipes and bellows ! are "educated guesses" ! o There is an inconsistency among the drawings that were used (which were ! not all the final drawings) which leads to the collimator modules ! being mis-positioned. This is probably due to the use of obsolete ! drawings for the octagon ring. The octagon ring position has been ! altered (fudged) to correct this. ! Other less critical approximations are described in comments associated ! with specific geometry elements. ! ! The following conventions are used for the names of variables: ! Origin of volume inside its mother volume: ! O_ where is a 4-character volume name. ! Volume parameters: ! _ where is some parameter ! name like RMIN or DX, and is a 4-character volume name. ! Material identifiers ! M_ where name is the 3-character material code ! Tracking medium identifiers ! T_ where name is the 3-character tracking medium code ! Material shrinkage factors ! C_ where name is the 3-character material code ! Subsystem identifiers for positioning copy numbers and rotation ! matricies (see below) ! S_ where name is a short (4-character) subsystem name ! ! Positioning copy numbers and rotation matrix identifiers are chosen ! according to the formula: *SYSFAC + , where is ! a number chosen to indicate the subsystem associated with positioning ! or rotation and is a number which starts at 1, and SYSFAC ! is a multiplicative factor (typically a power of 10) defined to be: SYSFAC = 1000 ! Subsystem numbers currently defined below. We also initialize a copy ! number index, CID_ for each sub-system. It should be incremented ! after each use of the POSI command for a volume in the corresponding ! subsystem. ! ! Generally used mother volumes, generally used rotation matricies. S_GEN = 0*SYSFAC CID_GEN = 1 ! Target S_TRG = 1*SYSFAC CID_TRG = 1 ! Coil case and coil S_COIL = 2*SYSFAC CID_COIL = 1 ! Cryostat (vacuum vessel, heads, ribs, windows, head tube, etc.) S_CRY = 3*SYSFAC CID_CRY = 1 ! Cold mass hardware (octagon ring, hubs, not collimator) S_COLD = 4*SYSFAC CID_COLD = 1 ! Shielding (on head and beamline) S_SHLD = 5*SYSFAC CID_SHLD = 1 ! Beam-line elements (vacuum pipes, flanges) S_BEAM = 6*SYSFAC CID_BEAM = 1 ! Collimator module S_COL = 7*SYSFAC CID_COL = 1 ! Scintillators S_SCI = 8*SYSFAC CID_SCI = 1 ! Minitorus S_COIM = 9*SYSFAC CID_COIM = 1 ! !-------------------------------+ ! Define Materials and Mixtures ! !-------------------------------+ ! Materials consisting of a single element are defined using the MATE command ! (see GEANT CONS100 writeup of the GSMATE subroutine for more details). ! The parameters of the command are: ! IMATE (integer) A unique user material number ! CHNAMA (character) A material name (up to 20 characters) ! A (real) atomic weight ! Z (real) atomic number ! DENS (real) density in g/cm**3 ! RADL (real) radiation length in cm ! ABSL (real) absorbtion length in cm (actually this is ignored by GEANT) ! NWBUF (integer) number of additional user parameters (can be 0) ! UBUF(i) (real) NWBUF values for the user parameters ! ! Currently no new materials are defined. ! ! Mixtures or compounds are defined using the MIXT command (see the GEANT ! CONS110 writeup of the GSMIXT subroutine for more details). The first four ! parameters of the command are always present: ! IMATE (integer) A unique user material number ! NAMATE (character) A material name (up to 20 characters) ! NLMAT (integer) ABS(NLMAT) is the number of elements in the mixture. ! NLMAT > 0 WMAT contains the proportion by weight of each material ! in the mixture. ! NLMAT < 0 WMAT contains the proportion by number of atoms of ! each kind in the mixture ! DENS (real) density in g/cm**3 ! A(i) (real) Atomic weights of each of the ABS(NLMAT) elements ! Z(i) (real) Atomic number of each of the ABS(NLMAT) elements ! WMAT(i) (real) Proportion by weight or number (see NLWAT above) of ! each of the ABS(NLMAT) elements ! Note that user defined material numbers begin at 17 (the first 16 materials ! are pre-defined by the GEANT routine GMATE). Note also that "$" is used ! to terminate names shorter than the maximum. ! ! Scintillator. This assumed to be something like Bicron BC-408, a ! polyvinyltoluene (PVT) based scintillator. The density and H-to-C ratio ! come from the Bicron catalog (on the web). M_SCI = 17 MIXT M_SCI 'Scintillator$' -2 1.032 12.0107 1.00794 6 1 1 1.1 ! ! Borated Polyethylene (Values for density and H-to-B ratio are taken from ! the Reactor Experiments Inc. catalog for type 201 material which is 5% Boron ! by weight). We assume that the H-to-C ratio is 2:1. M_BPO = 18 MIXT M_BPO 'Borated Polyethylene' -3 0.93 12.0107 1.00794 10.811 6 1 5 1 2 0.0793 ! ! Gas Helium (Values for density and H-to-B ratio are taken from ! the Reactor Experiments Inc. catalog for type 201 material which is 5% Boron ! by weight). We assume that the H-to-C ratio is 2:1. M_HEL = 19 MIXT M_HEL 'Gas Helium' -1 0.000177 4.00 2 1 ! Concrete M_CON = 20 MIXT M_CON 'Concrete' 6 2.7 1.0079 15.9994 26.981539 40.078 28.0855 55.8474 1. 8. 13. 20. 14. 28. 0.004 0.509 0.034 0.070 0.345 0.038 ! ! Quartz. This assumed to be something like Bicron BC-408, a ! polyvinyltoluene (PVT) based scintillator. The density and H-to-C ratio ! come from the Bicron catalog (on the web). M_QUA = 21 MIXT M_QUA 'Quartz$' -2 2.27 28.09 16.0 14 8 1 2 ! Glass parameters ! Glass: (SiO2) M_SIO = 22 MIXT M_SIO 'Glass$' -2 2.64 28.0855 15.9994 14. 8. 1. 2. ! Titanium parameters ! Assumed to be solid titanium ! Added 5-30-03 by Juliette M. Mammei M_TIT = 23 MIXT M_TIT 'Titanium' -1 4.507 47.867 22. 1. ! !-----------------------+ ! Define Tracking Media ! !-----------------------+ ! Tracking media are defined using the TMED command (see the GEANT CONS200 ! writeup of GSTMED for more details). The following parameters are ! accepted: ! ITMED (integer) Tracking medium number ! NATMED (character) Tracking medium name (up to 20 characters) ! MNAT (integer) Material number corresponding to this medium ! ISVOL (integer) sensitivity flag (>0 => sensitive). ! IFIELD (integer) magnetic field flag (0 => no field, 1 => strong ! inhomogenous field, other values possible too). ! FIELDM (real) Maximum field value in kgauss ! TMAXFD (real) Maximum angular deviation due to field in one step (deg) ! STEMAX (real) Maximum step permitted (cm) ! DEEMAX (real) Maximum fractional energy loss in one step (0 < DEEMAX < 1) ! EPSIL (real) Boundary crossing precision (cm) ! STMIN (real) minimum value for the maximum step imposed by energy loss, ! multiple scattering, cerenkov or magnetic field effects (cm) ! NWBUF (integer) Number of user parameters ! UBUF(i) (real) the NWBUF user parameters ! Note that we run GEANT with IGAUTO in common /GCTRAK/ set to 1. This means ! TMAXFD, STEMAX, DEEMAX, and STMIN are calculated automatically (independent ! of the values below). If IGAUTO is changed to 0, the negative vaules used ! ensure that GEANT will still use its own formulae to calculate them. ! Note also that "$" is used to terminate names shorter than the maximum. ! ! Air (standard material). Auto calculation of TMAXFD, STEMAX, DEEMAX, and STMIN. T_AIR = 1 !TMED T_AIR 'AIR$' 15 0 0 0 -1.00 -.100E+11 -.249 .001 -.530 0 TMED T_AIR 'AIR$' 15 0 1 20. -.1 -.001 .004 .004 .004 0 0 ! ! Hydrogen (standard material). Auto calculation of TMAXFD, STEMAX, DEEMAX, ! and STMIN. T_HYD = 2 TMED T_HYD 'Liquid Hydrogen$' 1 0 0 0 -20.00 -.100E+11 -.243 .010 -.022 0 ! ! Aluminium (standard material). Auto calculation of TMAXFD, STEMAX, DEEMAX, ! and STMIN. Sensitivity flag is ON to permit usage of HITS. T_ALU = 3 TMED T_ALU 'Aluminium$' 9 1 0 0 -20.00 -.100E+11 -.183 .010 -.015 0 ! ! Vacuum (Standard material). Auto calculation of TMAXFD, STEMAX, DEEMAX, and ! STMIN. Magnetic field flag set to cause tracking in an inhomogeneous field ! using Runge-Kutta. T_VAC = 4 TMED T_VAC 'Vacuum$' 16 0 1 20. -.1 -.001 .004 .004 .004 0 0 T_VACS = 40 TMED T_VACS 'Vacuum$' 16 1 0 0. .100 .001 .001 .001 .001 0 0 !TMED T_VAC 'Vacuum$' 16 0 1 .98 -.10 -.100E+11 -.100 .002 -.100 0 ! ! Scintillator (user-defined mixture). Auto calculation of TMAXFD, STEMAX, ! DEEMAX and STMIN. Sensitivity flag is ON to permit usage of HITS. T_SCI = 5 !TMED T_SCI 'Scintillator$' M_SCI 1 0 0 -20.00 -.100E+11 -.031 .001 -.006 0 TMED T_SCI 'Scintillator$' M_SCI 1 0 0. .100 .001 .001 .001 .001 0 0 ! ! Lead (standard material). Auto calculation of TMAXFD, STEMAX, DEEMAX, ! and STMIN. Sensitivity flag is ON to permit usage of HITS. T_LEA = 6 TMED T_LEA 'Lead$' 13 0 0 0 -20.00 -.100E+11 -.250 .010 -.024 0 ! ! Iron (standard material). Auto calculation of TMAXFD, STEMAX, DEEMAX, ! and STMIN. T_IRO = 7 TMED T_IRO 'Iron$' 10 0 0 0 -20.00 -.100E+11 -.250 .010 -.014 0 ! ! Copper (standard material). Auto calculation of TMAXFD, STEMAX, DEEMAX, ! and STMIN. T_COP = 8 TMED T_COP 'Copper$' 11 0 0 0 -20.00 -.100E+11 -.250 .010 -.014 0 ! ! Borated Polyethylene (user-defined mixture). Auto calculation of TMAXFD, ! STEMAX, DEEMAX, and STMIN. T_BPO = 9 TMED T_BPO 'Borated Polyethylene' M_BPO 0 0 0 -20.00 -.100E+11 -.188 .010 -.015 0 ! ! Helium (standard material). Auto calculation of TMAXFD, STEMAX, DEEMAX, and STMIN. T_HEL = 10 TMED T_HEL 'Gas Helium$' M_HEL 0 1 20. -.1 -.001 .004 .004 .004 0 0 ! Concrete T_CON = 20 TMED T_CON 'Concrete$' M_CON 0 0 0 -20.00 -.100E+11 -.250 .010 -.024 0 ! ! Quartz (user-defined mixture). Auto calculation of TMAXFD, STEMAX, ! DEEMAX and STMIN. Sensitivity flag is ON to permit usage of HITS. T_QUA = 21 TMED T_QUA 'Quartz$' M_QUA 1 0 0. .100 .001 .001 .001 .001 0 0 ! Glass SiO2(user-defined mixture). Auto calculation of TMAXFD, STEMAX, DEEMAX, ! and STMIN. (taken from SAMPLE euclid file) (make it sensitive for now). T_SIO = 22 TMED T_SIO 'Glass$' M_SIO 1 0 0 -20.00 -.100E+11 -.250 .010 -.014 0 ! ! Titanium for exit window, started with copy of T_BPO. ! Added 5-30-03 by Juliette M. Mammei T_TIT = 23 TMED T_TIT 'Titanium$' M_TIT 0 0 0 -20.00 -.100E+11 -.188 .010 -.015 0 ! Beryllium for exit window, started with copy of T_ALU. ! Added 9-24-04 by Juliette M. Mammei ! ! Beryllium (standard material). Auto calculation of TMAXFD, STEMAX, DEEMAX, ! and STMIN. Sensitivity flag is ON to permit usage of HITS. T_BER = 24 TMED T_BER 'Beryllium$' 5 1 0 0 -20.00 -.100E+11 -.183 .010 -.015 0 ! !----------------------------------------------+ ! Material Coefficients of Thermal Contraction ! !----------------------------------------------+ ! Some specification dimensions are given only at room temperature. ! Because there is significant contraction of parts which are at ! 4 deg. K, these dimensions must be corrected. Constants are defined ! here for various materials which should multiply linear dimensions ! to make this correction. The warm dimensions were found from cold ! dimensions as follows: ! X(warm) = X(cold) * (1 + DELTA_L/L) ! where DELTA_L/L is specified as a percentage. To convert from warm ! back to cold, then, we use: ! X(cold) = X(warm) / (1 + DELTA_L/L) ! Note that this is NOT the same as: ! X(cold) = X(warm) * (1 - DELTA_L/L) ! because DELTA_L/L is too big for this approximation to be accurate. ! The coeffieients defined here, C_, are the factor ! 1/(1+DELTA_L/L). ! ! For lead, Delta L/L = 0.709%. C_LEA = 1/(1+0.709/100) ! ! For aluminum, Delta L/L = 0.42%. C_ALU = 1./(1+0.42/100) ! !--------------------+ ! Orientation (Mode) ! !--------------------+ ! G0 operates in one of two possible orientations: Forward-proton mode ! with the detector downstream of the spectrometer, and Backward-electron ! mode with the detector upstream of the spectrometer. The geometry is ! changed in a number of ways depending on mode, for example: ! o CED detectors are not defined in forward-proton mode while ! in backward-electron mode, only the front scintillator layer ! is active and the CEDs are defined. ! o The beam pipe shielding (volume names BPBx, BPPx and BPWx) are ! not present in backward-electron mode. ! o Most of the volumes included in the cryostat, detectors, cold mass, ! coils, shielding, beamline, and collimators are reflected in the ! XY plane when going from forward-proton to backward-electron mode. ! for some volumes, this is accomplished by flipping the direction of ! the local coordinate system of the mother volume MODE. This volume ! is congruent with the mother volume GLOB except that in backward- ! electron mode its Z axis points upstream rather than downsteam. ! o Certain volumes do NOT change orientation when the mode is changed ! (for example some parts of the target, the hall geometry, etc.) ! Because the spectrometer is flipped about the standard G0 coordinate ! system when going from forward-proton to backward-electron mode, ! it is likely that these volumes will need to be translated to new ! positions relative to the volumes that were flipped. ! Based on the MODE variable code below is selectively executed using IF ! statements. MODE should be set to true (non-0) for forward-proton mode ! and false (0) for backward-electron mode. MODE can only be set in the ! "data card" file using the appropriate FFKEY command. We do some ! sanity checks here to make sure things are consistent. ! IF MODE*LT0(BFIL) ECHO 'Warning: BFIL negative in forward-proton mode.' ELIF EQ0(MODE)*GT0(BFIL) ECHO 'Warning: BFIL positive in backward-electron mode.' FI ! IF BDIR ECHO 'Warning: BDIR should be 0 when using this euclid+ file.' FI ! IF MODE*LT0(ZTAR) ECHO 'Warning: ZTAR negative in forward-proton mode.' ELIF EQ0(MODE)*GT0(ZTAR) ECHO 'Warning: ZTAR positive in backward-electron mode.' FI ! ! NOTE: In the comments in this file, the descriptions of volumes, ! coordinate systems, etc. may refer to "upstream" and "downstream". ! That nomenclature is valid, and defined in terms of the forward proton ! mode of running. ! !-----------------------------+ ! Rotation Matrix Definitions ! !-----------------------------+ ! The position of a volume in its mother volume is defined by a ! translation vector and a rotation matrix. Rotation matricies ! are defined using the ROTM command by specifying the daughter ! reference frame (primed frame) in terms of angles in the mother ! frame (see the GEANT GEOM200 writeup of GSROTM for more details). ! The following parameters are required: ! IROT (integer) Number (identifier) of the rotation matrix ! THETA1 (real) Polar angle for axis x' ! PHI1 (real) Azimuthal angle for axis x' ! THETA2 (real) Polar angle for axis y' ! PHI2 (real) Azimuthal angle for axis y' ! THETA3 (real) Polar angle for axis z' ! PHI3 (real) Azimuthal angle for axis z' ! ! The 8-fold symmetry of the experiment enters this geometry in ! many places. Of particular use is the angle 180/8 = 22.5. We define ! some trig functions of that angle and the angle itself for later ! use. TH_OCT = 180./8. C_OCT = COSD(TH_OCT) S_OCT = SIND(TH_OCT) T_OCT = TAND(TH_OCT) ! ! The following rotation is used in many different sub-systems. ! It puts X along the old Y, Y along the old Z, Z along old X. This ! turns out to be particularly useful for positioning some of the ! trapezoids in the our geometry. ROTM S_GEN+1 90 90 0 0 90 0 ! ! Note that most of the rotation matricies are specific to particular ! volumes or sub-systems. Those matricies are defined below, when ! the volumes are positioned. ! !------------------------------------+ ! Volume Definitions and Positioning ! !------------------------------------+ ! Volumes are defined using the VOLU command which specifies the ! volume name, its type (one of 16 primitive types known by GEANT) ! and its dimensions. The parameters of the command are as follows: ! CHNAME (character) A unique 4-character volume name ! CHSHAP (character) the name (4-characters) of one of the GEANT ! volume types. ! NMED (integer) Tracking medium number for the volume ! NPAR (integer) Number of additional parameters defining the ! dimensions of the volume. ! PAR(i) (real) the NPAR parameters. ! (See the GEANT GEOM100 writeup of GSVOLU for more details.) ! ! For reference, the parameters of volumes used in this file are listed ! below (see the GEANT GEOM050 writeup). ! BOX Box with faces perpendicular to the axes. It has 3 parameters: ! 1 DX half-length of the box along the x-axis ! 2 DY half-length of the box along the y-axis ! 3 DZ half-length of the box along the z-axis ! TRD1 Trapezoid with the x dimension varying along z. It has 4 parameters: ! 1 DX1 half-length along x at the zsurface positioned at -DZ ! 2 DX2 half-length along x at the z surface positioned at +DZ ! 3 DY half-length along the y-axis ! 4 D0Z half-length along the z-axis ! TRD2 Trapezoid with both x and y dimensions varying along z. It has ! 5 parameters: ! 1 DX1 half-length along x at the z surface positioned at -DZ ! 2 DX2 half-length along x at the z surface positioned at +DZ ! 3 DY1 half-length along y at the z surface positioned at -DZ ! 4 DY2 half-length along y at the z surface positioned at +DZ ! 5 DZ half-length along the z-axis ! TRAP General trapezoid; the faces perpendicular to z are trapezia ! and their centers are not necessarily on a line parallel to the z ! axis. This shape has 11 parameters, but considering that the ! faces should be planar, only 9 are really independent. A check ! is performed by GEANT to insure that surfaces are planar. ! 1 DZ half-length along the z axis ! 2 THET polar angle of the line joining the center of the face at ! -DZ to the center of the one at +DZ ! 3 PHI azimuthal angle of the line joining the center of the face at ! -DZ to the center of the one at +DZ ! 4 H1 half-length along y of the face at -DZ ! 5 BL1 half-length along x of the side at -H1 in y of the face at ! -DZ in z ! 6 TL1 half-length along x of the side at +H1 in y of the face at ! -DZ in z ! 7 ALP1 angle with respect to the y axis from the center of the side ! at -H1 in y to the center of the side at +H1 in y of the face at ! -DZ in z ! 8 H2 half-length along y of the face at +DZ ! 9 BL2 half-length along x of the side at -H2 in y of the face at ! +DZ in z ! 10 TL2 half-length along x of the side at +H2 in y of the face at ! +DZ in z ! 11 ALP2 angle with respect to the y axis from the center of the side ! at -H2 in y to the center of the side at +H2 in y of the face at ! +DZ in z ! TUBE Tube. It has 3 parameters: ! 1 RMIN inside radius ! 2 RMAX outside radius ! 3 DZ half length in z ! TUBS PHI-segment of a tube. It has 5 parameters: ! 1 RMIN inside radius ! 2 RMAX outside radius ! 3 DZ half length in z ! 4 PHI1 starting angle of the segment ! 5 PHI2 ending angle of the segment ! ELTU Elliptical cross-section tube. It has three parameters: ! 1 P1 semi-axis of the ellipse along x ! 2 P2 semi-axis of the ellipse along y ! 3 DZ half-length in z ! The equation of the surface is x2/P1**2 + y2/P2**2 = 1. ! ! The placement of volumes in the geometry is performed by the POSI command. ! Its arguments are described below (see GEANT write-up GEOM110 for more ! details). ! CHNAME (character) name of the volume being positioned ! NR (integer) Copy number of the volume CHNAME being positioned ! CHMOTH (character) name of the mother volume in which copy NR of ! volume CHNAME is being positioned. ! X (real) X position of volume in mother volume reference system ! Y (real) Y position of volume in mother volume reference system ! Z (real) Z position of volume in mother volume reference system ! IROT (integer) rotation matrix identifier (see ROTM). (0 => no ! rotation) ! CHONLY (character) Set to either ONLY or MANY to indicate behavior of ! tracking when volumes overlap. ! ! Many attributes of a volume can be controlled with the SATT command. ! Its parameters are: ! CHNAME (character) name of the volume ! CHIATT (character) attribute to be set (SEEN, COLO, etc.) ! IVAL (integer) value for the attribute. ! (see GSATT routine described in GEANT writeup GEOM500). ! !---------------+ ! Global volume ! !---------------+ ! The global volume GLOB contains the universe as viewed by G0 Geant. ! The dimensions are chosen to include all other volumes DX_GLOB = 396.2 DY_GLOB = 396.2 DZ_GLOB = 700.0 VOLU 'GLOB' 'BOX' T_VAC 3 DX_GLOB DY_GLOB DZ_GLOB SATT 'GLOB' 'SEEN' 0 ! ! We define another mother volume called MODE which is congruent with the ! global mother volume but whose Z axis orientation depends on the value ! of the MODE variable. For MODE=1, the Z axis points downstream in the ! same direction as that of the GLOB volume. This is the forward-proton ! mode. For MODE=0 (backward-electron mode), the orientation is reversed. ! The Y axis is always maintained in the upward direction. Therefore, ! to maintain a right-handed coordinate system, the X axis direcition ! must also be flipped. !?!VOLU 'MODE' 'BOX' T_AIR 3 VOLU 'MODE' 'BOX' T_HEL 3 DX_GLOB DY_GLOB DZ_GLOB IF (MODE) POSI 'MODE' S_GEN+CID_GEN 'GLOB' 0 0 0 0 'MANY' ELSE ROTM SGEN+2 90 180 90 90 180 0 POSI 'MODE' S_GEN+CID_GEN 'GLOB' 0 0 0 SGEN+2 'MANY' FI CID_GEN = CID_GEN+1 SATT 'MODE' 'SEEN' 0 ! ! Due to the use of an incompatible set of drawings (some were obsolete ! but no new drawings are yet available), the position of the collimator ! must be adjusted by a small amount to ensure that its acceptance ! defining surfaces end up at the correct absolute locations. In the ! radial dimension this is accomplished by adjusting the radial (half) ! length of the coil cases. In the beam direction, the position of the ! top hat base plate (which dictates the position of the rest of the ! collimator) is adjusted. The "fudge constants" were found by comparing ! the (COLD) locations of points on the midplane of the primary collimator ! to ideal locations. ! The following "fudge constant" is used to adjust the radial length ! of the coil case. FUDGEX_COL = -0.663918*0.5/C_OCT ! The following "fudge constant" is used to adjust the position along the ! beam of the top hat base plate. FUDGEZ_COL = 0.101862*0.5 ! FUDGEZ_COL = 0 ! !--------+ ! Target ! !--------+ ! The target geometry is defined such that the target cell, cryogenic ! loop and target support structure lie in a (vacuum) mother volume TARG ! defined upon positioning as MANY. Within TARG the individual pieces ! are defined as ONLY volumes. TARG is placed in the global mother volume ! GLOB and, as such, does not change orientation when the orientation mode ! is flipped, from forward-proton to backward-electron mode. However, ! because this flip is done about the origin of the standard G0 coordinate ! system, not the center of the target, the z coordinate of the center of ! the target must be flipped depending on the mode. ! ! Currently the target consists of a set of ONLY volumes which make up ! a cylinder of hydrogen surrounded by aluminium walls. The following ! variables define the dimensions of these materials at 20 K, using the ! correction factor for thermal contraction specified earlier. ! ! Parameters for mother target volume (24 in diameter tube, 2 m long, centered ! on hydrogen cell center) ! ! The beryllium target (hydrogen cell) wall thickness ! (USE 10 MILS UNTIL PUT IN WINDSOCK) Actually - 20 mils !WALL_TRG = .0508 WALL_TRG = .0254 ! ! Half-thickness of upstream window (exit window of hydrogen cell) !UPWINDOW_TRG = .5*.0254 UPWINDOW_TRG = .5*.0254*3.5/10. ! Half-thickness of downstream window (exit window of hydrogen cell) !DOWNWINDOW_TRG = .5*.0254 DOWNWINDOW_TRG = .5*.0254*3.5/10. ! !Both of these definitions are needed: ! The hydrogen target cell maximum radius RMAX_TARG = 2.54 RMAX_TRG = 2.54-WALL_TRG !Both of these definitions are needed: ! The hydrogen target cell half-length DZ_TARG = 17.5 DZ_TRG = 17.5 ! The z-coordinate of the center of the target OZ_TARG = -650. ! IF EQ0(MODE) ! Flip the position of the target center if MODE=0 (backward electron ! mode). OZ_TARG = -OZ_TARG FI ! ! TARG - the mother volume containing the target cell, cryoloop and support ! structure !?!VOLU 'TARG' 'TUBE' T_VAC 3 0 RMAX_TARG DZ_TARG !VOLU 'TARG' 'TUBE' T_HEL 3 0 RMAX_TARG DZ_TARG VOLU 'TARG' 'TUBE' T_HEL 3 0 RMAX_TARG DZ_TARG+2*DOWNWINDOW_TRG POSI 'TARG' S_TRG+CID_TRG 'GLOB' 0 0 OZ_TARG 0 'MANY' SATT 'TARG' 'SEEN' 0 CID_TRG = CID_TRG+1 ! ! TRG - The hydrogen VOLU 'TRG' 'TUBE' T_HYD 3 0 RMAX_TRG DZ_TRG POSI 'TRG' S_TRG+CID_TRG 'TARG' 0 0 0 0 'ONLY' SATT 'TRG' 'COLO' 141 CID_TRG = CID_TRG+1 ! ! Changed 9-24-04 by Juliette Mammei ! TRGT - The Beryllium tube around the hydrogen - 20 mils !VOLU 'TRGT' 'TUBE' T_BER 3 RMAX_TRG RMAX_TRG+WALL_TRG DZ_TRG VOLU 'TRGT' 'TUBE' T_ALU 3 RMAX_TRG RMAX_TRG+WALL_TRG DZ_TRG POSI 'TRGT' S_TRG+CID_TRG 'TARG' 0 0 0 0 'ONLY' SATT 'TRGT' 'COLO' 141 CID_TRG = CID_TRG+1 ! ! The downstream Beryllium endcap - 10 mils !VOLU 'TRGD' 'TUBE' T_BER 3 0 RMAX_TRG+WALL_TRG DOWNWINDOW_TRG VOLU 'TRGD' 'TUBE' T_ALU 3 0 RMAX_TRG+WALL_TRG DOWNWINDOW_TRG POSI 'TRGD' S_TRG+CID_TRG 'TARG' 0 0 DZ_TRG+DOWNWINDOW_TRG 0 'ONLY' SATT 'TRGD' 'COLO' 141 CID_TRG = CID_TRG+1 ! ! The upstream Beryllium endcap - 10 mils !VOLU 'TRGU' 'TUBE' T_BER 3 0 RMAX_TRG+WALL_TRG UPWINDOW_TRG VOLU 'TRGU' 'TUBE' T_ALU 3 0 RMAX_TRG+WALL_TRG UPWINDOW_TRG POSI 'TRGU' S_TRG+CID_TRG 'TARG' 0 0 -DZ_TRG-UPWINDOW_TRG 0 'ONLY' SATT 'TRGU' 'COLO' 141 CID_TRG = CID_TRG+1 ! !Aluminum Target Vacuum Exit window - 10 mils DZ_VWIN = .5*.0254 VOLU 'VWIN' 'TUBE' T_ALU 3 RMAX_TRG 20 DZ_VWIN POSI 'VWIN' S_TRG+CID_TRG 'GLOB' 0 0 -627.48+DZ_VWIN 0 'ONLY' SATT VWIN COLO 2 CID_TRG = CID_TRG+1 ! Old target definitions: ! TRGT - The aluminium tube around the hydrogen !VOLU 'TRGT' 'TUBE' T_ALU 3 ! RMAX_TRG RMAX_TRG+WALL_TRG DZ_TRG !POSI 'TRGT' S_TRG+CID_TRG 'TARG' 0 0 0 0 'ONLY' !SATT 'TRGT' 'COLO' 141 !CID_TRG = CID_TRG+1 ! ! The downstream aluminium endcap !VOLU 'TRGD' 'TUBE' T_ALU 3 ! 0 RMAX_TRG+WALL_TRG 0.5*DOWNWINDOW_TRG !POSI 'TRGD' S_TRG+CID_TRG 'TARG' 0 0 ! DZ_TRG+0.5*DOWNWINDOW_TRG 0 'ONLY' !SATT 'TRGD' 'COLO' 141 CID_TRG = CID_TRG+1 ! ! The upstream aluminium endcap !VOLU 'TRGU' 'TUBE' T_ALU 3 ! 0 RMAX_TRG+WALL_TRG 0.5*UPWINDOW_TRG !POSI 'TRGU' S_TRG+CID_TRG 'TARG' 0 0 ! -DZ_TRG-0.5*UPWINDOW_TRG 0 'ONLY' !SATT 'TRGU' 'COLO' 141 CID_TRG = CID_TRG+1 ! !-------+ ! Q-weak Collimator !--------+ ! Collimator 1: !VOLU 'COU' 'BOX' T_AIR 3 120. 120. 34.28 !VOLU 'COU' 'BOX' T_VAC 3 120. 120. 34.28 !POSI 'COU' S_TRG+CID_TRG 'GLOB' 0 0 -543.17 0 'MANY' !Separate and use upstream half VOLU 'COU' 'BOX' T_VAC 3 120. 120. 7.62 !POSI 'COU' S_TRG+CID_TRG 'GLOB' 0 0 -567.29 0 'MANY' POSI 'COU' S_TRG+CID_TRG 'GLOB' 0 0 -539.68 0 'MANY' !POSI 'COU' S_TRG+CID_TRG 'GLOB' 0 0 -493.17 0 'MANY' SATT COU SEEN 0 CID_TRG = CID_TRG+1 !VOLU 'COLB' 'BOX' T_CON 3 119.9 119.9 31.74 VOLU 'COLB' 'BOX' T_CON 3 119.9 119.9 7.62 POSI 'COLB' S_TRG+CID_TRG 'COU' 0 0 0 0 'MANY' SATT COLB COLO 95 CID_TRG = CID_TRG+1 !VOLU 'COBH' 'TUBE' T_AIR 3 0. 5.079 31.74 !VOLU 'COBH' 'TUBE' T_VAC 3 0. 5.079 31.74 !Temporarily plug the hole... VOLU 'COBH' 'TUBE' T_LEA 3 0. 5.079 7.62 POSI 'COBH' S_TRG+CID_TRG 'COLB' 0 0 0 0 'ONLY' !POSI 'COBH' S_TRG+CID_TRG 'COU' 0 0 0 0 'ONLY' SATT COBH SEEN 0 CID_TRG = CID_TRG+1 !VOLU 'COUT' 'TUBE' T_AIR 3 5.715 45.73 31.74 !VOLU 'COUT' 'TUBE' T_VAC 3 5.715 45.73 31.74 !VOLU 'COUT' 'TUBE' T_VAC 3 5.715 45.73 7.62 VOLU 'COUT' 'TUBE' T_VAC 3 5.715 43.18 7.62 POSI 'COUT' S_TRG+CID_TRG 'COLB' 0 0 0 0 'MANY' SATT COUT SEEN 0 CID_TRG = CID_TRG+1 !VOLU 'CUAT' 'TUBE' T_ALU 3 43.18 45.72 31.74 !POSI 'CUAT' S_TRG+CID_TRG 'COUT' 0 0 0 0 'ONLY' !SATT CUAT COLO 117 CID_TRG = CID_TRG+1 ! org VOLU 'CCUI' 'CONE' T_LEA 5 31.75 5.715 7.069 5.715 14.86 !VOLU 'CCUI' 'CONE' T_LEA 5 31.75 5.715 7.5 5.715 16.42 !VOLU 'CCUI' 'CONE' T_ALL 5 31.75 5.715 7.5 5.715 16.42 !VOLU 'CCUI' 'CONE' T_LEA 5 15.24 5.715 6.35 5.715 8.0 !VOLU 'CCUI' 'CONE' T_LEA 5 7.62 5.715 9.41 5.715 11.095 VOLU 'CCUI' 'CONE' T_LEA 5 7.62 5.715 11.8 5.715 13.9 POSI 'CCUI' S_TRG+CID_TRG 'COUT' 0 0 0 0 'ONLY' !POSI 'CCUI' S_TRG+CID_TRG 'COU' 0 0 0 0 'ONLY' SATT CCUI COLO 44 CID_TRG = CID_TRG+1 ! org VOLU 'CCUO' 'CONE' T_LEA 5 31.75 18.00 43.18 30.34 43.18 !VOLU 'CCUO' 'CONE' T_LEA 5 31.75 15.8 43.18 24.72 43.18 !VOLU 'CCUO' 'CONE' T_ALL 5 31.75 15.8 43.18 24.72 43.18 !VOLU 'CCUO' 'CONE' T_ALL 5 31.75 19.83 43.18 31.03 43.18 VOLU 'CCUO' 'CONE' T_LEA 5 7.62 27.75 43.18 31.25 43.18 POSI 'CCUO' S_TRG+CID_TRG 'COUT' 0 0 0 0 'ONLY' !POSI 'CCUO' S_TRG+CID_TRG 'COU' 0 0 0 0 'ONLY' SATT CCUO COLO 44 CID_TRG = CID_TRG+1 !Stepped cone ! dz rmin1 rmax1 rmin2 rmax2 phi1 phi2 !VOLU 'COS8' 'CONS' T_ALL 7 31.75 15.8 43.18 24.72 43.18 322.5 352.5 !POSI 'COS8' S_TRG+CID_TRG 'COUT' 0 0 0 0 'ONLY' !SATT COS8 COLO 46 !CID_TRG = CID_TRG+1 !VOLU 'RCU1' 'TUBS' T_LEA 5 5.715 43.18 15.24 11. 34. !VOLU 'RCU1' 'TUBS' T_ALL 5 5.715 43.18 31.74 11. 34. VOLU 'RCU1' 'TUBS' T_LEA 5 5.715 43.18 7.62 11. 34. POSI 'RCU1' S_TRG+CID_TRG 'COUT' 0 0 0 0 'ONLY' !POSI 'RCU1' S_TRG+CID_TRG 'COU' 0 0 0 0 'ONLY' SATT RCU1 COLO 46 CID_TRG = CID_TRG+1 !Stepped cone ! dz rmin1 rmax1 rmin2 rmax2 phi1 phi2 !VOLU 'COS1' 'CONS' T_ALL 7 31.75 15.8 43.18 24.72 43.18 7.5 37.5 !POSI 'COS1' S_TRG+CID_TRG 'COUT' 0 0 0 0 'ONLY' !SATT COS1 COLO 46 !CID_TRG = CID_TRG+1 !VOLU 'RCU2' 'TUBS' T_LEA 5 5.715 43.18 31.74 56. 79. VOLU 'RCU2' 'TUBS' T_LEA 5 5.715 43.18 7.62 56. 79. POSI 'RCU2' S_TRG+CID_TRG 'COUT' 0 0 0 0 'ONLY' SATT RCU2 COLO 46 CID_TRG = CID_TRG+1 !VOLU 'RCU3' 'TUBS' T_LEA 5 5.715 43.18 31.74 101. 124. VOLU 'RCU3' 'TUBS' T_LEA 5 5.715 43.18 7.62 101. 124. POSI 'RCU3' S_TRG+CID_TRG 'COUT' 0 0 0 0 'ONLY' SATT RCU3 COLO 46 CID_TRG = CID_TRG+1 !VOLU 'RCU4' 'TUBS' T_LEA 5 5.715 43.18 31.74 146. 169. VOLU 'RCU4' 'TUBS' T_LEA 5 5.715 43.18 7.62 146. 169. POSI 'RCU4' S_TRG+CID_TRG 'COUT' 0 0 0 0 'ONLY' SATT RCU4 COLO 46 CID_TRG = CID_TRG+1 !VOLU 'RCU5' 'TUBS' T_LEA 5 5.715 43.18 31.74 191. 214. VOLU 'RCU5' 'TUBS' T_LEA 5 5.715 43.18 7.62 191. 214. POSI 'RCU5' S_TRG+CID_TRG 'COUT' 0 0 0 0 'ONLY' SATT RCU5 COLO 46 CID_TRG = CID_TRG+1 !VOLU 'RCU6' 'TUBS' T_LEA 5 5.715 43.18 31.74 236. 259. VOLU 'RCU6' 'TUBS' T_LEA 5 5.715 43.18 7.62 236. 259. POSI 'RCU6' S_TRG+CID_TRG 'COUT' 0 0 0 0 'ONLY' SATT RCU6 COLO 46 CID_TRG = CID_TRG+1 !VOLU 'RCU7' 'TUBS' T_LEA 5 5.715 43.18 31.74 281. 304. VOLU 'RCU7' 'TUBS' T_LEA 5 5.715 43.18 7.62 281. 304. POSI 'RCU7' S_TRG+CID_TRG 'COUT' 0 0 0 0 'ONLY' SATT RCU7 COLO 46 CID_TRG = CID_TRG+1 !VOLU 'RCU8' 'TUBS' T_LEA 5 5.715 43.18 31.74 326. 349. VOLU 'RCU8' 'TUBS' T_LEA 5 5.715 43.18 7.62 326. 349. POSI 'RCU8' S_TRG+CID_TRG 'COUT' 0 0 0 0 'ONLY' SATT RCU8 COLO 46 CID_TRG = CID_TRG+1 VOLU 'CUAU' 'TUBE' T_ALU 3 43.18 66.04 1.27 !POSI 'CUAU' S_TRG+CID_TRG 'COU' 0 0 -33.01 0 'ONLY' SATT CUAU COLO 117 CID_TRG = CID_TRG+1 VOLU 'CUAD' 'TUBE' T_ALU 3 43.18 66.04 1.27 !POSI 'CUAD' S_TRG+CID_TRG 'COU' 0 0 33.01 0 'ONLY' SATT CUAD COLO 117 CID_TRG = CID_TRG+1 !VOLU 'COU2' 'BOX' T_AIR 3 120. 120. 16.51 !VOLU 'COU2' 'BOX' T_VAC 3 120. 120. 16.51 VOLU 'COU2' 'BOX' T_VAC 3 120. 120. 16.51 !POSI 'COU2' S_TRG+CID_TRG 'GLOB' 0 0 -543.17 0 'ONLY' SATT COU2 SEEN 1 CID_TRG = CID_TRG+1 ! Collimator 2: !VOLU 'COD' 'BOX' T_VAC 3 120. 120. 34.28 !POSI 'COD' S_TRG+CID_TRG 'GLOB' 0 0 -311.75 0 'MANY' !SATT COD SEEN 0 CID_TRG = CID_TRG+1 !VOLU 'CODB' 'BOX' T_CON 3 119.9. 119.9 31.74 !POSI 'CODB' S_TRG+CID_TRG 'COD' 0 0 0 0 'MANY' !SATT CODB COLO 95 CID_TRG = CID_TRG+1 !VOLU 'CDBH' 'TUBE' T_VAC 3 0. 5.079 31.74 !POSI 'CDBH' S_TRG+CID_TRG 'COD' 0 0 0 0 'ONLY' !SATT CDBH SEEN 0 CID_TRG = CID_TRG+1 !VOLU 'CODT' 'TUBE' T_VAC 3 7.62 88.04 31.74 !POSI 'CODT' S_TRG+CID_TRG 'COD' 0 0 0 0 'MANY' !SATT CODT SEEN 0 CID_TRG = CID_TRG+1 !VOLU 'CDTI' 'TUBE' T_CON 3 7.62 22.67 31.74 !POSI 'CDTI' S_TRG+CID_TRG 'CODT' 0 0 0 0 'ONLY' !SATT CDTI COLO 95 CID_TRG = CID_TRG+1 !VOLU 'CDIA' 'TUBE' T_ALU 3 22.67 25.21 31.74 !POSI 'CDIA' S_TRG+CID_TRG 'CODT' 0 0 0 0 'ONLY' !SATT CDIA COLO 117 CID_TRG = CID_TRG+1 !VOLU 'CDAT' 'TUBE' T_ALU 3 85.49 88.04 31.76 !POSI 'CDAT' S_TRG+CID_TRG 'CODT' 0 0 0 0 'ONLY' !SATT CDAT COLO 117 CID_TRG = CID_TRG+1 ! orig VOLU 'CDCI' 'CONE' T_LEA 5 31.74 25.21 35.48 25.21 43.28 !VOLU 'CDCI' 'CONE' T_LEA 5 31.74 25.21 35.0 25.21 42.0 !POSI 'CDCI' S_TRG+CID_TRG 'CODT' 0 0 0 0 'ONLY' !SATT CDCI COLO 44 CID_TRG = CID_TRG+1 ! orig VOLU 'CDCO' 'CONE' T_LEA 5 31.74 62.97 85.48 75.32 85.48 !VOLU 'CDCO' 'CONE' T_LEA 5 31.74 60.0 85.48 73.11 85.48 !POSI 'CDCO' S_TRG+CID_TRG 'CODT' 0 0 0 0 'ONLY' !SATT CDCO COLO 44 CID_TRG = CID_TRG+1 !VOLU 'RCD1' 'TUBS' T_LEA 5 25.21 85.48 31.74 13.5 31.5 !POSI 'RCD1' S_TRG+CID_TRG 'CODT' 0 0 0 0 'ONLY' !SATT RCD1 COLO 46 CID_TRG = CID_TRG+1 !VOLU 'RCD2' 'TUBS' T_LEA 5 25.21 85.48 31.74 58.5. 76.5 !POSI 'RCD2' S_TRG+CID_TRG 'CODT' 0 0 0 0 'ONLY' !SATT RCD2 COLO 46 CID_TRG = CID_TRG+1 !VOLU 'RCD3' 'TUBS' T_LEA 5 25.21 85.48 31.74 103.5 121.5 !POSI 'RCD3' S_TRG+CID_TRG 'CODT' 0 0 0 0 'ONLY' !SATT RCD3 COLO 46 CID_TRG = CID_TRG+1 !VOLU 'RCD4' 'TUBS' T_LEA 5 25.21 85.48 31.74 148.5 166.5 !POSI 'RCD4' S_TRG+CID_TRG 'CODT' 0 0 0 0 'ONLY' !SATT RCD4 COLO 46 CID_TRG = CID_TRG+1 !VOLU 'RCD5' 'TUBS' T_LEA 5 25.21 85.48 31.74 193.5 211.5 !POSI 'RCD5' S_TRG+CID_TRG 'CODT' 0 0 0 0 'ONLY' !SATT RCD5 COLO 46 CID_TRG = CID_TRG+1 !VOLU 'RCD6' 'TUBS' T_LEA 5 25.21 85.48 31.74 238.5 256.5 !POSI 'RCD6' S_TRG+CID_TRG 'CODT' 0 0 0 0 'ONLY' !SATT RCD6 COLO 46 CID_TRG = CID_TRG+1 !VOLU 'RCD7' 'TUBS' T_LEA 5 25.21 85.48 31.74 283.5 301.5 !POSI 'RCD7' S_TRG+CID_TRG 'CODT' 0 0 0 0 'ONLY' !SATT RCD7 COLO 46 CID_TRG = CID_TRG+1 !VOLU 'RCD8' 'TUBS' T_LEA 5 25.21 85.48 31.74 328.5 346.5 !POSI 'RCD8' S_TRG+CID_TRG 'CODT' 0 0 0 0 'ONLY' !SATT RCD8 COLO 46 CID_TRG = CID_TRG+1 !VOLU 'CDAU' 'TUBE' T_ALU 3 80.4 105.8 1.27 !POSI 'CDAU' S_TRG+CID_TRG 'COD' 0 0 -33.01 0 'ONLY' !SATT CDAU COLO 117 CID_TRG = CID_TRG+1 !VOLU 'CDAD' 'TUBE' T_ALU 3 80.4 105.8 1.27 !POSI 'CDAD' S_TRG+CID_TRG 'COD' 0 0 33.1 0 'ONLY' !SATT CDAD COLO 117 CID_TRG = CID_TRG+1 ! Collimator Stands and Walls: ! Y-X VOLU 'CBTO' 'BOX' T_CON 3 25.4 120. 147.45 !?!POSI 'CBTO' S_TRG+CID_TRG 'GLOB' 145.4 0 -427.46 0 'MANY' SATT CBTO COLO 95 CID_TRG = CID_TRG+1 VOLU 'CBBO' 'BOX' T_CON 3 25.4 120. 147.45 !?!POSI 'CBBO' S_TRG+CID_TRG 'GLOB' -145.4 0 -427.46 0 'MANY' SATT CBBO COLO 95 CID_TRG = CID_TRG+1 VOLU 'CBSU' 'BOX' T_CON 3 112.7 120. 147.45 !?!POSI 'CBSU' S_TRG+CID_TRG 'GLOB' -283.5 0 -427.46 0 'MANY' SATT CBSU COLO 95 CID_TRG = CID_TRG+1 ! X-Y !VOLU 'CBTO' 'BOX' T_CON 3 119.9 25.4 147.45 !POSI 'CBTO' S_TRG+CID_TRG 'GLOB' 0 145.4 -427.46 0 'MANY' !SATT CBTO COLO 95 !CID_TRG = CID_TRG+1 !VOLU 'CBBO' 'BOX' T_CON 3 119.9 25.4 147.45 !POSI 'CBBO' S_TRG+CID_TRG 'GLOB' 0 -145.4 -427.46 0 'MANY' !SATT CBBO COLO 95 !CID_TRG = CID_TRG+1 !VOLU 'CBSU' 'BOX' T_CON 3 119.9 112.7 147.45 !POSI 'CBSU' S_TRG+CID_TRG 'GLOB' 0 -283.5 -427.46 0 'MANY' !SATT CBSU COLO 95 !CID_TRG = CID_TRG+1 ! Target chamber attachments: !?!VOLU 'PCO' 'BOX' T_VAC 3 60. 60. 22.54 VOLU 'PCO' 'BOX' T_HEL 3 60. 60. 22.54 !?!POSI 'PCO' S_TRG+CID_TRG 'GLOB' 0 0 -600.0 0 'MANY' SATT PCO SEEN 0 CID_TRG = CID_TRG+1 !?!VOLU 'PCOU' 'TUBE' T_VAC 3 0. 60. 1.27 VOLU 'PCOU' 'TUBE' T_HEL 3 0. 60. 1.27 !?!POSI 'PCOU' S_TRG+CID_TRG 'PCO' 0 0 -21.27 0 'MANY' SATT PCOU SEEN 0 CID_TRG = CID_TRG+1 !?!VOLU 'PCOM' 'TUBE' T_VAC 3 0. 60. 20. VOLU 'PCOM' 'TUBE' T_HEL 3 0. 60. 20. !?!POSI 'PCOM' S_TRG+CID_TRG 'PCO' 0 0 0 0 'MANY' SATT PCOM SEEN 0 CID_TRG = CID_TRG+1 !?!VOLU 'PCOD' 'TUBE' T_VAC 3 0. 60. 1.27 VOLU 'PCOD' 'TUBE' T_HEL 3 0. 60. 1.27 !?!POSI 'PCOD' S_TRG+CID_TRG 'PCO' 0 0 21.27 0 'MANY' SATT PCOD SEEN 0 CID_TRG = CID_TRG+1 VOLU 'URIN' 'TUBE' T_ALU 3 26. 55.88 1.27 !?!POSI 'URIN' S_TRG+CID_TRG 'PCOU' 0 0 0 0 'ONLY' SATT URIN COLO 117 CID_TRG = CID_TRG+1 VOLU 'MRII' 'TUBE' T_ALU 3 26. 27.86 20. !?!POSI 'MRII' S_TRG+CID_TRG 'PCOM' 0 0 0 0 'ONLY' SATT MRII COLO 127 CID_TRG = CID_TRG+1 VOLU 'MRIO' 'TUBE' T_LEA 3 27.86 43.18 20.0 !?!POSI 'MRIO' S_TRG+CID_TRG 'PCOM' 0 0 0. 0 'ONLY' SATT MRIO COLO 46 CID_TRG = CID_TRG+1 VOLU 'DCOO' 'CONE' T_ALU 5 1.27 25 55.88 26 55.88 !?!POSI 'DCOO' S_TRG+CID_TRG 'PCOD' 0 0 0 0 'ONLY' SATT DCOO COLO 117 CID_TRG = CID_TRG+1 VOLU 'DCOI' 'CONE' T_ALU 5 1.27 5.0 5. 5.08 5.2 !?!POSI 'DCOI' S_TRG+CID_TRG 'PCOD' 0 0 0 0 'ONLY' SATT DCOI COLO 117 CID_TRG = CID_TRG+1 VOLU 'PCR1' 'TUBS' T_ALU 5 5. 26 1.26 14.5 30.5 !?!POSI 'PCR1' S_TRG+CID_TRG 'PCOD' 0 0 0 0 'ONLY' SATT PCR1 COLO 117 CID_TRG = CID_TRG+1 VOLU 'PCR2' 'TUBS' T_ALU 5 5. 26 1.26 59.5 75.5 !?!POSI 'PCR2' S_TRG+CID_TRG 'PCOD' 0 0 0 0 'ONLY' SATT PCR2 COLO 117 CID_TRG = CID_TRG+1 VOLU 'PCR3' 'TUBS' T_ALU 5 5. 26 1.26 104.5 120.5 !?!POSI 'PCR3' S_TRG+CID_TRG 'PCOD' 0 0 0 0 'ONLY' SATT PCR3 COLO 117 CID_TRG = CID_TRG+1 VOLU 'PCR4' 'TUBS' T_ALU 5 5. 26 1.26 149.5 165.5 !?!POSI 'PCR4' S_TRG+CID_TRG 'PCOD' 0 0 0 0 'ONLY' SATT PCR4 COLO 117 CID_TRG = CID_TRG+1 VOLU 'PCR5' 'TUBS' T_ALU 5 5. 26 1.26 194.5 210.5 !?!POSI 'PCR5' S_TRG+CID_TRG 'PCOD' 0 0 0 0 'ONLY' SATT PCR5 COLO 117 CID_TRG = CID_TRG+1 VOLU 'PCR6' 'TUBS' T_ALU 5 5. 26 1.26 239.5 255.5 !?!POSI 'PCR6' S_TRG+CID_TRG 'PCOD' 0 0 0 0 'ONLY' SATT PCR6 COLO 117 CID_TRG = CID_TRG+1 VOLU 'PCR7' 'TUBS' T_ALU 5 5. 26 1.26 284.5 300.5 !?!POSI 'PCR7' S_TRG+CID_TRG 'PCOD' 0 0 0 0 'ONLY' SATT PCR7 COLO 117 CID_TRG = CID_TRG+1 VOLU 'PCR8' 'TUBS' T_ALU 5 5. 26 1.26 329.5 345.5 !?!POSI 'PCR8' S_TRG+CID_TRG 'PCOD' 0 0 0 0 'ONLY' SATT PCR8 COLO 117 CID_TRG = CID_TRG+1 ! Beam line: !?!VOLU 'BLIN' 'TUBE' T_VAC 3 0. 20. 700. !VOLU 'BLIN' 'TUBE' T_HEL 3 0. 20. 700. VOLU 'BLIN' 'TUBE' T_HEL 3 0. 50. 700. !?!POSI 'BLIN' S_TRG+CID_TRG 'GLOB' 0 0 0 0 'MANY' SATT BLIN SEEN 0 CID_TRG = CID_TRG+1 VOLU 'BEA1' 'TUBE' T_ALU 3 5.08 5.715 115.075 !?!POSI 'BEA1' S_TRG+CID_TRG 'BLIN' 0 0 -463.655 0 'ONLY' SATT BEA1 COLO 117 CID_TRG = CID_TRG+1 !VOLU 'CY24' 'TUBE' T_LEA 3 5.715 14.55 80.785 !!?!POSI 'CY24' S_TRG+CID_TRG 'BLIN' 0 0 -429.365 0 'ONLY' VOLU 'CY24' 'TUBE' T_LEA 3 5.715 14.55 43.095 !?!POSI 'CY24' S_TRG+CID_TRG 'BLIN' 0 0 -392.165 0 'ONLY' SATT CY24 COLO 46 CID_TRG = CID_TRG+1 VOLU 'BEA2' 'TUBE' T_ALU 3 5.715 15.24 1.27 !!?!POSI 'BEA2' S_TRG+CID_TRG 'BLIN' 0 0 -347.31 0 'ONLY' !?!POSI 'BEA2' S_TRG+CID_TRG 'BLIN' 0 0 -347.8 0 'ONLY' SATT BEA2 COLO 117 CID_TRG = CID_TRG+1 VOLU 'BEA3' 'TUBE' T_ALU 3 5.715 32.94 1.27 !!?!POSI 'BEA3' S_TRG+CID_TRG 'BLIN' 0 0 -344.76 0 'ONLY' !?!POSI 'BEA3' S_TRG+CID_TRG 'BLIN' 0 0 -345.26 0 'ONLY' SATT BEA3 COLO 117 CID_TRG = CID_TRG+1 VOLU 'BEA4' 'TUBE' T_ALU 3 5.715 32.94 1.27 !!?!POSI 'BEA4' S_TRG+CID_TRG 'BLIN' 0 0 -278.73 0 'ONLY' !?!POSI 'BEA4' S_TRG+CID_TRG 'BLIN' 0 0 -252.89 0 'ONLY' SATT BEA4 COLO 117 CID_TRG = CID_TRG+1 !VOLU 'BEA5' 'TUBE' T_ALU 3 5.08 7.62 31.75 !!?!POSI 'BEA5' S_TRG+CID_TRG 'BLIN' 0 0 -311.75 0 'ONLY' VOLU 'BEA5' 'TUBE' T_ALU 3 5.08 7.62 44.915 !?!POSI 'BEA5' S_TRG+CID_TRG 'BLIN' 0 0 -299.075 0 'ONLY' SATT BEA5 COLO 117 CID_TRG = CID_TRG+1 VOLU 'BEA6' 'TUBE' T_ALU 3 5.715 15.27 1.27 !!?!POSI 'BEA6' S_TRG+CID_TRG 'BLIN' 0 0 -276.19 0 'ONLY' !?!POSI 'BEA6' S_TRG+CID_TRG 'BLIN' 0 0 -250.35 0 'ONLY' SATT BEA6 COLO 117 CID_TRG = CID_TRG+1 !VOLU 'BEA7' 'TUBE' T_LEA 3 5.715 13.335 45.72 !!?!POSI 'BEA7' S_TRG+CID_TRG 'BLIN' 0 0 -229.2 0 'ONLY' VOLU 'BEA7' 'TUBE' T_LEA 3 5.715 13.335 32.8 !?!POSI 'BEA7' S_TRG+CID_TRG 'BLIN' 0 0 -216.28 0 'ONLY' SATT BEA7 COLO 46 CID_TRG = CID_TRG+1 !VOLU 'BEA8' 'TUBE' T_ALU 3 5.08 5.715 45.72 !!?!POSI 'BEA8' S_TRG+CID_TRG 'BLIN' 0 0 -229.2 0 'ONLY' VOLU 'BEA8' 'TUBE' T_ALU 3 5.08 5.715 32.8 !?!POSI 'BEA8' S_TRG+CID_TRG 'BLIN' 0 0 -216.28 0 'ONLY' SATT BEA8 COLO 117 CID_TRG = CID_TRG+1 VOLU 'BEA9' 'TUBE' T_ALU 3 5.08 13.35 1.27 !?!POSI 'BEA9' S_TRG+CID_TRG 'BLIN' 0 0 -182.21 0 'ONLY' SATT BEA9 COLO 117 CID_TRG = CID_TRG+1 VOLU 'BE10' 'TUBE' T_ALU 3 7.62 13.35 1.27 !?!POSI 'BE10' S_TRG+CID_TRG 'BLIN' 0 0 -179.67 0 'ONLY' SATT BE10 COLO 117 CID_TRG = CID_TRG+1 VOLU 'BE11' 'TUBE' T_ALU 3 7.62 8.255 200. !?!POSI 'BE11' S_TRG+CID_TRG 'BLIN' 0 0 21.6 0 'ONLY' SATT BE11 COLO 117 CID_TRG = CID_TRG+1 VOLU 'BE12' 'TUBE' T_LEA 3 8.255 13.335 200. !?!POSI 'BE12' S_TRG+CID_TRG 'BLIN' 0 0 21.6 0 'ONLY' SATT BE12 COLO 46 CID_TRG = CID_TRG+1 VOLU 'BE13' 'TUBE' T_LEA 3 13.335 17.14 37.05 !?!POSI 'BE13' S_TRG+CID_TRG 'BLIN' 0 0 184.55 0 'ONLY' SATT BE13 COLO 46 CID_TRG = CID_TRG+1 VOLU 'BE14' 'TUBE' T_ALU 3 7.62 18.43 1.27 !?!POSI 'BE14' S_TRG+CID_TRG 'BLIN' 0 0 222.87 0 'ONLY' SATT BE14 COLO 117 CID_TRG = CID_TRG+1 VOLU 'BE15' 'TUBE' T_ALU 3 12.7 18.43 1.27 !?!POSI 'BE15' S_TRG+CID_TRG 'BLIN' 0 0 225.41 0 'ONLY' SATT BE15 COLO 117 CID_TRG = CID_TRG+1 VOLU 'BE16' 'TUBE' T_ALU 3 12.7 13.335 236.66 !?!POSI 'BE16' S_TRG+CID_TRG 'BLIN' 0 0 463.34 0 'ONLY' SATT BE16 COLO 117 CID_TRG = CID_TRG+1 VOLU 'BE17' 'TUBE' T_LEA 3 13.336 18.416 236.66 !?!POSI 'BE17' S_TRG+CID_TRG 'BLIN' 0 0 463.34 0 'ONLY' SATT BE17 COLO 46 CID_TRG = CID_TRG+1 VOLU 'BSHI' 'TUBE' T_LEA 3 13.335 30.29 5. !!?!POSI 'BSHI' S_TRG+CID_TRG 'BLIN' 0 0 -269.73 0 'ONLY' !?!POSI 'BSHI' S_TRG+CID_TRG 'BLIN' 0 0 -244.08 0 'ONLY' SATT BSHI COLO 46 CID_TRG = CID_TRG+1 ! Detector Collimator: VOLU 'DCOD' 'TRD1' T_LEA 4 20. 35. 110. 20. !!?!POSI 'DCOD' S_TRG+CID_TRG 'GLOB' 275. 0 540. 0 'ONLY' SATT DCOD COLO 46 CID_TRG = CID_TRG+1 VOLU 'DCOU' 'TRD1' T_LEA 4 35. 20. 110. 20. !!?!POSI 'DCOU' S_TRG+CID_TRG 'GLOB' 345. 0 540. 0 'ONLY' SATT DCOU COLO 46 CID_TRG = CID_TRG+1 VOLU 'DCCO' 'BOX' T_CON 3 78.0 110. 20. !!?!POSI 'DCCO' S_TRG+CID_TRG 'GLOB' 177. 0 540. 0 'ONLY' SATT DCCO COLO 95 CID_TRG = CID_TRG+1 ! !-------+ ! Coils ! !-------+ ! The conductor (copper) is defined by a series of MANY volumes (SCx and CCx) ! inside another MANY volume (ICOI) with the dimensions of the coil case. ! The result is the intersection of the conductor volumes and the coil ! case volume with the material being defined by the conductor. This ! in turn is included in an ONLY volume (COI) which defines the aluminium ! of the coil case (at least that is the way I think it works). That ! outer-most mother volume is positioned 8 times to define the 8 coils. ! Note that COI also overlaps the OCT volume (the mother volume of detector ! and collimator parts) which is defined as MANY. Some assumptions: ! 1) the conductor is only made of copper ! 2) the coil case is a "BOX" (i.e. it has no "cut-outs" for the octagon ! ring, the hubs, etc. ! 3) no bolts, LHe channels, insulation, etc. is included (anything ! in the coil case which is not copper is aluminium). ! ! First define some constants. ! Nominal dimensions of the coil case (assumed to be rectangular) are ! those of the envelope defined by spec. drawing E-2920-3. Additional ! "fudge constants" are added to the X (radial) and Z (along beam) ! dimensions to adjust the position of the collimator DX_COI = 0.5*150. DY_COI = 0.5*8. DZ_COI = 0.5*0.0 ! Distance in Z between the upstream surface of the coil case and ! the outside surface of the conductor (see spec. drawing E-2920-3) DELZ_COI = 6 ! Radial position of the inner (small r) surface of the coil case (see spec. ! drawing E-2920-3). RMIN_COI=15. ! Coil parameters from G0-95-001 defining the position of centroid of the ! outer-most superconducting cable. ! Laszewskis small r is the distance to the extension of the low-r, low-z ! curve IF IT WERE TO BE EXTENDED TO 90 DEGREES (rather than 90 minus ! DEL_CON). ! The coils consist of 4 layers of 36 turns. The copper matrix that is ! wrapped is 2 cm wide and 0.5 cm thick (see spec drawing B-2920-5). ! Defined here are the (half) dimensions of the coil cross section WIDTH_CON = 0.5*8 THICK_CON = 0.5*50. ! The (half) thickness of the superconducting cable imbedded in the copper ! matrix (see spec. drawing B-2920-5). THICK_RUTH = 0.5*0.13 ! ! Position in Z of the upstream surface of the coil case. The centroid ! of the outer coil is at Z=0. Note that we must take into account the ! thickness of the super-conductor in the copper matrix. MINZ_COI=-THICK_RUTH-DELZ_COI ! Radial position of the center of the coil case OR_COI = RMIN_COI+DX_COI ! Z position of the center of the coil case OZ_COI = 0. ! ! Define the coil box volume !?!VOLU 'COI' 'BOX' T_VAC 3 DX_COI DY_COI DZ_COI VOLU 'COI' 'BOX' T_HEL 3 DX_COI DY_COI DZ_COI SATT COI SEEN 0 ! ROTM S_COIL+1 90 -TH_OCT 90 90-TH_OCT 0 0 !?!POSI 'COI' S_COIL+CID_COIL 'GLOB' OR_COI*C_OCT -OR_COI*S_OCT OZ_COI S_COIL+1 'MANY' CID_COIL = CID_COIL+1 ! ROTM S_COIL+2 90 TH_OCT 90 90+TH_OCT 0 0 !?!POSI 'COI' S_COIL+CID_COIL 'GLOB' OR_COI*C_OCT OR_COI*S_OCT OZ_COI S_COIL+2 'MANY' CID_COIL = CID_COIL+1 ! ROTM S_COIL+3 90 3*TH_OCT 90 90+3*TH_OCT 0 0 !?!POSI 'COI' S_COIL+CID_COIL 'GLOB' OR_COI*S_OCT OR_COI*C_OCT OZ_COI S_COIL+3 'MANY' CID_COIL = CID_COIL+1 ! ROTM S_COIL+4 90 5*TH_OCT 90 90+5*TH_OCT 0 0 !?!POSI 'COI' S_COIL+CID_COIL 'GLOB' -OR_COI*S_OCT OR_COI*C_OCT OZ_COI S_COIL+4 'MANY' CID_COIL = CID_COIL+1 ! ROTM S_COIL+5 90 7*TH_OCT 90 90+7*TH_OCT 0 0 !?!POSI 'COI' S_COIL+CID_COIL 'GLOB' -OR_COI*C_OCT OR_COI*S_OCT OZ_COI S_COIL+5 'MANY' CID_COIL = CID_COIL+1 ! ROTM S_COIL+6 90 9*TH_OCT 90 90+9*TH_OCT 0 0 !?!POSI 'COI' S_COIL+CID_COIL 'GLOB' -OR_COI*C_OCT -OR_COI*S_OCT OZ_COI S_COIL+6 'MANY' CID_COIL = CID_COIL+1 ! ROTM S_COIL+7 90 11*TH_OCT 90 90+11*TH_OCT 0 0 !?!POSI 'COI' S_COIL+CID_COIL 'GLOB' -OR_COI*S_OCT -OR_COI*C_OCT OZ_COI S_COIL+7 'MANY' CID_COIL = CID_COIL+1 ! ROTM S_COIL+8 90 13*TH_OCT 90 TH_OCT 0 0 !?!POSI 'COI' S_COIL+CID_COIL 'GLOB' OR_COI*S_OCT -OR_COI*C_OCT OZ_COI S_COIL+8 'MANY' CID_COIL = CID_COIL+1 ! ! Define the parts of the conductor. Origin coordinates are defined ! in a system with X-Z plane in mid-plane of the coil case. X is in ! the "radial" direction. ! The outer radius of coil curved sections RMAX_CON = 75. ! The inner radius of coil curved sections RMIN_CON = 25. ! ! The curved conductor at large z OX_CC2 = 0. OZ_CC2 = -110. VOLU 'CC2' 'TUBS' T_COP 5 RMIN_CON RMAX_CON WIDTH_CON 90 270 ! Define a rotation to put X along old Z, Y along old -X, Z along old -Y ROTM S_COIL+10 0 0 90 180 90 270 !?!POSI 'CC2' S_COIL+CID_COIL 'COI' OX_CC2 0 OZ_CC2 S_COIL+10 'ONLY' SATT CC2 COLO 24 CID_COIL = CID_COIL+1 ! ! The curved conductor at small z OX_CC4 = 0. OZ_CC4 = 110. VOLU 'CC4' 'TUBS' T_COP 5 RMIN_CON RMAX_CON WIDTH_CON 90 270 ! Define a rotation to put X along old -Z, Y along old X, Z along old -y ROTM S_COIL+12 180 0 90 0 90 270 !?!POSI 'CC4' S_COIL+CID_COIL 'COI' OX_CC4 0 OZ_CC4 S_COIL+12 'ONLY' SATT CC4 COLO 24 CID_COIL = CID_COIL+1 ! ! Straight conductor at large r DZ_SC4 = 0.5*220. OX_SC4 = 50. OZ_SC4 = 0. VOLU 'SC2' 'BOX' T_COP 3 THICK_CON WIDTH_CON DZ_SC4 !?!POSI 'SC2' S_COIL+CID_COIL 'COI' OX_SC4 0 OZ_SC4 0 'ONLY' SATT SC2 COLO 24 CID_COIL = CID_COIL+1 ! Straight conductor at small r DZ_SC4 = 0.5*220. OX_SC4 = -50. OZ_SC4 = 0. VOLU 'SC4' 'BOX' T_COP 3 THICK_CON WIDTH_CON DZ_SC4 !?!POSI 'SC4' S_COIL+CID_COIL 'COI' OX_SC4 0 OZ_SC4 0 'ONLY' SATT SC4 COLO 24 CID_COIL = CID_COIL+1 ! !-------+ ! Coils - minitorus! !-------+ ! The conductor (copper) is defined by a series of MANY volumes (SCx and CCx) ! inside another MANY volume (ICOI) with the dimensions of the coil case. ! The result is the intersection of the conductor volumes and the coil ! case volume with the material being defined by the conductor. This ! in turn is included in an ONLY volume (COI) which defines the aluminium ! of the coil case (at least that is the way I think it works). That ! outer-most mother volume is positioned 8 times to define the 8 coils. ! Note that COI also overlaps the OCT volume (the mother volume of detector ! and collimator parts) which is defined as MANY. Some assumptions: ! 1) the conductor is only made of copper ! 2) the coil case is a "BOX" (i.e. it has no "cut-outs" for the octagon ! ring, the hubs, etc. ! 3) no bolts, LHe channels, insulation, etc. is included (anything ! in the coil case which is not copper is aluminium). ! ! First define some constants. ! Nominal dimensions of the coil case (assumed to be rectangular) are ! those of the envelope defined by spec. drawing E-2920-3. Additional ! "fudge constants" are added to the X (radial) and Z (along beam) ! dimensions to adjust the position of the collimator DX_COIM = 0.5*150.*.35 DY_COIM = 0.5*10. DZ_COIM = 0.5*0.0*.35 ! Distance in Z between the upstream surface of the coil case and ! the outside surface of the conductor (see spec. drawing E-2920-3) DELZ_COIM = 6 ! Radial position of the inner (small r) surface of the coil case (see spec. ! drawing E-2920-3). RMIN_COIM=15. ! Coil parameters from G0-95-001 defining the position of centroid of the ! outer-most superconducting cable. ! Laszewskis small r is the distance to the extension of the low-r, low-z ! curve IF IT WERE TO BE EXTENDED TO 90 DEGREES (rather than 90 minus ! DEL_CON). ! The coils consist of 4 layers of 36 turns. The copper matrix that is ! wrapped is 2 cm wide and 0.5 cm thick (see spec drawing B-2920-5). ! Defined here are the (half) dimensions of the coil cross section WIDTH_CON = 1.4 THICK_CON = 0.5*50.*.35 ! The (half) thickness of the superconducting cable imbedded in the copper ! matrix (see spec. drawing B-2920-5). THICK_RUTH = 0.5*0.13 ! ! Position in Z of the upstream surface of the coil case. The centroid ! of the outer coil is at Z=0. Note that we must take into account the ! thickness of the super-conductor in the copper matrix. MINZ_COIM=-THICK_RUTH-DELZ_COIM ! Radial position of the center of the coil case !OR_COIM = RMIN_COI+DX_COIM !r15 !OR_COIM = 41.25 !r10 OR_COIM = 36.25 !r5 !OR_COIM = 31.25 ! Z position of the center of the coil case origin -425 !OZ_COIM = 0.-465.0 OZ_COIM = 0.-505.0 ! ! Define the coil box volume !?!VOLU 'COIM' 'BOX' T_VAC 3 DX_COIM DY_COIM DZ_COIM VOLU 'COIM' 'BOX' T_HEL 3 DX_COIM DY_COIM DZ_COIM SATT COIM SEEN 0 ! ROTM S_COIM+1 90 -TH_OCT 90 90-TH_OCT 0 0 !?!POSI 'COIM' S_COIM+CID_COIM 'GLOB' OR_COIM*C_OCT -OR_COIM*S_OCT OZ_COIM S_COIM+1 'MANY' CID_COIM = CID_COIM+1 ! ROTM S_COIM+2 90 TH_OCT 90 90+TH_OCT 0 0 !?!POSI 'COIM' S_COIM+CID_COIM 'GLOB' OR_COIM*C_OCT OR_COIM*S_OCT OZ_COIM S_COIM+2 'MANY' CID_COIM = CID_COIM+1 ! ROTM S_COIM+3 90 3*TH_OCT 90 90+3*TH_OCT 0 0 !?!POSI 'COIM' S_COIM+CID_COIM 'GLOB' OR_COIM*S_OCT OR_COIM*C_OCT OZ_COIM S_COIM+3 'MANY' CID_COIM = CID_COIM+1 ! ROTM S_COIM+4 90 5*TH_OCT 90 90+5*TH_OCT 0 0 !?!POSI 'COIM' S_COIM+CID_COIM 'GLOB' -OR_COIM*S_OCT OR_COIM*C_OCT OZ_COIM S_COIM+4 'MANY' CID_COIM = CID_COIM+1 ! ROTM S_COIM+5 90 7*TH_OCT 90 90+7*TH_OCT 0 0 !?!POSI 'COIM' S_COIM+CID_COIM 'GLOB' -OR_COIM*C_OCT OR_COIM*S_OCT OZ_COIM S_COIM+5 'MANY' CID_COIM = CID_COIM+1 ! ROTM S_COIM+6 90 9*TH_OCT 90 90+9*TH_OCT 0 0 !?!POSI 'COIM' S_COIM+CID_COIM 'GLOB' -OR_COIM*C_OCT -OR_COIM*S_OCT OZ_COIM S_COIM+6 'MANY' CID_COIM = CID_COIM+1 ! ROTM S_COIM+7 90 11*TH_OCT 90 90+11*TH_OCT 0 0 !?!POSI 'COIM' S_COIM+CID_COIM 'GLOB' -OR_COIM*S_OCT -OR_COIM*C_OCT OZ_COIM S_COIM+7 'MANY' CID_COIM = CID_COIM+1 ! ROTM S_COIM+8 90 13*TH_OCT 90 TH_OCT 0 0 !?!POSI 'COIM' S_COIM+CID_COIM 'GLOB' OR_COIM*S_OCT -OR_COIM*C_OCT OZ_COIM S_COIM+8 'MANY' CID_COIM = CID_COIM+1 ! ! Define the parts of the conductor. Origin coordinates are defined ! in a system with X-Z plane in mid-plane of the coil case. X is in ! the "radial" direction. ! The outer radius of coil curved sections RMAX_CON = 26.25 ! The inner radius of coil curved sections RMIN_CON = 8.75 ! ! The curved conductor at large z OX_CC2 = 0. !OZ_CC2 = -110.*.35 OZ_CC2 = 0.0 VOLU 'CC2M' 'TUBS' T_COP 5 RMIN_CON RMAX_CON WIDTH_CON 90 270 ! Define a rotation to put X along old Z, Y along old -X, Z along old -Y ROTM S_COIM+10 0 0 90 180 90 270 !?!POSI 'CC2M' S_COIM+CID_COIM 'COIM' OX_CC2 0 OZ_CC2 S_COIM+10 'ONLY' SATT CC2M COLO 24 CID_COIM = CID_COIM+1 ! ! The curved conductor at small z OX_CC4 = 0. !OZ_CC4 = 110.*.35 OZ_CC4 = 0.0 VOLU 'CC4M' 'TUBS' T_COP 5 RMIN_CON RMAX_CON WIDTH_CON 90 270 ! Define a rotation to put X along old -Z, Y along old X, Z along old -y ROTM S_COIM+12 180 0 90 0 90 270 !?!POSI 'CC4M' S_COIM+CID_COIM 'COIM' OX_CC4 0 OZ_CC4 S_COIM+12 'ONLY' SATT CC4M COLO 24 CID_COIM = CID_COIM+1 ! ! Straight conductor at large r DZ_SC4 = 0.5*220.*.35 OX_SC4 = 50.*.35 OZ_SC4 = 0. VOLU 'SC2M' 'BOX' T_COP 3 THICK_CON WIDTH_CON DZ_SC4 !!?!POSI 'SC2M' S_COIM+CID_COIM 'COIM' OX_SC4 0 OZ_SC4 0 'ONLY' SATT SC2M COLO 24 CID_COIM = CID_COIM+1 ! Straight conductor at small r DZ_SC4 = 0.5*220.*.35 OX_SC4 = -50.*.35 OZ_SC4 = 0. VOLU 'SC4M' 'BOX' T_COP 3 THICK_CON WIDTH_CON DZ_SC4 !!?!POSI 'SC4M' S_COIM+CID_COIM 'COIM' OX_SC4 0 OZ_SC4 0 'ONLY' SATT SC4M COLO 24 CID_COIL = CID_COIL+1 ! !-----------------------+ ! Focal Plane Detectors ! !-----------------------+ ! The G0 detector shape consists of an inner (small Q**2) and outer ! (large Q**2) circular arc (not necessarily subtending the same angle), ! which are connected by straight line segments (not necessarily on ! radii of either arc). In order to produce this shape with GEANT ! primitives, four volumes are used. The first, (FPxx and FBxx) consisting ! of "scintillator material" is a tube segment (TUBS) which defines the bulk ! of the volume. Its outer radius matches the outer radius of the detector. ! From this are "subtracted" 3 other volumes: 1) an inner tube segment (FIxx) ! whose outer edge defines the inner circular arc of the detector, 2) a ! triangular shape (FLxx) which removes material to define the straight ! edge on beam left (negative Y), and 3) a similar triangular shape ! (FRxx) which removes material to define the straight edge on the beam ! right (positive Y). The triangular shapes are degenerate generalized ! trapezoid (TRAP) volumes where the "BL" parameters have been set to 0. ! In order to do the subtraction, The principle TUBS volumes (FPxx and FBxx) ! are positioned as "MANY" volumes and specified as being made of scintillator. ! The other 3 volumes which overlap the principle volume are positioned ! as "ONLY" and specified to be vacuum. ! ! The thickness of the first 4 detector shapes is 0.5 cm. All remaining ! shapes are 1.0 cm thick. Note that two layers of focal plane detectors ! are created: the FPxx layer is the front layer and the FBxx layer is the ! back layer. The shapes of these volumes are identical, however separate ! volume definitions are used for the principle volumes (not the volumes ! that are "subtracted") as required by the HITS package. ! ! The detailed information about the detector shapes and the placement and ! orientation of the midplane between detector layers comes from a parameter ! file. This parameter file is used as input to a program, (DET2EUC ! version 1C run on 01:49:50 03/21/99 (last edit 3/21/99)) which interprets ! it to produce the following geometry definition. The parameter file ! used for this was DetParam.log dated February 19, 1999 from David Brown. ! ! Define detector number 1 ROTM S_SCI+1 90 0 90 90 0 0 ! !syntax !VOLU 'Name' 'TUBS' T_VACS 5 innerRadius outerRadius HalfThickness PhiMin PhiMax !VOLU 'Name' 'TUBE' T_VACS 3 innerRadius outerRadius HalfThickness ! Define detector number 1 - GEM location? !VOLU 'FP01' 'TUBS' T_VACS 5 0 200. .25 -75. 75. VOLU 'FP01' 'BOX' T_VACS 3 396.2 396.2 .25 !POSI 'FP01' S_SCI+CID_SCI 'GLOB' 0 0 -531.5 S_SCI+1 'ONLY' POSI 'FP01' S_SCI+CID_SCI 'GLOB' 0 0 -600 S_SCI+1 'ONLY' SATT FP01 SEEN 1 CID_SCI = CID_SCI+1 ! Define detector number 2 - input to minitorus !VOLU 'FP02' 'TUBS' T_VACS 5 0 200. .25 -75. 75. VOLU 'FP02' 'BOX' T_VACS 3 396.2 396.2 .25 !POSI 'FP02' S_SCI+CID_SCI 'GLOB' 0 0 -531.5 S_SCI+1 'ONLY' POSI 'FP02' S_SCI+CID_SCI 'GLOB' 0 0 -521.81 S_SCI+1 'ONLY' SATT FP02 SEEN 1 CID_SCI = CID_SCI+1 ! Define detector number 3 - exit of minitorus !VOLU 'FP03' 'TUBS' T_VACS 5 0 200. .25 -75.0 75.0 VOLU 'FP03' 'BOX' T_VACS 3 396.2 396.2 .25 !POSI 'FP03' S_SCI+CID_SCI 'GLOB' 0 0 -478.5 S_SCI+1 'ONLY' POSI 'FP03' S_SCI+CID_SCI 'GLOB' 0 0 -468.81 S_SCI+1 'ONLY' SATT FP03 SEEN 1 CID_SCI = CID_SCI+1 ! Define detector number 4 - input to primary collimator !VOLU 'FP04' 'TUBS' T_VACS 5 0 200. .25 -75.0 75.0 !POSI 'FP04' S_SCI+CID_SCI 'GLOB' 0 0 -276.72 S_SCI+1 'ONLY' VOLU 'FP04' 'BOX' T_VACS 3 396.2 396.2 .25 !Boston?? !POSI 'FP04' S_SCI+CID_SCI 'GLOB' 0 0 -251.37 S_SCI+1 'ONLY' !reference with changes POSI 'FP04' S_SCI+CID_SCI 'GLOB' 0 0 -354.559 S_SCI+1 'ONLY' SATT FP04 SEEN 1 CID_SCI = CID_SCI+1 ! Define detector number 5 - back face of 1st middle chamber !VOLU 'FP05' 'TUBS' T_VACS 5 0 200. .25 -75.0 75.0 !POSI 'FP05' S_SCI+CID_SCI 'GLOB' 0 0 -265.72 S_SCI+1 'ONLY' !POSI 'FP05' S_SCI+CID_SCI 'GLOB' 0 0 -331.04 S_SCI+1 'ONLY' ! Define detector number 5 - back face of 1st middle chamber VOLU 'FP05' 'BOX' T_VACS 3 396.2 396.2 .25 POSI 'FP05' S_SCI+CID_SCI 'GLOB' 0 0 -316.859 S_SCI+1 'ONLY' SATT FP05 SEEN 1 CID_SCI = CID_SCI+1 ! Define detector number 6 - back face of 2nd middle chamber !VOLU 'FP06' 'TUBS' T_VACS 5 0 200. .25 -75.0 75.0 !POSI 'FP06' S_SCI+CID_SCI 'GLOB' 0 0 -215.72 S_SCI+1 'ONLY' !POSI 'FP06' S_SCI+CID_SCI 'GLOB' 0 0 -284.32 S_SCI+1 'ONLY' ! Define detector number 6 - back face of 2nd middle chamber VOLU 'FP06' 'BOX' T_VACS 3 396.2 396.2 .25 POSI 'FP06' S_SCI+CID_SCI 'GLOB' 0 0 -276.859 S_SCI+1 'ONLY' SATT FP06 SEEN 1 CID_SCI = CID_SCI+1 ! Define detector number 7 - input to main torus support structure !VOLU 'FP07' 'TUBS' T_VACS 5 0 200. .25 -75.0 75.0 VOLU 'FP07' 'BOX' T_VACS 3 396.2 396.2 .25 !POSI 'FP07' S_SCI+CID_SCI 'GLOB' 0 0 -262.11 S_SCI+1 'ONLY' POSI 'FP07' S_SCI+CID_SCI 'GLOB' 0 0 -224.631 S_SCI+1 'ONLY' SATT FP07 SEEN 1 CID_SCI = CID_SCI+1 ! Define detector number 8 - input to main torus !VOLU 'FP08' 'TUBS' T_VACS 5 0 200. .25 -75.0 75.0 VOLU 'FP08' 'BOX' T_VACS 3 396.2 396.2 .25 !POSI 'FP08' S_SCI+CID_SCI 'GLOB' 0 0 -185.25 S_SCI+1 'ONLY' POSI 'FP08' S_SCI+CID_SCI 'GLOB' 0 0 -198.912 S_SCI+1 'ONLY' SATT FP08 SEEN 1 CID_SCI = CID_SCI+1 ! Define detector number 9 - first cerenkov bar location !VOLU 'FP09' 'TUBS' T_VACS 5 200. 450. .25 -45. 45. VOLU 'FP09' 'BOX' T_VACS 3 396.2 396.2 .25 POSI 'FP09' S_SCI+CID_SCI 'GLOB' 0 0 560 S_SCI+1 'ONLY' SATT FP09 SEEN 1 CID_SCI = CID_SCI+1 ! Define detector number 10 !VOLU 'FP10' 'TUBS' T_VACS 5 200. 450. .25 -45. 45. VOLU 'FP10' 'BOX' T_VACS 3 396.2 396.2 .25 POSI 'FP10' S_SCI+CID_SCI 'GLOB' 0 0 565 S_SCI+1 'ONLY' SATT FP10 SEEN 1 CID_SCI = CID_SCI+1 ! Define detector number 11 !VOLU 'FP11' 'TUBS' T_VACS 5 200. 450. .25 -45. 45. VOLU 'FP11' 'BOX' T_VACS 3 396.2 396.2 .25 POSI 'FP11' S_SCI+CID_SCI 'GLOB' 0 0 570. S_SCI+1 'ONLY' SATT FP11 SEEN 1 CID_SCI = CID_SCI+1 ! Define detector number 12 det_count = det_count + 1 !VOLU 'FP12' 'TUBS' T_VACS 5 200. 450. .25 -45. 45. VOLU 'FP12' 'BOX' T_VACS 3 396.2 396.2 .25 POSI 'FP12' S_SCI+CID_SCI 'GLOB' 0 0 575. S_SCI+1 'ONLY' SATT FP12 SEEN 1 CID_SCI = CID_SCI+1 ! Define detector number 13 !VOLU 'FP13' 'TUBS' T_VACS 5 200. 450. .25 -45. 45. VOLU 'FP13' 'BOX' T_VACS 3 396.2 396.2 .25 POSI 'FP13' S_SCI+CID_SCI 'GLOB' 0 0 580. S_SCI+1 'ONLY' SATT FP13 SEEN 1 CID_SCI = CID_SCI+1 ! Define detector number 14 !VOLU 'FP14' 'TUBS' T_VACS 5 200. 450. .25 -45. 45. VOLU 'FP14' 'BOX' T_VACS 3 396.2 396.2 .25 POSI 'FP14' S_SCI+CID_SCI 'GLOB' 0 0 585. S_SCI+1 'ONLY' SATT FP14 SEEN 1 CID_SCI = CID_SCI+1 ! Define detector number 15 !VOLU 'FP15' 'TUBS' T_VACS 5 200. 450. .25 -45. 45. VOLU 'FP15' 'BOX' T_VACS 3 396.2 396.2 .25 POSI 'FP15' S_SCI+CID_SCI 'GLOB' 0 0 590. S_SCI+1 'ONLY' SATT FP15 SEEN 1 CID_SCI = CID_SCI+1 ! Define detector number 16 !VOLU 'FP16' 'TUBS' T_VACS 5 200. 450. .25 -45. 45. VOLU 'FP16' 'BOX' T_VACS 3 396.2 396.2 .25 POSI 'FP16' S_SCI+CID_SCI 'GLOB' 0 0 595. S_SCI+1 'ONLY' SATT FP16 SEEN 1 CID_SCI = CID_SCI+1 ! ! ! !----------------------------+ ! End of geometry definition + !----------------------------+ ! The following command marks the end of the definition and positioning of ! volumes. Its purpose is to effect a call to GGCLOS. It must be used ! before the HITS and digitization commands can be called. END1 ! !-----------------------+ ! Hits and Digitization ! !-----------------------+ ! NOTE: The structure of this part of the file must match the logic in ! the tracking (GUSTEP) and track storage (GUOUT) code in G0 GEANT. Do ! not alter this part of the file unless you make corresponding alterations ! there. To modify the hits definition or the number of hits: ! o edit the set of hits below ! o change the way the HITS(i) are defined in GUSTEP and then used in GUOUT ! To create a new alias : ! o you may have to define HIT2, HITS3, etc in COMMON /UCHITV/ ! o edit the alias definition below ! o again, change the way the HITS(i), HITS1(i), etc. are defined in ! GUSTEP and then used in GUOUT ! o add (or remove) lines that retrieve alias hits in GUOUT ! ! Three commands may be used in this section of the geometry file: HITS, ! DETE, and DETA. These are used to define the structure of the hits for ! each detector and alias. ! ! The HITS command specifies information about a group of "hit parameters". ! A group of such parameters (called a hit) can be associated with ! either a detector an alias using the DETE or DETA commands respectively. ! The parameters of the command are as follows (See the GEANT HITS110 ! writeup on GSDETH for more details): ! NHIT (integer) An integer identifier for this group ! of hit parameters (hit) (note that there is a ! limit on the maximum value that can be used) ! NH (integer) The number of hit parameters (components) ! of the detector hit (must not excede MAXSETHIT ! in DECK UHITPAR) ! Then, for each of the NH parameters: ! CHNAMH(i) (character) A 4-character parameter name ! NBITSH(i) (integer) Number of bits in which to pack the parameter ! ORIG(i) (real) Offset applied before packing the parameter value ! FACT(i) (real) Scale factor applied before packing the ! parameter value ! ! Currently, only a single hit is defined. HITS 1 12 'X' 32 400. 100. 'Y' 32 400. 100. 'Z' 32 700. 100. 'IPAR' 32 0. 100. 'TYP' 32 0. 100. 'ORDRE' 32 0. 100. 'PX' 32 4000. 100. 'PY' 32 4000. 100. 'PZ' 32 4000. 100. 'E' 32 0. 100. 'EDEP' 32 0. 100. 'TOF' 32 0. 100. ! ! The DETE command is used to include a particular detector volume in ! a group of detectors (called a set) and then to associate a detector ! hit with that detector volume. ! The parameters are as follows: ! CHSET (character) A 4-character name for the set in ! which the detector volume (CHDET) is to be included. ! CHDET (character) 4-character detector volume name ! IDTYP (integer) Detector type (user defined) ! NWHI (integer) Initial size of HITS banks ! NWDI (integer) Initial size of DIGI banks ! NVOL (integer) Number of volume names which will be listed ! to unambiguously define the path through the physical ! volume tree structure to find the detector volume. ! This may be set to a negative or 0 in which case ! the list is computed automatically. ! If NVOL > 0 then, for each of the NVOL volumes in the path: ! CHNMSV(i) (character) The 4-character volume name ! NBITSV(i) (integer) The number of bits in which to pack the ! copy number of volume CHNMSV(i) ! Next, is specified the group of hit parameters for this detector ! NHIT (integer) Identifier of the detector hit (the value ! of NHIT used with the HITS command when the ! group of hit parameters was defined) ! ! Two different sets are defined. In forward proton mode the sets ! are the front layer of focal plane detectors (FOC1) and the backing ! layer (FOC2). In backward-electron mode, the sets are, again, the ! front layer of focal plane detectors (FOC1), but the back layer ! is dropped (it is inactive) replaced by the CED detectors (CED). ! We use the detector type to indicate which set the volume is in as ! follows. The values assigned are arbitrary but should not be change ! without corresponding changes in G0 GEANT (GUSTEP) ! ! The values of NWHI and NWDI above are taken from the example in the Geant ! manual. Note that for the detectors, it suffices to specify which ! copy of OCT the detector is in to unambiguously define the path through ! the physical volume tree to a detector so NVOL is set to 1. The packing ! of copy number requires 4 bits (to specify the copy number which ! currently runs from 2 to 9) ! ! Now define the set for the front focal plane detectors (used in both ! forward-proton and backward-electron mode). ! Assign the detector type for the front focal plane detectors IDTYP_FOC1 = 42 ! !! DETE 'FOC1' 'FP01' IDTYP_FOC1 100 100 1 'OCT' 4 1 ! DETE 'FOC1' 'FP02' IDTYP_FOC1 100 100 1 'OCT' 4 1 ! DETE 'FOC1' 'FP03' IDTYP_FOC1 100 100 1 'OCT' 4 1 ! DETE 'FOC1' 'FP04' IDTYP_FOC1 100 100 1 'OCT' 4 1 ! DETE 'FOC1' 'FP05' IDTYP_FOC1 100 100 1 'OCT' 4 1 ! DETE 'FOC1' 'FP06' IDTYP_FOC1 100 100 1 'OCT' 4 1 ! DETE 'FOC1' 'FP07' IDTYP_FOC1 100 100 1 'OCT' 4 1 ! DETE 'FOC1' 'FP08' IDTYP_FOC1 100 100 1 'OCT' 4 1 ! DETE 'FOC1' 'FP09' IDTYP_FOC1 100 100 1 'OCT' 4 1 ! DETE 'FOC1' 'FP10' IDTYP_FOC1 100 100 1 'OCT' 4 1 ! DETE 'FOC1' 'FP11' IDTYP_FOC1 100 100 1 'OCT' 4 1 ! DETE 'FOC1' 'FP12' IDTYP_FOC1 100 100 1 'OCT' 4 1 ! DETE 'FOC1' 'FP13' IDTYP_FOC1 100 100 1 'OCT' 4 1 ! DETE 'FOC1' 'FP14' IDTYP_FOC1 100 100 1 'OCT' 4 1 ! DETE 'FOC1' 'FP15' IDTYP_FOC1 100 100 1 'OCT' 4 1 ! DETE 'FOC1' 'FP16' IDTYP_FOC1 100 100 1 'OCT' 4 1 ! ! ECHO 'MODE' MODE ECHO 'XINT_1' XINT_1 ECHO 'XINT_2' XINT_2 ECHO 'REAC' REAC ECHO 'ISOT' ISOT ECHO 'PLAB' PLAB ECHO 'BPOX' BPOX ECHO 'BPOY' BPOY ECHO 'BEAX' BEAX ECHO 'BEAY' BEAY ECHO 'ZTAR' ZTAR ECHO 'ZWIN' ZWIN ECHO 'TWIN' TWIN ECHO 'NUMB_OCT' NUMB_OCT ECHO 'MAGF' MAGF ECHO 'BFIL' BFIL ECHO 'BMAX' BMAX ECHO 'KEUC' KEUC ECHO 'FPD' FPD ECHO 'CED' CED ECHO 'TLIM_1' TLIM_1 ECHO 'TLIM_2' TLIM_2 ECHO 'EROT_1' EROT_1 ECHO 'EROT_2' EROT_2 ECHO 'QLIM_1' QLIM_1 ECHO 'QLIM_2' QLIM_2 ECHO 'PLIM_1' PLIM_1 ECHO 'PLIM_2' PLIM_2 ECHO 'ROTR' ROTR ECHO 'BDIV' BDIV ECHO 'BDIR' BDIR ECHO 'HTAR' HTAR ECHO 'IPTY' IPTY ECHO 'TRAP_1' TRAP_1 ECHO 'TRAP_2' TRAP_2 ECHO 'TRAP_3' TRAP_3 ECHO 'TRAP_4' TRAP_4 ECHO 'TRAP_5' TRAP_5 ECHO 'TRAP_6' TRAP_6 ECHO 'TRAP_7' TRAP_7 ECHO 'TRAP_8' TRAP_8 ECHO 'TRAP_9' TRAP_9 ECHO 'TRAP_10' TRAP_10 ECHO 'TRAP_11' TRAP_11 ECHO 'TRAP_12' TRAP_12 ECHO 'TRAP_13' TRAP_13 ECHO 'TRAP_14' TRAP_14 ECHO 'TRAS_1' TRAS_1 ECHO 'TRAS_2' TRAS_2 ECHO 'TRAS_3' TRAS_3 ECHO 'TRAS_4' TRAS_4 ECHO 'TRAS_5' TRAS_5 ECHO 'TRAS_6' TRAS_6 ECHO 'TRAS_7' TRAS_7 ECHO 'TRAS_8' TRAS_8 ECHO 'TRAS_9' TRAS_9 ECHO 'TRAS_10' TRAS_10 ECHO 'TRAS_11' TRAS_11 ECHO 'TRAS_12' TRAS_12 ECHO 'TRAS_13' TRAS_13 ECHO 'TRAS_14' TRAS_14 ! ! The file must end with the following command: END