]>
Commit | Line | Data |
---|---|---|
eb35e591 | 1 | #ifndef ALIITSVERTEXER3DTAPAN_H |
2 | #define ALIITSVERTEXER3DTAPAN_H | |
3 | ||
4 | /* See cxx source for full Copyright notice */ | |
5 | ||
6 | ||
7 | //------------------------------------------------------------------------- | |
8 | // Class AliITSVertexer3DTapan | |
9 | // This is a class for the 3d vertex finding | |
10 | // | |
11 | // Origin: Tapan Nayak, VECC-CERN, Tapan.Nayak@cern.ch | |
12 | //------------------------------------------------------------------------- | |
13 | ||
14 | ||
15 | ||
16 | ////////////////////////////////////////////////////////////////////////// | |
17 | // // | |
18 | // AliITSVertexer3DTapan // | |
19 | // // | |
20 | // Implementation of a 3D vertex finder based on // | |
21 | // SPD clusters. // | |
22 | // // | |
23 | ////////////////////////////////////////////////////////////////////////// | |
24 | ||
25 | #include <TArrayD.h> | |
26 | ||
27 | class TTree; | |
28 | class AliESDVertex; | |
29 | class AliITSgeom; | |
30 | ||
31 | class AliITSVertexer3DTapan : public TObject { | |
32 | public: | |
33 | AliITSVertexer3DTapan(Int_t n=10000):fITSgeom(0), | |
34 | fX1(n),fY1(n),fZ1(n), fPhi1(n), ficlu1(0), | |
35 | fX2(n),fY2(n),fZ2(n), fPhi2(n), ficlu2(0) {;} | |
36 | AliITSVertexer3DTapan(const AliITSgeom *g, Int_t n=10000): fITSgeom(g), | |
37 | fX1(n),fY1(n),fZ1(n), fPhi1(n), ficlu1(0), | |
38 | fX2(n),fY2(n),fZ2(n), fPhi2(n), ficlu2(0) {;} | |
39 | virtual ~AliITSVertexer3DTapan(){} | |
40 | ||
41 | Int_t LoadClusters(TTree *cf); | |
42 | void FindVertexForCurrentEvent(AliESDVertex *vtx); | |
43 | ||
44 | protected: | |
45 | void CalculatePhi(Float_t fx, Float_t fy, Float_t & phi); | |
46 | void CalculateVertex3d1(Double_t pos[3], Float_t cuts[3], Int_t &ncontr); | |
47 | void CalculateVertex3d2(Double_t pos[3], Float_t cuts[3], Int_t &ncontr, Double_t sigpos[3]); | |
48 | void CalculateLine(Double_t P1[4], Double_t P2[4], Double_t P3[4], Double_t P4[4], Double_t Pa[3], Double_t Pb[3]) const; | |
49 | ||
50 | private: | |
51 | AliITSVertexer3DTapan(AliITSVertexer3DTapan &); | |
52 | AliITSVertexer3DTapan& operator=(const AliITSVertexer3DTapan &); | |
53 | ||
54 | const AliITSgeom *fITSgeom; //the ITS geometry | |
55 | ||
56 | TArrayD fX1; // X position of cluster on layer 1 of ITS | |
57 | TArrayD fY1; // Y position of cluster on layer 1 of ITS | |
58 | TArrayD fZ1; // Z position of cluster on layer 1 of ITS | |
59 | TArrayD fPhi1; // Phi position of cluster on layer 1 of ITS | |
60 | Int_t ficlu1; // Number of clusters on layer 1 of ITS | |
61 | ||
62 | TArrayD fX2; // X position of cluster on layer 2 of ITS | |
63 | TArrayD fY2; // Y position of cluster on layer 2 of ITS | |
64 | TArrayD fZ2; // Z position of cluster on layer 2 of ITS | |
65 | TArrayD fPhi2; // Phi position of cluster on layer 2 of ITS | |
66 | Int_t ficlu2; // Number of clusters on layer 2 of ITS | |
67 | ||
68 | ClassDef(AliITSVertexer3DTapan,1); | |
69 | }; | |
70 | ||
71 | #endif |