Changes to obey the coding rules.
[u/mrichter/AliRoot.git] / TPC / AliTPCTrackHits.h
CommitLineData
cf98c13f 1#ifndef ALITPCTRACKHITS_H
2#define ALITPCTRACKHITS_H
b6895dd8 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
2289aadd 6/* $Id$ */
cf98c13f 7////////////////////////////////////////////////
8// Manager class for TPC clusters //
9////////////////////////////////////////////////
10
11#include "AliCTypes.h"
12#include "AliSegmentID.h"
13#include "AliArrayS.h"
14#include "AliTPC.h"
15#include "TVector3.h"
16#include "AliObjectArray.h"
17#include "TArrayOfArray.h"
18
19class TClonesArray;
20class AliArrayS;
21class AliTPChit;
22class AliTPCTempHitInfo;
23class AliTPCCurrentHit;
24
25
26class AliTrackHitsInfo {
27public:
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)
36};
37
38
39class AliTrackHitsParam {
40public:
41 AliTrackHitsParam(){fgCounter1++;fgCounter2++;}
42 ~AliTrackHitsParam(){fgCounter1--;}
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;
51 static Int_t fgCounter2;
52 LClassDef(AliTrackHitsParam,1)
53};
54
55
56class AliHitInfo {
57public:
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)
65};
66
67
68
69class AliTPCTrackHits : public TObject{
70public:
71 AliTPCTrackHits();
72 ~AliTPCTrackHits();
73 void Clear();
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);
78
79 Bool_t First(); //set current hit to first hit
80 Bool_t Next(); //set current hit to next
81 AliTPChit * GetHit();
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); //
89public:
90 void FlushHitStack2(Int_t index1, Int_t index2); //
91 AliObjectArray * fTrackHitsInfo; //quick information about track
92 AliObjectArray * fTrackHitsParam; //hit information
633d3715 93 TArrayOfArrayVStack * fHitsPosAndQ; //position information
cf98c13f 94
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)
105};
106
107
108#endif //ALITPCTRACKHITS_H