1 #ifndef ALIITSCLUSTERFINDERSSD_H
2 #define ALIITSCLUSTERFINDERSSD_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
7 #include "AliITSClusterFinder.h"
8 #include "AliITSsegmentationSSD.h"
11 class AliITSclusterSSD;
12 class AliITSpackageSSD;
14 class AliITSClusterFinderSSD: public AliITSClusterFinder{
16 AliITSClusterFinderSSD();
17 AliITSClusterFinderSSD(AliITSsegmentation *seg, TClonesArray *digits);
18 virtual ~AliITSClusterFinderSSD();
19 void FindRawClusters(Int_t module);
22 void InitReconstruction();
23 Bool_t CreateNewRecPoint(Float_t P, Float_t dP, Float_t N, Float_t dN,
24 Float_t Sig,Float_t dSig,
25 AliITSclusterSSD *clusterP,
26 AliITSclusterSSD *clusterN,Stat_t prob);
27 AliITSclusterSSD* GetPSideCluster(Int_t idx);
28 AliITSclusterSSD* GetNSideCluster(Int_t idx);
29 AliITSclusterSSD* GetCluster(Int_t idx, Bool_t side);
30 void FindNeighbouringDigits();
31 void SeparateOverlappedClusters();
32 void SplitCluster(TArrayI *list,Int_t nsplits,Int_t indx,Bool_t side);
33 Int_t SortDigitsP(Int_t start, Int_t end);
34 Int_t SortDigitsN(Int_t start, Int_t end);
35 void FillDigitsIndex();
37 void FillClIndexArrays(Int_t* arrayP, Int_t *arrayN) const;
38 void SortClusters(Int_t* arrayP, Int_t *arrayN);
39 Int_t SortClustersP(Int_t start, Int_t end,Int_t *array);
40 Int_t SortClustersN(Int_t start, Int_t end,Int_t *array);
41 void ClustersToPackages();
42 Int_t GetDiff(Float_t */*retx*/, Float_t */*rety*/) const {return 0;}
43 void CalcStepFactor(Float_t Psteo, Float_t Nsteo );
44 Bool_t GetCrossing(Float_t &x, Float_t &z); //x, y of strips crossing
45 void GetCrossingError(Float_t& dp, Float_t& dn);//x, y of strips crossing err.
48 AliITS *fITS; //!Pointer to AliITS object
49 TClonesArray *fClusterP; //!
50 Int_t fNClusterP; //!Number of P side clusters in the array
51 TClonesArray *fClusterN; //!Number of N side clusters in the array
53 TClonesArray *fPackages; //!packages
55 TArrayI *fDigitsIndexP; //!Digits on P side
56 Int_t fNDigitsP; //!Number of Digits on P side
57 TArrayI *fDigitsIndexN; //!Digits on N side
58 Int_t fNDigitsN; //!Number of Digits on N side
60 Float_t fPitch; //!Strip pitch
61 Float_t fTanP; //!Pside stereo angle tangent
62 Float_t fTanN; //!Nside stereo angle tangent
64 /*************************************************/
65 /** parameters for reconstruction ****/
66 /** to be tune when slow simulation raliable ****/
67 /*************************************************/
69 //Float_t fAlpha1; //!
70 //Float_t fAlpha2; //!
71 //Float_t fAlpha3; //!
72 Float_t fPNsignalRatio; //!
74 static const Bool_t fgkSIDEP; //!
75 static const Bool_t fgkSIDEN; //!
77 Int_t fSFF; //!forward stepping factor
78 Int_t fSFB; //!backward stepping factor
80 ClassDef(AliITSClusterFinderSSD, 1) //Class for clustering and reconstruction of space points in SSDs