]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/src/AliL3ClustFinderNew.h
Cleaned up code for coding conventions.
[u/mrichter/AliRoot.git] / HLT / src / AliL3ClustFinderNew.h
1 // @(#) $Id$
2
3 #ifndef AliL3_ClustFinderNew
4 #define AliL3_ClustFinderNew
5
6 #include "AliL3RootTypes.h"
7
8
9 struct AliClusterData
10 {
11   UInt_t fTotalCharge;
12   UInt_t fPad;
13   UInt_t fTime;
14   UInt_t fPad2;     //for error in XY direction
15   ULong64_t fTime2; //for error in Z  direction
16   UInt_t fMean;
17   UInt_t fFlags;
18   UInt_t fChargeFalling; //for deconvolution
19   UInt_t fLastCharge;    //for deconvolution
20   UInt_t fLastMergedPad; //dont merge twice per pad
21 };
22 typedef struct AliClusterData AliClusterData;
23
24 class AliL3DigitRowData;
25 class AliL3SpacePointData;
26
27 class AliL3ClustFinderNew {
28  
29  private:
30   
31   AliL3DigitRowData *fDigitRowData; //!
32   AliL3SpacePointData *fSpacePointData; //!
33   Bool_t fDeconvTime; //deconv in time direction
34   Bool_t fDeconvPad;  //deconv in pad direction
35   Bool_t fStdout;     //have print out in write clusters
36   Bool_t fCalcerr;    //calculate centroid sigmas
37   Bool_t fRawSP;      //store centroids in raw system
38
39   UInt_t fNDigitRowData; //ndigts on row
40   Int_t fFirstRow;       //first row
41   Int_t fLastRow;        //last row
42   Int_t fCurrentRow;     //current active row
43   Int_t fCurrentSlice;   //current slice
44   Int_t fCurrentPatch;   //current patch
45   Int_t fMatch;          //size of match
46   UInt_t fThreshold;     //threshold for clusters
47   Int_t fNClusters;      //number of found clusters
48   Int_t fMaxNClusters;   //max. number of clusters
49   Float_t fXYErr;        //fixed error in XY
50   Float_t fZErr;         //fixed error in Z
51
52 #ifdef do_mc
53   void GetTrackID(Int_t pad,Int_t time,Int_t *trackID);
54 #endif
55   
56  public:
57   AliL3ClustFinderNew();
58   virtual ~AliL3ClustFinderNew();
59   
60   void Read(UInt_t ndigits,AliL3DigitRowData *ptr);
61   void InitSlice(Int_t slice,Int_t patch,Int_t firstrow, Int_t lastrow,Int_t maxpoints);
62   void InitSlice(Int_t slice,Int_t patch,Int_t maxpoints);
63   void ProcessDigits();
64   void ProcessRow(AliL3DigitRowData *tempPt);
65   void SetOutputArray(AliL3SpacePointData *pt);
66   void WriteClusters(Int_t n_clusters,AliClusterData *list);
67
68   void SetXYError(Float_t f) {fXYErr=f;}
69   void SetZError(Float_t f) {fZErr=f;}
70   void SetDeconv(Bool_t f) {fDeconvPad=f; fDeconvTime=f;}
71   void SetThreshold(UInt_t i) {fThreshold=i;}
72   void SetMatchWidth(UInt_t i) {fMatch=i;}
73   void SetSTDOutput(Bool_t f=kFALSE) {fStdout=f;}  
74   void SetCalcErr(Bool_t f=kTRUE) {fCalcerr=f;}
75   void SetRawSP(Bool_t f=kFALSE) {fRawSP=f;}
76   Int_t GetNumberOfClusters() const {return fNClusters;}
77   
78   ClassDef(AliL3ClustFinderNew,1) //Fast cluster finder
79
80 };
81
82 #endif
83
84