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