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 "AliVVertex.h"
24 class AliKFVertex : public AliKFParticle
33 //* Constructor (empty)
35 AliKFVertex():AliKFParticle(),fIsConstrained(0){ }
37 //* Destructor (empty)
41 //* Initialisation from VVertex
43 AliKFVertex( const AliVVertex &vertex );
50 //* Number of tracks composing the vertex
52 Int_t GetNContributors() const { return (fNDF+3)/2; }
55 //* CONSTRUCTION OF THE VERTEX BY ITS DAUGHTERS
56 //* USING THE KALMAN FILTER METHOD
60 //* Simple way to construct vertices ex. D0 = Pion + Kaon;
62 void operator +=( const AliKFParticle &Daughter );
64 //* Subtract particle from vertex
66 AliKFVertex operator -( const AliKFParticle &Daughter ) const;
68 void operator -=( const AliKFParticle &Daughter );
70 //* Set beam constraint to the primary vertex
72 void SetBeamConstraint( Double_t X, Double_t Y, Double_t Z,
73 Double_t ErrX, Double_t ErrY, Double_t ErrZ );
75 //* Set beam constraint off
77 void SetBeamConstraintOff();
79 //* Construct vertex with selection of tracks (primary vertex)
81 void ConstructPrimaryVertex( const AliKFParticle *vDaughters[], int NDaughters,
82 Bool_t vtxFlag[], Double_t ChiCut=3.5 );
86 Bool_t fIsConstrained; // Is the beam constraint set
88 ClassDef( AliKFVertex, 1 );
93 //---------------------------------------------------------------------
95 // Inline implementation of the AliKFVertex methods
97 //---------------------------------------------------------------------
100 inline void AliKFVertex::operator +=( const AliKFParticle &Daughter )
102 AliKFParticle::operator +=( Daughter );
106 inline void AliKFVertex::operator -=( const AliKFParticle &Daughter )
108 Daughter.SubtractFromVertex( *this );
111 inline AliKFVertex AliKFVertex::operator -( const AliKFParticle &Daughter ) const
113 AliKFVertex tmp = *this;
114 Daughter.SubtractFromVertex( tmp );