Structure for descriptors for future upgrades
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 thedo_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 inVP/trunk/visualitazation.xml
. This is to fix theRFFoil_debug
- Added
check_path_xml
andcheck_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