]>
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); | |
27 | // AliITSClusterFinderSSD(AliITSsegmentation *seg, TClonesArray *digits); | |
28 | virtual ~AliITSClusterFinderSSD(); | |
29 | void FindRawClusters(Int_t module); | |
30 | ||
31 | protected: | |
aacedc3e | 32 | virtual AliITSsegmentationSSD* GetSeg()const{ |
14a74335 | 33 | return (AliITSsegmentationSSD*)fDetTypeRec->GetSegmentationModel(2);} |
34 | void InitReconstruction(); | |
35 | Bool_t CreateNewRecPoint(Float_t P, Float_t dP, Float_t N, Float_t dN, | |
36 | Float_t Sig,Float_t dSig, | |
37 | AliITSclusterSSD *clusterP, | |
38 | AliITSclusterSSD *clusterN,Stat_t prob); | |
39 | AliITSclusterSSD* GetPSideCluster(Int_t idx); | |
40 | AliITSclusterSSD* GetNSideCluster(Int_t idx); | |
41 | AliITSclusterSSD* GetCluster(Int_t idx, Bool_t side); | |
42 | void FindNeighbouringDigits(Int_t module); | |
43 | void SeparateOverlappedClusters(); | |
44 | void SplitCluster(TArrayI *list,Int_t nsplits,Int_t indx,Bool_t side); | |
45 | Int_t SortDigitsP(Int_t start, Int_t end); | |
46 | Int_t SortDigitsN(Int_t start, Int_t end); | |
47 | void FillDigitsIndex(); | |
48 | void SortDigits(); | |
49 | void FillClIndexArrays(Int_t* arrayP, Int_t *arrayN) const; | |
50 | void SortClusters(Int_t* arrayP, Int_t *arrayN); | |
51 | Int_t SortClustersP(Int_t start, Int_t end,Int_t *array); | |
52 | Int_t SortClustersN(Int_t start, Int_t end,Int_t *array); | |
53 | void ClustersToPackages(); | |
54 | Int_t GetDiff(Float_t */*retx*/, Float_t */*rety*/) const {return 0;} | |
55 | void CalcStepFactor(Float_t Psteo, Float_t Nsteo ); | |
56 | Bool_t GetCrossing(Float_t &x, Float_t &z); //x, y of strips crossing | |
57 | void GetCrossingError(Float_t& dp, Float_t& dn);//x, y of strips crossing err. | |
58 | virtual AliITSCalibrationSSD* GetResp(Int_t mod)const{ | |
59 | return (AliITSCalibrationSSD*) fDetTypeRec->GetCalibrationModel(mod);}//Return Response | |
14a74335 | 60 | |
61 | // Data memebers | |
62 | // AliITS *fITS; //!Pointer to AliITS object | |
63 | TClonesArray *fClusterP; //! | |
64 | Int_t fNClusterP; //!Number of P side clusters in the array | |
65 | TClonesArray *fClusterN; //!Number of N side clusters in the array | |
66 | Int_t fNClusterN; //! | |
67 | TClonesArray *fPackages; //!packages | |
68 | Int_t fNPackages; //! | |
69 | TArrayI *fDigitsIndexP; //!Digits on P side | |
70 | Int_t fNDigitsP; //!Number of Digits on P side | |
71 | TArrayI *fDigitsIndexN; //!Digits on N side | |
72 | Int_t fNDigitsN; //!Number of Digits on N side | |
73 | ||
74 | Float_t fPitch; //!Strip pitch | |
75 | Float_t fTanP; //!Pside stereo angle tangent | |
76 | Float_t fTanN; //!Nside stereo angle tangent | |
77 | ||
78 | //Float_t **fNoise; | |
79 | ||
80 | /*************************************************/ | |
81 | /** parameters for reconstruction ****/ | |
82 | /** to be tune when slow simulation raliable ****/ | |
83 | /*************************************************/ | |
84 | ||
85 | //Float_t fAlpha1; //! | |
86 | //Float_t fAlpha2; //! | |
87 | //Float_t fAlpha3; //! | |
88 | Float_t fPNsignalRatio; //! | |
89 | ||
90 | static const Bool_t fgkSIDEP; //! | |
91 | static const Bool_t fgkSIDEN; //! | |
92 | ||
93 | static const Int_t fgkNoiseThreshold; // at least one strip in the cluster has to have a signal > fgkNoiseThresold*noise | |
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 | ||
b0f5e3fc | 102 | |
b0f5e3fc | 103 | #endif |