]>
Commit | Line | Data |
---|---|---|
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> |
4e05ab9a | 21 | #include <TArrayF.h> |
13918578 | 22 | #include <TObject.h> |
23 | ||
24 | class TTree; | |
25 | class AliITStrackerSA; | |
26 | class AliITSgeom; | |
bef31448 | 27 | class AliITSclusterV2; |
13918578 | 28 | |
29 | class AliITSclusterTable : public TObject { | |
30 | ||
31 | ||
32 | public: | |
33 | ||
34 | AliITSclusterTable(); | |
bef31448 | 35 | AliITSclusterTable(AliITSgeom* geom, AliITStrackerSA* tracker, Double_t* primaryVertex); |
2257f27e | 36 | void FillArray(TTree* clusterTree); |
37 | void FillArrayLabel(Int_t numberofparticles); | |
38 | void FillArrayCoorAngles(); | |
4e05ab9a | 39 | void GetCoorAngles(AliITSclusterV2* cl,Int_t module,Double_t &phi,Double_t &lambda,Float_t &x,Float_t &y,Float_t &z); |
40 | void GetCoorErrors(AliITSclusterV2* cl, Int_t module,Float_t &sx,Float_t &sy, Float_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);} | |
4e05ab9a | 51 | Float_t GetXCluster(Int_t layer, Int_t i){return fXList[layer]->At(i);} |
52 | Float_t GetYCluster(Int_t layer, Int_t i) {return fYList[layer]->At(i);} | |
53 | Float_t GetZCluster(Int_t layer, Int_t i) {return fZList[layer]->At(i);} | |
54 | Float_t GetXClusterError(Int_t layer, Int_t i) {return fSxList[layer]->At(i);} | |
55 | Float_t GetYClusterError(Int_t layer, Int_t i) {return fSyList[layer]->At(i);} | |
56 | Float_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];} | |
4e05ab9a | 62 | TArrayF* GetListOfX(Int_t layer) const {return fXList[layer];} |
63 | TArrayF* GetListOfY(Int_t layer) const {return fYList[layer];} | |
64 | TArrayF* GetListOfZ(Int_t layer) const {return fZList[layer];} | |
65 | TArrayF* GetListOfSx(Int_t layer)const {return fSxList[layer];} | |
66 | TArrayF* GetListOfSy(Int_t layer)const {return fSyList[layer];} | |
67 | TArrayF* 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 | |
4e05ab9a | 85 | TArrayF** fXList; //Array of cluster x coordinates on each layer |
86 | TArrayF** fYList; //Array of cluster y coordinates on each layer | |
87 | TArrayF** fZList; // Array of cluster z coordinates on each layer | |
88 | TArrayF** fSxList; //Array of cluster errors on x on each layer | |
89 | TArrayF** fSyList; //Array of cluster errors on y on each layer | |
90 | TArrayF** fSzList; //Array of cluster errors on z on each layer | |
bef31448 | 91 | |
13918578 | 92 | AliITSgeom *fGeom; //! ITS geometry |
93 | AliITStrackerSA *fTracker; //! SA tracker | |
94 | ||
95 | ClassDef(AliITSclusterTable,1) | |
96 | }; | |
97 | ||
98 | #endif | |
99 | ||
100 | ||
101 |