Skip to content

Commit

Permalink
one giant commit to solve the rebase conflict
Browse files Browse the repository at this point in the history
  • Loading branch information
SanghyunKo authored and atolosadelgado committed Jan 30, 2025
1 parent 211e0de commit 8bd7462
Show file tree
Hide file tree
Showing 10 changed files with 833 additions and 586 deletions.
60 changes: 30 additions & 30 deletions FCCee/IDEA/compact/IDEA_o1_v03/DectDimensions_IDEA_o1_v03.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@

<define>
<constant name="world_side" value="6100*mm"/> <!-- Used in LumiCal and HOMAbsorber, != world_size -->
<constant name="CrossingAngle" value="0.030*rad"/>
<constant name="CrossingAngle" value="0.030*rad"/>

<constant name="GlobalTrackerReadoutID" type="string" value="system:5,side:-2,layer:3,module:16,sensor:6"/>

<constant name="SolenoidField" value="2*tesla"/>

<!-- Detector IDs -->
<constant name="DetID_NOTUSED" value=" 0"/>

<constant name="DetID_VXD_Barrel" value=" 1"/>
<constant name="DetID_VXD_Disks" value=" 2"/>

Expand All @@ -40,10 +40,10 @@
<constant name="DetID_HCAL_Barrel" value=" 10"/>
<constant name="DetID_HCAL_Endcap" value=" 11"/>
<constant name="DetID_HCAL_Ring" value=" 12"/>

<constant name="DetID_Yoke_Barrel" value=" 13"/>
<constant name="DetID_Yoke_Endcap" value=" 14"/>

<constant name="DetID_LumiCal" value=" 15"/>
<constant name="DetID_LumiCalInstrumentation" value=" 16"/>
<constant name="DetID_LumiCalCooling" value=" 17"/>
Expand All @@ -68,7 +68,7 @@
<constant name="SeparatedBeamPipe_z" value="1190.0*mm"/> <!-- was 1159.97*mm in FCCDetectors/> -->
<constant name="CentralBeamPipe_rmax" value="10.0*mm"/>
<constant name="ConeBeamPipe_Rmax" value="28.9*mm" />
<constant name="BeamPipeGoldWidth" value="0.005*mm" />
<constant name="BeamPipeGoldWidth" value="0.005*mm" />
<constant name="BeamPipeGoldTolerance" value="0.001*mm" /> <!-- dummy tolerance, some small non zero value -->
<constant name="BeamPipeConeHalfAngle" value="(ConeBeamPipe_Rmax + BeamPipeWidthFirstCone - CentralBeamPipe_rmax ) / (SeparatedBeamPipe_z - CentralBeamPipe_zmax)" />

Expand All @@ -82,7 +82,7 @@
<constant name="MiddleOfSRMask_z" value="2.1*m" />
<constant name="SynchRadMaskSize" value="5*mm" /> <!-- mask tip is at 10 mm from the beamline -->
<constant name="mask_epsilon" value="0.001*mm" />

<!-- Vertex detector. Changing the values here it not enough to resize the detector, contact expert (Armin Ilg) -->
<constant name="VertexClearanceTheta" value="0.1035*rad"/> <!-- Clearance of vertex detector in mrad from IP. !!! Too high currently, lumical acceptance is 107 mrad so consider 110 mrad as limit -> Need to adapt vertex disks!!! -->
<constant name="VTXIB_r_min_clearance" value="1.0*mm"/> <!-- Clearance of vertex detector in radius, used for definiton of vertex DD4hep_SubdetectorAssembly -->
Expand All @@ -103,7 +103,7 @@
<constant name="VTXD_r_min" value="34.5*mm"/> <!-- Start of VTX disks in r -->
<constant name="VTXD_r_max" value="315.0*mm"/> <!-- Start of VTX disks in r -->

<constant name="VTX_r_min" value="VTXIB_r_min_layer-VTXIB_r_min_clearance"/>
<constant name="VTX_r_min" value="VTXIB_r_min_layer-VTXIB_r_min_clearance"/>
<constant name="VTX_r_max" value="VTXOB_r_max_layer+VTXOB_rmax_clearance"/>
<constant name="VTX_z_max" value="VTXD_z_max+4.5*cm"/>
<!-- End of VTX parameters -->
Expand All @@ -113,7 +113,7 @@
<constant name="DCH_inner_cyl_R_total" value=" 349.8 * mm" />
<constant name="DCH_outer_cyl_R_total" value=" 2015. * mm" />
<constant name="DCH_half_length_total" value=" 2250. * mm" />

<constant name="Solenoid_inner_radius" value="2100*mm"/>
<constant name="Solenoid_outer_radius" value="2400*mm"/>
<constant name="Solenoid_half_length" value="2380*mm"/>
Expand All @@ -122,7 +122,7 @@

<!-- Silicon wrapper. Changing the values of the disk parameters is not enough, please contact the expert (Armin Ilg) -->
<constant name="SiWrB_inner_radius" value="2040*mm"/>
<constant name="SiWrB_outer_radius" value="2080*mm"/>
<constant name="SiWrB_outer_radius" value="2080*mm"/>
<constant name="SiWrB_half_length" value="2400*mm"/>
<constant name="SiWrD_inner_radius" value="350.0*mm"/>
<constant name="SiWrD_outer_radius" value="2040.0*mm"/>
Expand All @@ -135,82 +135,82 @@
<constant name="EndPlateAbsorber_outer_radius" value="2030*mm"/>
<constant name="EndPlateAbsorber_z_min" value="2350*mm"/>
<constant name="EndPlateAbsorber_z_half_length" value="4.209/2.0*mm"/>

<constant name="YokeBarrel_inner_radius" value="4479*mm"/>
<constant name="YokeBarrel_outer_radius" value="6000*mm"/>
<constant name="YokeBarrel_half_length" value="3755*mm"/>
<constant name="YokeBarrel_symmetry" value="12"/>

<constant name="YokeEndcap_inner_radius" value="400*mm"/>
<constant name="YokeEndcap_outer_radius" value="6000*mm"/>
<constant name="YokeEndcap_min_z" value="3755*mm"/>
<constant name="YokeEndcap_max_z" value="5300*mm"/>
<constant name="YokeEndcap_outer_symmetry" value="12"/>
<constant name="YokeEndcap_inner_symmetry" value="0"/>

<constant name="CompSol_min_z" value="1230*mm"/>

<constant name="env_safety" value="0.1*mm"/>

<constant name="LumiCal_max_z" value="1186.5*mm" />
<constant name="LumiCal_min_z" value="1074*mm"/>

<constant name="LumiCal_dz" value="(LumiCal_max_z-LumiCal_min_z)/2.0"/>

<constant name="LumiCal_inner_radius" value="55.0*mm"/>
<constant name="LumiCal_outer_radius" value="112.0*mm- env_safety"/>

<constant name="LumiCal_Instr_thickness" value="20*mm"/>
<constant name="LumiCal_Instr_inner_radius" value="LumiCal_outer_radius"/>
<constant name="LumiCal_Instr_outer_radius" value="LumiCal_outer_radius+LumiCal_Instr_thickness - env_safety"/>

<constant name="LumiCal_Cool_thickness" value="9.75*mm"/>
<constant name="LumiCal_Cool_inner_radius" value="LumiCal_Instr_outer_radius"/>
<constant name="LumiCal_Cool_outer_radius" value="LumiCal_Instr_outer_radius+LumiCal_Cool_thickness"/>

<constant name="Lcal_services_rmax" value="LumiCal_outer_radius+30*mm"/>
<constant name="Lcal_offset_phi" value=" 0."/>
<!--preliminary LumiCal shielding-->
<!--back shielding-->
<constant name="LumiCal_Shield_inner_radius" value="LumiCal_inner_radius"/>
<constant name="LumiCal_Shield_outer_radius" value="LumiCal_outer_radius+LumiCal_Instr_thickness+LumiCal_Cool_thickness"/>
<constant name="LumiCal_shield_dz" value="1.75*mm"/>
<constant name="LumiCal_shield_dz" value="1.75*mm"/>
<!--nose-->
<constant name="LumiCal_NoseShield_inner_radius" value="LumiCal_inner_radius-5*mm"/>
<constant name="LumiCal_NoseShield_outer_radius" value="LumiCal_inner_radius+10*mm"/>
<constant name="LumiCal_nose_shield_dz" value="12*mm"/>

<constant name="BeamCal_inner_radius" value="32*mm"/>
<constant name="BeamCal_outer_radius" value="150*mm"/>
<constant name="BeamCal_min_z" value="3181*mm"/>
<constant name="BeamCal_max_z" value="3441*mm"/>
<constant name="BeamCal_dz" value="(BeamCal_max_z-BeamCal_min_z)/2.0"/>

<constant name="Kicker_inner_radius" value="4*mm"/>
<constant name="Kicker_outer_radius" value="25*mm"/>
<constant name="Kicker_min_z" value="3480*mm"/>
<constant name="Kicker_max_z" value="3780*mm"/>

<constant name="BPM_inner_radius" value="36*mm"/>
<constant name="BPM_outer_radius" value="55*mm"/>
<constant name="BPM_min_z" value="3790*mm"/>
<constant name="BPM_max_z" value="3880*mm"/>
<constant name="BPM_max_z" value="3880*mm"/>

<constant name="QD0_min_z" value="2000*mm"/>
<constant name="QD0_max_z" value="5200*mm"/>
<constant name="QD0Coil_outer_radius" value="30*mm"/>
<constant name="CollimatorInFrontOfQD0_dz" value="20*cm"/>
<constant name="CollimatorInFrontOfQD0_dz" value="20*cm"/>
<constant name="CollimatorInFrontOfQD0_radius" value="10*mm"/>
<constant name="CollimatorInFrontOfQD0_dr" value="16*mm"/>

<constant name="tracker_region_zmax" value="DCH_half_length_total"/>
<constant name="tracker_region_rmax" value="DCH_outer_cyl_R_total"/>

<!-- Pre-shower Parameters-->
<constant name = "psNumSides" value = "32"/> <!-- The number of sides of the pre-shower -->
<constant name = "psNumSides" value = "32"/> <!-- The number of sides of the pre-shower -->
<!-- Barrel -->
<constant name = "psBarrelFirstLayerRadius" value = "2420*mm"/> <!-- 1st Barrel microRWELL detector inner radius-> its the start point of thicknesses of the microRWELL material. In our case the shape is Polygon, so the radius is in the middle of the polygon side. -->
<constant name = "psBarrelLength" value = "4900*mm"/> <!--Barrel detector length, in the description of the detctor we always use the half-length -->
<constant name = "psBarrelLength" value = "4900*mm"/> <!--Barrel detector length, in the description of the detctor we always use the half-length -->
<!-- Endcap -->
<constant name = "psEndcapFirstLayerZOffset" value = "2400*mm"/> <!-- 1st Endcap microRWELL detector inner ZOffset-> its the start point of thicknesses of the microRWELL volume -->
<constant name = "psEndcapLayersInnerRadius" value = "390*mm"/> <!--Endcap detector inner radius, its the start point of thicknesses of the detector material ** it applies for both detector layers and yoke-->
Expand All @@ -232,18 +232,18 @@
<constant name="FiberDRCalo_endcap_nphi" value="144"/>

<!-- Muon System Parameters-->
<constant name = "numberOfSides" value = "8"/> <!-- The number of sides of the muon system e.g (Octagon, Hexagon, ...)-->
<constant name = "numberOfSides" value = "8"/> <!-- The number of sides of the muon system e.g (Octagon, Hexagon, ...)-->
<!-- Barrel -->
<constant name = "BarrelFirstLayerRadius" value = "4530*mm"/> <!-- 1st Barrel microRWELL detector inner radius-> its the start point of thicknesses of the microRWELL material. In our case the shape is Polygon, so the radius is in the middle of the polygon side. -->
<constant name = "BarrelLength" value = "9060*mm"/> <!--Barrel detector length, in the description of the detctor we always use the half-length -->
<constant name = "BarrelLength" value = "9060*mm"/> <!--Barrel detector length, in the description of the detctor we always use the half-length -->
<!-- Endcap -->
<constant name = "EndcapFirstLayerZOffset" value = "4530*mm"/> <!-- 1st Endcap microRWELL detector inner ZOffset-> its the start point of thicknesses of the microRWELL volume -->
<constant name = "EndcapLayersInnerRadius" value = "700*mm"/> <!--Endcap detector inner radius, its the start point of thicknesses of the detector material ** it applies for both detector layers and yoke-->
<constant name = "EndcapLayersOuterRadius" value = "5350*mm"/> <!--Endcap detector outer radius, its the end point of thicknesses of the detector material ** it applies for both detector layers and yoke-->
<!-- End of Muon system Parameters-->
</define>


<limits>
<limitset name="cal_limits">
<limit name="step_length_max" particles="*" value="5.0" unit="mm" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
The compact format for the dual-readout calorimeter (for FCCee IDEA)
</comment>
</info>

<!-- For optics -->
<properties>
<matrix name="RI_Air" coldim="2" values="
Expand Down Expand Up @@ -589,7 +589,7 @@
<sensitive type="DRcaloSiPMSD"/>
<sipmDim height="0.3*mm" material="PolyvinylChloride" vis="DRCGenericVis">
<sipmGlass material="DR_PyrexGlass" vis="DRCGlassVis"/>
<sipmWafer height="0.3*mm" material="Silicon" vis="DRCWaferVis" sensitive="true"/> <!-- Original height : 0.01 mm, change to 0.3 mm, same as sipmDim (to reduce memory)-->
<sipmWafer height="0.3*mm" material="Silicon" vis="DRCWaferVis" sensitive="false"/> <!-- Original height : 0.01 mm, change to 0.3 mm, same as sipmDim (to reduce memory)-->
</sipmDim>
<structure>
<dim distance="1.5*mm" dx="1.0*mm"/>
Expand Down Expand Up @@ -691,7 +691,7 @@
<readout name="DRcaloSiPMreadout">
<segmentation type="GridDRcalo_k4geo"/>
<!-- Mendatory to use the first 32 bits for tower infos & the last 32 bits for fiber/SiPM infos -->
<id>system:5,assembly:1,eta:-8,phi:9,x:32:-11,y:-9,c:1,module:2</id>
<id>system:5,assembly:1,eta:-8,phi:9,x:32:-12,y:-12,c:1,module:2</id>
</readout>
</readouts>

Expand Down
8 changes: 4 additions & 4 deletions FCCee/IDEA/compact/IDEA_o1_v03/IDEA_o1_v03.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
url="no"
status="development"
version="o1_v03">
<comment>
<comment>
Version o1_v03 of the IDEA detector
</comment>
</info>
Expand All @@ -37,9 +37,9 @@
<!-- shape based model of the beam pipe -->
<include ref="../../../MDI/compact/MDI_o1_v00/Beampipe_o4_v05.xml" />
<include ref="../../../MDI/compact/MDI_o1_v00/BeamInstrumentation_o1_v01.xml" />

<!-- engineered CAD model of the beam pipe -->
<!-- In order to use the CAD beampipe, build k4geo with the following CMake option:
<!-- In order to use the CAD beampipe, build k4geo with the following CMake option:
cmake -D INSTALL_BEAMPIPE_STL_FILES=ON which will download the files needed -->
<!-- <include ref="../../../MDI/compact/MDI_o1_v01/Beampipe_CADimport_o1_v02.xml" /> -->
<!-- <include ref="../../../MDI/compact/MDI_o1_v01/BeamInstrumentation_o1_v01.xml"/> -->
Expand All @@ -65,7 +65,7 @@

<!-- Import fiber-based dual-readout calorimeter -->
<!-- (uncomment the following line to effectively include it) -->
<!-- <include ref="FiberDualReadoutCalo_o1_v01.xml"/> -->
<include ref="FiberDualReadoutCalo_o1_v01.xml"/>

<!-- Import muon system -->
<include ref="MuonSystem_o1_v01.xml"/>
Expand Down
11 changes: 9 additions & 2 deletions detector/calorimeter/dual-readout/src/DRconstructor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ void ddDRcalo::DRconstructor::implementTowers(xml_comp_t& x_theta, dd4hep::DDSeg

dd4hep::Volume towerVol( "tower", tower, fDescription->material(x_theta.materialStr()) );
towerVol.setVisAttributes(*fDescription, x_theta.visStr());

implementFibers(x_theta, towerVol, tower, param);

xml_comp_t x_wafer ( fX_sipmDim.child( _Unicode(sipmWafer) ) );
Expand Down Expand Up @@ -123,7 +123,10 @@ void ddDRcalo::DRconstructor::placeAssembly(dd4hep::DDSegmentation::DRparamBase_
int towerId32 = fSegmentation->getFirst32bits(towerId64);

dd4hep::Position towerPos = param->GetTowerPos(nPhi) + dd4hep::Position(0, 0, -(fX_worldTube.height()/2.));
AssemblyBoxVol.placeVolume( towerVol, towerId32, dd4hep::Transform3D( param->GetRotationZYX(nPhi), towerPos ) );
dd4hep::PlacedVolume towerPhys = AssemblyBoxVol.placeVolume( towerVol, towerId32, dd4hep::Transform3D( param->GetRotationZYX(nPhi), towerPos ) );
towerPhys.addPhysVolID("eta", towerNoLR);
towerPhys.addPhysVolID("phi", nPhi);
towerPhys.addPhysVolID("module", 2);

// Remove sipmLayer
dd4hep::Position sipmPos = param->GetSipmLayerPos(nPhi) + dd4hep::Position(0, 0, -(fX_worldTube.height()/2.));
Expand Down Expand Up @@ -250,6 +253,8 @@ void ddDRcalo::DRconstructor::implementFiber(dd4hep::Volume& towerVol, dd4hep::P
if (fVis) coreVol.setVisAttributes(*fDescription, fX_coreC.visStr());
cladVol.placeVolume( coreVol );

// we use the region for the sensitive elements for
// manipulating optical photons (DRCaloFastSimModel)
coreVol.setRegion(*fDescription, fX_det.regionStr());
cladVol.setRegion(*fDescription, fX_det.regionStr());
} else { // s fiber
Expand All @@ -261,6 +266,8 @@ void ddDRcalo::DRconstructor::implementFiber(dd4hep::Volume& towerVol, dd4hep::P
if (fVis) coreVol.setVisAttributes(*fDescription, fX_coreS.visStr());
cladVol.placeVolume( coreVol );

// we use the region for the sensitive elements for
// manipulating optical photons (DRCaloFastSimModel)
coreVol.setRegion(*fDescription, fX_det.regionStr());
cladVol.setRegion(*fDescription, fX_det.regionStr());
}
Expand Down
Loading

0 comments on commit 8bd7462

Please sign in to comment.