]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSClusterFinderSSD.h
Adding MUON HLT code to the repository.
[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 //          SSD Cluster Finder                                             //
7 //                                                                         //
8 /////////////////////////////////////////////////////////////////////////////
9 //#include <TMath.h>
10 #include "AliITSClusterFinder.h"
11 //#include "AliITSsegmentationSSD.h"
12
13 class TArrayI;
14 class AliITSclusterSSD;
15 class AliITSpackageSSD;
16 class AliITSsegmentation;
17 class AliITSsegmentationSSD;
18 class AliITSresponse;
19 class AliITSresponseSSD;
20
21 class AliITSClusterFinderSSD: public AliITSClusterFinder{
22   public:
23     AliITSClusterFinderSSD();
24     AliITSClusterFinderSSD(AliITSsegmentation *seg,AliITSresponse *resp);
25     AliITSClusterFinderSSD(AliITSsegmentation *seg, TClonesArray *digits);
26     virtual ~AliITSClusterFinderSSD();
27     void FindRawClusters(Int_t module);
28
29   protected:
30     // copy constructor
31     AliITSClusterFinderSSD(const AliITSClusterFinderSSD &source);
32     // assignment operator
33     AliITSClusterFinderSSD& operator=(const AliITSClusterFinderSSD &source);
34     virtual AliITSresponseSSD* GetResp()const{
35         return (AliITSresponseSSD*) GetResponse();}//Return Response
36     //Returns fSegmentation
37     virtual AliITSsegmentationSSD* GetSeg()const{
38         return (AliITSsegmentationSSD*)GetSegmentation();} 
39     void      InitReconstruction();
40     Bool_t    CreateNewRecPoint(Double_t P,Double_t dP,Double_t N,Double_t dN,
41                                 Double_t Sig,Double_t dSig,
42                                 AliITSclusterSSD *clusterP,
43                                 AliITSclusterSSD *clusterN,Stat_t prob);
44     AliITSclusterSSD* GetPSideCluster(Int_t idx);
45     AliITSclusterSSD* GetNSideCluster(Int_t idx);
46     AliITSclusterSSD* GetCluster(Int_t idx, Bool_t side){
47     return (side) ? GetPSideCluster(idx) : GetNSideCluster(idx);};
48     void   FindNeighbouringDigits();
49     void   SeparateOverlappedClusters();
50     void   SplitCluster(TArrayI *list,Int_t nsplits,Int_t indx,Bool_t side);
51     Int_t  SortDigitsP(Int_t start, Int_t end);
52     Int_t  SortDigitsN(Int_t start, Int_t end);
53     void   FillDigitsIndex();
54     void   SortDigits();
55     void   FillClIndexArrays(Int_t* arrayP, Int_t *arrayN) const;
56     void   SortClusters(Int_t* arrayP, Int_t *arrayN);
57     Int_t  SortClustersP(Int_t start, Int_t end,Int_t *array);
58     Int_t  SortClustersN(Int_t start, Int_t end,Int_t *array);
59     void   ClustersToPackages();
60     Int_t  GetDiff(Double_t */*retx*/, Double_t */*rety*/) const {return 0;}
61     void   CalcStepFactor(Double_t Psteo, Double_t Nsteo );
62     Bool_t GetCrossing(Double_t &x, Double_t &z); //x, y of strips crossing
63     //x, y of strips crossing err.
64     void   GetCrossingError(Double_t& dp, Double_t& dn);
65
66     // Data memebers
67     TClonesArray    *fClusterP;      //!
68     Int_t            fNClusterP;     //!Number of P side clusters in the array
69     TClonesArray    *fClusterN;      //!Number of N side clusters in the array
70     Int_t            fNClusterN;     //!
71     TClonesArray    *fPackages;      //!packages  
72     Int_t            fNPackages;     //!
73     TArrayI         *fDigitsIndexP;  //!Digits on P side
74     Int_t            fNDigitsP;      //!Number of Digits on P side
75     TArrayI         *fDigitsIndexN;  //!Digits on N side
76     Int_t            fNDigitsN;      //!Number of Digits on N side
77
78     Double_t          fPitch;         //!Strip pitch
79     Double_t          fTanP;          //!Pside stereo angle tangent
80     Double_t          fTanN;          //!Nside stereo angle tangent
81
82 /*************************************************/
83 /**  parameters for reconstruction            ****/
84 /**  to be tune when slow simulation raliable ****/
85 /*************************************************/
86
87     //Double_t fAlpha1;         //!
88     //Double_t fAlpha2;         //!
89     //Double_t fAlpha3;         //!
90     Double_t fPNsignalRatio;  //!
91     
92     static const Bool_t fgkSIDEP;  //!
93     static const Bool_t fgkSIDEN;  //!
94
95     Int_t fSFF;              //!forward stepping factor 
96     Int_t fSFB;              //!backward stepping factor 
97
98     ClassDef(AliITSClusterFinderSSD,1) //Class for clustering and reconstruction of space points in SSDs 
99
100 };
101
102
103 #endif