]>
Commit | Line | Data |
---|---|---|
b0f5e3fc | 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 */ | |
14a74335 | 5 | |
aacedc3e | 6 | //#include <TMath.h> |
b0f5e3fc | 7 | #include "AliITSClusterFinder.h" |
aacedc3e | 8 | //#include "AliITSsegmentationSSD.h" |
8ba39da9 | 9 | #include "AliITSDetTypeRec.h" |
10 | ||
eb08b98f | 11 | class TArrayI; |
e8189707 | 12 | class AliITSclusterSSD; |
13 | class AliITSpackageSSD; | |
aacedc3e | 14 | class AliITSsegmentation; |
15 | class AliITSsegmentationSSD; | |
16 | class AliITSresponse; | |
17 | class AliITSresponseSSD; | |
14a74335 | 18 | class AliITSCalibration; |
19 | class AliITSCalibrationSSD; | |
e8189707 | 20 | |
fe15e140 | 21 | class AliITSClusterFinderSSD: public AliITSClusterFinder{ |
b0f5e3fc | 22 | |
14a74335 | 23 | public: |
24 | AliITSClusterFinderSSD(); | |
25 | AliITSClusterFinderSSD(AliITSDetTypeRec* dettyp); | |
26 | AliITSClusterFinderSSD(AliITSDetTypeRec* dettyp, TClonesArray *digits); | |
e56160b8 | 27 | |
14a74335 | 28 | // AliITSClusterFinderSSD(AliITSsegmentation *seg, TClonesArray *digits); |
29 | virtual ~AliITSClusterFinderSSD(); | |
30 | void FindRawClusters(Int_t module); | |
31 | ||
32 | protected: | |
e56160b8 | 33 | |
34 | AliITSClusterFinderSSD(const AliITSClusterFinderSSD &source); // Copy constructor | |
35 | AliITSClusterFinderSSD& operator=(const AliITSClusterFinderSSD &source);// = operator | |
36 | ||
37 | virtual AliITSsegmentationSSD* GetSeg()const{ | |
14a74335 | 38 | return (AliITSsegmentationSSD*)fDetTypeRec->GetSegmentationModel(2);} |
39 | void InitReconstruction(); | |
40 | Bool_t CreateNewRecPoint(Float_t P, Float_t dP, Float_t N, Float_t dN, | |
41 | Float_t Sig,Float_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 | void FindNeighbouringDigits(Int_t module); | |
48 | void SeparateOverlappedClusters(); | |
49 | void SplitCluster(TArrayI *list,Int_t nsplits,Int_t indx,Bool_t side); | |
50 | Int_t SortDigitsP(Int_t start, Int_t end); | |
51 | Int_t SortDigitsN(Int_t start, Int_t end); | |
52 | void FillDigitsIndex(); | |
53 | void SortDigits(); | |
54 | void FillClIndexArrays(Int_t* arrayP, Int_t *arrayN) const; | |
55 | void SortClusters(Int_t* arrayP, Int_t *arrayN); | |
56 | Int_t SortClustersP(Int_t start, Int_t end,Int_t *array); | |
57 | Int_t SortClustersN(Int_t start, Int_t end,Int_t *array); | |
58 | void ClustersToPackages(); | |
59 | Int_t GetDiff(Float_t */*retx*/, Float_t */*rety*/) const {return 0;} | |
60 | void CalcStepFactor(Float_t Psteo, Float_t Nsteo ); | |
61 | Bool_t GetCrossing(Float_t &x, Float_t &z); //x, y of strips crossing | |
62 | void GetCrossingError(Float_t& dp, Float_t& dn);//x, y of strips crossing err. | |
63 | virtual AliITSCalibrationSSD* GetResp(Int_t mod)const{ | |
64 | return (AliITSCalibrationSSD*) fDetTypeRec->GetCalibrationModel(mod);}//Return Response | |
14a74335 | 65 | |
66 | // Data memebers | |
67 | // AliITS *fITS; //!Pointer to AliITS object | |
68 | TClonesArray *fClusterP; //! | |
69 | Int_t fNClusterP; //!Number of P side clusters in the array | |
70 | TClonesArray *fClusterN; //!Number of N side clusters in the array | |
71 | Int_t fNClusterN; //! | |
72 | TClonesArray *fPackages; //!packages | |
73 | Int_t fNPackages; //! | |
74 | TArrayI *fDigitsIndexP; //!Digits on P side | |
75 | Int_t fNDigitsP; //!Number of Digits on P side | |
76 | TArrayI *fDigitsIndexN; //!Digits on N side | |
77 | Int_t fNDigitsN; //!Number of Digits on N side | |
78 | ||
79 | Float_t fPitch; //!Strip pitch | |
80 | Float_t fTanP; //!Pside stereo angle tangent | |
81 | Float_t fTanN; //!Nside stereo angle tangent | |
82 | ||
83 | //Float_t **fNoise; | |
84 | ||
85 | /*************************************************/ | |
86 | /** parameters for reconstruction ****/ | |
87 | /** to be tune when slow simulation raliable ****/ | |
88 | /*************************************************/ | |
89 | ||
90 | //Float_t fAlpha1; //! | |
91 | //Float_t fAlpha2; //! | |
92 | //Float_t fAlpha3; //! | |
93 | Float_t fPNsignalRatio; //! | |
94 | ||
95 | static const Bool_t fgkSIDEP; //! | |
96 | static const Bool_t fgkSIDEN; //! | |
97 | ||
98 | static const Int_t fgkNoiseThreshold; // at least one strip in the cluster has to have a signal > fgkNoiseThresold*noise | |
99 | ||
100 | Int_t fSFF; //!forward stepping factor | |
101 | Int_t fSFB; //!backward stepping factor | |
102 | ||
103 | ClassDef(AliITSClusterFinderSSD, 1) //Class for clustering and reconstruction of space points in SSDs | |
104 | ||
105 | }; | |
106 | ||
b0f5e3fc | 107 | |
b0f5e3fc | 108 | #endif |