Skip to content
Snippets Groups Projects
Commit 85c45920 authored by Sylvester Joosten's avatar Sylvester Joosten
Browse files

Add simple DIRC implementation.

parent 9f6ccabd
Branches
Tags
1 merge request!76Resolve "Add DIRC stand-in"
Pipeline #9740 passed with warnings
...@@ -17,16 +17,16 @@ ...@@ -17,16 +17,16 @@
type="ref_RectangularTracker" type="ref_RectangularTracker"
insideTrackingVolume="true" insideTrackingVolume="true"
reflect="false" reflect="false"
vis="Argonne_Red"> vis="AnlRed">
<position x="0" y="0" z="B0Tracker_zpos"/> <position x="0" y="0" z="B0Tracker_zpos"/>
<layer id="1" <layer id="1"
vis="Argonne_Blue" vis="AnlBlue"
x="20.0*cm" x="20.0*cm"
y="10.0*cm" > y="10.0*cm" >
<slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" /> <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
<slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" /> <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
<slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" /> <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
<slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" /> <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
</layer> </layer>
</detector> </detector>
</detectors> </detectors>
......
<lccdd>
<comment>Initial implementation of the Reference Detector
DIRC (ported from g4e). Currently constructed around
a fixed radius of 83.65cm (between the uRWEL layers).
TODO: this needs to be properly parameterized.
</comment>
<define>
<constant name="cb_DIRC_length" value="TrackerBarrelOuter_length"/>
<constant name="cb_DIRC_rmin" value="82.00*cm"/>
<constant name="cb_DIRC_rmax" value="88.00*cm"/>
</define>
<limits>
</limits>
<regions>
</regions>
<display>
</display>
<detectors>
<detector id="BarrelDIRC_ID" name="cb_DIRC" type="cb_DIRC" readout="DIRCHits" vis="AnlTeal">
<dimensions rmin="cb_DIRC_rmin" rmax="cb_DIRC_rmax" length="cb_DIRC_length"/>
<position x="0" y="0" z="0"/>
</detector>
</detectors>
<readouts>
<readout name="DIRCHits">
<segmentation type="CartesianGridXY" grid_size_x="3.0*mm" grid_size_y="3.0*mm" />
<id>system:8,barrel:3,module:12,x:32:-16,y:-16</id>
</readout>
</readouts>
<plugins>
</plugins>
<fields>
</fields>
</lccdd>
...@@ -60,72 +60,72 @@ ...@@ -60,72 +60,72 @@
</detector> </detector>
<detector id="SiVertexEndcapP_ID" name="SiVertexEndcapP" type="ref_DiskTracker" <detector id="SiVertexEndcapP_ID" name="SiVertexEndcapP" type="ref_DiskTracker"
insideTrackingVolume="true" reflect="false" vis="Argonne_Red"> insideTrackingVolume="true" reflect="false" vis="AnlRed">
<position x="0" y="0" z="0"/> <position x="0" y="0" z="0"/>
<layer id="1" vis="Argonne_Orange" <layer id="1" vis="AnlOrange"
inner_z="SiVertexEndcapP_zmin + 0*SiVertexEndcap_delta" inner_z="SiVertexEndcapP_zmin + 0*SiVertexEndcap_delta"
inner_r="SiVertexEndcapP_rmin" inner_r="SiVertexEndcapP_rmin"
outer_r="SiVertexEndcapP_rmax"> outer_r="SiVertexEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" /> <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer> </layer>
<layer id="2" vis="Argonne_Orange" <layer id="2" vis="AnlOrange"
inner_z="SiVertexEndcapP_zmin + 1*SiVertexEndcap_delta" inner_z="SiVertexEndcapP_zmin + 1*SiVertexEndcap_delta"
inner_r="SiVertexEndcapP_rmin" inner_r="SiVertexEndcapP_rmin"
outer_r="SiVertexEndcapP_rmax"> outer_r="SiVertexEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" /> <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer> </layer>
<layer id="3" vis="Argonne_Orange" <layer id="3" vis="AnlOrange"
inner_z="SiVertexEndcapP_zmin + 2*SiVertexEndcap_delta" inner_z="SiVertexEndcapP_zmin + 2*SiVertexEndcap_delta"
inner_r="SiVertexEndcapP_rmin" inner_r="SiVertexEndcapP_rmin"
outer_r="SiVertexEndcapP_rmax"> outer_r="SiVertexEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" /> <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer> </layer>
<layer id="4" vis="Argonne_Orange" <layer id="4" vis="AnlOrange"
inner_z="SiVertexEndcapP_zmin + 3*SiVertexEndcap_delta" inner_z="SiVertexEndcapP_zmin + 3*SiVertexEndcap_delta"
inner_r="SiVertexEndcapP_rmin" inner_r="SiVertexEndcapP_rmin"
outer_r="SiVertexEndcapP_rmax"> outer_r="SiVertexEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" /> <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer> </layer>
<layer id="5" vis="Argonne_Orange" <layer id="5" vis="AnlOrange"
inner_z="SiVertexEndcapP_zmin + 4*SiVertexEndcap_delta" inner_z="SiVertexEndcapP_zmin + 4*SiVertexEndcap_delta"
inner_r="SiVertexEndcapP_rmin" inner_r="SiVertexEndcapP_rmin"
outer_r="SiVertexEndcapP_rmax"> outer_r="SiVertexEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" /> <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer> </layer>
</detector> </detector>
<detector id="SiVertexEndcapN_ID" name="SiVertexEndcapN" type="ref_DiskTracker" <detector id="SiVertexEndcapN_ID" name="SiVertexEndcapN" type="ref_DiskTracker"
insideTrackingVolume="true" reflect="true" vis="Argonne_Red"> insideTrackingVolume="true" reflect="true" vis="AnlRed">
<position x="0" y="0" z="0"/> <position x="0" y="0" z="0"/>
<layer id="1" vis="Argonne_Orange" <layer id="1" vis="AnlOrange"
inner_z="SiVertexEndcapN_zmin + 0*SiVertexEndcap_delta" inner_z="SiVertexEndcapN_zmin + 0*SiVertexEndcap_delta"
inner_r="SiVertexEndcapN_rmin" inner_r="SiVertexEndcapN_rmin"
outer_r="SiVertexEndcapN_rmax"> outer_r="SiVertexEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" /> <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer> </layer>
<layer id="2" vis="Argonne_Orange" <layer id="2" vis="AnlOrange"
inner_z="SiVertexEndcapN_zmin + 1*SiVertexEndcap_delta" inner_z="SiVertexEndcapN_zmin + 1*SiVertexEndcap_delta"
inner_r="SiVertexEndcapN_rmin" inner_r="SiVertexEndcapN_rmin"
outer_r="SiVertexEndcapN_rmax"> outer_r="SiVertexEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" /> <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer> </layer>
<layer id="3" vis="Argonne_Orange" <layer id="3" vis="AnlOrange"
inner_z="SiVertexEndcapN_zmin + 2*SiVertexEndcap_delta" inner_z="SiVertexEndcapN_zmin + 2*SiVertexEndcap_delta"
inner_r="SiVertexEndcapN_rmin" inner_r="SiVertexEndcapN_rmin"
outer_r="SiVertexEndcapN_rmax"> outer_r="SiVertexEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" /> <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer> </layer>
<layer id="4" vis="Argonne_Orange" <layer id="4" vis="AnlOrange"
inner_z="SiVertexEndcapN_zmin + 3*SiVertexEndcap_delta" inner_z="SiVertexEndcapN_zmin + 3*SiVertexEndcap_delta"
inner_r="SiVertexEndcapN_rmin" inner_r="SiVertexEndcapN_rmin"
outer_r="SiVertexEndcapN_rmax"> outer_r="SiVertexEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" /> <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer> </layer>
<layer id="5" vis="Argonne_Orange" <layer id="5" vis="AnlOrange"
inner_z="SiVertexEndcapN_zmin + 4*SiVertexEndcap_delta" inner_z="SiVertexEndcapN_zmin + 4*SiVertexEndcap_delta"
inner_r="SiVertexEndcapN_rmin" inner_r="SiVertexEndcapN_rmin"
outer_r="SiVertexEndcapN_rmax"> outer_r="SiVertexEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" /> <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer> </layer>
</detector> </detector>
</detectors> </detectors>
......
...@@ -341,7 +341,8 @@ ...@@ -341,7 +341,8 @@
<constant name="ForwardPID_rmin1" value="Beampipe_rmax + 80*mm"/> <constant name="ForwardPID_rmin1" value="Beampipe_rmax + 80*mm"/>
<comment> Barrel PID thicknesses</comment> <comment> Barrel PID thicknesses</comment>
<constant name="BarrelExtraPIDThickness" value="25.0 * cm"/> <comment> Note: ExtraPID set to zero, as we have potentially trackers past PID</comment>
<constant name="BarrelExtraPIDThickness" value="0.0 * cm"/>
<constant name="BarrelTRDThickness" value="1.0 * cm"/> <constant name="BarrelTRDThickness" value="1.0 * cm"/>
<constant name="BarrelTOFThickness" value="1.0 * cm"/> <constant name="BarrelTOFThickness" value="1.0 * cm"/>
...@@ -399,7 +400,7 @@ ...@@ -399,7 +400,7 @@
</comment> </comment>
<constant name="TrackerBarrel_rmin" value="VertexTrackerBarrel_rmax"/> <constant name="TrackerBarrel_rmin" value="VertexTrackerBarrel_rmax"/>
<constant name="TrackerBarrel_rmax" value="Solenoid_rmax/3.0"/> <constant name="TrackerBarrel_rmax" value="92*cm"/>
<constant name="TrackerBarrelOuter_length" value="1600.0*mm"/> <constant name="TrackerBarrelOuter_length" value="1600.0*mm"/>
<constant name="TrackerBarrelInner_length" value="VertexTrackingRegion_length"/> <constant name="TrackerBarrelInner_length" value="VertexTrackingRegion_length"/>
<constant name="TrackerBarrelInner_zmax" value="TrackerBarrelInner_length/2.0"/> <constant name="TrackerBarrelInner_zmax" value="TrackerBarrelInner_length/2.0"/>
...@@ -464,8 +465,8 @@ ...@@ -464,8 +465,8 @@
<constant name="SolenoidYokeEndcapP_zmin" value="Solenoid_length/2.0 + Solenoid_offset + HcalEndcapPExtra_length"/> <constant name="SolenoidYokeEndcapP_zmin" value="Solenoid_length/2.0 + Solenoid_offset + HcalEndcapPExtra_length"/>
<constant name="SolenoidYokeEndcapN_zmin" value="Solenoid_length/2.0 - Solenoid_offset + HcalEndcapNExtra_length"/> <constant name="SolenoidYokeEndcapN_zmin" value="Solenoid_length/2.0 - Solenoid_offset + HcalEndcapNExtra_length"/>
<constant name="EcalBarrel_rmin" value="SiliconTrackerOuterRadius + BarrelExtraPIDThickness + 5.0 * mm"/> <constant name="EcalBarrel_rmin" value="TrackerBarrel_rmax + 35.0 * mm"/>
<constant name="Barrel_rmax" value="Solenoid_rmin - 10.0 *cm "/> <constant name="Barrel_rmax" value="Solenoid_rmin - 1.0 *cm "/>
<constant name="Barrel_TotalCalThickness" value="Barrel_rmax - EcalBarrel_rmin"/> <constant name="Barrel_TotalCalThickness" value="Barrel_rmax - EcalBarrel_rmin"/>
<constant name="CalBarrelDivider" value="0.8"/> <constant name="CalBarrelDivider" value="0.8"/>
......
<display> <display>
<vis name="Argonne_Green" alpha="1" r="119/255" g="179/255" b="0"/> <vis name="AnlGreen" alpha="1" r="119/255" g="179/255" b="0"/>
<vis name="Argonne_Violet" alpha="1" r="91/256" g="0" b="145/256"/> <vis name="AnlViolet" alpha="1" r="91/256" g="0" b="145/256"/>
<vis name="Argonne_Process_Blue" alpha="1" r="0/256" g="130/256" b="202/256"/> <vis name="AnlProcess_Blue" alpha="1" r="0/256" g="130/256" b="202/256"/>
<vis name="Argonne_Orange" alpha="1" r="255/256" g="121/256" b="0"/> <vis name="AnlOrange" alpha="1" r="255/256" g="121/256" b="0"/>
<vis name="Argonne_Red" alpha="1" r="205/256" g="32/256" b="44/256"/> <vis name="AnlRed" alpha="1" r="205/256" g="32/256" b="44/256"/>
<vis name="Argonne_Gold" alpha="1" r="248/256" g="178/256" b="0/256"/> <vis name="AnlGold" alpha="1" r="248/256" g="178/256" b="0/256"/>
<vis name="Argonne_Blue" alpha="1" r="0/256" g="96/256" b="156/256"/> <vis name="AnlBlue" alpha="1" r="0/256" g="96/256" b="156/256"/>
<vis name="Argonne_Teal" alpha="1" r="0/256" g="161/256" b="156/256"/> <vis name="AnlTeal" alpha="1" r="0/256" g="161/256" b="156/256"/>
<vis name="Argonne_Gray" alpha="1" r="102/256" g="102/256" b="102/256"/> <vis name="AnlGray" alpha="1" r="102/256" g="102/256" b="102/256"/>
<vis name="Argonne_Light_Gray" alpha="1" r="209/256" g="209/256" b="209/256"/> <vis name="AnlLight_Gray" alpha="1" r="209/256" g="209/256" b="209/256"/>
<vis name="Argonne_Off_White" alpha="1" r="242/256" g="242/256" b="242/256"/> <vis name="AnlOff_White" alpha="1" r="242/256" g="242/256" b="242/256"/>
<vis name="Argonne_Delta_Red" alpha="1" r="161/256" g="43/256" b="47/256"/> <vis name="AnlDelta_Red" alpha="1" r="161/256" g="43/256" b="47/256"/>
<vis name="Argonne_Delta_Green" alpha="1" r="0" g="120/256" b="54/256"/> <vis name="AnlDelta_Green" alpha="1" r="0" g="120/256" b="54/256"/>
<vis name="Argonne_Delta_Blue" alpha="1" r="11/256" g="31/256" b="143/256"/> <vis name="AnlDelta_Blue" alpha="1" r="11/256" g="31/256" b="143/256"/>
<vis name="Argonne_Red_1" alpha="0.5" r="205/256" g="32/256" b="44/256"/> <vis name="AnlRed_1" alpha="0.5" r="205/256" g="32/256" b="44/256"/>
<comment>Tracker_Layer_Vis is Argonne_Gold</comment> <comment>Tracker_Layer_Vis is AnlGold</comment>
<vis name="Tracker_Layer_Vis" alpha="0.5" r="248/256" g="178/256" b="0/256" showDaughters="true" /> <vis name="Tracker_Layer_Vis" alpha="0.5" r="248/256" g="178/256" b="0/256" showDaughters="true" />
<vis name="InvisibleNoDaughters" showDaughters="false" visible="false"/> <vis name="InvisibleNoDaughters" showDaughters="false" visible="false"/>
......
...@@ -18,16 +18,16 @@ ...@@ -18,16 +18,16 @@
type="ref_RectangularTracker" type="ref_RectangularTracker"
insideTrackingVolume="true" insideTrackingVolume="true"
reflect="false" reflect="false"
vis="Argonne_Red"> vis="AnlRed">
<position x="ForwardOffMTracker_xpos" y="0" z="ForwardOffMTracker_zpos"/> <position x="ForwardOffMTracker_xpos" y="0" z="ForwardOffMTracker_zpos"/>
<layer id="1" <layer id="1"
vis="Argonne_Violet" vis="AnlViolet"
x="60.0*cm" x="60.0*cm"
y="20.0*cm" > y="20.0*cm" >
<slice material="Air" thickness="1.0*cm" vis="Argonne_Violet" sensitive="true" /> <slice material="Air" thickness="1.0*cm" vis="AnlViolet" sensitive="true" />
<slice material="Air" thickness="1.0*cm" vis="Argonne_Violet" sensitive="true" /> <slice material="Air" thickness="1.0*cm" vis="AnlViolet" sensitive="true" />
<slice material="Air" thickness="1.0*cm" vis="Argonne_Violet" sensitive="true" /> <slice material="Air" thickness="1.0*cm" vis="AnlViolet" sensitive="true" />
<slice material="Air" thickness="1.0*cm" vis="Argonne_Violet" sensitive="true" /> <slice material="Air" thickness="1.0*cm" vis="AnlViolet" sensitive="true" />
</layer> </layer>
</detector> </detector>
</detectors> </detectors>
......
...@@ -20,16 +20,16 @@ ...@@ -20,16 +20,16 @@
type="ref_RectangularTracker" type="ref_RectangularTracker"
insideTrackingVolume="true" insideTrackingVolume="true"
reflect="false" reflect="false"
vis="Argonne_Red"> vis="AnlRed">
<position x="ForwardRomanPotA_xpos" y="0" z="ForwardRomanPotA_zpos"/> <position x="ForwardRomanPotA_xpos" y="0" z="ForwardRomanPotA_zpos"/>
<layer id="1" <layer id="1"
vis="Argonne_Blue" vis="AnlBlue"
x="20.0*cm" x="20.0*cm"
y="10.0*cm" > y="10.0*cm" >
<slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" /> <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
<slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" /> <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
<slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" /> <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
<slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" /> <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
</layer> </layer>
</detector> </detector>
<detector <detector
...@@ -39,16 +39,16 @@ ...@@ -39,16 +39,16 @@
type="ref_RectangularTracker" type="ref_RectangularTracker"
insideTrackingVolume="true" insideTrackingVolume="true"
reflect="false" reflect="false"
vis="Argonne_Red"> vis="AnlRed">
<position x="ForwardRomanPotB_xpos" y="0" z="ForwardRomanPotB_zpos"/> <position x="ForwardRomanPotB_xpos" y="0" z="ForwardRomanPotB_zpos"/>
<layer id="1" <layer id="1"
vis="Argonne_Blue" vis="AnlBlue"
x="20.0*cm" x="20.0*cm"
y="10.0*cm" > y="10.0*cm" >
<slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" /> <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
<slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" /> <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
<slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" /> <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
<slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" /> <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
</layer> </layer>
</detector> </detector>
</detectors> </detectors>
......
...@@ -18,22 +18,22 @@ ...@@ -18,22 +18,22 @@
type="ref_DiskTracker" type="ref_DiskTracker"
insideTrackingVolume="true" insideTrackingVolume="true"
reflect="false" reflect="false"
vis="Argonne_Red"> vis="AnlRed">
<position x="0" y="0" z="0.0"/> <position x="0" y="0" z="0.0"/>
<layer id="1" <layer id="1"
vis="Argonne_Red" vis="AnlRed"
inner_z="ForwardTRD_zmin" inner_z="ForwardTRD_zmin"
inner_r="ForwardTRD_rmin" inner_r="ForwardTRD_rmin"
outer_r="ForwardTRD_rmax"> outer_r="ForwardTRD_rmax">
<slice material="Air" thickness="ForwardTRD_length/2.5" vis="Argonne_Red" /> <slice material="Air" thickness="ForwardTRD_length/2.5" vis="AnlRed" />
</layer> </layer>
<layer id="1" <layer id="1"
vis="Argonne_Red" vis="AnlRed"
inner_z="ForwardTRD_zmin+ForwardTRD_length/2.0" inner_z="ForwardTRD_zmin+ForwardTRD_length/2.0"
inner_r="ForwardTRD_rmin" inner_r="ForwardTRD_rmin"
outer_r="ForwardTRD_rmax"> outer_r="ForwardTRD_rmax">
<slice material="Air" thickness="ForwardTRD_length/2.5" vis="Argonne_Red" /> <slice material="Air" thickness="ForwardTRD_length/2.5" vis="AnlRed" />
</layer> </layer>
</detector> </detector>
</detectors> </detectors>
......
...@@ -70,9 +70,9 @@ ...@@ -70,9 +70,9 @@
name="GEMTrackerEndcap" name="GEMTrackerEndcap"
type="refdet_GEMTrackerEndcap" type="refdet_GEMTrackerEndcap"
readout="GEMTrackerEndcapHits" readout="GEMTrackerEndcapHits"
vis="Argonne_Red" vis="AnlRed"
reflect="false"> reflect="false">
<module name="GEMModule1" vis="Argonne_Process_Blue"> <module name="GEMModule1" vis="AnlProcess_Blue">
<trd x1="GEMTrackerEndcapFoilX1/2.0" x2="GEMTrackerEndcapFoilX2/2.0" z="GEMTrackerEndcapFoilY/2"/> <trd x1="GEMTrackerEndcapFoilX1/2.0" x2="GEMTrackerEndcapFoilX2/2.0" z="GEMTrackerEndcapFoilY/2"/>
<comment> Going from HV side to readout side</comment> <comment> Going from HV side to readout side</comment>
<module_component thickness="0.127 * mm" material="Mylar"/> <module_component thickness="0.127 * mm" material="Mylar"/>
...@@ -93,62 +93,62 @@ ...@@ -93,62 +93,62 @@
<module_component thickness="30.0*um" material="Kapton" name="readout" sensitive="true"/> <module_component thickness="30.0*um" material="Kapton" name="readout" sensitive="true"/>
<module_component thickness=" 3.0*um" material="Copper" name="readout_Cu"/> <module_component thickness=" 3.0*um" material="Copper" name="readout_Cu"/>
<module_component thickness="127.0*um" material="Mylar"/> <module_component thickness="127.0*um" material="Mylar"/>
<module_component thickness="200.0*um" material="Epoxy" sensitive="true" vis="Argonne_Process_Blue"/> <module_component thickness="200.0*um" material="Epoxy" sensitive="true" vis="AnlProcess_Blue"/>
</module> </module>
<module name="GEMSupportModule1" vis="Argonne_Process_Blue"> <module name="GEMSupportModule1" vis="AnlProcess_Blue">
<trd x1="GEMTrackerEndcapFoilX2/2.0" x2="GEMTrackerEndcapFoilX1/2.0" z="GEMTrackerEndcapFrameBotEdge_width"/> <trd x1="GEMTrackerEndcapFoilX2/2.0" x2="GEMTrackerEndcapFoilX1/2.0" z="GEMTrackerEndcapFrameBotEdge_width"/>
<module_component thickness="GEMTrackerEndcapFrame_thickness" material="Mylar"/> <module_component thickness="GEMTrackerEndcapFrame_thickness" material="Mylar"/>
</module> </module>
<module name="GEMSupportModule2" vis="Argonne_Process_Blue"> <module name="GEMSupportModule2" vis="AnlProcess_Blue">
<trd x1="GEMTrackerEndcapFrameSideEdge_width" x2="GEMTrackerEndcapFrameSideEdge_width" z="GEMTrackerEndcapFoilY/2"/> <trd x1="GEMTrackerEndcapFrameSideEdge_width" x2="GEMTrackerEndcapFrameSideEdge_width" z="GEMTrackerEndcapFoilY/2"/>
<module_component thickness="4.0*mm" material="Mylar"/> <module_component thickness="4.0*mm" material="Mylar"/>
</module> </module>
<layer id="1" > <layer id="1" >
<ring vis="Argonne_Red" <ring vis="AnlRed"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin + 0.5*GEMTrackerEndcapLayer_thickness" zstart="GEMTrackerEndcap_zmin + 0.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="10 * mm" module="GEMModule1" /> nmodules="12" dz="10 * mm" module="GEMModule1" />
<ring vis="Argonne_Blue" phi0="15.0*degree" <ring vis="AnlBlue" phi0="15.0*degree"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin + 0.5*GEMTrackerEndcapLayer_thickness" zstart="GEMTrackerEndcap_zmin + 0.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="0 * mm" module="GEMSupportModule2" /> nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
</layer> </layer>
<layer id="2" > <layer id="2" >
<ring vis="Argonne_Red" <ring vis="AnlRed"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+1.5*GEMTrackerEndcapLayer_thickness" zstart="GEMTrackerEndcap_zmin+1.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="10 * mm" module="GEMModule1" /> nmodules="12" dz="10 * mm" module="GEMModule1" />
<ring vis="Argonne_Blue" phi0="15.0*degree" <ring vis="AnlBlue" phi0="15.0*degree"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+1.5*GEMTrackerEndcapLayer_thickness" zstart="GEMTrackerEndcap_zmin+1.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="0 * mm" module="GEMSupportModule2" /> nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
</layer> </layer>
<layer id="3" > <layer id="3" >
<ring vis="Argonne_Red" <ring vis="AnlRed"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+2.5*GEMTrackerEndcapLayer_thickness" zstart="GEMTrackerEndcap_zmin+2.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="10 * mm" module="GEMModule1" /> nmodules="12" dz="10 * mm" module="GEMModule1" />
<ring vis="Argonne_Blue" phi0="15.0*degree" <ring vis="AnlBlue" phi0="15.0*degree"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+2.5*GEMTrackerEndcapLayer_thickness" zstart="GEMTrackerEndcap_zmin+2.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="0 * mm" module="GEMSupportModule2" /> nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
</layer> </layer>
<layer id="4" > <layer id="4" >
<ring vis="Argonne_Red" <ring vis="AnlRed"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+3.5*GEMTrackerEndcapLayer_thickness" zstart="GEMTrackerEndcap_zmin+3.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="10 * mm" module="GEMModule1" /> nmodules="12" dz="10 * mm" module="GEMModule1" />
<ring vis="Argonne_Blue" phi0="15.0*degree" <ring vis="AnlBlue" phi0="15.0*degree"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+3.5*GEMTrackerEndcapLayer_thickness" zstart="GEMTrackerEndcap_zmin+3.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="0 * mm" module="GEMSupportModule2" /> nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
</layer> </layer>
<layer id="5" > <layer id="5" >
<ring vis="Argonne_Red" <ring vis="AnlRed"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+4.5*GEMTrackerEndcapLayer_thickness" zstart="GEMTrackerEndcap_zmin+4.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="10 * mm" module="GEMModule1" /> nmodules="12" dz="10 * mm" module="GEMModule1" />
<ring vis="Argonne_Blue" phi0="15.0*degree" <ring vis="AnlBlue" phi0="15.0*degree"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+4.5*GEMTrackerEndcapLayer_thickness" zstart="GEMTrackerEndcap_zmin+4.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="0 * mm" module="GEMSupportModule2" /> nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
...@@ -160,9 +160,9 @@ ...@@ -160,9 +160,9 @@
name="GEMTrackerEndcapN" name="GEMTrackerEndcapN"
type="refdet_GEMTrackerEndcap" type="refdet_GEMTrackerEndcap"
readout="GEMTrackerEndcapHits" readout="GEMTrackerEndcapHits"
vis="Argonne_Red" vis="AnlRed"
reflect="true"> reflect="true">
<module name="GEMModule1" vis="Argonne_Process_Blue"> <module name="GEMModule1" vis="AnlProcess_Blue">
<trd x1="GEMTrackerEndcapFoilX1/2.0" x2="GEMTrackerEndcapFoilX2/2.0" z="GEMTrackerEndcapFoilY/2"/> <trd x1="GEMTrackerEndcapFoilX1/2.0" x2="GEMTrackerEndcapFoilX2/2.0" z="GEMTrackerEndcapFoilY/2"/>
<comment> Going from HV side to readout side</comment> <comment> Going from HV side to readout side</comment>
<module_component thickness="0.127 * mm" material="Mylar"/> <module_component thickness="0.127 * mm" material="Mylar"/>
...@@ -183,62 +183,62 @@ ...@@ -183,62 +183,62 @@
<module_component thickness="30.0*um" material="Kapton" name="readout" sensitive="true"/> <module_component thickness="30.0*um" material="Kapton" name="readout" sensitive="true"/>
<module_component thickness=" 3.0*um" material="Copper" name="readout_Cu"/> <module_component thickness=" 3.0*um" material="Copper" name="readout_Cu"/>
<module_component thickness="127.0*um" material="Mylar"/> <module_component thickness="127.0*um" material="Mylar"/>
<module_component thickness="200.0*um" material="Epoxy" sensitive="true" vis="Argonne_Process_Blue"/> <module_component thickness="200.0*um" material="Epoxy" sensitive="true" vis="AnlProcess_Blue"/>
</module> </module>
<module name="GEMSupportModule1" vis="Argonne_Process_Blue"> <module name="GEMSupportModule1" vis="AnlProcess_Blue">
<trd x1="GEMTrackerEndcapFoilX2/2.0" x2="GEMTrackerEndcapFoilX1/2.0" z="GEMTrackerEndcapFrameBotEdge_width"/> <trd x1="GEMTrackerEndcapFoilX2/2.0" x2="GEMTrackerEndcapFoilX1/2.0" z="GEMTrackerEndcapFrameBotEdge_width"/>
<module_component thickness="GEMTrackerEndcapFrame_thickness" material="Mylar"/> <module_component thickness="GEMTrackerEndcapFrame_thickness" material="Mylar"/>
</module> </module>
<module name="GEMSupportModule2" vis="Argonne_Process_Blue"> <module name="GEMSupportModule2" vis="AnlProcess_Blue">
<trd x1="GEMTrackerEndcapFrameSideEdge_width" x2="GEMTrackerEndcapFrameSideEdge_width" z="GEMTrackerEndcapFoilY/2"/> <trd x1="GEMTrackerEndcapFrameSideEdge_width" x2="GEMTrackerEndcapFrameSideEdge_width" z="GEMTrackerEndcapFoilY/2"/>
<module_component thickness="4.0*mm" material="Mylar"/> <module_component thickness="4.0*mm" material="Mylar"/>
</module> </module>
<layer id="1" > <layer id="1" >
<ring vis="Argonne_Red" <ring vis="AnlRed"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin + 0.5*GEMTrackerEndcapLayer_thickness" zstart="GEMTrackerEndcap_zmin + 0.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="10 * mm" module="GEMModule1" /> nmodules="12" dz="10 * mm" module="GEMModule1" />
<ring vis="Argonne_Blue" phi0="15.0*degree" <ring vis="AnlBlue" phi0="15.0*degree"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin + 0.5*GEMTrackerEndcapLayer_thickness" zstart="GEMTrackerEndcap_zmin + 0.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="0 * mm" module="GEMSupportModule2" /> nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
</layer> </layer>
<layer id="2" > <layer id="2" >
<ring vis="Argonne_Red" <ring vis="AnlRed"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+1.5*GEMTrackerEndcapLayer_thickness" zstart="GEMTrackerEndcap_zmin+1.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="10 * mm" module="GEMModule1" /> nmodules="12" dz="10 * mm" module="GEMModule1" />
<ring vis="Argonne_Blue" phi0="15.0*degree" <ring vis="AnlBlue" phi0="15.0*degree"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+1.5*GEMTrackerEndcapLayer_thickness" zstart="GEMTrackerEndcap_zmin+1.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="0 * mm" module="GEMSupportModule2" /> nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
</layer> </layer>
<layer id="3" > <layer id="3" >
<ring vis="Argonne_Red" <ring vis="AnlRed"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+2.5*GEMTrackerEndcapLayer_thickness" zstart="GEMTrackerEndcap_zmin+2.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="10 * mm" module="GEMModule1" /> nmodules="12" dz="10 * mm" module="GEMModule1" />
<ring vis="Argonne_Blue" phi0="15.0*degree" <ring vis="AnlBlue" phi0="15.0*degree"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+2.5*GEMTrackerEndcapLayer_thickness" zstart="GEMTrackerEndcap_zmin+2.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="0 * mm" module="GEMSupportModule2" /> nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
</layer> </layer>
<layer id="4" > <layer id="4" >
<ring vis="Argonne_Red" <ring vis="AnlRed"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+3.5*GEMTrackerEndcapLayer_thickness" zstart="GEMTrackerEndcap_zmin+3.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="10 * mm" module="GEMModule1" /> nmodules="12" dz="10 * mm" module="GEMModule1" />
<ring vis="Argonne_Blue" phi0="15.0*degree" <ring vis="AnlBlue" phi0="15.0*degree"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+3.5*GEMTrackerEndcapLayer_thickness" zstart="GEMTrackerEndcap_zmin+3.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="0 * mm" module="GEMSupportModule2" /> nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
</layer> </layer>
<layer id="5" > <layer id="5" >
<ring vis="Argonne_Red" <ring vis="AnlRed"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+4.5*GEMTrackerEndcapLayer_thickness" zstart="GEMTrackerEndcap_zmin+4.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="10 * mm" module="GEMModule1" /> nmodules="12" dz="10 * mm" module="GEMModule1" />
<ring vis="Argonne_Blue" phi0="15.0*degree" <ring vis="AnlBlue" phi0="15.0*degree"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+4.5*GEMTrackerEndcapLayer_thickness" zstart="GEMTrackerEndcap_zmin+4.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="0 * mm" module="GEMSupportModule2" /> nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<detectors> <detectors>
<detector id="MMTrackerBarrel_ID" name="MMTrackerBarrel" type="refdet_MMTrackerBarrel" readout="MMTrackerBarrelHits"> <detector id="MMTrackerBarrel_ID" name="MMTrackerBarrel" type="refdet_MMTrackerBarrel" readout="MMTrackerBarrelHits">
<module name="Module1" vis="Argonne_Gold"> <module name="Module1" vis="AnlGold">
<module_envelope <module_envelope
rmin="TrackerBarrel_rmax" rmin="TrackerBarrel_rmax"
length="MMTrackerBarrelLayer1_length" length="MMTrackerBarrelLayer1_length"
......
...@@ -17,9 +17,9 @@ ...@@ -17,9 +17,9 @@
//outer ring //outer ring
support_03_thickness = 0.50; support_03_thickness = 0.50;
support_03_length = 1.2; support_03_length = 1.2;
modified R=(73.67, 85.0) cm // to avoid conflict with EM Cal
Length=TrackerBarrelOuter_length=(160, 160) cm // to avoid conflict with GEM tracker Length=TrackerBarrelOuter_length=(160, 160) cm // to avoid conflict with GEM tracker
TODO: fix GEM geometry and restore length
</comment> </comment>
<define> <define>
...@@ -34,12 +34,12 @@ ...@@ -34,12 +34,12 @@
<constant name="RWellTrackerBarrel_Pcb_thickness" value="0.1*mm"/> <constant name="RWellTrackerBarrel_Pcb_thickness" value="0.1*mm"/>
<constant name="RWellTrackerBarrelLayer1_length" value="RWellTrackerBarrel_length"/> <constant name="RWellTrackerBarrelLayer1_length" value="RWellTrackerBarrel_length"/>
<constant name="RWellTrackerBarrelLayer1_gas_rmin" value="736.7 * mm"/> <constant name="RWellTrackerBarrelLayer1_gas_rmin" value="786.7 * mm"/>
<constant name="RWellTrackerBarrelLayer1_rmin" value="RWellTrackerBarrelLayer1_gas_rmin - RWellTrackerBarrel_Kapton_thickness"/> <constant name="RWellTrackerBarrelLayer1_rmin" value="RWellTrackerBarrelLayer1_gas_rmin - RWellTrackerBarrel_Kapton_thickness"/>
<constant name="RWellTrackerBarrelLayer1_thickness" value="RWellTrackerBarrel_Kapton_thickness + RWellTrackerBarrel_Gas_thickness + RWellTrackerBarrel_Cu_thickness + RWellTrackerBarrel_Prepreg_thickness + RWellTrackerBarrel_Pcb_thickness"/> <constant name="RWellTrackerBarrelLayer1_thickness" value="RWellTrackerBarrel_Kapton_thickness + RWellTrackerBarrel_Gas_thickness + RWellTrackerBarrel_Cu_thickness + RWellTrackerBarrel_Prepreg_thickness + RWellTrackerBarrel_Pcb_thickness"/>
<constant name="RWellTrackerBarrelLayer2_length" value="RWellTrackerBarrel_length"/> <constant name="RWellTrackerBarrelLayer2_length" value="RWellTrackerBarrel_length"/>
<constant name="RWellTrackerBarrelLayer2_gas_rmin" value="850.0 * mm"/> <constant name="RWellTrackerBarrelLayer2_gas_rmin" value="900.0 * mm"/>
<constant name="RWellTrackerBarrelLayer2_rmin" value="RWellTrackerBarrelLayer2_gas_rmin - RWellTrackerBarrel_Kapton_thickness"/> <constant name="RWellTrackerBarrelLayer2_rmin" value="RWellTrackerBarrelLayer2_gas_rmin - RWellTrackerBarrel_Kapton_thickness"/>
<constant name="RWellTrackerBarrelLayer2_thickness" value="RWellTrackerBarrel_Kapton_thickness + RWellTrackerBarrel_Gas_thickness + RWellTrackerBarrel_Cu_thickness + RWellTrackerBarrel_Prepreg_thickness + RWellTrackerBarrel_Pcb_thickness"/> <constant name="RWellTrackerBarrelLayer2_thickness" value="RWellTrackerBarrel_Kapton_thickness + RWellTrackerBarrel_Gas_thickness + RWellTrackerBarrel_Cu_thickness + RWellTrackerBarrel_Prepreg_thickness + RWellTrackerBarrel_Pcb_thickness"/>
......
...@@ -21,14 +21,14 @@ ...@@ -21,14 +21,14 @@
type="ref_DiskTracker" type="ref_DiskTracker"
insideTrackingVolume="true" insideTrackingVolume="true"
reflect="false" reflect="false"
vis="Argonne_Orange"> vis="AnlOrange">
<position x="0" y="0" z="0.0"/> <position x="0" y="0" z="0.0"/>
<layer id="1" <layer id="1"
vis="Argonne_Orange" vis="AnlOrange"
inner_z="ForwardTOF_zmin" inner_z="ForwardTOF_zmin"
inner_r="ForwardTOF_rmin" inner_r="ForwardTOF_rmin"
outer_r="ForwardTOF_rmax"> outer_r="ForwardTOF_rmax">
<slice material="Air" thickness="ForwardTOF_length/2.0" vis="Argonne_Orange" /> <slice material="Air" thickness="ForwardTOF_length/2.0" vis="AnlOrange" />
</layer> </layer>
</detector> </detector>
...@@ -38,14 +38,14 @@ ...@@ -38,14 +38,14 @@
type="ref_DiskTracker" type="ref_DiskTracker"
insideTrackingVolume="true" insideTrackingVolume="true"
reflect="true" reflect="true"
vis="Argonne_Orange"> vis="AnlOrange">
<position x="0" y="0" z="0.0"/> <position x="0" y="0" z="0.0"/>
<layer id="1" <layer id="1"
vis="Argonne_Orange" vis="AnlOrange"
inner_z="BackwardTOF_zmin" inner_z="BackwardTOF_zmin"
inner_r="BackwardTOF_rmin" inner_r="BackwardTOF_rmin"
outer_r="BackwardTOF_rmax"> outer_r="BackwardTOF_rmax">
<slice material="Air" thickness="BackwardTOF_length/2.0" vis="Argonne_Orange" /> <slice material="Air" thickness="BackwardTOF_length/2.0" vis="AnlOrange" />
</layer> </layer>
</detector> </detector>
......
...@@ -122,72 +122,72 @@ ...@@ -122,72 +122,72 @@
</detector> </detector>
<detector id="SiVertexEndcapP_ID" name="VertexTrackerEndcapP" type="ref_DiskTracker" <detector id="SiVertexEndcapP_ID" name="VertexTrackerEndcapP" type="ref_DiskTracker"
insideTrackingVolume="true" reflect="false" vis="Argonne_Red"> insideTrackingVolume="true" reflect="false" vis="AnlRed">
<position x="0" y="0" z="0"/> <position x="0" y="0" z="0"/>
<layer id="1" vis="Argonne_Orange" <layer id="1" vis="AnlOrange"
inner_z="VertexTrackerEndcapP_zmin + 0*VertexTrackerEndcap_delta" inner_z="VertexTrackerEndcapP_zmin + 0*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapP_rmin" inner_r="VertexTrackerEndcapP_rmin"
outer_r="VertexTrackerEndcapP_rmax"> outer_r="VertexTrackerEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" /> <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer> </layer>
<layer id="2" vis="Argonne_Orange" <layer id="2" vis="AnlOrange"
inner_z="VertexTrackerEndcapP_zmin + 1*VertexTrackerEndcap_delta" inner_z="VertexTrackerEndcapP_zmin + 1*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapP_rmin" inner_r="VertexTrackerEndcapP_rmin"
outer_r="VertexTrackerEndcapP_rmax"> outer_r="VertexTrackerEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" /> <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer> </layer>
<layer id="3" vis="Argonne_Orange" <layer id="3" vis="AnlOrange"
inner_z="VertexTrackerEndcapP_zmin + 2*VertexTrackerEndcap_delta" inner_z="VertexTrackerEndcapP_zmin + 2*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapP_rmin" inner_r="VertexTrackerEndcapP_rmin"
outer_r="VertexTrackerEndcapP_rmax"> outer_r="VertexTrackerEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" /> <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer> </layer>
<layer id="4" vis="Argonne_Orange" <layer id="4" vis="AnlOrange"
inner_z="VertexTrackerEndcapP_zmin + 3*VertexTrackerEndcap_delta" inner_z="VertexTrackerEndcapP_zmin + 3*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapP_rmin" inner_r="VertexTrackerEndcapP_rmin"
outer_r="VertexTrackerEndcapP_rmax"> outer_r="VertexTrackerEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" /> <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer> </layer>
<layer id="5" vis="Argonne_Orange" <layer id="5" vis="AnlOrange"
inner_z="VertexTrackerEndcapP_zmin + 4*VertexTrackerEndcap_delta" inner_z="VertexTrackerEndcapP_zmin + 4*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapP_rmin" inner_r="VertexTrackerEndcapP_rmin"
outer_r="VertexTrackerEndcapP_rmax"> outer_r="VertexTrackerEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" /> <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer> </layer>
</detector> </detector>
<detector id="SiVertexEndcapN_ID" name="VertexTrackerEndcapN" type="ref_DiskTracker" <detector id="SiVertexEndcapN_ID" name="VertexTrackerEndcapN" type="ref_DiskTracker"
insideTrackingVolume="true" reflect="true" vis="Argonne_Red"> insideTrackingVolume="true" reflect="true" vis="AnlRed">
<position x="0" y="0" z="0"/> <position x="0" y="0" z="0"/>
<layer id="1" vis="Argonne_Orange" <layer id="1" vis="AnlOrange"
inner_z="VertexTrackerEndcapN_zmin + 0*VertexTrackerEndcap_delta" inner_z="VertexTrackerEndcapN_zmin + 0*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapN_rmin" inner_r="VertexTrackerEndcapN_rmin"
outer_r="VertexTrackerEndcapN_rmax"> outer_r="VertexTrackerEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" /> <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer> </layer>
<layer id="2" vis="Argonne_Orange" <layer id="2" vis="AnlOrange"
inner_z="VertexTrackerEndcapN_zmin + 1*VertexTrackerEndcap_delta" inner_z="VertexTrackerEndcapN_zmin + 1*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapN_rmin" inner_r="VertexTrackerEndcapN_rmin"
outer_r="VertexTrackerEndcapN_rmax"> outer_r="VertexTrackerEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" /> <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer> </layer>
<layer id="3" vis="Argonne_Orange" <layer id="3" vis="AnlOrange"
inner_z="VertexTrackerEndcapN_zmin + 2*VertexTrackerEndcap_delta" inner_z="VertexTrackerEndcapN_zmin + 2*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapN_rmin" inner_r="VertexTrackerEndcapN_rmin"
outer_r="VertexTrackerEndcapN_rmax"> outer_r="VertexTrackerEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" /> <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer> </layer>
<layer id="4" vis="Argonne_Orange" <layer id="4" vis="AnlOrange"
inner_z="VertexTrackerEndcapN_zmin + 3*VertexTrackerEndcap_delta" inner_z="VertexTrackerEndcapN_zmin + 3*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapN_rmin" inner_r="VertexTrackerEndcapN_rmin"
outer_r="VertexTrackerEndcapN_rmax"> outer_r="VertexTrackerEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" /> <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer> </layer>
<layer id="5" vis="Argonne_Orange" <layer id="5" vis="AnlOrange"
inner_z="VertexTrackerEndcapN_zmin + 4*VertexTrackerEndcap_delta" inner_z="VertexTrackerEndcapN_zmin + 4*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapN_rmin" inner_r="VertexTrackerEndcapN_rmin"
outer_r="VertexTrackerEndcapN_rmax"> outer_r="VertexTrackerEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" /> <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer> </layer>
</detector> </detector>
......
...@@ -136,6 +136,7 @@ ...@@ -136,6 +136,7 @@
--> -->
<include ref="compact/rwell_tracker_barrel.xml"/> <include ref="compact/rwell_tracker_barrel.xml"/>
<include ref="compact/cb_DIRC.xml"/>
<detectors> <detectors>
</detectors> </detectors>
......
#include "DD4hep/DetFactoryHelper.h"
#include "DD4hep/OpticalSurfaces.h"
#include "DD4hep/Printout.h"
#include "DDRec/DetectorData.h"
#include "DDRec/Surface.h"
#include <XML/Helper.h>
//////////////////////////////////
// Central Barrel DIRC
//////////////////////////////////
using namespace std;
using namespace dd4hep;
static Ref_t createDetector(Detector& desc, xml_h e, SensitiveDetector sens)
{
xml_det_t x_det = e;
string detName = x_det.nameStr();
int detID = x_det.id();
xml_dim_t dim = x_det.dimensions();
xml_dim_t pos = x_det.position();
double RIn = dim.rmin();
double ROut = dim.rmax();
double SizeZ = dim.length();
Material Vacuum = desc.material("Vacuum");
Tube cb_DIRC_Barrel_GVol_Solid(RIn, ROut, SizeZ / 2.0, 0., 360.0 * deg);
Volume detVol("cb_DIRC_GVol_Solid_Logic", cb_DIRC_Barrel_GVol_Solid, Vacuum);
detVol.setVisAttributes(desc.invisible());
DetElement det(detName, detID);
Volume motherVol = desc.pickMotherVolume(det);
Transform3D tr(RotationZYX(0.0, 0.0, 0.0), Position(0.0, 0.0, pos.z()));
PlacedVolume detPV = motherVol.placeVolume(detVol, tr);
detPV.addPhysVolID("system", detID);
detPV.addPhysVolID("barrel", 1);
det.setPlacement(detPV);
//////////////////
// DIRC Bars
//////////////////
double dR = 83.65 * cm;
double cb_DIRC_bars_DZ = SizeZ;
double cb_DIRC_bars_DY = 42. * cm;
double cb_DIRC_bars_DX = 1.7 * cm;
double myL = 2 * M_PI * dR;
int NUM = myL / cb_DIRC_bars_DY;
double cb_DIRC_bars_deltaphi = 2 * 3.1415926 / NUM;
Material cb_DIRC_bars_Material = desc.material("Quartz");
Box cb_DIRC_bars_Solid(cb_DIRC_bars_DX / 2., cb_DIRC_bars_DY / 2., cb_DIRC_bars_DZ / 2.);
Volume cb_DIRC_bars_Logic("cb_DIRC_bars_Logix", cb_DIRC_bars_Solid, cb_DIRC_bars_Material);
cb_DIRC_bars_Logic.setVisAttributes(desc.visAttributes(x_det.visStr()));
sens.setType("photoncounter");
cb_DIRC_bars_Logic.setSensitiveDetector(sens);
for (int ia = 0; ia < NUM; ia++) {
double phi = (ia * (cb_DIRC_bars_deltaphi));
double x = -dR * cos(phi);
double y = -dR * sin(phi);
Transform3D tr(RotationZ(cb_DIRC_bars_deltaphi * ia), Position(x, y, 0));
PlacedVolume barPV = detVol.placeVolume(cb_DIRC_bars_Logic, tr);
barPV.addPhysVolID("module", ia);
}
return det;
}
DECLARE_DETELEMENT(cb_DIRC, createDetector)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment