Warning, /Geometry/ForwardCommonData/data/brm.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0"?>
0002 <DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd">
0003 <!--*******************************************************************************************************************
0004 ******** IMPORTANT!!! WHILE SECTIONS ARE LABELED ABOVE, COMMENTS ARE UNDERNEATH THE LINES THEY ARE ABOUT!!!
0005
0006 notes:
0007 When I refer to central pad, I am speaking of the circular detection area of the BSC.
0008 When I refer to the trapezoidal paddles, I am speaking of the 4 trapezoidal parts of the detector.
0009 ************************************************************************************************************************-->
0010 <ConstantsSection label="brm.xml" eval="true">
0011 <!--BSC1_Specifications(below)-->
0012 <Constant name="rMinBSC" value="22.0*cm"/>
0013 <Constant name="rMaxBSC" value="45.0*cm"/>
0014 <Constant name="rMaxBSCActive" value="43.4*cm"/>
0015 <Constant name="rMinBSCActive" value="26.3*cm"/>
0016 <!--^^^^Specifications for the central pad of the BSC1^^^^-->
0017 <Constant name="dzBSC1" value="1.0*cm"/>
0018 <!--^^^^Thickness from center of BSC^^^^-->
0019 <Constant name="dhTrapezoid" value="48.691*cm"/>
0020 <Constant name="dlTrapezoid" value="5.409*cm"/>
0021 <Constant name="dLTrapezoid" value="12.179*cm"/>
0022 <Constant name="posTrapezoid" value="675.76*mm"/>
0023 <!--^^^^Trapezoidal Paddles of the BSC1^^^^-->
0024 <!--^^^^^Where the BSC1 is located down the beampipe^^^-->
0025 <Constant name="dzBSCAl1" value="0.2*cm"/>
0026 <Constant name="dzBSCAl1F" value="0.4*cm"/>
0027 <Constant name="dzBSCExtra" value="([dzBSCAl1]+[dzBSCAl1F])"/>
0028 <Constant name="dzBSC1Total" value="([dzBSC1]+[dzBSCExtra])"/>
0029 <Constant name="zposBSC1" value="[forwardshield:FixShldZ1]-[dzBSC1Total]"/>
0030 <!--^^^^ Thickness of Aluminum shield of the central pad on the back and front respectively-->
0031 <Constant name="dzBSCAlTrap1" value="0.2*cm"/>
0032 <Constant name="dzBSCAlTrap1F" value="0.1*cm"/>
0033 <Constant name="dzBSC1Extra" value="([dzBSCAlTrap1]+[dzBSCAlTrap1F])"/>
0034 <Constant name="dzBSC1Trap" value="([dzBSC1]+[dzBSC1Extra])"/>
0035 <Constant name="zposBSC1Trap" value="[dzBSC1Total]-[dzBSC1Trap]"/>
0036 <Constant name="zposBSC1TrapT" value="[dzBSC1Trap]-[dzBSC1]-2*[dzBSCAlTrap1]"/>
0037 <Constant name="zposBSC1Pad" value="[dzBSC1Total]-[dzBSC1]-2*[dzBSCAl1]"/>
0038 <!--^^^ Thickness of Aluminum shields of trapezoidal paddles on bsc1 (back,then front)-->
0039 <!--BSC2 Specifications-->
0040 <Constant name="dzBSC2" value="0.8*cm"/>
0041 <Constant name="dzBSC2Total" value="([dzBSC2]+[dzBSCExtra])"/>
0042 <!--^^^ Thickness of BSC2 ^^^^-->
0043 <Constant name="zposBSC2" value="[forward:CastorZ1]-[dzBSC2Total]"/>
0044 <!--^^^Where BSC2 rests along the beamline-->
0045 </ConstantsSection>
0046 <SolidSection label="brm.xml">
0047 <!--BSC1 Section (below)-->
0048 <Tubs name="BSC1" rMin="[cms:ForwdBeamR1]" rMax="95*cm" dz="[dzBSC1Total]" startPhi="0*deg" deltaPhi="360*deg"/>
0049 <!--^^Making an invisible volume, radius of 95cm and 360degrees around beam-->
0050 <TruncTubs name="BSCPadAir" rMin="[rMinBSC]" rMax="[rMaxBSC]" zHalf="[dzBSC1Total]" cutAtStart="[rMinBSC]" cutAtDelta="[rMinBSC]" startPhi="0*deg" deltaPhi="45*deg" cutInside="true"/>
0051 <!--^^^Creating a pad which will be the central BSC pad with max radius defined above, this is only an octant of a circle as seen by deltaPhi being 45deg. This will be a hollowed out volume-->
0052 <TruncTubs name="BSCPad" rMin="[rMinBSC]" rMax="[rMaxBSC]" zHalf="[dzBSC1]" cutAtStart="[rMinBSC]" cutAtDelta="[rMinBSC]" startPhi="0*deg" deltaPhi="45*deg" cutInside="true"/>
0053 <!-- ^^^We just created the stainless steal mount which the scintillator is on.-->
0054 <TruncTubs name="BSCPadActive" rMin="[rMinBSCActive]" rMax="[rMaxBSCActive]" zHalf="[dzBSC1]" cutAtStart="[rMinBSCActive]" cutAtDelta="[rMinBSCActive]" startPhi="0*deg" deltaPhi="45*deg" cutInside="true"/>
0055 <!--^^^ Making the detector part of the pad. This covers 45 degrees and will then be rotated to make a complete circle.-->
0056 <Trapezoid name="BSCTrap" dz="[dzBSC1]+[dzBSC1Extra]" alp1="0*deg" bl1="[dlTrapezoid]" tl1="[dLTrapezoid]" h1="[dhTrapezoid]" alp2="0*deg" bl2="[dlTrapezoid]" tl2="[dLTrapezoid]" h2="[dhTrapezoid]" phi="0*deg" theta="0*deg"/>
0057 <!--^^^ Creating the hollowed out trapezoidal space that will become the BSC1 paddles.-->
0058 <Trapezoid name="BSCTopTrapezoid" dz="[dzBSC1]" alp1="0*deg" bl1="([dlTrapezoid]+[dLTrapezoid])/2" tl1="[dLTrapezoid]" h1="[dhTrapezoid]/2" alp2="0*deg" bl2="([dlTrapezoid]+[dLTrapezoid])/2" tl2="[dLTrapezoid]" h2="[dhTrapezoid]/2" phi="0*deg" theta="0*deg"/>
0059 <!--^^^The bigger half of the bisected trapezoidal paddle-->
0060 <Trapezoid name="BSCBottomTrapezoid" dz="[dzBSC1]" alp1="0*deg" bl1="[dlTrapezoid]" tl1="([dlTrapezoid]+[dLTrapezoid])/2" h1="[dhTrapezoid]/2" alp2="0*deg" bl2="[dlTrapezoid]" tl2="([dlTrapezoid]+[dLTrapezoid])/2" h2="[dhTrapezoid]/2" phi="0*deg" theta="0*deg"/>
0061 <!--^^^The smaller half of the bisceted trapezoidal paddle-->
0062 <!--Now to add in aluminum volumes(below)-->
0063 <TruncTubs name="BSCAlPadCoversBack" rMin="[rMinBSC]" rMax="[rMaxBSC]" zHalf="[dzBSCAl1]" cutAtStart="[rMinBSC]" cutAtDelta="[rMinBSC]" startPhi="0*deg" deltaPhi="45*deg" cutInside="true"/>
0064 <!--^^^Aluminum cover on the back of the BSC pad, these will be rotated to cover the whole of the active area-->
0065 <TruncTubs name="BSCAlPadCoversFront" rMin="[rMinBSC]" rMax="[rMaxBSC]" zHalf="[dzBSCAl1F]" cutAtStart="[rMinBSC]" cutAtDelta="[rMinBSC]" startPhi="0*deg" deltaPhi="45*deg" cutInside="true"/>
0066 <!--^^Aluminum cover on the front of the BSC pad-->
0067 <Trapezoid name="BSCAlTrapCoversBack" dz="[dzBSCAlTrap1]" alp1="0*deg" bl1="[dlTrapezoid]" tl1="[dLTrapezoid]" alp2="0*deg" bl2="[dlTrapezoid]" tl2="[dLTrapezoid]" h1="[dhTrapezoid]" h2="[dhTrapezoid]" phi="0*deg" theta="0*deg"/>
0068 <Trapezoid name="BSCAlTrapCoversFront" dz="[dzBSCAlTrap1F]" alp1="0*deg" bl1="[dlTrapezoid]" tl1="[dLTrapezoid]" alp2="0*deg" bl2="[dlTrapezoid]" tl2="[dLTrapezoid]" h1="[dhTrapezoid]" h2="[dhTrapezoid]" phi="0*deg" theta="0*deg"/>
0069 <!--^^Aluminum covers on the trapezoidal paddles of the BSC1-->
0070 <!--BSC2 Information(below)-->
0071 <Tubs name="BSC2" rMin="[cms:ForwdBeamR4]" rMax="[cms:ForwdDetsR1]" dz="[dzBSC2Total]" startPhi="0*deg" deltaPhi="360*deg"/>
0072 <!--^^^ Weve just created a volume in which we will place the BSC2-->
0073 <Tubs name="BSC2MountArea" rMin="5.4*cm" rMax="32.0*cm" dz="[dzBSC2Total]" startPhi="0*deg" deltaPhi="360*deg"/>
0074 <!-- We have just made the area that holds the BSC2 Pads-->
0075 <TruncTubs name="BSC2Pad" rMin="9.7*cm" rMax="31.0*cm" zHalf="[dzBSC2Total]" cutAtStart="9.7*cm" cutAtDelta="9.7*cm" startPhi="0*deg" deltaPhi="45*deg" cutInside="true"/>
0076 <!-- We have just made what will become the two active tiles on the BSC2-->
0077 <TruncTubs name="BSC2AlPadCoversBack" rMin="9.7*cm" rMax="31.0*cm" zHalf="[dzBSCAl1]" cutAtStart="9.7*cm" cutAtDelta="9.7*cm" startPhi="0*deg" deltaPhi="45*deg" cutInside="true"/>
0078 <TruncTubs name="BSC2AlPadCoversFront" rMin="9.7*cm" rMax="31.0*cm" zHalf="[dzBSCAl1F]" cutAtStart="9.7*cm" cutAtDelta="9.7*cm" startPhi="0*deg" deltaPhi="45*deg" cutInside="true"/>
0079 <!--We have just made the covers that will go on the two active areas of the BSC2-->
0080 </SolidSection>
0081 <LogicalPartSection label="brm.xml">
0082 <!--BSC1 Definitions-->
0083 <LogicalPart name="BSC1" category="unspecified">
0084 <rSolid name="BSC1"/>
0085 <rMaterial name="materials:Air"/>
0086 </LogicalPart>
0087 <!--^^Making BSC1 hollowed area full of air-->
0088 <LogicalPart name="BSCPadAir" category="unspecified">
0089 <rSolid name="BSCPadAir"/>
0090 <rMaterial name="materials:Air"/>
0091 </LogicalPart>
0092 <!--just made the air section for the central pad-->
0093 <LogicalPart name="BSCPad" category="unspecified">
0094 <rSolid name="BSCPad"/>
0095 <rMaterial name="materials:StainlessSteel"/>
0096 <!--<rMaterial name="materials:Air"/>-->
0097 </LogicalPart>
0098 <!--^^Doing the same thing for the central pad-->
0099 <LogicalPart name="BSCPadActive" category="unspecified">
0100 <rSolid name="BSCPadActive"/>
0101 <rMaterial name="materials:Scintillator"/>
0102 </LogicalPart>
0103 <!--^^Making the octants be made of scintillator-->
0104 <LogicalPart name="BSCTrap" category="unspecified">
0105 <rSolid name="BSCTrap"/>
0106 <rMaterial name="materials:Air"/>
0107 </LogicalPart>
0108 <!--^^repeat above process for the trapezoidal paddles-->
0109 <LogicalPart name="BSCTopTrapezoid" category="unspecified">
0110 <rSolid name="BSCTopTrapezoid"/>
0111 <rMaterial name="materials:Scintillator"/>
0112 </LogicalPart>
0113 <LogicalPart name="BSCBottomTrapezoid" category="unspecified">
0114 <rSolid name="BSCBottomTrapezoid"/>
0115 <rMaterial name="materials:Scintillator"/>
0116 </LogicalPart>
0117 <!--Aluminum Definitions (below)-->
0118 <LogicalPart name="BSCAlTrapCoversBack" category="unspecified">
0119 <rSolid name="BSCAlTrapCoversBack"/>
0120 <rMaterial name="materials:Aluminium"/>
0121 </LogicalPart>
0122 <LogicalPart name="BSCAlTrapCoversFront" category="unspecified">
0123 <rSolid name="BSCAlTrapCoversFront"/>
0124 <rMaterial name="materials:Aluminium"/>
0125 </LogicalPart>
0126 <LogicalPart name="BSCAlPadCoversBack" category="unspecified">
0127 <rSolid name="BSCAlPadCoversBack"/>
0128 <rMaterial name="materials:Aluminium"/>
0129 </LogicalPart>
0130 <LogicalPart name="BSCAlPadCoversFront" category="unspecified">
0131 <rSolid name="BSCAlPadCoversFront"/>
0132 <rMaterial name="materials:Aluminium"/>
0133 </LogicalPart>
0134 <!--^^In the above part we have made an Aluminum trapezoid, we have covered the octants in aluminum on both sides, front and back -->
0135 <!--BSC2 definitions(below)-->
0136 <LogicalPart name="BSC2" category="unspecified">
0137 <rSolid name="BSC2"/>
0138 <rMaterial name="materials:Air"/>
0139 </LogicalPart>
0140 <LogicalPart name="BSC2MountArea" category="unspecified">
0141 <rSolid name="BSC2MountArea"/>
0142 <rMaterial name="materials:StainlessSteel"/>
0143 </LogicalPart>
0144 <LogicalPart name="BSC2Pad" category="unspecified">
0145 <rSolid name="BSC2Pad"/>
0146 <rMaterial name="materials:Scintillator"/>
0147 </LogicalPart>
0148 <LogicalPart name="BSC2AlPadCoversBack" category="unspecified">
0149 <rSolid name="BSC2AlPadCoversBack"/>
0150 <rMaterial name="materials:Aluminium"/>
0151 </LogicalPart>
0152 <LogicalPart name="BSC2AlPadCoversFront" category="unspecified">
0153 <rSolid name="BSC2AlPadCoversFront"/>
0154 <rMaterial name="materials:Aluminium"/>
0155 </LogicalPart>
0156 </LogicalPartSection>
0157 <PosPartSection label="brm.xml">
0158 <!--We will start with the BSC2(below)-->
0159 <PosPart copyNumber="1">
0160 <rParent name="cms:CMSE"/>
0161 <rChild name="brm:BSC2"/>
0162 <rRotation name="rotations:000D"/>
0163 <Translation x="0*fm" y="0*fm" z="[zposBSC2]"/>
0164 </PosPart>
0165 <PosPart copyNumber="2">
0166 <rParent name="cms:CMSE"/>
0167 <rChild name="brm:BSC2"/>
0168 <rRotation name="rotations:000D"/>
0169 <Translation x="0*fm" y="0*fm" z="-[zposBSC2]"/>
0170 </PosPart>
0171 <PosPart copyNumber="1">
0172 <rParent name="brm:BSC2"/>
0173 <rChild name="brm:BSC2MountArea"/>
0174 <rRotation name="rotations:000D"/>
0175 <Translation x="0*cm" y="0*fm" z="0*fm"/>
0176 </PosPart>
0177 <!--Above we have just placed the stainless steel mount for the BSC2 inside of the volume of air-->
0178 <PosPart copyNumber="1">
0179 <rParent name="brm:BSC2MountArea"/>
0180 <rChild name="brm:BSC2Pad"/>
0181 <rRotation name="brmrotations:B202X"/>
0182 <Translation x="0*cm" y="0*fm" z="0*fm"/>
0183 </PosPart>
0184 <PosPart copyNumber="2">
0185 <rParent name="brm:BSC2MountArea"/>
0186 <rChild name="brm:BSC2Pad"/>
0187 <rRotation name="brmrotations:B22X"/>
0188 <Translation x="0*cm" y="0*fm" z="0*fm"/>
0189 </PosPart>
0190 <!--Above we have just mounted the BSC2 scintillator pads onto the BSC2 mounting area-->
0191 <PosPart copyNumber="1">
0192 <rParent name="brm:BSC2Pad"/>
0193 <rChild name="brm:BSC2AlPadCoversFront"/>
0194 <rRotation name="rotations:000D"/>
0195 <Translation x="0*cm" y="0*cm" z="-([dzBSC2Total]-[dzBSCAl1F])"/>
0196 </PosPart>
0197 <!--We have just put the frontal aluminium shields on the BSC2 scintillator tiles-->
0198 <PosPart copyNumber="1">
0199 <rParent name="brm:BSC2Pad"/>
0200 <rChild name="brm:BSC2AlPadCoversBack"/>
0201 <rRotation name="rotations:000D"/>
0202 <Translation x="0*cm" y="0*cm" z="([dzBSC2Total]-[dzBSCAl1])"/>
0203 </PosPart>
0204 <!--We have just put the rear aluminium shields on the BSC2 scintillator tiles-->
0205 <!--Now we work on the BSC1(below)-->
0206 <PosPart copyNumber="1">
0207 <rParent name="forwardshield:OQUA"/>
0208 <rChild name="brm:BSC1"/>
0209 <rRotation name="brmrotations:B45R"/>
0210 <Translation x="0*fm" y="0*fm" z="[zposBSC1]"/>
0211 </PosPart>
0212 <!--We have just finished creating the large hollow area where we are gonna put the BSC1-->
0213 <PosPart copyNumber="1">
0214 <rParent name="brm:BSC1"/>
0215 <rChild name="brm:BSCTrap"/>
0216 <rRotation name="rotations:000D"/>
0217 <Translation x="+[posTrapezoid]" y="0*cm" z="[zposBSC1Trap]"/>
0218 </PosPart>
0219 <!--We have just created the trapezoidal paddles and declared it as being a part of the large hollow area-->
0220 <PosPart copyNumber="2">
0221 <rParent name="brm:BSC1"/>
0222 <rChild name="brm:BSCTrap"/>
0223 <rRotation name="brmrotations:B90P"/>
0224 <Translation x="0*cm" y="+[posTrapezoid]" z="[zposBSC1Trap]"/>
0225 </PosPart>
0226 <PosPart copyNumber="3">
0227 <rParent name="brm:BSC1"/>
0228 <rChild name="brm:BSCTrap"/>
0229 <rRotation name="brmrotations:B90M"/>
0230 <Translation x="0*cm" y="-[posTrapezoid]" z="[zposBSC1Trap]"/>
0231 </PosPart>
0232 <PosPart copyNumber="4">
0233 <rParent name="brm:BSC1"/>
0234 <rChild name="brm:BSCTrap"/>
0235 <rRotation name="brmrotations:B90L"/>
0236 <Translation x="-[posTrapezoid]" y="0*cm" z="[zposBSC1Trap]"/>
0237 </PosPart>
0238 <!--Above we have just duplicated the first trapezoid 4 times to make the 4 trapezoidal panels of the BSC1-->
0239 <PosPart copyNumber="1">
0240 <rParent name="brm:BSCTrap"/>
0241 <rChild name="brm:BSCTopTrapezoid"/>
0242 <rRotation name="rotations:000D"/>
0243 <Translation x="0*cm" y="([dhTrapezoid]/2)" z="[zposBSC1TrapT]"/>
0244 </PosPart>
0245 <PosPart copyNumber="1">
0246 <rParent name="brm:BSCTrap"/>
0247 <rChild name="brm:BSCBottomTrapezoid"/>
0248 <rRotation name="rotations:000D"/>
0249 <Translation x="0*cm" y="(-[dhTrapezoid]/2)" z="[zposBSC1TrapT]"/>
0250 </PosPart>
0251 <!--We have just made the two different sections of the trapezoid and put them into their appropriate places inside the large hollow trapezoid-->
0252 <!--Now we will make the aluminum covers for the Trapezoidal sections and tie them onto the trapezoids we just made-->
0253 <PosPart copyNumber="1">
0254 <rParent name="brm:BSCTrap"/>
0255 <rChild name="brm:BSCAlTrapCoversFront"/>
0256 <rRotation name="rotations:000D"/>
0257 <Translation x="0*cm" y="0*cm" z="-([dzBSC1Trap]-[dzBSCAlTrap1F])"/>
0258 </PosPart>
0259 <PosPart copyNumber="1">
0260 <rParent name="brm:BSCTrap"/>
0261 <rChild name="brm:BSCAlTrapCoversBack"/>
0262 <rRotation name="rotations:000D"/>
0263 <Translation x="0*cm" y="0*cm" z="([dzBSC1Trap]-[dzBSCAlTrap1])"/>
0264 </PosPart>
0265 <!--Just put aluminum covers on the BSC trapezoidal paddles-->
0266 <!--Now we will work on the BSC central pad-->
0267 <PosPart copyNumber="1">
0268 <rParent name="brm:BSCPadAir"/>
0269 <rChild name="brm:BSCPad"/>
0270 <rRotation name="rotations:000D"/>
0271 <Translation x="0*cm" y="0*cm" z="[zposBSC1Pad]"/>
0272 </PosPart>
0273 <!--Just tied the stainless steel pads onto the hollow octants on the central pad-->
0274 <PosPart copyNumber="1">
0275 <rParent name="brm:BSCPad"/>
0276 <rChild name="brm:BSCPadActive"/>
0277 <rRotation name="rotations:000D"/>
0278 <Translation x="0*cm" y="0*cm" z="0*cm"/>
0279 </PosPart>
0280 <!--Just made the scintillator pads embedded inside of the stainless steel mounts-->
0281 <PosPart copyNumber="1">
0282 <rParent name="brm:BSCPadAir"/>
0283 <rChild name="brm:BSCAlPadCoversBack"/>
0284 <rRotation name="rotations:000D"/>
0285 <Translation x="0*cm" y="0*cm" z="([dzBSC1Total]-[dzBSCAl1])"/>
0286 </PosPart>
0287 <!--Just tied the aluminum shield to the back of one of the octants-->
0288 <PosPart copyNumber="1">
0289 <rParent name="brm:BSCPadAir"/>
0290 <rChild name="brm:BSCAlPadCoversFront"/>
0291 <rRotation name="rotations:000D"/>
0292 <Translation x="0*cm" y="0*cm" z="-([dzBSC1Total]-[dzBSCAl1F])"/>
0293 </PosPart>
0294 <!--Just tied the aluminum to the front of one of the octants-->
0295 <Algorithm name="hcal:DDHCalAngular">
0296 <rParent name="brm:BSC1"/>
0297 <String name="ChildName" value="BSCPadAir"/>
0298 <String name="RotNameSpace" value="hcalrotations"/>
0299 <Numeric name="n" value="8"/>
0300 <Numeric name="startCopyNo" value="1"/>
0301 <Numeric name="incrCopyNo" value="1"/>
0302 <Numeric name="rangeAngle" value="360*deg"/>
0303 <Numeric name="startAngle" value="0*deg"/>
0304 <Numeric name="shiftY" value="0*fm"/>
0305 <Numeric name="shiftX" value="0*fm"/>
0306 <Numeric name="zoffset" value="0*fm"/>
0307 </Algorithm>
0308 <!--This above algorithim takes the aluminum covered octants and rotates them and copies them 8 times leaving the finished central pad-->
0309 </PosPartSection>
0310 </DDDefinition>