Skip to content

Structure for descriptors for future upgrades

Menglin Xu requested to merge future_upgrades_structure_rebase into master

Needs to go in with Gauss!1009 (merged)

Introduce structure for Future Upgrades

In preparation for future upgrade, this merge requests introduces a new structure for the modularisation and versioning of the subdetectors, along with how they come together in Run3/Run4/Run5 versions of LHCb.

Compact XML folders structure

In order to support run3, run4 and run5 in the same project, the compact folder will be structured in the following way:

  • run3: the versions of LHCb for run3
  • run4: the versions of LHCb for run4
  • run5: the versions of LHCb for run5
  • components: individual subdetector decsriptions and other components

See the CodiMD Document from the mini hackathon for details

To summarise, in any version of the full detector (eg Run3/trunk), there must always be LHCb.xml, path.xml, checksums. LHCb.xml is the file that describes the detector, path.xml describes which versions of the components need to be used by LHCb, and checksums is the checksum of the detector, to verify that no unintended changes has occurred.


Validated by

  • Core Software
  • RTA
  • Simulation

Note: At the moment, Rich1 and Rich2 are highly intertwined with each other. The temporary solution proposed is that Rich1 and Rich2 are versioned together under the same folder. See tree for current implementation.

The tree is shown below, with before-rich1-geom-update-26052022 representing how the versioning works.

compact
├── common
│   ├── global
│   │   ├── common.xml
│   │   └── ...
│   ├── Infrastructure
│   ├── materials
│   │   └── compact
│   │       ├── elements.xml
│   │       └── materials.xml
│   ├── Regions
│   │   ├── detector.xml
│   │   └── parameters.xml
│   └── T
│       └── parameters.xml
├── components
│   ├── Bcm
│   │   ├── trunk
│   │   │   ├── BcmDown.xml
│   │   │   ├── BcmUp.xml
│   │   │   ├── Bcm.xml
│   │   │   └── parameters.xml
│   │   └── v1.0
│   │       ├── BcmDown.xml
│   │       ├── BcmUp.xml
│   │       ├── Bcm.xml
│   │       └── parameters.xml
│   ├── BlockWall
│   │   ├── trunk
│   │   │    ├── BlockWall.xml
│   │   │    └── ...
│   │   └── v1.0
│   ├── Bls
│   ├── ECAL
│   ├── FT
│   ├── GValve
│   ├── HCAL
│   ├── Magnet
│   ├── MBXW
│   ├── Muon
│   ├── NeutronShielding
│   ├── Pipe
│   ├── Rich
│   │   ├── before-rich1-geom-update-26052022
│   │   │   ├── Rich1
│   │   │   │   ├── Rich1.xml
│   │   │   │   ├── RichMatDir
│   │   │   │   └── ...
│   │   │   └── Rich2
│   │   │       ├── Rich2.xml
│   │   │       └── ...
│   │   └── trunk
│   │       ├── Rich1
│   │       │   ├── Rich1.xml
│   │       │   ├── RichMatDir
│   │       │   └── ...
│   │       └── Rich2
│   │           ├── Rich2.xml
│   │           └── ...
│   ├── UT
│   ├── VMA
│   └── VP
└── run3
    ├── 2022_v1.0
    │   ├── checksums
    │   ├── debug
    │   │   ├── Bcm_debug.xml
    │   │   ├── path.xml
    │   │   └── ...
    │   ├── LHCb.xml
    │   └── path.xml
    ├── before-rich1-geom-update-26052022
    │   ├── checksums
    │   ├── LHCb.xml
    │   └── path.xml
    └── trunk
        ├── checksums
        ├── debug
        │   ├── Bcm_debug.xml
        │   ├── path.xml
        │   └── ...
        ├── LHCb.xml
        └── path.xml

Things done in this merge request

  • refactor current project to follow the proposed tree structure above
  • Move Rich1 and Rich2 directories under the Rich directory
  • Converted most debugs to follow the current LHCb.xml structure
  • Update HOWTO.md for debugs
  • MAJOR In refactoring before-rich1-geom-update-26052022, removed the FT/conditions, need to see how that behaves later in the stack
  • MAJOR In pipe_debug, removed the dependence of Pipe/InRich1.xml, as that apparently seems to have never been used. Anytime its mentioned in the repository before its been refactored (eg b0461a96), its always placed between the do_not_build flag. Is the pipe in Rich1 not used at all?
  • In RFFoil/detector.xml, remove <!-- <vis name="RFFoil" alpha="0.5" r="0.5" g="0.5" b="0.5" showDaughters="true" visible="true"/> --> as its been found in VP/trunk/visualitazation.xml. This is to fix the RFFoil_debug
  • Added check_path_xml and check_dependency scripts to enforce developers to adhere with the new structure; this is also added in the CI test

Todo for future

  • Update scripts to deal with new structure (checksums, verification)

cc @emmuhamm

Edited by Christopher Rob Jones

Merge request reports