Skip to content

Commit

Permalink
Adding IDEA_o1_v02 and its vertex detector (#273)
Browse files Browse the repository at this point in the history
* Leaving ZPlanarTracker as it is but instead make a new VertexBarrel_o1_v01_geo module

* Added ability to have flex and support consisting of multiple components, ability to tilt whole modules.

* First implementation of IDEA end-cap and adaption of barrel

* Version of Barrel with correct sensitive surfaces (use teveDisplay to show them)

* Improved structure of barrel detectors (layer - ladder+sensors)

* Progress: The surface arrows are now displayed in the endcap, but the volumes not yet

* Whole barrel is properly visible in teveDisplay, but don't mange to make good assembly structure

* Also endcap shows all volumes in teveDisplay, but bad hierarchy

* Endcap and barrel now run through ddsim overlap checker (overlaps still there)

* IDEA Vertex working with ddsim, some overlaps still to be understood

* Not working teveDisplay, endcap digitisation not working probably therefore

* Fixed endcap, all surfaces visible in teveDisplay, managed to run ddsim and fccRec_e4h with vertex digitisation, but no vertices reco'd yet, bad hierarchy again

* Non-working version, the sensitive volumes are wrong, no idea why, use the previous commit

* Found way to remove mother volumes in sensitive and passives. Now all overlaps in Endcap gone

* Recomputing bounding boxes, hasn't fixed the problem yet

* Adding IDEA as FCCee_IDEA_o1_v01, not final yet, need to make sure that latest beam pipe and other files are used. There's also still an overlap between the CAD-imported vertex support and the vertex barrel

* Adding scripts

* Addressing comments from MR, adding some tests for DDCAD files

* Adapting dd4hep::CellID instead of long64

* Changing naming convention to Vertex inner barrel, vertex outer barrel and vertex disks, adding working DDCAD import of vertex inner barrel support (using material budget estimation from FCCSW not working yet though, need to use g4MaterialScan). Adding example on how I install k4geo locally (install.sh)

* SingleShape_geo not needed for DDCAD import, instead using DD4hep_TestShape_Creator from DD4hep

* Changing CAD shape name

* Adding all plotting scripts

* Renaming constructor files, adding in latest changes

* Add README file for the vertex detector constructors, remove HOM absorber

* Make scripts working with command line input argument for xml file

* Change folder structure as sugested by Brieuc

* Using .obj file for Vertex inner barrel support instead of .stl, running now without Geant4 exceptions

* Adding back hierarchy of vertex detector elements, visualisation does not work in teveDisplay (for the whole vertex) or in geoDisplay (for the disks), but is working when using scripts/build_view.sh

* Add missing periphery components to outer barrel

* ATLASPix3 modules were 90 degrees rotated, now fixed. Furthermore wrong distance between individual chips fixed

* Test is working now for the key4hep nightly release, decreasing large timeout again

* Reducing hierarchy by one level in the endcaps, so that it's visible in geoDisplay. Apparently three levels of hierarchy of assemblies is the limit, otherwise geoDisplay will not show the volumes. It is not working in teveDisplay however

* Moving IDEA scripts to FCCee/scripts as they are generally usable

* Fixing paths using a /afs/cern.ch/user/a/afehr/lcgeo global variable

* Found another way to get the correct paths for the scripts, using /cvmfs/sw-nightlies.hsf.org/key4hep/releases/2023-07-22/x86_64-centos7-gcc12.2.0-opt/k4geo/1c08affe597cf3b1c10c4e81cdbc95ab9e4a4d23=develop-q7e4mj/share/k4geo/compact for the DDCAD import in Vertex_IDEA_o1_v01.xml, should work once merged and added to the key4hep nightly

* Using same beampipe as in CLD_o2_v05

* Letting IDEA test run from anywhere

* Renaming beampipe to match with CLD beampipe (identical at the moment, change name when they differ)

* Fixing test and have correct name for beampipe also in main xml file. The test will only run once the IDEA folder is in the nightly Key4hep software stack

* Multiple properties in one SET_TESTS_PROPERTIES instance

* Moved volume creation within main part of program, so that correct volume names can be assigned. Furthermore changed DetElements in barrel constructor so that they can be properly accessed in k4RecTracker

* Added functionality to have end of stave structures in vertex barrel. This is applied in the IDEA vertex detector. Other than this, also the width of the sensor support in the vertex barrel was corrected to be only 4.4 mm wide (instead of 8.8)

* Added end-of-stave structures or proxies as well for the outer barrel, only end-cap missing

* Making proxy end-of-stave structure smaller to not have overlaps

* Unified description of readout and support structures, now called components. Multiple components can be added per stave and the name will be used to name the corresponding assembly. Furthermore fixed the sensitive/periphery regions in VTXIB layers 2 and 3 to be correct

* Fixing volIDs in barrel, adding end-of-stave structures in barrel and end-cap.

* Correcting material in beam pipe

* Fixing test and for the moment comment out the vertex inner barrel support as it will fail the test, since the CAD file cannot be found. After the IDEA detector is in a nightly release, then the CAD file will be found and we can include these lines in the xml again

* Changing to IDEA_o1_v02

---------

Co-authored-by: Armin Fehr <[email protected]>
  • Loading branch information
armin-ilg and Armin Fehr authored Oct 3, 2023
1 parent 4ea83fd commit 1dfca23
Show file tree
Hide file tree
Showing 22 changed files with 27,437 additions and 4 deletions.
36 changes: 36 additions & 0 deletions FCCee/IDEA/compact/IDEA_o1_v02/BeamInstrumentation_o1_v01.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<lccdd>

<info name="FCCee"
title="FCCee Beam instrumentation: taken correspoding to CLD: BeamInstrumentation_o3_v02_fitShield.xml"
author="from ILCSOFT/lcgeo/FCCee/compact/FCCee_o1_v04"
url="no"
status="development"
version="1.0">
<comment>COmpensating and screening solenoids for FCCee</comment>
</info>


<detectors>
<comment>Beampipe Instrumentation</comment>

<detector name="CompSol" type="DD4hep_Mask_o1_v01" insideTrackingVolume="true" vis="CompSolVis">
<parameter crossingangle="CrossingAngle" />
<envelope vis="CoilVis">
<shape type="Assembly"/>
</envelope>
<section type="Center" start="CompSol_min_z" end="QD0_min_z" rMin1="103*mm" rMin2="180*mm" rMax1="123*mm" rMax2="200*mm" material="SolenoidMixture" name="CompSol" />
</detector>

<detector name="ScreenSol" type="DD4hep_Mask_o1_v01" insideTrackingVolume="true" vis="ScreenSolVis">
<parameter crossingangle="CrossingAngle" />
<envelope vis="CoilVis">
<shape type="Assembly"/>
</envelope>

<section type="Center" start="QD0_min_z" end="QD0_min_z+5*cm" rMin1="SeparatedBeamPipe_rmax+1*mm+5*cm" rMin2="SeparatedBeamPipe_rmax+1*mm+5*cm" rMax1="200*mm" rMax2="200*mm" material="SolenoidMixture" name="CompSol" />

<section type="Center" start="QD0_min_z+5*cm" end="QD0_max_z" rMin1="180*mm" rMin2="180*mm" rMax1="200*mm" rMax2="200*mm" material="SolenoidMixture" name="CompSol" />
</detector>

</detectors>
</lccdd>
158 changes: 158 additions & 0 deletions FCCee/IDEA/compact/IDEA_o1_v02/Beampipe_o4_v05.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
<lccdd>

<info name="FCCee"
title="FCCee low impedance Beam pipe with small radius"
author="Andre Sailer"
url="no"
status="development"
version="1.0">
<comment>A beampipe for FCCee detector based on CLD</comment>
</info>

<!-- Definition of global dictionary constants -->
<define>
<!-- Definition of global dictionary constants -->
<constant name="beampipegoldwidth" value="BeamPipeGoldWidth"/>
<constant name="beampipegoldtolerance" value="BeamPipeGoldTolerance"/>
</define>

<!-- Definition of the used visualization attributes -->
<display>
<vis name="BeamPipeVis" alpha="0.0" r="0.0" g="1.0" b="0.0" showDaughters="true" visible="false"/>
<vis name="GoldCoatingVis" alpha="0.0" r="0.0" g="1.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="TubeVis" alpha="1.0" r="1.0" g="0.7" b="0.5" showDaughters="true" visible="true"/>
<vis name="VacVis" alpha="1.0" r="1.0" g="1.0" b="1.0" showDaughters="true" visible="false"/>
</display>

<detectors>

<!-- ;radius calculator lisp
(+ 12.0 (* (/ (- 28.9 12.0) (- 1190.0 90.0)) (- 110.0 90.0) ) )
-->
<comment>Part of beampipe made of AlBeMet162 and Paraffin flow</comment>

<detector name="BeBeampipe" type="DD4hep_Beampipe_o1_v01" insideTrackingVolume="true" nocore="true" vis="BeamPipeVis">
<parameter crossingangle="CrossingAngle" />
<envelope vis="BlueVis">
<shape type="Assembly"/>
</envelope>
<!-- central section made of two walls of 0.35 mm albemet and liquid paraffin in the middle -->
<section type="Center" start="0*mm" end="CentralBeamPipe_zmax" rMin1="CentralBeamPipe_rmax" rMin2="CentralBeamPipe_rmax" rMax1="CentralBeamPipe_rmax+BPWWall" rMax2="CentralBeamPipe_rmax+BPWWall" material="AlBeMet162" name="VertexInnerAlb" />
<section type="Center" start="0*mm" end="CentralBeamPipe_zmax" rMin1="CentralBeamPipe_rmax+BPWWall" rMin2="CentralBeamPipe_rmax+BPWWall" rMax1="CentralBeamPipe_rmax+BPWWall+BPWCool" rMax2="CentralBeamPipe_rmax+BPWWall+BPWCool" material="LiquidNDecane" name="VertexParaffin" />
<section type="Center" start="0*mm" end="CentralBeamPipe_zmax" rMin1="CentralBeamPipe_rmax+BPWWall+BPWCool" rMin2="CentralBeamPipe_rmax+BPWWall+BPWCool" rMax1="CentralBeamPipe_rmax+2*BPWWall+BPWCool" rMax2="CentralBeamPipe_rmax+2*BPWWall+BPWCool" material="AlBeMet162" name="VertexOuterAlb" />
<section type="Center" start="CentralBeamPipe_zmax" end="SeparatedBeamPipe_z" rMin1="CentralBeamPipe_rmax" rMin2="ConeBeamPipe_Rmax" rMax1="CentralBeamPipe_rmax+BeamPipeWidthFirstCone" rMax2="ConeBeamPipe_Rmax+BeamPipeWidthFirstCone" material="AlBeMet162" name="AlBeMet162" />

</detector>

<detector name="BeamPipe" type="DD4hep_Beampipe_o1_v01" insideTrackingVolume="true" vis="BeamPipeVis" >
<envelope vis="BlueVis">
<shape type="Assembly"/>
</envelope>
<parameter crossingangle="CrossingAngle" />

<!-- &A Z1 Z2 RIn1 RIn2 ROut1 ROut2 Material -->

<comment>Golden foil in the inner part of the Be beampipe</comment>

<section type="Center" start="0*mm" end="CentralBeamPipe_zmax" rMin1="CentralBeamPipe_rmax-(beampipegoldwidth+beampipegoldtolerance)" rMin2="CentralBeamPipe_rmax-(beampipegoldwidth+beampipegoldtolerance)" rMax1="CentralBeamPipe_rmax-beampipegoldtolerance" rMax2="CentralBeamPipe_rmax-beampipegoldtolerance" material="Gold" name="VertexInnerGold" />

<section type="Center" start="CentralBeamPipe_zmax" end="SeparatedBeamPipe_z" rMin1="CentralBeamPipe_rmax-(beampipegoldwidth+beampipegoldtolerance)" rMin2="ConeBeamPipe_Rmax-(beampipegoldwidth+beampipegoldtolerance)" rMax1="CentralBeamPipe_rmax-beampipegoldtolerance" rMax2="ConeBeamPipe_Rmax-beampipegoldtolerance" material="Gold" name="ConicalChamberGold" />

<section type="PunchedCenter" start="SeparatedBeamPipe_z" end="SeparatedBeamPipe_z+3*mm" rMin1="SeparatedBeamPipe_rmax" rMin2="SeparatedBeamPipe_rmax" rMax1="ConeBeamPipe_Rmax+BeamPipeWidthFirstCone" rMax2="ConeBeamPipe_Rmax+BeamPipeWidthFirstCone" material="Copper" name="SplitVacChambers"/>

<section type="DnstreamClippedFront" start="SeparatedBeamPipe_z+3.0*mm" end="6000*mm" rMin1="SeparatedBeamPipe_rmax" rMin2="SeparatedBeamPipe_rmax" rMax1="SeparatedBeamPipe_rmax+1*mm" rMax2="SeparatedBeamPipe_rmax+1*mm" material="Copper" name="DownStreamBeamPipe_1"/>


<section type="UpstreamClippedFront" start="SeparatedBeamPipe_z+3.0*mm" end="MiddleOfSRMask_z -3*cm" rMin1="SeparatedBeamPipe_rmax" rMin2="SeparatedBeamPipe_rmax" rMax1="SeparatedBeamPipe_rmax+1*mm" rMax2="SeparatedBeamPipe_rmax+1*mm" material="Copper" name="UpStreamBeamPipe_1"/>

<section type="Upstream" start="MiddleOfSRMask_z -3*cm" end="MiddleOfSRMask_z -1*cm" rMin1="SeparatedBeamPipe_rmax" rMax1="SeparatedBeamPipe_rmax+1*mm" rMin2="SeparatedBeamPipe_rmax-SynchRadMaskSize" rMax2="SeparatedBeamPipe_rmax+0.01*mm - SynchRadMaskSize" material="Copper" name="UpStreamBeamPipe_2" />

<section type="Upstream" start="MiddleOfSRMask_z -1*cm" end="MiddleOfSRMask_z +1*cm" rMin1="SeparatedBeamPipe_rmax-SynchRadMaskSize" rMax1="SeparatedBeamPipe_rmax+0.01*mm - SynchRadMaskSize" rMin2="SeparatedBeamPipe_rmax-SynchRadMaskSize" rMax2="SeparatedBeamPipe_rmax+0.01*mm - SynchRadMaskSize" material="Copper" name="UpStreamBeamPipe_3" />

<section type="Upstream" start="MiddleOfSRMask_z +1*cm" end="MiddleOfSRMask_z +3*cm" rMin1="SeparatedBeamPipe_rmax-SynchRadMaskSize" rMax1="SeparatedBeamPipe_rmax+0.01*mm - SynchRadMaskSize" rMin2="SeparatedBeamPipe_rmax" rMax2="SeparatedBeamPipe_rmax+1*mm" material="Copper" name="UpStreamBeamPipe_4" />

<section type="Upstream" start="MiddleOfSRMask_z +3*cm" end="6000*mm" rMin1="SeparatedBeamPipe_rmax" rMin2="SeparatedBeamPipe_rmax" rMax1="SeparatedBeamPipe_rmax+1*mm" rMax2="SeparatedBeamPipe_rmax+1*mm" material="Copper" name="UpStreamBeamPipe_5" />

</detector>

<!-- 2020.04.08 : Synch Radiation mask (symmetyric in phi for the while) -->

<comment>Synch Radiation mask inside the beam-pipe, at z = 2.1 m </comment>
<detector name="SynchRadMask" type="DD4hep_Mask_o1_v01" insideTrackingVolume="true" vis="TantalumVis" >
<parameter crossingangle="CrossingAngle" />

<section type="Upstream" start="MiddleOfSRMask_z -3*cm" end="MiddleOfSRMask_z -1*cm" rMin1="SeparatedBeamPipe_rmax +1*mm + mask_epsilon" rMax1="SeparatedBeamPipe_rmax+1*mm +2*mask_epsilon" rMin2="SeparatedBeamPipe_rmax +0.01*mm -SynchRadMaskSize + mask_epsilon" rMax2="SeparatedBeamPipe_rmax+1*mm +2* mask_epsilon" material="Tungsten" name="UpStreamBeamPipe_SRmask_1" />

<section type="Upstream" start="MiddleOfSRMask_z -1*cm" end="MiddleOfSRMask_z +1*cm" rMin1="SeparatedBeamPipe_rmax +0.01*mm -SynchRadMaskSize + mask_epsilon" rMax1="SeparatedBeamPipe_rmax+1*mm +2*mask_epsilon " rMin2="SeparatedBeamPipe_rmax +0.01*mm -SynchRadMaskSize + mask_epsilon" rMax2="SeparatedBeamPipe_rmax+1*mm + 2*mask_epsilon" material="Tungsten" name="UpStreamBeamPipe_SRmask_2" />

<section type="Upstream" start="MiddleOfSRMask_z +1*cm" end="MiddleOfSRMask_z +3*cm" rMin1="SeparatedBeamPipe_rmax +0.01*mm -SynchRadMaskSize +mask_epsilon" rMax1="SeparatedBeamPipe_rmax+1*mm + 2*mask_epsilon" rMin2="SeparatedBeamPipe_rmax +1*mm + mask_epsilon" rMax2="SeparatedBeamPipe_rmax+1*mm +2*mask_epsilon" material="Tungsten" name="UpStreamBeamPipe_SRmask_3" />

</detector>

<comment>Full Cone Tungsten Shield</comment>
<detector name="BeamPipeShield" type="DD4hep_Mask_o1_v01" insideTrackingVolume="true" vis="TantalumVis" >
<parameter crossingangle="CrossingAngle" />

<comment>Beampipe Shield (APS: WHAT????? +18 cm (??plus??) as solenoid is now closer to IP) </comment>
<section type="PunchedCenter"
start="SeparatedBeamPipe_z + 5*mm" end="QD0_min_z + 18*cm"
rMin1="SeparatedBeamPipe_rmax + BeamPipeWidth + 0.1*mm"
rMin2="SeparatedBeamPipe_rmax + BeamPipeWidth + 0.1*mm "
rMax1="SeparatedBeamPipe_rmax + (SeparatedBeamPipe_z + 5*mm) * 0.015 + BeamPipeWidth + 0.1*mm + BeamPipeTantalShieldWidth"
rMax2="SeparatedBeamPipe_rmax + (QD0_min_z + 18*cm) * 0.015 + BeamPipeWidth + 0.1*mm + BeamPipeTantalShieldWidth"
material="Tungsten" name="TaShield" />

</detector>


<comment>Asymmetric Tungsten Shield no Rotation</comment>

<detector name="BeamPipeShield_noRot" type="DD4hep_Mask_o1_v01" insideTrackingVolume="true" vis="TantalumVis" >
<parameter crossingangle="CrossingAngle" rotationX="true"/>

<section type="Center"
start="500*mm" end="LumiCal_max_z + 4.9*mm"
rMin1="CentralBeamPipe_rmax + BeamPipeWidthFirstCone + (500.0*mm - CentralBeamPipe_zmax) * BeamPipeConeHalfAngle + 0.1*mm"
rMin2="CentralBeamPipe_rmax + BeamPipeWidthFirstCone + (LumiCal_max_z + 4.9*mm - CentralBeamPipe_zmax) * BeamPipeConeHalfAngle + 0.1*mm"
rMax1="CentralBeamPipe_rmax + BeamPipeWidthFirstCone + (500.0*mm - CentralBeamPipe_zmax) * BeamPipeConeHalfAngle + 0.1*mm + TopFillerShieldWidth"
rMax2="CentralBeamPipe_rmax + BeamPipeWidthFirstCone + (LumiCal_max_z + 4.9*mm - CentralBeamPipe_zmax) * BeamPipeConeHalfAngle + 0.1*mm + BeamPipeTantalShieldWidth"
phi1="326*degree"
phi2="34*degree"
material="Tungsten" name="TaShieldTopPart" />

<comment>was 370. Add 0.1*mm so that rmax1 is larger than rmin1 </comment>
<section type="Center"
start="330*mm" end="500*mm"
rMin1="CentralBeamPipe_rmax + BeamPipeWidthFirstCone + (330*mm - CentralBeamPipe_zmax) * BeamPipeConeHalfAngle + 0.1*mm"
rMin2="CentralBeamPipe_rmax + BeamPipeWidthFirstCone + (500*mm - CentralBeamPipe_zmax) * BeamPipeConeHalfAngle + 0.1*mm"
rMax1="CentralBeamPipe_rmax + BeamPipeWidthFirstCone + (330*mm - CentralBeamPipe_zmax) * BeamPipeConeHalfAngle + 0.1*mm + 0.1*mm"
rMax2="CentralBeamPipe_rmax + BeamPipeWidthFirstCone + (500*mm - CentralBeamPipe_zmax) * BeamPipeConeHalfAngle + 0.1*mm + TopFillerShieldWidth"
phi1="326*degree"
phi2="34*degree"
material="Tungsten" name="TaShieldTopPart2" />

<comment>one degree less, to fit lumical window</comment>
<section type="Center"
start="600*mm" end="LumiCal_max_z + 4.9*mm"
rMin1="CentralBeamPipe_rmax + BeamPipeWidthFirstCone + (600*mm - CentralBeamPipe_zmax) * BeamPipeConeHalfAngle + 0.1*mm"
rMin2="CentralBeamPipe_rmax + BeamPipeWidthFirstCone + (LumiCal_max_z + 4.9*mm - CentralBeamPipe_zmax) * BeamPipeConeHalfAngle + 0.1*mm"
rMax1="CentralBeamPipe_rmax + BeamPipeWidthFirstCone + (600*mm - CentralBeamPipe_zmax) * BeamPipeConeHalfAngle + 0.1*mm + SideFillerShieldWidth"
rMax2="CentralBeamPipe_rmax + BeamPipeWidthFirstCone + (LumiCal_max_z + 4.9*mm - CentralBeamPipe_zmax) * BeamPipeConeHalfAngle + 0.1*mm + BeamPipeTantalShieldWidth"
phi1="34*degree"
phi2="70*degree"
material="Tungsten" name="TaShieldFiller1" />

<section type="Center"
start="600*mm" end="LumiCal_max_z + 4.9*mm"
rMin1="CentralBeamPipe_rmax + BeamPipeWidthFirstCone + (600*mm - CentralBeamPipe_zmax) * BeamPipeConeHalfAngle + 0.1*mm"
rMin2="CentralBeamPipe_rmax + BeamPipeWidthFirstCone + (LumiCal_max_z + 4.9*mm - CentralBeamPipe_zmax) * BeamPipeConeHalfAngle + 0.1*mm"
rMax1="CentralBeamPipe_rmax + BeamPipeWidthFirstCone + (600*mm - CentralBeamPipe_zmax) * BeamPipeConeHalfAngle + 0.1*mm + SideFillerShieldWidth"
rMax2="CentralBeamPipe_rmax + BeamPipeWidthFirstCone + (LumiCal_max_z + 4.9*mm - CentralBeamPipe_zmax) * BeamPipeConeHalfAngle + 0.1*mm + BeamPipeTantalShieldWidth"
phi1="291*degree"
phi2="326*degree"
material="Tungsten" name="TaShieldFiller2" />

</detector>

</detectors>
</lccdd>
Loading

0 comments on commit 1dfca23

Please sign in to comment.