-
Notifications
You must be signed in to change notification settings - Fork 61
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
cb1da09
commit 4a90833
Showing
20 changed files
with
1,384 additions
and
0 deletions.
There are no files selected for viewing
122 changes: 122 additions & 0 deletions
122
FCCee/ALLEGRO/compact/ALLEGRO_o1_v04/ALLEGRO_o1_v04.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,122 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0" | ||
xmlns:xs="http://www.w3.org/2001/XMLSchema" | ||
xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd"> | ||
|
||
<info name="ALLEGRO_o1_v04 Master" | ||
title="ALLEGRO_o1_v04 Master" | ||
author="Giovanni Marchiori" | ||
url="no" | ||
status="development" | ||
version="1.0"> | ||
<comment> | ||
Master compact file describing the latest developments of the FCCee ALLEGRO detector concept. With respect to v02 it features an ECal barrel with 11 layers and cell corners projective along phi | ||
</comment> | ||
</info> | ||
|
||
<include ref="${DD4hepINSTALL}/DDDetectors/compact/detector_types.xml" /> | ||
|
||
<includes> | ||
<gdmlFile ref="elements.xml"/> | ||
<gdmlFile ref="materials.xml"/> | ||
</includes> | ||
|
||
<define> | ||
<constant name="world_size" value="25*m"/> | ||
<constant name="world_x" value="world_size"/> | ||
<constant name="world_y" value="world_size"/> | ||
<constant name="world_z" value="world_size"/> | ||
</define> | ||
|
||
<include ref="./DectDimensions.xml" /> | ||
|
||
<!-- 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" /> | ||
|
||
<!-- 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 --> | ||
<!-- engineered CAD model of the beam pipe --> | ||
<!-- <include ref="../../../MDI/compact/MDI_o1_v01/Beampipe_CADimport_o1_v02.xml" /> --> | ||
<!-- <include ref="../../../MDI/compact/MDI_o1_v01/BeamInstrumentation_o1_v01.xml"/> --> | ||
|
||
<include ref="LumiCal.xml"/> | ||
<include ref="VertexComplete_IDEA_o1_v03.xml"/> <!-- symbolic link to ../../../IDEA/compact/IDEA_o1_v03/VertexComplete_IDEA_o1_v03.xml --> | ||
<include ref="DriftChamber_o1_v02.xml"/> <!-- symbolic link to ../../../IDEA/compact/IDEA_o1_v03/DriftChamber_o1_v02.xml --> | ||
<include ref="SiliconWrapper_o1_v03.xml"/> <!-- symbolic link to ../../../IDEA/compact/IDEA_o1_v03/SiliconWrapper_o1_v03.xml --> | ||
<include ref="ECalBarrel_thetamodulemerged.xml"/> <!-- if you remove the ECalBarrel, you also have to remove or update the "GlobalSolenoid" field (it depends on ECAL dimensions) --> | ||
<include ref="HCalBarrel_TileCal_v02.xml"/> | ||
<include ref="ECalEndcaps_Turbine.xml"/> | ||
<include ref="HCalEndcaps_ThreeParts_TileCal_v02.xml"/> | ||
<include ref="MuonTagger.xml"/> | ||
|
||
<fields> | ||
<!-- FIXME this is a place holder to get a reasonable magnetic field, it should be a real MAP obtained from FEM tools taking into account HCAL return yoke --> | ||
<!-- The z extent should also accomodate space for the feedthroughs, need input from R&D and decisions on cold/warm electronics --> | ||
<field name="GlobalSolenoid" type="solenoid" | ||
inner_field="SolenoidField" | ||
outer_field="-1.0*tesla" | ||
zmax="EMBarrel_dz" | ||
outer_radius="BarCryoECal_rmax-CryoBarrelBackWarm-CryoBarrelBackCold"> | ||
</field> | ||
|
||
|
||
<!-- MDI magnetic fields --> | ||
<!-- Important for background studies --> | ||
|
||
<field name="CompensatingSolenoidZplus" type="solenoid" | ||
inner_field="-SolenoidField -SolenoidField * QD0_min_z / ( QD0_min_z - CompSol_min_z)" | ||
outer_field="0*tesla" | ||
zmax="QD0_min_z" | ||
zmin="CompSol_min_z" | ||
outer_radius="20*cm"> | ||
</field> | ||
|
||
<field name="CompensatingSolenoidZminus" type="solenoid" | ||
inner_field="-SolenoidField -SolenoidField * QD0_min_z / ( QD0_min_z - CompSol_min_z)" | ||
outer_field="0*tesla" | ||
zmin="-QD0_min_z" | ||
zmax="-CompSol_min_z" | ||
outer_radius="20*cm"> | ||
</field> | ||
|
||
<!-- FFQ fields at Z pole, V23) --> | ||
<!-- | ||
<field name="QC1L1_field_ED" type="MultipoleMagnet" Z="0.0*tesla"> | ||
<position y="0*cm" x="(QC1L1_len/2. + QC1L1_start)*sin(CrossingAngle/2.)" z="(QC1L1_len/2. + QC1L1_start)*cos(CrossingAngle/2.)"/> | ||
<rotation x="0" y="CrossingAngle/2." z="0.0"/> | ||
<coefficient coefficient="0*tesla"/> | ||
<coefficient coefficient="(-1)*(45.6)*(-0.273)/0.3*tesla/m"/> | ||
<shape type="Tube" rmin="0.*cm" rmax="QC1_rmin" dz="QC1L1_len/2." /> | ||
</field> | ||
<field name="QC1L1_field_EU" type="MultipoleMagnet" Z="0.0*tesla"> | ||
<position y="0*cm" x="-(QC1L1_len/2. + QC1L1_start)*sin(CrossingAngle/2.)" z="-(QC1L1_len/2. + QC1L1_start)*cos(CrossingAngle/2.)"/> | ||
<rotation x="0" y="CrossingAngle/2." z="0.0"/> | ||
<coefficient coefficient="0*tesla"/> | ||
<coefficient coefficient="(-1)*(45.6)*(-0.273)/0.3*tesla/m"/> | ||
<shape type="Tube" rmin="0.*cm" rmax="QC1_rmin" dz="QC1L1_len/2." /> | ||
</field> | ||
<field name="QC1L1_field_PD" type="MultipoleMagnet" Z="0.0*tesla"> | ||
<position y="0*cm" x="(QC1L1_len/2. + QC1L1_start)*sin(CrossingAngle/2.)" z="-(QC1L1_len/2. + QC1L1_start)*cos(CrossingAngle/2.)"/> | ||
<rotation x="0" y="-CrossingAngle/2." z="0.0"/> | ||
<coefficient coefficient="0*tesla"/> | ||
<coefficient coefficient="(+1)*(45.6)*(-0.273)/0.3*tesla/m"/> | ||
<shape type="Tube" rmin="0.*cm" rmax="QC1_rmin" dz="QC1L1_len/2." /> | ||
</field> | ||
<field name="QC1L1_field_PU" type="MultipoleMagnet" Z="0.0*tesla"> | ||
<position y="0*cm" x="-(QC1L1_len/2. + QC1L1_start)*sin(CrossingAngle/2.)" z="(QC1L1_len/2. + QC1L1_start)*cos(CrossingAngle/2.)"/> | ||
<rotation x="0" y="-CrossingAngle/2.+pi" z="0.0"/> | ||
<coefficient coefficient="0*tesla"/> | ||
<coefficient coefficient="(-1)*(45.6)*(-0.273)/0.3*tesla/m"/> | ||
<shape type="Tube" rmin="0.*cm" rmax="QC1_rmin" dz="QC1L1_len/2." /> | ||
</field> | ||
--> | ||
|
||
<!--End of MDI magnetic fields --> | ||
|
||
</fields> | ||
|
||
</lccdd> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
../ALLEGRO_o1_v03/DectDimensions.xml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
../ALLEGRO_o1_v03/DectEmptyMaster.xml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
../../../IDEA/compact/IDEA_o1_v03/DriftChamber_o1_v02.xml |
165 changes: 165 additions & 0 deletions
165
FCCee/ALLEGRO/compact/ALLEGRO_o1_v04/ECalBarrel_thetamodulemerged.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,165 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0" | ||
xmlns:xs="http://www.w3.org/2001/XMLSchema" | ||
xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd"> | ||
|
||
<info name="ALLEGRO_ECalBarrel" | ||
title="Settings for FCCee ALLEGRO Inclined ECal Barrel Calorimeter" | ||
author="M.Aleksa,J.Faltova,A.Zaborowska,V. Volkl,G.Marchiori" | ||
url="no" | ||
status="development" | ||
version="1.0"> | ||
<comment> | ||
Settings for the inclined EM calorimeter. | ||
The barrel is filled with liquid argon. Passive material includes lead in the middle and steal on the outside, glued together. | ||
Passive plates are inclined by a certain angle from the radial direction. | ||
In between of two passive plates there is a readout. | ||
Space between the plate and readout is of trapezoidal shape and filled with liquid argon. | ||
Definition of sizes, visualization settings, readout and longitudinal segmentation are specified. | ||
The geometrical parameters (tilt and plane lengths) are adjusted, based on EMBarrel_rmin/max, to yield 1536 modules and cell corners aligned in phi | ||
</comment> | ||
</info> | ||
|
||
<define> | ||
<!-- Inclination angle of the lead plates --> | ||
<constant name="InclinationAngle" value="50.18*degree"/> | ||
<!-- thickness of active volume between two absorber plates at barrel Rmin, measured perpendicular to the readout plate --> | ||
<!--constant name="Sensitive_thickness" value="1.239749*2*mm"/--> | ||
<constant name="Sensitive_thickness" value="1.246*2*mm"/> | ||
|
||
<!-- Air margin, thicknesses of cryostat and LAr bath --> | ||
<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 --> | ||
<constant name="CryoBarrelFront" value="CryoBarrelFrontWarm+CryoBarrelFrontCold"/> | ||
|
||
<constant name="CryoBarrelBackCold" value="30*mm"/> <!-- Al solid corresponding to 0.34 X0 --> | ||
<constant name="CryoBarrelBackWarm" value="2.7*mm"/> <!-- Al solid equivalent of 0.03 X0 sandwich CFRP --> | ||
<constant name="SolenoidBarrel" value="70*mm"/> <!-- Al solenoid with thickness of 0.8 X0 --> | ||
<constant name="CryoBarrelBack" value="CryoBarrelBackWarm+SolenoidBarrel+CryoBarrelBackCold"/> | ||
|
||
<constant name="CryoBarrelSideWarm" value="30*mm"/> | ||
<constant name="CryoBarrelSideCold" value="3.8*mm"/> | ||
<constant name="CryoBarrelSide" value="CryoBarrelSideWarm+CryoBarrelSideCold"/> | ||
|
||
<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+NLiqBathThicknessFront"/> | ||
<constant name="EMBarrel_rmax" value="BarCryoECal_rmax-CryoBarrelBack-NLiqBathThicknessBack"/> | ||
<constant name="EMBarrel_dz" value="BarECal_dz-CryoBarrelSide"/> | ||
<!-- 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"/> | ||
<constant name="planeLength" value="-EMBarrel_rmin*cos(InclinationAngle) + sqrt(EMBarrel_rmax*EMBarrel_rmax - EMBarrel_rmin*EMBarrel_rmin*sin(InclinationAngle)*sin(InclinationAngle))"/> | ||
<constant name="ECalBarrelNumPlanes" value="1536"/> | ||
<constant name="ECalBarrelNumLayers" value="11"/> | ||
<constant name="phi" value="asin(planeLength / EMBarrel_rmax * sin(InclinationAngle))"/> | ||
<!-- use a different value for Pb_thickness_max when employing trapezoidal planes --> | ||
<!-- approximate constant sampling fraction: make the absorber grow linearly with the radius, | ||
taking into account the angular projection effect --> | ||
<!-- <constant name="Pb_thickness_max" value="1.3 * Pb_thickness * EMBarrel_rmax/EMBarrel_rmin * | ||
cos(InclinationAngle - phi) / cos(InclinationAngle)" />--> | ||
<constant name="Pb_thickness_max" value="Pb_thickness"/> | ||
<!-- total amount of steel in one passive plate: it is divided for the outside layer on top and bottom --> | ||
<constant name="Steel_thickness" value="0.1*mm"/> | ||
<!-- total amount of glue in one passive plate: it is divided for the outside layer on top and bottom --> | ||
<constant name="Glue_thickness" value="0.1*mm"/> | ||
<!-- readout in between two absorber plates --> | ||
<constant name="readout_thickness" value="1.2*mm"/> | ||
</define> | ||
|
||
<display> | ||
<vis name="ecal_envelope" r="0.1" g="0.2" b="0.6" alpha="1" showDaughers="false" visible="true"/> | ||
</display> | ||
|
||
<readouts> | ||
<!-- readout for the simulation, with the baseline merging: 2x along the module direction in each layer; 4x along theta in each layer except layer 1 --> | ||
<!-- the lists mergedCells_Theta and mergedModules define the number of cells to group together in the theta and module direction as a function of the layer --> | ||
<readout name="ECalBarrelModuleThetaMerged"> | ||
<segmentation type="FCCSWGridModuleThetaMerged_k4geo" nModules="ECalBarrelNumPlanes" mergedCells_Theta="4 1 4 4 4 4 4 4 4 4 4" mergedModules="2 2 2 2 2 2 2 2 2 2 2" grid_size_theta="0.009817477/4" offset_theta="0.5902785"/> | ||
<id>system:4,cryo:1,type:3,subtype:3,layer:8,module:11,theta:10</id> | ||
</readout> | ||
|
||
<!-- example of adding a second readout for the reconstruction, to compare the two --> | ||
<readout name="ECalBarrelModuleThetaMerged2"> | ||
<segmentation type="FCCSWGridModuleThetaMerged_k4geo" nModules="ECalBarrelNumPlanes" mergedCells_Theta="2 4 2 1 2 1 2 2 1 1 1" mergedModules="2 1 1 2 2 1 1 1 2 2 1" grid_size_theta="0.009817477/4" offset_theta="0.5902785"/> | ||
<id>system:4,cryo:1,type:3,subtype:3,layer:8,module:11,theta:10</id> | ||
</readout> | ||
</readouts> | ||
|
||
<detectors> | ||
<detector id="BarECal_id" name="ECalBarrel" type="ECalBarrel_NobleLiquid_InclinedTrapezoids_o1_v04" readout="ECalBarrelModuleThetaMerged"> | ||
<type_flags type=" DetType_CALORIMETER + DetType_ELECTROMAGNETIC + DetType_BARREL"/> | ||
<sensitive type="SimpleCalorimeterSD"/> | ||
<dimensions rmin="BarCryoECal_rmin" rmax="BarCryoECal_rmax" dz="BarCryoECal_dz" vis="ecal_envelope"/> | ||
<cryostat name="ECAL_Cryo"> | ||
<material name="Aluminum"/> | ||
<dimensions rmin1="BarCryoECal_rmin" rmin2="BarCryoECal_rmin+CryoBarrelFront" rmax1="BarCryoECal_rmax-CryoBarrelBack" rmax2="BarCryoECal_rmax" dz="BarCryoECal_dz"/> | ||
<front sensitive="false"/> <!-- inner wall of the cryostat --> | ||
<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="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) --> | ||
<overlap offset="0.5"/> | ||
</active> | ||
<passive> | ||
<rotation angle="InclinationAngle"/> <!-- inclination angle --> | ||
<inner thickness="Pb_thickness" sensitive="false"> <!-- thickness of inner part of the absorber, at Rmin, and whether its is active in layer 1 --> | ||
<material name="G10"/> <!-- material of the inner part of the absorber, in the first layer of the calorimeter --> | ||
</inner> | ||
<innerMax thickness="Pb_thickness_max" sensitive="false"> <!-- thickness of the inner part of the absorber, at Rmax, and whether its is active in layers 2-N --> | ||
<material name="Lead"/> <!-- material of the inner part of the absorber, in the other layers (2-N) of the calorimeter --> | ||
</innerMax> | ||
<glue thickness="Glue_thickness" sensitive="false"> | ||
<material name="lArCaloGlue"/> | ||
</glue> | ||
<outer thickness="Steel_thickness" sensitive="false"> | ||
<material name="lArCaloSteel"/> | ||
</outer> | ||
</passive> | ||
<readout thickness="readout_thickness" sensitive="false"> | ||
<material name="PCB"/> | ||
</readout> | ||
<layers> | ||
<!-- pcb electrode segmentation (length of each layer along the electrode direction) --> | ||
<!-- calculated given calo Rmin and inclination angle to yield cell corners aligned --> | ||
<!-- in rho-phi view, with constant number of crossings vs phi for projective particles --> | ||
<!-- (2 crossings in L0 and 4 in L1-10 --> | ||
<layer thickness="2.33596*cm" repeat="1"/> | ||
<layer thickness="4.75685*cm" repeat="1"/> | ||
<layer thickness="4.89843*cm" repeat="1"/> | ||
<layer thickness="5.04000*cm" repeat="1"/> | ||
<layer thickness="5.20989*cm" repeat="1"/> | ||
<layer thickness="5.36562*cm" repeat="1"/> | ||
<layer thickness="5.54966*cm" repeat="1"/> | ||
<layer thickness="5.73371*cm" repeat="1"/> | ||
<layer thickness="5.94607*cm" repeat="1"/> | ||
<layer thickness="6.15843*cm" repeat="1"/> | ||
<layer thickness="6.39910*cm" repeat="1"/> | ||
</layers> | ||
</calorimeter> | ||
</detector> | ||
</detectors> | ||
</lccdd> |
Oops, something went wrong.