Skip to content
Snippets Groups Projects
vertex_tracker.xml 15.8 KiB
Newer Older
  • Learn to ignore specific revisions
  • <?xml version="1.0" encoding="UTF-8"?>
    <lccdd>
      <define>
    
        <comment>
          THis value probably can live in the file that includes this one.
        </comment>
    
        <constant name="ITS3Thickness"       value="40*um"/>
    
    Shujie Li's avatar
    Shujie Li committed
       <constant name="TrackerCarbon_thickness"         value="0.12*mm"/> 
        <constant name="TrackerEndcapAluminum_thickness" value="0.15*mm"/> 
    
        <documentation>
          #### Vertex Tracker Barrel Parameters
    
    - The sensor modules are 2 half-cylinders.
    - There are 2 sensitive layers
    - Each sensor has a thickness is 40um
    - There is an outer shell for structural support 300um thick.
    - The ID of this shell is set (arbitrarily) to 10 cm.
    
          ##### Sensor layers
    
    Currently there are 2 sensor layers. Each is composed of 2 half-cylinders modules with only 40um of silicon thickness.
    
          ##### Support shell
    
    Simple carbon fiber support shell.
    
        </documentation>
    
        <constant name="VertexBarrel_length"            value="VertexTrackerBarrel_length"/>
        <constant name="VertexBarrelLayer_length"       value="VertexBarrel_length - 1*mm"/>
        <constant name="VertexBarrelMod_length"         value="VertexBarrel_length - 2*mm"/>
    
        <constant name="VertexBarrelSensor_thickness"   value="ITS3Thickness"/>
        <constant name="VertexBarrelLayer_thickness"    value="0.2*cm"/>
        <constant name="VertexBarrelMod_thickness"      value="0.1*cm"/>
        <constant name="VertexBarrelMod1_rmin"          value="3.4*cm"/>
        <constant name="VertexBarrelMod2_rmin"          value="5.7*cm"/>
        <constant name="VertexBarrelLayer_rmin1"        value="VertexBarrelMod1_rmin - VertexBarrelLayer_thickness/2.0"/>
        <constant name="VertexBarrelLayer_rmin2"        value="VertexBarrelMod2_rmin - VertexBarrelLayer_thickness/2.0"/>
        <constant name="VertexBarrelLayer_rmax1"        value="VertexBarrelLayer_rmin1 + VertexBarrelLayer_thickness"/>
        <constant name="VertexBarrelLayer_rmax2"        value="VertexBarrelLayer_rmin2 + VertexBarrelLayer_thickness"/>
    
    
        <comment> 
          "Support" is to "shell" like "layer" is to "module", and is need for the flat stave barrel implementation.
        </comment>
        <constant name="VertexBarrelShell_rmin"         value="10.0*cm"/>
    
        <constant name="VertexBarrelShell_thickness"    value="300*um"/>
        <constant name="VertexBarrelShell_rmax"         value="VertexBarrelShell_rmin + VertexBarrelShell_thickness"/>
    
        <constant name="VertexBarrelShell_length"       value="VertexBarrelLayer_length-VertexBarrelShell_thickness"/>
    
        <constant name="VertexBarrelSupport_thickness"  value="1.0*cm"/>
        <constant name="VertexBarrelSupport_rmin"       value="VertexBarrelShell_rmin-VertexBarrelSupport_thickness/2.0"/>
        <constant name="VertexBarrelSupport_rmax"       value="VertexBarrelSupport_rmin + VertexBarrelSupport_thickness"/>
        <constant name="VertexBarrelSupport_length"     value="VertexBarrelLayer_length"/>
    
        <constant name="VertexTrackerEndcapN_zmin"      value="25*cm"/>
        <constant name="VertexTrackerEndcapP_zmin"      value="25*cm"/>
    
    
        <constant name="VertexEndcap_NLayers"           value="1"/>
        <constant name="VertexTrackerEndcap_delta"      value="(VertexTrackerEndcapP_zmax - VertexTrackerEndcapP_zmin)/VertexEndcap_NLayers"/>
    
        <constant name="VertexEndcapLayer_dz"           value="2*cm"/>
        <constant name="VertexEndcapLayer_thickness"    value="min(3*cm,VertexEndcapLayer_dz-0.5*cm)"/>
    
        <constant name="VertexEndcap_NModules" value="12"/>
        <constant name="VertexEndcapModOpeningAngle"    value="360.0/VertexEndcap_NModules*degree"/>
    
        <constant name="VertexEndcapMod1_x1"            value="2.0*VertexTrackerEndcapP_rmin*sin(VertexEndcapModOpeningAngle/2.0)"/>
        <constant name="VertexEndcapMod1_x2"            value="2.0*VertexTrackerEndcapP_rmax*sin(VertexEndcapModOpeningAngle/2.0)"/>
        <constant name="VertexEndcapMod1_y"             value="VertexTrackerEndcapP_rmax*cos(VertexEndcapModOpeningAngle/2.0) - VertexTrackerEndcapP_rmin"/>
    
        <comment> cone connecting vertex barrel to endcap </comment>
        <!-- <constant name="VertexEndcapCone_zmax"       value="VertexEndcapShell_zmin-0.2*cm"/> -->
        <constant name="VertexSupportCarbon_thickness"       value="2*mm"/>
    
        <constant name="VertexEndcapCone_zmin"       value="VertexBarrelLayer_length/2.0 + 0.1*cm"/>
        <constant name="VertexEndcapCone_zmax"       value="VertexTrackerEndcapN_zmin    - 0.1*cm"/>
        <constant name="VertexEndcapCone_rmin1"      value="VertexEndcapCone_zmin * 36.26/49"/>
        <!-- <constant name="VertexEndcapCone_rmin1"      value="TrackerEndcapInner_rmax1"/> -->
        <constant name="VertexEndcapCone_rmin2"      value="VertexTrackerEndcapP_rmax"/>
        <constant name="VertexEndcapConeService_rmin1"      value="VertexEndcapCone_rmin1+VertexSupportCarbon_thickness+0.1*mm"/>
        <constant name="VertexEndcapConeService_rmin2"      value="VertexEndcapCone_rmin2+VertexSupportCarbon_thickness+0.1*mm"/>
        <constant name="VertexEndcapConeService_thickness"      value="0.6*mm"/>
        <constant name="VertexEndcapCone_length"     value="VertexEndcapCone_zmax - VertexEndcapCone_zmin"/>
    
    
    
        <comment>
          Extra parameters to approximate a cylinder as a set of skinny staves
          due to ACTS limitations.
        </comment>
          <constant name="VertexBarrelStave_count"       value="128"/>
          <constant name="VertexBarrelStave1_width"      value="2*VertexBarrelMod1_rmin * tan(180*degree/VertexBarrelStave_count)"/>
          <constant name="VertexBarrelStave2_width"      value="2*VertexBarrelMod2_rmin * tan(180*degree/VertexBarrelStave_count)"/>
    
          <constant name="VertexBarrelShellStave_width"  value="2*VertexBarrelShell_rmin * tan(180*degree/VertexBarrelStave_count)"/>
    
    
      <display>
      </display>
    
      <detectors>
    
          id="VertexBarrel_ID"
          name="VertexBarrel"
    
          type="athena_VertexBarrel"
    
          readout="VertexBarrelHits"
          insideTrackingVolume="true">
    
          <dimensions
            rmin="VertexBarrelLayer_rmin1"
    
            rmax="VertexBarrelSupport_rmax"
            length="VertexBarrel_length" />
    
          <comment>Vertex Barrel Modules</comment>
          <module name="Module1" vis="VertexLayerVis">
    
            <module_component name="ITS3"
                              material="Silicon" 
                              sensitive="true"
                              width="VertexBarrelStave1_width" 
                              length="VertexBarrelMod_length"
                              thickness="VertexBarrelSensor_thickness" 
                              vis="VertexLayerVis" />
    
          <module name="Module2" vis="VertexLayerVis">
    
            <module_component name="ITS3"
                              material="Silicon" 
                              sensitive="true"
                              width="VertexBarrelStave2_width" 
                              length="VertexBarrelMod_length"
                              thickness="VertexBarrelSensor_thickness" 
                              vis="VertexLayerVis" />
    
          <module name="SupportShell" vis="VertexSupportVis">
    
            <module_component name="CF Shell"
                              material="CarbonFiber" 
                              sensitive="true"
                              width="VertexBarrelShellStave_width" 
    
                              length="VertexBarrelShell_length"
    
    Shujie Li's avatar
    Shujie Li committed
                              thickness="VertexBarrelShell_thickness" 
    
    Sylvester Joosten's avatar
    Sylvester Joosten committed
                              vis="VertexSupportVis" />
    
          </module>
          <comment> Layers composed of many arrayed modules  </comment>
    
          <layer module="Module1" id="1" vis="VertexLayerVis">
            <barrel_envelope
              inner_r="VertexBarrelLayer_rmin1"
              outer_r="VertexBarrelLayer_rmax1"
    
              z_length="VertexBarrelLayer_length" />
    
            <comment>
              phi0     : Starting phi of first module.
              phi_tilt : Phi tilt of a module.
              rc       : Radius of the module center.
              nphi     : Number of modules in phi.
              rphi_dr  : The delta radius of every other module.
              z0       : Z position of first module in phi.
              nz       : Number of modules to place in z.
              dr       : Radial displacement parameter, of every other module.
            </comment>
    
            <rphi_layout phi_tilt="0.0*degree" nphi="VertexBarrelStave_count" phi0="0.0" rc="VertexBarrelMod1_rmin" dr="0.0 * mm"/>
    
            <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
          </layer>
          <layer module="Module2" id="2" vis="VertexLayerVis">
    
            <barrel_envelope
    
              inner_r="VertexBarrelLayer_rmin2"
              outer_r="VertexBarrelLayer_rmax2"
    
              z_length="VertexBarrelLayer_length" />
    
            <rphi_layout phi_tilt="0.0*degree" nphi="VertexBarrelStave_count" phi0="0.0" rc="VertexBarrelMod2_rmin" dr="0.0 * mm"/>
    
            <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
          </layer>
    
          <layer module="SupportShell" id="3" vis="VertexSupportVis">
    
            <barrel_envelope
    
              inner_r="VertexBarrelSupport_rmin"
              outer_r="VertexBarrelSupport_rmax"
              z_length="VertexBarrelSupport_length" />
    
            <rphi_layout phi_tilt="0.0*degree" nphi="VertexBarrelStave_count" phi0="0.0" rc="VertexBarrelShell_rmin" 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_TrapEndcapTracker"
    
          readout="VertexEndcapHits"
    
    Sylvester Joosten's avatar
    Sylvester Joosten committed
          vis="TrackerVis"
    
          reflect="false">
    
    
          <support  material="CarbonFiber" name="sup_cone" vis="TrackerSupportVis">
            <shape type="Cone" 
              rmin1="VertexEndcapCone_rmin1" rmax1="VertexEndcapCone_rmin1+VertexSupportCarbon_thickness"
              rmin2="VertexEndcapCone_rmin2" rmax2="VertexEndcapCone_rmin2+VertexSupportCarbon_thickness" z="VertexEndcapCone_length/2.0"/>
            <position x="0*cm"  y="0*cm"   z="(VertexEndcapCone_zmin+VertexEndcapCone_zmax)/2.0"/>
          </support>
          <support  material="Aluminum" name="sup_cone_service" vis="TrackerSupportVis">
            <shape type="Cone" 
              rmin1="VertexEndcapConeService_rmin1" rmax1="VertexEndcapConeService_rmin1+VertexEndcapConeService_thickness"
              rmin2="VertexEndcapConeService_rmin2" rmax2="VertexEndcapConeService_rmin2+VertexEndcapConeService_thickness" z="VertexEndcapCone_length/2.0"/>
            <position x="0*cm"  y="0*cm"   z="(VertexEndcapCone_zmin+VertexEndcapCone_zmax)/2.0"/>
          </support>
    
    
    
          <module name="Module1" vis="AnlProcess_Blue">
            <trd x1="VertexEndcapMod1_x1/2.0" x2="VertexEndcapMod1_x2/2.0" z="VertexEndcapMod1_y/2"/>
    
            <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/>
    
    Shujie Li's avatar
    Shujie Li committed
           <module_component thickness="TrackerEndcapAluminum_thickness"  material="Aluminum"/>
            <module_component thickness="TrackerCarbon_thickness"          material="CarbonFiber"/>
    
          </module>
          <layer id="1">
    
    Sylvester Joosten's avatar
    Sylvester Joosten committed
            <envelope  vis="TrackerVis"
    
              rmin="VertexTrackerEndcapP_rmin"
              rmax="VertexTrackerEndcapP_rmax"
    
    Whitney Armstrong's avatar
    Whitney Armstrong committed
              length="VertexEndcapLayer_thickness"
              zstart="VertexTrackerEndcapP_zmin + VertexEndcapLayer_dz/2.0" />
    
    Sylvester Joosten's avatar
    Sylvester Joosten committed
            <ring vis="TrackerVis"
    
              r="VertexTrackerEndcapP_rmin+VertexEndcapMod1_y/2.0"
    
    Whitney Armstrong's avatar
    Whitney Armstrong committed
              zstart="0.0"
    
              nmodules="12" dz="2.5 * mm" module="Module1" />
    
          </layer>
        </detector>
    
    
        <detector
          id="VertexEndcapN_ID"
          name="VertexEndcapN"
    
          type="athena_TrapEndcapTracker"
    
          readout="VertexEndcapHits"
    
    Sylvester Joosten's avatar
    Sylvester Joosten committed
          vis="TrackerVis"
    
          reflect="true">
    
    
          <support  material="CarbonFiber" name="sup_cone" vis="TrackerSupportVis">
            <shape type="Cone" 
              rmin2="VertexEndcapCone_rmin1" rmax2="VertexEndcapCone_rmin1+VertexSupportCarbon_thickness"
              rmin1="VertexEndcapCone_rmin2" rmax1="VertexEndcapCone_rmin2+VertexSupportCarbon_thickness" z="VertexEndcapCone_length/2.0"/>
            <position x="0*cm"  y="0*cm"   z="-1.0*(VertexEndcapCone_zmin+VertexEndcapCone_zmax)/2.0"/>
          </support>
          <support  material="Aluminum" name="sup_cone_service" vis="TrackerSupportVis">
            <shape type="Cone" 
              rmin2="VertexEndcapConeService_rmin1" rmax2="VertexEndcapConeService_rmin1+VertexEndcapConeService_thickness"
              rmin1="VertexEndcapConeService_rmin2" rmax1="VertexEndcapConeService_rmin2+VertexEndcapConeService_thickness" z="VertexEndcapCone_length/2.0"/>
            <position x="0*cm"  y="0*cm"   z="-1.0*(VertexEndcapCone_zmin+VertexEndcapCone_zmax)/2.0"/>
          </support>
    
    
          <module name="Module1" vis="AnlProcess_Blue">
            <trd x1="VertexEndcapMod1_x1/2.0" x2="VertexEndcapMod1_x2/2.0" z="VertexEndcapMod1_y/2"/>
    
            <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/>
    
    Shujie Li's avatar
    Shujie Li committed
           <module_component thickness="TrackerEndcapAluminum_thickness"  material="Aluminum"/>
            <module_component thickness="TrackerCarbon_thickness"          material="CarbonFiber"/>
    
          </module>
          <layer id="1">
    
    Sylvester Joosten's avatar
    Sylvester Joosten committed
            <envelope  vis="TrackerVis"
    
              rmin="VertexTrackerEndcapN_rmin"
              rmax="VertexTrackerEndcapN_rmax"
    
    Whitney Armstrong's avatar
    Whitney Armstrong committed
              length="VertexEndcapLayer_thickness"
              zstart="VertexTrackerEndcapN_zmin + VertexEndcapLayer_dz/2.0" />
    
    Sylvester Joosten's avatar
    Sylvester Joosten committed
            <ring vis="TrackerVis"
    
              r="VertexTrackerEndcapN_rmin+VertexEndcapMod1_y/2.0"
    
    Whitney Armstrong's avatar
    Whitney Armstrong committed
              zstart="0.0"
    
              nmodules="12" dz="2.5 * mm" module="Module1" />
    
        <detector id="VertexEndcapP_ID" 
          name="VertexEndcapP" 
          type="athena_SimpleDiskTracker"
    
          readout="VertexEndcapHits"
    
          insideTrackingVolume="true" 
    
    Sylvester Joosten's avatar
    Sylvester Joosten committed
          reflect="false" vis="TrackerVis">
    
          <position x="0" y="0" z="0.0*mm"/>
    
          <layer id="1" vis="AnlOrange"
    
            inner_z="VertexTrackerEndcapP_zmin + 0.5*VertexTrackerEndcap_delta" 
            inner_r="VertexTrackerEndcapP_rmin-3*mm" 
    
            outer_r="VertexTrackerEndcapP_rmax">
    
            <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
    
            <slice material="Silicon" thickness="1.0*mm" vis="AnlOrange"  sensitive="true"/>
            <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
    
          <layer id="2" vis="AnlOrange"
    
            inner_z="VertexTrackerEndcapP_zmin + 1.5*VertexTrackerEndcap_delta" 
    
            inner_r="VertexTrackerEndcapP_rmin" 
            outer_r="VertexTrackerEndcapP_rmax">
    
            <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
    
            <slice material="Silicon" thickness="1.0*mm" vis="AnlOrange"  sensitive="true"/>
            <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
    
        <detector id="VertexEndcapN_ID" 
          name="VertexEndcapN" 
    
          type="athena_SimpleDiskTracker"
          readout="VertexEndcapHits"
          insideTrackingVolume="true"
    
    Sylvester Joosten's avatar
    Sylvester Joosten committed
          reflect="true" vis="TrackerVis">
    
          <position x="0" y="0" z="-0.0*mm-1.0e-9*mm"/>
    
          <layer id="1" vis="AnlOrange"
    
            inner_z="VertexTrackerEndcapN_zmin + 0.5*VertexTrackerEndcap_delta" 
    
            inner_r="VertexTrackerEndcapN_rmin" 
            outer_r="VertexTrackerEndcapN_rmax">
    
            <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
    
            <slice material="Silicon" thickness="1.0*mm" vis="AnlOrange"  sensitive="true"/>
            <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
    
          <layer id="2" vis="AnlOrange"
    
            inner_z="VertexTrackerEndcapN_zmin + 1.5*VertexTrackerEndcap_delta" 
    
            inner_r="VertexTrackerEndcapN_rmin" 
            outer_r="VertexTrackerEndcapN_rmax">
    
            <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
    
            <slice material="Silicon" thickness="1.0*mm" vis="AnlOrange"  sensitive="true"/>
            <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
    
          </layer>
        </detector>
    
      </detectors>
    
      <readouts>
    
        <readout name="VertexBarrelHits">
    
          <segmentation type="CartesianGridXY" grid_size_x="0.010*mm" grid_size_y="0.010*mm" />
    
          <id>system:8,layer:4,module:12,sensor:2,x:32:-16,y:-16</id>
    
        <readout name="VertexEndcapHits">
    
          <segmentation type="CartesianGridXZ" grid_size_x="0.010*mm" grid_size_z="0.010*mm" />
    
          <id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
    
        </readout>
      </readouts>
    
    
    </lccdd>