Minor bug correction (some pointers were not initialised in the default constructor)
[u/mrichter/AliRoot.git] / TPC / AliTPCTrackHits.h
CommitLineData
cf98c13f 1#ifndef ALITPCTRACKHITS_H
2#define ALITPCTRACKHITS_H
3////////////////////////////////////////////////
4// Manager class for TPC clusters //
5////////////////////////////////////////////////
6
7#include "AliCTypes.h"
8#include "AliSegmentID.h"
9#include "AliArrayS.h"
10#include "AliTPC.h"
11#include "TVector3.h"
12#include "AliObjectArray.h"
13#include "TArrayOfArray.h"
14
15class TClonesArray;
16class AliArrayS;
17class AliTPChit;
18class AliTPCTempHitInfo;
19class AliTPCCurrentHit;
20
21
22class AliTrackHitsInfo {
23public:
24 AliTrackHitsInfo(){fgCounter1++;fgCounter2++;}
25 ~AliTrackHitsInfo(){fgCounter1--;}
26 Int_t fTrackID; //track ID
27 Int_t fVolumeID; //volume ID
28 UInt_t fHitParamIndex; //corresponding index
29 static Int_t fgCounter1;
30 static Int_t fgCounter2;
31 LClassDef(AliTrackHitsInfo,1)
32};
33
34
35class AliTrackHitsParam {
36public:
37 AliTrackHitsParam(){fgCounter1++;fgCounter2++;}
38 ~AliTrackHitsParam(){fgCounter1--;}
39 Float_t fR; //radius
40 Float_t fZ; //z position
41 Float_t fFi; //radial angle
42 Float_t fAn; //angle with the radial vector
43 Float_t fAd; //derivation of angle
44 Float_t fTheta; //theta angle
45 Float_t fThetaD; //theta angle derivation
46 static Int_t fgCounter1;
47 static Int_t fgCounter2;
48 LClassDef(AliTrackHitsParam,1)
49};
50
51
52class AliHitInfo {
53public:
54 AliHitInfo(){fgCounter1++;fgCounter2++;}
55 ~AliHitInfo(){fgCounter1--;}
56 Short_t fHitDistance; //distance to previous hit
57 Short_t fCharge; //deponed charge
58 static Int_t fgCounter1;
59 static Int_t fgCounter2;
60 LClassDef(AliHitInfo,1)
61};
62
63
64
65class AliTPCTrackHits : public TObject{
66public:
67 AliTPCTrackHits();
68 ~AliTPCTrackHits();
69 void Clear();
70 void AddHitKartez(Int_t volumeID, Int_t trackID, Double_t x,
71 Double_t y, Double_t z,Int_t q);
72 void AddHit(Int_t volumeID, Int_t trackID, Double_t r,
73 Double_t z, Double_t fi,Int_t q);
74
75 Bool_t First(); //set current hit to first hit
76 Bool_t Next(); //set current hit to next
77 AliTPChit * GetHit();
78 AliTrackHitsParam * GetParam();
79 AliHitInfo * GetHitInfo();
80 Int_t GetEntriesFast() { return fHitsPosAndQ ? fHitsPosAndQ->ArraySize():0;}
81 void SetHitPrecision(Double_t prec) {fPrecision=prec;}
82 void SetStepPrecision(Double_t prec) {fStep=prec;}
83 void SetMaxDistance(UInt_t distance) {fMaxDistance = distance;}
84 Bool_t FlushHitStack(Bool_t force=kTRUE); //
85public:
86 void FlushHitStack2(Int_t index1, Int_t index2); //
87 AliObjectArray * fTrackHitsInfo; //quick information about track
88 AliObjectArray * fTrackHitsParam; //hit information
89 TArrayOfArray_vStack * fHitsPosAndQ; //position information
90
91 Double_t fPrecision; // required precision
92 Double_t fStep; //unit step size
93 UInt_t fMaxDistance; //maximal distance between two connected hits
94 AliTPCTempHitInfo * fTempInfo; //!information about track
95 AliTPCCurrentHit * fCurrentHit; //!information about current hit
96 static const Double_t fgkPrecision; //precision
97 static const Double_t fgkPrecision2; //precision
98 static Int_t fgCounter1;
99 static Int_t fgCounter2;
100 ClassDef(AliTPCTrackHits,1)
101};
102
103
104#endif //ALITPCTRACKHITS_H