Skip to content
Snippets Groups Projects
vertex_tracker.xml 6.5 KiB
Newer Older
  • Learn to ignore specific revisions
  • <?xml version="1.0" encoding="UTF-8"?>
    <lccdd>
      <define>
    
    
        <constant name="ITS3Thickness"                   value="0.03*mm"/>
        <constant name="VertexBarrel_rmin1"              value="3.3*cm"/>
        <constant name="VertexBarrel_rmin2"              value="5.7*cm"/>
    
        <constant name="VertexBarrelModule_maxThickness" value="VertexBarrel_rmin2 - VertexBarrel_rmin1"/>
    
        <constant name="VertexBarrel_length"             value="VertexTrackerBarrel_length"/>
        <constant name="VertexBarrel_thickness"          value="0.05/100*9.37*cm"/>
        <constant name="VertexBarrelService_thickness"   value="VertexBarrel_thickness-ITS3Thickness"/>
        <constant name="VertexBarrel_rmin"               value="VertexBarrel_rmin1"/>
        <constant name="VertexBarrel_rmax"               value="VertexBarrel_rmin2+VertexBarrelModule_maxThickness"/>
        <constant name="VertexBarrelLayer_rOffset"       value="4.0*mm"/>
    
    
        <comment> TODO: These should be computed </comment>
        <constant name="VertexBarrel_NModules1" value="14"/>
        <constant name="VertexBarrel_NModules2" value="24"/>
    
        <constant name="VertexTrackerEndcapP_rmin" value="VertexTrackerInnerRadius"/>
        <constant name="VertexTrackerEndcapP_rmax" value="VertexTrackerOuterRadius"/>
        <constant name="VertexTrackerEndcapP_zmin" value="VertexTrackerBarrel_length + 5*mm"/>
    
        <constant name="VertexTrackerEndcapN_rmin" value="VertexTrackerInnerRadius"/>
        <constant name="VertexTrackerEndcapN_rmax" value="VertexTrackerOuterRadius"/>
        <constant name="VertexTrackerEndcapN_zmin" value="VertexTrackerBarrelLength + 5*mm"/>
        -->
        <constant name="VertexTrackerEndcapN_zmin" value="VertexTrackerBarrel_zmax"/>
        <constant name="VertexTrackerEndcapP_zmin" value="VertexTrackerBarrel_zmax"/>
    
        <constant name="VertexEndcap_NLayers" value="2"/>
    
        <constant name="VertexTrackerEndcap_delta" value="(VertexTrackerEndcapP_zmax - VertexTrackerEndcapP_zmin)/VertexEndcap_NLayers"/>
    
        <detector id="VertexSubAssembly_ID" 
          name="VertexSubAssembly" 
    
          type="DD4hep_SubdetectorAssembly" 
    
          vis="TrackerSubAssemblyVis">
    
          <composite name="VertexEndcapN"/>
          <composite name="VertexEndcapP"/> 
    
          <composite name="VertexBarrel"/>
    
        <detector 
          id="VertexBarrel_ID"
          name="VertexBarrel"
          type="athena_VertexBarrel"
          readout="VertexBarrelHits"
          insideTrackingVolume="true">
    
          <dimensions 
            rmin="VertexBarrel_rmin-VertexBarrelLayer_rOffset" 
            rmax="VertexBarrel_rmax-VertexBarrelLayer_rOffset" 
            length="VertexBarrel_length"/>
    
          <comment> Define available modules </comment>
    
          <module name="Module1" vis="PurpleVis">
    
            <frame width="15*mm"  height="10.0*mm" 
              length="VertexBarrel_length" thickness="0.1 * mm" material="CarbonFiber_25percent" vis="BlueGreenVis" />
    
            <module_component name="silicon" 
              width="14.0*mm" length="VertexBarrel_length-0.1*mm" thickness="0.05*mm" material="Silicon" sensitive="true">
    
              <position z="-0.025*mm" y="0*mm"/>
            </module_component>
          </module>
    
          <module name="Module2">
            <frame width="15*mm"  height="10.0*mm" length="VertexBarrel_length" thickness="0.1 * mm" material="CarbonFiber_25percent" vis="BlueGreenVis" />
            <module_component name="silicon" 
              width="14.0*mm" length="VertexBarrel_length-0.1*mm" thickness="0.05*mm" material="Silicon" sensitive="true">
    
              <position z="-0.025*mm" y="0*mm"/>
            </module_component>
          </module>
          <comment> Layers composed of many arrayed modules  </comment>
    
          <layer module="Module1" id="1" vis="VertexVis">
            <barrel_envelope 
              inner_r="VertexBarrel_rmin1-VertexBarrelLayer_rOffset" 
              outer_r="VertexBarrel_rmin2-VertexBarrelLayer_rOffset"
              z_length="VertexBarrel_length"/>
            <rphi_layout phi_tilt="10.0*degree" nphi="VertexBarrel_NModules1" phi0="0.0" rc="VertexBarrel_rmin1" dr="0.0 * mm"/>
    
            <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
          </layer>
    
          <layer module="Module2" id="2" vis="VertexVis">
            <barrel_envelope 
              inner_r="VertexBarrel_rmin2-VertexBarrelLayer_rOffset" 
              outer_r="VertexBarrel_rmax-VertexBarrelLayer_rOffset"
              z_length="VertexBarrel_length"/>
            <rphi_layout phi_tilt="10.0*degree" nphi="VertexBarrel_NModules2" phi0="0.0" rc="VertexBarrel_rmin2" dr="0.0 * mm"/>
    
            <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
          </layer>
        </detector>
    
    
        <detector id="VertexEndcapP_ID" 
          name="VertexEndcapP" 
          type="athena_SimpleDiskTracker"
          insideTrackingVolume="true" 
          reflect="false" vis="AnlRed">
    
          <position x="0" y="0" z="0"/>
    
          <layer id="1" vis="AnlOrange"
    
            inner_z="VertexTrackerEndcapP_zmin + 0*VertexTrackerEndcap_delta" 
            inner_r="VertexTrackerEndcapP_rmin" 
            outer_r="VertexTrackerEndcapP_rmax">
    
            <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
    
          <layer id="2" vis="AnlOrange"
    
            inner_z="VertexTrackerEndcapP_zmin + 1*VertexTrackerEndcap_delta" 
            inner_r="VertexTrackerEndcapP_rmin" 
            outer_r="VertexTrackerEndcapP_rmax">
    
            <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
    
        <detector id="VertexEndcapN_ID" 
          name="VertexEndcapN" 
          type="ref_DiskTracker"
    
          insideTrackingVolume="true" reflect="true" vis="AnlRed">
    
          <position x="0" y="0" z="-1.0e-6*mm"/>
    
          <layer id="1" vis="AnlOrange"
    
            inner_z="VertexTrackerEndcapN_zmin + 0*VertexTrackerEndcap_delta" 
            inner_r="VertexTrackerEndcapN_rmin" 
            outer_r="VertexTrackerEndcapN_rmax">
    
            <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
    
          <layer id="2" vis="AnlOrange"
    
            inner_z="VertexTrackerEndcapN_zmin + 1*VertexTrackerEndcap_delta" 
            inner_r="VertexTrackerEndcapN_rmin" 
            outer_r="VertexTrackerEndcapN_rmax">
    
            <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
    
          </layer>
        </detector>
    
      </detectors>
    
      <readouts>
    
        <readout name="VertexBarrelHits">
          <segmentation type="CartesianGridXY" grid_size_x="0.050*mm" grid_size_y="0.050*mm" />
    
          <id>system:8,barrel:2,layer:4,module:12,sensor:2,x:32:-16,y:-16</id>
        </readout>
    
        <readout name="VertexEndcapHits">
    
          <segmentation type="CartesianGridXY" grid_size_x="0.20*mm" grid_size_y="0.20*mm" />
          <id>system:8,barrel:2,layer:4,module:12,sensor:2,x:32:-16,y:-16</id>
        </readout>
      </readouts>
    
    
    </lccdd>