1 //---------------------------------------------------------------------------------
2 // The AliKFVertex class
4 // @author S.Gorbunov, I.Kisel
8 // Class to reconstruct and store primary and secondary vertices.
9 // The method is described in CBM-SOFT note 2007-003,
10 // ``Reconstruction of decayed particles based on the Kalman filter'',
11 // http://www.gsi.de/documents/DOC-2007-May-14-1.pdf
13 // This class is ALICE interface to general mathematics in AliKFParticleBase
15 // -= Copyright © ALICE HLT Group =-
16 //_________________________________________________________________________________
21 #include "AliKFParticle.h"
22 #include "AliESDVertex.h"
25 class AliKFVertex :public AliKFParticle
34 //* Constructor (empty)
36 AliKFVertex():AliKFParticle(){}
38 //* Destructor (empty)
42 //* Initialisation from ESD vertex
44 AliKFVertex( const AliESDVertex &vertex );
46 //* Copy vertex part to ESD vertex
48 void CopyToESDVertex( AliESDVertex &Vtx ) const ;
52 //* CONSTRUCTION OF THE VERTEX BY ITS DAUGHTERS
53 //* USING THE KALMAN FILTER METHOD
58 //* Subtract particle from vertex
60 AliKFVertex operator -( const AliKFParticle &Daughter ) const;
62 void operator -=( const AliKFParticle &Daughter );
64 //* Construct vertex with selection of tracks (primary vertex)
66 void ConstructPrimaryVertex( const AliKFParticle *vDaughters[], int NDaughters,
67 Double_t ChiCut=3.5 );
71 //* Simple way to construct vertices ex. D0 = Pion + Kaon - NOT IMPLEMENTED
73 AliKFParticle operator +( const AliKFParticle &Daughter ) const;
75 void operator +=( const AliKFParticle &Daughter );
77 ClassDef( AliKFVertex, 1 );
83 //---------------------------------------------------------------------
85 // Inline implementation of the AliKFVertex methods
87 //---------------------------------------------------------------------
89 inline void AliKFVertex::CopyToESDVertex( AliESDVertex &v ) const
91 AliKFVertex vTmp=*this;
92 v = AliESDVertex( vTmp.fP, vTmp.fC, vTmp.fChi2, (vTmp.fNDF +3)/2 );
96 inline void AliKFVertex::operator -=( const AliKFParticle &Daughter )
98 Daughter.SubtractFromVertex( *this );
101 inline AliKFVertex AliKFVertex::operator -( const AliKFParticle &Daughter ) const
103 AliKFVertex tmp = *this;
104 Daughter.SubtractFromVertex( tmp );