Skip to content

Commit

Permalink
ALLEGRO_o1_v03: VTX and drift chamber from IDEA, add magnetic fields (k…
Browse files Browse the repository at this point in the history
…ey4hep#339)

* [FCCee-ALLEGRO] Take the vertex and drift chamber from IDEA

* Only one master xml to maintain for ALLEGRO_o1_v03

* Add magnetic field to ALLEGRO_o1_v03

* Fix tests for stable stack
  • Loading branch information
BrieucF authored Jun 6, 2024
1 parent e5d641a commit 45baf19
Show file tree
Hide file tree
Showing 12 changed files with 236 additions and 519 deletions.
75 changes: 70 additions & 5 deletions FCCee/ALLEGRO/compact/ALLEGRO_o1_v03/ALLEGRO_o1_v03.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,79 @@
<include ref="Beampipe.xml"/>
<include ref="BeamInstrumentation.xml"/>
<include ref="LumiCal.xml"/>
<include ref="HOMAbsorber.xml"/>
<!--taken from DetFCCeeCLD/compact/FCCee_o2_v02 -->
<include ref="Vertex.xml"/>
<include ref="DriftChamber.xml"/>
<include ref="ECalBarrel_thetamodulemerged.xml"/>
<include ref="HOMAbsorber.xml"/>
<include ref="Vertex_IDEA_o1_v01.xml"/> <!-- symbolic link to ../../../IDEA/compact/IDEA_o1_v03/Vertex_IDEA_o1_v01.xml"/>-->
<include ref="DriftChamber_o1_v02.xml"/> <!-- symbolic link to ../../../IDEA/compact/IDEA_o1_v03/DriftChamber_o1_v02.xml -->
<include ref="ECalBarrel_thetamodulemerged.xml"/> <!-- if you remove the ECalBarrel, you also have to remove or update the "GlobalSolenoid" field (it depends on ECAL dimensions) -->
<include ref="HCalBarrel_TileCal.xml"/>
<include ref="ECalEndcaps_coneCryo.xml"/>
<include ref="HCalEndcaps_ThreeParts_TileCal.xml"/>
<include ref="MuonTagger.xml"/>

<fields>
<!-- FIXME this is a place holder to get a reasonable magnetic field, it should be a real MAP obtained from FEM tools taking into account HCAL return yoke -->
<!-- The z extent should also accomodate space for the feedthroughs, need input from R&D and decisions on cold/warm electronics -->
<field name="GlobalSolenoid" type="solenoid"
inner_field="SolenoidField"
outer_field="-1.0*tesla"
zmax="EMBarrel_dz"
outer_radius="BarCryoECal_rmax-CryoBarrelBackWarm-CryoBarrelBackCold">
</field>


<!-- MDI magnetic fields -->
<!-- Important for background studies -->

<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>

<field name="QC1L1_field_ED" type="MultipoleMagnet" Z="0.0*tesla">
<position y="0*cm" x="(QC1L1_len/2. + QC1L1_start)*sin(CrossingAngle/2.)" z="(QC1L1_len/2. + QC1L1_start)*cos(CrossingAngle/2.)"/>
<rotation x="0" y="CrossingAngle/2." z="0.0"/>
<coefficient coefficient="0*tesla"/>
<coefficient coefficient="(-1)*(45.6)*(-0.273)/0.3*tesla/m"/>
<shape type="Tube" rmin="0.*cm" rmax="QC1_rmin" dz="QC1L1_len/2." />
</field>

<field name="QC1L1_field_EU" type="MultipoleMagnet" Z="0.0*tesla">
<position y="0*cm" x="-(QC1L1_len/2. + QC1L1_start)*sin(CrossingAngle/2.)" z="-(QC1L1_len/2. + QC1L1_start)*cos(CrossingAngle/2.)"/>
<rotation x="0" y="CrossingAngle/2." z="0.0"/>
<coefficient coefficient="0*tesla"/>
<coefficient coefficient="(-1)*(45.6)*(-0.273)/0.3*tesla/m"/>
<shape type="Tube" rmin="0.*cm" rmax="QC1_rmin" dz="QC1L1_len/2." />
</field>

<field name="QC1L1_field_PD" type="MultipoleMagnet" Z="0.0*tesla">
<position y="0*cm" x="(QC1L1_len/2. + QC1L1_start)*sin(CrossingAngle/2.)" z="-(QC1L1_len/2. + QC1L1_start)*cos(CrossingAngle/2.)"/>
<rotation x="0" y="-CrossingAngle/2." z="0.0"/>
<coefficient coefficient="0*tesla"/>
<coefficient coefficient="(+1)*(45.6)*(-0.273)/0.3*tesla/m"/>
<shape type="Tube" rmin="0.*cm" rmax="QC1_rmin" dz="QC1L1_len/2." />
</field>

<field name="QC1L1_field_PU" type="MultipoleMagnet" Z="0.0*tesla">
<position y="0*cm" x="-(QC1L1_len/2. + QC1L1_start)*sin(CrossingAngle/2.)" z="(QC1L1_len/2. + QC1L1_start)*cos(CrossingAngle/2.)"/>
<rotation x="0" y="-CrossingAngle/2.+pi" z="0.0"/>
<coefficient coefficient="0*tesla"/>
<coefficient coefficient="(-1)*(45.6)*(-0.273)/0.3*tesla/m"/>
<shape type="Tube" rmin="0.*cm" rmax="QC1_rmin" dz="QC1L1_len/2." />
</field>

<!--End of MDI magnetic fields -->

</fields>

</lccdd>
36 changes: 0 additions & 36 deletions FCCee/ALLEGRO/compact/ALLEGRO_o1_v03/ALLEGRO_o1_v03_ecalonly.xml

This file was deleted.

This file was deleted.

72 changes: 41 additions & 31 deletions FCCee/ALLEGRO/compact/ALLEGRO_o1_v03/DectDimensions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,18 @@
<constant name="world_side" value="6100*mm"/>
<constant name="CrossingAngle" value="0.030*rad"/>

<constant name="GlobalTrackerReadoutID_DCH" type="string" value="system:1,layer:16,phi:16"/>
<constant name="GlobalTrackerReadoutID" type="string" value="system:5,side:-2,layer:6,module:11,sensor:8"/>
<constant name="GlobalTrackerReadoutID" type="string" value="system:5,layer:3,stave:6,module:5,sensor:2"/>
<constant name="GlobalTrackerReadoutID_OB" type="string" value="system:5,layer:1,stave:6,module:4,sensor:2"/>
<constant name="GlobalTrackerReadoutID_Disk" type="string" value="system:5,side:-2,layer:3,petal:3,stave:6,module:10,sensor:2"/>
<constant name="GlobalTrackerReadoutID_SiWrapperB" type="string" value="system:5,layer:1,stave:9,module:6,sensor:1"/>
<constant name="GlobalTrackerReadoutID_SiWrapperD" type="string" value="system:5,side:1,layer:1,module:6,sensor:1"/>

<constant name="SolenoidField" value="2*tesla"/>

<constant name="DetID_NOTUSED" value=" 0"/>

<constant name="DetID_VXD_Barrel" value=" 1"/>
<constant name="DetID_VXD_Endcap" value=" 2"/>
<constant name="DetID_VXD_IB" value=" 1"/>
<constant name="DetID_VXD_Disks" value=" 2"/>
<constant name="DetID_VXD_OB" value=" 20"/>
<constant name="DetID_DCH" value=" 3"/>
<constant name="DetID_ECAL_Barrel" value=" 4"/>
<constant name="DetID_ECAL_Endcap" value=" 5"/>
Expand Down Expand Up @@ -54,11 +57,6 @@
<constant name="BeamPipeGoldWidth" value="0.005*mm" />
<constant name="BeamPipeGoldTolerance" value="0.001*mm" /> <!-- dummy tolerance, some small non zero value -->

<constant name="InnerTracker_half_length" value="2300*mm" />

<constant name="ConeBeamPipe_zmax" value="InnerTracker_half_length" />
<constant name="ConeBeamPipe_rmax_1" value="InnerTracker_half_length * 0.1 + 1*mm" />

<constant name="BigBeamPipe_zmax" value="1120*mm"/>
<constant name="SeparatedBeamPipe_rmax" value="15*mm"/>
<constant name="BeamPipeTantalShieldWidth" value="15*mm"/>
Expand All @@ -72,22 +70,24 @@
<constant name="size_z" value="50*mm"/>

<constant name="env_safety" value="0.1*mm"/>

<constant name="Vertex_inner_radius" value="17*mm"/>
<constant name="Vertex_outer_radius" value="340*mm"/>
<constant name="Vertex_half_length" value="302*mm"/>

<constant name="InnerTracker_inner_radius" value="61*mm"/>
<constant name="InnerTracker_outer_radius" value="696*mm"/>

<constant name="OuterTracker_inner_radius" value="696*mm"/>
<constant name="OuterTracker_outer_radius" value="2000*mm"/>
<constant name="OuterTracker_half_length" value="2300*mm"/>

<constant name="DCH_inner_radius" value="345*mm"/>
<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="2850*mm"/> <!-- this includes the services -->

<!-- VTX parameters -->
<constant name="VertexClearanceTheta" value="0.110"/> <!-- Clearance of vertex detector in mrad-->
<constant name="VTXIB_r_clearance" value="1*mm"/> <!-- Clearance of vertex detector in radius, used for definiton of vertex DD4hep_SubdetectorAssembly -->
<constant name="VTXIB_r_min" value="13.7*mm"/> <!-- Start of inner vertex detector layers. To keep distance of 1.3 mm from outer beam pipe end (10+0.35+1+0.35 mm = 11.7 mm). This changes to 13.7 mm due to cooling issues (see https://indico.cern.ch/event/1176398/contributions/5207171/attachments/2581129/4451907/Krakow%202023_v23_final.pdf) -->
<constant name="VTXIB_r_max" value="31*mm"/> <!-- End of inner vertex detector layers (the ones with smaller pixels) -->
<constant name="VTXOB_r_min" value="320*mm"/> <!-- Start of outer vertex layers (the ones with larger pixels) -->
<constant name="VTXOB_r_max" value="340*mm"/> <!-- End of outer vertex layer (the one with larger pixels) -->
<constant name="Outer_Vertex_half_length" value="1050*mm"/>
<!-- End of VTX parameters -->

<!-- Drift Chamber parameters -->
<!-- Changing the radius is not enough to resize the detector, please contact the experts-->
<constant name="DCH_inner_cyl_R_total" value=" 349.8 * mm " />
<constant name="DCH_outer_cyl_R_total" value=" 2015 * mm " />
<constant name="DCH_half_length_total" value=" 2250 * mm " />
<!-- End of Drift Chamber parameters -->

<!-- LAr ECAL Calo Barrel -->
<constant name="BarECal_id" value="DetID_ECAL_Barrel"/>
<constant name="BarECal_rmin" value="2100*mm"/>
Expand Down Expand Up @@ -130,6 +130,7 @@
<constant name="MuonTaggerEndcap_min_z" value="5550*mm"/>
<constant name="MuonTaggerEndcap_max_z" value="6000*mm"/>

<!-- MDI -->
<constant name="CompSol_min_z" value="1230*mm"/>

<constant name="LumiCal_max_z" value="1186.5*mm" />
Expand Down Expand Up @@ -182,11 +183,17 @@
<constant name="CollimatorInFrontOfQD0_dz" value="20*cm"/>
<constant name="CollimatorInFrontOfQD0_radius" value="10*mm"/>
<constant name="CollimatorInFrontOfQD0_dr" value="16*mm"/>

<constant name="QC1_rmin" value="42/2*mm"/>
<constant name="QC1_rmax" value="64/2*mm"/>
<constant name="QC1L1_len" value="700*mm"/>
<constant name="QC1L1_start" value="2200*mm"/>
<constant name="screenstart" value="-10*mm"/>
<!-- end MDI -->

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

<constant name="GlobalTrackerReadoutID" type="string" value="system:5,side:-2,layer:6,module:11,sensor:8"/>
</define>


Expand All @@ -197,8 +204,11 @@
</limits>
<regions>
<region name="BeampipeRegion"/>
<region name="VertexBarrelRegion"/>
<region name="VertexEndcapRegion"/>
<region name="VTXIBRegion"/>
<region name="VTXOBRegion"/>
<region name="VTXDRegion"/>
<region name="SiWrapperBRegion"/>
<region name="SiWrapperDRegion"/>
</regions>


Expand Down
Loading

0 comments on commit 45baf19

Please sign in to comment.