!SciFi Simulation and Reconstruction

This WP covers simulation, reconstruction and alignment of the SciFi Tracker.

Develops an accurate but flexible model of the detector in order to reproduce and predict detector and physics performance parameters. In collaboration with the LHCb T&A group, it develops efficient tracking and alignment algorithms.

Mailing list : lhcb-upgrade-ft-software@cernNOSPAMPLEASE.ch ( archive).

Meetings: Monday at 13:00 CERN time.

Current tasks (table format)

A complete list of JIRA tasks can be found in the SciFi JIRA, and organised by subcomponents in the Components subpage.

  Category Previous work
done by
Interested people JIRA Needed for External contact(s)
Add some disorder to encoding of clusters Digitization   Lex, Louis LHCBSCIFI-157 Realistic simulation  
More realistic readout map Digitization Louis Kazu, Lex, Louis LHCBSCIFI-158 Realistic simulation, data-taking  
Revisit noise simulation Digitization Jeroen Daniel, Emmy LHCBSCIFI-150 Realistic simulation  
Update electronic response Digitization Sevda Daniel, Sevda LHCBSCIFI-98 Realistic simulation  
Add option to have different noise levels
for inner modules
Digitization       MightyTracker Lucia Grillo, Matthew Needham
Identify relevant alignment quantities from
offline studies
Alignment   Sophie, Fred LHCBSCIFI-125 Realistic simulation, data-taking RTA WP4: Sneha Malde, Silvia Borghi
Suzanne Klaver
Identify weak modes Alignment   Sophie, Fred LHCBSCIFI-127 Realistic simulation, data-taking RTA WP4: Sneha Malde, Silvia Borghi
Suzanne Klaver
Establish final list of dashboard histograms
for data challenges
Monitoring Louis   LHCBSCIFI-120 DD4HEP migration, MC validation Suzanne Klaver
Profile CPU usage, improve code Code modernization     LHCBSCIFI-130
Performant simulation, data-taking  

Current tasks (text format)

Digitisation (Emmy, Daniel U. Helping: Blake, Louis):

Daniel is working on the note, with Louis helping
Emmy is working on the effective noise simulation in coordination with Blake. Objectives are, in order of urgency:

- produce noise level numbers with detailed simulation corresponding to different conditions
- ensure confidence in these numbers, possibly through toy studies, and communicate them to the rest of the project
- change the effective noise simulation and validate it.

Alignment (Sophie, Fred):

Constraints are now in the software, and weak modes are being understood as well as a more efficient parameterisation.

List of current tasks: https://codimd.web.cern.ch/9wYOr9U3QHSGDSdh6F6qRQ#

Mail from Sneha Malde:

For each subdetector we need to know

  1. precision of metrology for each element
  2. if expected (or not completely excluded) any movement and which type (rotation, translation) due to any reason: cooling, closing of the detector, magnetic field, HV etc.
  3. any expected distortions on long term as blending
  4. precision of the global position of each subdetector (e.g. we could have a z scaling of the full tracking system).
  5. any mechanical monitor like rasnik or bcam? what will it measure and with which precision?

Point 1 and 2 can be used to create a starting point of misalignment scenario.

This misalignnment can be used also to define a monitoring sensitive to the misalignment of each detector. Ideally we should have for the expected misalignment or each weak mode a sensitive plot.

From this misalignment scenario, we can run the alignment:

  • to optimize the data sample needed for the alignment
  • to define the constraints
  • to define a procedure for the alignment for day one
  • to determine the alignment accuracy
The alignment accuracy will be the input for data challenge to have a simulation "more realistic" to what we expect.

The point 3 is very important and it should be studied how to monitor it and if we are able to align for it and with which precision. Consider that this kind of distortions of the detector should be considered in advance if we need to have 2 sub-element of a particular detector element.

About point 5, it would be good to study in advance in a way we can compare the alignment results with the mechanical measurements. In case this measurements for some dofs could be used as constraint in the alignment.

Ideally one could also applied some magnetic field distortions on the top of misalignment to see if the alignment is able to "correct/compensate" the magnetic field.

Monitoring (Lex, Kazu, Louis):

Version 7 of the decoding/encoding will include some link switching, and is already roughly implemented. We now need to:

- implement sorting of clusters and study the residual sorting of clusters;
- implement the corresponding encoding;
- test this with text outputs and validate it;
- discuss with RTA & hardware about constraints;
- implement better, more resilient testing;
- implement better Excel-to-DDDB transcription;
- do the same for NZS and counter.

Other ideas

  • Study the code in details to remove hardcoded constants or at least name them
  • Relate underlying constants and assumptions to relevant presentations, notes, documents
  • Centralise all underlying constants and models, and communicate with hardware
  • Change doubles to floats whenever possible

Active members

  Tasks People
Coordinator   Louis Henry
Geometry Detector volumes (XML) Louis Henry
Detector description (FTDet)  
Material Scans  
DD4Hep Biplab Dey
SiPM response and Noise Emmy, Daniel Unverzagt
Clustering/Raw Buffer Emmy
Detailed/Improved simulation  
Standalone Geant4 simulation  
Attenuation maps and tools  
Tracking/Performance Forward External effort
Seeding Louis Henry
Performance checks  
Test beam Simulation  
Common framework Li Xu
Alignment   Sophie, Fred
Decoding/Monitoring Decoding Sevda, Lex Greeven
Monitoring Kazu, Lex Greeven
Code improvement Profile CPU usage  

Development and software status

All bugs, proposals for future development are described in the JIRA tasks: LHCBSCIFI.

Relevant LHCb Projects:

  • LHCb: contains general purpose classes used throughout the LHCb software latest release gitlab
  • Boole: digitization is the final stage of the LHCb detector simulation. Boole applies the detector response to hits previously generated in sensitive detectors by the Geant4 based simulation application ( Gauss). Additional hits are added from from Spillover events and LHC background. The digitization step includes simulation of the detector response and of the readout electronics, as well as of the L0 trigger hardware. The output is digitized data that mimics the real data coming from the real detector. latest release gitlab
  • Rec: groups together the components related to event reconstruction. latest release gitlab
  • LHCb-CondDB/DDDB: Detector geometry and setup database gitlab
  • LHCb-CondDB/SIMCOND: Simulation conditions database gitlab [attenuation maps etc..]

Status of branches in LHCb-wide software

Eos space for data samples, large files: /eos/lhcb/wg/SciFi [to have write permission, contact lhcb-scifi-software-managers ]

Project specific Gitlab repositories

All software that is not in the main LHCb repositories is located in:

There the main software projects are:

Project Description Responsible Active
GaudiBasedTestbeamAnalysis Development tools for test beam analysis software Adam Davis Y
SciFiCustomGeo Tools for modified geometries and production of simulation samples Alessio Piucci N
LightYieldMapTools Production of Light Yield Maps from Single Fibre GEANT4 Simulations   Y
SciFiSimG4 Simulation of Scintillating Fibres in GEANT4 Martin Bieker Y
SciFiTestbeamAnalysisAndSimulation Software for the analysis of testbeam data, in particular for pedestal and gain correction, and clusterisation in the test beam setup. The output can be used to compare to simulation.   N
DigitizationHackathon Repository holding instructions, scripts, and custom code for the DigitizationHackathon. Violaine Belle N

Geometry versions

The official Gauss version that is compatible with all v6 geometries is GAUSS_v51r0.

6.5: addel dowels, cables, corrected materials
  • dddb-20201211
  • upgrade/sim-20201218-vc-md100
  • upgrade/sim-20201218-vc-mu100
  • Gauss/v54r5
  • Boole/41r3
6.4: definitive C-frames
  • dddb-20180815
  • upgrade/sim-20180530-vc-md100
  • upgrade/sim-20180530-vc-mu100

v6.3 + updated (doubled) mass C-frame, fix v-layer position
Please contact coordinators if you need unofficial samples...

evt: 13104012 mag = down /eos/lhcb/user/g/gligorov/UpgradeStudies/FTv4Sim/147

evt: 13104012 mag = up /eos/lhcb/user/g/gligorov/UpgradeStudies/FTv4Sim/146

  • dddb-20180815
  • upgrade/sim-20180530-vc-md100
  • upgrade/sim-20180530-vc-mu100

v6.3 + updated (doubled) mass C-frame, fix v-layer position
Please contact coordinators if you need unofficial samples...

evt: 13104012 mag = down /eos/lhcb/user/g/gligorov/UpgradeStudies/FTv4Sim/147

evt: 13104012 mag = up /eos/lhcb/user/g/gligorov/UpgradeStudies/FTv4Sim/146



Geometry version Database tags (or later) Description Samples
  • dddb-20170301
  • sim-20170301-vc-md100
New numbering scheme, backward incompatible Bs → φφ with spillover, nu=7.6
  • dddb-20170724
  • sim-20170301-vc-md100
v6.1 + C-frames, new station positions, removed overlaps Bs → φφ with noise and spillover, nu=7.6
D0→Kπ with noise and spillover, nu=7.6
  • dddb-20171122
  • sim-20171123-vc-md100
v6.2 + module side walls, circular cutout, larger air gap between modules, and larger y-gap between mats Bs → φφ with noise and spillover, nu=7.6
D0→Kπ with noise and spillover, nu=7.6

Decoding/Encoding versions

Decoding version Encoding version LHCb Boole Info Available test samples
v2 v2        
v3 v3        
v4 v5     Starting from v4, clusters only contain relative positive of the channel.
Use bankNumber to get the starting point.
v5     Splits large clusters  
v6 v6        
v7 (being made) v7 (being made)     Adds link switching, remaps SiPMs  

Supporting notes

Student theses (including software) can be found on the main SciFi Twiki page.

Notes in preparation:

Internal notes prepared for the SciFiSoftwareReview on 24 Jan 2018:

Public notes prepared for the TDR :

Other supporting documents:

More related to Electronics:

  • EDMS/1356904: Front-end Data Format of the LHCb Upgrade, Guillaume Vouters et al.
  • EDMS/1904563: SciFi Tracker TELL40 Data Processing, O. Le Dortz et al.
  • EDMS/1898940: SciFi Tracker FE data format, O. Le Dortz et al. (Access request needed!)
  • EDMS/2148855: SciFi Optical Links Cabling Access request needed)

Previous workshops and reviews


Compile Boole with fully checked-out packages

To work with fully checked-out projects (change the project versions accordingly):

LbLogin -c x86_64-slc6-gcc62-opt
export CCACHE_DIR=${PWD}/.ccache
export VERBOSE=""
export PATH=${PATH}:/cvmfs/lhcb.cern.ch/lib/contrib/ninja/1.4.0/x86_64-slc6 
git clone ssh://git@gitlab.cern.ch:7999/lhcb/LHCb.git LHCB/LHCB_v43r1 
cd LHCB/LHCB_v43r1/ 
make install
git clone ssh://git@gitlab.cern.ch:7999/lhcb/Lbcom.git LBCOM/LBCOM_v21r1 
cd LBCOM/LBCOM_v21r1 
make install
git clone ssh://git@gitlab.cern.ch:7999/lhcb/Boole.git BOOLE/BOOLE_v31r3 
cd BOOLE/BOOLE_v31r3 
make install

This installs all software in the master branches. If you want to switch to branch myDevelopmentBranch, you can use the usual git command:

git checkout myDevelopmentBranch

To start a new branch myNewBranch based on the current branch:

git checkout -b myNewBranch

To push this new branch to the remote repository for the first time:

git push -u origin myNewBranch

And just git push the following times. Before making any changes, or create a new branch it is always good to:

git pull

To run the software, make a shell in your favourite project as:

BOOLE/BOOLE_v31r3/build.x86_64-slc6-gcc49-opt/run bash -f

And use gaudirun.py myOptions.py etc. Or run directly:

BOOLE/BOOLE_v31r3/build.x86_64-slc6-gcc49-opt/run gaudirun.py myOptions.py

Check out only a few packages:

Instead of working with fully checked-out projects, you can also check out single packages. This may be useful in case you have changes that are only affecting these packages. For more detailed instructions see: Git4LHCb

lb-dev Boole v31r3
cd ~/cmt/BooleDev_v31r3/
git lb-use Boole
git lb-checkout Boole/dev-scifi-master FT
git lb-use LHCb
git lb-checkout LHCb/dev-scifi-master Event
<do some changes>
git commit --all -m "some description goes here"
# if you'd have changes for the project Boole do
git lb-push Boole <name_of_the_branch>
# if you'd have changes for the project LHCb do
git lb-push LHCb <name_of_the_branch>

Test your commit with nightly tests

lb-dev --nightly lhcb-gaudi-head Brunel/HEAD
cd BrunelDev_HEAD
git lb-use Brunel
git lb-use Rec
git lb-checkout Brunel/master Rec/Brunel
git lb-checkout Rec/dev-beamhole Pr/PrAlgorithms
make test ARGS="-R brunel-upgrade-baseline"

Using a local geometry with the Git-based CondDB

Recently the CondDB repository moved to Git, and the way how to use a not-released geometry changed. In order to create your own geometry, get the geometry from which you want to start, modify the files that you want in a new branch, and tag a new database version. You first have to set and env. variable, get the repository and checkout the geometry that you want to use:

export GITCONDDBPATH=$(pwd)
git clone --recursive ssh://git@gitlab.cern.ch:7999/lhcb-conddb/DDDB.git
git fetch --all --tags
git checkout upgrade/dddb-20170706
git checkout -b <your-branch>
git add <your-files>
git commit -m "<commit-message>"
git tag -a upgrade/<tag-name> -m "<tag-commit-message>"

It's suggested to save the GITCONDDBPATH variable in your default environment setting (e.g. in .bashrc profile file). Now you are ready to use your local geometry, by setting in your script the tag in this way:

LHCbApp().DDDBtag = "<tag-name>"

Once you are happy with the changes, you can push your branch:

git push origin <your-branch>

and apply for a merge request if you wish. Once you have pushed the branch, you can use it on Grid jobs (after 2-3 hours). by setting the tag:

LHCbApp().DDDBtag = "<your-branch>"

In case your geometry is not picked up, you may need to put in your options file:

from Gaudi.Configuration import *
def fix_upgrade_dddb_tag():
    allConfigurables['ToolSvc.GitDDDB'].Commit = '<your-branch>'
    allConfigurables['ToolSvc.GitSIMCOND'].Commit = 'upgrade/sim-20170301-vc-md100'

and you will obtain the new geometry.


Topic attachments
I Attachment History Action Size Date Who Comment
PDFpdf FTOccupancy-Note.pdf r3 r2 r1 manage 402.6 K 2013-09-05 - 15:06 MoritzDemmer  
PNGpng Logo.png r1 manage 330.0 K 2013-12-17 - 14:21 AlbertPuigNavarro  
PNGpng SciFi_Logo.PG.png r1 manage 167.8 K 2013-12-25 - 20:20 PetrGorbounov post-TVR dinner logo
PNGpng SciFi_Logo_HC.png r1 manage 11.3 K 2013-10-23 - 17:45 YasmineAmhis  
PNGpng SciFi_Logo_OG.png r4 r3 r2 r1 manage 38.9 K 2013-10-25 - 16:19 OliverGruenberg  
PNGpng scifi_blake_greek.png r1 manage 53.9 K 2013-12-16 - 11:41 BlakeLeverington logo with greek letters
PNGpng scifi_blake_greek2.png r2 r1 manage 47.1 K 2013-12-16 - 13:52 BlakeLeverington logo with greek letters
PNGpng scifi_logo2_michel.png r1 manage 7.6 K 2014-01-13 - 15:39 MichelDeCian  
PNGpng scifi_logo2a_michel.png r1 manage 9.1 K 2014-01-13 - 15:39 MichelDeCian  
PNGpng scifilogo_blake_medium.png r1 manage 52.1 K 2013-12-16 - 11:27 BlakeLeverington Blake's SciFi logo submission, medium size
Edit | Attach | Watch | Print version | History: r250 < r249 < r248 < r247 < r246 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r250 - 2021-01-20 - LouisHenry
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    LHCb All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback