Skip to content

Commit

Permalink
[IDEA] Add a solenoid and magnetic fields (#327)
Browse files Browse the repository at this point in the history
  • Loading branch information
BrieucF authored Mar 21, 2024
1 parent 89955b0 commit 3bc0d81
Show file tree
Hide file tree
Showing 5 changed files with 116 additions and 7 deletions.
18 changes: 12 additions & 6 deletions FCCee/IDEA/compact/IDEA_o1_v02/DectDimensions_IDEA_o1_v01.xml
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,18 @@
<constant name="DCH_outer_radius" value="2000*mm"/> <!-- Contact the drift chamber experts if you need to change the DC radiuses (just changing the radius is not enough, the DC has been optimized for those values, the detector geometry is constrained by many construction/mechanical/electronics/etc considerations -->
<constant name="DCH_half_length" value="2250*mm"/> <!-- this includes the services -->

<constant name="Solenoid_inner_radius" value="2100*mm"/>
<constant name="Solenoid_outer_radius" value="2400*mm"/>
<constant name="Solenoid_half_length" value="2500*mm"/>
<constant name="Solenoid_Coil_half_length" value="Solenoid_half_length-200*mm"/>
<constant name="Solenoid_Coil_radius" value="Solenoid_inner_radius+200*mm"/>

<!-- These are lead plates that we put in the endcap to have the same material budget (from solenoid) as in the barrel-->
<constant name="EndPlateAbsorber_inner_radius" value="380*mm"/>
<constant name="EndPlateAbsorber_outer_radius" value="2090*mm"/>
<constant name="EndPlateAbsorber_z_min" value="2490*mm"/>
<constant name="EndPlateAbsorber_z_half_length" value="4.209/2.0*mm"/>

<constant name="ECalBarrel_inner_radius" value="2150*mm"/>
<constant name="ECalBarrel_outer_radius" value="2352*mm"/>
<constant name="ECalBarrel_half_length" value="2210*mm"/>
Expand Down Expand Up @@ -131,12 +143,6 @@
<constant name="HCalRing_max_z" value="HCalEndcap_min_z"/>
<constant name="HCalRing_symmetry" value="12"/>

<constant name="Solenoid_inner_radius" value="3719*mm"/>
<constant name="Solenoid_outer_radius" value="4272*mm"/>
<constant name="Solenoid_half_length" value="3705*mm"/>
<constant name="Solenoid_Coil_half_length" value="3476*mm"/>
<constant name="Solenoid_Coil_radius" value="3930*mm"/>

<constant name="YokeBarrel_inner_radius" value="4479*mm"/>
<constant name="YokeBarrel_outer_radius" value="6000*mm"/>
<constant name="YokeBarrel_half_length" value="3755*mm"/>
Expand Down
21 changes: 21 additions & 0 deletions FCCee/IDEA/compact/IDEA_o1_v02/EndPlateAbsorber_o1_v01.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<lccdd>

<info name="EndPlateAbsorber" title="EndPlateAbsorber" status="development" version="$Id: $">
<comment>
Endcap plate absorber to mimic the material budget from the solenoid (0.75 X0) present only in the barrel and start the showers.
</comment>
</info>

<detectors>

<detector name="EndPlateAbsorber_positive" type="SimpleCylinder_o1_v01" vis="muon_vis">
<dimensions rmin="EndPlateAbsorber_inner_radius" rmax="EndPlateAbsorber_outer_radius" dz="EndPlateAbsorber_z_half_length" z_offset = "EndPlateAbsorber_z_min + EndPlateAbsorber_z_half_length" material="Lead" phi0="0" deltaphi="360*deg" vis="muon_vis"/>
</detector>

<detector name="EndPlateAbsorber_negative" type="SimpleCylinder_o1_v01" vis="muon_vis">
<dimensions rmin="EndPlateAbsorber_inner_radius" rmax="EndPlateAbsorber_outer_radius" dz="EndPlateAbsorber_z_half_length" z_offset = "-1*(EndPlateAbsorber_z_min + EndPlateAbsorber_z_half_length)" material="Lead" phi0="0" deltaphi="360*deg" vis="muon_vis"/>
</detector>

</detectors>

</lccdd>
32 changes: 32 additions & 0 deletions FCCee/IDEA/compact/IDEA_o1_v02/IDEA_o1_v02.xml
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,41 @@
<!-- Import silicon wrapper -->
<!-- <include ref="SiliconWrapper_o1_v01.xml"/> -->

<!-- Import solenoid -->
<include ref="Solenoid_o1_v01.xml"/>

<!-- Import Endcap plate absorber -->
<include ref="EndPlateAbsorber_o1_v01.xml"/>

<plugins>
<plugin name="DD4hepVolumeManager"/>
<plugin name="InstallSurfaceManager"/>
</plugins>

<fields>
<field name="GlobalSolenoid" type="solenoid"
inner_field="SolenoidField"
outer_field="-1.0*tesla"
zmax="Solenoid_Coil_half_length"
outer_radius="Solenoid_Coil_radius">
</field>

<!-- FIXME cross-check this with MDI crew -->
<field name="CompensatingSolenoidZplus" type="solenoid"
inner_field="-SolenoidField -SolenoidField * QD0_min_z / ( QD0_min_z - CompSol_min_z)"
outer_field="0*tesla"
zmax="QD0_min_z"
zmin="CompSol_min_z"
outer_radius="20*cm">
</field>

<field name="CompensatingSolenoidZminus" type="solenoid"
inner_field="-SolenoidField -SolenoidField * QD0_min_z / ( QD0_min_z - CompSol_min_z)"
outer_field="0*tesla"
zmin="-QD0_min_z"
zmax="-CompSol_min_z"
outer_radius="20*cm">
</field>
</fields>

</lccdd>
50 changes: 50 additions & 0 deletions FCCee/IDEA/compact/IDEA_o1_v02/Solenoid_o1_v01.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<lccdd>
<info name="Solenoid" title="Solenoid" status="development" version="$Id: $">
<comment>
This is a solenoid place holder. It has the right spacial extent and overall accounts for the 0.75 X0 but its internals should be revised by ultra-thin magnet designers -->
</comment>
</info>

<define>
<constant name="SolenoidVacuumTank_thickness" value="5*mm"/>
<constant name="SolenoidCoil_thickness" value="16*mm"/>
</define>

<display>
<vis name="SolenoidBarrelLayerVis" alpha="1" r="0" g="0.3" b="0.3" showDaughters="false" visible="true"/>
<vis name="SolenoidCoilEndsVis" alpha="1" r="0" g="0.9" b="0.9" showDaughters="false" visible="true"/>
<vis name="SolenoidVacuum" alpha="0" r="1" g="1" b="1" showDaughters="false" visible="true"/>
</display>

<detectors>

<detector name="Solenoid" type="DD4hep_SubdetectorAssembly" vis="SOLVis">
<shape type="Tube" rmin="Solenoid_inner_radius-2*env_safety" rmax="Solenoid_outer_radius+2*env_safety" dz="Solenoid_half_length+2*env_safety" material="Vacuum"/>
<composite name="SolenoidBarrel"/>
<composite name="SolenoidEndcaps"/>
</detector>

<detector name="SolenoidBarrel" type="DD4hep_Solenoid_o1_v01" id="0" reflect="true">
<type_flags type=" DetType_COIL"/>
<envelope vis="SOLVis">
<shape type="Assembly"/>
</envelope>
<layer id="1" inner_r="Solenoid_inner_radius" outer_z="Solenoid_half_length" vis="SolenoidBarrelLayerVis">
<slice material="Steel235" thickness="SolenoidVacuumTank_thickness"/>
</layer>
<layer id="2" inner_r="Solenoid_Coil_radius-SolenoidCoil_thickness/2.0" outer_z="Solenoid_Coil_half_length">
<slice material="Aluminum" thickness="SolenoidCoil_thickness" vis="SolenoidCoilEndsVis" />
</layer>
<layer id="3" inner_r="Solenoid_outer_radius-SolenoidVacuumTank_thickness" outer_z="Solenoid_half_length" vis="SolenoidBarrelLayerVis">
<slice material="Steel235" thickness="SolenoidVacuumTank_thickness"/>
</layer>
</detector>

<detector name="SolenoidEndcaps" type="DD4hep_DiskTracker" id="0" reflect="true" vis="SolenoidBarrelLayerVis">
<layer id="1" inner_r="Solenoid_inner_radius+SolenoidVacuumTank_thickness" inner_z="Solenoid_half_length-SolenoidVacuumTank_thickness" outer_r="Solenoid_outer_radius-SolenoidVacuumTank_thickness" vis="SolenoidBarrelLayerVis">
<slice material="Steel235" thickness="SolenoidVacuumTank_thickness/2.0" />
</layer>
</detector>

</detectors>
</lccdd>
2 changes: 1 addition & 1 deletion FCCee/IDEA/compact/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
IDEA
====
IDEA_o1_v01: 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
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).

0 comments on commit 3bc0d81

Please sign in to comment.