Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ecal endcap turbine #347

Merged
merged 14 commits into from
Jul 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions FCCee/ALLEGRO/compact/ALLEGRO_o1_v03/ALLEGRO_o1_v03.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@
<include ref="Vertex_IDEA_o1_v01.xml"/> <!-- symbolic link to ../../../IDEA/compact/IDEA_o1_v03/Vertex_IDEA_o1_v01.xml"/>-->
<include ref="DriftChamber_o1_v02.xml"/> <!-- symbolic link to ../../../IDEA/compact/IDEA_o1_v03/DriftChamber_o1_v02.xml -->
<include ref="ECalBarrel_thetamodulemerged.xml"/> <!-- if you remove the ECalBarrel, you also have to remove or update the "GlobalSolenoid" field (it depends on ECAL dimensions) -->
<include ref="ECalEndcaps_coneCryo.xml"/>
<include ref="HCalEndcaps_ThreeParts_TileCal.xml"/>
<include ref="HCalBarrel_TileCal.xml"/>
<include ref="ECalEndcaps_Turbine.xml"/>
<include ref="HCalEndcaps_ThreeParts_TileCal.xml"/>
<include ref="MuonTagger.xml"/>

<fields>
Expand Down
1 change: 1 addition & 0 deletions FCCee/ALLEGRO/compact/ALLEGRO_o1_v03/DectDimensions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@
<constant name="BarECal_dz" value="3100*mm"/>

<!-- LAr ECAL Endcaps -->
<constant name="ECalEndcap_id" value="DetID_ECAL_Endcap"/>
<constant name="ECalEndcap_inner_radius" value="350*mm"/>
<constant name="ECalEndcap_outer_radius" value="2900*mm"/>
<constant name="ECalEndcap_min_z" value="3200*mm"/>
Expand Down
133 changes: 133 additions & 0 deletions FCCee/ALLEGRO/compact/ALLEGRO_o1_v03/ECalEndcaps_Turbine.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
<?xml version="1.0" encoding="UTF-8"?>
<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">

<info name="FCCee_ECalEndcaps_Turbine"
title="Calorimeter endcaps"
author="E.Varnes, J.Rutherfoord, R.Walker"
url="no"
status="development"
version="1.0">
<comment>
Liquid argon EM calorimeter endcap design.
Electromagnetic part (EMEC) includes lead+steel absorber.
Turbine geometry.
</comment>
</info>

<define>
<!-- cryostat -->
<constant name="CryoEMECThicknessFront" value="50*mm"/>
<constant name="CryoEMECThicknessBack" value="100*mm"/>
<constant name="CryoEMECThicknessInner" value="50*mm"/>
<constant name="CryoEMECThicknessOuter" value="100*mm"/>
<constant name="CryoEndcap_front_rmin" value="ECalEndcap_inner_radius"/>
<constant name="CryoEndcap_back_rmin" value="ECalEndcap_inner_radius"/>
<constant name="CryoEndcap_rmax" value="ECalEndcap_outer_radius"/>
<constant name="CryoEndcap_z1" value="ECalEndcap_min_z"/>
<constant name="CryoEndcap_z2" value="ECalEndcap_max_z"/>
<constant name="CryoEndcap_dz" value="(ECalEndcap_max_z - ECalEndcap_min_z)*0.5"/>
<constant name="CryoEndcap_zOffset" value="ECalEndcap_min_z + 0.5*(ECalEndcap_max_z - ECalEndcap_min_z)"/>
<!-- space between the cryostat and calorimeter -->
<constant name="BathThicknessFront" value="10*mm"/>
<constant name="BathThicknessBack" value="40*mm"/>
<constant name="BathThicknessOuter" value="50*mm"/>
<!-- electromegnetic calorimeter: EMEC -->
<constant name="EMEC_z1" value="CryoEndcap_z1 + CryoEMECThicknessFront + BathThicknessFront"/>offset
<constant name="EMEC_z2" value="ECalEndcap_max_z - CryoEMECThicknessBack - BathThicknessBack"/>
<constant name="EMEC_rmin1" value="CryoEndcap_front_rmin + CryoEMECThicknessInner + BathThicknessFront"/>
<constant name="EMEC_rmin2" value="EMEC_rmin1"/>
<constant name="EMEC_rmax" value="ECalEndcap_outer_radius - CryoEMECThicknessOuter - BathThicknessOuter"/>
<!-- LAr thickness: double gap size -->
<constant name="ECalEndcapNumPlanes" value="928"/>
<constant name="ECalEndcapNumCalibLayers" value="10"/>
<constant name="nWheels" value="3" />
<constant name="BladeAngle" value="41*deg" />
<constant name="NobleLiquidGap" value="3.9*mm" />
<constant name="AbsorberBladeThickness" value="2.9*mm" />
<constant name="ElectrodeBladeThickness" value="1.3*mm" />
<!-- total amount of steel in one passive plate: it is divided for the outside layer on top and bottom -->
<constant name="EMEC_steel_thickness" value="0.1*mm"/>
<!-- total amount of glue in one passive plate: it is divided for the outside layer on top and bottom -->
<constant name="EMEC_glue_thickness" value="0.1*mm"/>
</define>

<display>
<vis name="emec_cryo_vis" r="0.6" g="0.6" b="0.5" alpha="1" showDaughters="true" visible="true" drawingStyle="solid" />
<vis name="emec_bath_vis" r="0.6" g="0.4" b="0.5" alpha="1" showDaughters="true" visible="true" drawingStyle="solid" />
<vis name="emec_envelope_vis_vis" r="0.6" g="0.3" b="0" alpha="1" showDaughters="true" visible="true" drawingStyle="solid" />
<vis name="emec_layer_vis" r="0.6" g="0.3" b="0.2" alpha="1" showDaughters="true" visible="true" drawingStyle="solid" />
<vis name="emec_lar_vis" r="0.5" g="0.3" b="0.2" alpha="1" showDaughters="true" visible="true" drawingStyle="solid" />
<vis name="emec_pb_vis" r="0.5" g="0.5" b="0.2" alpha="1" showDaughters="true" visible="true" drawingStyle="solid" />
<vis name="emec_readout_vis" r="0.5" g="0.1" b="0.2" alpha="1" showDaughters="true" visible="true" drawingStyle="solid" />
<vis name="electrode_vis" r="0.5" g="0.0" b="0.0" alpha="1" showDaughters="true" visible="true" drawingStyle="solid" />
</display>


<readouts>
<readout name="ECalEndcapTurbine">
<!-- temporarily use the same segmentation as the barrel ECal, since that works in reco, even though it's not ideal (or maybe not even tenable) for the endcap
<segmentation type="FCCSWGridModuleThetaMerged_k4geo" nModules="928" mergedCells_Theta="1 1 1 1 1 1 1 1 1 1" mergedModules="1 1 1 1 1 1 1 1 1 1" grid_size_theta="0.009817477/4" offset_theta="0.08"/>
<id>system:4,cryo:1,type:3,subtype:3,side:3,wheel:3,layer:8,module:11,theta:10</id>
</readout>
-->
<segmentation type="FCCSWEndcapTurbine_k4geo" offset_rho="42 78.3215 146.82" offset_z="303.5" offset_phi="0.0" offset_theta="0.11242" grid_size_rho="2.016 2.014 2.004" grid_size_z="1.80" />
<id>system:4,cryo:1,type:3,subtype:3,side:-2,wheel:3,layer:8,module:17,rho:8,z:8</id>

<!-- <id>system:4,cryo:1,type:3,subtype:3,side:-2,wheel:3,layer:9,module:14,rho:-10,z:-14</id> -->
</readout> -->
<!--
<readout name="ECalEndcapPhiTheta">
<segmentation type="FCCSWGridModuleThetaMerged_k4geo" mergedCells_Theta="1 1 1 1 " mergedModules="1 1 1 1" grid_size_theta="0.005" offset_theta="-3.14"/>
<id>system:4,cryo:1,type:3,subtype:3,side:1,wheel:3,layer:5,module:14,theta:10</id>
</readout>
<readout name="ECalEndcapPhiEtaReco">
<segmentation type="FCCSWGridPhiEta_k4geo" phi_bins="704" offset_phi="-pi+(pi/704.)" grid_size_eta="0.05" offset_eta="-2.91"/>
<id>system:4,cryo:1,type:3,subtype:3,layer:8,eta:10,phi:10</id>
</readout>
-->
</readouts>

<detectors>
<!-- electromagnetic calorimeter -->
<detector id="ECalEndcap_id" name="EMEC_turbine" type="ECalEndcap_Turbine_o1_v01" readout="ECalEndcapTurbine" vis="emec_envelope_vis" sensitive="true">
<type_flags type=" DetType_CALORIMETER + DetType_ELECTROMAGNETIC + DetType_ENDCAP"/>
<sensitive type="SimpleCalorimeterSD"/>
<!-- <dimensions rmin1="EMEC_rmin1" rmin2="EMEC_rmin2" rmax="EMEC_rmax" dz="(EMEC_z2-EMEC_z1)/2." z_offset="EMEC_z1+(EMEC_z2-EMEC_z1)/2."/> -->
<dimensions rmin1="CryoEndcap_front_rmin" rmin2="CryoEndcap_front_rmin" rmax1="CryoEndcap_rmax" rmax2="CryoEndcap_rmax" dz="(CryoEndcap_z2-CryoEndcap_z1)/2." z_offset="EMEC_z1+(EMEC_z2-EMEC_z1)/2."/>
<calorimeter name="EM_endcap">
<dimensions rmin="EMEC_rmin1" rmax="EMEC_rmax" dz="(EMEC_z2-EMEC_z1)/2." z_offset="EMEC_z1+(EMEC_z2-EMEC_z1)/2."/>
<cryostat name="ECAL_EndCapCryo">
<material name="Aluminum" />
<dimensions rmin1="CryoEndcap_front_rmin" rmin2="CryoEndcap_front_rmin+CryoEMECThicknessInner" rmax1="CryoEndcap_rmax-CryoEMECThicknessOuter" rmax2="CryoEndcap_rmax" dz="(CryoEndcap_z2-CryoEndcap_z1-CryoEMECThicknessFront-CryoEMECThicknessBack)/2."/>
<front sensitive="false"/> <!-- inner wall of the cryostat -->
<side sensitive="false"/> <!-- both sides of the cryostat -->
<back sensitive="false"/> <!-- outer wall of the cryostat -->
</cryostat>
<supportTube name="supportTube" nWheels="nWheels" thickness="1.0*cm" sensitive="false">
<material name="CarbonFiber" />
</supportTube>
<turbineBlade name="turbineBlade" angle="BladeAngle" decreaseAnglePerWheel="false" sameNUnitCells="false" nUnitCells="144 272 512" nUnitCellsLeastCommonMultiple="78336">
<absorberBlade name="absorberBlade" thickness="AbsorberBladeThickness" scaleThickness="true" thicknessScaleFactor="1.0" sensitive="false">
<material name="Lead" />
</absorberBlade>
<glue thickness="EMEC_glue_thickness" sensitive="false">
<material name="lArCaloGlue"/>
</glue>
<cladding thickness="EMEC_steel_thickness" sensitive="false">
<material name="lArCaloSteel"/>
</cladding>
<electrodeBlade name="electrodeBlade" thickness="ElectrodeBladeThickness" sensitive="false" vis="electrode_vis">
<material name="PCB" />
</electrodeBlade>
<nobleLiquidGap name="nobleLiquidGap" gap="NobleLiquidGap" sensitive="true">
<material name="LAr" />
</nobleLiquidGap>
</turbineBlade>
</calorimeter>
</detector>

</detectors>

</lccdd>
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
<?xml version="1.0" ?><lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">

<info name="FCCee_ECalEndcaps_Turbine" title="Calorimeter endcaps" author="E.Varnes, J.Rutherfoord, R.Walker" url="no" status="development" version="1.0">
<comment>
Liquid argon EM calorimeter endcap design.
Electromagnetic part (EMEC) includes lead+steel absorber.
Turbine geometry.
</comment>
</info>

<define>
<!-- cryostat -->
<constant name="CryoEMECThicknessFront" value="50*mm"/>
<constant name="CryoEMECThicknessBack" value="100*mm"/>
<constant name="CryoEMECThicknessInner" value="50*mm"/>
<constant name="CryoEMECThicknessOuter" value="100*mm"/>
<constant name="CryoEndcap_front_rmin" value="ECalEndcap_inner_radius"/>
<constant name="CryoEndcap_back_rmin" value="ECalEndcap_inner_radius"/>
<constant name="CryoEndcap_rmax" value="ECalEndcap_outer_radius"/>
<constant name="CryoEndcap_z1" value="ECalEndcap_min_z"/>
<constant name="CryoEndcap_z2" value="ECalEndcap_max_z"/>
<constant name="CryoEndcap_dz" value="(ECalEndcap_max_z - ECalEndcap_min_z)*0.5"/>
<constant name="CryoEndcap_zOffset" value="ECalEndcap_min_z + 0.5*(ECalEndcap_max_z - ECalEndcap_min_z)"/>
<!-- space between the cryostat and calorimeter -->
<constant name="BathThicknessFront" value="10*mm"/>
<constant name="BathThicknessBack" value="40*mm"/>
<constant name="BathThicknessOuter" value="50*mm"/>
<!-- electromegnetic calorimeter: EMEC -->
<constant name="EMEC_z1" value="CryoEndcap_z1 + CryoEMECThicknessFront + BathThicknessFront"/>offset
<constant name="EMEC_z2" value="ECalEndcap_max_z - CryoEMECThicknessBack - BathThicknessBack"/>
<constant name="EMEC_rmin1" value="CryoEndcap_front_rmin + CryoEMECThicknessInner + BathThicknessFront"/>
<constant name="EMEC_rmin2" value="EMEC_rmin1"/>
<constant name="EMEC_rmax" value="ECalEndcap_outer_radius - CryoEMECThicknessOuter - BathThicknessOuter"/>
<!-- LAr thickness: double gap size -->
<constant name="ECalEndcapNumPlanes" value="928"/>
<constant name="ECalEndcapNumCalibLayers" value="10"/>
<constant name="nWheels" value="3"/>
<constant name="BladeAngle" value="41*deg"/>
<constant name="NobleLiquidGap" value="3.9*mm"/>
<constant name="AbsorberBladeThickness" value="2.9*mm"/>
<constant name="ElectrodeBladeThickness" value="1.3*mm"/>
<!-- total amount of steel in one passive plate: it is divided for the outside layer on top and bottom -->
<constant name="EMEC_steel_thickness" value="0.1*mm"/>
<!-- total amount of glue in one passive plate: it is divided for the outside layer on top and bottom -->
<constant name="EMEC_glue_thickness" value="0.1*mm"/>
</define>

<display>
<vis name="emec_cryo_vis" r="0.6" g="0.6" b="0.5" alpha="1" showDaughters="true" visible="true" drawingStyle="solid"/>
<vis name="emec_bath_vis" r="0.6" g="0.4" b="0.5" alpha="1" showDaughters="true" visible="true" drawingStyle="solid"/>
<vis name="emec_envelope_vis_vis" r="0.6" g="0.3" b="0" alpha="1" showDaughters="true" visible="true" drawingStyle="solid"/>
<vis name="emec_layer_vis" r="0.6" g="0.3" b="0.2" alpha="1" showDaughters="true" visible="true" drawingStyle="solid"/>
<vis name="emec_lar_vis" r="0.5" g="0.3" b="0.2" alpha="1" showDaughters="true" visible="true" drawingStyle="solid"/>
<vis name="emec_pb_vis" r="0.5" g="0.5" b="0.2" alpha="1" showDaughters="true" visible="true" drawingStyle="solid"/>
<vis name="emec_readout_vis" r="0.5" g="0.1" b="0.2" alpha="1" showDaughters="true" visible="true" drawingStyle="solid"/>
<vis name="electrode_vis" r="0.5" g="0.0" b="0.0" alpha="1" showDaughters="true" visible="true" drawingStyle="solid"/>
</display>


<readouts>
<readout name="ECalEndcapTurbine">
<!-- temporarily use the same segmentation as the barrel ECal, since that works in reco, even though it's not ideal (or maybe not even tenable) for the endcap
<segmentation type="FCCSWGridModuleThetaMerged_k4geo" nModules="928" mergedCells_Theta="1 1 1 1 1 1 1 1 1 1" mergedModules="1 1 1 1 1 1 1 1 1 1" grid_size_theta="0.009817477/4" offset_theta="0.08"/>
<id>system:4,cryo:1,type:3,subtype:3,side:3,wheel:3,layer:8,module:11,theta:10</id>
</readout>
-->
<segmentation type="FCCSWEndcapTurbine_k4geo" offset_rho="42 78.3215 146.82" offset_z="303.5" offset_phi="0.0" offset_theta="0.11242" grid_size_rho="2.016 2.014 2.004" grid_size_z="1.80"/>
<id>system:4,cryo:1,type:3,subtype:3,side:-2,wheel:3,layer:8,module:17,rho:8,z:8</id>

<!-- <id>system:4,cryo:1,type:3,subtype:3,side:-2,wheel:3,layer:9,module:14,rho:-10,z:-14</id> -->
</readout> --&gt;
<!--
<readout name="ECalEndcapPhiTheta">
<segmentation type="FCCSWGridModuleThetaMerged_k4geo" mergedCells_Theta="1 1 1 1 " mergedModules="1 1 1 1" grid_size_theta="0.005" offset_theta="-3.14"/>
<id>system:4,cryo:1,type:3,subtype:3,side:1,wheel:3,layer:5,module:14,theta:10</id>
</readout>
<readout name="ECalEndcapPhiEtaReco">
<segmentation type="FCCSWGridPhiEta_k4geo" phi_bins="704" offset_phi="-pi+(pi/704.)" grid_size_eta="0.05" offset_eta="-2.91"/>
<id>system:4,cryo:1,type:3,subtype:3,layer:8,eta:10,phi:10</id>
</readout>
-->
</readouts>

<detectors>
<!-- electromagnetic calorimeter -->
<detector id="ECalEndcap_id" name="EMEC_turbine" type="ECalEndcap_Turbine_o1_v01" readout="ECalEndcapTurbine" vis="emec_envelope_vis" sensitive="true">
<type_flags type=" DetType_CALORIMETER + DetType_ELECTROMAGNETIC + DetType_ENDCAP"/>
<sensitive type="SimpleCalorimeterSD"/>
<!-- <dimensions rmin1="EMEC_rmin1" rmin2="EMEC_rmin2" rmax="EMEC_rmax" dz="(EMEC_z2-EMEC_z1)/2." z_offset="EMEC_z1+(EMEC_z2-EMEC_z1)/2."/> -->
<dimensions rmin1="CryoEndcap_front_rmin" rmin2="CryoEndcap_front_rmin" rmax1="CryoEndcap_rmax" rmax2="CryoEndcap_rmax" dz="(CryoEndcap_z2-CryoEndcap_z1)/2." z_offset="EMEC_z1+(EMEC_z2-EMEC_z1)/2."/>
<calorimeter name="EM_endcap">
<dimensions rmin="EMEC_rmin1" rmax="EMEC_rmax" dz="(EMEC_z2-EMEC_z1)/2." z_offset="EMEC_z1+(EMEC_z2-EMEC_z1)/2."/>
<cryostat name="ECAL_EndCapCryo">
<material name="Aluminum"/>
<dimensions rmin1="CryoEndcap_front_rmin" rmin2="CryoEndcap_front_rmin+CryoEMECThicknessInner" rmax1="CryoEndcap_rmax-CryoEMECThicknessOuter" rmax2="CryoEndcap_rmax" dz="(CryoEndcap_z2-CryoEndcap_z1-CryoEMECThicknessFront-CryoEMECThicknessBack)/2."/>
<front sensitive="false"/> <!-- inner wall of the cryostat -->
<side sensitive="false"/> <!-- both sides of the cryostat -->
<back sensitive="false"/> <!-- outer wall of the cryostat -->
</cryostat>
<supportTube name="supportTube" nWheels="nWheels" thickness="1.0*cm" sensitive="false">
<material name="CarbonFiber"/>
</supportTube>
<turbineBlade name="turbineBlade" angle="BladeAngle" decreaseAnglePerWheel="false" sameNUnitCells="false" nUnitCells="144 272 512" nUnitCellsLeastCommonMultiple="78336">
<absorberBlade name="absorberBlade" thickness="AbsorberBladeThickness" scaleThickness="true" thicknessScaleFactor="1.0" sensitive="true">
<material name="Lead"/>
</absorberBlade>
<glue thickness="EMEC_glue_thickness" sensitive="true">
<material name="lArCaloGlue"/>
</glue>
<cladding thickness="EMEC_steel_thickness" sensitive="true">
<material name="lArCaloSteel"/>
</cladding>
<electrodeBlade name="electrodeBlade" thickness="ElectrodeBladeThickness" sensitive="true" vis="electrode_vis">
<material name="PCB"/>
</electrodeBlade>
<nobleLiquidGap name="nobleLiquidGap" gap="NobleLiquidGap" sensitive="true">
<material name="LAr"/>
</nobleLiquidGap>
</turbineBlade>
</calorimeter>
</detector>

</detectors>

</lccdd>
3 changes: 2 additions & 1 deletion FCCee/ALLEGRO/compact/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ Known caveat: the drift chamber has a larger z extent than in the IDEA detector

ALLEGRO_o1_v03: with respect to v02 it features an ECal barrel with 11 layers and cell corners projective along phi.
The vertex detector and drift chamber are now taken directly from IDEA_o1_v03, this effectively updates both the vertex detector (which was taken from an old CLD version) and the drift chamber (which was corresponding to IDEA_o1_v02/DriftChamber_o1_v01.xml). The z-extent of the drift chamber is now unchanged w.r.t. the IDEA detector (2 m) since it requires optimization anyway.
Magnetic fields (solenoid + MDI) have been added.
Magnetic fields (solenoid + MDI) have been added.
Added "turbine-style" endcap ecal, and invoke this in the top-level xml (replacing the coneCyro geometry).
Loading
Loading