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