Skip to content

Commit

Permalink
Merge branch 'main' into downstream-found
Browse files Browse the repository at this point in the history
  • Loading branch information
kjvbrt authored Feb 6, 2024
2 parents 2a13549 + 1fbfaab commit 2f3c965
Show file tree
Hide file tree
Showing 40 changed files with 2,502 additions and 137 deletions.
23 changes: 23 additions & 0 deletions .github/workflows/key4hep-build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Key4hep build

on:
push:
branches:
- main
pull_request:
workflow_dispatch:

jobs:
build:
strategy:
matrix:
build_type: ["release", "nightly"]
image: ["alma9", "ubuntu22", "centos7"]
fail-fast: false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: key4hep/key4hep-actions/key4hep-build@main
with:
build_type: ${{ matrix.build_type }}
image: ${{ matrix.image }}
5 changes: 3 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ find_package( Geant4 REQUIRED )
find_package( LCIO REQUIRED)

add_subdirectory(detectorSegmentations)
add_subdirectory(detectorCommon)

file(GLOB sources
./detector/tracker/*.cpp
Expand Down Expand Up @@ -84,8 +85,8 @@ add_library(lcgeo ALIAS k4geo)
target_include_directories(${PackageName} PRIVATE ${PROJECT_SOURCE_DIR}/detector/include )
target_include_directories(${PackageName}G4 PRIVATE ${PROJECT_SOURCE_DIR}/detector/include )

target_link_libraries(${PackageName} DD4hep::DDCore DD4hep::DDRec DD4hep::DDParsers ROOT::Core LCIO::LCIO detectorSegmentations)
target_link_libraries(${PackageName}G4 DD4hep::DDCore DD4hep::DDRec DD4hep::DDParsers DD4hep::DDG4 ROOT::Core ${Geant4_LIBRARIES} LCIO::LCIO)
target_link_libraries(${PackageName} DD4hep::DDCore DD4hep::DDRec DD4hep::DDParsers ROOT::Core LCIO::lcio detectorSegmentations)
target_link_libraries(${PackageName}G4 DD4hep::DDCore DD4hep::DDRec DD4hep::DDParsers DD4hep::DDG4 ROOT::Core ${Geant4_LIBRARIES} LCIO::lcio)

#Create this_package.sh file, and install
dd4hep_instantiate_package(${PackageName})
Expand Down
18 changes: 9 additions & 9 deletions FCCee/ALLEGRO/compact/ALLEGRO_o1_v02/ALLEGRO_o1_v02.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">

<info name="FCCee-IDEA-LAr Master"
title="FCCee-IDEA-LAr Master"
<info name="ALLEGRO_o1_v02 Master"
title="ALLEGRO_o1_v02 Master"
author="Valentin Volkl"
url="no"
status="development"
version="1.0">
<comment>
Master compact file describing the latest developments of the FCCee IDEA detector concept with a LAr calorimeter.
Master compact file describing the latest developments of the FCCee ALLEGRO detector concept.
</comment>
</info>

Expand All @@ -28,19 +28,19 @@
<constant name="world_z" value="world_size"/>
</define>

<include ref="./FCCee_DectDimensions.xml" />
<include ref="./DectDimensions.xml" />

<include ref="Beampipe.xml"/>
<include ref="BeamInstrumentation.xml"/>
<include ref="LumiCal.xml"/>
<include ref="HOMAbsorber.xml"/>
<!--taken from DetFCCeeCLD/compact/FCCee_o2_v02 -->
<include ref="Vertex.xml"/>
<include ref="SimplifiedDriftChamber.xml"/>
<include ref="FCCee_ECalBarrel_thetamodulemerged.xml"/>
<include ref="FCCee_HCalBarrel_TileCal.xml"/>
<include ref="FCCee_EcalEndcaps_coneCryo.xml"/>
<include ref="FCCee_HCalEndcaps_ThreeParts_TileCal.xml"/>
<include ref="DriftChamber.xml"/>
<include ref="ECalBarrel_thetamodulemerged.xml"/>
<include ref="HCalBarrel_TileCal.xml"/>
<include ref="ECalEndcaps_coneCryo.xml"/>
<include ref="HCalEndcaps_ThreeParts_TileCal.xml"/>
<include ref="MuonTagger.xml"/>

</lccdd>
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,9 @@
<constant name="OuterTracker_outer_radius" value="2000*mm"/>
<constant name="OuterTracker_half_length" value="2300*mm"/>

<constant name="DCH_inner_radius" value="350*mm"/>
<constant name="DCH_outer_radius" value="2000*mm"/>
<constant name="DCH_half_length" value="2850*mm"/>
<constant name="DCH_inner_radius" value="345*mm"/>
<constant name="DCH_outer_radius" value="2000*mm"/> <!-- Contact the drift chamber experts if you need to change the DC radiuses (just changing the radius is not enough, the DC has been optimized for those values, the detector geometry is constrained by many construction/mechanical/electronics/etc considerations -->
<constant name="DCH_half_length" value="2850*mm"/> <!-- this includes the services -->

<!-- LAr ECAL Calo Barrel -->
<constant name="BarECal_id" value="DetID_ECAL_Barrel"/>
Expand Down
110 changes: 110 additions & 0 deletions FCCee/ALLEGRO/compact/ALLEGRO_o1_v02/DriftChamber.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
<lccdd>
<info name="CDCH" title="CDCH" author="CDCH" status="development" version="$Id: $">
<comment>
Detector description for the IDEA Drift Chamber. To understand the free parameters below, look e.g. at https://indico.cern.ch/event/932973/contributions/4041314/attachments/2139657/3664808/primavera_FCCworkshop_2020.pdf
</comment>
</info>

<!-- %%%%%% Central Drift Chamber Basic Parameters %%%%%% -->
<define>
<!-- Radius of the beginning of the carbon fiber cylinder walls -->
<constant name = "CDCH:inner_radius" value = "DCH_inner_radius"/>
<!-- Radius of the end of the carbon fiber cylinder walls, mind that changing this value does not propagate to the sensitive volume layout -->
<constant name = "CDCH:outer_radius" value = "DCH_outer_radius"/>
<!-- Half z extent of the envelope (includes services) -->
<constant name = "CDCH:zHalfExtentWithServices" value = "DCH_half_length"/>
<!-- Angle for the rotation of phi sectors leading to the stereo angle of the wires (the way the chamber will be built)
alpha = angle between the line (0,0,-zHalfLength) - (wireX,wireY,-zHalfLength) and the line (0,0,+zHalfLength) - (wireX,wireY,+zHalfLength) projected on the -zHalfLength plane perpandicular to z
It is used to determine the radius of the hyperboloid in +- zHalfLength-->
<constant name = "CDCH:alpha" value = "30*degree"/>
<!-- Radial extent of the cell in the first layer, used to define the radial step between layers -->
<constant name = "CDCH:cellDimension" value = "11.846*mm"/>
<!-- Number of super layer (baseline = 14). All layers within a super layer have the same number of cell (or sense wire)-->
<constant name = "CDCH:nSuperLayer" value = "14"/>
<!-- Number of layer in a super-layer (baseline = 8) -->
<constant name = "CDCH:nLayer" value = "8"/>
<!-- For development, you can lower the number of (super-)layer to run faster
<constant name = "CDCH:nSuperLayer" value = "4"/>
<constant name = "CDCH:nLayer" value = "2"/>-->
<!-- Number of sense wires (i.e. sensitive cells) in the first super-layer -->
<constant name = "CDCH:nSWireFirstLayer" value = "192"/>
<!-- Number of sense wire to add when jumping from a super layer to another to keep reasonably constant cell sizes w.r.t. cell radius. -->
<constant name = "CDCH:nSDeltaWire" value = "48"/>
<!-- Ratio between the number of field and sense wires, this and nCenterFWirePerCell will tell how many sense wires are in the top/bottom of the cell -->
<constant name = "CDCH:nFtoSWireRatio" value = "5"/>
<!-- Number of field wires in the middle of a single cell. Note that only the lateral wires 'ending' the cell in the phi direction are included in the next cell.
be careful if you modify this parameter, I am not sure it will propagate properly to everything (e.g. the phi_offset) -->
<constant name = "CDCH:nCenterFWirePerCell" value = "1"/>
<!-- The following lines set the wire thickness (inlcuding coating): diameter = ShellThickIn + ShellThickOut i.e. ShellThickOut should be = to the coating thickness * 2 -->
<constant name = "CDCH:FWireShellThickIn" value = "0.040*mm"/>
<constant name = "CDCH:FWireShellThickOut" value = "0.0006*mm"/>
<constant name = "CDCH:centerFWireShellThickIn" value = "0.050*mm"/> <!-- Field wires in the middle of the cell are thicker -->
<constant name = "CDCH:centerFWireShellThickOut" value = "0.0006*mm"/>
<constant name = "CDCH:SWireShellThickIn" value = "0.020*mm"/>
<constant name = "CDCH:SWireShellThickOut" value = "0.0006*mm"/>
<constant name = "CDCH:InGWireShellThickIn" value = "0.050*mm"/>
<constant name = "CDCH:InGWireShellThickOut" value = "0.0006*mm"/>
<constant name = "CDCH:OutGWireShellThickIn" value = "0.050*mm"/>
<constant name = "CDCH:OutGWireShellThickOut" value = "0.0006*mm"/>
<!-- Factor applied to enlarge the wire thickness (baseline = 1.0). Use it only to visualize the wires which are otherwise too small-->
<!-- NB: not propagated to the envelope volumes, you will have volume extrusions if != 1 -->
<constant name = "CDCH:wireThicknessDilution" value = "1.0"/>
<!-- Thicknesses of the carbon fiber support structure, the endcap including services should sum up to 5% of X0 -->
<constant name = "CDCH:CarbonInnerWallThick" value = "0.2*mm"/>
<constant name = "CDCH:CopperInnerWallThick" value = "0.001*mm"/>
<constant name = "CDCH:GasInnerWallThick" value = "10.825*mm"/>
<constant name = "CDCH:Carbon1OuterWallThick" value = "2.5*mm"/>
<constant name = "CDCH:Carbon2OuterWallThick" value = "2.5*mm"/>
<constant name = "CDCH:CopperOuterWallThick" value = "0.018*mm"/>
<constant name = "CDCH:FoamOuterWallThick" value = "10.000*mm"/>
<constant name = "CDCH:GasEndcapWallThick" value = "249.7475*mm"/>
<constant name = "CDCH:CopperEndcapWallThick" value = "0.0005*mm"/>
<constant name = "CDCH:KaptonEndcapWallThick" value = "0.012*mm"/>
<constant name = "CDCH:CarbonEndcapWallThick" value = "0.240*mm"/>
<constant name = "CDCH:secure" value = "1.0e-2*mm"/>
<constant name = "CDCH:capGasLayer" value = "1.0e-3*mm"/>
<constant name = "CDCH:extShiftFW" value = "1.55e-3*mm"/>
<!-- Radius of the inner/outer guard layer, at z = 0 -->
<constant name = "CDCH:inGuardRad" value = "354.0*mm"/>
<constant name = "CDCH:outGuardRad" value = "1927.0*mm"/>
</define>

<!--<regions>
<region name="CDCH_region" eunit="MeV" lunit="mm" cut="0.001" threshold="0.001">
</region>
</regions>-->


<detectors>
<detector id="DetID_DCH" name="CDCH" type="DriftChamber_o1_v01" readout="DriftChamber_simHits" vis="CDCH"> <!-- region="CDCH_region">-->
<sensitive type="tracker"/>
</detector>
</detectors>

<readouts>
<readout name="DriftChamber_simHits">
<!-- <id>system: identifies the detector, superLayer: identifies the super layer (bloc of rings with the same number of wires in phi), ring: identifies a ring inside a super layer, phi: identifies a single wire whithin a ring which is formed of a replication of wires in phi, hitorigin: tells where the hit occured (0 in the gas, 1 in the sense wire, 2 in the field wire, 3 in the guard wire, 4 in the walls), stereo:tells whether it was a wire with positive -0- or negative -1- stereo angle, layerInCell: a cell is composed of three 'layers' with field wires only, both sense and field wires then field wire only again, this fields tells where it belongs 0 = not applicable e.g. hit in gas, 1 = bottom, 2 = middle, 3 = top (mind that the cells are built per stereo angle, so the + stereo bottom will correspond to the - stereo top) </id>-->
<id>system:4,superLayer:5,layer:5,phi:11,hitorigin:3,stereo:1,layerInCell:2</id>
</readout>
</readouts>

<display>
<vis name="vCDCH:Pb" alpha="1.0" r="0.0" g="0.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="vCDCH:Sc" alpha="0.6" r="0.8" g="0.8" b="0.0" showDaughters="true" visible="true"/>
<vis name="vCDCH:Plastic" alpha="1.0" r="1.0" g="1.0" b="0.0" showDaughters="true" visible="true"/>
<vis name="vCDCH:Steel" alpha="0.0" showDaughters="true" visible="false"/>
<vis name="vCDCH:Gas1" alpha="1.0" r="0.0" g="1.0" b="0.0" showDaughters="true" visible="true"/>
<vis name="vCDCH:Gas2" alpha="1.0" r="1.0" g="0.0" b="0.0" showDaughters="true" visible="true"/>
<vis name="vCDCH:Gas3" alpha="1.0" r="1.0" g="0.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="vCDCH:Wire1" alpha="1.0" r="0.0" g="1.0" b="0.0" showDaughters="true" visible="true"/>
<vis name="vCDCH:Wire2" alpha="1.0" r="1.0" g="0.0" b="0.0" showDaughters="true" visible="true"/>
<vis name="vCDCH:Wire3" alpha="1.0" r="1.0" g="0.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="vCDCH:Fwire" alpha="1.0" r="1.0" g="1.0" b="1.0" showDaughters="true" visible="true"/>
<vis name="vCDCH:Stack" showDaughters="true" visible="false"/>
<vis name="vCDCH:Fiber" alpha="1.0" r="0.8" g="0.8" b="0.0" showDaughters="true" visible="true"/>
<vis name="vCDCH:ReadOutBox" alpha="1.0" r="0.8" g="0.5" b="0.0" showDaughters="true" visible="true"/>
<vis name="vCDCH:ROSteel" alpha="1.0" r="0.8" g="0.5" b="0.0" showDaughters="true" visible="true"/>
<vis name="vCDCH:Air" showDaughters="true" visible="false"/>
</display>

</lccdd>
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@
<!-- Inclination angle of the lead plates -->
<constant name="InclinationAngle" value="50*degree"/>
<!-- thickness of active volume between two absorber plates at barrel Rmin, measured perpendicular to the readout plate -->
<!--constant name="LArGapThickness" value="1.239749*2*mm"/-->
<constant name="LArGapThickness" value="1.256*2*mm"/>
<!--constant name="Sensitive_thickness" value="1.239749*2*mm"/-->
<constant name="Sensitive_thickness" value="1.256*2*mm"/>

<!-- Air margin, thicknesses of cryostat and LAr bath -->
<constant name="AirMarginThickness" value="54*mm"/> <!-- Space holder for air gap between cryostat vessels -->
<constant name="AirMarginThickness" value="49*mm"/> <!-- Space holder for air gap between cryostat vessels -->

<constant name="CryoBarrelFrontWarm" value="10*mm"/> <!-- Al solid corresponding to 0.11 X0 -->
<constant name="CryoBarrelFrontCold" value="3.8*mm"/> <!-- Al solid equivalent of 0.043 X0 sandwich CFRP -->
Expand All @@ -42,19 +42,22 @@
<constant name="CryoBarrelSideCold" value="3.8*mm"/>
<constant name="CryoBarrelSide" value="CryoBarrelSideWarm+CryoBarrelSideCold"/>

<constant name="LArBathThicknessFront" value="5*mm"/>
<constant name="LArBathThicknessBack" value="40*mm"/>
<constant name="NLiqBathThicknessFront" value="10*mm"/>
<constant name="NLiqBathThicknessBack" value="40*mm"/>

<!-- air margin around calorimeter -->
<constant name="BarCryoECal_rmin" value="BarECal_rmin+AirMarginThickness"/>
<constant name="BarCryoECal_rmax" value="BarECal_rmax-AirMarginThickness"/>
<constant name="BarCryoECal_dz" value="BarECal_dz"/>
<!-- calorimeter active volume -->
<constant name="EMBarrel_rmin" value="BarCryoECal_rmin+CryoBarrelFront+LArBathThicknessFront"/>
<constant name="EMBarrel_rmax" value="BarCryoECal_rmax-CryoBarrelBack-LArBathThicknessBack"/>
<constant name="EMBarrel_rmin" value="BarCryoECal_rmin+CryoBarrelFront+NLiqBathThicknessFront"/>
<constant name="EMBarrel_rmax" value="BarCryoECal_rmax-CryoBarrelBack-NLiqBathThicknessBack"/>
<constant name="EMBarrel_dz" value="BarECal_dz-CryoBarrelSide"/>
<!-- thickness of active volume between two absorber plates at EMBarrel_rmin, measuring perpendicular to the readout plate -->
<constant name="LAr_thickness" value="LArGapThickness"/>
<!-- Bath with margin for safe inclination -->
<constant name="safeMargin" value="3*mm"/>
<constant name="Bath_rmin" value="EMBarrel_rmin - safeMargin"/>
<constant name="Bath_rmax" value="EMBarrel_rmax + safeMargin"/>

<!-- passive layer consists of lead in the middle and steel on the outside, glued -->
<!-- When employing trapezoidal planes Pb_thickness corresponds to the minimum thickness, i.e at the front of the calo -->
<constant name="Pb_thickness" value="1.80*mm"/>
Expand Down Expand Up @@ -107,10 +110,14 @@
<side sensitive="false"/> <!-- both sides of the cryostat -->
<back sensitive="false"/> <!-- outer wall of the cryostat -->
</cryostat>
<bath name="ECAL_bath">
<material name="LAr"/>
<dimensions rmin="Bath_rmin" rmax="Bath_rmax" dz="EMBarrel_dz"/>
</bath>
<calorimeter name="EM_barrel">
<!-- offset defines the numbering of the modules: module==0 for phi=0 direction -->
<dimensions rmin="EMBarrel_rmin" rmax="EMBarrel_rmax" dz="EMBarrel_dz" offset="-InclinationAngle"/>
<active thickness="LAr_thickness">
<active thickness="Sensitive_thickness">
<material name="LAr"/>
<!-- overlap offset is a specific feature of the construction; do not change! -->
<!-- one volume for a gap on both side of the readout) -->
Expand Down
Loading

0 comments on commit 2f3c965

Please sign in to comment.