]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSClusterFinderSSD.h
Changes by Massimo Masera to allow Recpoints and Clusters to be written
[u/mrichter/AliRoot.git] / ITS / AliITSClusterFinderSSD.h
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                               */
5
6 #include <TMath.h>
7 #include "AliITSClusterFinder.h"
8 #include "AliITSsegmentationSSD.h"
9
10 class TArrayI;
11 class AliITSclusterSSD;
12 class AliITSpackageSSD;
13
14 class AliITSClusterFinderSSD: public AliITSClusterFinder{
15  public:
16     AliITSClusterFinderSSD();
17     AliITSClusterFinderSSD(AliITSsegmentation *seg, TClonesArray *digits);
18     virtual ~AliITSClusterFinderSSD();
19     void FindRawClusters(Int_t module);    
20
21  protected:
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();
36     void      SortDigits();
37     void      FillClIndexArrays(Int_t* arrayP, Int_t *arrayN);
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) {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&, Float_t&);//x, y of strips crossing err.
46
47     // Data memebers
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
52     Int_t            fNClusterN;     //!
53     TClonesArray    *fPackages;      //!packages  
54     Int_t            fNPackages;     //!
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
59
60     Float_t          fPitch;         //!Strip pitch
61     Float_t          fTanP;          //!Pside stereo angle tangent
62     Float_t          fTanN;          //!Nside stereo angle tangent
63
64 /*************************************************/
65 /**  parameters for reconstruction            ****/
66 /**  to be tune when slow simulation raliable ****/
67 /*************************************************/
68
69     //Float_t fAlpha1;         //!
70     //Float_t fAlpha2;         //!
71     //Float_t fAlpha3;         //!
72     Float_t fPNsignalRatio;  //!
73     
74     static const Bool_t fgkSIDEP;  //!
75     static const Bool_t fgkSIDEN;  //!
76
77     Int_t fSFF;              //!forward stepping factor 
78     Int_t fSFB;              //!backward stepping factor 
79
80  public:
81     ClassDef(AliITSClusterFinderSSD, 1) //Class for clustering and reconstruction of space points in SSDs 
82
83 };
84
85
86 #endif