1 #ifndef ALIITSVERTEXER3DTAPAN_H
2 #define ALIITSVERTEXER3DTAPAN_H
4 /* See cxx source for full Copyright notice */
7 //-------------------------------------------------------------------------
8 // Class AliITSVertexer3DTapan
9 // This is a class for the 3d vertex finding
11 // Origin: Tapan Nayak, VECC-CERN, Tapan.Nayak@cern.ch
12 //-------------------------------------------------------------------------
16 //////////////////////////////////////////////////////////////////////////
18 // AliITSVertexer3DTapan //
20 // Implementation of a 3D vertex finder based on //
23 //////////////////////////////////////////////////////////////////////////
26 #include "AliITSVertexer.h"
32 class AliITSVertexer3DTapan : public AliITSVertexer {
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(){}
41 virtual AliESDVertex *FindVertexForCurrentEvent(TTree *cTree);
42 virtual void PrintStatus() const {}
45 void LoadClusters(TTree *cTree);
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;
52 AliITSVertexer3DTapan(AliITSVertexer3DTapan &);
53 AliITSVertexer3DTapan& operator=(const AliITSVertexer3DTapan &);
55 const AliITSgeom *fITSgeom; //the ITS geometry
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
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
69 ClassDef(AliITSVertexer3DTapan,2);