diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ee96554156152cb541e40aa9682858b999a3654a..b8446b467a3225de3cccdcbe843dc8afd6150d6a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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: diff --git a/CMakeLists.txt b/CMakeLists.txt index 11865bd44bd3d46a5dd22bee20b07411b87da562..f9e7f211847ec1fd7d90ac6b17b6bf233848a0df 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) diff --git a/compact/cb_CTD_Si.xml b/compact/cb_CTD_Si.xml index 3deea232fa2dc4677afb8e4f754e872af0b856d2..38e04cb487da95fe004680fe77364b627197a740 100644 --- a/compact/cb_CTD_Si.xml +++ b/compact/cb_CTD_Si.xml @@ -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"/> diff --git a/compact/ce_GEM.xml b/compact/ce_GEM.xml index 6cbc95031a0459cd4c9fa0c2800b9d2972dd882e..33d018d871c603b70ef74fd92023b16d007326a7 100644 --- a/compact/ce_GEM.xml +++ b/compact/ce_GEM.xml @@ -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> diff --git a/compact/ce_mrich.xml b/compact/ce_mrich.xml index e5be8baefad2c91ef960e856a1cda30fbb93b155..213b1aecb6249d444f5319ab555636d99aedd6c8 100644 --- a/compact/ce_mrich.xml +++ b/compact/ce_mrich.xml @@ -1,6 +1,11 @@ <?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> diff --git a/compact/definitions.xml b/compact/definitions.xml index be61d0032434bf98c519f596c7b48c8fd381b214..ee5fc40bfdb4531229ec63b8462fb022d54808e2 100644 --- a/compact/definitions.xml +++ b/compact/definitions.xml @@ -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 diff --git a/compact/ecal.xml b/compact/ecal.xml index 6e8c6398e0cf893bdc36c5b0878a8374090df072..42fd2fb429d1c810a8fdefd953cc8cb2c9335a5b 100644 --- a/compact/ecal.xml +++ b/compact/ecal.xml @@ -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"/> diff --git a/compact/forward_rich.xml b/compact/forward_rich.xml index 8350f593f4cd59062eb3491645727bfdbfa154b0..e35fe98e24cf12e8ac8caf707d2d5ea50efc2e58 100644 --- a/compact/forward_rich.xml +++ b/compact/forward_rich.xml @@ -1,10 +1,16 @@ <?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" diff --git a/compact/forward_trd.xml b/compact/forward_trd.xml index 693f5333dcc37f56bc597cc3aec4d6bc458feaff..680bbdc032ddf114b4e4bbdb091e3c7e1627bd9b 100644 --- a/compact/forward_trd.xml +++ b/compact/forward_trd.xml @@ -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" diff --git a/compact/gem_tracker_endcap.xml b/compact/gem_tracker_endcap.xml index 4c0a5592324fe55a64138f12b574e7a0653fbf3c..7d0604e346d90f4b9a977269a30bff7bbd1c88c9 100644 --- a/compact/gem_tracker_endcap.xml +++ b/compact/gem_tracker_endcap.xml @@ -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> diff --git a/compact/hcal.xml b/compact/hcal.xml index a05bfe7234775a1d9546d1536b676a76157e0938..ad16a15eb01529856e377f1d84c71c95606ea09f 100644 --- a/compact/hcal.xml +++ b/compact/hcal.xml @@ -1,6 +1,7 @@ <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 diff --git a/compact/mm_tracker_barrel.xml b/compact/mm_tracker_barrel.xml index 4029b912c91a986899614c3024b33e6705d22819..483b8914f37322832ad7cde97ae183f244b7e9cd 100644 --- a/compact/mm_tracker_barrel.xml +++ b/compact/mm_tracker_barrel.xml @@ -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> diff --git a/reference_detector.xml b/reference_detector.xml index 4abed83b599958d760c56b983298f5513551d2af..c04c3e60bff8c53fc0c7d1056f8bc9ad9306076a 100644 --- a/reference_detector.xml +++ b/reference_detector.xml @@ -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> diff --git a/src/ForwardRICH_geo.cpp b/src/ForwardRICH_geo.cpp index b88bcd7c5ccb16799b2893e75898f53566ad81e3..d7156622c8dbb154b8f9494db415361a46884883 100644 --- a/src/ForwardRICH_geo.cpp +++ b/src/ForwardRICH_geo.cpp @@ -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); diff --git a/src/ce_GEM.cpp b/src/ce_GEM.cpp index 24e4bff197a798de69b1b0d07d43713225aa4f78..f0a0227bbc296f0edee45b20c03bc90c80437980 100644 --- a/src/ce_GEM.cpp +++ b/src/ce_GEM.cpp @@ -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; diff --git a/src/ref_DiskTracker_geo.cpp b/src/ref_DiskTracker_geo.cpp index 8f60a3a56251833dfb2bbf434d59cc1130f6b470..4431e881bc80625719582b7ce5cc8acd4a60c23b 100644 --- a/src/ref_DiskTracker_geo.cpp +++ b/src/ref_DiskTracker_geo.cpp @@ -1,5 +1,5 @@ //========================================================================== -// 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) diff --git a/views/config.yml b/views/config.yml index 1004a27c4465eb483820997a2d75b55cb99f3c91..21d6d1e8031bc2b0cc920b4290bec3ad3a32245d 100644 --- a/views/config.yml +++ b/views/config.yml @@ -1,28 +1,3 @@ - -#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: