]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/src/AliL3ClustFinderNew.h
added the delete of EMCAL object posted in the folder when new file is opened
[u/mrichter/AliRoot.git] / HLT / src / AliL3ClustFinderNew.h
1 #ifndef AliL3_ClustFinderNew
2 #define AliL3_ClustFinderNew
3
4 #include "AliL3RootTypes.h"
5
6
7 struct ClusterData
8 {
9   UInt_t fTotalCharge;
10   UInt_t fPad;
11   UInt_t fTime;
12   UInt_t fPad2;  //for error in XY direction
13   UInt_t fTime2; //for error in Z  direction
14   UInt_t fMean;
15   UInt_t fFlags;
16   UInt_t fChargeFalling; //for deconvolution
17   UInt_t fLastCharge;    //for deconvolution
18   UInt_t fLastMergedPad; //dont merge twice per pad
19 };
20 typedef struct ClusterData ClusterData;
21
22 class AliL3DigitRowData;
23 class AliL3SpacePointData;
24
25 class AliL3ClustFinderNew {
26  
27  private:
28   
29   AliL3DigitRowData *fDigitRowData; //!
30   AliL3SpacePointData *fSpacePointData; //!
31   Bool_t fDeconvTime;
32   Bool_t fDeconvPad;
33   Bool_t fstdout;
34   Bool_t fcalcerr;
35
36   UInt_t fNDigitRowData;
37   Int_t fFirstRow;
38   Int_t fLastRow;
39   Int_t fCurrentRow;
40   Int_t fCurrentSlice;
41   Int_t fCurrentPatch;
42   Int_t fMatch;
43   UInt_t fThreshold;
44   Int_t fNClusters;
45   Int_t fMaxNClusters;
46   Float_t fXYErr;
47   Float_t fZErr;
48
49 #ifdef do_mc
50   void GetTrackID(Int_t pad,Int_t time,Int_t *trackID);
51 #endif
52   
53  public:
54   AliL3ClustFinderNew();
55   virtual ~AliL3ClustFinderNew();
56   
57   void Read(UInt_t ndigits,AliL3DigitRowData *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(AliL3DigitRowData *tempPt);
62   void SetOutputArray(AliL3SpacePointData *pt);
63   void WriteClusters(Int_t n_clusters,ClusterData *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
73   Int_t GetNumberOfClusters() {return fNClusters;}
74   
75   ClassDef(AliL3ClustFinderNew,1) //Fast cluster finder
76
77 };
78
79 #endif
80
81