]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/tracking-ca/AliHLTTPCCAGBTracker.h
added offline wrapper for HLT TPC CA tracker (Sergey)
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCAGBTracker.h
1 //-*- Mode: C++ -*-
2 // $Id$
3
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                               *
7
8 #ifndef ALIHLTTPCCAGBTRACKER_H
9 #define ALIHLTTPCCAGBTRACKER_H
10
11 #include "TObject.h"
12
13 class AliHLTTPCCATracker;
14 class AliHLTTPCCAGBTrack;
15 class AliHLTTPCCAGBHit;
16 class TParticle;
17 class TProfile;
18
19
20 /**
21  * @class AliHLTTPCCAGBTracker
22  * 
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 
27  *
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.
32  *
33  */
34 class AliHLTTPCCAGBTracker:public TObject
35 {
36
37 public:
38
39   AliHLTTPCCAGBTracker();
40   AliHLTTPCCAGBTracker(const AliHLTTPCCAGBTracker&);
41   AliHLTTPCCAGBTracker &operator=(const AliHLTTPCCAGBTracker&);
42
43   virtual ~AliHLTTPCCAGBTracker();
44
45   void StartEvent();
46   void SetNSlices( Int_t N );
47   void SetNHits( Int_t nHits );
48
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 );
52
53   void FindTracks();
54   void Merging();
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; }
64
65 protected:
66
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
74
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
79   };
80
81   AliHLTTPCCAGBSliceTrackInfo **fSliceTrackInfos; //* additional information for slice tracks
82
83   Double_t fStatTime[10]; //* time measured
84   Int_t fStatNEvents;    //* n events proceed
85
86   ClassDef(AliHLTTPCCAGBTracker,1) //Base class for conformal mapping tracking
87 };
88
89 #endif