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 ///////////////////////////////////////////////////////////////////////////
23 class AliITStrackerSA;
26 class AliITSclusterTable : public TObject {
32 AliITSclusterTable(AliITSgeom* geom, AliITStrackerSA* tracker);
33 void FillArray(TTree* clusterTree,Int_t evnumber=0);
34 void FillArrayLabel(Int_t numberofparticles,TTree* clusterTree,
36 virtual ~AliITSclusterTable();
39 Int_t GetNCluster(Int_t mod) const {return fNCl[mod];}
40 Int_t GetClusterIndMod(Int_t mod,Int_t i){return fDet[mod]->At(i);}
41 TArrayI* GetListOfClusters(Int_t mod) const {return fDet[mod];}
42 TArrayI* GetNClustersSameLabel(Int_t label) const {return fLbl[label];}
43 Int_t ThereIsClusterOnLayer(Int_t label,Int_t layer)
44 {return fLbl[label]->At(layer);}
45 Int_t ThisParticleIsTrackable(Int_t label,Int_t numberofpoints=6);
49 // copy constructor (NO copy allowed: the constructor is protected
51 AliITSclusterTable(const AliITSclusterTable& tab);
52 // assignment operator (NO assignment allowed)
53 AliITSclusterTable& operator=(const AliITSclusterTable& /* tab */);
55 static Int_t FindIndex(Int_t ndim, Int_t *ptr, Int_t value);
57 Int_t *fNCl;//number of clusters per module
58 TArrayI** fDet; //Array of cluster indices for each detector
59 TArrayI** fLbl; //Array of number of clusters (on each layer)
60 // with the same label for each label.
61 AliITSgeom *fGeom; //! ITS geometry
62 AliITStrackerSA *fTracker; //! SA tracker
64 ClassDef(AliITSclusterTable,1)