Warning, /Geometry/TrackerCommonData/data/pixfwd.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 Xingtao Huang to implement the simplified fpix service cylinder
0010
0011 == Subsystem or component described by the file ==
0012
0013 Forward pixels endcap (contains two disks inside a service cylinder).
0014
0015 == Root volume and its reference frame ==
0016
0017 Two root volumes are defined:
0018
0019 PixelForwardZPlus : +Z half of the detector
0020 PixelForwardZMinus : -Z half of the detector
0021
0022 X horizontal
0023 Y vertical
0024 Z along the beam line, pointing away from IP
0025
0026 == Positioning ==
0027
0028 Anchor point of this component is at the IP-side edge of the service cylider, on
0029 the axis of the detector (see annotated drawings).
0030 The file defines [AnchorZ] constant that corresponds to the Z coordinate
0031 of the anchor point in the forward pixels endcap reference frame, and the
0032 [ZPixelForward] constant equal to the distance from CMS IP to the
0033 anchor point.
0034
0035 Therefore, in the CMS global reference frame,
0036 PixelForwardZPlus has to be positioned at
0037 (0., 0., 0.) with no rotation, and
0038 PixelForwardZMinus has to be positioned at
0039 (0., 0., 0.)
0040 with pixfwdCommon:Y180 rotation (180 degrees around Y axis).
0041
0042 -->
0043 <!-- Root volumes -->
0044 <ConstantsSection label="Root" eval="true">
0045 <Constant name="RootRadius" value="[pixfwdCylinder:CylindersOuterRmax]"/>
0046 <Constant name="RootHalfLength" value="[pixfwdCylinder:CylindersOuterLength]/2.+ [pixfwdCylinder:CylindersEndFlangeLength]/2."/>
0047 <Constant name="AnchorZ" value="0.*mm"/>
0048 <Constant name="ZPixelForward" value="325.*mm"/>
0049 <Constant name="RootStartZ" value="-2*mm"/>
0050 <Constant name="RootMidZ3" value="[cms:TrackBeamZ1]-[ZPixelForward]"/>
0051 <Constant name="RootEndZ" value="2*[RootHalfLength]"/>
0052 </ConstantsSection>
0053 <SolidSection label="Root">
0054 <Polycone name="PixelForward" startPhi="0*deg" deltaPhi="360*deg">
0055 <ZSection z="[RootStartZ]" rMin="[cms:TrackBeamR1]" rMax="[RootRadius]"/>
0056 <ZSection z="[RootMidZ3]" rMin="[cms:TrackBeamR1]" rMax="[RootRadius]"/>
0057 <ZSection z="[RootEndZ]" rMin="[cms:TrackBeamR2]" rMax="[RootRadius]"/>
0058 </Polycone>
0059 </SolidSection>
0060 <LogicalPartSection label="Root">
0061 <LogicalPart name="PixelForwardZPlus" category="envelope">
0062 <rSolid name="PixelForward"/>
0063 <rMaterial name="materials:Air"/>
0064 </LogicalPart>
0065 <LogicalPart name="PixelForwardZMinus" category="envelope">
0066 <rSolid name="PixelForward"/>
0067 <rMaterial name="materials:Air"/>
0068 </LogicalPart>
0069 </LogicalPartSection>
0070 <!-- Position disks inside root -->
0071 <ConstantsSection label="Disks" eval="true">
0072 <!-- Distances from IP-side edge of PixelForwardRoot to disk centers -->
0073 <Constant name="Disk1Z" value="30*mm"/>
0074 <Constant name="Disk2Z" value="160*mm"/>
0075 <Constant name="Disk3Z" value="290*mm"/>
0076 </ConstantsSection>
0077 <PosPartSection label="Disks">
0078 <!-- +Z endcap -->
0079 <PosPart copyNumber="1">
0080 <rParent name="PixelForwardZPlus"/>
0081 <rChild name="pixfwdDisk:PixelForwardDiskZPlus"/>
0082 <Translation x="0." y="0." z="[AnchorZ]+[Disk1Z]"/>
0083 </PosPart>
0084 <PosPart copyNumber="2">
0085 <rParent name="PixelForwardZPlus"/>
0086 <rChild name="pixfwdDisk:PixelForwardDiskZPlus"/>
0087 <Translation x="0." y="0." z="[AnchorZ]+[Disk2Z]"/>
0088 </PosPart>
0089 <!-- UNCOMMENT TO SIMULATE THE THIRD DISK -->
0090 <!-- <PosPart copyNumber="3">-->
0091 <!-- <rParent name="PixelForwardZPlus"/>-->
0092 <!-- <rChild name="pixfwdDisk:PixelForwardDiskZPlus"/>-->
0093 <!-- <Translation x="0." y="0." z="[AnchorZ]+ [Disk3Z]" />-->
0094 <!-- </PosPart>-->
0095 <!-- -Z endcap -->
0096 <PosPart copyNumber="1">
0097 <rParent name="PixelForwardZMinus"/>
0098 <rChild name="pixfwdDisk:PixelForwardDiskZMinus"/>
0099 <Translation x="0." y="0." z="[AnchorZ]+[Disk1Z]"/>
0100 </PosPart>
0101 <PosPart copyNumber="2">
0102 <rParent name="PixelForwardZMinus"/>
0103 <rChild name="pixfwdDisk:PixelForwardDiskZMinus"/>
0104 <Translation x="0." y="0." z="[AnchorZ]+[Disk2Z]"/>
0105 </PosPart>
0106 <!-- UNCOMMENT TO SIMULATE THE THIRD DISK -->
0107 <!-- <PosPart copyNumber="3">-->
0108 <!-- <rParent name="PixelForwardZMinus"/>-->
0109 <!-- <rChild name="pixfwdDisk:PixelForwardDiskZMinus"/>-->
0110 <!-- <Translation x="0." y="0." z="[AnchorZ]+[Disk3Z]" />-->
0111 <!-- </PosPart>-->
0112 </PosPartSection>
0113 <!-- Position service cylinders inside root.
0114 Since shapeless volumes are not useable at the moment,
0115 PixelForwardCylinder.xml does the actual positioning, we just tell it where to place the
0116 cylinders by defining Z position of IP-side edge of service cylinder in PixelForward frame:
0117 -->
0118 <ConstantsSection label="ServiceCylinder" eval="true">
0119 <Constant name="ZCylinder" value="[AnchorZ]"/>
0120 </ConstantsSection>
0121 <PosPartSection label="Cylinders">
0122 <!-- +Z endcap -->
0123 <PosPart copyNumber="1">
0124 <rParent name="pixfwd:PixelForwardZPlus"/>
0125 <rChild name="pixfwdCylinder:PixelForwardServiceCylinder"/>
0126 <Translation x="0." y="0." z="0."/>
0127 </PosPart>
0128 <PosPart copyNumber="1">
0129 <rParent name="pixfwd:PixelForwardZPlus"/>
0130 <rChild name="pixfwdCylinder:PixelForwardCylinderEndFlange"/>
0131 <Translation x="0." y="0." z="[pixfwd:ZCylinder]+[pixfwdCylinder:CylindersOuterLength]+[pixfwdCylinder:CylindersEndFlangeLength]/2."/>
0132 <rRotation name="pixfwdCylinder:EndFlangeRot1"/>
0133 </PosPart>
0134 <PosPart copyNumber="2">
0135 <rParent name="pixfwd:PixelForwardZPlus"/>
0136 <rChild name="pixfwdCylinder:PixelForwardCylinderEndFlange"/>
0137 <Translation x="0." y="0." z="[pixfwd:ZCylinder]+[pixfwdCylinder:CylindersOuterLength]+[pixfwdCylinder:CylindersEndFlangeLength]/2."/>
0138 <rRotation name="pixfwdCylinder:EndFlangeRot2"/>
0139 <!-- xt rRotation name="pixfwdCommon:Z180" / xt-->
0140 </PosPart>
0141 <!-- xt PosPart copyNumber="1">
0142 <rParent name="pixfwd:PixelForwardZPlus"/>
0143 <rChild name="pixfwdCylinder:PixelForwardCylinderBackCyl"/>
0144 <Translation x="0." y="0." z="[pixfwd:ZCylinder]+[pixfwdCylinder:CylindersFrontLength]+[pixfwdCylinder:CylinderBackLength]/2." />
0145 </PosPart xt -->
0146 <!-- -Z endcap -->
0147 <PosPart copyNumber="1">
0148 <rParent name="pixfwd:PixelForwardZMinus"/>
0149 <rChild name="pixfwdCylinder:PixelForwardServiceCylinder"/>
0150 <Translation x="0." y="0." z="0."/>
0151 </PosPart>
0152 <PosPart copyNumber="1">
0153 <rParent name="pixfwd:PixelForwardZMinus"/>
0154 <rChild name="pixfwdCylinder:PixelForwardCylinderEndFlange"/>
0155 <Translation x="0." y="0." z="[pixfwd:ZCylinder]+[pixfwdCylinder:CylindersOuterLength]+[pixfwdCylinder:CylindersEndFlangeLength]/2."/>
0156 <rRotation name="pixfwdCylinder:EndFlangeRot1"/>
0157 </PosPart>
0158 <PosPart copyNumber="2">
0159 <rParent name="pixfwd:PixelForwardZMinus"/>
0160 <rChild name="pixfwdCylinder:PixelForwardCylinderEndFlange"/>
0161 <Translation x="0." y="0." z="[pixfwd:ZCylinder]+[pixfwdCylinder:CylindersOuterLength]+[pixfwdCylinder:CylindersEndFlangeLength]/2."/>
0162 <rRotation name="pixfwdCylinder:EndFlangeRot2"/>
0163 </PosPart>
0164 <!-- xt PosPart copyNumber="1">
0165 <rParent name="pixfwd:PixelForwardZMinus"/>
0166 <rChild name="pixfwdCylinder:PixelForwardCylinderBackCyl"/>
0167 <Translation x="0." y="0." z="[pixfwd:ZCylinder]+[pixfwdCylinder:CylindersFrontLength]+[pixfwdCylinder:CylinderBackLength]/2." />
0168 </PosPart xt -->
0169 </PosPartSection>
0170 </DDDefinition>