Simulation Tests
A list of all
LHCbPR tests including information on who is responsible for maintenance and modifications within the Birmingham LHCb Group.
Test Summary
Geant 4 Standalone Tests
Gauss Full Simulation Tests
RadLength Test
The purpose of the
Radiation Length & Absorption Test is to monitor the radiation and interaction length properties of the constituent materials for each LHCb sub-detector. Measurements of these properties are carried out by Geant4 using a set of "scoring planes" placed within the LHCb detector geometry at positions just past each sub-detector. In total there are 11 such planes which exist within the
radlength-tags branch within the Git based CondDB project which is maintained on
GitLab. The test is part of the
Sim/SimChecks package within
Gauss. It is formed of two main parts:
- The first consists of the performance of a set of 2D scans in which a Geant4 particle gun is initialised and fires muon neutrinos at a momentum of 50GeV from various positions across the η-Φ plane at a fixed z position.
- In the second stage, the same gun is positioned at different z positions within the VELO and the properties of radiation length and interaction length are recorded as a function of this displacement.
Execution
To manually run this test you will need to setup the Gauss environment from a local development version of Gauss:
$ LbLogin -c x86_64-slc6-gcc7-opt
$ lb-dev --nightly lhcb-gauss-dev Gauss/HEAD
$ cd GaussDev_HEAD
$ make -j
$ ./run bash --norc
$ bash $SIMCHECKSROOT/radlength_test.sh
This will run both parts of the test in the same manner it is executed within
LHCbPR. However a few options have been made available to add more control to the options executed, for the 2D scans the relevant script is
$SIMCHECKSROOT/scripts/radlength_scan.py which is run using
python and has the following command line options:
Option |
Description |
--debug |
Runs the test in debug mode giving more output information |
--debug-gauss |
This sets Gauss' own debug option |
--gauss-geo |
Forces use of GaussGeo? as the geometry reader |
--giga-geo |
Forces use of GiGaGeo? as the geometry reader |
--plot-only |
If the output ROOT files already exist and you only want to remake the plots |
--no-plots |
Inverse of the above, test is run but only ROOT files are made |
--zlim |
Attempt at limiting the z axis scale in the 2D scans |
--Help |
Shows these options |
Likewise the second part of the test which performs the scan of the VELO across the z axis also has additional options and is run using
python with the file
$SIMCHECKSROOT/scripts/radlength_scan_velo_z.py, the options are a little different:
Option |
Description |
--debug |
Runs the test in debug mode giving more output information |
--debug-gauss |
This sets Gauss' own debug option |
--gauss-geo |
Forces use of GaussGeo? as the geometry reader |
--giga-geo |
Forces use of GiGaGeo? as the geometry reader |
--mode |
Run either "Scan" only or "Plots" only or "All" stages |
--pdfs |
Produce PDF versions of the plots also |
--Help |
Displays these options |
Visualisation & Scoring Planes
As read from the CondDB project in 2019, the positions and dimensions of these planes are:
Plane # |
Size (x, y, z)/mm |
z Position/mm |
Description |
1 |
(3500,3500,1) |
2240 |
VELO |
2 |
(12000, 12000, 1) |
2715 |
RICH1/TT |
3 |
(12000, 12000, 1) |
7570 |
Magnet |
4 |
(8190, 6070, 1) |
8200 |
OT1 |
5 |
(8190, 6070, 1) |
8900 |
OT2 |
6 |
(8190, 6070, 1) |
9440 |
OT3 |
7 |
(12000, 10000, 1) |
11897 |
RICH2 |
8 |
(12000, 10000, 1) |
12500 |
Detached Muon, pre-SPD |
9 |
(15000, 12000, 1) |
13360 |
ECAL |
10 |
(15000, 12000, 1) |
15063 |
HCAL |
11 |
(15000, 12000, 1) |
19895 |
LHCb |
An overlap in geometry leads to segmentation faults when performing the sub-detector scan with all 11 scoring planes in situ, this is because the first scoring plane being positioned within the RICH1 location. For this reason the first part of the test is actually executed in three parts, the first obtains the readings for the VELO with only the geometry of the VELO switched on, the second performs the same procedure recording the plane-to-plane radiation and interaction lengths this time with the VELO switched off and all other sub-detectors present. Finally to obtain the cumulative scans the procedure is repeated with the whole geometry present.
The 11 planes can be visualised in situ using the
Panoramix project within LHCb software:
$ lb-run Panoramix/latest bash --norc
In order to use the radlength-tags version of the geometry dump the following options to a file
rad_view_opts.py:
from Configurables import LHCbApp
LHCbApp().DDDBtag = 'radlength-tags'
LHCbApp().Simulation = True
LHCbApp().CondDBtag = 'sim-20170721-2-vc-md100'
Then run the software using:
$ python $myPanoramix --BareConfig 1 -f none -v rad_view_opts.py
--
RyanBernardCalladine? - 14 Feb 2019