Title: Vertex reconstruction framework and its implementation for CMS
1Vertex reconstruction frameworkand its
implementation for CMS
R.Frühwirth, W.Waltenberger, HEPHY-Vienna T.Speer,
K.Prokofiev, Zürich University P.Vanlaer,
IIHE-Brussels University CHEP 2003, La Jolla, San
Diego, March 24-28
- Outline
- Introduction
- Vertex fitting
- Vertex finding
2Introduction
- Vertex reconstruction can be decomposed in
- Vertex finding
- given a set of tracks, separate it into clusters
of compatible tracks, i.e. vertex candidates - inclusively not related to a particular decay
channel - search for secondary vertices in a jet
- exclusively find best match with a decay
channel - general solution requires generation of
combinations, selection of topologies and
kinematic constraints - work in progress, not described here
- Vertex fitting
- find the 3D point most compatible with a set of
tracks - constrain track parameters with vertex
3Motivation for a framework
- Problem is complex
- cant guess what the optimal algorithms will be
- there is probably not 1 optimal algorithm but
several, each optimized for a specific task - Math is complex but localized in a few places
- ease development by providing mathematical
toolkit - Performance evaluation is not easy
- comparison with Monte-Carlo truth not trivial
- vertex are high level reconstructed objects,
i.e. made out of reconstructed tracks - disentangle effects from track and vertex
reconstructions - Problem is very generic once tracks are given
- a good case for code re-use
- we need a flexible framework for the development
and evaluation of algorithms
4Vertex fitting
5Problem definition
1 RecVertex 3D point most compatible with input
tracks
Vertex fitting
Bunch of tracks
- Principle minimization problem
- Find x which minimizes a function Fx f(pi),
- pi parameters of track i
- Example
- f(pi) xi
- p.c.a. to vertex
- F ?i1N (x-xi)T Ci-1 (x-xi)
- usual total ?2
- Algorithms may differ by
- choice of track parametrization pi (and function
f(pi)) - form of function F to minimize
6Track parametrizations
- All parametrizations needed are supported
- provided by a concrete class
- LinearizedTrack
- computed on demand
- by helper classes
- cached for performance
- conversions from 1 parametrization into another
also supported - 2 parametrizations used in ORCA
- (x, y, z) at p.c.a. to vertex (previous picture)
- V.Karimäki, CMS Note 1997/051
- 5 parameters at perigee
- (q/pT, ?, ?p, signed d0, zp)
- P.Billoir et al., NIM A311(1992) 139
- R.Frühwirth et al., Computer Physics Comm. 96
(1991) 189
7Linearization
- LinearizedTrack why this name?
- f(pi) must be linearized in vicinity of true
vertex - 2 linearizations used in ORCA
- straight line track approximation, constant
track error matrix - used with p.c.a. parametrization
- helix track approximation, linear error
propagation - used with perigee parametrization
- Jacobians for error propagation also provided by
LinearizedTrack - helix model formally much more precise
- both models valid in our pT range (gt 0.7 GeV/c)
- requires first guess of vertex position
linearization point - abstract LinearizationPointFinder class
- 3 implementations in ORCA (1 non-robust, 2
robust) - based on crossing points of high pT track pairs
8Iterative vertex fitting
- Iterations arise naturally
- 1) when linearization point too far from fitted
vertex - 2) when function F has no explicit minimum
- To solve case 2), tracks should be allowed to
contribute to vertex fit with weights ? 1 - see robust algorithms in Wolfgang Waltenbergers
talk - weight function of distance between track and
current vertex - evolves during iteration
- the same LinearizedTrack can contribute with ?
weights to different vertices - ? concrete VertexTrack class knows its
LinearizedTrack, current vertex and weight - Memory management of LinearizedTrack and
VertexTrack by reference-counting mechanism
(ref.-counting pointers)
9Kalman fitting formalism
- Error matrices of track parameters pi are
uncorrelated - VertexTracks can be added 1 after another to
vertex - update of vertex, in Kalman language
- abstract VertexUpdator
- 1 implementation per track parametrization
- VertexUpdator uses VertexTrackCompatibilityEstima
tor to increment vertex fit ?2 - also, 1 implementation per parametrization
- can be used during vertex finding to test
compatibility - One more component
- VertexSmoother
- computes track parameters constrained with
vertex position - stores them in VertexTrack
- currently, implementation only for perigee
parametrization
10Vertex finding
11Vertex finding framework
- Vertex finding class framework still in an early
stage - Users use an implementation of a
VertexReconstructor - Decomposition of VertexReconstructor still
evolves while features common to new algorithms
emerge - Current decomposition
- 1) initial track selection FilterltRecTrackgt
- operates on each element of RecTrack container
- boolean result track accepted or rejected
- 2) VertexSeedGenerator
- finds clusters of compatible tracks
- 3) and one of the VertexFitters to fit each
cluster into a vertex - CombinationGeneratorltTgt, in ORCA statistical
toolkit - I.e. for exclusive vertex finding
- but performance analysis framework is well
advanced
12Analysis of performance
We want to evaluate, in b-jets, 50 GeV, ? ? 1.4
PV finding efficiency
SV finding efficiency
PV track purity
SV track purity
PV track assignment efficiency
for these algorithms
SV track assignment efficiency
1-fake rate
Total score
13Comparison with MC truth
Association
Selected simulated vertices
Reconstructed vertices
- VertexAssociator
- by tracks
- uses TrackAssociator
- by distance
14Evaluation of performance
- For each performance figure, 1 estimator class
- Examples
- VertexFindingEfficiencyEstimator
- VertexTrackAssignmentPurityEstimator
- updated each event
- These are all combined into a standard
performance test - VertexRecoPerformanceTest
- which reports results for each estimator, and a
total Score - Score is a user-defined function of the different
estimators - Example S Eff.PVa Eff.SVb Purity PVc
Purity SVd - (1-Fake Rate)e
15Vertex fast simulation
- VertexFastSim package
- Fully controlled input to vertex reconstruction
- Configurable event generator
- number and position of vertices
- number and momentum vector of prongs
- Very simple track reconstruction
- Gaussian smearing configurable resolutions
- fraction of non-Gaussian tails configurable
- What for?
- Test statistical consistency of vertex fitters
- Compare vertex finders for standard events
- ? speed-up development and debugging
- ? software release tests independent of full
track reconstruction - Future interface to FAMOS (see Stephan Wynhoffs
talk) for more realistic yet fast track
reconstruction
16Tuning of vertex finding algorithms
- Idea automatic search of parameter value
- which maximizes algorithm Score
- for a given event sample
- Abstract TunableVertexReconstructor class
- wrapper around the algorithm to tune
- TunableVertexReconstructorsetParameter(float
value) - TunableVertexReconstructorinitialRange()
- Concrete FineTuner1D class
- maximization algorithm
- divides initialRange() in N bins
- makes N clones of TunableVertexReconstructor
with different parameter values, by
setParameter(float value) - computes Score for each
- zooms in or shifts range until parameter
precision reached
17Conclusions
- We have developed an efficient class framework
for the development of vertex fitting algorithms - We have developed a friendly environment to
evaluate and tune vertex finding algorithms - A first version of the class framework for
vertex finding algorithms is present - improving while more algorithms get prototyped
- Now, time for implementations and results (next
talk)
18Backup slides
19Problem definition
d0 lt 1 mm
Impact parameter resolutions
- d0 in tt (full), Wc (dashed), Wu,d,s,g (dotted)
- impact parameter of secondary tracks ltlt 1 mm
- ?(d0) f(pT,?)
- pT 1 GeV/c 0.1 ? 0.2 mm
- high pT 10 ? 20 ?m
- ?(z0) f(pT,?)
- pT 1 GeV/c 0.1 ? 1 mm
- high pT 20 ? 100 ?m
Primary and secondary tracks not well
separated Reconstruction in 3D global
optimization
20Vertex fitting framework
UML diagrams
21 VertexFastSim framework
22Vertex finding tuning framework
23Analysis (cont.)
Evaluation of vertex reconstruction performance
- Performance estimator classes (1 for each
performance figure) - Divided into
- vertex finding performance estimators
- vertex track assignment performance estimators
- Examples (see reference manual)
- VertexFindingEfficiencyEstimator
- VertexTrackAssignmentPurityEstimator
- You have to provide them with the Monte-Carlo
truth, and the associators that you want them to
use - VertexAssociationToolsFactory provides 1
VertexAssociator and 1 TrackAssociator that are
consistent with each other - type of associators configurable in .orcarc
24Analysis (cont.)
- These are all combined into a standard
performance test VertexRecoPerformanceTest - simulated vertices separated into primary and
secondary vertices - performance evaluated for each type separately
- only reconstructible simulated vertices
considered - 2 tracks reconstructed
- vertex association by tracks, successful if
purity of RecVertex ? 50 - associated simulated vertices Efficiency
- unassociated reconstructed vertices Fake rate
- irrespective of primary or secondary
- track association by hits (default)
- specify by pulls if no hits
- used to evaluate purity and track assignment
efficiency