This repository has been archived by the owner on Jan 11, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added v2 of the frozen geometry with fixed endcap tracker support asy…
…mmetry
- Loading branch information
1 parent
2ca4ccd
commit 889e1dc
Showing
27 changed files
with
3,000 additions
and
0 deletions.
There are no files selected for viewing
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
<lccdd> | ||
|
||
<define> | ||
<constant name="BeamCal_spanning_angle" value="350*degree"/> | ||
</define> | ||
|
||
<readouts> | ||
<readout name="BeamCalCollection"> | ||
<segmentation type="PolarGridRPhi2" | ||
grid_r_values="3.200*cm 3.9876*cm 4.7742*cm 5.5608*cm 6.3474*cm 7.134*cm 7.9206*cm 8.7072*cm 9.4938*cm 10.2804*cm 11.067*cm 11.8536*cm 12.6402*cm 13.4268*cm 14.2134*cm 15.0*cm" | ||
grid_phi_values="350/(4*8)*degree | ||
350/(5*8)*degree | ||
350/(6*8)*degree | ||
350/(6*8)*degree | ||
350/(7*8)*degree | ||
350/(8*8)*degree | ||
350/(9*8)*degree | ||
350/(9*8)*degree | ||
350/(10*8)*degree | ||
350/(11*8)*degree | ||
350/(12*8)*degree | ||
350/(12*8)*degree | ||
350/(13*8)*degree | ||
350/(14*8)*degree | ||
350/(15*8)*degree" | ||
offset_phi="-180*degree+(360*degree-BeamCal_spanning_angle)*0.5" | ||
/> | ||
<id>system:8,barrel:3,layer:8,slice:5,r:32:16,phi:16</id> | ||
</readout> | ||
</readouts> | ||
|
||
<detectors> | ||
<detector name="BeamCal" type="BeamCal_o1_v01" vis="SeeThrough" id="DetID_BeamCal" readout="BeamCalCollection" > | ||
|
||
<type_flags type=" DetType_CALORIMETER + DetType_ELECTROMAGNETIC + DetType_ENDCAP + DetType_FORWARD + DetType_AUXILIARY "/> | ||
|
||
<envelope vis="BCALVis"> | ||
<shape type="BooleanShape" operation="Union" material="Air"> | ||
<shape type="BooleanShape" operation="Intersection"> | ||
<shape type="Box" dx="world_side" dy="world_side" dz="world_side"/> | ||
<shape type="BooleanShape" operation="Subtraction"> | ||
<shape type="Tube" rmin="BeamCal_inner_radius" rmax="BeamCal_outer_radius+env_safety" dz="BeamCal_dz+env_safety"/> | ||
<shape type="Tube" rmin="0" rmax="BeamPipe_UpstreamBeamCal" dz="BeamCal_dz+10*env_safety"/> | ||
<position x="tan(-CrossingAngle)*(BeamCal_min_z+BeamCal_dz)" y="0" z="0"/> | ||
<rotation x="0" y="-CrossingAngle" z="0"/> | ||
</shape> | ||
<position x="tan(0.5*CrossingAngle)*(BeamCal_min_z+BeamCal_dz)" y="0" z="(BeamCal_min_z+BeamCal_dz)"/> | ||
<rotation x="0" y="0.5*CrossingAngle" z="0"/> | ||
</shape> | ||
<shape type="BooleanShape" operation="Intersection"> | ||
<shape type="Box" dx="world_side" dy="world_side" dz="world_side"/> | ||
<shape type="BooleanShape" operation="Subtraction"> | ||
<shape type="Tube" rmin="BeamCal_inner_radius" rmax="BeamCal_outer_radius+env_safety" dz="BeamCal_dz+env_safety"/> | ||
<shape type="Tube" rmin="0" rmax="BeamPipe_UpstreamBeamCal" dz="BeamCal_dz+10*env_safety"/> | ||
<position x="tan(-CrossingAngle)*(BeamCal_min_z+BeamCal_dz)" y="0" z="0"/> | ||
<rotation x="0" y="-CrossingAngle" z="0"/> | ||
</shape> | ||
<position x="tan(0.5*CrossingAngle)*(BeamCal_min_z+BeamCal_dz)" y="0" z="-(BeamCal_min_z+BeamCal_dz)"/> | ||
<rotation x="0" y="180*deg-CrossingAngle*0.5" z="180*deg"/> | ||
</shape> | ||
</shape> | ||
</envelope> | ||
|
||
<parameter crossingangle="CrossingAngle" | ||
cutoutspanningangle="360*degree-BeamCal_spanning_angle" | ||
incomingbeampiperadius="BeamPipe_UpstreamBeamCal" | ||
/> | ||
|
||
<dimensions inner_r = "BeamCal_inner_radius" | ||
inner_z = "BeamCal_min_z" | ||
outer_r = "BeamCal_outer_radius" /> | ||
|
||
<!-- Avoid dummy layers without sensitive element which cannot be handled by DDMarlinPandora --> | ||
<!-- Instead, create another layer group with the extra absorber in the front --> | ||
<layer repeat="1" vis="SeeThrough"> | ||
<slice material = "C" thickness = "100*mm" vis="LayerVis1" layerType="holeForIncomingBeampipe"/> | ||
<slice material = "TungstenDens24" thickness = "3.5*mm" vis="BCLayerVis1" layerType="holeForIncomingBeampipe" /> | ||
<slice material = "Silicon" thickness = "0.3004*mm" vis="BCLayerVis2" sensitive = "yes" /> | ||
<slice material = "Copper" thickness = "0.0004*mm" vis="BCLayerVis3" /> | ||
<slice material = "Kapton" thickness = "0.15*mm" vis="BCLayerVis4" /> | ||
<slice material = "Air" thickness = "0.05*mm" /> | ||
</layer> | ||
|
||
<layer repeat="39" vis="SeeThrough"> | ||
<slice material = "TungstenDens24" thickness = "3.5*mm" vis="BCLayerVis1" layerType="holeForIncomingBeampipe" /> | ||
<slice material = "Silicon" thickness = "0.3004*mm" vis="BCLayerVis2" sensitive = "yes" /> | ||
<slice material = "Copper" thickness = "0.0004*mm" vis="BCLayerVis3" /> | ||
<slice material = "Kapton" thickness = "0.15*mm" vis="BCLayerVis4" /> | ||
<slice material = "Air" thickness = "0.05*mm" /> | ||
</layer> | ||
|
||
|
||
|
||
</detector> | ||
</detectors> | ||
|
||
</lccdd> | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
<lccdd> | ||
|
||
<detectors> | ||
<comment>Beampipe Instrumentation</comment> | ||
|
||
<detector name="Kicker" type="DD4hep_Mask_o1_v01" vis="KICKVis"> | ||
<parameter crossingangle="CrossingAngle" /> | ||
<envelope vis="KICKVis"> | ||
<shape type="Assembly"/> | ||
</envelope> | ||
<!-- &A Z1 Z2 RIn1 RIn2 ROut1 ROut2 Material --> | ||
<section type="Upstream" start="Kicker_min_z" end="Kicker_max_z" rMin1="Kicker_inner_radius" rMin2="Kicker_inner_radius" rMax1="Kicker_outer_radius" rMax2="Kicker_outer_radius" material="Iron" name="Kicker"/> | ||
</detector> | ||
|
||
|
||
<detector name="BPM" type="DD4hep_Mask_o1_v01" vis="BPMVis"> | ||
<parameter crossingangle="CrossingAngle" /> | ||
<envelope vis="BPMVis"> | ||
<shape type="Assembly"/> | ||
</envelope> | ||
<!-- &A Z1 Z2 RIn1 RIn2 ROut1 ROut2 Material --> | ||
<section type="Dnstream" start="BPM_min_z" end="BPM_max_z" rMin1="BPM_inner_radius" rMin2="BPM_inner_radius" rMax1="BPM_outer_radius" rMax2="BPM_outer_radius" material="Iron" name="BPM"/> | ||
</detector> | ||
|
||
|
||
</detectors> | ||
</lccdd> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
<lccdd> | ||
<!-- Definition of global dictionary constants --> | ||
<define> | ||
<constant name="R_inner" value="2.2*cm" /> | ||
</define> | ||
|
||
<!-- Definition of the used visualization attributes --> | ||
<display> | ||
<vis name="BeampipeInnerVis" alpha="1.0" r="0.8" g="0.0" b="1.0" showDaughters="true" visible="true"/> | ||
<vis name="BeampipeOuterVis" alpha="0.6" r="0.8" g="0.1" b="1.0" 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> | ||
<comment>Beampipe</comment> | ||
|
||
<detector name="BeampipeInner" type="DD4hep_PolyconeSupport" vis="BeampipeInnerVis" region="BeampipeRegion"> | ||
<comment>Inner part of the vacuum beampipe: Beryllium walls</comment> | ||
<material name="Vacuum"/> | ||
<zplane z="-Nozzle_zmax" rmin="0" rmax="1.78*cm" /> | ||
<zplane z="-400*cm" rmin="0" rmax="1.19*cm" /> | ||
<zplane z="-200*cm" rmin="0" rmax="0.6*cm" /> | ||
<zplane z="-100*cm" rmin="0" rmax="0.3*cm" /> | ||
<zplane z="-15*cm" rmin="0" rmax="0.6*cm" /> | ||
<zplane z="-6*cm" rmin="0" rmax="1*cm" /> | ||
<zplane z="6*cm" rmin="0" rmax="1*cm" /> | ||
<zplane z="15*cm" rmin="0" rmax="0.6*cm" /> | ||
<zplane z="100*cm" rmin="0" rmax="0.3*cm" /> | ||
<zplane z="200*cm" rmin="0" rmax="0.6*cm" /> | ||
<zplane z="400*cm" rmin="0" rmax="1.19*cm" /> | ||
<zplane z="Nozzle_zmax" rmin="0" rmax="1.78*cm" /> | ||
</detector> | ||
|
||
<detector name="BeampipeOuter" type="DD4hep_PolyconeSupport" vis="BeampipeOuterVis" region="BeampipeRegion"> | ||
<comment>Outer part of the vacuum beampipe: Beryllium walls</comment> | ||
<material name="Vacuum"/> | ||
<zplane z="-13.23*cm" rmin="2.281*cm" rmax="2.281*cm" /> | ||
<zplane z="-6.25*cm" rmin="1.02483*cm" rmax="R_inner" /> | ||
<zplane z="-6*cm" rmin="1*cm" rmax="R_inner" /> | ||
<zplane z="6*cm" rmin="1*cm" rmax="R_inner" /> | ||
<zplane z="6.25*cm" rmin="1.02483*cm" rmax="R_inner" /> | ||
<zplane z="13.23*cm" rmin="2.281*cm" rmax="2.281*cm" /> | ||
</detector> | ||
|
||
</detectors> | ||
</lccdd> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
<lccdd> | ||
|
||
<readouts> | ||
<readout name="ECalBarrelCollection"> | ||
<segmentation type="CartesianGridXY" grid_size_x="ECal_cell_size" grid_size_y="ECal_cell_size" /> | ||
<id>${GlobalCalorimeterReadoutID}</id> | ||
</readout> | ||
</readouts> | ||
|
||
<!-- Definitions of visualization attributes --> | ||
<display> | ||
<vis name="ECalStaveVis" alpha="1.0" r="0.0" g="0.8" b="1.0" showDaughters="true" visible="true"/> | ||
<vis name="ECalLayerVis" alpha="1.0" r="0.8" g="0.8" b="0.0" showDaughters="true" visible="true"/> | ||
<vis name="ECalSensitiveVis" alpha="1.0" r="0.7" g="0.3" b="0.0" showDaughters="false" visible="true"/> | ||
<vis name="ECalAbsorberVis" alpha="1.0" r="0.4" g="0.4" b="0.0" showDaughters="false" visible="true"/> | ||
<vis name="ECalEndcapVis" alpha="1.0" r="0.77" g="0.74" b="0.86" showDaughters="true" visible="true"/> | ||
<vis name="HiddenEnvelope" alpha="0.0" r="1.0" g="1.0" b="1.0" showDaughters="true" visible="false"/> | ||
<vis name="CompositeVis" alpha="1.0" r="1.0" g="0.0" b="0.0" showDaughters="true" visible="true"/> | ||
</display> | ||
|
||
<detectors> | ||
<detector name="ECalBarrel" type="GenericCalBarrel_o1_v01" id="DetID_ECal_Barrel" readout="ECalBarrelCollection" vis="BlueVis" gap="0.*cm"> | ||
|
||
<comment>EM Calorimeter Barrel</comment> | ||
|
||
<type_flags type=" DetType_CALORIMETER + DetType_ELECTROMAGNETIC + DetType_BARREL"/> | ||
|
||
<envelope vis="ECALVis"> | ||
<shape type="PolyhedraRegular" numsides="ECalBarrel_symmetry" rmin="ECalBarrel_inner_radius" rmax="ECalBarrel_outer_radius" dz="2.*ECalBarrel_half_length" material="Air"/> | ||
<!-- Radii definitions as in http://cern.ch/go/r9mZ --> | ||
<rotation x="0*deg" y="0*deg" z="90*deg-180*deg/ECalBarrel_symmetry"/> | ||
</envelope> | ||
|
||
<dimensions numsides="ECalBarrel_symmetry" rmin="ECalBarrel_inner_radius" z="ECalBarrel_half_length*2" /> | ||
<staves vis="ECalStaveVis" /> | ||
<layer repeat="40" vis="ECalLayerVis"> | ||
<slice material = "TungstenDens24" thickness = "1.90*mm" vis="ECalAbsorberVis" radiator="yes"/> | ||
<slice material = "G10" thickness = "0.15*mm" vis="InvisibleNoDaughters"/> | ||
<slice material = "GroundOrHVMix" thickness = "0.10*mm" vis="ECalAbsorberVis"/> | ||
<slice material = "Silicon" thickness = "0.50*mm" sensitive="yes" limits="cal_limits" vis="ECalSensitiveVis"/> | ||
<slice material = "Air" thickness = "0.10*mm" vis="InvisibleNoDaughters"/> | ||
<slice material = "siPCBMix" thickness = "1.30*mm" vis="ECalAbsorberVis"/> | ||
<slice material = "Air" thickness = "0.25*mm" vis="InvisibleNoDaughters"/> | ||
<slice material = "G10" thickness = "0.75*mm" vis="InvisibleNoDaughters"/> | ||
</layer> | ||
</detector> | ||
</detectors> | ||
|
||
<plugins> | ||
<plugin name="DD4hep_CaloFaceBarrelSurfacePlugin"> | ||
<argument value="ECalBarrel"/> | ||
<argument value="length=2.*ECalBarrel_half_length" /> | ||
<argument value="radius=ECalBarrel_inner_radius" /> | ||
<argument value="phi0=0" /> | ||
<argument value="symmetry=ECalBarrel_symmetry"/> | ||
<argument value="systemID=DetID_ECal_Barrel"/> | ||
</plugin> | ||
</plugins> | ||
|
||
|
||
</lccdd> | ||
|
||
|
||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
<lccdd> | ||
|
||
|
||
|
||
<!-- Definition of the readout segmentation/definition --> | ||
<readouts> | ||
<readout name="ECalEndcapCollection"> | ||
<segmentation type="CartesianGridXY" grid_size_x="ECal_cell_size" grid_size_y="ECal_cell_size" /> | ||
<id>${GlobalCalorimeterReadoutID}</id> | ||
</readout> | ||
</readouts> | ||
|
||
<!-- Includes for sensitives and support --> | ||
<detectors> | ||
|
||
<detector name="ECalEndcap" type="GenericCalEndcap_o1_v01" id="DetID_ECal_Endcap" readout="ECalEndcapCollection" vis="ECALVis" > | ||
|
||
<comment>Electromagnetic Calorimeter Endcap</comment> | ||
|
||
<type_flags type=" DetType_CALORIMETER + DetType_ELECTROMAGNETIC + DetType_ENDCAP"/> | ||
|
||
<envelope vis="ECALVis"> | ||
<shape type="BooleanShape" operation="Subtraction" material="Air"> | ||
<shape type="PolyhedraRegular" numsides="ECalEndcap_outer_symmetry" rmin="ECalEndcap_inner_radius-env_safety" rmax="ECalEndcap_outer_radius+ 10.0*env_safety" dz="2.0*ECalEndcap_max_z+2*env_safety"/> | ||
<shape type="PolyhedraRegular" numsides="ECalEndcap_outer_symmetry" rmin="0" rmax="ECalEndcap_outer_radius+ 100.0*env_safety" dz="2.0*ECalEndcap_min_z-2*env_safety"/> | ||
</shape> | ||
<rotation x="0*deg" y="0*deg" z="90*deg-180*deg/ECalEndcap_outer_symmetry"/> | ||
</envelope> | ||
|
||
|
||
<dimensions nsides_inner="ECalEndcap_inner_symmetry" nsides_outer="(int) ECalEndcap_outer_symmetry" zmin="ECalEndcap_min_z" rmin="ECalEndcap_inner_radius" rmax="ECalEndcap_outer_radius"/> | ||
|
||
<layer repeat="40" vis="ECalLayerVis"> | ||
<slice material = "TungstenDens24" thickness = "1.90*mm" vis="ECalAbsorberVis" radiator="yes"/> | ||
<slice material = "G10" thickness = "0.15*mm" vis="InvisibleNoDaughters"/> | ||
<slice material = "GroundOrHVMix" thickness = "0.10*mm" vis="ECalAbsorberVis"/> | ||
<slice material = "Silicon" thickness = "0.50*mm" sensitive="yes" limits="cal_limits" vis="ECalSensitiveVis"/> | ||
<slice material = "Air" thickness = "0.10*mm" vis="InvisibleNoDaughters"/> | ||
<slice material = "siPCBMix" thickness = "1.30*mm" vis="ECalAbsorberVis"/> | ||
<slice material = "Air" thickness = "0.25*mm" vis="InvisibleNoDaughters"/> | ||
<slice material = "G10" thickness = "0.75*mm" vis="InvisibleNoDaughters"/> | ||
</layer> | ||
|
||
</detector> | ||
</detectors> | ||
|
||
<plugins> | ||
<plugin name="DD4hep_CaloFaceEndcapSurfacePlugin"> | ||
<argument value="ECalEndcap"/> | ||
<argument value="zpos=ECalEndcap_min_z" /> | ||
<argument value="radius=ECalEndcap_outer_radius" /> | ||
<argument value="phi0=0" /> | ||
<argument value="symmetry=ECalEndcap_outer_symmetry"/> | ||
<argument value="systemID=DetID_ECal_Endcap"/> | ||
</plugin> | ||
</plugins> | ||
</lccdd> | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
<lccdd> | ||
|
||
|
||
|
||
<!-- Definition of the readout segmentation/definition --> | ||
<readouts> | ||
<readout name="ECalPlugCollection"> | ||
<segmentation type="CartesianGridXY" grid_size_x="ECal_cell_size" grid_size_y="ECal_cell_size" /> | ||
<id>${GlobalCalorimeterReadoutID}</id> | ||
</readout> | ||
</readouts> | ||
|
||
<!-- Includes for sensitives and support --> | ||
<detectors> | ||
|
||
<detector name="ECalPlug" type="GenericCalEndcap_o1_v01" id="DetID_ECal_Plug" readout="ECalPlugCollection" vis="ECALVis" > | ||
|
||
<comment>Hadronic Calorimeter Endcap</comment> | ||
|
||
<type_flags type=" DetType_CALORIMETER + DetType_ELECTROMAGNETIC + DetType_ENDCAP + DetType_AUXILIARY"/> | ||
|
||
<envelope vis="ECALVis"> | ||
<shape type="BooleanShape" operation="Subtraction" material="Air"> | ||
<shape type="PolyhedraRegular" numsides="ECalPlug_outer_symmetry" rmin="ECalPlug_inner_radius-env_safety" rmax="ECalPlug_outer_radius+ 10.0*env_safety" dz="2.0*ECalPlug_max_z+2*env_safety"/> | ||
<shape type="PolyhedraRegular" numsides="ECalPlug_outer_symmetry" rmin="0" rmax="ECalPlug_outer_radius+ 100.0*env_safety" dz="2.0*ECalPlug_min_z-2*env_safety"/> | ||
</shape> | ||
<rotation x="0*deg" y="0*deg" z="90*deg-180*deg/ECalPlug_outer_symmetry"/> | ||
</envelope> | ||
|
||
|
||
<dimensions nsides_inner="ECalPlug_inner_symmetry" nsides_outer="(int) ECalPlug_outer_symmetry" zmin="ECalPlug_min_z" rmin="ECalPlug_inner_radius" rmax="ECalPlug_outer_radius" phi0="0"/> | ||
|
||
<layer repeat="40" vis="ECalLayerVis"> | ||
<slice material = "TungstenDens24" thickness = "1.90*mm" vis="ECalAbsorberVis" radiator="yes"/> | ||
<slice material = "G10" thickness = "0.15*mm" vis="InvisibleNoDaughters"/> | ||
<slice material = "GroundOrHVMix" thickness = "0.10*mm" vis="ECalAbsorberVis"/> | ||
<slice material = "Silicon" thickness = "0.50*mm" sensitive="yes" limits="cal_limits" vis="ECalSensitiveVis"/> | ||
<slice material = "Air" thickness = "0.10*mm" vis="InvisibleNoDaughters"/> | ||
<slice material = "siPCBMix" thickness = "1.30*mm" vis="ECalAbsorberVis"/> | ||
<slice material = "Air" thickness = "0.25*mm" vis="InvisibleNoDaughters"/> | ||
<slice material = "G10" thickness = "0.75*mm" vis="InvisibleNoDaughters"/> | ||
</layer> | ||
|
||
</detector> | ||
</detectors> | ||
</lccdd> | ||
|
||
|
Oops, something went wrong.