Skip to content

Commit

Permalink
IDEA-LAr ECAL endcaps (#28)
Browse files Browse the repository at this point in the history
* full detector concept 1 with LAr calo

* HCAL endcaps fix

* code cleaning

* fixes in endcaps

* HCAL endcaps removed

* standalone removed

* cmakelist fixed

* fixes in the dimensions, CMakeFiles

* small update

* dimension of IDEA drift chamber moved to DectDimensions
  • Loading branch information
faltovaj authored Dec 9, 2022
1 parent d957b7d commit e43f32c
Show file tree
Hide file tree
Showing 12 changed files with 519 additions and 178 deletions.
2 changes: 1 addition & 1 deletion Detector/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@ add_subdirectory(DetFCCeeCLD)
add_subdirectory(DetFCCeeCommon)
add_subdirectory(DetFCCeeHCalTile)
add_subdirectory(DetFCCeeIDEA)

add_subdirectory(DetFCCeeCalDiscs)
5 changes: 5 additions & 0 deletions Detector/DetFCCeeCalDiscs/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
################################################################################
#Package : DetFCCeeCalDiscs
################################################################################

install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/compact DESTINATION ${CMAKE_INSTALL_DATADIR}/${CMAKE_PROJECT_NAME}/Detector/DetFCCeeCalDiscs)
167 changes: 167 additions & 0 deletions Detector/DetFCCeeCalDiscs/compact/FCCee_EcalEndcaps_coneCryo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
<?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="FCChh_CaloEndcap_Discs"
title="Calorimeter endcaps"
author="M.Aleksa,J.Faltova,A.Zaborowska"
url="no"
status="development"
version="1.0">
<comment>
Liquid argon EM calorimeter endcap design.
Electromagnetic part (EMEC) includes lead+steel absorber.
Absorbers have shape of simple discs.
</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"/>
<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="EMEC_lAr_thickness" value="4.*mm"/>
<constant name="EMEC_Pb_thickness" value="1.5*mm*1.5/2.16"/>
<constant name="EMEC_steel_thickness" value="0.4*mm*1.5/2.16"/>
<constant name="EMEC_glue_thickness" value="0.26*mm*1.5/2.16"/>
<constant name="EMEC_readout_thickness" value="1.2*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" />
</display>

<readouts>
<readout name="ECalEndcapPhiEta">
<segmentation type="FCCSWGridPhiEta" phi_bins="704" offset_phi="-pi+(pi/704.)" grid_size_eta="0.05" offset_eta="-2.91"/>
<id>system:4,subsystem:1,type:3,subtype:3,layer:8,sublayer:8,eta:10,phi:10</id>
</readout>
<readout name="ECalEndcapPhiEtaReco">
<segmentation type="FCCSWGridPhiEta" phi_bins="704" offset_phi="-pi+(pi/704.)" grid_size_eta="0.05" offset_eta="-2.91"/>
<id>system:4,subsystem:1,type:3,subtype:3,layer:8,eta:10,phi:10</id>
</readout>
</readouts>

<detectors>
<!-- positive side: cryostat -->
<detector name="CalEndcapCryoFront_positive" type="SimpleCylinder" vis="emec_cryo_vis">
<dimensions rmin="CryoEndcap_front_rmin" rmax="CryoEndcap_rmax"
dz="CryoEMECThicknessFront/2." z_offset="CryoEndcap_z1+CryoEMECThicknessFront/2." material="Aluminum" phi0="0" deltaphi="360*deg"/>
</detector>
<detector name="CalEndcapCryoBack_positive" type="SimpleCylinder" vis="emec_cryo_vis">
<dimensions rmin="CryoEndcap_back_rmin" rmax="CryoEndcap_rmax"
dz="CryoEMECThicknessBack/2." z_offset="CryoEndcap_z2-CryoEMECThicknessBack/2." material="Aluminum" phi0="0" deltaphi="360*deg"/>
</detector>
<detector name="CalEndcapCryoOuter_positive" type="SimpleCylinder" vis="emec_cryo_vis">
<dimensions rmin="CryoEndcap_rmax-CryoEMECThicknessOuter" rmax="CryoEndcap_rmax"
dz="(CryoEndcap_z2-CryoEndcap_z1-CryoEMECThicknessFront-CryoEMECThicknessBack)/2."
z_offset="CryoEndcap_z1+CryoEMECThicknessFront+(CryoEndcap_z2-CryoEndcap_z1-CryoEMECThicknessFront-CryoEMECThicknessBack)/2." material="Aluminum" phi0="0" deltaphi="360*deg"/>
</detector>
<detector name="CalEndcapCryoInner_positive" type="SimpleCylinder" vis="emec_cryo_vis">
<dimensions rmin="CryoEndcap_front_rmin" rmax="CryoEndcap_front_rmin+CryoEMECThicknessInner"
dz="(CryoEndcap_z2-CryoEndcap_z1-CryoEMECThicknessFront-CryoEMECThicknessBack)/2."
z_offset="CryoEndcap_z1+CryoEMECThicknessFront+(CryoEndcap_z2-CryoEndcap_z1-CryoEMECThicknessFront-CryoEMECThicknessBack)/2." material="Aluminum" phi0="0" deltaphi="360*deg"/>
</detector>
<detector name="CalEndcapBathFront_positive" type="SimpleCylinder" vis="emec_bath_vis">
<dimensions rmin="CryoEndcap_front_rmin+CryoEMECThicknessInner" rmax="EMEC_rmax"
dz="BathThicknessFront/2." z_offset="EMEC_z1-BathThicknessFront/2." material="LAr" phi0="0" deltaphi="360*deg"/>
</detector>
<detector name="CalEndcapBathBack_positive" type="SimpleCylinder" vis="emec_bath_vis">
<dimensions rmin="EMEC_rmin1" rmax="EMEC_rmax"
dz="BathThicknessBack/2." z_offset="EMEC_z2+BathThicknessBack/2." material="LAr" phi0="0" deltaphi="360*deg"/>
</detector>
<detector name="CalEndcapBathOuter_positive" type="SimpleCylinder" vis="emec_bath_vis">
<dimensions rmin="CryoEndcap_rmax-CryoEMECThicknessOuter-BathThicknessOuter" rmax="CryoEndcap_rmax-CryoEMECThicknessOuter"
dz="(CryoEndcap_z2-CryoEndcap_z1-CryoEMECThicknessFront-CryoEMECThicknessBack)/2."
z_offset="CryoEndcap_z1+CryoEMECThicknessFront+(CryoEndcap_z2-CryoEndcap_z1-CryoEMECThicknessFront-CryoEMECThicknessBack)/2." material="LAr" phi0="0" deltaphi="360*deg"/>
</detector>
<!-- electromagnetic calorimeter -->
<detector name="EMEC" type="CaloDiscs" id="DetID_ECAL_Endcap" readout="ECalEndcapPhiEta" vis="emec_envelope_vis">
<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."/>
<layers>
<!-- thickness of a readout layer (how many 'unit layers' are merged together creating one readout) -->
<!-- unit layer = absorber|half-active|readout|half-active -->
<!-- with an exception of the inner-most unit layer (ID 0) which = readout|active -->
<layer thickness="2" repeat="2" vis="emec_layer_vis"/>
<layer thickness="4" repeat="16" vis="emec_layer_vis"/>
</layers>
<active thickness="EMEC_lAr_thickness" vis="emec_lar_vis">
<material name="LAr"/>
</active>
<passive sensitive="false">
<inner thickness="EMEC_Pb_thickness" vis="emec_pb_vis">
<material name="Lead"/>
</inner>
<glue thickness="EMEC_glue_thickness">
<material name="lArCaloGlue"/>
</glue>
<outer thickness="EMEC_steel_thickness">
<material name="lArCaloSteel"/>
</outer>
</passive>
<readout thickness="EMEC_readout_thickness" sensitive="false" vis="emec_readout_vis">
<material name="PCB"/>
</readout>
</detector>
<!-- negative side: cryostat -->
<detector name="CalEndcapCryoFront_negative" type="SimpleCylinder" vis="emec_cryo_vis">
<dimensions rmin="CryoEndcap_front_rmin" rmax="CryoEndcap_rmax"
dz="CryoEMECThicknessFront/2." z_offset="-(CryoEndcap_z1+CryoEMECThicknessFront/2.)" material="Aluminum" phi0="0" deltaphi="360*deg"/>
</detector>
<detector name="CalEndcapCryoBack_negative" type="SimpleCylinder" vis="emec_cryo_vis">
<dimensions rmin="CryoEndcap_back_rmin" rmax="CryoEndcap_rmax"
dz="CryoEMECThicknessBack/2." z_offset="-(CryoEndcap_z2-CryoEMECThicknessBack/2.)" material="Aluminum" phi0="0" deltaphi="360*deg"/>
</detector>
<detector name="CalEndcapCryoOuter_negative" type="SimpleCylinder" vis="emec_cryo_vis">
<dimensions rmin="CryoEndcap_rmax-CryoEMECThicknessOuter" rmax="CryoEndcap_rmax"
dz="(CryoEndcap_z2-CryoEndcap_z1-CryoEMECThicknessFront-CryoEMECThicknessBack)/2."
z_offset="-(CryoEndcap_z1+CryoEMECThicknessFront+(CryoEndcap_z2-CryoEndcap_z1-CryoEMECThicknessFront-CryoEMECThicknessBack)/2.)" material="Aluminum" phi0="0" deltaphi="360*deg"/>
</detector>
<detector name="CalEndcapCryoInner_negative" type="SimpleCylinder" vis="emec_cryo_vis">
<dimensions rmin="CryoEndcap_front_rmin" rmax="CryoEndcap_front_rmin+CryoEMECThicknessInner"
dz="(CryoEndcap_z2-CryoEndcap_z1-CryoEMECThicknessFront-CryoEMECThicknessBack)/2."
z_offset="-(CryoEndcap_z1+CryoEMECThicknessFront+(CryoEndcap_z2-CryoEndcap_z1-CryoEMECThicknessFront-CryoEMECThicknessBack)/2.)" material="Aluminum" phi0="0" deltaphi="360*deg"/>
</detector>
<detector name="CalEndcapBathFront_negative" type="SimpleCylinder" vis="emec_bath_vis">
<dimensions rmin="CryoEndcap_front_rmin+CryoEMECThicknessInner" rmax="EMEC_rmax"
dz="BathThicknessFront/2." z_offset="-(EMEC_z1-BathThicknessFront/2.)" material="LAr" phi0="0" deltaphi="360*deg"/>
</detector>
<detector name="CalEndcapBathBack_negative" type="SimpleCylinder" vis="emec_bath_vis">
<dimensions rmin="EMEC_rmin1" rmax="EMEC_rmax"
dz="BathThicknessBack/2." z_offset="-(EMEC_z2+BathThicknessBack/2.)" material="LAr" phi0="0" deltaphi="360*deg"/>
</detector>
<detector name="CalEndcapBathOuter_negative" type="SimpleCylinder" vis="emec_bath_vis">
<dimensions rmin="CryoEndcap_rmax-CryoEMECThicknessOuter-BathThicknessOuter" rmax="CryoEndcap_rmax-CryoEMECThicknessOuter"
dz="(CryoEndcap_z2-CryoEndcap_z1-CryoEMECThicknessFront-CryoEMECThicknessBack)/2."
z_offset="-(CryoEndcap_z1+CryoEMECThicknessFront+(CryoEndcap_z2-CryoEndcap_z1-CryoEMECThicknessFront-CryoEMECThicknessBack)/2.)" material="LAr" phi0="0" deltaphi="360*deg"/>
</detector>
</detectors>

</lccdd>
Loading

0 comments on commit e43f32c

Please sign in to comment.