Luca's Bachelor project

Overview

  • Project title: Investigating the calibration method of tracking detectors based on Millepede II algorithms and its validation with simulated data
  • Estimated duration: 4-5 months (20.10.2025 ~ 03.2026)

Project description

The calibration of the tracking detectors (e.g. NeuLAND) commonly utilizes hits from cosmic muons, which travel through the detector in a straight line at the speed of light. If the muon track is known, the calibration parameters, which are used to calculate time and position values of hits, can be obtained thorough a parameter optimization such that the resulting hits are all aligned in the straight line. However, muons traveling through the detector are unknown in terms of their orientations and their locations. Thus, the optimization not only involves with the calibration parameters from the detector, but the geometrical parameters of each muon track as well. This makes the optimization process too expensive to compute when a large number of muon tracks are used during the calibration. Millepede-II algorithm solves this issue by separating the total parameters into global parameters (relating to the detector) and local parameters (relating to individual muon tracks). For each iteration during the optimization, only the global parameters are updated and the major computation complexity is only depending on the number of global parameters.

Important

Even though the theory of the Millepede-II algorithm is not used to generate the final results of the project, it's still recommended to understand how the algorithm works in general.

The main implementation of the Millepede-II algorithm can be found in this program, which has two major components: mille and pede. The mille component generates the binary data file, containing all required input data for pede component, such as values of the first order derivatives, measurement and errors. Then, the pede component optimizes the given parameters based on the input data and user configurations.

Project goal

  • Generate simulated data from a conceptual detector based on predefined parameters with linear calibration relations.
  • Converting the simulated output data to the specific binary data using the mille component.
  • Launch the pede program to calculate the parameter values and compare them with the predefined values
  • Repeat the same process but with a non-linear calibration relation.
  • Adjusting the user configurations, such as solution method, to improve the final results.

Project agenda

Important

  • Weekdays with the content as buffer can be used flexibly.
  • The following agenda is just an initial plan and doesn't need to be followed strictly.
  • I will be away from 01.02.2026 till 09.03.2026. So it's better to start to write the thesis before this period.

1st week (20.10.25 ~ 24.10.25)

The first week are focused on fundamentals, such as tools, workflow and programming.

Weekday Content Status PR
Mon
  • Introduction to the group
  • Basic trainings on our server fecilities
  • Basic trainings on git/gitlab
n/a
Tue
  • What is git branches
  • Branch management, such as git fetch, git rebase
  • How to make a pull request (PR)
n/a
Wed buffer
n/a
Thu
  • Introductions on software tools
n/a
Fri buffer
n/a

2nd week (27.10.25 ~ 31.10.25)

The main focus of the second week is programming (C++ and python) and ROOT library.

Weekday Content Status PR
Mon
  • C++ fundamentals (OOP, Memory)
  • Project structure
  • Run a "hello world"
n/a
Tue buffer
n/a
Wed
  • ROOT fundamentals
  • ROOT data IO
  • ROOT classes
n/a
Thu buffer
n/a
Fri buffer
n/a

3rd week (27.10.25 ~ 31.10.25)

The main focus of the week is trying to create simulated output data. (complete first goal)

Weekday Content Status PR
Mon Create predefined parameters and its visualization with Python
n/a
Tue buffer
n/a
Wed Creating a simulated data from a conceptual tracking detector
n/a
Thu buffer
n/a
Fri Understanding Millepede theory
n/a

4th week (03.11.25 ~ 07.11.25)

The main focus of the week is understanding millepede theory

Weekday Content Status PR
Mon Understanding Millepede theory
n/a
Tue buffer
n/a
Wed buffer
n/a
Thu buffer
n/a
Fri buffer
n/a

5th week (10.11.25 ~ 14.11.25)

The main focus of the week is using pede program to calculate parameters

Weekday Content Status PR
Mon Generate binary file with mille
n/a
Tue buffer
n/a
Wed Launch pede program
n/a
Thu buffer
n/a
Fri Get the parameter values from the pede output
n/a

6th week (17.11.25 ~ 21.11.25)

The main focus of the week is using pede program to calculate parameters (complete third goal)

Weekday Content Status PR
Mon Generate binary file with mille
n/a
Tue buffer
n/a
Wed Launch pede program
n/a
Thu buffer
n/a
Fri Get the parameter values from the pede output
n/a

7th week (24.11.25 ~ 28.11.25)

The main focus of the week is the code review and improving programming skills

Weekday Content Status PR
Mon Code review
n/a
Tue buffer
n/a
Wed buffer
n/a
Thu buffer
n/a
Fri buffer
n/a

8th week (01.12.25 ~ 05.12.25)

The main focus of the week is the code review and improving programming skills

Weekday Content Status PR
Mon Code review
n/a
Tue buffer
n/a
Wed Advanced C++
n/a
Thu buffer
n/a
Fri buffer
n/a

9th week (08.12.25 ~ 12.12.25)

Break

Weekday Content Status PR
Mon buffer
n/a
Tue buffer
n/a
Wed buffer
n/a
Thu buffer
n/a
Fri buffer
n/a

10th week (15.12.25 ~ 19.12.25)

The main focus of the week is redoing calibration again but with non-linear calibration relation

Weekday Content Status PR
Mon buffer
n/a
Tue buffer
n/a
Wed buffer
n/a
Thu buffer
n/a
Fri buffer
n/a

11th-13th week (22.12.25 ~ 09.01.26)

Chrismas break

14th week (12.01.26 ~ 16.01.25)

The main focus of the week is investigating user configurations from pede program

Weekday Content Status PR
Mon buffer
n/a
Tue buffer
n/a
Wed buffer
n/a
Thu buffer
n/a
Fri buffer
n/a
Edited by Yanzhao Wang