Warning, /Geometry/TrackerCommonData/data/pixfwdNipple.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
0005 == CMS Forward Pixels Geometry ==
0006
0007 @version 3.02.01 May 30, 2006
0008 @created Dmitry Onoprienko
0009 @modified Vesna Cuplov april 2007
0010
0011 == Subsystem or component described by the file ==
0012
0013 "Nipple" connecting cooling channels in two adjacent blades.
0014
0015 == Root volume and its reference frame ==
0016
0017 Two root volumes are defined:
0018
0019 PixelForwardNippleZPlus (nipple for +Z disk)
0020 PixelForwardNippleZMinus (nipple for -Z disk)
0021
0022 Z along the nipple axis, pointing from J to K.
0023
0024 Origin at the middle of a segment connecting points J and K on the drawing
0025
0026 == Positioning ==
0027
0028 Positioned automatically by the <code>DDPixFwdBlades</code> algorithm, which recognizes
0029 this component by its volume name, and applies appropriate rotations and translations.
0030
0031 == Additional comments ==
0032
0033 +Z and -Z versions of a nipple are, in fact, reflections of each other, but they are defined
0034 separately to make Iguana happy: G4 visualization cannot handle polycone reflection at the moment.
0035
0036 The call to DDPixFwdBlades algorithm calculates parameters needed for constructing
0037 the nipple: rotations pixfwdNipple:NippleToCoverZPlus, pixfwdNipple:NippleToCoverZMinus,
0038 pixfwdNipple:NippleToBodyZPlus, pixfwdNipple:NippleToBodyZMinus
0039 and constants pixfwdNipple:JK, pixfwdNipple:AngleBody, pixfwdNipple:AngleCover.
0040
0041 Currently, there is a problem with passing constants from algorithms to DDL files, so these constants
0042 are defined manually (by copy-and-paste from the algorithm output). To make sure the resulting
0043 numerical error does not cause volumes to overlap, nipples are described to be slightly shorter
0044 than they are on the drawings.
0045
0046 -->
0047 <!-- Input geometry parameters -->
0048 <ConstantsSection label="Input" eval="true">
0049 <Constant name="R01" value="2.00*mm"/>
0050 <Constant name="R02" value="2.50*mm"/>
0051 <Constant name="R03" value="2.00*mm"/>
0052 <Constant name="R04" value="2.50*mm"/>
0053 <Constant name="R05" value="3.00*mm"/>
0054 <Constant name="R06" value="3.00*mm"/>
0055 <Constant name="R07" value="3.50*mm"/>
0056 <Constant name="R08" value="4.50*mm"/>
0057 <Constant name="R09" value="3.25*mm"/>
0058 <Constant name="R10" value="3.75*mm"/>
0059 <Constant name="R11" value="3.50*mm"/>
0060 <Constant name="L01" value="8.23*mm"/>
0061 <Constant name="L02" value="8.23*mm"/>
0062 <Constant name="L03" value="6.73*mm"/>
0063 <Constant name="L04" value="9.50*mm"/>
0064 <Constant name="L05" value="4.00*mm"/>
0065 <Constant name="L06" value="4.00*mm"/>
0066 <Constant name="L07" value="1.00*mm"/>
0067 <Constant name="L08" value="1.00*mm"/>
0068 <Constant name="A01" value="60*deg"/>
0069 <Constant name="RootHalfThickness" value="[pixfwdPanelBase:RootHalfThickness]"/>
0070 </ConstantsSection>
0071 <!-- THIS ALGORITHM DEFINES A FEW ROTATIONS (LIKE pixfwdNipple:NippleToCover) AND
0072 ATTEMPTS TO DEFINE A CONSTANT pixfwdNipple: JK, AngleBody, AngleCover -->
0073 <Algorithm name="track:DDPixFwdBlades">
0074 <rParent name="pixfwdNipple:PixelForwardNippleZPlus"/>
0075 </Algorithm>
0076 <!-- Nipple root and a solid for boolean subtraction -->
0077 <ConstantsSection label="Root" eval="true">
0078 <Constant name="JK" value="16.9*mm"/>
0079 <!-- 16.9523 as printed by algorithm, made slightly smaller
0080 to avoid overlaps due to numerical errors. Can be made
0081 more precise once DDL is able to use constants defined
0082 in algorithms directly. -->
0083 <Constant name="AngleBody" value="0.172941*rad"/>
0084 <Constant name="AngleCover" value="0.172941*rad"/>
0085 <Constant name="Dsub" value="2.0*mm"/>
0086 <Constant name="Rsub" value="[R08]/cos([AngleBody]) + ([Dsub]/2)*tan([AngleBody]) + [pixfwdCommon:SmallBool]"/>
0087 <Constant name="DeltaBody" value="([Dsub]/2 - 0.5*mm) / cos([AngleBody])"/>
0088 <Constant name="DeltaCover" value="([Dsub]/2 - 0.5*mm) / cos([AngleCover])"/>
0089 </ConstantsSection>
0090 <SolidSection label="Root">
0091 <!-- Previous description (D. Onoprienko)
0092 <Tubs name="PixelForwardNipple_01" rMin="0.*mm" rMax="[R08]" dz="[JK]/2." startPhi="0." deltaPhi="360*deg" />
0093 <Tubs name="PixelForwardNippleSubtract" rMin="0.*mm" rMax="[Rsub]" dz="[Dsub]/2." startPhi="0." deltaPhi="360*deg" />
0094 <SubtractionSolid name="PixelForwardNipple_int01">
0095 <rSolid name="PixelForwardNipple_01" />
0096 <rSolid name="PixelForwardNippleSubtract" />
0097 <Translation x="0." y="0." z="-[JK]/2.-[DeltaCover]" />
0098 <rRotation name="NippleToCoverZPlus" />
0099 </SubtractionSolid>
0100 <SubtractionSolid name="PixelForwardNippleZPlus">
0101 <rSolid name="PixelForwardNipple_int01" />
0102 <rSolid name="PixelForwardNippleSubtract" />
0103 <Translation x="0." y="0." z="[JK]/2.+[DeltaBody]" />
0104 <rRotation name="NippleToBodyZPlus" />
0105 </SubtractionSolid>
0106 -->
0107 <!-- New description (I used the description of D. Onoprienko as a basement) to fix overlaps of panels with nipples: Previously there was only one shape as a Tub with special angles for the extremities, but this shape was overlaping with panels. I had to split into 2 shapes: the first shape is like the previous Tub with special angles for extremities but with a smaller rMax and the second shape that I add is a basic Tub (no angles for the extremities) that covers the largest part of the nipple. -->
0108 <Tubs name="PixelForwardNipple_01" rMin="0.*mm" rMax="[R08]-0.9*mm" dz="[L04]/2+3.7*mm" startPhi="0." deltaPhi="360*deg"/>
0109 <Tubs name="PixelForwardNippleSubtract" rMin="0.*mm" rMax="[Rsub]-0.9*mm" dz="[Dsub]/2." startPhi="0." deltaPhi="360*deg"/>
0110 <Tubs name="PixelForwardNippleMiddle" rMin="0.*mm" rMax="[R08]" dz="[L04]/2.+0.4*mm" startPhi="0." deltaPhi="360*deg"/>
0111 <SubtractionSolid name="PixelForwardNipple_int01">
0112 <rSolid name="PixelForwardNipple_01"/>
0113 <rSolid name="PixelForwardNippleSubtract"/>
0114 <Translation x="0." y="0." z="-[L04]/2.-3.7*mm-[DeltaCover]"/>
0115 <rRotation name="NippleToCoverZPlus"/>
0116 </SubtractionSolid>
0117 <SubtractionSolid name="PixelForwardNippleZPlus_01">
0118 <rSolid name="PixelForwardNipple_int01"/>
0119 <rSolid name="PixelForwardNippleSubtract"/>
0120 <Translation x="0." y="0." z="[L04]/2.+3.7*mm+[DeltaBody]"/>
0121 <rRotation name="NippleToBodyZPlus"/>
0122 </SubtractionSolid>
0123 <UnionSolid name="PixelForwardNippleZPlus">
0124 <rSolid name="PixelForwardNippleZPlus_01"/>
0125 <rSolid name="PixelForwardNippleMiddle"/>
0126 <Translation x="0." y="0." z="0."/>
0127 </UnionSolid>
0128 <SubtractionSolid name="PixelForwardNipple_int02">
0129 <rSolid name="PixelForwardNipple_01"/>
0130 <rSolid name="PixelForwardNippleSubtract"/>
0131 <Translation x="0." y="0." z="-[L04]/2.-3.7*mm-[DeltaCover]"/>
0132 <rRotation name="NippleToCoverZMinus"/>
0133 </SubtractionSolid>
0134 <SubtractionSolid name="PixelForwardNippleZMinus_01">
0135 <rSolid name="PixelForwardNipple_int02"/>
0136 <rSolid name="PixelForwardNippleSubtract"/>
0137 <Translation x="0." y="0." z="[L04]/2.+3.7*mm+[DeltaBody]"/>
0138 <rRotation name="NippleToBodyZMinus"/>
0139 </SubtractionSolid>
0140 <UnionSolid name="PixelForwardNippleZMinus">
0141 <rSolid name="PixelForwardNippleZMinus_01"/>
0142 <rSolid name="PixelForwardNippleMiddle"/>
0143 <Translation x="0." y="0." z="0."/>
0144 </UnionSolid>
0145 </SolidSection>
0146 <LogicalPartSection label="Root">
0147 <LogicalPart name="PixelForwardNippleZPlus" category="envelope">
0148 <rSolid name="PixelForwardNippleZPlus"/>
0149 <rMaterial name="materials:Air"/>
0150 </LogicalPart>
0151 <LogicalPart name="PixelForwardNippleZMinus" category="envelope">
0152 <rSolid name="PixelForwardNippleZMinus"/>
0153 <rMaterial name="materials:Air"/>
0154 </LogicalPart>
0155 </LogicalPartSection>
0156 <!-- Sleeve and pipes inside it -->
0157 <ConstantsSection label="Sleeve" eval="true">
0158 <Constant name="e01" value="[JK]-[L01]-[L02]"/>
0159 </ConstantsSection>
0160 <SolidSection label="Sleeve">
0161 <Polycone name="PixelForwardNippleSleeve" startPhi="0.*deg" deltaPhi="360*deg">
0162 <ZSection z="-[L04]/2" rMin="0." rMax="[R08]"/>
0163 <ZSection z="[L04]/2-([R08]-[R07])*tan([A01])" rMin="0." rMax="[R08]"/>
0164 <ZSection z="[L04]/2" rMin="0." rMax="[R07]"/>
0165 </Polycone>
0166 <Polycone name="PixelForwardNippleEpoxyCover" startPhi="0.*deg" deltaPhi="360*deg">
0167 <ZSection z="-[L06]/2" rMin="[R05]" rMax="[R11]"/>
0168 <ZSection z="[L06]/2-[L07]-([R10]-[R11])" rMin="[R05]" rMax="[R11]"/>
0169 <ZSection z="[L06]/2-[L07]" rMin="[R05]" rMax="[R10]"/>
0170 <ZSection z="[L06]/2" rMin="[R05]" rMax="[R10]"/>
0171 </Polycone>
0172 <Polycone name="PixelForwardNippleEpoxyBody" startPhi="0.*deg" deltaPhi="360*deg">
0173 <ZSection z="-[L05]/2" rMin="[R02]" rMax="[R09]"/>
0174 <ZSection z="-[L05]/2+[L08]" rMin="[R02]" rMax="[R09]"/>
0175 <ZSection z="-[L05]/2+[L08]+([R09]-[R06])" rMin="[R02]" rMax="[R06]"/>
0176 <ZSection z="[L05]/2" rMin="[R02]" rMax="[R06]"/>
0177 </Polycone>
0178 <Polycone name="PixelForwardNippleSleeveCoolant" startPhi="0.*deg" deltaPhi="360*deg">
0179 <ZSection z="-[L04]/2" rMin="0.0" rMax="[R04]"/>
0180 <ZSection z="-[L04]/2+[L06]-([L02]-[L03])" rMin="0.0" rMax="[R04]"/>
0181 <ZSection z="-[L04]/2+[L06]-([L02]-[L03])+([R04]-[R03])" rMin="0.0" rMax="[R03]"/>
0182 <ZSection z="-[L04]/2+[L06]" rMin="0.0" rMax="[R03]"/>
0183 <ZSection z="-[L04]/2+[L06]" rMin="0.0" rMax="[R02]"/>
0184 <ZSection z="-[L04]/2+[L06]+[e01]" rMin="0.0" rMax="[R02]"/>
0185 <ZSection z="-[L04]/2+[L06]+[e01]" rMin="0.0" rMax="[R01]"/>
0186 <ZSection z="[L04]/2" rMin="0.0" rMax="[R01]"/>
0187 </Polycone>
0188 </SolidSection>
0189 <LogicalPartSection label="Sleeve">
0190 <LogicalPart name="PixelForwardNippleSleeve" category="cooling">
0191 <rSolid name="PixelForwardNippleSleeve"/>
0192 <rMaterial name="trackermaterial:T_Aluminium"/>
0193 </LogicalPart>
0194 <LogicalPart name="PixelForwardNippleEpoxyCover" category="cooling">
0195 <rSolid name="PixelForwardNippleEpoxyCover"/>
0196 <rMaterial name="pixfwdMaterials:Pix_Fwd_AgEpoxy"/>
0197 </LogicalPart>
0198 <LogicalPart name="PixelForwardNippleEpoxyBody" category="cooling">
0199 <rSolid name="PixelForwardNippleEpoxyBody"/>
0200 <rMaterial name="pixfwdMaterials:Pix_Fwd_AgEpoxy"/>
0201 </LogicalPart>
0202 <LogicalPart name="PixelForwardNippleSleeveCoolant" category="cooling">
0203 <rSolid name="PixelForwardNippleSleeveCoolant"/>
0204 <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/>
0205 </LogicalPart>
0206 </LogicalPartSection>
0207 <PosPartSection label="Sleeve">
0208 <PosPart copyNumber="1">
0209 <rParent name="PixelForwardNippleZPlus"/>
0210 <rChild name="PixelForwardNippleSleeve"/>
0211 <Translation x="0." y="0." z="-[JK]/2 + [L02] - [L06] + [L04]/2"/>
0212 </PosPart>
0213 <PosPart copyNumber="2">
0214 <rParent name="PixelForwardNippleZMinus"/>
0215 <rChild name="PixelForwardNippleSleeve"/>
0216 <Translation x="0." y="0." z="-[JK]/2 + [L02] - [L06] + [L04]/2"/>
0217 </PosPart>
0218 <PosPart copyNumber="1">
0219 <rParent name="PixelForwardNippleSleeve"/>
0220 <rChild name="PixelForwardNippleEpoxyCover"/>
0221 <Translation x="0." y="0." z="-[L04]/2 + [L06]/2"/>
0222 </PosPart>
0223 <PosPart copyNumber="1">
0224 <rParent name="PixelForwardNippleSleeve"/>
0225 <rChild name="PixelForwardNippleEpoxyBody"/>
0226 <Translation x="0." y="0." z="[L04]/2 - [L05]/2"/>
0227 </PosPart>
0228 <PosPart copyNumber="1">
0229 <rParent name="PixelForwardNippleSleeve"/>
0230 <rChild name="PixelForwardNippleSleeveCoolant"/>
0231 </PosPart>
0232 </PosPartSection>
0233 <!-- Cover side : -->
0234 <ConstantsSection label="Cover" eval="true">
0235 <Constant name="e02" value="([L02]-[L06])/2"/>
0236 <!-- Half length of cover side -->
0237 </ConstantsSection>
0238 <SolidSection label="Cover">
0239 <Tubs name="PixelForwardNippleCover_01" rMin="0.*mm" rMax="[R05]" dz="[e02]" startPhi="0." deltaPhi="360*deg"/>
0240 <Tubs name="PixelForwardNippleCoverCoolant_01" rMin="0.*mm" rMax="[R04]" dz="[e02]" startPhi="0." deltaPhi="360*deg"/>
0241 <SubtractionSolid name="PixelForwardNippleCoverZPlus">
0242 <rSolid name="PixelForwardNippleCover_01"/>
0243 <rSolid name="PixelForwardNippleSubtract"/>
0244 <Translation x="0." y="0." z="-[e02]-[DeltaCover]"/>
0245 <rRotation name="NippleToCoverZPlus"/>
0246 </SubtractionSolid>
0247 <SubtractionSolid name="PixelForwardNippleCoverCoolantZPlus">
0248 <rSolid name="PixelForwardNippleCoverCoolant_01"/>
0249 <rSolid name="PixelForwardNippleSubtract"/>
0250 <Translation x="0." y="0." z="-[e02]-[DeltaCover]"/>
0251 <rRotation name="NippleToCoverZPlus"/>
0252 </SubtractionSolid>
0253 <SubtractionSolid name="PixelForwardNippleCoverZMinus">
0254 <rSolid name="PixelForwardNippleCover_01"/>
0255 <rSolid name="PixelForwardNippleSubtract"/>
0256 <Translation x="0." y="0." z="-[e02]-[DeltaCover]"/>
0257 <rRotation name="NippleToCoverZMinus"/>
0258 </SubtractionSolid>
0259 <SubtractionSolid name="PixelForwardNippleCoverCoolantZMinus">
0260 <rSolid name="PixelForwardNippleCoverCoolant_01"/>
0261 <rSolid name="PixelForwardNippleSubtract"/>
0262 <Translation x="0." y="0." z="-[e02]-[DeltaCover]"/>
0263 <rRotation name="NippleToCoverZMinus"/>
0264 </SubtractionSolid>
0265 </SolidSection>
0266 <LogicalPartSection label="Cover">
0267 <LogicalPart name="PixelForwardNippleCoverZPlus" category="cooling">
0268 <rSolid name="PixelForwardNippleCoverZPlus"/>
0269 <rMaterial name="trackermaterial:T_Aluminium"/>
0270 </LogicalPart>
0271 <LogicalPart name="PixelForwardNippleCoverCoolantZPlus" category="cooling">
0272 <rSolid name="PixelForwardNippleCoverCoolantZPlus"/>
0273 <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/>
0274 </LogicalPart>
0275 <LogicalPart name="PixelForwardNippleCoverZMinus" category="cooling">
0276 <rSolid name="PixelForwardNippleCoverZMinus"/>
0277 <rMaterial name="trackermaterial:T_Aluminium"/>
0278 </LogicalPart>
0279 <LogicalPart name="PixelForwardNippleCoverCoolantZMinus" category="cooling">
0280 <rSolid name="PixelForwardNippleCoverCoolantZMinus"/>
0281 <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/>
0282 </LogicalPart>
0283 </LogicalPartSection>
0284 <PosPartSection label="Cover">
0285 <PosPart copyNumber="1">
0286 <rParent name="PixelForwardNippleZPlus"/>
0287 <rChild name="PixelForwardNippleCoverZPlus"/>
0288 <Translation x="0." y="0." z="-[JK]/2 + [e02]"/>
0289 </PosPart>
0290 <PosPart copyNumber="1">
0291 <rParent name="PixelForwardNippleCoverZPlus"/>
0292 <rChild name="PixelForwardNippleCoverCoolantZPlus"/>
0293 </PosPart>
0294 <PosPart copyNumber="1">
0295 <rParent name="PixelForwardNippleZMinus"/>
0296 <rChild name="PixelForwardNippleCoverZMinus"/>
0297 <Translation x="0." y="0." z="-[JK]/2 + [e02]"/>
0298 </PosPart>
0299 <PosPart copyNumber="1">
0300 <rParent name="PixelForwardNippleCoverZMinus"/>
0301 <rChild name="PixelForwardNippleCoverCoolantZMinus"/>
0302 </PosPart>
0303 </PosPartSection>
0304 <!-- Body side : -->
0305 <ConstantsSection label="Body" eval="true">
0306 <Constant name="e03" value="([JK]-[e02]*2-[L04])/2"/>
0307 <!--Half length of body side -->
0308 </ConstantsSection>
0309 <SolidSection label="Body">
0310 <Tubs name="PixelForwardNippleBody_01" rMin="0.*mm" rMax="[R02]" dz="[e03]" startPhi="0." deltaPhi="360*deg"/>
0311 <Tubs name="PixelForwardNippleBodyCoolant_01" rMin="0.*mm" rMax="[R01]" dz="[e03]" startPhi="0." deltaPhi="360*deg"/>
0312 <SubtractionSolid name="PixelForwardNippleBodyZPlus">
0313 <rSolid name="PixelForwardNippleBody_01"/>
0314 <rSolid name="PixelForwardNippleSubtract"/>
0315 <Translation x="0." y="0." z="[e03]+[DeltaBody]"/>
0316 <rRotation name="NippleToBodyZPlus"/>
0317 </SubtractionSolid>
0318 <SubtractionSolid name="PixelForwardNippleBodyCoolantZPlus">
0319 <rSolid name="PixelForwardNippleBodyCoolant_01"/>
0320 <rSolid name="PixelForwardNippleSubtract"/>
0321 <Translation x="0." y="0." z="[e03]+[DeltaBody]"/>
0322 <rRotation name="NippleToBodyZPlus"/>
0323 </SubtractionSolid>
0324 <SubtractionSolid name="PixelForwardNippleBodyZMinus">
0325 <rSolid name="PixelForwardNippleBody_01"/>
0326 <rSolid name="PixelForwardNippleSubtract"/>
0327 <Translation x="0." y="0." z="[e03]+[DeltaBody]"/>
0328 <rRotation name="NippleToBodyZMinus"/>
0329 </SubtractionSolid>
0330 <SubtractionSolid name="PixelForwardNippleBodyCoolantZMinus">
0331 <rSolid name="PixelForwardNippleBodyCoolant_01"/>
0332 <rSolid name="PixelForwardNippleSubtract"/>
0333 <Translation x="0." y="0." z="[e03]+[DeltaBody]"/>
0334 <rRotation name="NippleToBodyZMinus"/>
0335 </SubtractionSolid>
0336 </SolidSection>
0337 <LogicalPartSection label="Body">
0338 <LogicalPart name="PixelForwardNippleBodyZPlus" category="cooling">
0339 <rSolid name="PixelForwardNippleBodyZPlus"/>
0340 <rMaterial name="trackermaterial:T_Aluminium"/>
0341 </LogicalPart>
0342 <LogicalPart name="PixelForwardNippleBodyCoolantZPlus" category="cooling">
0343 <rSolid name="PixelForwardNippleBodyCoolantZPlus"/>
0344 <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/>
0345 </LogicalPart>
0346 <LogicalPart name="PixelForwardNippleBodyZMinus" category="cooling">
0347 <rSolid name="PixelForwardNippleBodyZMinus"/>
0348 <rMaterial name="trackermaterial:T_Aluminium"/>
0349 </LogicalPart>
0350 <LogicalPart name="PixelForwardNippleBodyCoolantZMinus" category="cooling">
0351 <rSolid name="PixelForwardNippleBodyCoolantZMinus"/>
0352 <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/>
0353 </LogicalPart>
0354 </LogicalPartSection>
0355 <PosPartSection label="BodyPlus">
0356 <PosPart copyNumber="1">
0357 <rParent name="PixelForwardNippleZPlus"/>
0358 <rChild name="PixelForwardNippleBodyZPlus"/>
0359 <Translation x="0." y="0." z="[JK]/2 - [e03]"/>
0360 </PosPart>
0361 <PosPart copyNumber="1">
0362 <rParent name="PixelForwardNippleBodyZPlus"/>
0363 <rChild name="PixelForwardNippleBodyCoolantZPlus"/>
0364 </PosPart>
0365 </PosPartSection>
0366 <PosPartSection label="BodyMinus">
0367 <PosPart copyNumber="1">
0368 <rParent name="PixelForwardNippleZMinus"/>
0369 <rChild name="PixelForwardNippleBodyZMinus"/>
0370 <Translation x="0." y="0." z="[JK]/2 - [e03]"/>
0371 </PosPart>
0372 <PosPart copyNumber="1">
0373 <rParent name="PixelForwardNippleBodyZMinus"/>
0374 <rChild name="PixelForwardNippleBodyCoolantZMinus"/>
0375 </PosPart>
0376 </PosPartSection>
0377 </DDDefinition>