Skip to content

Commit

Permalink
[IDEA] Adding the detailed version of the muon system. (key4hep#322)
Browse files Browse the repository at this point in the history
* Adding the builders of the muon system, including the first draft of the detailed version(barrel and endcap in the same builder)

* The first draft of xml file for the detailed version of the muon system

* Describing the material of the microRWELL

* Adding the parameters(dimensions) of the muon system

* Including the muon system into the full IDEA XML

* IDEA muon system description, with code details

* Including  muonSystem directory into Sources

* Modifying the muon system factory to avoid overlapping between the different volumes

* rename muon system v01 compact file

* Adding a new compact file for muon system

* Definning muon system IDs and parameters

* Adding muon xml to IDEA detector geometry master file

* [IDEA_o1_v03]Adding muon system to new version of IDEA

* Updating IDEA Readme file with the new additions of muon system

* Renamming the compact file of IDEA the muon system and it's readout  for homogeneity with the other detectors

* Updating the names of the new muon system compact file and commenting si-wrapper

* Updating Readme and explainning the builder more in the comments

* Re-adding the description of IDEA magentic field

* [IDEA Muon System] Clarifying the dimensions description with more comments

* Renaming MuRwell materials with removing hex codes in names

* Removing Indentation and re-organizing the muon system builder

* Simplifying the calculation of detector side envelope

* Refactoring Muon-System builder, and making the compact file simpler and more automated

* Refactoring Muon-system bit-field

* Solving overlap between muon-system barrel and endcap

* Removing Muon system from IDEA_v02

* Commenting muon-system builder and compact file for more details

* Readding all sub-detectors to IDEA_v03

* Update muonSystem/README.md

Co-authored-by: Brieuc Francois <[email protected]>

* Update FCCee/IDEA/compact/README.md

Co-authored-by: Brieuc Francois <[email protected]>

* Fixing typo in IDEA muon-systm cmpact file

* Fixing typo in IDEA muon-systm compact file

---------

Co-authored-by: Brieuc Francois <[email protected]>
  • Loading branch information
mahmoudali2 and BrieucF authored Jul 8, 2024
1 parent 1998397 commit 2e1bba2
Show file tree
Hide file tree
Showing 8 changed files with 1,261 additions and 2 deletions.
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ file(GLOB sources
./detector/tracker/*.cpp
./detector/calorimeter/*.cpp
./detector/fcal/*.cpp
./detector/muonSystem/*.cpp
./detector/other/*.cpp
./detector/CaloTB/*.cpp
./FCalTB/setup/*.cpp
Expand Down
27 changes: 27 additions & 0 deletions FCCee/IDEA/compact/IDEA_o1_v03/DectDimensions_IDEA_o1_v03.xml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@
<constant name="DetID_SiWrapper_Barrel" value=" 23"/>
<constant name="DetID_SiWrapper_Disks" value=" 24"/>

<constant name="DetID_muonSystem" value=" 25"/>

<!-- BPW: Beam Pipe Width -->
<constant name="BPWWall" value="0.35*mm" />
<constant name="BPWCool" value="1.0*mm" />
Expand Down Expand Up @@ -214,6 +216,21 @@

<constant name="tracker_region_zmax" value="DCH_half_length_total"/>
<constant name="tracker_region_rmax" value="DCH_outer_cyl_R_total"/>

<!-- 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 = "4500*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 = "9000*mm"/> <!--Barrel detector length, in the description of the detctor we always use the half-length -->
<!-- Endcap -->
<constant name = "EndcapFirstLayerZOffset" value = "4500*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 = "5320*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 @@ -262,6 +279,16 @@
<vis name="GlueVis" alpha="1.0" r="1.0" g="0.75" b="0.79" showDaughters="true" visible="true"/>
<vis name="RohacellVis" alpha="1.0" r="1.0" g="1.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="AirVis" alpha="0.1" r="0.1" g="0.1" b="1.0" showDaughters="false" visible="true"/>
<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" />
<vis name="Cu_vis" r="0.8" g="0.5" b="0.2" alpha="1.0" showDaughters="true" visible="true" />
<vis name="GasLayer_vis" r="0.0" g="0.8" b="0.2" alpha="1.0" showDaughters="true" visible="true" />
<vis name="Kapton_vis" r="1.0" g="0.6" b="0.0" alpha="1.0" showDaughters="true" visible="true" />
<vis name="CarbonFiber_vis" r="0.4" g="0.4" b="0.4" alpha="1.0" showDaughters="true" visible="true" />
<vis name="Si_vis" r="0.6" g="0.6" b="0.6" alpha="1.0" showDaughters="true" visible="true" />
<vis name="Sensitive_vis" r="0.0" g="0.0" b="1.0" alpha="1.0" showDaughters="true" visible="true" />

</display>

</lccdd>
3 changes: 3 additions & 0 deletions FCCee/IDEA/compact/IDEA_o1_v03/IDEA_o1_v03.xml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,9 @@
<!-- Import Endcap plate absorber -->
<include ref="EndPlateAbsorber_o1_v01.xml"/>

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

<plugins>
<plugin name="DD4hepVolumeManager"/>
<plugin name="InstallSurfaceManager"/>
Expand Down
69 changes: 69 additions & 0 deletions FCCee/IDEA/compact/IDEA_o1_v03/MuonSystem_o1_v01.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>

<info name="MuonSystem"
title=" detailed version of IDEA muon system for FCC-ee"
author="Mahmoud Ali, [email protected]"
url="no"
status="development"
version="2.0">
<comment> It depends on the factory: muonSystemMuRWELL_o1_v01 </comment>
</info>

<define>
<!--- Muon System Parameters -->
<!-- %%%%%% microRWELL chamber different layers thicknesses %%%%%% -->
<constant name = "G10_FR4Thick" value = "1.6*mm"/>
<constant name = "CuThick" value = "0.035*mm"/>
<constant name = "GasLayerThick" value = "6*mm"/>
<constant name = "Cu2Thick" value = "0.005*mm"/>
<constant name = "KaptonThick" value = "0.05*mm"/>
<constant name = "CarbonFiberThick" value = "0.0001*mm"/>
<constant name = "CarbonFiber2Thick" value = "0.1*mm"/>
<constant name = "SiThick" value = "1.6*mm"/>
<constant name = "mRWELLTotalThickness" value = "G10_FR4Thick+CuThick+GasLayerThick+Cu2Thick+KaptonThick+CarbonFiberThick+CuThick+CarbonFiber2Thick+CuThick+SiThick"/> <!-- This sequense is the current order of mRWELL (total 10 slices) -->

<constant name = "mRWELLYLength" value = "250*mm"/>
<constant name = "mRWELLZLength" value = "250*mm"/>

<constant name = "overlapingY" value = "5*mm"/> <!-- the common distance between mRWELL chambers in Y direction -->
<constant name = "overlapingZ" value = "5*mm"/> <!-- the common distance between mRWELL chambers in Z direction -->
<constant name = "clearance" value = "1*mm"/> <!-- it's a small distance to be used to avoid overlapping between the different volumes ~ 1 mm -->
<!-- %%%%%% Iron yoke thickness %%%%%% -->
<constant name = "YokeThickness" value = "300*mm"/>
</define>

<readouts>
<readout name="MuonSystemCollection">
<segmentation type="CartesianGridYZ" grid_size_y="1.2*mm" grid_size_z="1.2*mm"/> <!-- Depending on strip pitch 1.4 mm -->
<id>system:5,type:2,layer:4,chamber:15,slice:1,y:-10,z:-10</id> <!-- The bit field is divided into 2^5 systems(IDEA sub-detectors), 2^2 types(0 = Barrel Muon System, +1 = positive endcap, and -1 = negative endcap"), 2^4 layers(number of layers in barrel for example) ,2^15 chambers(the number of muRWELL chambers in every layer), 2^1 slice(number of sensitive layers inside every chambers), and 2^10 y&z strips in every sensitive layer-->
</readout>
</readouts>

<detectors>
<!-- mRWELL envelope -->
<detector name="Muon-System" type="muonSystemMuRWELL_o1_v01" id="DetID_muonSystem" readout="MuonSystemCollection">
<dimensions x="mRWELLTotalThickness/2.0" y="mRWELLYLength" z="mRWELLZLength" x_offset="0*mm" y_offset="0*mm" z_offset="0*mm" material="Air"/>
<sensitive type="tracker"/>

<!-- Specify the detector parameters and the overlap /// if you want exclude any component, e.g: endcap, just put endcapDetectorLayerss=0 in the Endcap Entry // radius is put in the middle, so its not the inner neither the outer -->
<generalParameters numSides="numberOfSides" overlapY="overlapingY" overlapZ="overlapingZ" clearance="clearance"/>
<Barrel numDetectorLayers ="3" rmin="BarrelFirstLayerRadius" length="BarrelLength" numYokes="2" yoke_Thickness="YokeThickness" yoke_Material="G4_Fe"/>
<Endcap numDetectorLayers="3" rmin="EndcapLayersInnerRadius" rmax="EndcapLayersOuterRadius" z_offset="EndcapFirstLayerZOffset" numYokes="2" yoke_Thickness="YokeThickness" yoke_Material="G4_Fe" />

<!-- mRWELL chamber -->
<!-- note: all thicknesses are half-lengths -->
<slice x="G10_FR4Thick/2.0" material="G10_FR4" vis="G10_FR4_vis" />
<slice x="CuThick/2.0" material="G4_Cu" vis="Cu_vis" />
<slice x="GasLayerThick/2.0" material="ARCO2CF4" sensitive="true" vis="Sensitive_vis" />
<slice x="Cu2Thick/2.0" material="G4_Cu" vis="Cu_vis" />
<slice x="KaptonThick/2.0" material="Kapton" vis="Kapton_vis" />
<slice x="CarbonFiberThick/2.0" material="CarbonFiber" vis="CarbonFiber_vis" />
<slice x="CuThick/2.0" material="G4_Cu" vis="Cu_vis" />
<slice x="CarbonFiber2Thick/2.0" material="CarbonFiber" vis="CarbonFiber_vis" />
<slice x="CuThick/2.0" material="G4_Cu" vis="Cu_vis" />
<slice x="SiThick/2.0" material="G4_Si" vis="Si_vis" />
</detector>
</detectors>

</lccdd>
203 changes: 203 additions & 0 deletions FCCee/IDEA/compact/IDEA_o1_v03/materials_o1_v02.xml
Original file line number Diff line number Diff line change
Expand Up @@ -395,4 +395,207 @@

<!-- FCCeeIDEA: end of material for the drift chamber -->

<!-- FCCeeIDEA: material for the microRWELL detectors(for Muon system and Pre-shower)-->
<isotope N="63" Z="29" name="Cu63">
<atom unit="g/mole" value="62.9296"/>
</isotope>

<isotope N="65" Z="29" name="Cu65">
<atom unit="g/mole" value="64.9278"/>
</isotope>

<element name="CuMixture">
<fraction n="0.6917" ref="Cu63"/>
<fraction n="0.3083" ref="Cu65"/>
</element>

<material name="G4_Cu" state="solid">
<T unit="K" value="293.15"/>
<MEE unit="eV" value="322"/>
<D unit="g/cm3" value="8.96"/>
<fraction n="1" ref="CuMixture"/>
</material>

<material name="C19-H20-O4">
<D value="1.16" unit="g/cm3" />
<composite n="19" ref="C"/>
<composite n="20" ref="H" />
<composite n="4" ref="O" />
</material>

<material name="CO2" state="gas">
<D value="0.001977" unit="g/cm3" />
<composite n="1" ref="C"/>
<composite n="2" ref="O" />
</material>

<material name="CF4" formula="CF4" state="gas">
<D value="0.00372" unit="g/cm3" />
<composite n="1" ref="C"/>
<composite n="4" ref="F"/>
</material>

<material name="ARCO2CF4" state="gas">
<D value="0.00253245" unit="g/cm3" />
<composite n="0.45" ref="Argon"/>
<composite n="0.15" ref="CO2"/>
<composite n="0.40" ref="CF4"/>
</material>

<material name="G4_Fe" state="solid">
<MEE unit="eV" value="286"/>
<D value="7.874" unit="g/cm3" />
<fraction n="1" ref="Fe"/>
</material>

<material name="G4_Si" state="solid">
<T unit="K" value="293.15"/>
<MEE unit="eV" value="173"/>
<D unit="g/cm3" value="2.33"/>
<fraction n="1" ref="Si"/>
</material>

<isotope N="40" Z="20" name="Ca40">
<atom unit="g/mole" value="39.9626"/>
</isotope>
<isotope N="42" Z="20" name="Ca42">
<atom unit="g/mole" value="41.9586"/>
</isotope>
<isotope N="43" Z="20" name="Ca43">
<atom unit="g/mole" value="42.9588"/>
</isotope>
<isotope N="44" Z="20" name="Ca44">
<atom unit="g/mole" value="43.9555"/>
</isotope>
<isotope N="46" Z="20" name="Ca46">
<atom unit="g/mole" value="45.9537"/>
</isotope>
<isotope N="48" Z="20" name="Ca48">
<atom unit="g/mole" value="47.9525"/>
</isotope>
<element name="Calcium">
<fraction n="0.96941" ref="Ca40"/>
<fraction n="0.00647" ref="Ca42"/>
<fraction n="0.00135" ref="Ca43"/>
<fraction n="0.02086" ref="Ca44"/>
<fraction n="4e-05" ref="Ca46"/>
<fraction n="0.00187" ref="Ca48"/>
</element>
<isotope N="27" Z="13" name="Al27">
<atom unit="g/mole" value="26.9815"/>
</isotope>
<element name="Aluminum">
<fraction n="1" ref="Al27"/>
</element>
<isotope N="24" Z="12" name="Mg24">
<atom unit="g/mole" value="23.985"/>
</isotope>
<isotope N="25" Z="12" name="Mg25">
<atom unit="g/mole" value="24.9858"/>
</isotope>
<isotope N="26" Z="12" name="Mg26">
<atom unit="g/mole" value="25.9826"/>
</isotope>
<element name="Magnesium">
<fraction n="0.7899" ref="Mg24"/>
<fraction n="0.1" ref="Mg25"/>
<fraction n="0.1101" ref="Mg26"/>
</element>
<isotope N="10" Z="5" name="B10">
<atom unit="g/mole" value="10.0129"/>
</isotope>
<isotope N="11" Z="5" name="B11">
<atom unit="g/mole" value="11.0093"/>
</isotope>
<element name="Boron">
<fraction n="0.199" ref="B10"/>
<fraction n="0.801" ref="B11"/>
</element>
<isotope N="46" Z="22" name="Ti46">
<atom unit="g/mole" value="45.9526"/>
</isotope>
<isotope N="47" Z="22" name="Ti47">
<atom unit="g/mole" value="46.9518"/>
</isotope>
<isotope N="48" Z="22" name="Ti48">
<atom unit="g/mole" value="47.9479"/>
</isotope>
<isotope N="49" Z="22" name="Ti49">
<atom unit="g/mole" value="48.9479"/>
</isotope>
<isotope N="50" Z="22" name="Ti50">
<atom unit="g/mole" value="49.9448"/>
</isotope>
<element name="Titanium">
<fraction n="0.0825" ref="Ti46"/>
<fraction n="0.0744" ref="Ti47"/>
<fraction n="0.7372" ref="Ti48"/>
<fraction n="0.0541" ref="Ti49"/>
<fraction n="0.0518" ref="Ti50"/>
</element>
<isotope N="23" Z="11" name="Na23">
<atom unit="g/mole" value="22.9898"/>
</isotope>
<element name="Sodium">
<fraction n="1" ref="Na23"/>
</element>
<isotope N="39" Z="19" name="K39">
<atom unit="g/mole" value="38.9637"/>
</isotope>
<isotope N="40" Z="19" name="K40">
<atom unit="g/mole" value="39.964"/>
</isotope>
<isotope N="41" Z="19" name="K41">
<atom unit="g/mole" value="40.9618"/>
</isotope>
<element name="Potassium">
<fraction n="0.932581" ref="K39"/>
<fraction n="0.000117" ref="K40"/>
<fraction n="0.067302" ref="K41"/>
</element>
<isotope N="54" Z="26" name="Fe54">
<atom unit="g/mole" value="53.9396"/>
</isotope>
<isotope N="56" Z="26" name="Fe56">
<atom unit="g/mole" value="55.9349"/>
</isotope>
<isotope N="57" Z="26" name="Fe57">
<atom unit="g/mole" value="56.9354"/>
</isotope>
<isotope N="58" Z="26" name="Fe58">
<atom unit="g/mole" value="57.9333"/>
</isotope>
<element name="Iron">
<fraction n="0.05845" ref="Fe54"/>
<fraction n="0.91754" ref="Fe56"/>
<fraction n="0.02119" ref="Fe57"/>
<fraction n="0.00282" ref="Fe58"/>
</element>
<isotope N="19" Z="9" name="F19">
<atom unit="g/mole" value="18.9984"/>
</isotope>
<element name="Fluorine">
<fraction n="1" ref="F19"/>
</element>
<material name="G10_FR4" state="solid">
<T unit="K" value="293.15"/>
<MEE unit="eV" value="97.5174862751826"/>
<D unit="g/cm3" value="1.8"/>
<fraction n="0.275294485761732" ref="C"/>
<fraction n="0.0342756035967338" ref="H"/>
<fraction n="0.360438084258819" ref="O"/>
<fraction n="0.0141585430641827" ref="N"/>
<fraction n="0.151448564740455" ref="Si"/>
<fraction n="0.0814747796865075" ref="Calcium"/>
<fraction n="0.0412815383454296" ref="Aluminum"/>
<fraction n="0.00904554293278041" ref="Magnesium"/>
<fraction n="0.0139757056089465" ref="Boron"/>
<fraction n="0.00287683979315724" ref="Titanium"/>
<fraction n="0.00445114704467721" ref="Sodium"/>
<fraction n="0.0049808870209235" ref="Potassium"/>
<fraction n="0.00209827814565587" ref="Iron"/>
<fraction n="0.0042" ref="Fluorine"/>
</material>
<!-- End of microRWELL materials -->

</materials>
4 changes: 2 additions & 2 deletions FCCee/IDEA/compact/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ IDEA version picked from the latest version in FCCDetectors repo
IDEA_o1_v02
------------

Based on o1_v01 but with a detailed description of the vertex detector and the drift chamber, a place holder solenoid and the endplate absorber. Missing: SiWrapper, calorimeter, detailed muons system (coming soon).
Based on o1_v01 but with a detailed description of the vertex detector, drift chamber, a place holder solenoid and the endplate absorber. Missing: SiWrapper, calorimeter.

IDEA_o1_v03
------------

Based on o1_v02 but replacing the drift chamber (o1, v01) for the lightweight implementation based on twisted tubes (o1, v02). Production threshold and step limit physics have to be tuned
Based on o1_v02 but replacing the drift chamber (o1, v01) for the lightweight implementation based on twisted tubes (o1, v02). NB: production threshold and step limit physics have to be tuned for the drift chamber. July 2024: Added a detailed version of the muon system.

10 changes: 10 additions & 0 deletions detector/muonSystem/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# µRWELL Based Muon System

The IDEA detector concept includes a muon detection system and pre-shower designed using µRWELL technology. Each station consists of a large mosaic of 50 × 50 cm² µRWELL detectors. For more technical details about the new detector technology, see the [µRWELL](https://iopscience.iop.org/article/10.1088/1748-0221/10/02/P02008).

## muonSystemMuRWELL_o1_v01.cpp
The first version of the detailed muon system driver, it can be used to describe both barrel and endcap, if you want to eleminate one of them, just set the number of layers= 0.
The code has been designed to be very flexible, where the user can choose the number of sides in the R-Phi plane, `numSides` (hexagon, octagon, etc), and the detector builder will automatically calculate the number and places of the copied chambers. Some of the code advantages:
* If the side length do not fit with an integer number of 50 × 50 cm² , the builder will make a chamber with unusual dimensions, which can fit the excess area at the end of the side.
* The availability to make multiple layers with different inner radius and barrel length.
* The code is very general, it can be used to describe any detector system made from repeated tiles (e.g. pre-shower) and has the capability to fill the gaps with unusual dimensions tiles.
Loading

0 comments on commit 2e1bba2

Please sign in to comment.