]>
Commit | Line | Data |
---|---|---|
735e167e | 1 | #ifndef AliL3_Modeller |
2 | #define AliL3_Modeller | |
3 | ||
4 | ||
5 | #include "AliL3RootTypes.h" | |
6 | ||
7 | class AliL3TrackArray; | |
8 | class AliL3MemHandler; | |
9 | class AliL3DigitRowData; | |
029912b7 | 10 | class AliL3ModelTrack; |
735e167e | 11 | |
12 | struct Cluster { | |
13 | UInt_t fCharge; | |
14 | UInt_t fPad; | |
15 | UInt_t fTime; | |
16 | UInt_t fSigmaY2; | |
17 | UInt_t fSigmaZ2; | |
18 | }; | |
19 | ||
20 | struct Digit { | |
21 | Short_t fCharge; | |
22 | Bool_t fUsed; | |
23 | }; | |
24 | ||
25 | class AliL3Modeller { | |
26 | ||
27 | private: | |
28 | ||
29 | AliL3TrackArray *fTracks; //! | |
30 | AliL3MemHandler *fMemHandler; //! | |
31 | AliL3DigitRowData *fRowData;//! | |
029912b7 | 32 | |
735e167e | 33 | Int_t fNClusters; |
34 | Int_t fMaxClusters; | |
8487f697 | 35 | Int_t fCurrentPadRow; |
735e167e | 36 | |
37 | Float_t fPadOverlap; | |
38 | Float_t fTimeOverlap; | |
f64c4364 | 39 | Int_t fPadSearch; |
40 | Int_t fTimeSearch; | |
029912b7 | 41 | Int_t fTrackThreshold; //minimum weigth track need in order to be included.(=Nhits/weight) |
735e167e | 42 | |
43 | Int_t fSlice; | |
44 | Int_t fPatch; | |
be6ddb10 | 45 | Char_t fPath[100]; |
4a838220 | 46 | |
47 | void FillCluster(AliL3ModelTrack *track,Cluster *cluster,Int_t row,Int_t npads); | |
735e167e | 48 | void CalcClusterWidth(Cluster *cl,Float_t &sigmaY2,Float_t &sigmaZ2); |
95a00d93 | 49 | void FillZeros(AliL3DigitRowData *digPt,Digit *row); |
fe1c53fa | 50 | Bool_t CheckCluster(Digit *row,Int_t hitpad,Int_t hittime); |
51 | ||
735e167e | 52 | public: |
53 | ||
54 | AliL3Modeller(); | |
55 | virtual ~AliL3Modeller(); | |
56 | ||
8487f697 | 57 | void Init(Int_t slice,Int_t patch,Char_t *trackdata,Char_t *path,Bool_t houghtracks,Bool_t binary=kTRUE); |
029912b7 | 58 | void FindClusters(); |
735e167e | 59 | void CheckForOverlaps(); |
60 | void CalculateCrossingPoints(); | |
be6ddb10 | 61 | void WriteRemaining(); |
95a00d93 | 62 | |
735e167e | 63 | void SetInputData(AliL3DigitRowData *digits) {fRowData = digits;} |
2357bb38 | 64 | void SetTrackThreshold(Int_t i=0) {fTrackThreshold=i;} |
65 | void SetOverlap(Int_t p=6,Int_t t=8) {fPadOverlap=p;fTimeOverlap=t;} | |
f64c4364 | 66 | void SetSearchRange(Int_t p=1,Int_t t=2) {fPadSearch=p;fTimeSearch=t;} |
67 | ||
95a00d93 | 68 | AliL3TrackArray *GetTracks() {return fTracks;} |
735e167e | 69 | |
70 | ClassDef(AliL3Modeller,1) //Modeller class | |
71 | ||
72 | }; | |
73 | ||
74 | #endif |