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 */
7 ////////////////////////////////////////////////
8 // Manager class for TPC clusters //
9 ////////////////////////////////////////////////
13 #include "AliCTypes.h"
14 #include "TArrayOfArray.h"
18 class AliTPCTempHitInfo;
19 class AliTPCCurrentHit;
22 class AliTrackHitsInfo {
23 friend class AliTPCTrackHits;
26 AliTrackHitsInfo(){fgCounter1++;fgCounter2++;}
27 ~AliTrackHitsInfo(){fgCounter1--;}
29 Int_t fTrackID; //track ID
30 Int_t fVolumeID; //volume ID
31 UInt_t fHitParamIndex; //corresponding index
32 static Int_t fgCounter1; //counter
33 static Int_t fgCounter2; //counter
35 LClassDef(AliTrackHitsInfo,1)
39 class AliTrackHitsParam {
40 friend class AliTPCTrackHits;
41 friend class AliTPCTempHitInfo;
43 AliTrackHitsParam(){fgCounter1++;fgCounter2++;}
44 ~AliTrackHitsParam(){fgCounter1--;}
47 Float_t fZ; //z position
48 Float_t fFi; //radial angle
49 Float_t fAn; //angle with the radial vector
50 Float_t fAd; //derivation of angle
51 Float_t fTheta; //theta angle
52 Float_t fThetaD; //theta angle derivation
53 static Int_t fgCounter1; //counter
54 static Int_t fgCounter2; //counter
56 LClassDef(AliTrackHitsParam,1)
61 friend class AliTPCTrackHits;
62 friend class AliTPCTempHitInfo;
64 AliHitInfo(){fgCounter1++;fgCounter2++;}
65 ~AliHitInfo(){fgCounter1--;}
67 Short_t fHitDistance; //distance to previous hit
68 Short_t fCharge; //deponed charge
69 static Int_t fgCounter1; //counter
70 static Int_t fgCounter2; //counter
72 LClassDef(AliHitInfo,1)
77 class AliTPCTrackHits : public TObject{
79 friend class AliTPCTempHitInfo;
83 AliTPCTrackHits(const AliTPCTrackHits& r);
84 AliTPCTrackHits & operator=(const AliTPCTrackHits& r);
87 void AddHitKartez(Int_t volumeID, Int_t trackID, Double_t x,
88 Double_t y, Double_t z,Int_t q);
89 void AddHit(Int_t volumeID, Int_t trackID, Double_t r,
90 Double_t z, Double_t fi,Int_t q);
92 Bool_t First(); //set current hit to first hit
93 Bool_t Next(Int_t id = -1); //set current hit to next
94 AliTPChit * GetHit() const;
95 AliTrackHitsParam * GetParam();
96 AliHitInfo * GetHitInfo();
97 Int_t GetEntriesFast() { return fHitsPosAndQ ? fHitsPosAndQ->ArraySize():0;}
98 void SetHitPrecision(Double_t prec) {fPrecision=prec;}
99 void SetStepPrecision(Double_t prec) {fStep=prec;}
100 void SetMaxDistance(UInt_t distance) {fMaxDistance = distance;}
101 Bool_t FlushHitStack(Bool_t force=kTRUE); //
103 void FlushHitStack2(Int_t index1, Int_t index2); //
104 AliObjectArray * fTrackHitsInfo; //quick information about track
105 AliObjectArray * fTrackHitsParam; //hit information
106 TArrayOfArrayVStack * fHitsPosAndQ; //position information
108 Double_t fPrecision; // required precision
109 Double_t fStep; //unit step size
110 UInt_t fMaxDistance; //maximal distance between two connected hits
111 AliTPCTempHitInfo * fTempInfo; //!information about track
112 AliTPCCurrentHit * fCurrentHit; //!information about current hit
113 static const Double_t fgkPrecision; //precision
114 static const Double_t fgkPrecision2; //precision
115 static Int_t fgCounter1; // counter1
116 static Int_t fgCounter2; // counter2
118 ClassDef(AliTPCTrackHits,1)
122 #endif //ALITPCTRACKHITS_H