]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALITPCTRACKHITS_H | |
2 | #define ALITPCTRACKHITS_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | //////////////////////////////////////////////// | |
8 | // Manager class for TPC clusters // | |
9 | //////////////////////////////////////////////// | |
10 | ||
11 | class TClonesArray; | |
12 | ||
13 | #include "AliCTypes.h" | |
14 | #include "TArrayOfArray.h" | |
15 | ||
16 | class AliTPChit; | |
17 | class AliTPCTempHitInfo; | |
18 | class AliTPCCurrentHit; | |
19 | class AliObjectArray; | |
20 | ||
21 | class AliTrackHitsInfo { | |
22 | ||
23 | public: | |
24 | AliTrackHitsInfo(); | |
25 | ~AliTrackHitsInfo(){fgCounter1--;} | |
26 | ||
27 | private: | |
28 | Int_t fTrackID; //track ID | |
29 | Int_t fVolumeID; //volume ID | |
30 | UInt_t fHitParamIndex; //corresponding index | |
31 | static Int_t fgCounter1; //counter | |
32 | static Int_t fgCounter2; //counter | |
33 | ||
34 | LClassDef(AliTrackHitsInfo,1) | |
35 | }; | |
36 | ||
37 | ||
38 | class AliTrackHitsParam { | |
39 | public: | |
40 | AliTrackHitsParam(); | |
41 | ~AliTrackHitsParam(){fgCounter1--;} | |
42 | private: | |
43 | Float_t fR; //radius | |
44 | Float_t fZ; //z position | |
45 | Float_t fFi; //radial angle | |
46 | Float_t fAn; //angle with the radial vector | |
47 | Float_t fAd; //derivation of angle | |
48 | Float_t fTheta; //theta angle | |
49 | Float_t fThetaD; //theta angle derivation | |
50 | static Int_t fgCounter1; //counter | |
51 | static Int_t fgCounter2; //counter | |
52 | ||
53 | LClassDef(AliTrackHitsParam,1) | |
54 | }; | |
55 | ||
56 | ||
57 | class AliHitInfo { | |
58 | public: | |
59 | AliHitInfo() : fHitDistance(0), fCharge(0) {fgCounter1++;fgCounter2++;} | |
60 | ~AliHitInfo(){fgCounter1--;} | |
61 | private: | |
62 | Short_t fHitDistance; //distance to previous hit | |
63 | Short_t fCharge; //deponed charge | |
64 | Short_t fTime; //hit time | |
65 | static Int_t fgCounter1; //counter | |
66 | static Int_t fgCounter2; //counter | |
67 | ||
68 | LClassDef(AliHitInfo,2) | |
69 | }; | |
70 | ||
71 | ||
72 | ||
73 | class AliTPCTrackHits : public TObject{ | |
74 | public: | |
75 | AliTPCTrackHits(); | |
76 | ~AliTPCTrackHits(); | |
77 | AliTPCTrackHits(const AliTPCTrackHits& r); | |
78 | AliTPCTrackHits & operator=(const AliTPCTrackHits& r); | |
79 | ||
80 | void Clear(); | |
81 | void AddHitKartez(Int_t volumeID, Int_t trackID, Double_t x, | |
82 | Double_t y, Double_t z,Int_t q, Float_t time); | |
83 | void AddHit(Int_t volumeID, Int_t trackID, Double_t r, | |
84 | Double_t z, Double_t fi,Int_t q,Float_t time); | |
85 | ||
86 | Bool_t First(); //set current hit to first hit | |
87 | Bool_t Next(Int_t id = -1); //set current hit to next | |
88 | AliTPChit * GetHit() const; | |
89 | AliTrackHitsParam * GetParam(); | |
90 | AliHitInfo * GetHitInfo(); | |
91 | Int_t GetEntriesFast() { return fHitsPosAndQ ? fHitsPosAndQ->ArraySize():0;} | |
92 | void SetHitPrecision(Double_t prec) {fPrecision=prec;} | |
93 | void SetStepPrecision(Double_t prec) {fStep=prec;} | |
94 | void SetMaxDistance(UInt_t distance) {fMaxDistance = distance;} | |
95 | Bool_t FlushHitStack(Bool_t force=kTRUE); // | |
96 | private: | |
97 | void FlushHitStack2(Int_t index1, Int_t index2); // | |
98 | AliObjectArray * fTrackHitsInfo; //quick information about track | |
99 | AliObjectArray * fTrackHitsParam; //hit information | |
100 | TArrayOfArrayVStack * fHitsPosAndQ; //position information | |
101 | ||
102 | Double_t fPrecision; // required precision | |
103 | Double_t fStep; //unit step size | |
104 | UInt_t fMaxDistance; //maximal distance between two connected hits | |
105 | AliTPCTempHitInfo * fTempInfo; //!information about track | |
106 | AliTPCCurrentHit * fCurrentHit; //!information about current hit | |
107 | static const Double_t fgkPrecision; //precision | |
108 | static const Double_t fgkPrecision2; //precision | |
109 | static const Double_t fgkTimePrecision; //hit time precision | |
110 | static Int_t fgCounter1; // counter1 | |
111 | static Int_t fgCounter2; // counter2 | |
112 | ||
113 | ClassDef(AliTPCTrackHits,2) | |
114 | }; | |
115 | ||
116 | ||
117 | #endif //ALITPCTRACKHITS_H |