FairRoot/PandaRoot
AliKFVertex.h
Go to the documentation of this file.
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 "KFPVertex.h"
23 
24 class AliKFVertex : public AliKFParticle
25 {
26 
27  public:
28 
29  //*
30  //* INITIALIZATION
31  //*
32 
33  //* Constructor (empty)
34 
35  AliKFVertex():AliKFParticle(),fIsConstrained(0){ }
36 
37  //* Destructor (empty)
38 
40 
41  //* Initialisation from VVertex
42 
43  AliKFVertex( const KFPVertex &vertex );
44 
45 
46  //*
47  //* ACCESSORS
48  //*
49 
50  //* Number of tracks composing the vertex
51 
52  Int_t GetNContributors() const { return fIsConstrained ?fNDF/2:(fNDF+3)/2; }
53 
54  //*
55  //* CONSTRUCTION OF THE VERTEX BY ITS DAUGHTERS
56  //* USING THE KALMAN FILTER METHOD
57  //*
58 
59 
60  //* Simple way to construct vertices ex. D0 = Pion + Kaon;
61 
62  void operator +=( const AliKFParticle &Daughter );
63 
64  //* Subtract particle from vertex
65 
66  AliKFVertex operator -( const AliKFParticle &Daughter ) const;
67 
68  void operator -=( const AliKFParticle &Daughter );
69 
70  //* Set beam constraint to the primary vertex
71 
72  void SetBeamConstraint( float X, float Y, float Z,
73  float ErrX, float ErrY, float ErrZ );
74 
75  //* Set beam constraint off
76 
77  void SetBeamConstraintOff();
78 
79  //* Construct vertex with selection of tracks (primary vertex)
80 
81  void ConstructPrimaryVertex( const AliKFParticle *vDaughters[], int NDaughters,
82  Bool_t vtxFlag[], float ChiCut=3.5 );
83 
84  protected:
85 
86  Bool_t fIsConstrained; // Is the beam constraint set
87 
88 };
89 
90 
91 //---------------------------------------------------------------------
92 //
93 // Inline implementation of the AliKFVertex methods
94 //
95 //---------------------------------------------------------------------
96 
97 
98 inline void AliKFVertex::operator+=( const AliKFParticle &Daughter )
99 {
100  AliKFParticle::operator+=( Daughter );
101 }
102 
103 
104 inline void AliKFVertex::operator-=( const AliKFParticle &Daughter )
105 {
106  Daughter.SubtractFromVertex( *this );
107 }
108 
109 inline AliKFVertex AliKFVertex::operator-( const AliKFParticle &Daughter ) const
110 {
111  AliKFVertex tmp = *this;
112  Daughter.SubtractFromVertex( tmp );
113  return tmp;
114 }
115 
116 
117 #endif
void ConstructPrimaryVertex(const AliKFParticle *vDaughters[], int NDaughters, Bool_t vtxFlag[], float ChiCut=3.5)
Definition: AliKFVertex.cxx:67
void SetBeamConstraint(float X, float Y, float Z, float ErrX, float ErrY, float ErrZ)
Definition: AliKFVertex.cxx:46
friend void operator+=(F32vec1 &a, const F32vec1 &b)
double Y
Definition: anaLmdDigi.C:68
AliKFVertex operator-(const AliKFParticle &Daughter) const
Definition: AliKFVertex.h:109
void operator+=(const AliKFParticle &Daughter)
Definition: AliKFVertex.h:98
void SetBeamConstraintOff()
Definition: AliKFVertex.cxx:62
Int_t GetNContributors() const
Definition: AliKFVertex.h:52
Bool_t fIsConstrained
Definition: AliKFVertex.h:86
double X
Definition: anaLmdDigi.C:68
double Z
Definition: anaLmdDigi.C:68
void operator-=(const AliKFParticle &Daughter)
Definition: AliKFVertex.h:104