Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • EIC/detectors/athena
  • zwzhao/athena
  • FernandoTA/athena
  • palspeic/athena
4 results
Show changes
Showing
with 3275 additions and 1787 deletions
<lccdd>
<comment> Central Barrel Tracker Silicon </comment>
<define>
<constant name="cb_CTD_rmin" value="SiliconTrackerInnerRadius + 70.0 * mm"/>
<constant name="cb_CTD_rmax" value="SiliconTrackerOuterRadius"/>
<constant name="cb_CTD_zmax" value="SiliconTrackerOuterBarrel_zmax"/>
<constant name="cb_CTD_length" value="SiliconTrackerOuterBarrelLength"/>
<comment> Si layer opiton </comment>
<constant name="cb_CTD_Si_gap" value="5.0 * cm"/>
<constant name="cb_CTD_Si_layer" value="15"/>
</define>
<limits>
</limits>
<regions>
</regions>
<display>
</display>
<detectors>
<detector id="cb_CTD_Si_ID" name="cb_CTD_Si" type="cb_CTD_Si" readout="cb_CTD_Si_Hits" vis="cb_CTDVis" insideTrackingVloume="true">
<dimensions rmin="cb_CTD_rmin" rmax="cb_CTD_rmax" length="cb_CTD_length" zmax="cb_CTD_zmax" gap="cb_CTD_Si_gap"/>
<layer repeat="cb_CTD_Si_layer" vis="cb_CTD_Si_layerVis">
<slice name="Silicon_slice" material="Si" sensitive="true"/>
</layer>
</detector>
</detectors>
<readouts>
<readout name="cb_CTD_Si_Hits">
<segmentation type="CartesianGridXY" grid_size_x="1.0*mm" grid_size_y="1.0*mm" />
<id>system:8,barrel:3,layer:4,x:32:-16,y:-16</id>
</readout>
</readouts>
<plugins>
</plugins>
<fields>
</fields>
</lccdd>
<lccdd>
<comment>Initial implementation of the Athena Detector
DIRC (ported from g4e). Currently constructed around
a fixed radius of 83.65cm (between the uRWEL layers).
TODO: this needs to be properly parameterized.
</comment>
<define>
<constant name="cb_DIRC_length" value="DIRCLength"/>
<constant name="cb_DIRC_rmin" value="82.00*cm"/>
<constant name="cb_DIRC_rmax" value="88.00*cm"/>
</define>
<limits>
</limits>
<regions>
</regions>
<display>
</display>
<detectors>
<detector id="BarrelDIRC_ID" name="cb_DIRC" type="cb_DIRC" readout="DIRCHits" vis="AnlTeal">
<dimensions rmin="cb_DIRC_rmin" rmax="cb_DIRC_rmax" length="cb_DIRC_length"/>
<position x="0" y="0" z="DIRCOffset"/>
</detector>
</detectors>
<readouts>
<readout name="DIRCHits">
<segmentation type="CartesianGridXY" grid_size_x="3.0*mm" grid_size_y="3.0*mm" />
<id>system:8,barrel:3,module:12,x:32:-16,y:-16</id>
</readout>
</readouts>
<plugins>
</plugins>
<fields>
</fields>
</lccdd>
<lccdd>
<comment>Central Barrel Solenoid</comment>
<define>
</define>
<limits>
</limits>
<regions>
</regions>
<display>
</display>
<!-- Define detector -->
<detectors>
<comment>
Central Barrel Solenoid Magnet
</comment>
<detector id="Solenoid_ID" name="cb_Solenoid" type="cb_Solenoid" insideTrackingVolume="false" vis="cb_SolenoidVis">
<material name="Vacuum"/> <!-- G4_Galactic -->
<dimensions rmin="Solenoid_rmin" rmax="Solenoid_rmax" z="b_Solenoid_z" delta="cb_Solenoid_shift"/>
</detector>
</detectors>
<plugins>
</plugins>
<!-- TODO: Define field using field map-->
<fields>
</fields>
</lccdd>
<lccdd>
<comment> Central Barrel Vertex Detector </comment>
<define>
<constant name="cb_VTX_Barrel_rmin" value="VertexTrackerInnerRadius"/>
<constant name="cb_VTX_Barrel_rmax" value="VertexTrackerOuterRadius"/>
<constant name="cb_VTX_Barrel_length" value="VertexTrackerOuterBarrelLength"/>
<constant name="cb_VTX_Barrel_x_pos" value="0.0*mm"/>
<constant name="cb_VTX_Barrel_y_pos" value="0.0*mm"/>
<constant name="cb_VTX_Barrel_z_pos" value="0.0*mm"/>
<constant name="cb_VTX_Barrel_layer" value="6"/>
<comment> Need to cleanup and be more consistent with naming here </comment>
<constant name="VertexTrackerBarrelLength" value="400.0*mm"/>
<constant name="SiVertexEndcapP_rmin" value="VertexTrackerInnerRadius"/>
<constant name="SiVertexEndcapP_rmax" value="VertexTrackerOuterRadius"/>
<constant name="SiVertexEndcapP_zmin" value="VertexTrackerBarrelLength + 5*mm"/>
<constant name="SiVertexEndcapN_rmin" value="VertexTrackerInnerRadius"/>
<constant name="SiVertexEndcapN_rmax" value="VertexTrackerOuterRadius"/>
<constant name="SiVertexEndcapN_zmin" value="VertexTrackerBarrelLength + 5*mm"/>
<constant name="SiVertexEndcap_NLayers" value="5"/>
<constant name="SiVertexEndcapP_zmax" value="VertexTrackingRegion_length/2 - SiVertexEndcapN_zmin"/>
<constant name="SiVertexEndcapP_zmax" value="VertexTrackingRegion_length/2 - SiVertexEndcapN_zmin"/>
<constant name="SiVertexEndcap_delta" value="(SiVertexEndcapP_zmax - SiVertexEndcapP_zmin)/SiVertexEndcap_NLayers"/>
</define>
<limits>
</limits>
<regions>
</regions>
<display>
</display>
<detectors>
<detector id="SiVertexSubAssembly_ID"
name="SiVertexSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="SiTrackerSubAssemblyVis">
<composite name="SiVertexEndcapN"/>
<composite name="SiVertexEndcapP"/>
<composite name="cb_VTX_Barrel"/>
</detector>
<detector id="cb_VTX_Barrel_ID" name="cb_VTX_Barrel" type="cb_VTX_Barrel" readout="cb_VTX_Barrel_Hits" vis="cb_VTX_BarrelVis" insideTrackingVloume="true">
<dimensions rmin="cb_VTX_Barrel_rmin" rmax="cb_VTX_Barrel_rmax" length="cb_VTX_Barrel_length"/>
<position x="cb_VTX_Barrel_x_pos" y="cb_VTX_Barrel_y_pos" z="cb_VTX_Barrel_z_pos"/>
<layer repeat="cb_VTX_Barrel_layer" vis="cb_VTX_Barrel_layerVis">
<slice name="Silicon_slice" material="Si" sensitive="true"/>
</layer>
</detector>
<detector id="SiVertexEndcapP_ID" name="SiVertexEndcapP" type="ref_DiskTracker"
insideTrackingVolume="true" reflect="false" vis="AnlRed">
<position x="0" y="0" z="0"/>
<layer id="1" vis="AnlOrange"
inner_z="SiVertexEndcapP_zmin + 0*SiVertexEndcap_delta"
inner_r="SiVertexEndcapP_rmin"
outer_r="SiVertexEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
<layer id="2" vis="AnlOrange"
inner_z="SiVertexEndcapP_zmin + 1*SiVertexEndcap_delta"
inner_r="SiVertexEndcapP_rmin"
outer_r="SiVertexEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
<layer id="3" vis="AnlOrange"
inner_z="SiVertexEndcapP_zmin + 2*SiVertexEndcap_delta"
inner_r="SiVertexEndcapP_rmin"
outer_r="SiVertexEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
<layer id="4" vis="AnlOrange"
inner_z="SiVertexEndcapP_zmin + 3*SiVertexEndcap_delta"
inner_r="SiVertexEndcapP_rmin"
outer_r="SiVertexEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
<layer id="5" vis="AnlOrange"
inner_z="SiVertexEndcapP_zmin + 4*SiVertexEndcap_delta"
inner_r="SiVertexEndcapP_rmin"
outer_r="SiVertexEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
</detector>
<detector id="SiVertexEndcapN_ID" name="SiVertexEndcapN" type="ref_DiskTracker"
insideTrackingVolume="true" reflect="true" vis="AnlRed">
<position x="0" y="0" z="0"/>
<layer id="1" vis="AnlOrange"
inner_z="SiVertexEndcapN_zmin + 0*SiVertexEndcap_delta"
inner_r="SiVertexEndcapN_rmin"
outer_r="SiVertexEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
<layer id="2" vis="AnlOrange"
inner_z="SiVertexEndcapN_zmin + 1*SiVertexEndcap_delta"
inner_r="SiVertexEndcapN_rmin"
outer_r="SiVertexEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
<layer id="3" vis="AnlOrange"
inner_z="SiVertexEndcapN_zmin + 2*SiVertexEndcap_delta"
inner_r="SiVertexEndcapN_rmin"
outer_r="SiVertexEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
<layer id="4" vis="AnlOrange"
inner_z="SiVertexEndcapN_zmin + 3*SiVertexEndcap_delta"
inner_r="SiVertexEndcapN_rmin"
outer_r="SiVertexEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
<layer id="5" vis="AnlOrange"
inner_z="SiVertexEndcapN_zmin + 4*SiVertexEndcap_delta"
inner_r="SiVertexEndcapN_rmin"
outer_r="SiVertexEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
</detector>
</detectors>
<readouts>
<readout name="cb_VTX_Barrel_Hits">
<segmentation type="CartesianGridXY" grid_size_x="1.0*mm" grid_size_y="1.0*mm" />
<id>system:8,barrel:3,layer:4,module:8,x:32:-16,y:-16</id>
</readout>
</readouts>
<plugins>
</plugins>
<fields>
</fields>
</lccdd>
<lccdd>
<comment> Electron endcap GEM tracking </comment>
<define>
<comment>
------------------
ce_GEM Parameters
------------------
</comment>
<constant name="ce_GEM_rmin" value="10.0 * cm"/> <comment> temporary number. Need beampipe radius </comment>
<!--<constant name="ce_GEM_rmin" value="0.0 * cm"/>-->
<constant name="ce_GEM_rmax" value="HcalEndcapN_rmin + 0.0 * cm"/> <comment> temporary number to avoid overlaps </comment>
<!--<constant name="ce_GEM_rmax" value="45.0 * cm + 50.0 * cm"/>-->
<constant name="ce_GEM_length" value="30.0 * cm"/>
<constant name="ce_GEM_x_pos" value="0.0 * cm"/>
<constant name="ce_GEM_y_pos" value="0.0 * cm"/>
<!--<constant name="ce_GEM_z_pos" value="-Solenoid_length/2.0 + ce_GEM_length/2.0"/>-->
<constant name="ce_GEM_z_pos" value="-EcalEndcapN_zmin - CrystalBox_z_length - ce_GEM_length/2.0"/>
<constant name="ce_GEM_layer" value="8"/>
<constant name="ce_GEM_layer_thickness" value="1.0 * cm"/>
</define>
<limits>
</limits>
<regions>
</regions>
<display>
</display>
<detectors>
<detector id="ce_GEM_ID" name="ce_GEM" type="ce_GEM" readout="ce_GEM_Hits" vis="ce_GEMVis" insideTrackingVloume="true">
<dimensions rmin="ce_GEM_rmin" rmax="ce_GEM_rmax" length="ce_GEM_length"/>
<position x="ce_GEM_x_pos" y="ce_GEM_y_pos" z="ce_GEM_z_pos"/>
<layer repeat="ce_GEM_layer" vis="ce_GEM_layerVis">
<slice name="Ar10CO2_slice" material="Ar10CO2" thickness="ce_GEM_layer_thickness" sensitive="true"/>
</layer>
</detector>
</detectors>
<readouts>
<readout name="ce_GEM_Hits">
<segmentation type="CartesianGridXY" grid_size_x="1.0*mm" grid_size_y="1.0*mm" />
<id>system:8,layer:8,x:32:-16,y:-16</id>
</readout>
</readouts>
<plugins>
</plugins>
<fields>
</fields>
</lccdd>
<lccdd>
<define>
<constant name="CrystalEndcap_rmin" value="VertexTrackerBarrel_rmin"/>
<constant name="CrystalEndcap_rmax" value="EcalEndcapN_rmin"/>
<constant name="CrystalBox_x_length" value="20.0*mm"/>
<constant name="CrystalBox_y_length" value="20.0*mm"/>
<constant name="CrystalBox_z_length" value="200.0*mm"/>
<constant name="CrystalBox_offset" value="0.000001*mm"/>
<constant name="CrystalEndcap_x_pos" value="0.0*m"/>
<constant name="CrystalEndcap_y_pos" value="0.0*m"/>
<constant name="CrystalEndcap_z_pos" value="-EcalEndcapN_zmin"/>
</define>
<limits>
</limits>
<regions>
</regions>
<!-- Common Generic visualization attributes -->
<comment>Common Generic visualization attributes</comment>
<display>
</display>
<detectors>
<comment>
-------------------------------
Backwards Endcap EM Calorimeter
-------------------------------
A layered EM calorimeter with tungsten and silicon (or scintillator) strips
</comment>
<detector id="ECalEndcapN_ID"
name="EcalEndcapN"
type="refdet_PolyhedraEndcapCalorimeter2"
reflect="true"
readout="EcalEndcapHits"
vis="EcalEndcapVis"
calorimeterType="EM_ENDCAP">
<position x="0" y="0" z="0"/>
<dimensions
numsides="CaloSides"
zmin="EcalEndcapN_zmin"
rmin="EcalEndcapN_rmin"
rmax="EcalBarrel_rmin " />
<layer repeat="EcalEndcapNLayer1_NRepeat">
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
<layer repeat="EcalEndcapNLayer2_NRepeat">
<slice material="TungstenDens24" thickness="EcalThinTungstenThickness"/>
<slice material="Air" thickness="EcalAir2Thickness"/>
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
<layer repeat="EcalEndcapNLayer3_NRepeat">
<slice material="TungstenDens24" thickness="EcalThickTungstenThickness"/>
<slice material="Air" thickness="EcalAir2Thickness"/>
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
</detector>
<comment>
-------------------
Crystal Calorimeter
-------------------
Backward (negative pseudorapidity) angle electron detector
</comment>
<detector
id="CrystalEndcap_ID"
name="ElectronECAL"
type="CrystalCalorimeterEndcap"
readout="CrystalEcalHits"
vis="GreenVis">
<position x="CrystalEndcap_x_pos" y="CrystalEndcap_y_pos" z="CrystalEndcap_z_pos" />
<dimensions rmin="CrystalEndcap_rmin" rmax="CrystalEndcap_rmax" x="CrystalBox_x_length" y="CrystalBox_y_length" z="CrystalBox_z_length" delta="CrystalBox_offset"/>
</detector>
</detectors>
<!-- Definition of the readout segmentation/definition -->
<readouts>
<!--
<readout name="PlaneTrackerHits">
<segmentation type="CartesianGridXY" grid_size_x="20.0*mm" grid_size_y="20.0*mm" />
<id>system:5,module:4,x:32:-16,y:-16</id>
</readout>
-->
<readout name="CrystalEcalHits">
<segmentation type="CartesianGridXY" grid_size_x="CrystalBox_x_length" grid_size_y="CrystalBox_y_length" />
<id>system:8,sector:4,module:20,x:48:-8,y:-8</id>
</readout>
<readout name="EcalEndcapNHits">
<segmentation type="CartesianGridXY" grid_size_x="3.5 * mm" grid_size_y="3.5 * mm"/>
<id>system:8,barrel:3,module:4,layer:6,slice:5,x:32:-16,y:-16</id>
</readout>
</readouts>
<plugins>
</plugins>
</lccdd>
This diff is collapsed.
This diff is collapsed.
<lccdd>
<define>
<constant name="EcalEndcapP_rmax" value="Solenoid_rmax "/>
</define>
<limits>
</limits>
<regions>
</regions>
<!-- Common Generic visualization attributes -->
<comment>Common Generic visualization attributes</comment>
<display>
</display>
<detectors>
<comment>
------------------------------------------
Forward (Positive Z) Endcap EM Calorimeter
------------------------------------------
A layered EM calorimeter with tungsten and silicon (or scintillator) strips
</comment>
<detector id="ECalEndcapP_ID"
name="EcalEndcapP"
reflect="false"
type="refdet_PolyhedraEndcapCalorimeter2"
readout="EcalEndcapPHits"
vis="EcalEndcapVis"
calorimeterType="EM_ENDCAP" >
<position x="0" y="0" z="-0"/>
<dimensions
numsides="CaloSides"
zmin="EcalEndcapP_zmin"
rmin="EcalEndcapP_rmin"
rmax="EcalEndcapP_rmax " />
<layer repeat="EcalEndcapPLayer1_NRepeat">
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
<layer repeat="EcalEndcapPLayer2_NRepeat">
<slice material="TungstenDens24" thickness="EcalThinTungstenThickness"/>
<slice material="Air" thickness="EcalAir2Thickness"/>
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
<layer repeat="EcalEndcapPLayer3_NRepeat">
<slice material="TungstenDens24" thickness="EcalThickTungstenThickness"/>
<slice material="Air" thickness="EcalAir2Thickness"/>
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
</detector>
</detectors>
<!-- Definition of the readout segmentation/definition -->
<readouts>
<readout name="EcalEndcapPHits">
<segmentation type="CartesianGridXY" grid_size_x="3.5 * mm" grid_size_y="3.5 * mm"/>
<id>system:8,barrel:3,module:4,layer:6,slice:5,x:32:-16,y:-16</id>
</readout>
</readouts>
<plugins>
</plugins>
</lccdd>
<display>
<comment>
Colors tweaked to be displayable by geoViewer
</comment>
<vis name="AnlGreen" alpha="1" r="100/256" g="200/256" b="0/256"/>
<vis name="AnlViolet" alpha="1" r="100/256" g="0/256" b="150/256"/>
<vis name="AnlProcess_Blue" alpha="1" r="0/256" g="100/256" b="202/256"/>
<vis name="AnlOrange" alpha="1" r="255/256" g="121/256" b="0"/>
<vis name="AnlRed" alpha="1" r="205/256" g="45/256 " b="45/256"/>
<vis name="AnlGold" alpha="1" r="248/256" g="188/256" b="0/256"/>
<vis name="AnlBlue" alpha="1" r="0/256" g="96/256" b="156/256"/>
<vis name="AnlTeal" alpha="1" r="0/256" g="161/256" b="156/256"/>
<vis name="AnlGray" alpha="1" r="102/256" g="102/256" b="102/256"/>
<vis name="AnlLight_Gray" alpha="1" r="209/256" g="209/256" b="209/256"/>
<vis name="AnlLightGray" ref="AnlLight_Gray" />
<!-- off-white (or white) don't work! -->
<!--vis name="AnlOff_White" alpha="1" r="242/256" g="242/256" b="242/256"/-->
<vis name="AnlDarkRed" alpha="1" r="161/256" g="45/256" b="45/256"/>
<vis name="AnlDarkGreen" alpha="1" r="0" g="110/256" b="50/256"/>
<vis name="AnlDarkBlue" alpha="1" r="45/256" g="45/256" b="110/256"/>
<vis name="AnlDelta_Red" ref="AnlDarkRed"/>
<vis name="AnlDelta_Green" ref="AnlDarkGreen"/>
<vis name="AnlDelta_Blue" ref="AnlDarkBlue"/>
</display>
This diff is collapsed.
<lccdd>
<comment> Simplified All Silicon Tracker based on:
https://github.com/reynier0611/g4lblvtx/blob/master/macros/auxiliary_studies/simplified_geometry/Fun4All_G4_simplified_v2.C
With some added info on ITS3 chip from
https://indico.bnl.gov/event/10677/contributions/45591/attachments/33204/53254/20210318-IR2%40EIC-SVT.pdf
To be used as standin until we get more detailed specs from the working group on the tracker.
Note that most details are replaced with
Note: initial implementation with hard-coded values,
TODO: add parametrization
</comment>
<define>
<constant name="VtxRadius1" value="3.3*cm"/>
<constant name="VtxRadius2" value="5.7*cm"/>
<constant name="VtxLength" value="30*cm"/>
<constant name="VtxThickness" value="0.05/100*9.37*cm"/>
<constant name="VtxServiceThickness" value="VtxThickness-ITS3Thickness"/>
<constant name="TrkBarrelThickness" value="0.55/100*9.37*cm"/>
<constant name="TrkBarrelServiceThickness" value="TrkBarrelThickness-ITS3Thickness"/>
<constant name="TrkBarrel1Radius1" value="21.0*cm"/>
<constant name="TrkBarrel1Radius2" value="22.68*cm"/>
<constant name="TrkBarrel1Length1" value="54.0*cm"/>
<constant name="TrkBarrel1Length2" value="60.0*cm"/>
<constant name="TrkBarrel2Radius1" value="39.3*cm"/>
<constant name="TrkBarrel2Radius2" value="43.23*cm"/>
<constant name="TrkBarrel2Length1" value="105.0*cm"/>
<constant name="TrkBarrel2Length2" value="114.0*cm"/>
<constant name="TrkDiskThickness" value="0.25/100*9.37*cm"/>
<constant name="TrkDiskServiceThickness" value="TrkDiskThickness-ITS3Thickness"/>
<constant name="TrkNumOuterDisks" value="3"/>
<constant name="TrkInnerDisk1_z" value="25.0*cm"/>
<constant name="TrkInnerDisk2_z" value="49.0*cm"/>
<constant name="TrkOuterDisk_zmin" value="73.0*cm"/>
<constant name="TrkOuterDisk_zmax" value="121.0*cm"/>
<constant name="TrkOuterDisk_deltaz" value="(TrkOuterDisk_zmax-TrkOuterDisk_zmin)/(TrkNumOuterDisks-1)" />
<constant name="TrkInnerDisk1_rmin" value="0.05025461*TrkInnerDisk1_z-0.180808*cm"/>
<constant name="TrkInnerDisk2_rmin" value="0.05025461*TrkInnerDisk2_z-0.180808*cm"/>
<constant name="TrkOuterDisk_rmin" value="3.18*cm"/>
<constant name="TrkInnerDisk1_rmax" value="18.5*TrkInnerDisk1_z/TrkInnerDisk1_z*cm"/>
<constant name="TrkInnerDisk2_rmax" value="18.5*TrkInnerDisk2_z/TrkInnerDisk1_z*cm"/>
<constant name="TrkOuterDisk_rmax" value="43.23*cm"/>
</define>
<limits>
</limits>
<regions>
</regions>
<display>
</display>
<detectors>
<detector id="AllSiliconVtx_ID" name="AllSiliconVtx" type="refdet_CylinderTrackerBarrel" readout="ITS3Hits">
<module name="Module1" vis="AnlGreen">
<module_envelope rmin="VtxRadius1" thickness="VtxThickness" length="VtxLength" phi="360*degree" />
<module_component rmin="VtxRadius1" thickness="ITS3Thickness" material="Silicon" name="ITS3" sensitive="true" />
<module_component rmin="VtxRadius1 + ITS3Thickness" thickness="VtxServiceThickness" material="Silicon" name="VtxServices" />
</module>
<module name="Module2" vis="AnlGreen">
<module_envelope rmin="VtxRadius2" thickness="VtxThickness" length="VtxLength" phi="360*degree" />
<module_component rmin="VtxRadius2" thickness="ITS3Thickness" material="Silicon" name="ITS3" sensitive="true" />
<module_component rmin="VtxRadius2 + ITS3Thickness" thickness="VtxServiceThickness" material="Silicon" name="VtxServices" />
</module>
<layer module="Module1" id="1" vis="AnlGreen">
<barrel_envelope inner_r="VtxRadius1" outer_r="VtxRadius1 + VtxThickness" z_length="VtxLength" />
<rphi_layout phi_tilt="0.0" nphi="1" phi0="0.0" rc="VtxRadius1" dr="0.0*mm" />
<z_layout dr="0.0*mm" z0="0" nz="1" />
</layer>
<layer module="Module2" id="2" vis="AnlGreen">
<barrel_envelope inner_r="VtxRadius2" outer_r="VtxRadius2 + VtxThickness" z_length="VtxLength" />
<rphi_layout phi_tilt="0.0" nphi="1" phi0="0.0" rc="VtxRadius2" dr="0.0*mm" />
<z_layout dr="0.0*mm" z0="0" nz="1" />
</layer>
</detector>
<detector id="AllSiliconTrk1Assembly_ID" name="AllSiliconTrkAssembly1" type="DD4hep_SubdetectorAssembly" vis="AnlGreen">
<composite name="AllSiliconTrkDisk1N" />
<composite name="AllSiliconTrkDisk1P" />
<composite name="AllSiliconBarrel1" />
</detector>
<detector id="AllSiliconTrkBarrel1_ID" name="AllSiliconTrkBarrel1" type="refdet_CylinderTrackerBarrel" readout="ITS3Hits">
<module name="Module1" id="1" vis="AnlGreen">
<module_envelope rmin="TrkBarrel1Radius1" thickness="TrkBarrelThickness" length="TrkBarrel1Length1" phi="360*degree" />
<module_component rmin="TrkBarrel1Radius1" thickness="ITS3Thickness" material="Silicon" name="ITS3" sensitive="true" />
<module_component rmin="TrkBarrel1Radius1 + ITS3Thickness" thickness="TrkBarrelServiceThickness" material="Silicon" name="TrkBarrel1Services" />
</module>
<module name="Module2" id="2" vis="AnlGreen">
<module_envelope rmin="TrkBarrel1Radius2" thickness="TrkBarrelThickness" length="TrkBarrel1Length2" phi="360*degree" />
<module_component rmin="TrkBarrel1Radius2" thickness="ITS3Thickness" material="Silicon" name="ITS3" sensitive="true" />
<module_component rmin="TrkBarrel1Radius2 + ITS3Thickness" thickness="TrkBarrelServiceThickness" material="Silicon" name="TrkBarrel1Services" />
</module>
<layer module="Module1" id="1" vis="AnlGreen">
<barrel_envelope inner_r="TrkBarrel1Radius1" outer_r="TrkBarrel1Radius1 + TrkBarrelThickness" z_length="TrkBarrel1Length1" />
<rphi_layout phi_tilt="0.0" nphi="1" phi0="0.0" rc="TrkBarrel1Radius1" dr="0.0*mm" />
<z_layout dr="0.0*mm" z0="0" nz="1" />
</layer>
<layer module="Module2" id="2" vis="AnlGreen">
<barrel_envelope inner_r="TrkBarrel1Radius2" outer_r="TrkBarrel1Radius2 + TrkBarrelThickness" z_length="TrkBarrel1Length2" />
<rphi_layout phi_tilt="0.0" nphi="1" phi0="0.0" rc="TrkBarrel1Radius2" dr="0.0*mm" />
<z_layout dr="0.0*mm" z0="0" nz="1" />
</layer>
</detector>
<detector id="AllSiliconTrkDisk1N_ID" name="AllSiliconTrkDisk1N" type="ref_DiskTracker" insideTrackingVolume="true" reflect="true" vis="kAnlGreen">
<position x="0" y="0" z="0"/>
<layer id="1" vis="AnlGreen"
inner_z="TrkInnerDisk1_z"
inner_r="TrkInnerDisk1_rmin"
outer_r="TrkInnerDisk1_rmax">
<slice material="Silicon" thickness="TrkDiskThickness" vis="AnlGreen" />
</layer>
</detector>
<detector id="AllSiliconTrkDisk1P_ID" name="AllSiliconTrkDisk1P" type="ref_DiskTracker" insideTrackingVolume="true" reflect="false" vis="kAnlGreen">
<position x="0" y="0" z="0"/>
<layer id="1" vis="AnlGreen"
inner_z="TrkInnerDisk1_z"
inner_r="TrkInnerDisk1_rmin"
outer_r="TrkInnerDisk1_rmax">
<slice material="Silicon" thickness="TrkDiskThickness" vis="AnlGreen" />
</layer>
</detector>
<detector id="AllSiliconTrk2Assembly_ID" name="AllSiliconTrkAssembly2" type="DD4hep_SubdetectorAssembly" vis="AnlGreen">
<composite name="AllSiliconTrkDisk2N" />
<composite name="AllSiliconTrkDisk2P" />
<composite name="AllSiliconBarrel2" />
</detector>
<detector id="AllSiliconTrkBarrel2_ID" name="AllSiliconTrkBarrel2" type="refdet_CylinderTrackerBarrel" readout="ITS3Hits">
<module name="Module1" id="1" vis="AnlGreen">
<module_envelope rmin="TrkBarrel2Radius1" thickness="TrkBarrelThickness" length="TrkBarrel2Length1" phi="360*degree" />
<module_component rmin="TrkBarrel2Radius1" thickness="ITS3Thickness" material="Silicon" name="ITS3" sensitive="true" />
<module_component rmin="TrkBarrel2Radius1 + ITS3Thickness" thickness="TrkBarrelServiceThickness" material="Silicon" name="TrkBarrel2Services" />
</module>
<module name="Module2" id="2" vis="AnlGreen">
<module_envelope rmin="TrkBarrel2Radius2" thickness="TrkBarrelThickness" length="TrkBarrel2Length2" phi="360*degree" />
<module_component rmin="TrkBarrel2Radius2" thickness="ITS3Thickness" material="Silicon" name="ITS3" sensitive="true" />
<module_component rmin="TrkBarrel2Radius2 + ITS3Thickness" thickness="TrkBarrelServiceThickness" material="Silicon" name="TrkBarrel2Services" />
</module>
<layer module="Module1" id="1" vis="AnlGreen">
<barrel_envelope inner_r="TrkBarrel2Radius1" outer_r="TrkBarrel2Radius1 + TrkBarrelThickness" z_length="TrkBarrel2Length1" />
<rphi_layout phi_tilt="0.0" nphi="1" phi0="0.0" rc="TrkBarrel2Radius1" dr="0.0*mm" />
<z_layout dr="0.0*mm" z0="0" nz="1" />
</layer>
<layer module="Module2" id="2" vis="AnlGreen">
<barrel_envelope inner_r="TrkBarrel2Radius2" outer_r="TrkBarrel2Radius2 + TrkBarrelThickness" z_length="TrkBarrel2Length2" />
<rphi_layout phi_tilt="0.0" nphi="1" phi0="0.0" rc="TrkBarrel2Radius2" dr="0.0*mm" />
<z_layout dr="0.0*mm" z0="0" nz="1" />
</layer>
</detector>
<detector id="AllSiliconTrkDisk2N_ID" name="AllSiliconTrkDisk2N" type="ref_DiskTracker" insideTrackingVolume="true" reflect="true" vis="kAnlGreen">
<position x="0" y="0" z="0"/>
<layer id="1" vis="AnlGreen"
inner_z="TrkInnerDisk2_z"
inner_r="TrkInnerDisk2_rmin"
outer_r="TrkInnerDisk2_rmax">
<!--slice material="Silicon" thickness="ITS3Thickness" vis="AnlGreen" sensitive="true"/-->
<!--slice material="Silicon" thickness="TrkDiskServiceThickness" vis="AnlGreen" /-->
<slice material="Silicon" thickness="TrkDiskThickness" vis="AnlGreen" />
</layer>
</detector>
<detector id="AllSiliconTrkDisk2P_ID" name="AllSiliconTrkDisk2P" type="ref_DiskTracker" insideTrackingVolume="true" reflect="false" vis="kAnlGreen">
<position x="0" y="0" z="0"/>
<layer id="1" vis="AnlGreen"
inner_z="TrkInnerDisk2_z"
inner_r="TrkInnerDisk2_rmin"
outer_r="TrkInnerDisk2_rmax">
<!--slice material="Silicon" thickness="ITS3Thickness" vis="AnlGreen" sensitive="true"/-->
<!--slice material="Silicon" thickness="TrkDiskServiceThickness" vis="AnlGreen" /-->
<slice material="Silicon" thickness="TrkDiskThickness" vis="AnlGreen" />
</layer>
</detector>
<detector id="AllSiliconTrkOuterN_ID" name="AllSiliconTrkOuterN" type="ref_DiskTracker" insideTrackingVolume="true" reflect="true" vis="kAnlGreen">
<position x="0" y="0" z="0"/>
<layer id="1" vis="AnlGreen"
inner_z="TrkOuterDisk_zmin"
inner_r="TrkOuterDisk_rmin"
outer_r="TrkOuterDisk_rmax">
<slice material="Silicon" thickness="TrkDiskThickness" vis="AnlGreen" />
</layer>
<layer id="2" vis="AnlGreen"
inner_z="TrkOuterDisk_zmin + 1 * TrkOuterDisk_deltaz"
inner_r="TrkOuterDisk_rmin"
outer_r="TrkOuterDisk_rmax">
<!--slice material="Silicon" thickness="ITS3Thickness" vis="AnlGreen" sensitive="true"/-->
<!--slice material="Silicon" thickness="TrkDiskServiceThickness" vis="AnlGreen" /-->
<slice material="Silicon" thickness="TrkDiskThickness" vis="AnlGreen" />
</layer>
<layer id="3" vis="AnlGreen"
inner_z="TrkOuterDisk_zmin + 2 * TrkOuterDisk_deltaz"
inner_r="TrkOuterDisk_rmin"
outer_r="TrkOuterDisk_rmax">
<!--slice material="Silicon" thickness="ITS3Thickness" vis="AnlGreen" sensitive="true"/-->
<!--slice material="Silicon" thickness="TrkDiskServiceThickness" vis="AnlGreen" /-->
<slice material="Silicon" thickness="TrkDiskThickness" vis="AnlGreen" />
</layer>
</detector>
<detector id="AllSiliconTrkOuterP_ID" name="AllSiliconTrkOuterP" type="ref_DiskTracker" insideTrackingVolume="true" reflect="false" vis="kAnlGreen">
<position x="0" y="0" z="0"/>
<layer id="1" vis="AnlGreen"
inner_z="TrkOuterDisk_zmin"
inner_r="TrkOuterDisk_rmin"
outer_r="TrkOuterDisk_rmax">
<slice material="Silicon" thickness="TrkDiskThickness" vis="AnlGreen" />
</layer>
<layer id="2" vis="AnlGreen"
inner_z="TrkOuterDisk_zmin + 1 * TrkOuterDisk_deltaz"
inner_r="TrkOuterDisk_rmin"
outer_r="TrkOuterDisk_rmax">
<!--slice material="Silicon" thickness="ITS3Thickness" vis="AnlGreen" sensitive="true"/-->
<!--slice material="Silicon" thickness="TrkDiskServiceThickness" vis="AnlGreen" /-->
<slice material="Silicon" thickness="TrkDiskThickness" vis="AnlGreen" />
</layer>
<layer id="3" vis="AnlGreen"
inner_z="TrkOuterDisk_zmin + 2 * TrkOuterDisk_deltaz"
inner_r="TrkOuterDisk_rmin"
outer_r="TrkOuterDisk_rmax">
<!--slice material="Silicon" thickness="ITS3Thickness" vis="AnlGreen" sensitive="true"/-->
<!--slice material="Silicon" thickness="TrkDiskServiceThickness" vis="AnlGreen" /-->
<slice material="Silicon" thickness="TrkDiskThickness" vis="AnlGreen" />
</layer>
</detector>
</detectors>
<readouts>
<readout name="ITS3Hits">
<segmentation type="CartesianGridXY" grid_size_x="0.010*mm" grid_size_y="0.010*mm" />
<id>system:8,barrel:2,layer:4,module:7,sensor:2,x:30:-17,y:-17</id>
</readout>
</readouts>
<plugins>
</plugins>
<fields>
</fields>
</lccdd>
<lccdd>
<comment>
DIRC consists of 16 (default) identical modules making a barrel.
Each DIRC module consists of:
_______
[ | \
[ | \
[FD|Prizm|Lens|--------bars+glue-----|mirror]
Main constants to control DIRC global geometry:
- DIRC_length
- DIRC_offset
- DIRC_rmin
- DIRCBox_count (16 full dirc, 1 - a single module)
- DIRC_rotation (allows to flip the DIRC)
When DIRC_length is set, it affects bars length (all other lengths are fixed)
The width of each DIRC module is derived from DIRCPrism_width
</comment>
<define>
<constant name="DIRCFake_rmin" value="BarrelTracking_rmax-11*cm"/>
<constant name="DIRC_rotation" value="pi" comment="Allows DIRC flip"/>
<!-- <constant name="cb_DIRC_length" value="DIRCLength"/> -->
<!-- CLEANUP THIS if not sure. This is from the initial implementation
<constant name="DIRC_length" value="285.500*cm"/>
<constant name="DIRCFake_rmin" value="82.00*cm"/>-->
<!-- Prism -->
<constant name="DIRCPrism_width" value="360*mm"/>
<constant name="DIRCPrism_length" value="300*mm"/>
<constant name="DIRCPrism_short_edge" value="50*mm"/>
<constant name="DIRCPrism_angle" value="32*deg"/>
<constant name="DIRCPrism_long_edge" value="DIRCPrism_short_edge + DIRCPrism_length * tan(DIRCPrism_angle)"/>
<constant name="DIRCPrism_height" value="DIRCPrism_long_edge"/>
<!-- DIRC length -->
<constant name="DIRCMain_length" value="DIRC_length"/>
<constant name="DIRCFake_offset" value="DIRC_offset+15*cm"/>
<!-- Box - main DIRC modules -->
<constant name="DIRCBox_count" value="16" comment="Number of DIRC boxes per... DIRC. 16 - default"/>
<constant name="DIRCBox_width" value="DIRCPrism_width"/>
<!-- Mirror -->
<constant name="DIRCMirror_height" value="20 * mm"/>
<constant name="DIRCMirror_width" value="DIRCPrism_width"/>
<constant name="DIRCMirror_thickness" value="1 * mm"/>
<!-- Lens -->
<constant name="DIRCLens_height" value="DIRCPrism_long_edge"/>
<constant name="DIRCLens_width" value="DIRCPrism_width"/>
<constant name="DIRCLens_thickness" value="12 * mm"/>
<constant name="DIRCLens_r1" value="33 * mm"/>
<constant name="DIRCLens_r2" value="24 * mm"/>
<constant name="DIRCLens_shight" value="25 * mm" comment="Is 'shight' from UK urban dictionary???"/>
<!-- FD (Foto detectors?) -->
<constant name="DIRCFd_height" value="DIRCPrism_height"/>
<constant name="DIRCFd_width" value="DIRCPrism_width"/>
<constant name="DIRCFd_thickness" value="1*mm"/>
<!-- Bar - Each DIRC box consists of N "bars" -->
<!-- BarAssembly - Bars + Glue -->
<constant name="DIRCBarAssm_length" value="DIRCMain_length - DIRCPrism_length - DIRCMirror_thickness - DIRCLens_thickness - DIRCFd_thickness" comment="Length of bars+glue assembly"/>
<constant name="DIRCBar_count" value="11" comment="Number of bars per box"/>
<constant name="DIRCBar_gap" value="0.15 * mm"/>
<constant name="DIRCBar_height" value="17 * mm"/>
<constant name="DIRCBar_width" value="(DIRCPrism_width - (DIRCBar_count - 1) * DIRCBar_gap) / DIRCBar_count"/>
<constant name="DIRCGlue_thickness" value="0.05 * mm"/>
<constant name="DIRCBar_length" value="(DIRCBarAssm_length-4*DIRCGlue_thickness)/4"/>
<!-- dirc outer volume -->
<comment>
RMax is calculated according to "rectangle inside ring" problem solution
https://math.stackexchange.com/questions/4222684/calculate-rectangle-inside-ring-parameters/4222691#4222691
</comment>
<constant name="DIRCFake_rmax" value="sqrt( (DIRCFake_rmin+DIRCPrism_height)^2 + 0.25*(DIRCPrism_height)^2 )"/>
</define>
<materials>
<comment>
Only non optical material variants are here.
See optical_materials.xml for optical ones
-
</comment>
<material name="Epotek">
<D type="density" value="1.2" unit="g/cm3"/>
<composite n="5" ref="H"/>
<composite n="3" ref="C"/>
<composite n="2" ref="O"/>
</material>
<material name="Nlak33a">
<D type="density" value="4.220" unit="g/cm3"/>
<composite n="1" ref="Si"/>
<composite n="2" ref="O"/>
</material>
</materials>
<limits>
</limits>
<regions>
</regions>
<display>
<vis name="DIRCTube" ref="AnlTeal" alpha="0.1" visible="true" showDaughters="true" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCBox" ref="AnlLight_Gray" alpha="0.1" visible="true" showDaughters="true" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCLens1" ref="AnlProcess_Blue" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCLens2" ref="AnlProcess_Blue" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCLens3" ref="AnlTeal" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCBar" ref="AnlTeal" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCGlue" ref="AnlViolet" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCMirror" ref="AnlGray" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCPrism" ref="AnlTeal" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCFd" ref="AnlRed" visible="true" showDaughters="false" />
</display>
<detectors>
<detector id="BarrelDIRC_ID" name="cb_DIRC" type="cb_DIRC" readout="DIRCBarHits" vis="DIRCTube">
<dimensions rmin="DIRCFake_rmin" rmax="DIRCFake_rmax" length="DIRCMain_length" radius="DIRCRadius" dx="DIRCBars_DX" dy="DIRCBars_DY" number="DIRCNum" deltaphi="DIRCDPhi"/>
<position x="0" y="0" z="DIRCFake_offset"/>
<rotation theta="DIRC_rotation"/>
<module name="DircBox" R="DIRCRadius" repeat="DIRCBox_count" width="DIRCPrism_width + 1*mm" height="DIRCPrism_height*2" length="DIRCBarAssm_length + 550*mm" vis="DIRCBox">
<!-- Mirror (at the end of the module) -->
<mirror
height="DIRCMirror_height"
width="DIRCMirror_width"
thickness="DIRCMirror_thickness"
material="Aluminum"
vis="DIRCMirror"
/>
<!-- DIRC Bar -->
<!-- TODO parametrize as bar+glue assembly with layers -->
<bar
height="DIRCBar_height"
width="DIRCBar_width"
length="DIRCBar_length"
repeat="DIRCBar_count"
gap="DIRCBar_gap"
material="Quartz"
vis="DIRCBar"
/>
<glue thickness="DIRCGlue_thickness" material="Epotek" vis="DIRCGlue"/>
<!-- lens -->
<lens
height="DIRCLens_height"
width="DIRCLens_width"
thickness="DIRCLens_thickness"
r1="DIRCLens_r1"
r2="DIRCLens_r2"
/>
<prism/> <!-- TODO parametrize here -->
<fd
height="DIRCFd_height"
width="DIRCFd_width"
thickness="DIRCFd_thickness"
vis="DIRCFd"
material="Quartz"
/>
</module>
</detector>
</detectors>
<readouts>
<readout name="DIRCBarHits">
<segmentation type="CartesianGridXY" grid_size_x="3.0*mm" grid_size_y="3.0*mm" />
<id>system:8,module:8,section:8,bar:8,x:32:-16,y:-16</id>
</readout>
</readouts>
<plugins>
</plugins>
<fields>
</fields>
</lccdd>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<lccdd>
<display>
</display>
<define>
</define>
<documentation level="10">
### Ecal configuration
</documentation>
<!--include ref="ecal_forward_scfi.xml"/-->
<include ref="ecal_forward_homogenous.xml"/>
<include ref="ecal_backward_hybrid.xml"/>
<include ref="ecal_barrel_interlayers.xml"/>
</lccdd>
<lccdd>
<define>
<comment>
Transition area.
The idea behind this parametrization is that:
one glass module with its wrap is always
a size of 4 crystal modules with its wraps.
Then the transition area (where glass meets crystals) has no gaps
+----------------+----------------+
| +----+ +----+ | +----------+ |
| | | | | | | | |
| +----+ +----+ | | | |
| +----+ +----+ | | | |
| | | | | | | | |
| +----+ +----+ | +----------+ |
+----------------+----------------+
crystal glass
This implies that:
GlassModule_wrap = 2*CrystalModule_wrap
GlassModule_sx = 2*CrystalModule_sx
GlassModule_sy = 2*CrystalModule_sy
</comment>
<constant name="CrystalModule_width" value="20.00*mm"/>
<constant name="CrystalModule_length" value="200.00*mm"/>
<constant name="CrystalModule_wrap" value="0.50*mm"/>
<constant name="CrystalModule_z0" value="0.0*cm"/>
<constant name="GlassModule_width" value="2*CrystalModule_width"/>
<constant name="GlassModule_length" value="55.00*cm"/>
<constant name="GlassModule_wrap" value="2*CrystalModule_wrap"/>
<constant name="GlassModule_z0" value="0.0*cm"/>
<constant name="EcalEndcapNIonCutout_dphi" value="30*degree"/>
<constant name="EcalEndcapN_thickness" value="GlassModule_length"/>
<constant name="EcalEndcapN_z0" value="-EcalEndcapN_zmin - EcalEndcapN_thickness/2"/>
<constant name="EcalEndcapNCrystal_rmax" value="40*cm"/>
<constant name="CrystalModule_distance" value="CrystalModule_width + CrystalModule_wrap"/>
<constant name="GlassModule_distance" value="GlassModule_width + GlassModule_wrap"/>
</define>
<display>
<vis name="HybridEcalOuterVis" alpha="0.5" r= "0.3" g="0.3" b="0.3" showDaughters="true" visible="true"/>
</display>
<detectors>
<documentation level="10">
#### Backwards Endcap EM Calorimeter
Backwards Endcap EM Calorimeter, placements generated by script
</documentation>
<detector id="ECalEndcapN_ID" name="EcalEndcapN" type="HybridCalorimeter" readout="EcalEndcapNHits">
<position x="0" y="0" z="EcalEndcapN_z0"/>
<rotation x="0" y="0" z="0"/>
</detector>
</detectors>
<readouts>
<comment>Effectively no segmentation, the segmentation is used to provide cell dimension info</comment>
<readout name="EcalEndcapNHits">
<segmentation type="MultiSegmentation" key="sector">
<segmentation name="CrystalSeg" key_value="1" type="CartesianGridXY" grid_size_x="CrystalModule_distance" grid_size_y="CrystalModule_distance"/>
<segmentation name="GlassSeg" key_value="2" type="CartesianGridXY" grid_size_x="GlassModule_distance" grid_size_y="GlassModule_distance"/>
</segmentation>
<id>system:8,sector:4,module:20,x:32:-16,y:-16</id>
</readout>
</readouts>
</lccdd>
This diff is collapsed.