Juli 4, 2017
Mitglied der Helmholtz-Gemeinschaft
Tracking Motivation Why tracking? Distinguish charged from neutral - - PDF document
Mitglied der Helmholtz-Gemeinschaft Juli 4, 2017 Tracking Motivation Why tracking? Distinguish charged from neutral particles Determine the charge of a particle Determine the absolute momentum Determine the direction of
Juli 4, 2017
Mitglied der Helmholtz-Gemeinschaft
Juli 4, 2017 Folie 2 Tobias Stockmanns
Juli 4, 2017 Folie 3 Tobias Stockmanns
Juli 4, 2017 Folie 4 Tobias Stockmanns
Solenoid magnet to measure pt Helix approximation Dipol magnet to measure pl for forward tracks Parabola approximation
Juli 4, 2017 Folie 5 Tobias Stockmanns
Juli 4, 2017 Folie 6 Tobias Stockmanns
Micro Vertex Detector Straw Tube Tracker Forward Tracking Stations Luminosity Detector GEM Detector
Juli 4, 2017 Folie 7 Tobias Stockmanns
Juli 4, 2017 Folie 8 Tobias Stockmanns
Juli 4, 2017 Folie 9 Tobias Stockmanns
1. Group the hits which belong to the same track 2. Fast evaluation of the track parameters 3. Precise fitting of the track parameters 4. Propagate track parameters to the point where they are needed pattern recognition / track finding pre-fit Kalman fit propagation / extrapolation
Juli 4, 2017 Folie 10 Tobias Stockmanns
Juli 4, 2017 Folie 11 Tobias Stockmanns
FairLink(detId, hitId) plus a sorting parameter rho.
hit along the track
Juli 4, 2017 Folie 12 Tobias Stockmanns
Juli 4, 2017 Folie 13 Tobias Stockmanns
and last hit
Juli 4, 2017 Folie 14 Tobias Stockmanns
We have two objects to describe a track:
Juli 4, 2017 Folie 15 Tobias Stockmanns
We have two objects to describe a track:
different particle hypotheses
Juli 4, 2017 Folie 16 Tobias Stockmanns
Juli 4, 2017 Folie 17 Tobias Stockmanns
parameters
Juli 4, 2017 Folie 18 Tobias Stockmanns
available
and to combine the data)
detector?
Juli 4, 2017 Folie 19 Tobias Stockmanns
Additional considerations:
Juli 4, 2017 Folie 20 Tobias Stockmanns
20
Considerations
§ Finite number of planes § Often only one coordinate per plane § Interactions with material (multiple scattering, energy loss, Bremsstrahlung for e-) § Detector imperfections (inefficiency, limited spatial resolution, alignment) § Extra hits from noise, pileup, low momentum particles…
Juli 4, 2017 Folie 21 Tobias Stockmanns
Conflicting Demands
§ High efficiency find all true tracks relevant for the physics § High purity minimize incorrect assign- ment of hits to a track, that reduces the resolution § Low ghost rate do not find fake tracks § Speed
(limited time (latency) and resources).
Juli 4, 2017 Folie 22 Tobias Stockmanns
22
Tracking in space (generally needs many layers)
§ Combine layers to get a 3D space point, § do 3D tracking with these points
Tracking in projections (generally needs more CPU)
§ find 2D track candidates, then § combine projections (here each line in 2D is a plane in 3D)
Juli 4, 2017 Folie 23 Tobias Stockmanns
Follow track through layers
§ Define initial track segment (track seed) § Use track model to extrapolate to next detector layer § Define search window around expected position, depends on resolution and amount of material § If hit found, add it to the track candidate and iterate to next layer
missing layers
paths concurrently, decide later what is correct
Kalman-filter, will be discussed later
Juli 4, 2017 Folie 24 Tobias Stockmanns
For circular tracks (homogeneous B-field (usually solenoid)) Conformal mapping (transformation: circles to lines) Compute angle Φ Make a histogram of Φ Find peaks in Φ histogram Transforms a 2D problem to 1D If tracks don’t come from (x,y)=(0,0)
§ Line is offset, and washed out peak in 1D histogram § Solution: x’=x-x0 and y’=y-y0 where (x0,y0) is e.g. the innermost point
Juli 4, 2017 Folie 25 Tobias Stockmanns
Coordinate space Transformed space
As you see, the histogram binning is not arbitrary, it is related to the resolution. Too fine: then the hits don’t make a peak Too coarse: then the peaks overlap, and the resolution gets worse.
Juli 4, 2017 Folie 26 Tobias Stockmanns
Juli 4, 2017 Folie 27 Tobias Stockmanns
Juli 4, 2017 Folie 28 Tobias Stockmanns
not homogeneous enough for helix assumption
PndSttMvdTrackFinder / PndSttMvdGemTrackFinder
Juli 4, 2017 Folie 29 Tobias Stockmanns
PndBarrelTrackFinder
Juli 4, 2017 Folie 30 Tobias Stockmanns
Juli 4, 2017 Folie 31 Tobias Stockmanns
Riemann surface:
x2 + y2)
plane parameters which can be bijectively mapped to the radius and the origin of the circle
versus their z-position which should be a straight line
scattering
then it is slower than a standard Kalman fit
without error treatment
Juli 4, 2017 Folie 32 Tobias Stockmanns
Points to be fitted Add z-dimension Map onto paraboloid
Juli 4, 2017 Folie 33 Tobias Stockmanns
Calculation of plane through 3D points
simple eigenvalue determination
Juli 4, 2017 Folie 34 Tobias Stockmanns
Dimension
Juli 4, 2017 Folie 35 Tobias Stockmanns
Juli 4, 2017 Folie 36 Tobias Stockmanns
estimate a possible position on a track
segments into track candidates
Juli 4, 2017 Folie 37 Tobias Stockmanns
Juli 4, 2017 Folie 38 Tobias Stockmanns
à TrackletGenerator à HitCorrector
Juli 4, 2017 Folie 39 Tobias Stockmanns
Juli 4, 2017 Folie 40 Tobias Stockmanns
Juli 4, 2017 Folie 41 Tobias Stockmanns
1 2 > 2 Number of Neighbours: unambiguous ambiguous
Juli 4, 2017 Folie 42 Tobias Stockmanns
Cell: Straw with hit and one or two neighbours Rule: Compare your status with the status of your neighbours and take the smallest
Juli 4, 2017 Folie 43 Tobias Stockmanns
Cell: Straw with hit and one or two neighbours Rule: Compare your status with the status of your neighbours and take the smallest
Juli 4, 2017 Folie 44 Tobias Stockmanns
Cell: Straw with hit and one or two neighbours Rule: Compare your status with the status of your neighbours and take the smallest
Juli 4, 2017 Folie 45 Tobias Stockmanns
Cell: Straw with hit and one or two neighbours Rule: Compare your status with the status of your neighbours and take the smallest
Juli 4, 2017 Folie 46 Tobias Stockmanns
Cell: Straw with hit and more than two neighbours Rule: Copy the status of all your neighbours into your status
Juli 4, 2017 Folie 47 Tobias Stockmanns
15 7 1 10
Cell: Straw with hit and more than two neighbours Rule: Copy the status of all your neighbours into your status
Juli 4, 2017 Folie 48 Tobias Stockmanns
1/10 7/15 7/15 1/10 7/15 1/10
Cell: Straw with hit and more than two neighbours Rule: Copy the status of all your neighbours into your status
Juli 4, 2017 Folie 49 Tobias Stockmanns
1/10 7/15 1/10 7/15 1/10 7/15 1/10 7/15 1/10 7/15
Cell: Straw with hit and more than two neighbours Rule: Copy the status of all your neighbours into your status
Juli 4, 2017 Folie 50 Tobias Stockmanns
Fit Plane Normal vector à Circle parameters
Juli 4, 2017 Folie 51 Tobias Stockmanns
1/10 7/15 1/10 7/15 1/10 7/15 1/10 7/15 1/10 7/15
Juli 4, 2017 Folie 52 Tobias Stockmanns
Juli 4, 2017 Folie 53 Tobias Stockmanns
(0,0) STT Isochrone
Juli 4, 2017 Folie 54 Tobias Stockmanns
1. Track (circle) tangent to isochrone
Juli 4, 2017 Folie 55 Tobias Stockmanns
1. Track (circle) tangent to isochrone 2. Goes through (0,0)
Juli 4, 2017 Folie 56 Tobias Stockmanns
1. Track (circle) tangent to isochrone 2. Goes through (0,0)
Juli 4, 2017 Folie 57 Tobias Stockmanns
Juli 4, 2017 Folie 58 Tobias Stockmanns
Juli 4, 2017 Folie 59 Tobias Stockmanns
Juli 4, 2017 Folie 60 Tobias Stockmanns
Juli 4, 2017 Folie 61 Tobias Stockmanns
Juli 4, 2017 Folie 62 Tobias Stockmanns
circle centers
Juli 4, 2017 Folie 63 Tobias Stockmanns
Juli 4, 2017 Folie 64 Tobias Stockmanns
Juli 4, 2017 Folie 65 Tobias Stockmanns
Juli 4, 2017 Folie 66 Tobias Stockmanns
Juli 4, 2017 Folie 67 Tobias Stockmanns
Juli 4, 2017 Folie 68 Tobias Stockmanns
5x5 covariance vector)
approximation to track propagation
detector surface normal to z-axis surface=beam pipe (collider) ✧ DELPHI barrel: x = (Φ, z, θ, β = φ − Φ, 1/R) ✧ DELPHI forward: x = (x, y, θ, φ, 1/R) ✧ CMS global: position, momentum, charge ✧ CMS local: x = (q/p, dx/dz, dy/dz, x, y)
Juli 4, 2017 Folie 69 Tobias Stockmanns
is a six-fold entity of parameters: x, y, z, px, py, pz (+ q)
intersection of the physical path of a particle with the detector planes à among six parameters one is fixed by the measurement plane
FairTrackPar/FairTrackParP/FairTrackParH
Juli 4, 2017 Folie 70 Tobias Stockmanns
Juli 4, 2017 Folie 71 Tobias Stockmanns
§ No magnetic field, no material: straight line § Homogeneous magnetic field: helix (2D circle) § Analytic calculation only for simple cases (like above) § Inhomogeneous B-field, material (energy straggling, small angle scattering): iterative numerical extrapolation of track segments
Juli 4, 2017 Folie 72 Tobias Stockmanns
dependence of the measured quantities on the state vector at the detector surface:
measured coordinates, but may contain also other quantities, e.g. measurements of direction or even momentum.
not always true!
72
Juli 4, 2017 Folie 73 Tobias Stockmanns
measurement layers (or even material layers).
§ Prediction: extrapolate the state to the next layer, add up multiple scattering, subtract energy loss § Update: combine the predicted state with the current measurement
small.
73
Juli 4, 2017 Folie 74 Tobias Stockmanns
74
Juli 4, 2017 Folie 75 Tobias Stockmanns
75
Juli 4, 2017 Folie 76 Tobias Stockmanns
The last estimate xn of the filter contains the full information. The full information can be propagated back to all previous estimates. This can be done by another iterative procedure, the smoother. The smoother runs in the opposite direction to the filter.
76
Juli 4, 2017 Folie 77 Tobias Stockmanns
predicted states one filter and the updated states of the
therefore the same as the usual Least-Squares estimate x
77
Juli 4, 2017 Folie 78 Tobias Stockmanns
The Kalman filter can therefore be used for track finding. Generate a track seed. Iterate the following sequence:
§ Extrapolate and look for compatible measurements. § If there is none, go on. § If there is one, take the most compatible one and make an update. § If no compatible measurements can be found in several layers, drop the track candidate.
78
Juli 4, 2017 Folie 79 Tobias Stockmanns
Genfit
package written by TU Munich
Genfit 1 and Genfit 2
track propagator
track propagator à change to recent Genfit 2 planned for next release
Juli 4, 2017 Folie 80 Tobias Stockmanns
Offers different track fitters:
Juli 4, 2017 Folie 81 Tobias Stockmanns
PndRecoKalmanTask* recoKalman = new PndRecoKalmanTask(); recoKalman->SetTrackInBranchName("SttMvdGemTrack"); recoKalman->SetTrackOutBranchName("SttMvdGemGenTrack"); recoKalman->SetBusyCut(50); // CHECK to be tuned //recoKalman->SetIdealHyp(kTRUE); //recoKalman->SetNumIterations(3); recoKalman->SetTrackRep(0); // 0 Geane (default), 1 RK //recoKalman->SetPropagateToIP(kFALSE); fRun->AddTask(recoKalman);
Juli 4, 2017 Folie 82 Tobias Stockmanns
PndRecoKalmanTask2* recoKalman = new PndRecoKalmanTask2(); recoKalman->SetTrackInBranchName("SttMvdGemTrack"); recoKalman->SetTrackOutBranchName("SttMvdGemGenTrack"); recoKalman->SetBusyCut(50); // CHECK to be tuned //recoKalman->SetIdealHyp(kTRUE); //recoKalman->SetNumIterations(3); //recoKalman->SetTrackRep(0); // 0 Geane (default), 1 RK //recoKalman->SetPropagateToIP(kFALSE); fRun->AddTask(recoKalman);
Juli 4, 2017 Folie 83 Tobias Stockmanns
Juli 4, 2017 Folie 84 Tobias Stockmanns
covariance matrices
Juli 4, 2017 Folie 85 Tobias Stockmanns
In geane you will find:
the physics effects to take into account
will not work!
GEANE
SD, SP (C++ translation of FORTRAN methods)
Juli 4, 2017 Folie 86 Tobias Stockmanns
Bool_t PropagateToPlane(TVector3& v0, TVector3& v1, TVector3& v2); Bool_t PropagateToVolume(Tstring VolName, Int_t CopyNo,Int_t option); Bool_t PropagateToLength(Float_t length); Bool_t PropagateToPCA(Int_t pca, Int_t dir); Bool_t PropagateFromPlane(TVector3& v1, TVector3& v2); Bool_t Propagate(FairTrackParH* TStart, FairTrackParH* Tend, Int_t PDG) Bool_t Propagate(FairTrackParP* TStart, FairTrackParP* TEnd, Int_t PDG) Bool_t setBackProp()
Juli 4, 2017 Folie 87 Tobias Stockmanns
Bool_t PropagateToPlane(TVector3& v0, TVector3& v1, TVector3& v2); Bool_t PropagateToVolume(Tstring VolName, Int_t CopyNo,Int_t option); Bool_t PropagateToLength(Float_t length); Bool_t PropagateToPCA(Int_t pca, Int_t dir); Bool_t PropagateFromPlane(TVector3& v1, TVector3& v2); Bool_t Propagate(FairTrackParH* TStart, FairTrackParH* Tend, Int_t PDG) Bool_t Propagate(FairTrackParP* TStart, FairTrackParP* TEnd, Int_t PDG) Bool_t setBackProp()
Juli 4, 2017 Folie 88 Tobias Stockmanns
Juli 4, 2017 Folie 89 Tobias Stockmanns
Juli 4, 2017 Folie 90 Tobias Stockmanns
algorithms
which produces PndTrack and PndTrackCand
algorithms
Juli 4, 2017 Folie 91 Tobias Stockmanns
finder
Juli 4, 2017 Folie 92 Tobias Stockmanns
belong to one MC track
Juli 4, 2017 Folie 93 Tobias Stockmanns
PndTrackFunctor.h
Juli 4, 2017 Folie 94 Tobias Stockmanns
Juli 4, 2017 Folie 95 Tobias Stockmanns
Juli 4, 2017 Folie 96 Tobias Stockmanns
TString branch, Int_t nEvents=0):
code (has to be of type PndTrack)
\"SttMvdGemTrack\")"
Juli 4, 2017 Folie 97 Tobias Stockmanns
Juli 4, 2017 Folie 98 Tobias Stockmanns
Juli 4, 2017 Folie 99 Tobias Stockmanns
Juli 4, 2017 Folie 100 Tobias Stockmanns
Juli 4, 2017 Folie 101 Tobias Stockmanns
Juli 4, 2017 Folie 102 Tobias Stockmanns