//---------------------------------------------------------------------------- // Implementation of the KFVertex class // . // @author S.Gorbunov, I.Kisel // @version 1.0 // @since 13.05.07 // // Class to reconstruct and store primary and secondary vertices // The method is described in CBM-SOFT note 2007-003, // ``Reconstruction of decayed particles based on the Kalman filter'', // http://www.gsi.de/documents/DOC-2007-May-14-1.pdf // // This class is ALICE interface to general mathematics in KFParticleCore // // -= Copyright © ALICE HLT Group =- //____________________________________________________________________________ #include "KFVertex.h" KFVertex::KFVertex( const KFPVertex &vertex ): fIsConstrained(0) { // Constructor from ALICE VVertex vertex.GetXYZ( fP ); vertex.GetCovarianceMatrix( fC ); fChi2 = vertex.GetChi2(); fNDF = 2*vertex.GetNContributors() - 3; fQ = 0; fAtProductionVertex = 0; fIsLinearized = 0; fSFromDecay = 0; } /* void KFVertex::Print(Option_t* ) const { cout<<"KFVertex position: "<(fP[0]), static_cast(fP[1]), static_cast(fP[2])}; float constrC[6]={static_cast(fC[0]), static_cast(fC[1]), static_cast(fC[2]), static_cast(fC[3]), static_cast(fC[4]), static_cast(fC[5])}; Construct( vDaughters, nDaughters, 0, -1, fIsConstrained ); SetVtxGuess( fVtxGuess[0], fVtxGuess[1], fVtxGuess[2] ); for( int i=0; i2 ) { float worstChi = 0.; Int_t worstDaughter = 0; for( Int_t it=0; it=2 ) {// final refit SetVtxGuess( fP[0], fP[1], fP[2] ); if( fIsConstrained ){ fP[0] = constrP[0]; fP[1] = constrP[1]; fP[2] = constrP[2]; for( int i=0; i<6; i++ ) fC[i] = constrC[i]; } int nDaughtersNew=0; const KFParticle **vDaughtersNew=new const KFParticle *[nDaughters]; for( int i=0; i ChiCut*ChiCut*GetNDF() ) { for( int i=0; i