/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Geometry/TrackerCommonData/data/pixfwdNipple.xml
377 строк
18 KB
Giulio Eulisse
Snapshot of CMSSW_6_2_0_pre8.
26 июн 2013, 18:12
26 июн 2013, 18:12
214ab73
Код
Авторство
О чём код?
<?xml version="1.0"?> <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"> <!-- == CMS Forward Pixels Geometry == @version 3.02.01 May 30, 2006 @created Dmitry Onoprienko @modified Vesna Cuplov april 2007 == Subsystem or component described by the file == "Nipple" connecting cooling channels in two adjacent blades. == Root volume and its reference frame == Two root volumes are defined: PixelForwardNippleZPlus (nipple for +Z disk) PixelForwardNippleZMinus (nipple for -Z disk) Z along the nipple axis, pointing from J to K. Origin at the middle of a segment connecting points J and K on the drawing == Positioning == Positioned automatically by the <code>DDPixFwdBlades</code> algorithm, which recognizes this component by its volume name, and applies appropriate rotations and translations. == Additional comments == +Z and -Z versions of a nipple are, in fact, reflections of each other, but they are defined separately to make Iguana happy: G4 visualization cannot handle polycone reflection at the moment. The call to DDPixFwdBlades algorithm calculates parameters needed for constructing the nipple: rotations pixfwdNipple:NippleToCoverZPlus, pixfwdNipple:NippleToCoverZMinus, pixfwdNipple:NippleToBodyZPlus, pixfwdNipple:NippleToBodyZMinus and constants pixfwdNipple:JK, pixfwdNipple:AngleBody, pixfwdNipple:AngleCover. Currently, there is a problem with passing constants from algorithms to DDL files, so these constants are defined manually (by copy-and-paste from the algorithm output). To make sure the resulting numerical error does not cause volumes to overlap, nipples are described to be slightly shorter than they are on the drawings. --> <!-- Input geometry parameters --> <ConstantsSection label="Input" eval="true"> <Constant name="R01" value="2.00*mm"/> <Constant name="R02" value="2.50*mm"/> <Constant name="R03" value="2.00*mm"/> <Constant name="R04" value="2.50*mm"/> <Constant name="R05" value="3.00*mm"/> <Constant name="R06" value="3.00*mm"/> <Constant name="R07" value="3.50*mm"/> <Constant name="R08" value="4.50*mm"/> <Constant name="R09" value="3.25*mm"/> <Constant name="R10" value="3.75*mm"/> <Constant name="R11" value="3.50*mm"/> <Constant name="L01" value="8.23*mm"/> <Constant name="L02" value="8.23*mm"/> <Constant name="L03" value="6.73*mm"/> <Constant name="L04" value="9.50*mm"/> <Constant name="L05" value="4.00*mm"/> <Constant name="L06" value="4.00*mm"/> <Constant name="L07" value="1.00*mm"/> <Constant name="L08" value="1.00*mm"/> <Constant name="A01" value="60*deg"/> <Constant name="RootHalfThickness" value="[pixfwdPanelBase:RootHalfThickness]"/> </ConstantsSection> <!-- THIS ALGORITHM DEFINES A FEW ROTATIONS (LIKE pixfwdNipple:NippleToCover) AND ATTEMPTS TO DEFINE A CONSTANT pixfwdNipple: JK, AngleBody, AngleCover --> <Algorithm name="track:DDPixFwdBlades"> <rParent name="pixfwdNipple:PixelForwardNippleZPlus"/> </Algorithm> <!-- Nipple root and a solid for boolean subtraction --> <ConstantsSection label="Root" eval="true"> <Constant name="JK" value="16.9*mm"/> <!-- 16.9523 as printed by algorithm, made slightly smaller to avoid overlaps due to numerical errors. Can be made more precise once DDL is able to use constants defined in algorithms directly. --> <Constant name="AngleBody" value="0.172941*rad"/> <Constant name="AngleCover" value="0.172941*rad"/> <Constant name="Dsub" value="2.0*mm"/> <Constant name="Rsub" value="[R08]/cos([AngleBody]) + ([Dsub]/2)*tan([AngleBody]) + [pixfwdCommon:SmallBool]"/> <Constant name="DeltaBody" value="([Dsub]/2 - 0.5*mm) / cos([AngleBody])"/> <Constant name="DeltaCover" value="([Dsub]/2 - 0.5*mm) / cos([AngleCover])"/> </ConstantsSection> <SolidSection label="Root"> <!-- Previous description (D. Onoprienko) <Tubs name="PixelForwardNipple_01" rMin="0.*mm" rMax="[R08]" dz="[JK]/2." startPhi="0." deltaPhi="360*deg" /> <Tubs name="PixelForwardNippleSubtract" rMin="0.*mm" rMax="[Rsub]" dz="[Dsub]/2." startPhi="0." deltaPhi="360*deg" /> <SubtractionSolid name="PixelForwardNipple_int01"> <rSolid name="PixelForwardNipple_01" /> <rSolid name="PixelForwardNippleSubtract" /> <Translation x="0." y="0." z="-[JK]/2.-[DeltaCover]" /> <rRotation name="NippleToCoverZPlus" /> </SubtractionSolid> <SubtractionSolid name="PixelForwardNippleZPlus"> <rSolid name="PixelForwardNipple_int01" /> <rSolid name="PixelForwardNippleSubtract" /> <Translation x="0." y="0." z="[JK]/2.+[DeltaBody]" /> <rRotation name="NippleToBodyZPlus" /> </SubtractionSolid> --> <!-- 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. --> <Tubs name="PixelForwardNipple_01" rMin="0.*mm" rMax="[R08]-0.9*mm" dz="[L04]/2+3.7*mm" startPhi="0." deltaPhi="360*deg"/> <Tubs name="PixelForwardNippleSubtract" rMin="0.*mm" rMax="[Rsub]-0.9*mm" dz="[Dsub]/2." startPhi="0." deltaPhi="360*deg"/> <Tubs name="PixelForwardNippleMiddle" rMin="0.*mm" rMax="[R08]" dz="[L04]/2.+0.4*mm" startPhi="0." deltaPhi="360*deg"/> <SubtractionSolid name="PixelForwardNipple_int01"> <rSolid name="PixelForwardNipple_01"/> <rSolid name="PixelForwardNippleSubtract"/> <Translation x="0." y="0." z="-[L04]/2.-3.7*mm-[DeltaCover]"/> <rRotation name="NippleToCoverZPlus"/> </SubtractionSolid> <SubtractionSolid name="PixelForwardNippleZPlus_01"> <rSolid name="PixelForwardNipple_int01"/> <rSolid name="PixelForwardNippleSubtract"/> <Translation x="0." y="0." z="[L04]/2.+3.7*mm+[DeltaBody]"/> <rRotation name="NippleToBodyZPlus"/> </SubtractionSolid> <UnionSolid name="PixelForwardNippleZPlus"> <rSolid name="PixelForwardNippleZPlus_01"/> <rSolid name="PixelForwardNippleMiddle"/> <Translation x="0." y="0." z="0."/> </UnionSolid> <SubtractionSolid name="PixelForwardNipple_int02"> <rSolid name="PixelForwardNipple_01"/> <rSolid name="PixelForwardNippleSubtract"/> <Translation x="0." y="0." z="-[L04]/2.-3.7*mm-[DeltaCover]"/> <rRotation name="NippleToCoverZMinus"/> </SubtractionSolid> <SubtractionSolid name="PixelForwardNippleZMinus_01"> <rSolid name="PixelForwardNipple_int02"/> <rSolid name="PixelForwardNippleSubtract"/> <Translation x="0." y="0." z="[L04]/2.+3.7*mm+[DeltaBody]"/> <rRotation name="NippleToBodyZMinus"/> </SubtractionSolid> <UnionSolid name="PixelForwardNippleZMinus"> <rSolid name="PixelForwardNippleZMinus_01"/> <rSolid name="PixelForwardNippleMiddle"/> <Translation x="0." y="0." z="0."/> </UnionSolid> </SolidSection> <LogicalPartSection label="Root"> <LogicalPart name="PixelForwardNippleZPlus" category="envelope"> <rSolid name="PixelForwardNippleZPlus"/> <rMaterial name="materials:Air"/> </LogicalPart> <LogicalPart name="PixelForwardNippleZMinus" category="envelope"> <rSolid name="PixelForwardNippleZMinus"/> <rMaterial name="materials:Air"/> </LogicalPart> </LogicalPartSection> <!-- Sleeve and pipes inside it --> <ConstantsSection label="Sleeve" eval="true"> <Constant name="e01" value="[JK]-[L01]-[L02]"/> </ConstantsSection> <SolidSection label="Sleeve"> <Polycone name="PixelForwardNippleSleeve" startPhi="0.*deg" deltaPhi="360*deg"> <ZSection z="-[L04]/2" rMin="0." rMax="[R08]"/> <ZSection z="[L04]/2-([R08]-[R07])*tan([A01])" rMin="0." rMax="[R08]"/> <ZSection z="[L04]/2" rMin="0." rMax="[R07]"/> </Polycone> <Polycone name="PixelForwardNippleEpoxyCover" startPhi="0.*deg" deltaPhi="360*deg"> <ZSection z="-[L06]/2" rMin="[R05]" rMax="[R11]"/> <ZSection z="[L06]/2-[L07]-([R10]-[R11])" rMin="[R05]" rMax="[R11]"/> <ZSection z="[L06]/2-[L07]" rMin="[R05]" rMax="[R10]"/> <ZSection z="[L06]/2" rMin="[R05]" rMax="[R10]"/> </Polycone> <Polycone name="PixelForwardNippleEpoxyBody" startPhi="0.*deg" deltaPhi="360*deg"> <ZSection z="-[L05]/2" rMin="[R02]" rMax="[R09]"/> <ZSection z="-[L05]/2+[L08]" rMin="[R02]" rMax="[R09]"/> <ZSection z="-[L05]/2+[L08]+([R09]-[R06])" rMin="[R02]" rMax="[R06]"/> <ZSection z="[L05]/2" rMin="[R02]" rMax="[R06]"/> </Polycone> <Polycone name="PixelForwardNippleSleeveCoolant" startPhi="0.*deg" deltaPhi="360*deg"> <ZSection z="-[L04]/2" rMin="0.0" rMax="[R04]"/> <ZSection z="-[L04]/2+[L06]-([L02]-[L03])" rMin="0.0" rMax="[R04]"/> <ZSection z="-[L04]/2+[L06]-([L02]-[L03])+([R04]-[R03])" rMin="0.0" rMax="[R03]"/> <ZSection z="-[L04]/2+[L06]" rMin="0.0" rMax="[R03]"/> <ZSection z="-[L04]/2+[L06]" rMin="0.0" rMax="[R02]"/> <ZSection z="-[L04]/2+[L06]+[e01]" rMin="0.0" rMax="[R02]"/> <ZSection z="-[L04]/2+[L06]+[e01]" rMin="0.0" rMax="[R01]"/> <ZSection z="[L04]/2" rMin="0.0" rMax="[R01]"/> </Polycone> </SolidSection> <LogicalPartSection label="Sleeve"> <LogicalPart name="PixelForwardNippleSleeve" category="cooling"> <rSolid name="PixelForwardNippleSleeve"/> <rMaterial name="trackermaterial:T_Aluminium"/> </LogicalPart> <LogicalPart name="PixelForwardNippleEpoxyCover" category="cooling"> <rSolid name="PixelForwardNippleEpoxyCover"/> <rMaterial name="pixfwdMaterials:Pix_Fwd_AgEpoxy"/> </LogicalPart> <LogicalPart name="PixelForwardNippleEpoxyBody" category="cooling"> <rSolid name="PixelForwardNippleEpoxyBody"/> <rMaterial name="pixfwdMaterials:Pix_Fwd_AgEpoxy"/> </LogicalPart> <LogicalPart name="PixelForwardNippleSleeveCoolant" category="cooling"> <rSolid name="PixelForwardNippleSleeveCoolant"/> <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/> </LogicalPart> </LogicalPartSection> <PosPartSection label="Sleeve"> <PosPart copyNumber="1"> <rParent name="PixelForwardNippleZPlus"/> <rChild name="PixelForwardNippleSleeve"/> <Translation x="0." y="0." z="-[JK]/2 + [L02] - [L06] + [L04]/2"/> </PosPart> <PosPart copyNumber="2"> <rParent name="PixelForwardNippleZMinus"/> <rChild name="PixelForwardNippleSleeve"/> <Translation x="0." y="0." z="-[JK]/2 + [L02] - [L06] + [L04]/2"/> </PosPart> <PosPart copyNumber="1"> <rParent name="PixelForwardNippleSleeve"/> <rChild name="PixelForwardNippleEpoxyCover"/> <Translation x="0." y="0." z="-[L04]/2 + [L06]/2"/> </PosPart> <PosPart copyNumber="1"> <rParent name="PixelForwardNippleSleeve"/> <rChild name="PixelForwardNippleEpoxyBody"/> <Translation x="0." y="0." z="[L04]/2 - [L05]/2"/> </PosPart> <PosPart copyNumber="1"> <rParent name="PixelForwardNippleSleeve"/> <rChild name="PixelForwardNippleSleeveCoolant"/> </PosPart> </PosPartSection> <!-- Cover side : --> <ConstantsSection label="Cover" eval="true"> <Constant name="e02" value="([L02]-[L06])/2"/> <!-- Half length of cover side --> </ConstantsSection> <SolidSection label="Cover"> <Tubs name="PixelForwardNippleCover_01" rMin="0.*mm" rMax="[R05]" dz="[e02]" startPhi="0." deltaPhi="360*deg"/> <Tubs name="PixelForwardNippleCoverCoolant_01" rMin="0.*mm" rMax="[R04]" dz="[e02]" startPhi="0." deltaPhi="360*deg"/> <SubtractionSolid name="PixelForwardNippleCoverZPlus"> <rSolid name="PixelForwardNippleCover_01"/> <rSolid name="PixelForwardNippleSubtract"/> <Translation x="0." y="0." z="-[e02]-[DeltaCover]"/> <rRotation name="NippleToCoverZPlus"/> </SubtractionSolid> <SubtractionSolid name="PixelForwardNippleCoverCoolantZPlus"> <rSolid name="PixelForwardNippleCoverCoolant_01"/> <rSolid name="PixelForwardNippleSubtract"/> <Translation x="0." y="0." z="-[e02]-[DeltaCover]"/> <rRotation name="NippleToCoverZPlus"/> </SubtractionSolid> <SubtractionSolid name="PixelForwardNippleCoverZMinus"> <rSolid name="PixelForwardNippleCover_01"/> <rSolid name="PixelForwardNippleSubtract"/> <Translation x="0." y="0." z="-[e02]-[DeltaCover]"/> <rRotation name="NippleToCoverZMinus"/> </SubtractionSolid> <SubtractionSolid name="PixelForwardNippleCoverCoolantZMinus"> <rSolid name="PixelForwardNippleCoverCoolant_01"/> <rSolid name="PixelForwardNippleSubtract"/> <Translation x="0." y="0." z="-[e02]-[DeltaCover]"/> <rRotation name="NippleToCoverZMinus"/> </SubtractionSolid> </SolidSection> <LogicalPartSection label="Cover"> <LogicalPart name="PixelForwardNippleCoverZPlus" category="cooling"> <rSolid name="PixelForwardNippleCoverZPlus"/> <rMaterial name="trackermaterial:T_Aluminium"/> </LogicalPart> <LogicalPart name="PixelForwardNippleCoverCoolantZPlus" category="cooling"> <rSolid name="PixelForwardNippleCoverCoolantZPlus"/> <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/> </LogicalPart> <LogicalPart name="PixelForwardNippleCoverZMinus" category="cooling"> <rSolid name="PixelForwardNippleCoverZMinus"/> <rMaterial name="trackermaterial:T_Aluminium"/> </LogicalPart> <LogicalPart name="PixelForwardNippleCoverCoolantZMinus" category="cooling"> <rSolid name="PixelForwardNippleCoverCoolantZMinus"/> <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/> </LogicalPart> </LogicalPartSection> <PosPartSection label="Cover"> <PosPart copyNumber="1"> <rParent name="PixelForwardNippleZPlus"/> <rChild name="PixelForwardNippleCoverZPlus"/> <Translation x="0." y="0." z="-[JK]/2 + [e02]"/> </PosPart> <PosPart copyNumber="1"> <rParent name="PixelForwardNippleCoverZPlus"/> <rChild name="PixelForwardNippleCoverCoolantZPlus"/> </PosPart> <PosPart copyNumber="1"> <rParent name="PixelForwardNippleZMinus"/> <rChild name="PixelForwardNippleCoverZMinus"/> <Translation x="0." y="0." z="-[JK]/2 + [e02]"/> </PosPart> <PosPart copyNumber="1"> <rParent name="PixelForwardNippleCoverZMinus"/> <rChild name="PixelForwardNippleCoverCoolantZMinus"/> </PosPart> </PosPartSection> <!-- Body side : --> <ConstantsSection label="Body" eval="true"> <Constant name="e03" value="([JK]-[e02]*2-[L04])/2"/> <!--Half length of body side --> </ConstantsSection> <SolidSection label="Body"> <Tubs name="PixelForwardNippleBody_01" rMin="0.*mm" rMax="[R02]" dz="[e03]" startPhi="0." deltaPhi="360*deg"/> <Tubs name="PixelForwardNippleBodyCoolant_01" rMin="0.*mm" rMax="[R01]" dz="[e03]" startPhi="0." deltaPhi="360*deg"/> <SubtractionSolid name="PixelForwardNippleBodyZPlus"> <rSolid name="PixelForwardNippleBody_01"/> <rSolid name="PixelForwardNippleSubtract"/> <Translation x="0." y="0." z="[e03]+[DeltaBody]"/> <rRotation name="NippleToBodyZPlus"/> </SubtractionSolid> <SubtractionSolid name="PixelForwardNippleBodyCoolantZPlus"> <rSolid name="PixelForwardNippleBodyCoolant_01"/> <rSolid name="PixelForwardNippleSubtract"/> <Translation x="0." y="0." z="[e03]+[DeltaBody]"/> <rRotation name="NippleToBodyZPlus"/> </SubtractionSolid> <SubtractionSolid name="PixelForwardNippleBodyZMinus"> <rSolid name="PixelForwardNippleBody_01"/> <rSolid name="PixelForwardNippleSubtract"/> <Translation x="0." y="0." z="[e03]+[DeltaBody]"/> <rRotation name="NippleToBodyZMinus"/> </SubtractionSolid> <SubtractionSolid name="PixelForwardNippleBodyCoolantZMinus"> <rSolid name="PixelForwardNippleBodyCoolant_01"/> <rSolid name="PixelForwardNippleSubtract"/> <Translation x="0." y="0." z="[e03]+[DeltaBody]"/> <rRotation name="NippleToBodyZMinus"/> </SubtractionSolid> </SolidSection> <LogicalPartSection label="Body"> <LogicalPart name="PixelForwardNippleBodyZPlus" category="cooling"> <rSolid name="PixelForwardNippleBodyZPlus"/> <rMaterial name="trackermaterial:T_Aluminium"/> </LogicalPart> <LogicalPart name="PixelForwardNippleBodyCoolantZPlus" category="cooling"> <rSolid name="PixelForwardNippleBodyCoolantZPlus"/> <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/> </LogicalPart> <LogicalPart name="PixelForwardNippleBodyZMinus" category="cooling"> <rSolid name="PixelForwardNippleBodyZMinus"/> <rMaterial name="trackermaterial:T_Aluminium"/> </LogicalPart> <LogicalPart name="PixelForwardNippleBodyCoolantZMinus" category="cooling"> <rSolid name="PixelForwardNippleBodyCoolantZMinus"/> <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/> </LogicalPart> </LogicalPartSection> <PosPartSection label="BodyPlus"> <PosPart copyNumber="1"> <rParent name="PixelForwardNippleZPlus"/> <rChild name="PixelForwardNippleBodyZPlus"/> <Translation x="0." y="0." z="[JK]/2 - [e03]"/> </PosPart> <PosPart copyNumber="1"> <rParent name="PixelForwardNippleBodyZPlus"/> <rChild name="PixelForwardNippleBodyCoolantZPlus"/> </PosPart> </PosPartSection> <PosPartSection label="BodyMinus"> <PosPart copyNumber="1"> <rParent name="PixelForwardNippleZMinus"/> <rChild name="PixelForwardNippleBodyZMinus"/> <Translation x="0." y="0." z="[JK]/2 - [e03]"/> </PosPart> <PosPart copyNumber="1"> <rParent name="PixelForwardNippleBodyZMinus"/> <rChild name="PixelForwardNippleBodyCoolantZMinus"/> </PosPart> </PosPartSection> </DDDefinition>