Line data Source code
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 920 : {for(Int_t j=0; j<3; j++) fPosition[j]=pos[j];}
30 16 : virtual void SetXv(Double_t xVert) {fPosition[0]=xVert; }
31 16 : virtual void SetYv(Double_t yVert) {fPosition[1]=yVert; }
32 80 : virtual void SetZv(Double_t zVert) {fPosition[2]=zVert; }
33 128 : virtual void SetDispersion(Double_t disp) { fSigma=disp; }
34 272 : virtual void SetNContributors(Int_t nContr) {fNContributors=nContr; }
35 :
36 : virtual void GetXYZ(Double_t position[3]) const;
37 :
38 4036 : virtual Double_t GetX() const { return fPosition[0]; }
39 4036 : virtual Double_t GetY() const { return fPosition[1]; }
40 2092 : virtual Double_t GetZ() const { return fPosition[2]; }
41 308 : virtual Double_t GetDispersion() const { return fSigma; }
42 816 : virtual Int_t GetNContributors() const { return fNContributors; }
43 412 : virtual Int_t GetNIndices() const { return fNIndices; }
44 : virtual Bool_t GetStatus() const {
45 786 : TString title = GetTitle();
46 814 : if(fNContributors>0 || (title.Contains("cosmics") && !title.Contains("failed"))) return 1;
47 56 : if(title.Contains("smearMC")) return 1;
48 28 : return 0;
49 393 : }
50 : virtual Bool_t IsFromVertexer3D() const {
51 0 : TString title = GetTitle();
52 0 : if(title.Contains("vertexer: 3D")) return kTRUE;
53 0 : else return kFALSE;
54 0 : }
55 : virtual Bool_t IsFromVertexerZ() const {
56 48 : TString title = GetTitle();
57 48 : if(title.Contains("vertexer: Z")) return kTRUE;
58 24 : else return kFALSE;
59 24 : }
60 :
61 : virtual void Print(Option_t* option = "") const;
62 : virtual void SetIndices(Int_t nindices,UShort_t *indices);
63 96 : virtual UShort_t *GetIndices() const { return fIndices; }
64 : virtual Bool_t UsesTrack(Int_t index) const;
65 0 : virtual void PrintIndices() const { if(fNIndices>0)
66 0 : for(Int_t i=0;i<fNIndices;i++) printf("AliVertex uses track %d\n",fIndices[i]); return; }
67 :
68 : virtual void GetCovarianceMatrix(Double_t covmatrix[6]) const;
69 0 : virtual void SetCovarianceMatrix(const Double_t *) {}
70 :
71 0 : virtual Double_t GetChi2perNDF() const {return -999.;}
72 0 : virtual Double_t GetChi2() const {return -999.;}
73 0 : virtual void SetChi2(Double_t ) {}
74 0 : virtual Int_t GetNDF() const {return -999;}
75 :
76 : protected:
77 :
78 : Double32_t fPosition[3]; // vertex position
79 : Double32_t fSigma; // track dispersion around found vertex
80 : Int_t fNContributors; // # of tracklets/tracks used for the estimate
81 : Int_t fNIndices; // # of indices
82 : UShort_t *fIndices; //[fNIndices] indices of tracks used for vertex
83 :
84 :
85 192 : ClassDef(AliVertex,4) // Class for Primary Vertex
86 : };
87 :
88 : #endif
|