Skip to content
This repository has been archived by the owner on Jan 11, 2024. It is now read-only.

Commit

Permalink
Added v2 of the frozen geometry with fixed endcap tracker support asy…
Browse files Browse the repository at this point in the history
…mmetry
  • Loading branch information
bartosik-hep committed Dec 8, 2020
1 parent 2ca4ccd commit 889e1dc
Show file tree
Hide file tree
Showing 27 changed files with 3,000 additions and 0 deletions.
Binary file added geometries/MuColl_v1/.DS_Store
Binary file not shown.
99 changes: 99 additions & 0 deletions geometries/MuColl_v1/BeamCal_o1_v01_01.xml
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>


27 changes: 27 additions & 0 deletions geometries/MuColl_v1/BeamInstrumentation_o1_v01_01.xml
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>
47 changes: 47 additions & 0 deletions geometries/MuColl_v1/Beampipe_o1_v01_02.xml
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>
66 changes: 66 additions & 0 deletions geometries/MuColl_v1/ECalBarrel_o2_v01_02.xml
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>





59 changes: 59 additions & 0 deletions geometries/MuColl_v1/ECalEndcap_o2_v01_02.xml
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>


48 changes: 48 additions & 0 deletions geometries/MuColl_v1/ECalPlug_o1_v01_02.xml
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>


Loading

0 comments on commit 889e1dc

Please sign in to comment.