4 //* This file is property of and copyright by the ALICE HLT Project *
5 //* ALICE Experiment at CERN, All rights reserved. *
6 //* See cxx source for full Copyright notice *
8 #ifndef ALIHLTTPCCAGBTRACKER_H
9 #define ALIHLTTPCCAGBTRACKER_H
13 class AliHLTTPCCATracker;
14 class AliHLTTPCCAGBTrack;
15 class AliHLTTPCCAGBHit;
21 * @class AliHLTTPCCAGBTracker
23 * Global Cellular Automaton-based HLT tracker for TPC detector
24 * The class reconstructs tracks in the whole TPC
25 * It calls the AliHLTTPCCATracker slice tracker and constructs
26 * the global TPC tracks by merging the slice tracks
28 * The tracker is designed stand-alone.
29 * It will be integrated to the HLT framework via AliHLTTPCCAGBTrackerComponent interface,
30 * and to off-line framework via TPC/AliTPCtrackerCA class
31 * The class is under construction.
34 class AliHLTTPCCAGBTracker:public TObject
39 AliHLTTPCCAGBTracker();
40 AliHLTTPCCAGBTracker(const AliHLTTPCCAGBTracker&);
41 AliHLTTPCCAGBTracker &operator=(const AliHLTTPCCAGBTracker&);
43 virtual ~AliHLTTPCCAGBTracker();
46 void SetNSlices( Int_t N );
47 void SetNHits( Int_t nHits );
49 void ReadHit( Double_t x, Double_t y, Double_t z,
50 Double_t ErrY, Double_t ErrZ, Int_t ID,
51 Int_t iSlice, Int_t iRow );
55 AliHLTTPCCATracker *Slices(){ return fSlices; }
56 AliHLTTPCCAGBHit *Hits(){ return fHits; }
57 Int_t NHits() const { return fNHits; }
58 Int_t NSlices() const { return fNSlices; }
59 Double_t StatTime( Int_t iTimer ) const { return fStatTime[iTimer]; }
60 Int_t StatNEvents() const { return fStatNEvents; }
61 Int_t NTracks() const { return fNTracks; }
62 AliHLTTPCCAGBTrack *Tracks(){ return fTracks; }
63 Int_t *TrackHits() {return fTrackHits; }
67 AliHLTTPCCATracker *fSlices; //* array of slice trackers
68 Int_t fNSlices; //* N slices
69 AliHLTTPCCAGBHit *fHits; //* hit array
70 Int_t fNHits; //* N hits in event
71 Int_t *fTrackHits; //* track->hits reference array
72 AliHLTTPCCAGBTrack *fTracks; //* array of tracks
73 Int_t fNTracks; //* N tracks
75 struct AliHLTTPCCAGBSliceTrackInfo{
76 Int_t fPrevNeighbour; //* neighbour in the previous slide
77 Int_t fNextNeighbour; //* neighbour in the next slide
78 Bool_t fUsed; //* is the slice track used by global tracks
81 AliHLTTPCCAGBSliceTrackInfo **fSliceTrackInfos; //* additional information for slice tracks
83 Double_t fStatTime[10]; //* time measured
84 Int_t fStatNEvents; //* n events proceed
86 ClassDef(AliHLTTPCCAGBTracker,1) //Base class for conformal mapping tracking