Master by Research (MRes) project of Bogdan Mishchenko :"Simulation, reconstruction, Physics sensitivity studies for the SiD(Sillicon Detector) "
Project Aim
The main aim of the project is the Physics sensitivity studies(Higgs physics, top quark
Physics, beyond standart model physics) at future ILC(International Linear Collider). The
project focused on simulation, reconstruction, physics analysis of of the results Tracking system from
SiD(Sillicon Detector).
Below you can find link to the brief report on the progress:
SiD detector model
SiD detector mentioned above is the one of two detector concepts proposed for ILC. Below you can see layout of the detector. My thesis is focused mostly on the Tracker subsystem. Please refer to the report that will be attached later on for more details on it.
This is angle coverage for
SiD Tracker system. For low angles from beamline(<40^{0}) acceptance will be mostly by endcaps(inner outter vertex disks and tracker disks), while for angles greater then 40^{0} will be mostly Barrel(Vertex and Tracker).
Generation/simulation chain
How to obtain code for simulation and compile it
git clone https://github.com/iLCSoft/lcgeo.git
cd lcgeo/
mkdir build
cd build/
source /cvmfs/clicdp.cern.ch/iLCSoft/builds/2016-12-15/x86_64-slc6-gcc62-opt/init_ilcsoft.sh
cmake -C /cvmfs/clicdp.cern.ch/iLCSoft/builds/2016-12-15/x86_64-slc6-gcc62-opt/ILCSoft.cmake -DBoost_NO_BOOST_CMAKE=ON ..
make install
Prior simulation of detector response of the
SiD, we need to generate particles. In the simple case it can be running script that specifies PDG number of particle, 4 vector of particle and other usefull parameters.
How to generate file with blank of particles
Assuming that you have installed lcgeo(linear collider geometry package). If not, follow instruction on
https://twiki.ppe.gla.ac.uk/bin/view/LinearCollider/GlaSiDGettingStarted . On the fresh login to terminal execute :
source /cvmfs/sft.cern.ch/lcg/releases/gcc/4.8.4/x86_64-slc6/setup.sh
source /cvmfs/ilc.desy.de/sw/x86_64_gcc48_sl6/v01-17-10/init_ilcsoft.sh
cd lcgeo/
python example/lcio_particle_gun.py (where you specify PDG and incident angle \theta and number of generated particles and other parameters)
Do the following command to have a look inside the file:
anajob mcparticles.slcio (prints MCParticle collection for each event)
or
dumpevent mcparticles.slcio (prints details of MCParticle collection for each event)
Run the simulation:bogdanmishchenko
ddsim --compactFile=SiD/compact/SiD_o1_v01/SiD_o1_v03.xml --runType=batch --inputFile mcparticles.slcio -N=10 --outputFile=testSiD_o1_v03.slcio
anajob testSiD_o1_v03.slcio (prints MCParticle collection and hit collections for different subdetector parts (SiTrackerBarrelHits of SimTrackerHit type) and other collections )
Digitization/reconstruction chain
Aim of the MC(Monte Carlo) Truth Tracking is to get make sure that we can get sensible results from analysis of the data from the simulation/reconstruction chain.
Definitions
Description of the reconstruction code, How to run it.
Reconstruction code for
SiD was adopted from CLIC (Clicperformance package), which you can find here :
https://svnsrv.desy.de/viewvc/marlinreco/ClicPerformance/trunk/Tracking/
Some macros and scripts have been used from ILD performance package, which you can find here:
https://svnsrv.desy.de/viewvc/marlinreco/ILDPerformance/trunk/tracking/
It has following modifications:
For layer residuals code we are using hard coded
SiDecoderString: "subdet:6,side:3,layer:4,module:12,sensor:1" for decoding. Additionally, We do not do refitting and extrapolating of tracks, what have been implemented in the CLIC code.
Assuming that you are on the fresh login in terminal:
source /cvmfs/sft.cern.ch/lcg/releases/gcc/4.8.4/x86_64-slc6/setup.sh
source /cvmfs/ilc.desy.de/sw/x86_64_gcc48_sl6/v01-17-10/init_ilcsoft.sh
cd lcgeo/
wget https://twiki.ppe.gla.ac.uk/pub/LinearCollider/SiDTrackingEfficiencies/Tracking_2_12_16.tar.gz (To get the reconstruction code)
tar xvzf Tracking_2_12_16.tar.gz Tracking/ (To unpack archive)
cd Tracking/
find(to list all files in the directory)
./src(directory with Marlin processor source codes)
./src/Global_residuals.cc (processor that output residuals, pulls for hits)
./src/HitResiduals.cc (processor that output layer residuals )
./src/ResidualsCalculator.cc( processor that calculates trackreconstruction efficiencies versus, pt(transverse momentum, theta, eta(pseudorapidity)
./include ( directory that contains header files)
./include/Global_residuals.h
./include/HitResiduals.h
./include/ResidualsCalculator.h
./include/LinkDef.h
./include/fpcompare.h
./CMakeLists.txt ( CMake configuration file )
./SiDReconstruction_161910_new_bogdan.xml (Marlin steering file)
Then:
mkdir build lib ( make directories)
cd build/
cmake -DCMAKE_CXX_COMPILER=`which g++` -DCMAKE_C_COMPILER=`which gcc` \
-DILCUTIL_DIR=/cvmfs/ilc.desy.de/sw/x86_64_gcc48_sl6/v01-17-10/ilcutil/v01-03/ -C $ILCSOFT/ILCSoft.cmake ..
make
make install
After successful compilation you will get something like this:
[100%] Built target TrackAna
Install the project...
-- Install configuration: "RelWithDebInfo"
-- Installing: /afs/phas.gla.ac.uk/user/b/bogdanm/public_ppe/Tracking/lib/libTrackAna.so.1.0.0
-- Installing: /afs/phas.gla.ac.uk/user/b/bogdanm/public_ppe/Tracking/lib/libTrackAna.so.1.0
-- Installing: /afs/phas.gla.ac.uk/user/b/bogdanm/public_ppe/Tracking/lib/libTrackAna.so
-- Set runtime path of "/afs/phas.gla.ac.uk/user/b/bogdanm/public_ppe/Tracking/lib/libTrackAna.so.1.0.0" to "/afs/phas.gla.ac.uk/user/b/bogdanm/public_ppe/Tracking/lib:/cvmfs/ilc.desy.de/sw/x86_64_gcc48_sl6/v01-17-10/root/6.06.02/lib:/cvmfs/ilc.desy.de/sw/x86_64_gcc48_sl6/v01-17-10/Marlin/v01-09/lib:/cvmfs/ilc.desy.de/sw/x86_64_gcc48_sl6/v01-17-10/lcio/v02-07-02/lib:/cvmfs/ilc.desy.de/sw/x86_64_gcc48_sl6/v01-17-10/gear/v01-06/lib:/cvmfs/ilc.desy.de/sw/x86_64_gcc48_sl6/v01-17-10/CLHEP/2.1.4.1/lib:/cvmfs/ilc.desy.de/sw/x86_64_gcc48_sl6/ilcutil/v01-03/lib:/cvmfs/ilc.desy.de/sw/x86_64_gcc48_sl6/v01-17-10/MarlinTrk/v02-02/lib:/cvmfs/ilc.desy.de/sw/x86_64_gcc48_sl6/v01-17-10/RAIDA/v01-07/lib:/cvmfs/ilc.desy.de/sw/x86_64_gcc48_sl6/v01-17-10/DD4hep/v00-16/lib:/cvmfs/ilc.desy.de/sw/x86_64_gcc48_sl6/v01-17-10/MarlinUtil/v01-12/lib:/cvmfs/ilc.desy.de/sw/x86_64_gcc48_sl6/v01-17-10/CED/v01-09-01/lib:/cvmfs/ilc.desy.de/sw/x86_64_gcc48_sl6/gsl/2.1/lib"
cd ..
export MARLIN_DLL=$MARLIN_DLL:$PWD/lib/libTrackAna.so (to link Marlin with compiled object files)
Marlin -c SiDReconstruction_021216_new_bogdan.xml(check given steering file for consistency)
Marlin SiDReconstruction_021216_new_bogdan.xml(with specifying slcio file (testSiD_o1_v03_1000_muons_Angle_40_Momentum_10.slcio))
ls -ltr
You will get such files:
-rw-r--r-- 1 bogdanm ilc 3146400 Dec 2 13:32 SiD_Tracks_SiD_o1_v03_100_muons_Angle_40_Momentum_10.slcio (slcio file with tracking information (you can use it afterwards for visualization)
-rw-r--r-- 1 bogdanm ilc 11734 Dec 2 13:32 hit_residuals_SiD_o1_v03_100_muons_Angle_40_Momentum_10.root (root file with residuals per later)
-rw-r--r-- 1 bogdanm ilc 131753 Dec 2 13:32 global_residuals_SiD_o1_v03_100_muons_Angle_40_Momentum_10.root(root file with pulls, residuals of track parameters)
-rw-r--r-- 1 bogdanm ilc 16593 Dec 2 13:32 digi_processors_SiD_o1_v03_100_muons_Angle_40_Momentum_10.root(root file with efficiencies(versus angle or momentum)
How to produce Hit residuals
How to produce Hit pull distributions
If you will specify in the in the pulls.cxx script root file : (TFile *residuals = new TFile("analysis_100_40_10_mu.root")) and then:
root pulls.cxx
Below you can find Pulls distribution track parameters, which indicate good performance of the MC Truth Tracking(Gaussian distributions with mean close to 0 and sigma close to 1(small box) ):
How to produce Tracking efficiencies
Efficiency of track reconstruction depends on the theta angle(angle between projection of momentum on z axis and momentum) and transverse momentum. You can see below dependence on theta for
SiD_o1_v03 version of detector model. As you have noticed efficiency of reconstruction falls significantly after 40 due, to the problems with Forward Tracking Disks (after 120^{0} ) and Endcaps(both Tracker and Vertex) (< 40^{0} ).
This is tracking efficiency for momentum range [1,500]GeV
- Tracking efficiency for SiD_o2_v01:
How to produce track parameter resolutions (d_{0}, z_{0}, pt)
D0_resolution can be produced by running following script D0_resolution_angle.cxx:
Z0 resolution obtained using Z0resolution.cxx script
Example how to plot resolutions can be found in momentumres_angle.cxx file, which is attached to the twiki page.
On the figure below you can see Transverse momentum resolution obtained in the new framework and comparison with Detailed Baseline Design report from 2012(following figure)
* This is Pt resolution obtained with
SiD_o1_v03 model using momentumres_angle.cxx script:
- This is Pt resolution obtained with SiD_o2_v01 module:
Pattern recognition
Pattern recognition is a field of applied mathematics, which aim is the classification of objects. For instance, position measurements along particle trajectories can be classified as different physical objects. Please refer to the report that will be attached later on for more details on it.
How to run Conformal tracking code
Tracker optimization studies
The aim of the optimization studies is to optimize particularly, Tracking system for the best price/performance ratio. For example, We can look how each layer of tracker perform or how the tracking system perform with pixels versus performance with strips. For more details please refer to the report that will be attached latter on for more details on it.
Physics sensitivity studies
Physics studies for
SiD can be following: precise Higgs physics measurements or searches for new physics like composite Higgs models, top quarks physics.Please refer to the report that will be attached later on for more details on it.
Marlin tips
For more options of running Marlin:
Marlin -?
Particularly useful:
Marlin -c SiDReconstruction_v03_160711.xml (check given steering file for consistency)