]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliKFVertex.h
Avoiding compilation warnings
[u/mrichter/AliRoot.git] / STEER / AliKFVertex.h
1 //---------------------------------------------------------------------------------
2 // The AliKFVertex class
3 // .
4 // @author  S.Gorbunov, I.Kisel
5 // @version 1.0
6 // @since   13.05.07
7 // 
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
12 //
13 // This class is ALICE interface to general mathematics in AliKFParticleBase
14 // 
15 //  -= Copyright &copy ALICE HLT Group =-
16 //_________________________________________________________________________________
17
18 #ifndef ALIKFVERTEX_H
19 #define ALIKFVERTEX_H
20
21 #include "AliKFParticle.h"
22 #include "AliESDVertex.h"
23
24
25 class AliKFVertex :public AliKFParticle
26 {
27   
28  public:
29
30   //*
31   //*  INITIALIZATION
32   //*
33
34   //* Constructor (empty)
35
36   AliKFVertex():AliKFParticle(){} 
37
38   //* Destructor (empty)
39
40   ~AliKFVertex(){}
41
42   //* Initialisation from ESD vertex 
43
44   AliKFVertex( const AliESDVertex &vertex );
45
46   //* Copy vertex part to ESD vertex 
47
48   void CopyToESDVertex( AliESDVertex &Vtx ) const ;
49
50
51   //* 
52   //* CONSTRUCTION OF THE VERTEX BY ITS DAUGHTERS 
53   //* USING THE KALMAN FILTER METHOD
54   //*
55
56
57   //* Simple way to construct vertices ex. D0 = Pion + Kaon;   
58
59   void operator +=( const AliKFParticle &Daughter );  
60
61   //* Subtract particle from vertex
62
63   AliKFVertex operator -( const AliKFParticle &Daughter ) const;
64
65   void operator -=( const AliKFParticle &Daughter );  
66
67   //* Construct vertex with selection of tracks (primary vertex)
68
69   void ConstructPrimaryVertex( const AliKFParticle *vDaughters[], int NDaughters,
70                                Bool_t vtxFlag[], Double_t ChiCut=3.5  );
71
72   ClassDef( AliKFVertex, 1 );
73
74 };
75
76
77
78 //---------------------------------------------------------------------
79 //
80 //     Inline implementation of the AliKFVertex methods
81 //
82 //---------------------------------------------------------------------
83
84 inline void AliKFVertex::CopyToESDVertex( AliESDVertex &v ) const 
85 {
86   AliKFVertex vTmp=*this;
87   v = AliESDVertex( vTmp.fP, vTmp.fC, vTmp.fChi2, (vTmp.fNDF +3)/2 );
88 }
89
90 inline void AliKFVertex::operator +=( const AliKFParticle &Daughter )
91 {
92   AliKFParticle::operator +=( Daughter );
93 }
94   
95
96 inline void AliKFVertex::operator -=( const AliKFParticle &Daughter )
97 {
98   Daughter.SubtractFromVertex( *this );
99 }
100   
101 inline AliKFVertex AliKFVertex::operator -( const AliKFParticle &Daughter ) const 
102 {
103   AliKFVertex tmp = *this;
104   Daughter.SubtractFromVertex( tmp );
105   return tmp;
106 }
107
108
109 #endif