]>
Commit | Line | Data |
---|---|---|
d54804bf | 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 | ||
00d07bcd | 11 | #include "AliHLTTPCCADef.h" |
12 | #include <iostream.h> | |
d54804bf | 13 | |
14 | class AliHLTTPCCATracker; | |
15 | class AliHLTTPCCAGBTrack; | |
16 | class AliHLTTPCCAGBHit; | |
17 | class TParticle; | |
18 | class TProfile; | |
eb30eb49 | 19 | class AliHLTTPCCATrackParam; |
d54804bf | 20 | |
21 | /** | |
22 | * @class AliHLTTPCCAGBTracker | |
23 | * | |
24 | * Global Cellular Automaton-based HLT tracker for TPC detector | |
25 | * The class reconstructs tracks in the whole TPC | |
26 | * It calls the AliHLTTPCCATracker slice tracker and constructs | |
27 | * the global TPC tracks by merging the slice tracks | |
28 | * | |
29 | * The tracker is designed stand-alone. | |
30 | * It will be integrated to the HLT framework via AliHLTTPCCAGBTrackerComponent interface, | |
31 | * and to off-line framework via TPC/AliTPCtrackerCA class | |
32 | * The class is under construction. | |
33 | * | |
34 | */ | |
00d07bcd | 35 | class AliHLTTPCCAGBTracker |
d54804bf | 36 | { |
37 | ||
38 | public: | |
39 | ||
40 | AliHLTTPCCAGBTracker(); | |
41 | AliHLTTPCCAGBTracker(const AliHLTTPCCAGBTracker&); | |
42 | AliHLTTPCCAGBTracker &operator=(const AliHLTTPCCAGBTracker&); | |
43 | ||
00d07bcd | 44 | ~AliHLTTPCCAGBTracker(); |
d54804bf | 45 | |
46 | void StartEvent(); | |
47 | void SetNSlices( Int_t N ); | |
48 | void SetNHits( Int_t nHits ); | |
49 | ||
eb30eb49 | 50 | void ReadHit( Float_t x, Float_t y, Float_t z, |
51 | Float_t ErrY, Float_t ErrZ, Float_t amp, | |
52 | Int_t ID, Int_t iSlice, Int_t iRow ); | |
d54804bf | 53 | |
54 | void FindTracks(); | |
55 | void Merging(); | |
56 | AliHLTTPCCATracker *Slices(){ return fSlices; } | |
57 | AliHLTTPCCAGBHit *Hits(){ return fHits; } | |
58 | Int_t NHits() const { return fNHits; } | |
59 | Int_t NSlices() const { return fNSlices; } | |
eb30eb49 | 60 | Double_t Time() const { return fTime; } |
d54804bf | 61 | Double_t StatTime( Int_t iTimer ) const { return fStatTime[iTimer]; } |
62 | Int_t StatNEvents() const { return fStatNEvents; } | |
63 | Int_t NTracks() const { return fNTracks; } | |
64 | AliHLTTPCCAGBTrack *Tracks(){ return fTracks; } | |
65 | Int_t *TrackHits() {return fTrackHits; } | |
eb30eb49 | 66 | void GetErrors2( AliHLTTPCCAGBHit &h, AliHLTTPCCATrackParam &t, Float_t &Err2Y, Float_t &Err2Z ); |
67 | void GetErrors2( Int_t iSlice, Int_t iRow, AliHLTTPCCATrackParam &t, Float_t &Err2Y, Float_t &Err2Z ); | |
68 | ||
00d07bcd | 69 | void WriteSettings( ostream &out ) const; |
eb30eb49 | 70 | void ReadSettings( istream &in ); |
00d07bcd | 71 | void WriteEvent( ostream &out ) const; |
eb30eb49 | 72 | void ReadEvent( istream &in ); |
00d07bcd | 73 | void WriteTracks( ostream &out ) const; |
eb30eb49 | 74 | void ReadTracks( istream &in ); |
d54804bf | 75 | |
76 | protected: | |
77 | ||
78 | AliHLTTPCCATracker *fSlices; //* array of slice trackers | |
79 | Int_t fNSlices; //* N slices | |
80 | AliHLTTPCCAGBHit *fHits; //* hit array | |
81 | Int_t fNHits; //* N hits in event | |
82 | Int_t *fTrackHits; //* track->hits reference array | |
83 | AliHLTTPCCAGBTrack *fTracks; //* array of tracks | |
84 | Int_t fNTracks; //* N tracks | |
85 | ||
86 | struct AliHLTTPCCAGBSliceTrackInfo{ | |
87 | Int_t fPrevNeighbour; //* neighbour in the previous slide | |
88 | Int_t fNextNeighbour; //* neighbour in the next slide | |
89 | Bool_t fUsed; //* is the slice track used by global tracks | |
90 | }; | |
91 | ||
92 | AliHLTTPCCAGBSliceTrackInfo **fSliceTrackInfos; //* additional information for slice tracks | |
00d07bcd | 93 | Double_t fTime; //* total time |
eb30eb49 | 94 | Double_t fStatTime[20]; //* timers |
d54804bf | 95 | Int_t fStatNEvents; //* n events proceed |
00d07bcd | 96 | Int_t fFirstSliceHit[100]; // hit array |
d54804bf | 97 | |
d54804bf | 98 | }; |
99 | ||
100 | #endif |