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