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