]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/src/AliL3ClustFinder.h
Get the Bfield from AliL3Transform
[u/mrichter/AliRoot.git] / HLT / src / AliL3ClustFinder.h
1 #ifndef ALIL3_ClustFinder
2 #define ALIL3_ClustFinder
3
4 #include "AliL3RootTypes.h"
5 class AliL3Transform;
6
7 #define FLAG_ONEPAD         1 //cluster had only one pad
8 #define FLAG_DOUBLE_PAD     2
9 #define FLAG_DOUBLE_T       1//4
10 #define PARAM1              1//4
11 #define MAX_C               112 //Maximum number of clusters on 1 pad.
12
13
14
15 struct resx 
16 {
17   UInt_t t ;
18   UInt_t pad ;
19   UInt_t charge ;
20   UInt_t flags ;
21   Int_t  mean ;
22   UInt_t falling ;
23   UInt_t scharge ;
24   
25   Int_t trackID[3];
26 };
27 typedef struct resx resx;
28
29 class AliL3DigitRowData;
30 class AliL3SpacePointData;
31
32 class AliL3ClustFinder {
33
34  private:
35     
36   AliL3Transform *fTransform; //!
37
38   UInt_t fNDigitRowData;
39   AliL3DigitRowData *fDigitRowData; //!
40
41   
42   AliL3SpacePointData *fSpacePointData; //!
43   Int_t fNClusters;
44   Int_t fMaxNClusters;
45   Int_t fFirstRow;
46   Int_t fLastRow;
47   Int_t fCurrentSlice;
48   Int_t fCurrentPatch;
49   Int_t fCurrentRow;
50   Bool_t fDeconvTime;
51   Bool_t fDeconvPad;
52   UInt_t fThreshold;
53
54   Float_t fXYErr;
55   Float_t fZErr;
56
57  public:
58   AliL3ClustFinder();
59   AliL3ClustFinder(AliL3Transform *transform);
60   virtual ~AliL3ClustFinder();
61
62   void SetTransformer( AliL3Transform *transform );
63   void InitSlice(Int_t slice,Int_t patch,Int_t firstrow, Int_t lastrow,Int_t maxpoints);
64   void InitSlice(Int_t slice,Int_t patch,Int_t maxpoints);
65   void Read(UInt_t ndigits,AliL3DigitRowData *ptr);
66   void ProcessDigits();
67   void ProcessRow(AliL3DigitRowData *tempPt);
68   void SetOutputArray(AliL3SpacePointData *pt);
69
70   void memcpy7(UInt_t *dst, UInt_t *src);
71   void mstore(UInt_t *r,UInt_t av,UInt_t pad,UInt_t ch,UInt_t flags,UInt_t mean,Int_t *trackID);
72   void WriteClusters(Int_t ncl,resx *r);
73   
74   void SetXYError(Float_t f) {fXYErr = f;}
75   void SetZError(Float_t f) {fZErr = f;}
76   
77   //Getters
78   Int_t GetNumberOfClusters() {return fNClusters;}
79
80   ClassDef(AliL3ClustFinder,1) 
81 };
82
83 #endif