]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/AliTPCTrackHits.h
Allowing coding conventions to be checked
[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
6d171107 11class TClonesArray;
12
cf98c13f 13#include "AliCTypes.h"
cf98c13f 14#include "TArrayOfArray.h"
15
cf98c13f 16class AliArrayS;
17class AliTPChit;
18class AliTPCTempHitInfo;
19class AliTPCCurrentHit;
835b3d81 20class AliObjectArray;
cf98c13f 21
835b3d81 22class AliTrackHitsInfo {
23 friend class AliTPCTrackHits;
24 friend class AliTPC;
982aff31 25 public:
cf98c13f 26 AliTrackHitsInfo(){fgCounter1++;fgCounter2++;}
27 ~AliTrackHitsInfo(){fgCounter1--;}
835b3d81 28 private:
cf98c13f 29 Int_t fTrackID; //track ID
30 Int_t fVolumeID; //volume ID
31 UInt_t fHitParamIndex; //corresponding index
835b3d81 32 static Int_t fgCounter1; //counter
33 static Int_t fgCounter2; //counter
34
cf98c13f 35 LClassDef(AliTrackHitsInfo,1)
36};
37
38
39class AliTrackHitsParam {
835b3d81 40 friend class AliTPCTrackHits;
6d171107 41 friend class AliTPCTempHitInfo;
982aff31 42 public:
cf98c13f 43 AliTrackHitsParam(){fgCounter1++;fgCounter2++;}
44 ~AliTrackHitsParam(){fgCounter1--;}
835b3d81 45 private:
cf98c13f 46 Float_t fR; //radius
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
835b3d81 53 static Int_t fgCounter1; //counter
54 static Int_t fgCounter2; //counter
55
cf98c13f 56 LClassDef(AliTrackHitsParam,1)
57};
58
59
60class AliHitInfo {
835b3d81 61 friend class AliTPCTrackHits;
6d171107 62 friend class AliTPCTempHitInfo;
cf98c13f 63public:
64 AliHitInfo(){fgCounter1++;fgCounter2++;}
65 ~AliHitInfo(){fgCounter1--;}
835b3d81 66 private:
cf98c13f 67 Short_t fHitDistance; //distance to previous hit
68 Short_t fCharge; //deponed charge
835b3d81 69 static Int_t fgCounter1; //counter
70 static Int_t fgCounter2; //counter
71
cf98c13f 72 LClassDef(AliHitInfo,1)
73};
74
75
76
77class AliTPCTrackHits : public TObject{
835b3d81 78 friend class AliTPC;
6d171107 79 friend class AliTPCTempHitInfo;
cf98c13f 80public:
81 AliTPCTrackHits();
82 ~AliTPCTrackHits();
e15899a0 83 AliTPCTrackHits(const AliTPCTrackHits& r);
84 AliTPCTrackHits & operator=(const AliTPCTrackHits& r);
85
cf98c13f 86 void Clear();
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);
91
92 Bool_t First(); //set current hit to first hit
25419831 93 Bool_t Next(Int_t id = -1); //set current hit to next
835b3d81 94 AliTPChit * GetHit() const;
cf98c13f 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); //
835b3d81 102private:
cf98c13f 103 void FlushHitStack2(Int_t index1, Int_t index2); //
104 AliObjectArray * fTrackHitsInfo; //quick information about track
105 AliObjectArray * fTrackHitsParam; //hit information
633d3715 106 TArrayOfArrayVStack * fHitsPosAndQ; //position information
cf98c13f 107
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
982aff31 115 static Int_t fgCounter1; // counter1
116 static Int_t fgCounter2; // counter2
835b3d81 117
cf98c13f 118 ClassDef(AliTPCTrackHits,1)
119};
120
121
122#endif //ALITPCTRACKHITS_H