Skip to content

Conversation

@plariono
Copy link
Contributor

This PR adds a new version of the IRIS tracker geometry for the ALICE3 TRK.

Changes

  • Introduced modular VDLayer hierarchy:
    • VDCylindricalLayer, VDRectangularLayer, VDDiskLayer
    • Each with createLayer() / createSensor() methods.
  • Added VDGeometryBuilder with entry points for IRIS designs:
    • createIRIS4Geometry(), createIRIS5Geometry(), createIRIS3Geometry()
    • Builds petals (walls + layers + disks) with configurable gaps/arc lengths.
  • Implemented VDSensorRegistry:
    • Automatic registration of sensitive volume names during geometry creation.
    • Detector now uses registry instead of hardcoded naming.
  • Updated Detector.cxx:
    • Geometry construction now uses VDGeometryBuilder.
    • Sensitive volume definition loops over registry entries.

Benefits

  • Modular, flexible, and maintainable geometry description.
  • Support for multiple IRIS designs (IRIS4, IRIS4a, IRIS5).
  • No hardcoded sensor names → automatic sensitive volume discovery.
  • Cleaner integration with simulation and easier debugging.

@atriolo I kept for the moment the existing sensor naming as PETALCASE#_LAYER#_TRKSensor#. I don't know if there are some unit test that I could run to check if the digitiser is working properly, could you suggest if there are any? Also curious to know how would the rectangular L0 would be treated as it is not curved.

@github-actions
Copy link
Contributor

REQUEST FOR PRODUCTION RELEASES:
To request your PR to be included in production software, please add the corresponding labels called "async-" to your PR. Add the labels directly (if you have the permissions) or add a comment of the form (note that labels are separated by a ",")

+async-label <label1>, <label2>, !<label3> ...

This will add <label1> and <label2> and removes <label3>.

The following labels are available
async-2023-pbpb-apass4
async-2023-pp-apass4
async-2024-pp-apass1
async-2022-pp-apass7
async-2024-pp-cpass0
async-2024-PbPb-apass1
async-2024-ppRef-apass1
async-2024-PbPb-apass2
async-2023-PbPb-apass5

@atriolo
Copy link
Contributor

atriolo commented Sep 25, 2025

Hello @plariono, thanks!
I'm currently writing some tests to verify the output of the digitizer, which will be available soon...
For the moment, as a first step, one could first check that the digitization runs correctly without crashes or errors (simply running it with o2-sim-digitizer-workflow -b), and after this, check if the distributions of digits look fine. I can also help with this.

Regarding the rectangular L0, at the moment the digitizer does not foresee rectangular layers in the VD, and some methods to deal with the curved layers are automatically called. I will have to add a check for the different iris versions in the digitizer to deal with this.

@plariono
Copy link
Contributor Author

Hi @atriolo, thank you, I'll check the workflow command.
Let me know what would be needed for the rectangular module, probably I will need to add some type getters.

@atriolo
Copy link
Contributor

atriolo commented Sep 25, 2025

@plariono yes indeed, a getter which returns the type of layer or something like this would be optimal, so I can check this variable before applying the methods for the curved layers. We can discuss about it if you want. Thanks!

@plariono
Copy link
Contributor Author

@atriolo sure, let's discuss tomorrow.

@alibuild
Copy link
Collaborator

alibuild commented Sep 25, 2025

Error while checking build/O2/fullCI_slc9 for 3972075 at 2025-10-20 11:42:

## sw/BUILD/O2Physics-latest/log
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
[0 more errors; see full log]

Full log here.

@alibuild
Copy link
Collaborator

alibuild commented Oct 20, 2025

Error while checking build/O2/fullCI_slc9 for 251e27e at 2025-10-22 04:37:

## sw/BUILD/O2Physics-latest/log
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
[0 more errors; see full log]

Full log here.

@iarsene
Copy link
Collaborator

iarsene commented Oct 23, 2025

Hi @plariono. This PR seems to touch many files which are not related to the changes you mentioned, including e.g. FOCAL simcuts. Maybe you need to rebase?

@plariono
Copy link
Contributor Author

Hi @plariono. This PR seems to touch many files which are not related to the changes you mentioned, including e.g. FOCAL simcuts. Maybe you need to rebase?

Hi @iarsene, yes, sorry, something went wrong. I think I managed to undo this.

@alibuild
Copy link
Collaborator

Error while checking build/O2/fullCI_slc9 for 424857b at 2025-10-23 12:47:

## sw/BUILD/o2checkcode-latest/log
--
========== List of errors found ==========
++ GRERR=0
++ grep -v clang-diagnostic-error error-log.txt
++ grep ' error:'
/sw/SOURCES/O2/14693-slc9_x86-64/0/Detectors/Upgrades/ALICE3/TRK/simulation/src/VDGeometryBuilder.cxx:57:47: error: statement should be inside braces [readability-braces-around-statements]
/sw/SOURCES/O2/14693-slc9_x86-64/0/Detectors/Upgrades/ALICE3/TRK/simulation/src/VDGeometryBuilder.cxx:60:49: error: statement should be inside braces [readability-braces-around-statements]
/sw/SOURCES/O2/14693-slc9_x86-64/0/Detectors/Upgrades/ALICE3/TRK/simulation/src/VDGeometryBuilder.cxx:62:49: error: statement should be inside braces [readability-braces-around-statements]
/sw/SOURCES/O2/14693-slc9_x86-64/0/Detectors/Upgrades/ALICE3/TRK/simulation/src/VDGeometryBuilder.cxx:64:45: error: statement should be inside braces [readability-braces-around-statements]
/sw/SOURCES/O2/14693-slc9_x86-64/0/Detectors/Upgrades/ALICE3/TRK/simulation/src/VDGeometryBuilder.cxx:66:42: error: statement should be inside braces [readability-braces-around-statements]
/sw/SOURCES/O2/14693-slc9_x86-64/0/Detectors/Upgrades/ALICE3/TRK/simulation/src/VDGeometryBuilder.cxx:68:50: error: statement should be inside braces [readability-braces-around-statements]
/sw/SOURCES/O2/14693-slc9_x86-64/0/Detectors/Upgrades/ALICE3/TRK/simulation/src/VDGeometryBuilder.cxx:70:56: error: statement should be inside braces [readability-braces-around-statements]
/sw/SOURCES/O2/14693-slc9_x86-64/0/Detectors/Upgrades/ALICE3/TRK/simulation/src/VDGeometryBuilder.cxx:86:47: error: statement should be inside braces [readability-braces-around-statements]
/sw/SOURCES/O2/14693-slc9_x86-64/0/Detectors/Upgrades/ALICE3/TRK/simulation/src/VDGeometryBuilder.cxx:89:45: error: statement should be inside braces [readability-braces-around-statements]
/sw/SOURCES/O2/14693-slc9_x86-64/0/Detectors/Upgrades/ALICE3/TRK/simulation/src/VDGeometryBuilder.cxx:105:37: error: statement should be inside braces [readability-braces-around-statements]
/sw/SOURCES/O2/14693-slc9_x86-64/0/Detectors/Upgrades/ALICE3/TRK/simulation/src/VDGeometryBuilder.cxx:114:14: error: statement should be inside braces [readability-braces-around-statements]
/sw/SOURCES/O2/14693-slc9_x86-64/0/Detectors/Upgrades/ALICE3/TRK/simulation/src/VDGeometryBuilder.cxx:120:37: error: statement should be inside braces [readability-braces-around-statements]
/sw/SOURCES/O2/14693-slc9_x86-64/0/Detectors/Upgrades/ALICE3/TRK/simulation/src/VDGeometryBuilder.cxx:135:122: error: statement should be inside braces [readability-braces-around-statements]
/sw/SOURCES/O2/14693-slc9_x86-64/0/Detectors/Upgrades/ALICE3/TRK/simulation/src/VDGeometryBuilder.cxx:165:11: error: statement should be inside braces [readability-braces-around-statements]
/sw/SOURCES/O2/14693-slc9_x86-64/0/Detectors/Upgrades/ALICE3/TRK/simulation/src/VDGeometryBuilder.cxx:260:37: error: statement should be inside braces [readability-braces-around-statements]
++ [[ 0 == 0 ]]
++ exit 1
--

Full log here.

@alibuild
Copy link
Collaborator

Error while checking build/O2/fullCI_slc9 for 3c6fbd5 at 2025-10-23 13:35:

## sw/BUILD/O2Physics-latest/log
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
[0 more errors; see full log]

Full log here.

@njacazio njacazio merged commit 2a8b5d6 into AliceO2Group:dev Oct 24, 2025
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

5 participants