7 #include "AliL3RootTypes.h"
10 class AliL3MemHandler;
11 class AliL3DigitRowData;
12 class AliL3ModelTrack;
27 struct ClusterRegion {
36 Bool_t CheckCluster(Int_t hitpad,Int_t hittime);
39 Int_t fTrackThreshold; //minimum weigth track need in order to be included.(=Nhits/weight)
40 AliL3MemHandler *fMemHandler; //!
42 void CalcClusterWidth(Cluster *cl,Float_t &sigmaY2,Float_t &sigmaZ2);
46 AliL3TrackArray *fTracks; //!
47 AliL3DigitRowData *fRowData;//!
59 Int_t fInnerPadSearch;
60 Int_t fInnerTimeSearch;
61 Int_t fOuterPadSearch;
62 Int_t fOuterTimeSearch;
67 void FillCluster(AliL3ModelTrack *track,Cluster *cluster,Int_t row,Int_t npads);
68 void FillZeros(AliL3DigitRowData *digPt,Bool_t reversesign=kFALSE);
69 void LocateCluster(AliL3ModelTrack *track,ClusterRegion *region,Int_t &padmin,Int_t &padmax);
70 void GetTrackID(Int_t pad,Int_t time,Int_t *trackID);
75 virtual ~AliL3Modeller();
77 virtual void FindClusters();
78 void Init(Int_t slice,Int_t patch,Char_t *trackdata,Char_t *path,Bool_t houghtracks,Bool_t binary=kTRUE);
79 void CheckForOverlaps(Float_t dangle=-1,Int_t *rowrange=0);
80 void CalculateCrossingPoints();
81 void RemoveBadTracks();
82 void WriteRemaining();
84 void SetInputData(AliL3DigitRowData *digits) {fRowData = digits;}
85 void SetTrackThreshold(Int_t i=0) {fTrackThreshold=i;}
86 void SetOverlap(Int_t p=6,Int_t t=8) {fPadOverlap=p;fTimeOverlap=t;}
87 void SetSearchRange(Int_t p=1,Int_t t=2) {fPadSearch=p;fTimeSearch=t;}
88 void SetInnerSearchRange(Int_t p,Int_t t) {fInnerPadSearch=p; fInnerTimeSearch=t;}
89 void SetOuterSearchRange(Int_t p,Int_t t) {fOuterPadSearch=p; fOuterTimeSearch=t;}
90 void SetMaxClusterRange(Int_t p,Int_t t) {fMaxPads=p; fMaxTimebins=t;}
91 void Debug() {fDebug=kTRUE;}
92 virtual void SetFitRange(Int_t p,Int_t t) {return;}
93 virtual void SetNmaxOverlaps(Int_t i) {return;}
94 virtual void SetChiSqMax(Float_t f) {return;}
96 AliL3TrackArray *GetTracks() {return fTracks;}
98 ClassDef(AliL3Modeller,1) //Modeller class