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 ////////////////////////////////////////////////
11 #include "AliCTypes.h"
12 #include "AliSegmentID.h"
13 #include "AliArrayS.h"
16 #include "AliObjectArray.h"
17 #include "TArrayOfArray.h"
22 class AliTPCTempHitInfo;
23 class AliTPCCurrentHit;
26 class AliTrackHitsInfo {
28 AliTrackHitsInfo(){fgCounter1++;fgCounter2++;}
29 ~AliTrackHitsInfo(){fgCounter1--;}
30 Int_t fTrackID; //track ID
31 Int_t fVolumeID; //volume ID
32 UInt_t fHitParamIndex; //corresponding index
33 static Int_t fgCounter1;
34 static Int_t fgCounter2;
35 LClassDef(AliTrackHitsInfo,1)
39 class AliTrackHitsParam {
41 AliTrackHitsParam(){fgCounter1++;fgCounter2++;}
42 ~AliTrackHitsParam(){fgCounter1--;}
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;
51 static Int_t fgCounter2;
52 LClassDef(AliTrackHitsParam,1)
58 AliHitInfo(){fgCounter1++;fgCounter2++;}
59 ~AliHitInfo(){fgCounter1--;}
60 Short_t fHitDistance; //distance to previous hit
61 Short_t fCharge; //deponed charge
62 static Int_t fgCounter1;
63 static Int_t fgCounter2;
64 LClassDef(AliHitInfo,1)
69 class AliTPCTrackHits : public TObject{
74 void AddHitKartez(Int_t volumeID, Int_t trackID, Double_t x,
75 Double_t y, Double_t z,Int_t q);
76 void AddHit(Int_t volumeID, Int_t trackID, Double_t r,
77 Double_t z, Double_t fi,Int_t q);
79 Bool_t First(); //set current hit to first hit
80 Bool_t Next(); //set current hit to next
82 AliTrackHitsParam * GetParam();
83 AliHitInfo * GetHitInfo();
84 Int_t GetEntriesFast() { return fHitsPosAndQ ? fHitsPosAndQ->ArraySize():0;}
85 void SetHitPrecision(Double_t prec) {fPrecision=prec;}
86 void SetStepPrecision(Double_t prec) {fStep=prec;}
87 void SetMaxDistance(UInt_t distance) {fMaxDistance = distance;}
88 Bool_t FlushHitStack(Bool_t force=kTRUE); //
90 void FlushHitStack2(Int_t index1, Int_t index2); //
91 AliObjectArray * fTrackHitsInfo; //quick information about track
92 AliObjectArray * fTrackHitsParam; //hit information
93 TArrayOfArrayVStack * fHitsPosAndQ; //position information
95 Double_t fPrecision; // required precision
96 Double_t fStep; //unit step size
97 UInt_t fMaxDistance; //maximal distance between two connected hits
98 AliTPCTempHitInfo * fTempInfo; //!information about track
99 AliTPCCurrentHit * fCurrentHit; //!information about current hit
100 static const Double_t fgkPrecision; //precision
101 static const Double_t fgkPrecision2; //precision
102 static Int_t fgCounter1;
103 static Int_t fgCounter2;
104 ClassDef(AliTPCTrackHits,1)
108 #endif //ALITPCTRACKHITS_H