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