]>
Commit | Line | Data |
---|---|---|
a6c02c85 | 1 | // @(#) $Id$ |
2 | ||
3 | #ifndef ALIHLTTPCTRACKARRAY_H | |
4 | #define ALIHLTTPCTRACKARRAY_H | |
5 | ||
6 | #include "AliHLTTPCRootTypes.h" | |
7 | ||
8 | class AliHLTTPCConfMapTrack; | |
9 | class AliHLTTPCTrack; | |
10 | class AliHLTTPCTrackSegmentData; | |
11 | ||
12 | class AliHLTTPCTrackArray { | |
13 | ||
14 | private: | |
15 | ||
16 | Char_t fTrackType; //track type | |
17 | Int_t fSize; //size of arra | |
18 | Bool_t *fIsPresent;//! | |
19 | Int_t fNAbsent; //ntracks absent | |
20 | ||
21 | AliHLTTPCTrack **fTrack;//! | |
22 | Int_t fNTracks; //ntracks in | |
23 | ||
24 | UInt_t WriteConfMapTracks(AliHLTTPCTrackSegmentData* tr); | |
25 | void DeleteArray(); | |
26 | ||
27 | public: | |
28 | AliHLTTPCTrackArray(); | |
29 | AliHLTTPCTrackArray(Int_t ntrack); | |
30 | AliHLTTPCTrackArray(char* tracktype,Int_t ntrack); | |
31 | AliHLTTPCTrackArray(char* tracktype); | |
32 | virtual ~AliHLTTPCTrackArray(); | |
33 | Int_t GetTrackType(){return fTrackType;} | |
34 | Int_t GetSize() const {return fSize;} | |
35 | Bool_t SetSize(Int_t newsize=2000); | |
36 | ||
37 | Int_t GetNPresent() const {return (fNTracks- fNAbsent);} | |
38 | Int_t GetNTracks() const {return fNTracks;} | |
39 | AliHLTTPCTrack *NextTrack(); | |
40 | AliHLTTPCTrack *GetCheckedTrack(Int_t t){if(fIsPresent[t]) return fTrack[t]; return 0;} | |
41 | AliHLTTPCTrack *GetTrack(Int_t t){return fTrack[t];} | |
42 | ||
43 | void Remove(Int_t track); | |
44 | void RemoveLast() {fNTracks--;} | |
45 | void Compress(); | |
46 | void Reset(); | |
47 | void QSort(); | |
48 | void QSort( AliHLTTPCTrack **a, Int_t first, Int_t last); | |
49 | Int_t TrackCompare(AliHLTTPCTrack *a, AliHLTTPCTrack *b) const; | |
50 | ||
51 | void FillTracks(Int_t ntracks, AliHLTTPCTrackSegmentData* tr,Int_t slice); //Fill tracks and transform | |
52 | void FillTracks(Int_t ntracks, AliHLTTPCTrackSegmentData* tr); //Fill tracks | |
53 | UInt_t WriteTracks(AliHLTTPCTrackSegmentData* tr); //Write tracks | |
54 | UInt_t WriteTracks(UInt_t & ntracks,AliHLTTPCTrackSegmentData* tr); //Write tracks | |
55 | UInt_t GetOutSize(); | |
56 | UInt_t GetOutCount(){return (UInt_t) GetNPresent();} | |
57 | void AddTracks(AliHLTTPCTrackArray *newtrack,Bool_t remove_old=kTRUE,Int_t slice=-1);//add all Tracks to this | |
58 | void AddLast(AliHLTTPCTrack *track); | |
59 | ||
60 | ClassDef(AliHLTTPCTrackArray,1) //Track array class | |
61 | }; | |
62 | ||
63 | #endif |