Skip to content
Snippets Groups Projects
Commit 47af658b authored by Whitney Armstrong's avatar Whitney Armstrong
Browse files

Fixing parameterization for putting the HCAL on the outside.

Fixed ce_GEM overlap
parent 0e64d3f8
Branches
Tags
1 merge request!63Resolve "Adjust HCAL parametrization"
Pipeline #8499 failed
......@@ -90,8 +90,10 @@ report:
stage: finalize
needs:
- view_01
- dawn_view_02:detector
- dawn_view_03:detector
- view_02
- view_03
- view_06
- view_07
- dump_constants
artifacts:
paths:
......
......@@ -5,6 +5,7 @@ PROJECT(reference_detector
DESCRIPTION "A template dd4hep+acts detector"
)
set(CMAKE_CXX_STANDARD 17)
find_package( DD4hep REQUIRED COMPONENTS DDCore DDG4 )
#find_package(Acts REQUIRED COMPONENTS Core IdentificationPlugin TGeoPlugin DD4hepPlugin PATHS /home/whit/lib/cmake NO_DEFAULT_PATH)
......
......@@ -3,6 +3,10 @@
<comment> Central Barrel Tracker Silicon </comment>
<define>
<constant name="cb_CTD_rmin" value="SiliconTrackerInnerRadius + 70.0 * mm"/>
<constant name="cb_CTD_rmax" value="SiliconTrackerOuterRadius"/>
<constant name="cb_CTD_zmax" value="SiliconTrackerOuterBarrel_zmax"/>
<constant name="cb_CTD_length" value="SiliconTrackerOuterBarrelLength"/>
<comment> Si layer opiton </comment>
<constant name="cb_CTD_Si_gap" value="5.0 * cm"/>
<constant name="cb_CTD_Si_layer" value="15"/>
......
......@@ -3,6 +3,21 @@
<comment> Electron endcap GEM tracking </comment>
<define>
<comment>
------------------
ce_GEM Parameters
------------------
</comment>
<constant name="ce_GEM_rmin" value="10.0 * cm"/> <comment> temporary number. Need beampipe radius </comment>
<!--<constant name="ce_GEM_rmin" value="0.0 * cm"/>-->
<constant name="ce_GEM_rmax" value="HcalEndcapN_rmin + 0.0 * cm"/> <comment> temporary number to avoid overlaps </comment>
<!--<constant name="ce_GEM_rmax" value="45.0 * cm + 50.0 * cm"/>-->
<constant name="ce_GEM_length" value="30.0 * cm"/>
<constant name="ce_GEM_x_pos" value="0.0 * cm"/>
<constant name="ce_GEM_y_pos" value="0.0 * cm"/>
<constant name="ce_GEM_z_pos" value="-Solenoid_length/2.0 + ce_GEM_length/2.0"/>
<constant name="ce_GEM_layer" value="8"/>
<constant name="ce_GEM_layer_thickness" value="1.0 * cm"/>
</define>
<limits>
......
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<define>
<constant name="ce_MRICHRMin" value="15*cm"/>
<constant name="ce_MRICHRMax" value="BarrelTrackingAndPID_rmax"/>
<constant name="ce_MRICHLength" value="BackwardCherenkovLength"/>
<constant name="ce_MRICHZMin" value="-EcalEndcapN_zmin+ce_MRICHLength"/>
</define>
<detectors>
......
......@@ -304,7 +304,7 @@
<constant name="Solenoid_length" value="3600.0*mm"/>
<constant name="Solenoid_rmin" value="1600.0*mm"/>
<constant name="Solenoid_thickness" value="400*mm"/>
<constant name="Solenoid_offset" value="600.0*mm"/>
<constant name="Solenoid_offset" value="0.0*mm"/>
<constant name="Solenoid_rmax" value="Solenoid_rmin + Solenoid_thickness"/>
<constant name="SolenoidBarrel_rmin" value="Solenoid_rmin"/>
......@@ -321,8 +321,8 @@
</comment>
<constant name="ForwardRICH_length" value="1.1*m"/>
<constant name="ForwardTRD_length" value="20.0*cm"/>
<constant name="ForwardTOF_length" value="10.0*cm"/>
<constant name="ForwardTRD_length" value="10.0*cm"/>
<constant name="ForwardTOF_length" value="10.0*mm"/>
<constant name="BackwardCherenkovLength" value="15.0*cm"/>
<constant name="BackwardTOFLength" value="10.0*cm"/>
......@@ -331,23 +331,34 @@
<constant name="ForwardPIDLength" value="ForwardRICH_length + ForwardTRD_length + ForwardTOF_length"/>
<constant name="BackwardPIDLength" value="BackwardCherenkovLength + BackwardTOFLength"/>
<comment> For detectors adjacent to beam pipe.</comment>
<constant name="ForwardPID_rmin" value="Beampipe_rmax + 10*mm"/>
<constant name="ForwardPID_rmin1" value="Beampipe_rmax + 80*mm"/>
<comment> Barrel PID thicknesses</comment>
<constant name="BarrelExtraPIDThickness" value="25.0 * cm"/>
<constant name="BarrelTRDThickness" value="25.0 * cm"/>
<constant name="BarrelTRDThickness" value="1.0 * cm"/>
<constant name="BarrelTOFThickness" value="1.0 * cm"/>
<comment>
============================
Tracking Detector Parameters
============================
</comment>
<constant name="ForwardTrackingLength" value="30.0*cm"/>
<constant name="BackwardTrackingLength" value="30.0*cm"/>
<comment>
-------------------------
GEM Tracker Parameters
-------------------------
</comment>
<constant name="ForwardTrackingGEMLength" value="30.0*cm"/>
<constant name="ForwardTrackingGEMLength" value="ForwardTrackingLength"/>
<constant name="BackwardTrackingGEMLength" value="BackwardTrackingLength"/>
<comment>
-------------------------
......@@ -362,11 +373,12 @@
--------------------------
Silicon Tracker Parameters
--------------------------
Note current values should be updated
</comment>
<constant name="SiliconTrackerInnerRadius" value="95.0*mm"/>
<constant name="SiliconTrackerInnerBarrelLength" value="300.0*mm"/>
<constant name="SiliconTrackerOuterRadius" value="Solenoid_rmin-70*cm"/>
<constant name="SiliconTrackerOuterBarrelLength" value="Solenoid_length/2.5"/>
<constant name="SiliconTrackerOuterRadius" value="Solenoid_rmax/3.0"/>
<constant name="SiliconTrackerOuterBarrelLength" value="1600.0*mm"/>
<constant name="SiliconTrackerOuterBarrel_zmax" value="SiliconTrackerOuterBarrelLength/2.0"/>
<comment>
......@@ -377,8 +389,11 @@
</comment>
<constant name="BarrelTracking_length" value="SiliconTrackerOuterBarrelLength"/>
<constant name="BarrelTracking_rmax" value="SiliconTrackerOuterRadius"/>
<constant name="BarrelTrackingAndPID_rmax" value="BarrelTracking_rmax+BarrelExtraPIDThickness"/>
<constant name="CentralTracking_length" value="BarrelTracking_length + ForwardTrackingLength + BackwardTrackingLength"/>
<constant name="CentralTracking_rmax" value="SiliconTrackerOuterRadius"/>
<constant name="CentralTracking_length" value="BarrelTracking_length + ForwardTrackingGEMLength"/>
<constant name="VertexTrackingRegion_length" value="SiliconTrackerOuterBarrelLength"/>
<comment> These are used by ddsim </comment>
......@@ -386,40 +401,44 @@
<constant name="tracker_region_zmax" value="Solenoid_length/2.0"/>
<comment>
-------------------------------
Central Barrel Tracker - Global
-------------------------------
The cb_CTD_* parameters can probably be moved to the detector specific xml file.
</comment>
<constant name="cb_CTD_rmin" value="SiliconTrackerInnerRadius + 70.0 * mm"/>
<constant name="cb_CTD_rmax" value="SiliconTrackerOuterRadius"/>
<constant name="cb_CTD_zmax" value="SiliconTrackerOuterBarrel_zmax"/>
<constant name="cb_CTD_length" value="SiliconTrackerOuterBarrelLength"/>
<comment>
------------
Calorimeters
------------
======================
----------------------
Calorimeter Parameters
======================
----------------------
Note on paramaeterization
The HCal Barrel is outside of the solenoid magnet. However,
there is an option to add some HCal barrel inside the magnet but this
is turned off below.
The space for the calorimeters inside the solenoid is assumed to be fixed by
the solenoid inner diameter/length and by the central tracking and PID outer diameter/length.
Endcaps
The extra HCal endcap lengths are for offsetting the outside endcap surface (zmax) from the
end of the solenoid coils.
</comment>
<comment>
Ecal and Hcal Barrel/Endcap
</comment>
<constant name="ExtraHcalEndcapP_length" value="0.0*cm"/>
<constant name="ExtraHcalEndcapN_length" value="0.0*cm"/>
<constant name="SolenoidYokeEndcapP_zmin" value="Solenoid_length/2.0 + Solenoid_offset+ExtraHcalEndcapP_length"/>
<constant name="SolenoidYokeEndcapN_zmin" value="Solenoid_length/2.0 - Solenoid_offset+ExtraHcalEndcapN_length"/>
<comment> these offesets could be implemented differently for clarity. </comment>
<constant name="EcalEndcapPSolenoid_offset" value="800.0*mm" />
<constant name="EcalEndcapNSolenoid_offset" value="0.0*mm" />
<constant name="HcalEndcapPExtra_length" value="40.0*cm"/>
<constant name="HcalEndcapNExtra_length" value="40.0*cm"/>
<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="EcalBarrel_rmin" value="SiliconTrackerOuterRadius + BarrelExtraPIDThickness + 5.0 * mm"/>
<constant name="HcalBarrel_rmax" value="Solenoid_rmin - 10.0 *cm "/>
<constant name="Barrel_TotalCalThickness" value="HcalBarrel_rmax - EcalBarrel_rmin"/>
<constant name="CalBarrelDivider" value="1.0"/> <comment> 100% Ecal, no HCAL inside of the solenoid for now </comment>
<constant name="Barrel_rmax" value="Solenoid_rmin - 10.0 *cm "/>
<constant name="Barrel_TotalCalThickness" value="Barrel_rmax - EcalBarrel_rmin"/>
<constant name="CalBarrelDivider" value="0.8"/>
<comment> Leave room for TRD </comment>
<constant name="EcalBarrel_TotalThickness" value="Barrel_TotalCalThickness * CalBarrelDivider"/>
<constant name="HcalBarrel_TotalThickness" value="Barrel_TotalCalThickness * (1.0 - CalBarrelDivider)"/>
......@@ -430,20 +449,22 @@
<constant name="EcalEndcapP_zmin" value="CentralTracking_length/2.0 + ForwardPIDLength"/>
<constant name="EcalEndcapN_zmin" value="CentralTracking_length/2.0 + BackwardPIDLength"/>
<constant name="BarrelLength" value="SiliconTrackerOuterBarrelLength + ForwardPIDLength + BackwardPIDLength"/>
<constant name="Barrel_offset" value="(EcalEndcapP_zmin-EcalEndcapN_zmin)/2.0"/>
<constant name="BarrelLength" value="SiliconTrackerOuterBarrelLength + ForwardPIDLength + BackwardPIDLength" />
<constant name="Barrel_offset" value="(EcalEndcapP_zmin-EcalEndcapN_zmin)/2.0" />
<constant name="EndcapPTotalCal_length" value="(SolenoidYokeEndcapP_zmin - 0.0 * mm) - (EcalEndcapP_zmin + 20.0 * mm)"/>
<constant name="EndcapNTotalCal_length" value="(SolenoidYokeEndcapN_zmin - 0.0 * mm) - (EcalEndcapN_zmin + 20.0 * mm)"/>
<comment>
Endcaps
</comment>
<constant name="EndcapP_CalDivide" value="0.5"/> <comment> 0.5 means Ecal and Hcal have the same thickness </comment>
<constant name="EndcapN_CalDivide" value="0.5"/> <comment> 0.5 means Ecal and Hcal have the same thickness </comment>
<constant name="EndcapPTotalCal_length" value="(SolenoidYokeEndcapP_zmin + EcalEndcapPSolenoid_offset) - (EcalEndcapP_zmin)"/>
<constant name="EndcapNTotalCal_length" value="(SolenoidYokeEndcapN_zmin + EcalEndcapNSolenoid_offset) - (EcalEndcapN_zmin)"/>
<constant name="EndcapP_CalDivide" value="0.8"/> <comment> 0.5 means Ecal and Hcal have the same thickness </comment>
<constant name="EndcapN_CalDivide" value="0.8"/> <comment> 0.5 means Ecal and Hcal have the same thickness </comment>
<constant name="EcalEndcapP_length" value="EndcapPTotalCal_length * EndcapP_CalDivide"/>
<constant name="EcalEndcapN_length" value="EndcapNTotalCal_length * EndcapN_CalDivide"/>
<constant name="HcalEndcapP_length" value="EndcapPTotalCal_length * (1.0 - EndcapP_CalDivide)"/>
<constant name="HcalEndcapN_length" value="EndcapNTotalCal_length * (1.0 - EndcapN_CalDivide)"/>
<comment> These need to be set in sync with the forward and backward detectors </comment>
<constant name="EcalEndcapP_rmin" value="200.0*mm"/>
......@@ -520,12 +541,19 @@
Hadronic Calorimeter Parameters
-------------------------------
</comment>
<constant name="HcalBarrel_rmin" value="EcalBarrel_rmax"/>
<constant name="HcalBarrelAvailThickness" value="HcalBarrel_rmax - HcalBarrel_rmin"/>
<constant name="HcalBarrelLength" value="Solenoid_length + ExtraHcalEndcapP_length + ExtraHcalEndcapN_length- HcalEndcapP_length- HcalEndcapN_length - 10*cm"/>
<constant name="HcalEndcapP_zmin" value="SolenoidYokeEndcapP_zmin - HcalEndcapP_length "/>
<constant name="HcalEndcapN_zmin" value="SolenoidYokeEndcapN_zmin - HcalEndcapN_length "/>
<constant name="HcalEndcapP_length" value="50.0*cm"/>
<constant name="HcalEndcapN_length" value="50.0*cm"/>
<constant name="HcalBarrel_thickness" value="50.0*cm "/>
<constant name="HcalBarrel_rmin" value="Solenoid_rmax"/>
<constant name="HcalBarrel_rmax" value="HcalBarrel_rmin + HcalBarrel_thickness"/>
<constant name="HcalBarrelAvailThickness" value="HcalBarrel_thickness"/>
<constant name="HcalEndcapP_zmin" value="EcalEndcapP_zmin + EcalEndcapP_length "/>
<constant name="HcalEndcapN_zmin" value="EcalEndcapN_zmin + EcalEndcapN_length "/>
<constant name="HcalBarrelLength" value="HcalEndcapP_zmin + HcalEndcapN_zmin "/>
<comment> Material Thickness </comment>
<constant name="HcalSteelThickness" value="1.89 * cm"/>
......@@ -594,12 +622,6 @@
Gaseous RICH Parameters
-----------------------
</comment>
<constant name="ForwardRICH_zmin" value="SiliconTrackerOuterBarrel_zmax + 1 * cm"/>
<constant name="ForwardRICH_rmin" value="15 * cm"/>
<constant name="ForwardRICH_rmax0" value="SiliconTrackerOuterRadius"/>
<constant name="ForwardRICH_rmax1" value="EcalBarrel_rmin"/>
<constant name="ForwardRICH_rmax2" value="SolenoidBarrel_rmin-2*cm"/>
<constant name="ForwardRICHDepth" value="0.9*m"/>
<comment>
......@@ -621,33 +643,8 @@
</comment>
<comment>
--------------------------
ce_MRICH Parameters
--------------------------
</comment>
<constant name="ce_MRICHRMin" value="15*cm"/>
<constant name="ce_MRICHRMax" value="100*cm"/>
<constant name="ce_MRICHLength" value="BackwardCherenkovLength"/>
<constant name="ce_MRICHZMin" value="-EcalEndcapN_zmin+ce_MRICHLength"/>
<comment>
------------------
ce_GEM Parameters
------------------
</comment>
<constant name="ce_GEM_rmin" value="10.0 * cm"/> <comment> temporary number. Need beampipe radius </comment>
<!--<constant name="ce_GEM_rmin" value="0.0 * cm"/>-->
<constant name="ce_GEM_rmax" value="HcalEndcapN_rmin + 8.0 * cm"/> <comment> temporary number to avoid overlaps </comment>
<!--<constant name="ce_GEM_rmax" value="45.0 * cm + 50.0 * cm"/>-->
<constant name="ce_GEM_length" value="30.0 * cm"/>
<constant name="ce_GEM_x_pos" value="0.0 * cm"/>
<constant name="ce_GEM_y_pos" value="0.0 * cm"/>
<constant name="ce_GEM_z_pos" value="-Solenoid_length/2.0 + ce_GEM_length/2.0"/>
<constant name="ce_GEM_layer" value="8"/>
<constant name="ce_GEM_layer_thickness" value="1.0 * cm"/>
<comment>
--------------------------
Central Ion HCal Parameters
......
......@@ -10,6 +10,10 @@
<constant name="CrystalEndcap_x_pos" value="0.0*m"/>
<constant name="CrystalEndcap_y_pos" value="0.0*m"/>
<constant name="CrystalEndcap_z_pos" value="-EcalEndcapN_zmin"/>
<constant name="EcalEndcapP_rmax" value="Solenoid_rmax "/>
</define>
......@@ -83,12 +87,12 @@
readout="EcalEndcapHits"
vis="EcalEndcapVis"
calorimeterType="EM_ENDCAP" >
<position x="0" y="0" z="0"/>
<position x="0" y="0" z="-0"/>
<dimensions
numsides="CaloSides"
zmin="EcalEndcapP_zmin"
rmin="EcalEndcapP_rmin"
rmax="EcalBarrel_rmax " />
rmax="EcalEndcapP_rmax " />
<layer repeat="EcalEndcapPLayer1_NRepeat">
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
......@@ -132,13 +136,13 @@
zmin="EcalEndcapN_zmin"
rmin="EcalEndcapN_rmin"
rmax="EcalBarrel_rmax " />
<layer repeat="EcalEndcapPLayer1_NRepeat">
<layer repeat="EcalEndcapNLayer1_NRepeat">
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
<layer repeat="EcalEndcapPLayer2_NRepeat">
<layer repeat="EcalEndcapNLayer2_NRepeat">
<slice material="TungstenDens24" thickness="EcalThinTungstenThickness"/>
<slice material="Air" thickness="EcalAir2Thickness"/>
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
......@@ -146,7 +150,7 @@
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
<layer repeat="EcalEndcapPLayer3_NRepeat">
<layer repeat="EcalEndcapNLayer3_NRepeat">
<slice material="TungstenDens24" thickness="EcalThickTungstenThickness"/>
<slice material="Air" thickness="EcalAir2Thickness"/>
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
......
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<define>
<constant name="ForwardRICH_zmin" value="BarrelTracking_length/2.0 + ForwardTrackingLength "/>
<constant name="ForwardRICH_rmin" value="ForwardPID_rmin1"/>
<constant name="ForwardRICH_rmax0" value="SiliconTrackerOuterRadius"/>
<constant name="ForwardRICH_rmax1" value="EcalBarrel_rmin"/>
<constant name="ForwardRICH_rmax2" value="Solenoid_rmin-6*cm"/>
<constant name="ForwardRICHDepth" value="0.9*m"/>
</define>
<detectors>
<detector id="ForwardRICH_ID" name="ForwardRICH" type="refdet_ForwardRICH" readout="ForwardRICHHits" vis="BlueVis">
<detector id="ForwardRICH_ID" name="ForwardRICH" type="refdet_ForwardRICH" readout="ForwardRICHHits" vis="RICHVis">
<dimensions
z0="ForwardRICH_zmin"
snout_length="ForwardRICH_length - ForwardRICHDepth"
......@@ -22,8 +28,8 @@
rmax1="ForwardRICH_rmax1"
rmax2="ForwardRICH_rmax2" />
<comment> What are the following MCP-PMT parameters?</comment>
<mcppmt
z0="-20.0*cm"
<mcppmt
z0="0.0*cm"
rmin="ForwardRICH_rmax1"
rmax="ForwardRICH_rmax2"
rtol="1.0*cm"
......
......@@ -6,9 +6,9 @@
Forward TRD Parameters
--------------------------
</comment>
<constant name="ForwardTRD_zmin" value="ForwardRICH_zmin + ForwardRICH_length+ 1*cm"/>
<constant name="ForwardTRD_rmin" value="ForwardRICH_rmin"/>
<constant name="ForwardTRD_rmax" value="EcalBarrel_rmax - 5*cm"/>
<constant name="ForwardTRD_zmin" value="BarrelTracking_length/2.0 + ForwardTrackingLength + ForwardRICH_length"/>
<constant name="ForwardTRD_rmin" value="ForwardPID_rmin1"/>
<constant name="ForwardTRD_rmax" value="Solenoid_rmin"/>
</define>
<detectors>
......@@ -19,7 +19,7 @@
insideTrackingVolume="true"
reflect="false"
vis="Argonne_Red">
<position x="0" y="0" z="0"/>
<position x="0" y="0" z="0.0"/>
<layer id="1"
vis="Argonne_Blue"
inner_z="ForwardTRD_zmin"
......
......@@ -5,13 +5,13 @@
<define>
<constant name="GEMTrackerEndcap_zmin" value="BarrelTracking_length/2.0"/>
<constant name="GEMTrackerEndcap_NLayers" value="5"/>
<constant name="GEMTrackerEndcapLayer_thickness" value="ForwardTrackingGEMLength/GEMTrackerEndcap_NLayers"/>
<constant name="GEMTrackerEndcapFoilX1" value="43.0 * mm"/>
<constant name="GEMTrackerEndcapFoilY" value="1020.0 * mm"/>
<constant name="GEMTrackerEndcapFoilOpeningAngle" value="30.1*degree"/>
<constant name="GEMTrackerEndcapFoilX2" value="2*GEMTrackerEndcapFoilY*tan(GEMTrackerEndcapFoilOpeningAngle/2.0) + GEMTrackerEndcapFoilX1"/>
<constant name="GEMTrackerEndcapFoilX1" value="43.0 * mm"/>
<constant name="GEMTrackerEndcapLayer_thickness" value="ForwardTrackingGEMLength/GEMTrackerEndcap_NLayers"/>
<constant name="GEMTrackerEndcapFoil_rmin" value="GEMTrackerEndcapFoilX1/(tan(GEMTrackerEndcapFoilOpeningAngle/2.0)*2.0)"/>
<constant name="GEMTrackerEndcapFoilY" value="BarrelTrackingAndPID_rmax- GEMTrackerEndcapFoil_rmin- 1.0*cm"/>
<constant name="GEMTrackerEndcapFoilX2" value="2*GEMTrackerEndcapFoilY*tan(GEMTrackerEndcapFoilOpeningAngle/2.0) + GEMTrackerEndcapFoilX1"/>
<constant name="GEMTrackerEndcapFoil_rmax" value="(GEMTrackerEndcapFoilY+GEMTrackerEndcapFoil_rmin)/(cos(GEMTrackerEndcapFoilOpeningAngle/2.0))"/>
......@@ -106,51 +106,51 @@
<layer id="1" >
<ring vis="Argonne_Red"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+0*GEMTrackerEndcapLayer_thickness"
zstart="GEMTrackerEndcap_zmin + 0.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="10 * mm" module="GEMModule1" />
<ring vis="Argonne_Blue" phi0="15.0*degree"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+0*GEMTrackerEndcapLayer_thickness"
zstart="GEMTrackerEndcap_zmin + 0.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
</layer>
<layer id="2" >
<ring vis="Argonne_Red"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+1*GEMTrackerEndcapLayer_thickness"
zstart="GEMTrackerEndcap_zmin+1.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="10 * mm" module="GEMModule1" />
<ring vis="Argonne_Blue" phi0="15.0*degree"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+1*GEMTrackerEndcapLayer_thickness"
zstart="GEMTrackerEndcap_zmin+1.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
</layer>
<layer id="3" >
<ring vis="Argonne_Red"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+2*GEMTrackerEndcapLayer_thickness"
zstart="GEMTrackerEndcap_zmin+2.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="10 * mm" module="GEMModule1" />
<ring vis="Argonne_Blue" phi0="15.0*degree"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+2*GEMTrackerEndcapLayer_thickness"
zstart="GEMTrackerEndcap_zmin+2.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
</layer>
<layer id="4" >
<ring vis="Argonne_Red"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+3*GEMTrackerEndcapLayer_thickness"
zstart="GEMTrackerEndcap_zmin+3.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="10 * mm" module="GEMModule1" />
<ring vis="Argonne_Blue" phi0="15.0*degree"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+3*GEMTrackerEndcapLayer_thickness"
zstart="GEMTrackerEndcap_zmin+3.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
</layer>
<layer id="5" >
<ring vis="Argonne_Red"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+4*GEMTrackerEndcapLayer_thickness"
zstart="GEMTrackerEndcap_zmin+4.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="10 * mm" module="GEMModule1" />
<ring vis="Argonne_Blue" phi0="15.0*degree"
r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
zstart="GEMTrackerEndcap_zmin+4*GEMTrackerEndcapLayer_thickness"
zstart="GEMTrackerEndcap_zmin+4.5*GEMTrackerEndcapLayer_thickness"
nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
</layer>
</detector>
......
<lccdd>
<define>
<constant name="HcalBarrel_offset" value="(HcalEndcapP_zmin-HcalEndcapN_zmin)/2.0" />
</define>
<limits>
......@@ -21,7 +22,7 @@
type="refdet_EcalBarrel"
readout="HcalBarrelHits"
calorimeterType="HAD_BARREL"
offset="Barrel_offset"
offset="HcalBarrel_offset"
gap="0.*cm"
material="Steel235">
<dimensions
......
......@@ -3,12 +3,11 @@
<comment>Micromegas tracker barrel</comment>
<define>
<constant name="MMTrackerBarrelLayer1_rmin" value="800.0 * mm"/>
<constant name="MMTrackerBarrelLayer1_length" value="500.0 * mm"/>
<constant name="MMTrackerBarrelLayer1_thickness" value="10.0 * mm"/>
<constant name="MMTrackerBarrel_NZModules" value="floor(BarrelTracking_length/MMTrackerBarrelLayer1_length)"/>
<constant name="MMTrackerBarrelModulesTotal_length" value="MMTrackerBarrel_NZModules*MMTrackerBarrelLayer1_length"/>
<constant name="MMTrackerBarrelLayer1_rmin" value="800.0 * mm"/>
<constant name="MMTrackerBarrelLayer1_length" value="100.0 * mm"/>
<constant name="MMTrackerBarrelLayer1_thickness" value="10.0 * mm"/>
<constant name="MMTrackerBarrel_NZModules" value="floor(BarrelTracking_length/MMTrackerBarrelLayer1_length)"/>
<constant name="MMTrackerBarrelModulesTotal_length" value="MMTrackerBarrel_NZModules*MMTrackerBarrelLayer1_length"/>
</define>
......
......@@ -12,8 +12,8 @@
</info>
<define>
<include ref="ip6/ip6_defs.xml" /> <comment> IP definitions should be first</comment>
<include ref="compact/definitions.xml" />
<include ref="ip6/ip6_defs.xml" />
<!--
<include ref="eic/eic_defs.xml" />
-->
......@@ -110,33 +110,33 @@
<include ref="compact/display.xml" />
</display>
<!--
<include ref="reference_detector/vertex_tracker.xml"/>
<include ref="compact/silicon_tracker.xml"/>
-->
<comment> Include the IP components first </comment>
<include ref="ip6/beampipe.xml"/>
<include ref="compact/solenoid.xml"/>
<include ref="compact/ecal.xml"/>
<include ref="compact/far_forward_detectors.xml"/>
<include ref="compact/ce_mrich.xml"/>
<include ref="compact/ce_GEM.xml"/>
<!--include ref="compact/hcal.xml"/-->
<include ref="compact/forward_trd.xml"/>
<include ref="compact/B0_tracker.xml"/>
<include ref="compact/forward_romanpot.xml"/>
<include ref="compact/forward_offM_tracker.xml"/>
<include ref="compact/vertex_tracker.xml"/>
<include ref="compact/gem_tracker_endcap.xml"/>
<include ref="compact/mm_tracker_barrel.xml"/>
<include ref="compact/B0_tracker.xml"/>
<include ref="compact/forward_offM_tracker.xml"/>
<include ref="compact/forward_romanpot.xml"/>
<include ref="compact/far_forward_detectors.xml"/>
<include ref="eic/forward_ion_beamline.xml"/>
<include ref="compact/hcal.xml"/>
<include ref="compact/forward_rich.xml"/>
<!--
<include ref="compact/ci_GEM.xml"/>
<include ref="compact/cb_CTD_Si.xml"/>
<include ref="compact/cb_VTX_Barrel.xml"/>
<include ref="compact/ci_HCAL.xml"/>
<include ref="compact/forward_rich.xml"/>
<include ref="compact/roman_pots.xml"/>
-->
<include ref="eic/forward_ion_beamline.xml"/>
<detectors>
......
......@@ -118,7 +118,7 @@ static Ref_t createDetector(Detector& desc, xml::Handle_t handle, SensitiveDetec
double mTheta1 = std::asin(mRmin/curve);
double mTheta2 = std::asin(mRmax/curve);
double rotY = -std::asin(focus/curve);
mirVol.setSolid(Sphere(curve, curve + mThick, mTheta1, mTheta2, 0., wphi));
mirVol.setSolid(Sphere(curve, curve + mThick, mTheta1*1.01, mTheta2*0.99, 0., wphi));
// action is in a reverse order
Transform3D tr = Translation3D(0., 0., mirZ - front_offset) // move for z position
* RotationZ(rotZ) // rotate phi angle
......@@ -179,7 +179,7 @@ static Ref_t createDetector(Detector& desc, xml::Handle_t handle, SensitiveDetec
pdPV.addPhysVolID("layer", ilayer).addPhysVolID("piece", ipd + 1);
}
Volume motherVol = desc.pickMotherVolume(det);
PlacedVolume envPV = motherVol.placeVolume(envVol, Position(0, 0, z0 + halfLength));
PlacedVolume envPV = motherVol.placeVolume(envVol, Position(0, 0, z0 + front_offset));
envPV.addPhysVolID("system", detID);
det.setPlacement(envPV);
......
......@@ -44,7 +44,7 @@ static Ref_t createDetector(Detector& desc, xml_h e, SensitiveDetector sens)
// Loop over layers
for(int i = 0; i < repeat; i++) {
layerRIn = RIn + 1.0 * cm + ((double)i * 0.5) * cm;
layerROut = ROut - 25.0 * cm + ((double)i * 2.0) * cm;
layerROut = ROut;//RIn + ((double)i * 0.5) * cm;
layerPosZ = SizeZ / 2.0 - 5.0 * cm - ((double)i * 3.0) * cm;
layerSizeZ = 1.0 * cm;
......
//==========================================================================
// AIDA Detector description implementation
// AIDA Detector description implementation
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
......@@ -12,7 +12,7 @@
//==========================================================================
//
// Specialized generic detector constructor
//
//
//==========================================================================
#include "DD4hep/DetFactoryHelper.h"
......@@ -20,47 +20,49 @@ using namespace std;
using namespace dd4hep;
using namespace dd4hep::detail;
static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector sens) {
xml_det_t x_det = e;
Material air = description.air();
string det_name = x_det.nameStr();
bool reflect = x_det.reflect();
DetElement sdet(det_name,x_det.id());
Assembly assembly(det_name);
PlacedVolume pv;
int l_num = 0;
xml::Component pos = x_det.position();
static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector sens)
{
xml_det_t x_det = e;
Material air = description.air();
string det_name = x_det.nameStr();
bool reflect = x_det.reflect();
DetElement sdet(det_name, x_det.id());
Assembly assembly(det_name);
PlacedVolume pv;
int l_num = 0;
xml::Component pos = x_det.position();
for (xml_coll_t i(x_det, _U(layer)); i; ++i, ++l_num) {
xml_comp_t x_layer = i;
string l_nam = det_name + _toString(l_num, "_layer%d");
double zmin = x_layer.inner_z();
double rmin = x_layer.inner_r();
double rmax = x_layer.outer_r();
double z = zmin;
double layerWidth = 0.;
int s_num = 0;
for(xml_coll_t i(x_det,_U(layer)); i; ++i, ++l_num) {
xml_comp_t x_layer = i;
string l_nam = det_name+_toString(l_num,"_layer%d");
double zmin = x_layer.inner_z();
double rmin = x_layer.inner_r();
double rmax = x_layer.outer_r();
double z = zmin, layerWidth = 0.;
int s_num = 0;
for(xml_coll_t j(x_layer,_U(slice)); j; ++j) {
for (xml_coll_t j(x_layer, _U(slice)); j; ++j) {
double thickness = xml_comp_t(j).thickness();
layerWidth += thickness;
}
Tube l_tub(rmin,rmax,layerWidth,2*M_PI);
Volume l_vol(l_nam,l_tub,air);
l_vol.setVisAttributes(description,x_layer.visStr());
for(xml_coll_t j(x_layer,_U(slice)); j; ++j, ++s_num) {
Tube l_tub(rmin, rmax, layerWidth/2.0, 2 * M_PI);
Volume l_vol(l_nam, l_tub, air);
l_vol.setVisAttributes(description, x_layer.visStr());
for (xml_coll_t j(x_layer, _U(slice)); j; ++j, ++s_num) {
xml_comp_t x_slice = j;
double thick = x_slice.thickness();
Material mat = description.material(x_slice.materialStr());
string s_nam = l_nam+_toString(s_num,"_slice%d");
Volume s_vol(s_nam, Tube(rmin,rmax,thick), mat);
if ( x_slice.isSensitive() ) {
double thick = x_slice.thickness();
Material mat = description.material(x_slice.materialStr());
string s_nam = l_nam + _toString(s_num, "_slice%d");
Volume s_vol(s_nam, Tube(rmin, rmax, thick/2.0), mat);
if (x_slice.isSensitive()) {
sens.setType("tracker");
s_vol.setSensitiveDetector(sens);
}
s_vol.setAttributes(description,x_slice.regionStr(),x_slice.limitsStr(),x_slice.visStr());
pv = l_vol.placeVolume(s_vol,Position(0,0,z-zmin-layerWidth/2+thick/2));
pv.addPhysVolID("slice",s_num);
s_vol.setAttributes(description, x_slice.regionStr(), x_slice.limitsStr(), x_slice.visStr());
pv = l_vol.placeVolume(s_vol, Position(0, 0, z - zmin - layerWidth / 2 + thick / 2));
pv.addPhysVolID("slice", s_num);
}
if (!reflect) {
......@@ -71,22 +73,22 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s
layer.setPlacement(pv);
} else {
DetElement layer(sdet, l_nam + "_neg", l_num);
pv = assembly.placeVolume(l_vol,Transform3D(RotationY(M_PI),Position(0,0,-zmin-layerWidth/2)));
pv.addPhysVolID("layer",l_num);
pv.addPhysVolID("barrel",1);
pv = assembly.placeVolume(l_vol, Transform3D(RotationY(M_PI), Position(0, 0, -zmin - layerWidth / 2)));
pv.addPhysVolID("layer", l_num);
pv.addPhysVolID("barrel", 1);
layer.setPlacement(pv);
// DetElement layerR = layer.clone(l_nam+"_neg");
// sdet.add(layerR.setPlacement(pv));
}
}
if ( x_det.hasAttr(_U(combineHits)) ) {
sdet.setCombineHits(x_det.attr<bool>(_U(combineHits)),sens);
if (x_det.hasAttr(_U(combineHits))) {
sdet.setCombineHits(x_det.attr<bool>(_U(combineHits)), sens);
}
pv = description.pickMotherVolume(sdet).placeVolume(assembly,Position(pos.x(),pos.y(),pos.z()));
pv.addPhysVolID("system", x_det.id()); // Set the subdetector system ID.
pv = description.pickMotherVolume(sdet).placeVolume(assembly, Position(pos.x(), pos.y(), pos.z()));
pv.addPhysVolID("system", x_det.id()); // Set the subdetector system ID.
sdet.setPlacement(pv);
return sdet;
}
DECLARE_DETELEMENT(ref_DiskTracker,create_detector)
DECLARE_DETELEMENT(ref_SolenoidEndcap,create_detector)
DECLARE_DETELEMENT(ref_DiskTracker, create_detector)
DECLARE_DETELEMENT(ref_SolenoidEndcap, create_detector)
#dawn_view_03:detector:
# extends: .views
# script:
# - ./bin/make_dawn_views -t view03 -d scripts/view3 -D
#dawn_view_03:ev001:
# extends: .views
# script:
# - ./bin/make_dawn_views -t view03_ev001 -d scripts/view3 -s 2
#dawn_view_03:ev003:
# extends: .views
# script:
# - ./bin/make_dawn_views -t view03_ev100 -d scripts/view3 -s 3
#dawn_view_03:ev004:
# extends: .views
# script:
# - ./bin/make_dawn_views -t view03_ev001 -d scripts/view3 -s 4
#dawn_view_06:detector:
# extends: .views
# script:
# - ./bin/make_dawn_views -t view06 -d scripts/view6 -D
#dawn_view_07:detector:
# extends: .views
# script:
# - ./bin/make_dawn_views -t view07 -d scripts/view7 -D
dawn_view_11:detector:
extends: .views
script:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment