In AddTaskPHOSPi0Flow.C set Cent. Bin past event buffers/lists,
[u/mrichter/AliRoot.git] / STEER / ESD / AliVertex.h
1 #ifndef ALIVERTEX_H
2 #define ALIVERTEX_H
3 /* Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6
7 //-------------------------------------------------------
8 //                    Base Vertex Class
9 //   Used for secondary vertices and as a base class for primary vertices
10 //   Origin: F. Prino, Torino, prino@to.infn.it
11 //-------------------------------------------------------
12
13 #include <TString.h>
14 #include "AliVVertex.h"
15
16 class AliVertex : public AliVVertex {
17  
18  public:
19  
20   AliVertex();
21   AliVertex(Double_t position[3],Double_t dispersion,
22                 Int_t nContributors);
23   AliVertex(const AliVertex &source);
24   AliVertex &operator=(const AliVertex &source);
25   virtual ~AliVertex();
26
27   virtual void   Clear(Option_t *option="");
28   virtual void   SetXYZ(Double_t pos[3]) 
29                    {for(Int_t j=0; j<3; j++) fPosition[j]=pos[j];}
30   virtual void   SetXv(Double_t xVert) {fPosition[0]=xVert; }
31   virtual void   SetYv(Double_t yVert) {fPosition[1]=yVert; }
32   virtual void   SetZv(Double_t zVert) {fPosition[2]=zVert; }
33   virtual void   SetDispersion(Double_t disp) { fSigma=disp; }
34   virtual void   SetNContributors(Int_t nContr) {fNContributors=nContr; }
35
36   virtual void     GetXYZ(Double_t position[3]) const;
37   virtual Double_t GetXv() const { return fPosition[0]; }
38   virtual Double_t GetYv() const { return fPosition[1]; }
39   virtual Double_t GetZv() const { return fPosition[2]; }
40   virtual Double_t GetX()  const { return fPosition[0]; }
41   virtual Double_t GetY()  const { return fPosition[1]; }
42   virtual Double_t GetZ()  const { return fPosition[2]; }
43   virtual Double_t GetDispersion() const { return fSigma; }
44   virtual Int_t    GetNContributors() const { return fNContributors; }
45   virtual Int_t    GetNIndices() const { return fNIndices; }
46   virtual Bool_t   GetStatus() const {
47     TString title = GetTitle();
48     if(fNContributors>0 || (title.Contains("cosmics") && !title.Contains("failed"))) return 1;
49     if(title.Contains("smearMC")) return 1;
50     return 0;
51   }
52   virtual Bool_t IsFromVertexer3D() const {
53     TString title = GetTitle();  
54     if(title.Contains("vertexer: 3D")) return kTRUE;
55     else return kFALSE;
56   }
57   virtual Bool_t IsFromVertexerZ() const {
58     TString title = GetTitle();  
59     if(title.Contains("vertexer: Z")) return kTRUE;
60     else return kFALSE;
61   }
62
63   virtual void     Print(Option_t* option = "") const;
64   virtual void     SetIndices(Int_t nindices,UShort_t *indices); 
65   virtual UShort_t *GetIndices() const { return fIndices; }
66   virtual Bool_t   UsesTrack(Int_t index) const;
67   virtual void     PrintIndices() const { if(fNIndices>0) 
68     for(Int_t i=0;i<fNIndices;i++) printf("AliVertex uses track %d\n",fIndices[i]); return; }
69
70   virtual void     GetCovarianceMatrix(Double_t covmatrix[6]) const;
71   virtual void     SetCovarianceMatrix(const Double_t *) {}
72   
73   virtual Double_t GetChi2perNDF() const {return -999.;}
74   virtual Double_t GetChi2() const {return -999.;}
75   virtual void     SetChi2(Double_t ) {}
76   virtual Int_t    GetNDF() const {return -999;}
77
78  protected:
79
80   Double32_t fPosition[3];    // vertex position
81   Double32_t fSigma;          // track dispersion around found vertex
82   Int_t    fNContributors;  // # of tracklets/tracks used for the estimate 
83   Int_t    fNIndices;       // # of indices 
84   UShort_t *fIndices;       //[fNIndices] indices of tracks used for vertex
85
86
87   ClassDef(AliVertex,4)  // Class for Primary Vertex
88 };
89
90 #endif