Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include dual-readout endcap tubes calorimeter in IDEA_o2 xml file #411

Merged
merged 26 commits into from
Dec 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
d05ef74
Add dual-readout-tubes endcap calo geometry
lopezzot Oct 27, 2024
c633f00
Add IDEA_o2_v01.xml file
lopezzot Oct 27, 2024
2957603
Add DRTubesSDAction
lopezzot Nov 18, 2024
3aa3d74
Rename DREndcapTubesSDData
lopezzot Nov 19, 2024
667cbc1
Rm RunAction and EventAction from DRTubesSDAction
lopezzot Nov 19, 2024
985093a
Add example SteeringFile for IDEA_o2
lopezzot Nov 19, 2024
86bbb01
Rm elements.xml file from IDEA_o2
lopezzot Nov 20, 2024
493e82b
Add materials_o2_v01 file
lopezzot Nov 20, 2024
b7cd977
Add DectDimensions_IDEA_o2_v01 XML file
lopezzot Nov 20, 2024
2cdafe5
Move DRET vis attr to DectDimensions_IDEA_o2_v01
lopezzot Nov 20, 2024
a24896f
Assign DRTubesSDAction only to DREndcapTubes
lopezzot Nov 21, 2024
3cc33f3
Fix bug due to calo.filter
lopezzot Nov 21, 2024
2351f20
Change DREndcapTubes dimensions
lopezzot Nov 21, 2024
b67864c
Change slenoid dimensions for IDEA_o2
lopezzot Nov 21, 2024
6f4406f
Rm preshower in IDEA_o2 XML file
lopezzot Nov 21, 2024
b9ea677
Fix overlap of DREndcapTubes and comp solenoid
lopezzot Nov 22, 2024
f1a0bee
Set number of events to 1000 for IDEA_o2 example
lopezzot Nov 22, 2024
9a86d4a
Add IDEA_o2 CMake test and reorder G4GenericTrap
lopezzot Nov 25, 2024
d09c893
Fix pre-commit hook error in SteeringFile
lopezzot Nov 25, 2024
5e91829
Use steerfile in IDEA_o2 cmake test
lopezzot Nov 26, 2024
20d34f8
Change DRTubesSDAction.cpp units comment
lopezzot Nov 26, 2024
3cd6425
Add comment on light smearing parameters
lopezzot Nov 26, 2024
db9c55a
Add comment on Birks' Law usage in SDAction
lopezzot Nov 27, 2024
cfbc92a
Add "system" id to DREndcapTubes subdetector
lopezzot Nov 29, 2024
60d5814
Add comment to check volumeIDs
lopezzot Dec 5, 2024
0f09949
Apply clang-format to DREndcapTubes code
lopezzot Dec 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ file(GLOB sources
./detector/tracker/*.cpp
./detector/calorimeter/*.cpp
./detector/calorimeter/dual-readout/src/*.cpp
./detector/calorimeter/dual-readout-tubes/src/*.cpp
./detector/fcal/*.cpp
./detector/muonSystem/*.cpp
./detector/other/*.cpp
Expand Down Expand Up @@ -116,6 +117,8 @@ file(GLOB G4sources
./plugins/Geant4Output2EDM4hep_DRC.cpp
./plugins/DRCaloFastSimModel.cpp
./plugins/DRCaloFastSimModel.h
./plugins/DRTubesSDAction.hh
./plugins/DRTubesSDAction.cpp
)

if(DD4HEP_USE_PYROOT)
Expand All @@ -134,6 +137,9 @@ target_include_directories(${PackageName}G4 PRIVATE ${PROJECT_SOURCE_DIR}/detect
target_include_directories(${PackageName} PRIVATE ${PROJECT_SOURCE_DIR}/detector/calorimeter/dual-readout/include )
target_include_directories(${PackageName}G4 PRIVATE ${PROJECT_SOURCE_DIR}/detector/calorimeter/dual-readout/include )

target_include_directories(${PackageName} PRIVATE ${PROJECT_SOURCE_DIR}/detector/calorimeter/dual-readout-tubes/include )
target_include_directories(${PackageName}G4 PRIVATE ${PROJECT_SOURCE_DIR}/detector/calorimeter/dual-readout-tubes/include )

target_link_libraries(${PackageName} DD4hep::DDCore DD4hep::DDRec DD4hep::DDParsers ROOT::Core detectorSegmentations)
target_link_libraries(${PackageName}G4 DD4hep::DDCore DD4hep::DDRec DD4hep::DDParsers DD4hep::DDG4 ROOT::Core podio::podioRootIO EDM4HEP::edm4hep ${Geant4_LIBRARIES})

Expand Down
291 changes: 291 additions & 0 deletions FCCee/IDEA/compact/IDEA_o2_v01/DREndcapTubes_o1_v01.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,291 @@
<lccdd>
<!-- #==========================================================================
# File: MyDetector.xml
# Brief: XML description file for the endcap geometry of the IDEA
# dual-readout calorimeter with the capillary tubes technology
# Author: Lorenzo Pezzotti (CERN) @lopezzot
# Created: 12/7/2024
#==========================================================================
-->

<!-- #==========================================================================
# AIDA Detector description implementation
#==========================================================================
# Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
# All rights reserved.
#
# For the licensing terms see $DD4hepINSTALL/LICENSE.
# For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
#
#==========================================================================
-->
<info name="DREndcapTubes"
title="IDEA dual-readout endcap calorimeter with capillary tubes"
author="Lorenzo Pezzotti"
url="None"
status="development"
version="0.1">
<comment></comment>
</info>

<properties>
<matrix name="RI_DR_Polystyrene" coldim="2" values="
1.37760*eV 1.59
1.45864*eV 1.59
1.54980*eV 1.59
1.65312*eV 1.59
1.71013*eV 1.59
1.77120*eV 1.59
1.83680*eV 1.59
1.90745*eV 1.59
1.98375*eV 1.59
2.06640*eV 1.59
2.10143*eV 1.59
2.13766*eV 1.59
2.17516*eV 1.59
2.21400*eV 1.59
2.25426*eV 1.59
2.29600*eV 1.59
2.33932*eV 1.59
2.38431*eV 1.59
2.43106*eV 1.59
2.47968*eV 1.59
2.53029*eV 1.59
2.58300*eV 1.59
2.63796*eV 1.59
2.69531*eV 1.59
2.75520*eV 1.59
2.81782*eV 1.59
2.88335*eV 1.59
2.95200*eV 1.59
3.09960*eV 1.59
3.54241*eV 1.59
4.13281*eV 1.59
"/>

<matrix name="RI_PMMA" coldim="2" values="
1.37760*eV 1.49
1.45864*eV 1.49
1.54980*eV 1.49
1.65312*eV 1.49
1.71013*eV 1.49
1.77120*eV 1.49
1.83680*eV 1.49
1.90745*eV 1.49
1.98375*eV 1.49
2.06640*eV 1.49
2.10143*eV 1.49
2.13766*eV 1.49
2.17516*eV 1.49
2.21400*eV 1.49
2.25426*eV 1.49
2.29600*eV 1.49
2.33932*eV 1.49
2.38431*eV 1.49
2.43106*eV 1.49
2.47968*eV 1.49
2.53029*eV 1.49
2.58300*eV 1.49
2.63796*eV 1.49
2.69531*eV 1.49
2.75520*eV 1.49
2.81782*eV 1.49
2.88335*eV 1.49
2.95200*eV 1.49
3.09960*eV 1.49
3.54241*eV 1.49
4.13281*eV 1.49
"/>

<matrix name="RI_Fluorinated_Polymer" coldim="2" values="
1.37760*eV 1.42
1.45864*eV 1.42
1.54980*eV 1.42
1.65312*eV 1.42
1.71013*eV 1.42
1.77120*eV 1.42
1.83680*eV 1.42
1.90745*eV 1.42
1.98375*eV 1.42
2.06640*eV 1.42
2.10143*eV 1.42
2.13766*eV 1.42
2.17516*eV 1.42
2.21400*eV 1.42
2.25426*eV 1.42
2.29600*eV 1.42
2.33932*eV 1.42
2.38431*eV 1.42
2.43106*eV 1.42
2.47968*eV 1.42
2.53029*eV 1.42
2.58300*eV 1.42
2.63796*eV 1.42
2.69531*eV 1.42
2.75520*eV 1.42
2.81782*eV 1.42
2.88335*eV 1.42
2.95200*eV 1.42
3.09960*eV 1.42
3.54241*eV 1.42
4.13281*eV 1.42
"/>

<matrix name="AbsLen_DR_Polystyrene" coldim="2" values="
1.37760*eV 2.714*m
1.45864*eV 3.619*m
1.54980*eV 5.791*m
1.65312*eV 4.343*m
1.71013*eV 7.896*m
1.77120*eV 5.429*m
1.83680*eV 36.19*m
1.90745*eV 17.37*m
1.98375*eV 36.19*m
2.06640*eV 5.429*m
2.10143*eV 13.00*m
2.13766*eV 14.50*m
2.17516*eV 16.00*m
2.21400*eV 18.00*m
2.25426*eV 16.50*m
2.29600*eV 17.00*m
2.33932*eV 14.00*m
2.38431*eV 16.00*m
2.43106*eV 15.00*m
2.47968*eV 14.50*m
2.53029*eV 13.00*m
2.58300*eV 12.00*m
2.63796*eV 10.00*m
2.69531*eV 8.000*m
2.75520*eV 7.238*m
2.81782*eV 4.000*m
2.88335*eV 1.200*m
2.95200*eV 0.500*m
3.09960*eV 0.200*m
3.54241*eV 0.200*m
4.13281*eV 0.100*m
"/>

<matrix name="AbsLen_PMMA" coldim="2" values="
1.37760*eV 0.414*m
1.45864*eV 0.965*m
1.54980*eV 2.171*m
1.65312*eV 4.343*m
1.71013*eV 1.448*m
1.77120*eV 4.343*m
1.83680*eV 14.48*m
1.90745*eV 21.71*m
1.98375*eV 8.686*m
2.06640*eV 39.48*m
2.10143*eV 48.25*m
2.13766*eV 54.29*m
2.17516*eV 57.91*m
2.21400*eV 54.29*m
2.25426*eV 33.40*m
2.29600*eV 31.02*m
2.33932*eV 43.43*m
2.38431*eV 43.43*m
2.43106*eV 41.36*m
2.47968*eV 39.48*m
2.53029*eV 37.76*m
2.58300*eV 36.19*m
2.63796*eV 36.19*m
2.69531*eV 33.40*m
2.75520*eV 31.02*m
2.81782*eV 28.95*m
2.88335*eV 25.55*m
2.95200*eV 24.13*m
3.09960*eV 21.71*m
3.54241*eV 2.171*m
4.13281*eV 0.434*m
"/>
</properties>

<materials>
<material name="Brass">
<D type="density" unit="g/cm3" value="8.44" />
<fraction n="0.7" ref="Cu" />
<fraction n="0.3" ref="Zn" />
</material>
<!--core S material-->
<material name="DR_Polystyrene" >
<D type="density" unit="g/cm3" value="1.05" />
<composite n="8" ref="C" />
<composite n="8" ref="H" />
<!--<property name="RINDEX" ref="RI_DR_Polystyrene"/>-->
<!--<property name="ABSLENGTH" ref="AbsLen_DR_Polystyrene"/>-->
</material>
<!--clad S material-->
<material name="PMMA_Scin" >
<D type="density" unit="g/cm3" value="1.1901" />
<composite n="5" ref="C" />
<composite n="2" ref="O" />
<composite n="8" ref="H" />
<!--<property name="RINDEX" ref="RI_PMMA"/>-->
<!--<property name="ABSLENGTH" ref="AbsLen_PMMA"/>-->
</material>
<!--core C material-->
<material name="PMMA" >
<D type="density" unit="g/cm3" value="1.19" />
<composite n="5" ref="C" />
<composite n="2" ref="O" />
<composite n="8" ref="H" />
<property name="RINDEX" ref="RI_PMMA"/>
<property name="ABSLENGTH" ref="AbsLen_PMMA"/>
</material>
<!--clad C material-->
<material name="Fluorinated_Polymer">
<D type="density" unit="g/cm3" value="1.43" />
<composite n="2" ref="C" />
<composite n="2" ref="F" />
<property name="RINDEX" ref="RI_Fluorinated_Polymer"/>
</material>
</materials>

<!-- Define the detector. A detector has a name, type to be returned in .cpp file with
DECLARE_DETELEMENT(type,create_detector_c++method), vis attributes (optional),
and sensitive-detector (true/false), if sensitive="true" a readout must the passed.
If a detector contains sub-detectors, their information must be included as below.
-->
<detectors>
<detector name="DREndcapTubes" type="DREndcapTubes" vis="DRETAssemblyVis" id ="DetID_DREndcapTubes" readout="DREndcapTubesRO">
<type_flags type=" DetType_CALORIMETER + DetType_ELECTROMAGNETIC + DetType_BARREL"/>
<dimensions
inner_radius="DRETinnerRadius"
z_length="DRETtowerHeight"
deltaphi="DRETNbOfZRot"/>
<assembly material="Air" vis="DRETAssemblyVis"/>
<stave material="Air" vis="DRETStaveVis"/>
<tower material="Air" vis="DRETTowerVis"/>
<tube_S material="Brass" outer_radius="DRETTubeRadius" sensitive="false" vis="DRETtube_S_Vis"/>
<tube_C material="Brass" outer_radius="DRETTubeRadius" sensitive="false" vis="DRETtube_C_Vis"/>
<clad_S material="PMMA_Scin" outer_radius="DRETCladRadius" sensitive="false" vis="DRETclad_S_Vis"/>
<clad_C material="Fluorinated_Polymer" outer_radius="DRETCladRadius" sensitive="false" vis="DRETclad_C_Vis"/>
<core_S material="DR_Polystyrene" outer_radius="DRETCoreRadius" sensitive="false" vis="DRETcore_S_Vis"/>
<core_C material="PMMA" outer_radius="DRETCoreRadius" sensitive="false" vis="DRETcore_C_Vis"/>
</detector>
</detectors>

<readouts>
<readout name="DREndcapTubesRO">
<segmentation type="CartesianGridXY"
grid_size_x="1*mm"
grid_size_y="1*mm"/>
<!--
Volume ids of this subdetector are defined as "system" for the entire endcap calorimeter,
"stave" for the phi-slices, "tower" for the towers (trapezoids) inside a phi-slice,
"air" dummy for the moment but useful if a tower supporting structure will be added,
"col" and "row" colum and row of tube inside a tower, "clad" "core" "cherenkov"
cladding core volumes and cherenkov identifiers of an optical fiber
-->
<!--
This subdetector is supposed to be used with regexSD, therefore volumeID(aStep) will
not work in the DRTubesSDAction to retrieve the volumeID. Instead we use g4 copynumbers
accessed from the G4Step to recreate the 64-bit volume ID inside DRTubesSDAction.
Do not change these ids, contact the experts (Lorenzo Pezzotti) before any modification.
-->
<!-- NO SPACES BETWEEN ID DESCRIPTORS!!! -->
<id>system:5,stave:10,tower:6,air:1,col:16,row:16,clad:1,core:1,cherenkov:1</id>
</readout>
</readouts>

</lccdd>
Loading
Loading