Line: 1 to 1  

Vertex Fitters  
Line: 64 to 64  
TrgVertexFitter  
Changed:  
< <  BlindVertexFitter  
> >   
Developer: Vanya Belyaev  
Line: 73 to 73  
Unfortunately the implementation is not complete: the method remove(const LHCb::Particle*,LHCb::Vertex&) is not implemented (yet?).
The fitter is completely "blind" with respect to the input particles:
 
Added:  
> > 
 
 
Added:  
> > 
 
 
Added:  
> >  
It is a full responsibility of the client to prepare the particles for the vertex fit and to use them properly.
Please also note that the tool implements also:
 
Line: 731 to 734  
ParticleAdder  
Changed:  
< <  Developers:Yasmine Amhis & Olivier Deschamps  
> >  Developers:Yasmine Amhis begin_of_the_skype_highlighting end_of_the_skype_highlighting begin_of_the_skype_highlighting end_of_the_skype_highlighting begin_of_the_skype_highlighting end_of_the_skype_highlighting begin_of_the_skype_highlighting end_of_the_skype_highlighting & Olivier Deschamps  
ParticleAdder can be used for decays with typically one charged
track in the final state and one neutral particle. 
Line: 1 to 1  

Vertex Fitters  
Line: 731 to 731  
ParticleAdder  
Changed:  
< <  Developers:Yasmine Ahmis & Olivier Deschamps  
> >  Developers:Yasmine Amhis & Olivier Deschamps
No vertexing is performed, an offset value for the vertex is set to 10000 mm. Usage for selections written in python:
<! SyntaxHighlightingPlugin > Seq.VertexFitters.update( { " " : ParticleAdder } ) <! end SyntaxHighlightingPlugin > Yasmine Amhis  21 Nov 2008  
 Yuehong Xie  26 Sep 2007
 JuanPalacios  29 Sep 2007  
Deleted:  
< <   Vanya Belyaev  29 Sep 2007  
\ No newline at end of file  
Added:  
> >   Vanya Belyaev  29 Sep 
Line: 1 to 1  

Vertex Fitters 
Line: 1 to 1  

Vertex Fitters  
Line: 50 to 50  
 
Added:  
> >  Tips:
If you want to change the default behaviour of the OfflineVeretxFitter in your algorithm named YourAlgName, add this line in your option file YourAlgName.OfflineVertexFitter.[property] = [new value] ; E.g., YourAlgName.OfflineVertexFitter.useResonanceVertex= false ; YourAlgName.OfflineVertexFitter.applyDauMassConstraint = true ;  
TrgVertexFitter
BlindVertexFitter 
Line: 1 to 1  

Vertex Fitters  
Line: 47 to 47  
 
Added:  
> > 
 
TrgVertexFitter 
Line: 1 to 1  

Vertex Fitters  
Line: 55 to 55  
Developer: Vanya Belyaev  
Added:  
> >  BlindVertexFitter is probably the most trivial implementation of
IVertexFit abstract interface.
Unfortunately the implementation is not complete: the method remove(const LHCb::Particle*,LHCb::Vertex&) is not implemented (yet?).
The fitter is completely "blind" with respect to the input particles:
The tool internally used the formalism of Kalman Fitter. Since the inetrnal representation of the particle ("measurement") is a vector with 7components the formalism becomes very simple and after the decomposition of all matrices it is just amazingly trivial and transparent.
Vertex fit as Kalman FilterLet be a vector containing the parameters of the track. Let be the covariance matrix of these parameters, and is formal inverse matrix . for the trivial case of both matrices and could be defined properly and nonsingular. Here we'll try to extend the standard Kalman Filter formalism for almost linear model, by embedding the minimal model into more dimensions. In particular we choose the : The vertex fit determines the new parameters  position of the common vertex and  4momentum of the track, constrained to originate in . The covariance matrix of fit parameters could be split into submatrices:
Such choice of and allows to obtain almost trivial projection matrices and :
Kalman filter proceeds in the following steps
1initialize the vertex position by an estimate (guess) with covariance matrix (infinity) and .2add one particle after the other to the vertex and update the vertex fit: Let be the vertex position with the first tracks participating in the fit. The track is then included by the following recursion relations:Covariance matrices: , where New fit values:
New :
3Once all tracks are added, the fit parameters have to be smoothed, in order to update each filter step with the information of all measured particles:
4The procedure need to be iterated with the measurement evaluated around the new (improved) fit parameters, until convergence is reached. In particular it need that the particle parameter vector need to be reevaluated in vicinity of the found vertex position . In spite of linear formalism of projection matrices, the iterations are necessary for proper extrapolation of parameter vector to the vertex position.
5After the convergence, the covariance matrices of the smoothed fit parameters are computed:
With the chosen parameterization of one gets and .
Assuming the existence of the matrix and its block structure one can rewrite the equations as:
From these equations one sees that the blocks of the inverse covariance matrix enters into the expressions only through the combinations
Using the formal expression , one gets:
Finally one gets that Kalman Filter procedure (except for the expression for ) requires the validity of only the following matrix expressions:
In next section it is shown that these expression are always valid matrix expression, in spite of illdefined matrices and .
Covariance Matrices
Lets consider the change of the track parameterization form canonical
_state_parameterization to the representation, adopted for
the class
Obviously the covariance matrix for , is welldefined and nonsingular: . Both corresponding covariance matrices for the parameters and , and are either singular or not existing. It will be shown that one can define the formal inverse covariance matrix , but there is no way to define neither the proper matrix no the proper matrix .
The reparameterization with fake parameter does not allow to write the sensible covariance matrix for . But one can write the formal expression for the inverse covariance matrix where
For simplicity the matrix could be represented as block matrix , where the matrices and has the structure and . Correspondingly . Taking into account this block structures one writes:
Here the block representation of the matrix has been used . The matrix is singular, rank 5 matrix. It is worth to stress here that the upper top block is singular rank 2 matrix, while the lower right block in general is not singular and has the inverse matrix . The components of the formal inverse (fake) matrix are
The parameterization formally allows to express the covariance matrix through the fake matrix as , where
Here for simplicity the matrix is represented as block matrix, where matrix has the structure correspondingly
Obviously the lower right block of this matrix is singular.
Making the comparison of these expressions one gets all formal expressions needed for Kalman Filter procedure:
In spite of the fact that neither the matrix nor matrices could be constructed explicitly all required expressions for Kalman Filter procedure are valid matrix expressions.
Implemented methods:Following methods are implemented:
The vertex fitting method without creation of a Particle (

Property  Type  Default  Description 

MaxIterations 
int 
10 
The maximum allowed number of iterations for fit , combine & reFit methods 
MaxIterationsForAdd 
int 
5 
The maximum allowed number of iterations for add method 
MaxIterationsFroRemove 
int 
5 
The maximum allowed number of iterations for remove method 
SeedZmin 
double 
1.5 m 
The zmin of the seed fiducial volume 
SeedZmax 
double 
3.0 m 
The zmax of the seed fiducial volume 
SeedRho 
double 
50 cm 
The rhomax of the seed fiducial volume 
Transporter 
string 
"" 
The type/name of particle transporter tool to be used 
The tool has been tested for comparisions with TrgVertexFitter
and OfflineVertexFitter
for the simple cases of
and
.
For these simple cases the physical performance of BlindVertexFitter
have been found to be very similar with OfflineVertexFitter
:
Number of fit failures for random tracks is a bit larger while for the signal tracks which do form the vertex
the number of failures is very small and statistically the same as the number of fit failures for OfflineVertexFitter
.
CPU performance has been found to be just in between of TrgVertexFitter
and OfflineVertexFitter
. With maximal number of iterations
equal to three the CPU perfrormance is very close to TrgVertexFitter
.
Developers:Yasmine Ahmis & Olivier Deschamps
 Yuehong Xie  26 Sep 2007
Line: 1 to 1  

Vertex Fitters  
Line: 49 to 49  
 
Added:  
> >  TrgVertexFitter
BlindVertexFitterDeveloper: Vanya Belyaev
ParticleAdderDevelopers:Yasmine Ahmis & Olivier Deschamps  
 Yuehong Xie  26 Sep 2007  
Added:  
> >   JuanPalacios  29 Sep 2007 
Line: 1 to 1  

Vertex Fitters  
Line: 18 to 18  
 
Changed:  
< <  The classification is controlled by the option "useResonanceVertex". If "useResonanceVertex" is set to true (default), the fitter just classifies the particles given as input without checking their daughters. If "useResonanceVertex" is set to false, the fitter automatically decomposites all Vertexed particles into Flying particles, Photons and PhotonPairs.  
> >  The classification is controlled by the option "useResonanceVertex". If "useResonanceVertex" is set to true (default), the fitter just classifies the particles given as input without checking their daughters. If "useResonanceVertex" is set to false, the fitter automatically decomposes all Vertexed particles into Flying particles, Photons and PhotonPairs.
If a composite particle is not Vertexed, it is also decomposed regardless of "useResonanceVertex". An example: D*0>D0gamma. In this case, The D0 and gamma are used in the fit instead of the D*0.  
The basic idea is to factorize the fitting of a vertex into five types of actions:  
Line: 30 to 32  
If the options "applyDauMassConstraint" (default: false) and "useResonanceVertex" (default: true) are set to true, the mass of any composite daughter whose decay width is less than a threshold controlled by the option "widthThreshold" (default: 2 MeV) is constrained to its nominal value.  
Added:  
> >  An exception: no mass constraint is applied to composite particles which are not Vertexed, such as D*0>D0gamma. This can only be cured in a case by case way.  
At the end of the vertex fit, the mother particle is updated with new four momentum, mass, vertex position, their covariance matrix, the vertex chi2 and the number of degrees of freedom obatined from the fit.
Note the chi2 of the vertex fit and the number of degrees of freedom may depend on the option "useResonanceVertex". Always check the number of degrees of freedom when you use the chi2 in your analysis. 
Line: 1 to 1  

Vertex Fitters
 
Changed:  
< <  OfflineVertexFitter  
> >  OfflineVertexFitter  
Developer: Yuehong Xie  
Line: 16 to 16  
 
Changed:  
< < 
 
> > 
 
Changed:  
< <  The is controlled by the option "useResonanceVertex". If "useResonanceVertex" is set to true (default), the fitter just classifies the particles given as input without checking their daughters. If "useResonanceVertex" is set to false, the fitter automatically decomposites all Vertexed particles into Flying particles, Photons and PhotonPairs.  
> >  The classification is controlled by the option "useResonanceVertex". If "useResonanceVertex" is set to true (default), the fitter just classifies the particles given as input without checking their daughters. If "useResonanceVertex" is set to false, the fitter automatically decomposites all Vertexed particles into Flying particles, Photons and PhotonPairs.  
The basic idea is to factorize the fitting of a vertex into five types of actions:  
Line: 26 to 26  
 
Changed:  
< < 
 
> > 
 
If the options "applyDauMassConstraint" (default: false) and "useResonanceVertex" (default: true) are set to true, the mass of any composite daughter whose decay width is less than a threshold controlled by the option "widthThreshold" (default: 2 MeV) is constrained to its nominal value. 
Line: 1 to 1  

Vertex Fitters  
Line: 7 to 7  
OfflineVertexFitter  
Changed:  
< <  Author: Yuehong Xie  
> >  Developer: Yuehong Xie  
As the name suggests, this is a vertex fitter used for secondary vertex fitting in the offline data analysis. It is now the default vertex fitter in DaVinci. The fitter takes as input a vector of particles, performs the fit and updates the mother particle. Note the input particles are not modified after the fit. 
Line: 1 to 1  

Vertex Fitters  
Line: 6 to 6  
OfflineVertexFitter  
Changed:  
< <  As the name suggests, this is the default vertex used in DaVinci for offline secondary veretx fitting. The fitter takes as input a vector of particles, performs the fit and updates the mother particle. Note the input particles are not modeified after the fit. It classify the input particles into four types  
> > 
Author: Yuehong Xie
As the name suggests, this is a vertex fitter used for secondary vertex fitting in the offline data analysis. It is now the default vertex fitter in DaVinci. The fitter takes as input a vector of particles, performs the fit and updates the mother particle. Note the input particles are not modified after the fit. In the first step, the fitter classifies the input particles into the following four categories:  
 
Changed:  
< < 
 
> > 
 
 
Changed:  
< <  The is controlled by the option "useResonanceVertex". If "useResonanceVertex" is set to true (default), the fitter just classifies the particles given as input without checking their daughters. If "useResonanceVertex" is set to false, the fitter automatically decomposites all Veretexed particles into Flying particles, Photons and PhotonPairs.  
> >  The is controlled by the option "useResonanceVertex". If "useResonanceVertex" is set to true (default), the fitter just classifies the particles given as input without checking their daughters. If "useResonanceVertex" is set to false, the fitter automatically decomposites all Vertexed particles into Flying particles, Photons and PhotonPairs.  
The basic idea is to factorize the fitting of a vertex into five types of actions:  
Changed:  
< < 
 
> > 
 
 
Changed:  
< < 
 
> > 
If the options "applyDauMassConstraint" (default: false) and "useResonanceVertex" (default: true) are set to true, the mass of any composite daughter whose decay width is less than a threshold controlled by the option "widthThreshold" (default: 2 MeV) is constrained to its nominal value. At the end of the vertex fit, the mother particle is updated with new four momentum, mass, vertex position, their covariance matrix, the vertex chi2 and the number of degrees of freedom obatined from the fit. Note the chi2 of the vertex fit and the number of degrees of freedom may depend on the option "useResonanceVertex". Always check the number of degrees of freedom when you use the chi2 in your analysis. Take Bd>JpsiK* as an example. If "useResonanceVertex" is true, the number of degrees of freedom is 3. If "useResonanceVertex" is false, the number of degrees of freedom is 2*43=5.
Work to do  
Added:  
> > 
 
Changed:  
< <   Yuehong Xie  25 Sep 2007  
> >   Yuehong Xie  26 Sep 2007 
Line: 1 to 1  

 
Added:  
> >  Vertex Fitters  
Added:  
> >  
Added:  
> >  OfflineVertexFitterAs the name suggests, this is the default vertex used in DaVinci for offline secondary veretx fitting. The fitter takes as input a vector of particles, performs the fit and updates the mother particle. Note the input particles are not modeified after the fit. It classify the input particles into four types  
Deleted:  
< <   JuanPalacios  25 Sep 2007  
\ No newline at end of file  
Added:  
> > 
The is controlled by the option "useResonanceVertex". If "useResonanceVertex" is set to true (default), the fitter just classifies the particles given as input without checking their daughters. If "useResonanceVertex" is set to false, the fitter automatically decomposites all Veretexed particles into Flying particles, Photons and PhotonPairs. The basic idea is to factorize the fitting of a vertex into five types of actions:
 Yuehong Xie  25 Sep 2007 
Line: 1 to 1  

Added:  
> > 
 JuanPalacios  25 Sep 2007 