]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSclusterTable.h
SA tracking adapted to ESD
[u/mrichter/AliRoot.git] / ITS / AliITSclusterTable.h
CommitLineData
13918578 1#ifndef ALIITSCLUSTERTABLE_H
2#define ALIITSCLUSTERTABLE_H
3/* Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5//////////////////////////////////////////////////////////////////////////
6// Class used to simplify some operations with clusters. //
7// -Function FillArray fills an array wich contains, for each //
8// ITS module, an array with the indices of all the clusters detected //
9// by the module. The indices correspond to the cluster indices in class//
10// AliITSlayer of AliITStrackerV2. //
11// This function is used in AliITStrackerSA::FindTracks. //
12// -Function FillArrayLabel fills an array wich contains, for each //
13// particle label, and for each layer, the information on clusters: //
14// 0 if there is no cluster, 1 if there is a cluster with this label. //
15// This function is used to define trackable tracks. //
16///////////////////////////////////////////////////////////////////////////
17
18
19#include <TArrayI.h>
bef31448 20#include <TArrayD.h>
13918578 21#include <TObject.h>
22
23class TTree;
24class AliITStrackerSA;
25class AliITSgeom;
bef31448 26class AliITSclusterV2;
13918578 27
28class AliITSclusterTable : public TObject {
29
30
31 public:
32
33 AliITSclusterTable();
bef31448 34 AliITSclusterTable(AliITSgeom* geom, AliITStrackerSA* tracker, Double_t* primaryVertex);
13918578 35 void FillArray(TTree* clusterTree,Int_t evnumber=0);
6ba216a4 36 void FillArrayLabel(Int_t numberofparticles,TTree* clusterTree,
13918578 37 Int_t evnumber=0);
bef31448 38 void FillArrayCoorAngles(TTree* clusterTree, Int_t evnumber=0);
39 void GetCoorAngles(AliITSclusterV2* cl,Int_t module,Double_t &phi,Double_t &lambda,Double_t &x,Double_t &y,Double_t &z);
40 void GetCoorErrors(AliITSclusterV2* cl, Int_t module,Double_t &sx,Double_t &sy, Double_t &sz);
13918578 41 virtual ~AliITSclusterTable();
42
43
44 Int_t GetNCluster(Int_t mod) const {return fNCl[mod];}
45 Int_t GetClusterIndMod(Int_t mod,Int_t i){return fDet[mod]->At(i);}
13918578 46 Int_t ThereIsClusterOnLayer(Int_t label,Int_t layer)
47 {return fLbl[label]->At(layer);}
48 Int_t ThisParticleIsTrackable(Int_t label,Int_t numberofpoints=6);
bef31448 49 Double_t GetPhiCluster(Int_t layer, Int_t i){return fPhiList[layer]->At(i);}
50 Double_t GetLambdaCluster(Int_t layer, Int_t i) {return fLambdaList[layer]->At(i);}
51 Double_t GetXCluster(Int_t layer, Int_t i){return fXList[layer]->At(i);}
52 Double_t GetYCluster(Int_t layer, Int_t i) {return fYList[layer]->At(i);}
53 Double_t GetZCluster(Int_t layer, Int_t i) {return fZList[layer]->At(i);}
54 Double_t GetXClusterError(Int_t layer, Int_t i) {return fSxList[layer]->At(i);}
55 Double_t GetYClusterError(Int_t layer, Int_t i) {return fSyList[layer]->At(i);}
56 Double_t GetZClusterError(Int_t layer, Int_t i) {return fSzList[layer]->At(i);}
13918578 57
bef31448 58 TArrayI* GetListOfClusters(Int_t mod) const {return fDet[mod];}
59 TArrayI* GetNClustersSameLabel(Int_t label) const {return fLbl[label];}
60 TArrayD* GetListOfPhi(Int_t layer) const {return fPhiList[layer];}
61 TArrayD* GetListOfLambda(Int_t layer) const {return fLambdaList[layer];}
62 TArrayD* GetListOfX(Int_t layer) const {return fXList[layer];}
63 TArrayD* GetListOfY(Int_t layer) const {return fYList[layer];}
64 TArrayD* GetListOfZ(Int_t layer) const {return fZList[layer];}
65 TArrayD* GetListOfSx(Int_t layer)const {return fSxList[layer];}
66 TArrayD* GetListOfSy(Int_t layer)const {return fSyList[layer];}
67 TArrayD* GetListOfSz(Int_t layer)const {return fSzList[layer];}
13918578 68 protected:
69
70 // copy constructor (NO copy allowed: the constructor is protected
71 // to avoid misuse)
72 AliITSclusterTable(const AliITSclusterTable& tab);
73 // assignment operator (NO assignment allowed)
74 AliITSclusterTable& operator=(const AliITSclusterTable& /* tab */);
75
76 static Int_t FindIndex(Int_t ndim, Int_t *ptr, Int_t value);
77
bef31448 78 Int_t *fNCl; //number of clusters per module
79 Double_t fPrimaryVertex[3]; //primaryVertex
80 TArrayI** fDet; //Array of cluster indices for each detector
81 TArrayI** fLbl; //Array of number of clusters (on each layer)
82 // with the same label for each label.
83 TArrayD** fPhiList; //Array of cluster azimuthal angles on each layer
84 TArrayD** fLambdaList;//Array of cluster Lambda angles on each layer
85 TArrayD** fXList; //Array of cluster x coordinates on each layer
86 TArrayD** fYList; //Array of cluster y coordinates on each layer
87 TArrayD** fZList; // Array of cluster z coordinates on each layer
88 TArrayD** fSxList; //Array of cluster errors on x on each layer
89 TArrayD** fSyList; //Array of cluster errors on y on each layer
90 TArrayD** fSzList; //Array of cluster errors on z on each layer
91
13918578 92 AliITSgeom *fGeom; //! ITS geometry
93 AliITStrackerSA *fTracker; //! SA tracker
94
95 ClassDef(AliITSclusterTable,1)
96};
97
98#endif
99
100
101