]>
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> | |
308c2f7c | 26 | #include "AliITSVertexer.h" |
eb35e591 | 27 | |
28 | class TTree; | |
29 | class AliESDVertex; | |
30 | class AliITSgeom; | |
31 | ||
308c2f7c | 32 | class AliITSVertexer3DTapan : public AliITSVertexer { |
eb35e591 | 33 | public: |
34 | AliITSVertexer3DTapan(Int_t n=10000):fITSgeom(0), | |
35 | fX1(n),fY1(n),fZ1(n), fPhi1(n), ficlu1(0), | |
36 | fX2(n),fY2(n),fZ2(n), fPhi2(n), ficlu2(0) {;} | |
37 | AliITSVertexer3DTapan(const AliITSgeom *g, Int_t n=10000): fITSgeom(g), | |
38 | fX1(n),fY1(n),fZ1(n), fPhi1(n), ficlu1(0), | |
39 | fX2(n),fY2(n),fZ2(n), fPhi2(n), ficlu2(0) {;} | |
40 | virtual ~AliITSVertexer3DTapan(){} | |
308c2f7c | 41 | virtual AliESDVertex *FindVertexForCurrentEvent(TTree *cTree); |
42 | virtual void PrintStatus() const {} | |
eb35e591 | 43 | |
44 | protected: | |
308c2f7c | 45 | void LoadClusters(TTree *cTree); |
eb35e591 | 46 | void CalculatePhi(Float_t fx, Float_t fy, Float_t & phi); |
47 | void CalculateVertex3d1(Double_t pos[3], Float_t cuts[3], Int_t &ncontr); | |
48 | void CalculateVertex3d2(Double_t pos[3], Float_t cuts[3], Int_t &ncontr, Double_t sigpos[3]); | |
49 | 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; | |
50 | ||
51 | private: | |
52 | AliITSVertexer3DTapan(AliITSVertexer3DTapan &); | |
53 | AliITSVertexer3DTapan& operator=(const AliITSVertexer3DTapan &); | |
54 | ||
55 | const AliITSgeom *fITSgeom; //the ITS geometry | |
56 | ||
57 | TArrayD fX1; // X position of cluster on layer 1 of ITS | |
58 | TArrayD fY1; // Y position of cluster on layer 1 of ITS | |
59 | TArrayD fZ1; // Z position of cluster on layer 1 of ITS | |
60 | TArrayD fPhi1; // Phi position of cluster on layer 1 of ITS | |
61 | Int_t ficlu1; // Number of clusters on layer 1 of ITS | |
62 | ||
63 | TArrayD fX2; // X position of cluster on layer 2 of ITS | |
64 | TArrayD fY2; // Y position of cluster on layer 2 of ITS | |
65 | TArrayD fZ2; // Z position of cluster on layer 2 of ITS | |
66 | TArrayD fPhi2; // Phi position of cluster on layer 2 of ITS | |
67 | Int_t ficlu2; // Number of clusters on layer 2 of ITS | |
68 | ||
308c2f7c | 69 | ClassDef(AliITSVertexer3DTapan,2); |
eb35e591 | 70 | }; |
71 | ||
72 | #endif |