A fast HLT version of the SPD clusterfinder implemented.
[u/mrichter/AliRoot.git] / HLT / ITS / clusterfinders / AliHLTITSClusterFinderSPD.h
1 #ifndef ALIHLTITSCLUSTERFINDERSPD_H
2 #define ALIHLTITSCLUSTERFINDERSPD_H
3 //--------------------------------------------------------------
4 //                       ITS clusterer V2 for SPD
5 //
6 //   This can be a "wrapping" for the V1 cluster finding classes
7 //   if compiled with uncommented "#define V1" line 
8 //   in the AliITSclustererV2.cxx file.
9 //
10 //   Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch 
11 //--------------------------------------------------------------
12 #include "AliHLTITSClusterFinder.h"
13
14 class TClonesArray;
15 class AliRawReader;
16 class AliITSRawStream;
17 class AliITSRawStreamSPD;
18 class AliITSDetTypeRec;
19 class AliITSRecoParam;
20
21 class AliHLTITSClusterFinderSPD : public TObject 
22 {
23 public:
24   AliHLTITSClusterFinderSPD(AliITSDetTypeRec* dettyp);
25
26   virtual ~AliHLTITSClusterFinderSPD(){
27     delete[] fSignal2Bin;
28     delete[] fBin2Signal;
29   }
30   
31   void RawdataToClusters(AliRawReader* rawReader,std::vector<AliITSRecPoint> & clusters);  
32
33  protected:
34   
35   void FindClustersSPD(AliITSRawStreamSPD* input,std::vector<AliITSRecPoint> & clusters);
36   Int_t ClustersSPD( std::vector<AliITSRecPoint> & clusters,Int_t iModule );
37   void FindCluster(Int_t k,Int_t &n,Int_t *idx);
38
39   AliITSRecoParam *fRecoParam;
40   AliITSDetTypeRec* fDetTypeRec; //ITS object for reconstruction
41  // Data members needed to fill AliCluster objects
42   Int_t fNdet[2200];           // detector index  
43   Int_t fNlayer[2200];         // detector layer  
44   Int_t fNModules;             // total number of modules    
45
46   Int_t fLastSPD1;       //index of the last SPD1 detector
47   Int_t fNySPD;          //number of pixels in Y
48   Int_t fNzSPD;          //number of pixels in Z
49   Int_t fNzBins;
50   Int_t fNyBins;
51   Int_t fMaxBin;
52
53   Float_t fYpitchSPD;    //pixel size in Y
54   Float_t fZ1pitchSPD,fZ2pitchSPD;    //pixel sizes in Z
55   Float_t fHwSPD;        //half width of the SPD detector
56   Float_t fHlSPD;        //half length of the SPD detector
57   Float_t fYSPD[260];    //Y-coordinates of pixel centers
58   Float_t fZSPD[170];    //Z-coordinates of pixel centers
59
60   Int_t fNSignals;
61   UShort_t *fSignal2Bin; // array of input SPD signals
62   UShort_t *fBin2Signal; // 2D map of SPD signals;
63
64   ClassDef(AliHLTITSClusterFinderSPD,0)  // ITS cluster finder V2 for SPD
65 };
66
67 #endif