]>
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 */ | |
04366a57 | 5 | ///////////////////////////////////////////////////////////////////////////// |
6 | // SSD Cluster Finder // | |
7 | // // | |
8 | ///////////////////////////////////////////////////////////////////////////// | |
aacedc3e | 9 | //#include <TMath.h> |
b0f5e3fc | 10 | #include "AliITSClusterFinder.h" |
aacedc3e | 11 | //#include "AliITSsegmentationSSD.h" |
b0f5e3fc | 12 | |
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; | |
e8189707 | 22 | |
fe15e140 | 23 | class AliITSClusterFinderSSD: public AliITSClusterFinder{ |
aacedc3e | 24 | public: |
fe15e140 | 25 | AliITSClusterFinderSSD(); |
8ba39da9 | 26 | AliITSClusterFinderSSD(AliITSDetTypeRec* dettyp); |
27 | AliITSClusterFinderSSD(AliITSDetTypeRec* dettyp, TClonesArray *digits); | |
fe15e140 | 28 | virtual ~AliITSClusterFinderSSD(); |
aacedc3e | 29 | void FindRawClusters(Int_t module); |
b0f5e3fc | 30 | |
aacedc3e | 31 | protected: |
04366a57 | 32 | // copy constructor |
33 | AliITSClusterFinderSSD(const AliITSClusterFinderSSD &source); | |
34 | // assignment operator | |
35 | AliITSClusterFinderSSD& operator=(const AliITSClusterFinderSSD &source); | |
aacedc3e | 36 | //Returns fSegmentation |
37 | virtual AliITSsegmentationSSD* GetSeg()const{ | |
8ba39da9 | 38 | return (AliITSsegmentationSSD*)fDetTypeRec->GetSegmentationModel(2);} |
fe15e140 | 39 | void InitReconstruction(); |
aacedc3e | 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); | |
fe15e140 | 44 | AliITSclusterSSD* GetPSideCluster(Int_t idx); |
45 | AliITSclusterSSD* GetNSideCluster(Int_t idx); | |
aacedc3e | 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); | |
fe15e140 | 65 | |
66 | // Data memebers | |
fe15e140 | 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 | ||
aacedc3e | 78 | Double_t fPitch; //!Strip pitch |
79 | Double_t fTanP; //!Pside stereo angle tangent | |
80 | Double_t fTanN; //!Nside stereo angle tangent | |
b0f5e3fc | 81 | |
82 | /*************************************************/ | |
83 | /** parameters for reconstruction ****/ | |
84 | /** to be tune when slow simulation raliable ****/ | |
fe15e140 | 85 | /*************************************************/ |
e8189707 | 86 | |
aacedc3e | 87 | //Double_t fAlpha1; //! |
88 | //Double_t fAlpha2; //! | |
89 | //Double_t fAlpha3; //! | |
90 | Double_t fPNsignalRatio; //! | |
b0f5e3fc | 91 | |
fe15e140 | 92 | static const Bool_t fgkSIDEP; //! |
93 | static const Bool_t fgkSIDEN; //! | |
be33dccb | 94 | |
fe15e140 | 95 | Int_t fSFF; //!forward stepping factor |
96 | Int_t fSFB; //!backward stepping factor | |
b0f5e3fc | 97 | |
aacedc3e | 98 | ClassDef(AliITSClusterFinderSSD,1) //Class for clustering and reconstruction of space points in SSDs |
b0f5e3fc | 99 | |
100 | }; | |
101 | ||
102 | ||
103 | #endif |