3 #ifndef ALIL3TRACKARRAY_H
4 #define ALIL3TRACKARRAY_H
6 #include "AliHLTRootTypes.h"
8 class AliHLTConfMapTrack;
10 class AliHLTTrackSegmentData;
12 class AliHLTTrackArray {
16 Char_t fTrackType; //track type
17 Int_t fSize; //size of arra
18 Bool_t *fIsPresent;//!
19 Int_t fNAbsent; //ntracks absent
21 AliHLTTrack **fTrack;//!
22 Int_t fNTracks; //ntracks in
24 UInt_t WriteConfMapTracks(AliHLTTrackSegmentData* tr);
29 AliHLTTrackArray(Int_t ntrack);
30 AliHLTTrackArray(char* tracktype,Int_t ntrack);
31 AliHLTTrackArray(char* tracktype);
32 virtual ~AliHLTTrackArray();
33 Int_t GetTrackType(){return fTrackType;}
34 Int_t GetSize() const {return fSize;}
35 Bool_t SetSize(Int_t newsize=2000);
37 Int_t GetNPresent() const {return (fNTracks- fNAbsent);}
38 Int_t GetNTracks() const {return fNTracks;}
39 AliHLTTrack *NextTrack();
40 AliHLTTrack *GetCheckedTrack(Int_t t){if(fIsPresent[t]) return fTrack[t]; return 0;}
41 AliHLTTrack *GetTrack(Int_t t){return fTrack[t];}
43 void Remove(Int_t track);
44 void RemoveLast() {fNTracks--;}
48 void QSort( AliHLTTrack **a, Int_t first, Int_t last);
49 Int_t TrackCompare(AliHLTTrack *a, AliHLTTrack *b) const;
51 void FillTracks(Int_t ntracks, AliHLTTrackSegmentData* tr,Int_t slice); //Fill tracks and transform
52 void FillTracks(Int_t ntracks, AliHLTTrackSegmentData* tr); //Fill tracks
53 UInt_t WriteTracks(AliHLTTrackSegmentData* tr); //Write tracks
54 UInt_t WriteTracks(UInt_t & ntracks,AliHLTTrackSegmentData* tr); //Write tracks
56 UInt_t GetOutCount(){return (UInt_t) GetNPresent();}
57 void AddTracks(AliHLTTrackArray *newtrack,Bool_t remove_old=kTRUE,Int_t slice=-1);//add all Tracks to this
58 void AddLast(AliHLTTrack *track);
60 ClassDef(AliHLTTrackArray,1) //Track array class
63 typedef AliHLTTrackArray AliL3TrackArray; // for backward compatibility