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

Add dual-readout tubes barrel calorimeter in IDEA_o2 #413

Open
wants to merge 24 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
fb5dcac
Add DRBarrelTubes calorimeter subdetector
lopezzot Nov 26, 2024
e6b7d61
Add DRBarrelTubes in IDEA_o2, adjust muon params
lopezzot Nov 26, 2024
1f6d3eb
Move DDDRCalTubes dimensions in IDEA_o2 xml
lopezzot Dec 2, 2024
30f198e
Move DRBarrelTubes vis attr to DectDimensions xml
lopezzot Dec 2, 2024
4f27e3a
Increase DRBarrelTubes granularity
lopezzot Dec 2, 2024
e093b35
Cosmetic changes to DRTubesconstructor print
lopezzot Dec 2, 2024
6131a5e
Rename to DDDRCaloTubes_o1_v01
lopezzot Dec 2, 2024
076e296
Fixed overlap of towers with stave by correct shortening of towers
s6anloes Dec 7, 2024
b3ce78c
Avoid overlap between drbarrel staves and solenoid
lopezzot Dec 9, 2024
cd7ace8
Fix bug in materials definition
lopezzot Dec 9, 2024
b8ef2f6
Set DDDRCaloTubes detID and assign
lopezzot Dec 9, 2024
14bc11a
Added and reworked comments to explain calorimeter barrel construction
s6anloes Dec 9, 2024
55dba8b
More comments and removal of unused function
s6anloes Dec 9, 2024
6d23cbe
Renamed DDDRCaloTubes to DRBarrelTubes for consistency with endcaps
s6anloes Dec 9, 2024
7fda363
Add barrel in dual-readout-tubes_o1_v01 readme
lopezzot Dec 10, 2024
bdd7367
Update IDEA_o2 README description
lopezzot Dec 10, 2024
aa75a92
Added forgotten copynumber for air volume inside tower
s6anloes Dec 16, 2024
fde2d3a
Extend DRTubsSDAction to handle barrel signals
lopezzot Dec 16, 2024
4c120fd
Fix bug in DRTubesSDAction theta coordinate
lopezzot Dec 17, 2024
b3c0d7f
Change name of DRTubesSDAction hit collections
lopezzot Dec 17, 2024
8c1072e
Restore optical properties for DRBarrelTubes
lopezzot Dec 18, 2024
0697e5d
Remove DRTubesSDAction printout
lopezzot Dec 18, 2024
2ca0d00
Fix printout of DRTubesSDAction
lopezzot Dec 18, 2024
b0ab371
Comment out volID check for barrel calo
lopezzot Dec 19, 2024
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
298 changes: 298 additions & 0 deletions FCCee/IDEA/compact/IDEA_o2_v01/DRBarrelTubes_o1_v01.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,298 @@
<!-- ====================================================================== -->
<!-- -->
<!-- XML description of the complete SCEPCAL IDEA detector -->
<!-- of the SCEPCAL IDEA collider detector design. -->
<!-- -->
<!-- Contained are the required -->
<!-- ++ global constants used uniquely by this module -->
<!-- ++ visualization attributes -->
<!-- ++ the definition of the readout structure and the -->
<!-- readout segmentation (if necessary) -->
<!-- ++ the include statements for the sensitive detectors and -->
<!-- the corresponding support structure(s) -->
<!-- -->
<!-- -->
<!-- @author M.Frank -->
<!-- @date 14/11/2014 -->
<!-- -->
<!-- ====================================================================== -->


<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="DRBarrelTubes"
title=""
author="Andreas Loeschcke Centeno"
status="development"
version="0.1">
<comment></comment>
</info>

<properties>
<matrix name="DRBTRI_DR_Polystyrene" coldim="2" values="
1.37760*eV 1.59
1.45864*eV 1.59
1.54980*eV 1.59
1.65312*eV 1.59
1.71013*eV 1.59
1.77120*eV 1.59
1.83680*eV 1.59
1.90745*eV 1.59
1.98375*eV 1.59
2.06640*eV 1.59
2.10143*eV 1.59
2.13766*eV 1.59
2.17516*eV 1.59
2.21400*eV 1.59
2.25426*eV 1.59
2.29600*eV 1.59
2.33932*eV 1.59
2.38431*eV 1.59
2.43106*eV 1.59
2.47968*eV 1.59
2.53029*eV 1.59
2.58300*eV 1.59
2.63796*eV 1.59
2.69531*eV 1.59
2.75520*eV 1.59
2.81782*eV 1.59
2.88335*eV 1.59
2.95200*eV 1.59
3.09960*eV 1.59
3.54241*eV 1.59
4.13281*eV 1.59
"/>

<matrix name="DRBTRI_PMMA" coldim="2" values="
1.37760*eV 1.49
1.45864*eV 1.49
1.54980*eV 1.49
1.65312*eV 1.49
1.71013*eV 1.49
1.77120*eV 1.49
1.83680*eV 1.49
1.90745*eV 1.49
1.98375*eV 1.49
2.06640*eV 1.49
2.10143*eV 1.49
2.13766*eV 1.49
2.17516*eV 1.49
2.21400*eV 1.49
2.25426*eV 1.49
2.29600*eV 1.49
2.33932*eV 1.49
2.38431*eV 1.49
2.43106*eV 1.49
2.47968*eV 1.49
2.53029*eV 1.49
2.58300*eV 1.49
2.63796*eV 1.49
2.69531*eV 1.49
2.75520*eV 1.49
2.81782*eV 1.49
2.88335*eV 1.49
2.95200*eV 1.49
3.09960*eV 1.49
3.54241*eV 1.49
4.13281*eV 1.49
"/>

<matrix name="DRBTRI_Fluorinated_Polymer" coldim="2" values="
1.37760*eV 1.42
1.45864*eV 1.42
1.54980*eV 1.42
1.65312*eV 1.42
1.71013*eV 1.42
1.77120*eV 1.42
1.83680*eV 1.42
1.90745*eV 1.42
1.98375*eV 1.42
2.06640*eV 1.42
2.10143*eV 1.42
2.13766*eV 1.42
2.17516*eV 1.42
2.21400*eV 1.42
2.25426*eV 1.42
2.29600*eV 1.42
2.33932*eV 1.42
2.38431*eV 1.42
2.43106*eV 1.42
2.47968*eV 1.42
2.53029*eV 1.42
2.58300*eV 1.42
2.63796*eV 1.42
2.69531*eV 1.42
2.75520*eV 1.42
2.81782*eV 1.42
2.88335*eV 1.42
2.95200*eV 1.42
3.09960*eV 1.42
3.54241*eV 1.42
4.13281*eV 1.42
"/>

<matrix name="DRBTAbsLen_DR_Polystyrene" coldim="2" values="
1.37760*eV 2.714*m
1.45864*eV 3.619*m
1.54980*eV 5.791*m
1.65312*eV 4.343*m
1.71013*eV 7.896*m
1.77120*eV 5.429*m
1.83680*eV 36.19*m
1.90745*eV 17.37*m
1.98375*eV 36.19*m
2.06640*eV 5.429*m
2.10143*eV 13.00*m
2.13766*eV 14.50*m
2.17516*eV 16.00*m
2.21400*eV 18.00*m
2.25426*eV 16.50*m
2.29600*eV 17.00*m
2.33932*eV 14.00*m
2.38431*eV 16.00*m
2.43106*eV 15.00*m
2.47968*eV 14.50*m
2.53029*eV 13.00*m
2.58300*eV 12.00*m
2.63796*eV 10.00*m
2.69531*eV 8.000*m
2.75520*eV 7.238*m
2.81782*eV 4.000*m
2.88335*eV 1.200*m
2.95200*eV 0.500*m
3.09960*eV 0.200*m
3.54241*eV 0.200*m
4.13281*eV 0.100*m
"/>

<matrix name="DRBTAbsLen_PMMA" coldim="2" values="
1.37760*eV 0.414*m
1.45864*eV 0.965*m
1.54980*eV 2.171*m
1.65312*eV 4.343*m
1.71013*eV 1.448*m
1.77120*eV 4.343*m
1.83680*eV 14.48*m
1.90745*eV 21.71*m
1.98375*eV 8.686*m
2.06640*eV 39.48*m
2.10143*eV 48.25*m
2.13766*eV 54.29*m
2.17516*eV 57.91*m
2.21400*eV 54.29*m
2.25426*eV 33.40*m
2.29600*eV 31.02*m
2.33932*eV 43.43*m
2.38431*eV 43.43*m
2.43106*eV 41.36*m
2.47968*eV 39.48*m
2.53029*eV 37.76*m
2.58300*eV 36.19*m
2.63796*eV 36.19*m
2.69531*eV 33.40*m
2.75520*eV 31.02*m
2.81782*eV 28.95*m
2.88335*eV 25.55*m
2.95200*eV 24.13*m
3.09960*eV 21.71*m
3.54241*eV 2.171*m
4.13281*eV 0.434*m
"/>
</properties>


<materials>
<material name="DRBTBrass">
<D type="density" unit="g/cm3" value="8.44" />
<fraction n="0.7" ref="Cu" />
<fraction n="0.3" ref="Zn" />
</material>

<material name="DRBTDR_Polystyrene" >
<D type="density" unit="g/cm3" value="1.05" />
<composite n="8" ref="C" />
<composite n="8" ref="H" />
<!--<property name="RINDEX" ref="DRBTRI_DR_Polystyrene"/>
<property name="ABSLENGTH" ref="DRBTAbsLen_DR_Polystyrene"/>-->
</material>

<material name="DRBTPMMA_Scin" >
<D type="density" unit="g/cm3" value="1.1901" />
<composite n="5" ref="C" />
<composite n="2" ref="O" />
<composite n="8" ref="H" />
<!--<property name="RINDEX" ref="DRBTRI_PMMA"/>
<property name="ABSLENGTH" ref="DRBTAbsLen_PMMA"/>-->
</material>

<material name="DRBTPMMA" >
<D type="density" unit="g/cm3" value="1.19" />
<composite n="5" ref="C" />
<composite n="2" ref="O" />
<composite n="8" ref="H" />
<property name="RINDEX" ref="DRBTRI_PMMA"/>
<!--<property name="ABSLENGTH" ref="DRBTAbsLen_PMMA"/>-->
</material>

<material name="DRBTFluorinated_Polymer">
<D type="density" unit="g/cm3" value="1.43" />
<composite n="2" ref="C" />
<composite n="2" ref="F" />
<property name="RINDEX" ref="DRBTRI_Fluorinated_Polymer"/>
</material>

</materials>

<detectors>
<detector
name="DRBarrelTubes"
type="DRBarrelTubes"
id="DetID_DRBarrelTubes"
readout="DRBarrelTubeRO"
vis="DRBTVis" >

<type_flags type=" DetType_CALORIMETER + DetType_ELECTROMAGNETIC + DetType_BARREL"/>

<dimensions
inner_radius="DRBTInnerCaloRadius"
outer_radius="DRBTOuterCaloRadius"
z_length="DRBTInnerCaloHalfLength"
deltatheta="DRBTTowerThetaCoverage"
deltaphi="DRBTTowerPhiCoverage" />

<trap>
<support material="DRBTBrass" width="DRBTSupportSideThickness" depth="DRBTSupportFrontThickness" z2="DRBTSupportBackThickness" vis="DRBTtrap_vis"/>
<air material="Air" vis="DRBTair_vis" />
</trap>

<tube>
<capillary material="DRBTBrass" outer_r="DRBTTubeOuterRadius" sensitive="false" vis="DRBTcapillary_vis" threshold="DRBTTubeTolerance" />
<scin_clad material="DRBTPMMA_Scin" outer_r="DRBTCladOuterRadius" sensitive="false" vis="DRBTscin_clad_vis" />
<scin_core material="DRBTDR_Polystyrene" outer_r="DRBTCoreOuterRadius" sensitive="false" vis="DRBTscin_core_vis" />
<cher_clad material="DRBTFluorinated_Polymer" outer_r="DRBTCladOuterRadius" sensitive="false" vis="DRBTcher_clad_vis" />
<cher_core material="DRBTPMMA" outer_r="DRBTCoreOuterRadius" sensitive="false" vis="DRBTcher_core_vis" />
</tube>

</detector>
</detectors>

<readouts>
<readout name="DRBarrelTubeRO">
<!-- NO SPACES BETWEEN ID DESCRIPTORS!!! -->
<id>system:5,stave:10,tower:-8,air:1,col:-16,row:16,clad:1,core:1,cherenkov:1</id>

<segmentation type="CartesianGridXY"
grid_size_x="1*mm"
grid_size_y="1*mm"/>
</readout>
</readouts>

<!--<limits>
<limitset name="cal_limits">
<limit name="step_length_max" particles="*" value="100.0" unit="mm" />
</limitset>
</limits>-->

</lccdd>
43 changes: 39 additions & 4 deletions FCCee/IDEA/compact/IDEA_o2_v01/DectDimensions_IDEA_o2_v01.xml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,9 @@
<constant name="DetID_muonSystem" value=" 26"/>
<constant name="DetID_Preshower" value=" 27"/>

<!-- Dual-Readout Barrel Tubes (DRBT) calorimeter DetID-->
<constant name="DetID_DRBarrelTubes" value=" 28"/>

<!-- BPW: Beam Pipe Width -->
<constant name="BPWWall" value="0.35*mm" />
<constant name="BPWCool" value="1.0*mm" />
Expand Down Expand Up @@ -220,15 +223,35 @@
<constant name="DRETCoreRadius" value="0.45*mm"/>
<!-- end of Dual-Readout Endcap Tubes (DRET) calorimeter dimensions-->

<!-- Dual-Readout Barrel Tubes (DRBT) calorimeter dimensions-->
<constant name="DRBTCoreOuterRadius" value="0.485*mm"/>
<constant name="DRBTCladOuterRadius" value="0.5*mm" />
<constant name="DRBTTubeOuterRadius" value="1.0*mm" />
<constant name="DRBTTubeTolerance" value="50*um" />
<!-- The barrel calorimeter starts at 2.8 m but we add
a 0.5 cm displacement to avoid overlap between
the calo staves and the solenoid -->
<constant name="DRBTInnerCaloRadius" value="2.805*m" />
<constant name="DRBTOuterCaloRadius" value="4.6*m" />
<constant name="DRBTInnerCaloHalfLength" value="2.805*m" />

<constant name="DRBTTowerThetaCoverage" value="1.0*deg"/>
<constant name="DRBTTowerPhiCoverage" value="5.0*deg" />

<constant name="DRBTSupportSideThickness" value="1.0*mm" />
<constant name="DRBTSupportFrontThickness" value="1.0*mm" />
<constant name="DRBTSupportBackThickness" value="0.0*cm" />
<!-- end of Dual-Readout Barrel Tubes (DRBT) calorimeter dimensions-->

<!-- Muon System Parameters-->
<constant name = "numberOfSides" value = "8"/> <!-- The number of sides of the muon system e.g (Octagon, Hexagon, ...)-->
<!-- Barrel -->
<constant name = "BarrelFirstLayerRadius" value = "4530*mm"/> <!-- 1st Barrel microRWELL detector inner radius-> its the start point of thicknesses of the microRWELL material. In our case the shape is Polygon, so the radius is in the middle of the polygon side. -->
<constant name = "BarrelLength" value = "9060*mm"/> <!--Barrel detector length, in the description of the detctor we always use the half-length -->
<constant name = "BarrelFirstLayerRadius" value = "4630*mm"/> <!-- 1st Barrel microRWELL detector inner radius-> its the start point of thicknesses of the microRWELL material. In our case the shape is Polygon, so the radius is in the middle of the polygon side. -->
<constant name = "BarrelLength" value = "9260*mm"/> <!--Barrel detector length, in the description of the detctor we always use the half-length -->
<!-- Endcap -->
<constant name = "EndcapFirstLayerZOffset" value = "4530*mm"/> <!-- 1st Endcap microRWELL detector inner ZOffset-> its the start point of thicknesses of the microRWELL volume -->
<constant name = "EndcapFirstLayerZOffset" value = "4630*mm"/> <!-- 1st Endcap microRWELL detector inner ZOffset-> its the start point of thicknesses of the microRWELL volume -->
<constant name = "EndcapLayersInnerRadius" value = "700*mm"/> <!--Endcap detector inner radius, its the start point of thicknesses of the detector material ** it applies for both detector layers and yoke-->
<constant name = "EndcapLayersOuterRadius" value = "5350*mm"/> <!--Endcap detector outer radius, its the end point of thicknesses of the detector material ** it applies for both detector layers and yoke-->
<constant name = "EndcapLayersOuterRadius" value = "5450*mm"/> <!--Endcap detector outer radius, its the end point of thicknesses of the detector material ** it applies for both detector layers and yoke-->
<!-- End of Muon system Parameters-->
</define>

Expand Down Expand Up @@ -278,6 +301,18 @@
<vis name="DRETcore_S_Vis" alpha="1.0" r="1.0" g="0.0" b="0.0" showDaughters="true" visible="false"/>
<vis name="DRETcore_C_Vis" alpha="1.0" r="1.0" g="0.0" b="0.0" showDaughters="true" visible="false"/>
<!-- end of DRET vis-->
<!-- Dual-Readout Battel Tubs vis-->
<vis name="DRBTVis" alpha="0.1" r="0.1" g=".5" b=".5" showDaughters="true" visible="false"/>
<vis name="DRBTcapillary_vis" alpha="1.0" r="0.855" g="0.647" b="0.125" showDaughters="false" visible="false" />
<vis name="DRBTscin_clad_vis" alpha="1.0" r="0.800" g="0.188" b="0.078" showDaughters="false" visible="false" />
<vis name="DRBTscin_core_vis" alpha="1.0" r="1.000" g="0.388" b="0.278" showDaughters="false" visible="false" />
<vis name="DRBTcher_clad_vis" alpha="1.0" r="0.192" g="0.484" b="0.729" showDaughters="false" visible="false" />
<vis name="DRBTcher_core_vis" alpha="1.0" r="0.392" g="0.584" b="0.929" showDaughters="false" visible="false" />
<vis name="DRBTair_vis" alpha="0.10" r="1.0" g="0.0" b="0.0" showDaughters="true" visible="false" />
<vis name="DRBTtrap_vis" alpha="1.0" r="0.855" g="0.647" b="0.125" showDaughters="false" visible="true" />
<vis name="DRBTstave_vis" alpha="0.1" r="0.2" g="0.2" b="0.2" showDaughters="true" visible="true" />
<vis name="DRBTassembly_vis" alpha="0.0" r="0.33" g="0.33" b="0.33" showDaughters="true" visible="true" />
<!-- end of DRBT vis-->
<vis name="yoke_vis" r="255/256" g="0/256" b="0/256" alpha="1.0" showDaughters="true" visible="true" />
<vis name="no_vis" showDaughters="true" visible="false" />
<vis name="G10_FR4_vis" r="0.6" g="0.4" b="0.2" alpha="1.0" showDaughters="true" visible="true" />
Expand Down
7 changes: 5 additions & 2 deletions FCCee/IDEA/compact/IDEA_o2_v01/IDEA_o2_v01.xml
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,14 @@
<!-- Import Endcap plate absorber -->
<include ref="../IDEA_o1_v03/EndPlateAbsorber_o1_v01.xml"/>

<!-- Import tubes-based dual-readout calorimeter -->
<!-- Import tubes-based dual-readout endcap calorimeter -->
<include ref="DREndcapTubes_o1_v01.xml"/>

<!-- Import tubes-based dual-readout barrel calorimeter -->
<include ref="DRBarrelTubes_o1_v01.xml"/>

<!-- Import muon system -->
<!-- <include ref="../IDEA_o1_v03/MuonSystem_o1_v01.xml"/>-->
<include ref="../IDEA_o1_v03/MuonSystem_o1_v01.xml"/>

<plugins>
<plugin name="DD4hepVolumeManager"/>
Expand Down
2 changes: 2 additions & 0 deletions FCCee/IDEA/compact/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,5 @@ IDEA_o2_v01
Second option of IDEA detector. The inner part up to the drift-chamber is identical to IDEA_o1, the dual-readout calorimeter uses the INFN capillary-tubes technology and replaces the monolithic calorimeter description. Between the drift-chamber and the dual-readout calorimeter a dual-readout crystal electromagnetic calorimeter will be placed, consequentially the preshower is removed. The muon system is identical to IDEA_o1.

October 2024: first implementation using the dual-readout capillary-tubes endcap geometry.

December 2024: Added the dual-readout capillary-tubes barrel calorimeter.
3 changes: 1 addition & 2 deletions detector/calorimeter/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,5 +59,4 @@ Inside the single tower (trapezoidal copper absorber), two types of optical fibe
## dual-readout-tubes

### o1_v01
This folder containes the subdetectors (endcap + barrel) to make a full 4-pi fiber dual-readout calorimeter exploiting the INFN capillary-tubes technology. Each trapezoidal tower is constructed with brass capillary-tubes housing optical fibers (Cherenkov and scintillating).
For the moment, only the endcap subdetector is included, the barrel will be added with a dedicated PR.
This folder containes the subdetectors (endcap + barrel) to make a full 4-pi fiber dual-readout calorimeter exploiting the INFN capillary-tubes technology. Each trapezoidal tower is constructed with brass capillary-tubes housing optical fibers (Cherenkov and scintillating). Endcap and barrel calorimeters are implemented ad separate subdetectors.
Loading
Loading