AliRoot Core  3dc7879 (3dc7879)
AliVertex.h
Go to the documentation of this file.
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(const 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 
38  virtual Double_t GetX() const { return fPosition[0]; }
39  virtual Double_t GetY() const { return fPosition[1]; }
40  virtual Double_t GetZ() const { return fPosition[2]; }
41  virtual Double_t GetDispersion() const { return fSigma; }
42  virtual Int_t GetNContributors() const { return fNContributors; }
43  virtual Int_t GetNIndices() const { return fNIndices; }
44  virtual Bool_t GetStatus() const {
45  TString title = GetTitle();
46  if(fNContributors>0 || (title.Contains("cosmics") && !title.Contains("failed"))) return 1;
47  if(title.Contains("smearMC")) return 1;
48  return 0;
49  }
50  virtual Bool_t IsFromVertexer3D() const {
51  TString title = GetTitle();
52  if(title.Contains("vertexer: 3D")) return kTRUE;
53  else return kFALSE;
54  }
55  virtual Bool_t IsFromVertexerZ() const {
56  TString title = GetTitle();
57  if(title.Contains("vertexer: Z")) return kTRUE;
58  else return kFALSE;
59  }
60 
61  virtual void Print(Option_t* option = "") const;
62  virtual void SetIndices(Int_t nindices,UShort_t *indices);
63  virtual UShort_t *GetIndices() const { return fIndices; }
64  virtual Bool_t UsesTrack(Int_t index) const;
65  virtual Bool_t SubstituteTrack(Int_t indexOld, Int_t indexNew);
66  virtual void PrintIndices() const {
67  if(fNIndices>0) {
68  for(Int_t i=0;i<fNIndices;i++) { printf("AliVertex uses track %d\n",fIndices[i]); }
69  }
70  return;
71  }
72 
73  virtual void GetCovarianceMatrix(Double_t covmatrix[6]) const;
74  virtual void SetCovarianceMatrix(const Double_t *) {}
75 
76  virtual Double_t GetChi2perNDF() const {return -999.;}
77  virtual Double_t GetChi2() const {return -999.;}
78  virtual void SetChi2(Double_t ) {}
79  virtual Int_t GetNDF() const {return -999;}
80 
81  protected:
82 
83  Double32_t fPosition[3]; // vertex position
84  Double32_t fSigma; // track dispersion around found vertex
85  Int_t fNContributors; // # of tracklets/tracks used for the estimate
86  Int_t fNIndices; // # of indices
87  UShort_t *fIndices; //[fNIndices] indices of tracks used for vertex
88 
89 
90  ClassDef(AliVertex,4) // Class for Primary Vertex
91 };
92 
93 #endif
Double32_t fPosition[3]
Definition: AliVertex.h:83
printf("Chi2/npoints = %f\n", TMath::Sqrt(chi2/npoints))
virtual void SetChi2(Double_t)
Definition: AliVertex.h:78
Int_t fNIndices
Definition: AliVertex.h:86
virtual Int_t GetNDF() const
Definition: AliVertex.h:79
virtual Bool_t SubstituteTrack(Int_t indexOld, Int_t indexNew)
Definition: AliVertex.cxx:163
virtual Double_t GetChi2perNDF() const
Definition: AliVertex.h:76
virtual UShort_t * GetIndices() const
Definition: AliVertex.h:63
virtual void SetCovarianceMatrix(const Double_t *)
Definition: AliVertex.h:74
virtual void SetDispersion(Double_t disp)
Definition: AliVertex.h:33
Double32_t fSigma
Definition: AliVertex.h:84
virtual Double_t GetY() const
Definition: AliVertex.h:39
virtual void GetXYZ(Double_t position[3]) const
Definition: AliVertex.cxx:119
virtual void SetYv(Double_t yVert)
Definition: AliVertex.h:31
virtual void SetZv(Double_t zVert)
Definition: AliVertex.h:32
virtual void SetXv(Double_t xVert)
Definition: AliVertex.h:30
virtual Bool_t IsFromVertexer3D() const
Definition: AliVertex.h:50
virtual Int_t GetNIndices() const
Definition: AliVertex.h:43
virtual Bool_t IsFromVertexerZ() const
Definition: AliVertex.h:55
UShort_t * fIndices
Definition: AliVertex.h:87
virtual Double_t GetZ() const
Definition: AliVertex.h:40
virtual void SetIndices(Int_t nindices, UShort_t *indices)
Definition: AliVertex.cxx:139
virtual Double_t GetX() const
Definition: AliVertex.h:38
virtual void SetXYZ(Double_t pos[3])
Definition: AliVertex.h:28
virtual Int_t GetNContributors() const
Definition: AliVertex.h:42
virtual void GetCovarianceMatrix(Double_t covmatrix[6]) const
Definition: AliVertex.cxx:130
virtual void SetNContributors(Int_t nContr)
Definition: AliVertex.h:34
virtual void Clear(Option_t *option="")
Definition: AliVertex.cxx:110
AliVertex & operator=(const AliVertex &source)
Definition: AliVertex.cxx:80
virtual Bool_t GetStatus() const
Definition: AliVertex.h:44
virtual Bool_t UsesTrack(Int_t index) const
Definition: AliVertex.cxx:151
Int_t fNContributors
Definition: AliVertex.h:85
virtual Double_t GetChi2() const
Definition: AliVertex.h:77
virtual ~AliVertex()
Definition: AliVertex.cxx:102
virtual Double_t GetDispersion() const
Definition: AliVertex.h:41
virtual void Print(Option_t *option="") const
Definition: AliVertex.cxx:178
virtual void PrintIndices() const
Definition: AliVertex.h:66