-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Introduce v15 geometry with Air (#1514)
- Loading branch information
Showing
14 changed files
with
15,709 additions
and
0 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
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,228 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<!DOCTYPE gdml [ | ||
<!ENTITY constants SYSTEM "constants.gdml"> | ||
<!ENTITY materials SYSTEM "materials.gdml"> | ||
]> | ||
<gdml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema/gdml.xsd"> | ||
|
||
<define> | ||
|
||
&constants; | ||
|
||
<!-- | ||
Position of the tagger and recoil tracker envelopes with respect to | ||
target. The 9 mm offset was chosen such that the midpoints of the | ||
last (first) layer of the tagger (recoil) tracker are 25 mm apart. | ||
--> | ||
<variable name="tagger_pos_z" value="-9*mm - tagger_envelope_dz/2" /> | ||
<variable name="recoil_pos_z" value="9*mm + recoil_envelope_dz/2"/> | ||
|
||
<!-- Position of the ECal and HCal parent volumes --> | ||
<constant name="em_calorimeter_pos_z" value="ecal_front_z" /> | ||
<constant name="hadron_calorimeter_pos_z" value="ecal_front_z + hcal_dz/2." /> | ||
|
||
<!-- | ||
Trigger scintillator parent volume position relative to the target | ||
???? mm. The end of the parent volume relative to the target | ||
is at ?????. This gives a ???? mm clearance between the upstream. | ||
There are now two TS modules upstream of the tagger tracker. | ||
--> | ||
<variable name="trig_scint_pos_z" | ||
value="tagger_pos_z-trig_scint_area_envelope_z/2 -tagger_envelope_dz/2- clearance - 200" /> | ||
|
||
<!-- | ||
Define all subdetector positions relative to the target. | ||
Note: The position of the target is defined at the center i.e. | ||
x = y = z = 0 mm. | ||
--> | ||
<position name="trig_scint_pos" x="0.0" y="0.0" z="trig_scint_pos_z"/> | ||
<position name="tagger_pos" x="0.0" y="0.0" z="tagger_pos_z"/> | ||
<position name="recoil_pos" x="0.0" y="0.0" z="recoil_pos_z"/> | ||
<position name="em_calorimeter_pos" | ||
x="0.0" | ||
y="support_box_shift" | ||
z="em_calorimeter_pos_z + ecal_envelope_z/2"/> | ||
<!-- the ecal support box is asymmetric in the vertical direction causing an additional | ||
shift relative to the origin at the target --> | ||
<position name="hadron_calorimeter_pos" | ||
x="0.0" | ||
y="support_box_shift" | ||
z="hadron_calorimeter_pos_z"/> | ||
<position name="magnet_pos" x="0.0" y="0.0" z="magnet_pos_z" /> | ||
|
||
</define> | ||
|
||
<materials> | ||
&materials; | ||
</materials> | ||
|
||
<solids> | ||
<box lunit="mm" name="world_box" x="world_dim" y="world_dim" z="world_dim"/> | ||
</solids> | ||
|
||
<structure> | ||
<volume name="World"> | ||
<materialref ref="Air"/> | ||
<solidref ref="world_box"/> | ||
<physvol copynumber="1"> | ||
<file name="tagger.gdml"/> | ||
<positionref ref="tagger_pos"/> | ||
<rotationref ref="identity"/> | ||
</physvol> | ||
<physvol copynumber="2"> | ||
<file name="target.gdml" /> | ||
<positionref ref="center" /> | ||
<rotationref ref="identity" /> | ||
</physvol> | ||
<physvol copynumber="3"> | ||
<file name="trig_scint.gdml"/> | ||
<positionref ref="trig_scint_pos"/> | ||
<rotationref ref="identity"/> | ||
</physvol> | ||
<physvol copynumber="5"> | ||
<file name="recoil.gdml"/> | ||
<positionref ref="recoil_pos"/> | ||
<rotationref ref="identity"/> | ||
</physvol> | ||
<physvol copynumber="6"> | ||
<file name="ecal.gdml"/> | ||
<positionref ref="em_calorimeter_pos"/> | ||
<rotationref ref="identity"/> | ||
</physvol> | ||
<physvol copynumber="7"> | ||
<file name="hcal.gdml"/> | ||
<positionref ref="hadron_calorimeter_pos"/> | ||
<rotationref ref="identity"/> | ||
</physvol> | ||
<physvol> | ||
<file name="magnet.gdml"/> | ||
<positionref ref="magnet_pos"/> | ||
<rotationref ref="identity"/> | ||
</physvol> | ||
<auxiliary auxtype="DetElem" auxvalue="Top"/> | ||
</volume> | ||
</structure> | ||
|
||
<userinfo> | ||
<!-- detector version --> | ||
<auxiliary auxtype="DetectorVersion" auxvalue="15"> | ||
<auxiliary auxtype="DetectorName" auxvalue="ldmx-det-v15-8gev"/> | ||
<auxiliary auxtype="Description" | ||
auxvalue="The Late 2022 Design Report Geometry with air instead of vacuum."/> | ||
</auxiliary> | ||
|
||
<!-- magnetic field with global field map definition --> | ||
<auxiliary auxtype="MagneticField" auxvalue="AnalyzingDipole"> | ||
<auxiliary auxtype="MagneticFieldType" auxvalue="MagneticFieldMap3D"/> | ||
<auxiliary auxtype="File" auxvalue="BmapCorrected3D_13k_unfolded_scaled_1.15384615385.dat"/> | ||
<auxiliary auxtype="OffsetX" auxvalue="0.0" auxunit="mm"/> | ||
<auxiliary auxtype="OffsetY" auxvalue="0.0" auxunit="mm"/> | ||
<auxiliary auxtype="OffsetZ" auxvalue="-400.0" auxunit="mm"/> | ||
</auxiliary> | ||
|
||
<!-- define regions --> | ||
<auxiliary auxtype="Region" auxvalue="CalorimeterRegion"> | ||
<auxiliary auxtype="StoreTrajectories" auxvalue="false"/> | ||
</auxiliary> | ||
<auxiliary auxtype="Region" auxvalue="MagnetRegion"> | ||
<auxiliary auxtype="StoreTrajectories" auxvalue="false"/> | ||
</auxiliary> | ||
<auxiliary auxtype="Region" auxvalue="tagger" > | ||
<auxiliary auxtype="StoreTrajectories" auxvalue="true"/> | ||
</auxiliary> | ||
<auxiliary auxtype="Region" auxvalue="trig_scint" > | ||
<auxiliary auxtype="StoreTrajectories" auxvalue="true"/> | ||
</auxiliary> | ||
<auxiliary auxtype="Region" auxvalue="target" > | ||
<auxiliary auxtype="StoreTrajectories" auxvalue="true"/> | ||
</auxiliary> | ||
|
||
<!-- define vis attributes --> | ||
<auxiliary auxtype="VisAttributes" auxvalue="InvisibleNoDau"> | ||
<auxiliary auxtype="DaughtersInvisible" auxvalue="true"/> | ||
<auxiliary auxtype="Visible" auxvalue="false"/> | ||
</auxiliary> | ||
<auxiliary auxtype="VisAttributes" auxvalue="InvisibleShowDau"> | ||
<auxiliary auxtype="DaughtersInvisible" auxvalue="false"/> | ||
<auxiliary auxtype="Visible" auxvalue="false"/> | ||
</auxiliary> | ||
<auxiliary auxtype="VisAttributes" auxvalue="NoDau"> | ||
<auxiliary auxtype="DaughtersInvisible" auxvalue="true"/> | ||
<auxiliary auxtype="Visible" auxvalue="true"/> | ||
</auxiliary> | ||
<auxiliary auxtype="VisAttributes" auxvalue="TargetVis"> | ||
<auxiliary auxtype="R" auxvalue="1.0"/> | ||
<auxiliary auxtype="G" auxvalue="0.0"/> | ||
<auxiliary auxtype="B" auxvalue="0.0"/> | ||
<auxiliary auxtype="A" auxvalue="1.0"/> | ||
<auxiliary auxtype="Style" auxvalue="solid"/> | ||
<auxiliary auxtype="DaughtersInvisible" auxvalue="true"/> | ||
<auxiliary auxtype="Visible" auxvalue="true"/> | ||
<auxiliary auxtype="LineWidth" auxvalue="1.0"/> | ||
</auxiliary> | ||
<auxiliary auxtype="VisAttributes" auxvalue="EcalVis"> | ||
<auxiliary auxtype="R" auxvalue="0.6"/> | ||
<auxiliary auxtype="G" auxvalue="0.6"/> | ||
<auxiliary auxtype="B" auxvalue="0.6"/> | ||
<auxiliary auxtype="A" auxvalue="1.0"/> | ||
<auxiliary auxtype="Style" auxvalue="wireframe"/> | ||
<auxiliary auxtype="DaughtersInvisible" auxvalue="false"/> | ||
<auxiliary auxtype="Visible" auxvalue="true"/> | ||
<auxiliary auxtype="LineWidth" auxvalue="1.0"/> | ||
</auxiliary> | ||
<auxiliary auxtype="VisAttributes" auxvalue="HcalVis"> | ||
<auxiliary auxtype="R" auxvalue="0.6"/> | ||
<auxiliary auxtype="G" auxvalue="0.3"/> | ||
<auxiliary auxtype="B" auxvalue="0.0"/> | ||
<auxiliary auxtype="A" auxvalue="1.0"/> | ||
<auxiliary auxtype="Style" auxvalue="wireframe"/> | ||
<auxiliary auxtype="DaughtersInvisible" auxvalue="false"/> | ||
<auxiliary auxtype="Visible" auxvalue="true"/> | ||
<auxiliary auxtype="LineWidth" auxvalue="1.0"/> | ||
</auxiliary> | ||
<auxiliary auxtype="VisAttributes" auxvalue="TaggerVis"> | ||
<auxiliary auxtype="R" auxvalue="0.8"/> | ||
<auxiliary auxtype="G" auxvalue="0.8"/> | ||
<auxiliary auxtype="B" auxvalue="0.0"/> | ||
<auxiliary auxtype="A" auxvalue="1.0"/> | ||
<auxiliary auxtype="Style" auxvalue="wireframe"/> | ||
<auxiliary auxtype="DaughtersInvisible" auxvalue="false"/> | ||
<auxiliary auxtype="Visible" auxvalue="true"/> | ||
<auxiliary auxtype="LineWidth" auxvalue="1.0"/> | ||
</auxiliary> | ||
<auxiliary auxtype="VisAttributes" auxvalue="RecoilVis"> | ||
<auxiliary auxtype="R" auxvalue="0.6"/> | ||
<auxiliary auxtype="G" auxvalue="0.6"/> | ||
<auxiliary auxtype="B" auxvalue="0.0"/> | ||
<auxiliary auxtype="A" auxvalue="1.0"/> | ||
<auxiliary auxtype="Style" auxvalue="wireframe"/> | ||
<auxiliary auxtype="DaughtersInvisible" auxvalue="false"/> | ||
<auxiliary auxtype="Visible" auxvalue="true"/> | ||
<auxiliary auxtype="LineWidth" auxvalue="1.0"/> | ||
</auxiliary> | ||
<auxiliary auxtype="VisAttributes" auxvalue="TriggerPadVis"> | ||
<auxiliary auxtype="R" auxvalue="0.9"/> | ||
<auxiliary auxtype="G" auxvalue="0.8"/> | ||
<auxiliary auxtype="B" auxvalue="1.0"/> | ||
<auxiliary auxtype="A" auxvalue="1.0"/> | ||
<auxiliary auxtype="Style" auxvalue="wireframe"/> | ||
<auxiliary auxtype="DaughtersInvisible" auxvalue="true"/> | ||
<auxiliary auxtype="Visible" auxvalue="true"/> | ||
<auxiliary auxtype="LineWidth" auxvalue="1.0"/> | ||
</auxiliary> | ||
<auxiliary auxtype="VisAttributes" auxvalue="MagnetVis"> | ||
<auxiliary auxtype="R" auxvalue="0.75"/> | ||
<auxiliary auxtype="G" auxvalue="0.75"/> | ||
<auxiliary auxtype="B" auxvalue="0.75"/> | ||
<auxiliary auxtype="A" auxvalue="0.8"/> | ||
<auxiliary auxtype="Style" auxvalue="wireframe"/> | ||
<auxiliary auxtype="DaughtersInvisible" auxvalue="false"/> | ||
<auxiliary auxtype="Visible" auxvalue="false"/> | ||
<auxiliary auxtype="LineWidth" auxvalue="1.0"/> | ||
</auxiliary> | ||
</userinfo> | ||
|
||
<setup name="Default" version="1.0"> | ||
<world ref="World"/> | ||
</setup> | ||
</gdml> |
Oops, something went wrong.