Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196
<?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 Victoria Martin
         @modified Dmitry Onoprienko
         
         == Subsystem or component described by the file ==
         
         2x3 Plaquette.
         
         == Root volume and its reference frame ==
         
         Root volume : PixelForwardPlaquette2x3Up and PixelForwardPlaquette2x3Down
         
         Y is in the plane of the plaquette, pointing away from the beam line
         Z is perpendicular to the plaquette, pointing to the sensor side
         
         == Positioning ==
         
         The file defines AnchorX and AnchorY constants that 
         correspond to the anchor point (aka active center) coordinates in the plaquette
         root volume.
         
         The two root volumes defined by this file contain identical geometry, but differ
         in the directions of X and Y axes of the sensitive volume.
         
         PixelForwardPlaquette2x3Up should be positioned unrotated into "PixelForwardPanel3Right" panel,
         and rotated by 180 deg around Z into "PixelForwardPanel4Left" panel.
         
         PixelForwardPlaquette2x3Down should be positioned unrotated into "PixelForwardPanel4Right" panel,
         and rotated by 180 deg around Z into "PixelForwardPanel3Left" panel.
         
         == Additional comments ==
         
         The volume representing the active part of the sensor is placed with 90 degrees 
         rotation around Z axis to make its local reference frame Y go along the longer side.
         
         -->
    <ConstantsSection label="Input" eval="true">
        <Constant name="PlaquetteW" value="29.458*mm"/>
        <Constant name="PlaquetteH" value="27.766*mm"/>
        <Constant name="SensorW" value="26.594*mm"/>
        <Constant name="SensorH" value="18.494*mm"/>
        <Constant name="ActiveW" value="24.300*mm"/>
        <Constant name="ActiveH" value="16.200*mm"/>
        <Constant name="ROChipX_TopRight" value="3.074*mm"/>
        <Constant name="ROChipY_TopRight" value="3.905*mm"/>
        <Constant name="ROChipX_BottomLeft" value="27.300*mm"/>
        <Constant name="ROChipY_BottomLeft" value="23.860*mm"/>
        <Constant name="ActiveCenterX" value="15.187*mm"/>
        <Constant name="ActiveCenterY" value="13.883*mm"/>
    </ConstantsSection>
    <ConstantsSection label="Common" eval="true">
        <Constant name="AnchorX" value=" [PlaquetteW]/2.-[ActiveCenterX]"/>
        <Constant name="AnchorY" value="0.*mm"/>
    </ConstantsSection>
    <SolidSection label="All">
        <!-- Root volume -->
        <Box name="PixelForwardPlaquette2x3" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:PlaquetteT]/2."/>
        <!-- Sensor -->
        <Box name="PixelForwardSensor2x3" dx="[SensorH]/2." dy="[SensorW]/2" dz="[pixfwdPlaq:SensorT]/2."/>
        <Box name="PixelForwardActive2x3" dx="[ActiveH]/2." dy="[ActiveW]/2" dz="[pixfwdPlaq:SensorT]/2."/>
        <!-- Passive part -->
        <Box name="PixelForwardPassive2x3" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:PassiveT]/2."/>
        <Box name="PixelForwardFlexCircuit2x3" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:FlexCircuitT]/2."/>
        <Box name="PixelForwardAdhFilm2x3" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:AdhFilmT]/2."/>
        <Box name="PixelForwardBacking2x3" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:BackingT]/2."/>
        <Box name="PixelForwardChoTherm2x3" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:ChoThermT]/2."/>
    </SolidSection>
    <LogicalPartSection label="All">
        <!-- Root volumes -->
        <LogicalPart name="PixelForwardPlaquette2x3Up" category="envelope">
            <rSolid name="PixelForwardPlaquette2x3"/>
            <rMaterial name="materials:Air"/>
        </LogicalPart>
        <LogicalPart name="PixelForwardPlaquette2x3Down" category="envelope">
            <rSolid name="PixelForwardPlaquette2x3"/>
            <rMaterial name="materials:Air"/>
        </LogicalPart>
        <!-- Sensor -->
        <LogicalPart name="PixelForwardSensor2x3" category="unspecified">
            <rSolid name="PixelForwardSensor2x3"/>
            <rMaterial name="materials:Silicon"/>
        </LogicalPart>
        <LogicalPart name="PixelForwardActive2x3" category="sensitive">
            <rSolid name="PixelForwardActive2x3"/>
            <rMaterial name="materials:Silicon"/>
        </LogicalPart>
        <!-- Passive part -->
        <LogicalPart name="PixelForwardPassive2x3" category="envelope">
            <rSolid name="PixelForwardPassive2x3"/>
            <rMaterial name="materials:Air"/>
        </LogicalPart>
        <LogicalPart name="PixelForwardFlexCircuit2x3" category="unspecified">
            <rSolid name="PixelForwardFlexCircuit2x3"/>
            <rMaterial name="pixfwdMaterials:Pix_Fwd_VHDI"/>
        </LogicalPart>
        <LogicalPart name="PixelForwardAdhFilm2x3" category="unspecified">
            <rSolid name="PixelForwardAdhFilm2x3"/>
            <rMaterial name="pixfwdMaterials:Pix_Fwd_AdhFilm"/>
        </LogicalPart>
        <LogicalPart name="PixelForwardBacking2x3" category="unspecified">
            <rSolid name="PixelForwardBacking2x3"/>
            <rMaterial name="materials:Silicon"/>
        </LogicalPart>
        <LogicalPart name="PixelForwardChoTherm2x3" category="unspecified">
            <rSolid name="PixelForwardChoTherm2x3"/>
            <rMaterial name="pixfwdMaterials:Pix_Fwd_AgEpoxy"/>
        </LogicalPart>
    </LogicalPartSection>
    <PosPartSection label="All">
        <!-- Sensor -->
        <PosPart copyNumber="1">
            <rParent name="PixelForwardSensor2x3"/>
            <rChild name="PixelForwardActive2x3"/>
        </PosPart>
        <PosPart copyNumber="1">
            <rParent name="PixelForwardPlaquette2x3Up"/>
            <rChild name="PixelForwardSensor2x3"/>
            <Translation x="[AnchorX]" y="[AnchorY]" z="[pixfwdPlaq:SensorZ]"/>
            <rRotation name="pixfwdPlaq:Z90"/>
        </PosPart>
        <PosPart copyNumber="2">
            <rParent name="PixelForwardPlaquette2x3Down"/>
            <rChild name="PixelForwardSensor2x3"/>
            <Translation x="[AnchorX]" y="[AnchorY]" z="[pixfwdPlaq:SensorZ]"/>
            <rRotation name="pixfwdPlaq:Z270"/>
        </PosPart>
        <!-- Passive part -->
        <PosPart copyNumber="1">
            <rParent name="PixelForwardPlaquette2x3Up"/>
            <rChild name="PixelForwardPassive2x3"/>
            <Translation x="0.*mm" y="0.*mm" z="[pixfwdPlaq:PassiveZ]"/>
        </PosPart>
        <PosPart copyNumber="2">
            <rParent name="PixelForwardPlaquette2x3Down"/>
            <rChild name="PixelForwardPassive2x3"/>
            <Translation x="0.*mm" y="0.*mm" z="[pixfwdPlaq:PassiveZ]"/>
        </PosPart>
        <PosPart copyNumber="1">
            <rParent name="PixelForwardPassive2x3"/>
            <rChild name="PixelForwardFlexCircuit2x3"/>
            <Translation x="0." y="0." z="[pixfwdPlaq:FlexCircuitZ]"/>
        </PosPart>
        <PosPart copyNumber="1">
            <rParent name="PixelForwardPassive2x3"/>
            <rChild name="PixelForwardAdhFilm2x3"/>
            <Translation x="0." y="0." z="[pixfwdPlaq:AdhFilmZ]"/>
        </PosPart>
        <PosPart copyNumber="1">
            <rParent name="PixelForwardPassive2x3"/>
            <rChild name="PixelForwardBacking2x3"/>
            <Translation x="0." y="0." z="[pixfwdPlaq:BackingZ]"/>
        </PosPart>
        <PosPart copyNumber="1">
            <rParent name="PixelForwardPassive2x3"/>
            <rChild name="PixelForwardChoTherm2x3"/>
            <Translation x="0." y="0." z="[pixfwdPlaq:ChoThermZ]"/>
        </PosPart>
        <!-- Readout chips in the passive part -->
        <PosPart copyNumber="8">
            <rParent name="PixelForwardPassive2x3"/>
            <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/>
            <Translation x="[PlaquetteW]/2.-[ROChipX_TopRight]-[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_TopRight]-[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/>
        </PosPart>
        <PosPart copyNumber="9">
            <rParent name="PixelForwardPassive2x3"/>
            <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/>
            <Translation x="[PlaquetteW]/2.-[ROChipX_TopRight]-[pixfwdPlaq:ROChipSpaceW]-[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_TopRight]-[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/>
        </PosPart>
        <PosPart copyNumber="10">
            <rParent name="PixelForwardPassive2x3"/>
            <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/>
            <Translation x="[PlaquetteW]/2.-[ROChipX_TopRight]-2.*[pixfwdPlaq:ROChipSpaceW]-[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_TopRight]-[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/>
        </PosPart>
        <PosPart copyNumber="11">
            <rParent name="PixelForwardPassive2x3"/>
            <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/>
            <Translation x="[PlaquetteW]/2.-[ROChipX_BottomLeft]+[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_BottomLeft]+[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/>
        </PosPart>
        <PosPart copyNumber="12">
            <rParent name="PixelForwardPassive2x3"/>
            <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/>
            <Translation x="[PlaquetteW]/2.-[ROChipX_BottomLeft]+[pixfwdPlaq:ROChipSpaceW]+[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_BottomLeft]+[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/>
        </PosPart>
        <PosPart copyNumber="13">
            <rParent name="PixelForwardPassive2x3"/>
            <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/>
            <Translation x="[PlaquetteW]/2.-[ROChipX_BottomLeft]+2.*[pixfwdPlaq:ROChipSpaceW]+[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_BottomLeft]+[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/>
        </PosPart>
    </PosPartSection>
</DDDefinition>