ACTS Track fitting/finding Tutorial

This tutorial sets up the truth fitting/finding with KF/CKF and looks at the performance plots.
Note: This has to be done based on truth hits and particles produced by fatras simulation.

Setting up ACTS

Please follow the guide here for the installation.
When compiling, the option for building Fatras, Examples and Pythia8 should be turned on:

cmake -DACTS_BUILD_FATRAS=ON -DACTS_BUILD_EXAMPLES=ON -DACTS_BUILD_EXAMPLES_PYTHIA8=ON ..

Setting up Detector and Magnetic field

This should be the same for both simulation and reconstruction

Detector

Currently, reconstruction (including truth fitting/finding) only works for GenericDetector.

Magnetic field

git clone https://gitlab.cern.ch/acts/acts-data.git
export actsdata=$PWD

Then we could set up the B field with

--bf-map ${actsdata}/MagneticField/ATLAS/ATLASBField_xyz.txt

NB: The following job running will be done in the installation directory build/bin where all the executables are located. But you can run those commands below anywhere by using the full path of the executables.

Running Fatras simulation

This will generate truth particles and truth hits. Examples to generate samples to be used for reconstruction later:

./ActsSimFatrasGeneric --bf-map ${actsdata}/MagneticField/ATLAS/ATLASBField_xyz.txt --evg-input-type gun --pg-nparticles 10000 --pg-pt-range 0.1 100 --pg-eta-range -2.5 2.5 -n 1 --output-dir=sim_generic_e1_p10000_pT0.1-100_eta-2.5-2.5 --output-csv=1
./ActsSimFatrasGeneric --bf-map ${actsdata}/MagneticField/ATLAS/ATLASBField_xyz.txt --evg-hard-process Top:qqbar2ttbar=on --evg-pileup 200 --select-pt-gev '0.1:' --select-eta '-2.5:2.5' --fatras-pmin-gev 0. --remove-neutral 1 -n 1 --output-dir=sim_generic_ATLASB_ttbar_e1_pu200_eta2.5 --output-csv=1

Running Truth fitting with KalmanFitter

./ActsRecTruthTracks --bf-map ${actsdata}/MagneticField/ATLAS/ATLASBField_xyz.txt --input-dir=sim_generic_e1_p10000_pT0.1-100_eta-2.5-2.5 --output-dir=rec_kf_generic_e1_p10000_pT0.1-100_eta-2.5-2.5
./ActsRecTruthTracks --bf-map ${actsdata}/MagneticField/ATLAS/ATLASBField_xyz.txt --input-dir=sim_generic_ATLASB_ttbar_e1_pu200_eta2.5 --output-dir=rec_kf_generic_ATLASB_ttbar_e1_pu200_eta2.5

Running Track finding with CKF

Note that we might want to change the source link selection criteria for the CKF. Currenlty, the CKF example has the interface to tune two criteria:

The default selection criteria is --ckf-slselection-chi2max 15 --ckf-slselection-nmax 10

./ActsRecCKFTracks --bf-map ${actsdata}/MagneticField/ATLAS/ATLASBField_xyz.txt --input-dir=sim_generic_ATLASB_ttbar_e1_pu200_eta2.5 --output-dir=rec_ckf_generic_ATLASB_ttbar_e1_pu200_eta2.5
./ActsRecCKFTracks --bf-map ${actsdata}/MagneticField/ATLAS/ATLASBField_xyz.txt --ckf-slselection-chi2max 100 --ckf-slselection-nmax 1 --input-dir=sim_generic_ATLASB_ttbar_e1_pu200_eta2.5 --output-dir=rec_ckf_generic_ATLASB_ttbar_e1_pu200_eta2.5_nmax1 

Looking at performance plots

root -l rec_kf_generic_ATLASB_ttbar_e1_pu200_eta2.5/performance_track_fitter.root

To look at the perigee parameters resolution:

root -l '../../Examples/Scripts/perigeeParamResolution.C("rec_kf_generic_ATLASB_ttbar_e1_pu200_eta2.5/performance_track_fitter.root")'
root -l rec_ckf_generic_ATLASB_ttbar_e1_pu200_eta2.5/performance_ckf.root