Changes due to the coding conventions
[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"
835b3d81 12//#include "AliSegmentID.h"
13//#include "AliArrayS.h"
14//#include "AliTPC.h"
15//#include "TVector3.h"
16//#include "AliObjectArray.h"
cf98c13f 17#include "TArrayOfArray.h"
18
19class TClonesArray;
20class AliArrayS;
21class AliTPChit;
22class AliTPCTempHitInfo;
23class AliTPCCurrentHit;
835b3d81 24class AliObjectArray;
cf98c13f 25
835b3d81 26class AliTrackHitsInfo {
27 friend class AliTPCTrackHits;
28 friend class AliTPC;
982aff31 29 public:
cf98c13f 30 AliTrackHitsInfo(){fgCounter1++;fgCounter2++;}
31 ~AliTrackHitsInfo(){fgCounter1--;}
835b3d81 32 private:
cf98c13f 33 Int_t fTrackID; //track ID
34 Int_t fVolumeID; //volume ID
35 UInt_t fHitParamIndex; //corresponding index
835b3d81 36 static Int_t fgCounter1; //counter
37 static Int_t fgCounter2; //counter
38
cf98c13f 39 LClassDef(AliTrackHitsInfo,1)
40};
41
42
43class AliTrackHitsParam {
835b3d81 44 friend class AliTPCTrackHits;
45 friend struct AliTPCTempHitInfo;
982aff31 46 public:
cf98c13f 47 AliTrackHitsParam(){fgCounter1++;fgCounter2++;}
48 ~AliTrackHitsParam(){fgCounter1--;}
835b3d81 49 private:
cf98c13f 50 Float_t fR; //radius
51 Float_t fZ; //z position
52 Float_t fFi; //radial angle
53 Float_t fAn; //angle with the radial vector
54 Float_t fAd; //derivation of angle
55 Float_t fTheta; //theta angle
56 Float_t fThetaD; //theta angle derivation
835b3d81 57 static Int_t fgCounter1; //counter
58 static Int_t fgCounter2; //counter
59
cf98c13f 60 LClassDef(AliTrackHitsParam,1)
61};
62
63
64class AliHitInfo {
835b3d81 65 friend class AliTPCTrackHits;
66 friend struct AliTPCTempHitInfo;
cf98c13f 67public:
68 AliHitInfo(){fgCounter1++;fgCounter2++;}
69 ~AliHitInfo(){fgCounter1--;}
835b3d81 70 private:
cf98c13f 71 Short_t fHitDistance; //distance to previous hit
72 Short_t fCharge; //deponed charge
835b3d81 73 static Int_t fgCounter1; //counter
74 static Int_t fgCounter2; //counter
75
cf98c13f 76 LClassDef(AliHitInfo,1)
77};
78
79
80
81class AliTPCTrackHits : public TObject{
835b3d81 82 friend class AliTPC;
83 friend struct AliTPCTempHitInfo;
cf98c13f 84public:
85 AliTPCTrackHits();
86 ~AliTPCTrackHits();
e15899a0 87 AliTPCTrackHits(const AliTPCTrackHits& r);
88 AliTPCTrackHits & operator=(const AliTPCTrackHits& r);
89
cf98c13f 90 void Clear();
91 void AddHitKartez(Int_t volumeID, Int_t trackID, Double_t x,
92 Double_t y, Double_t z,Int_t q);
93 void AddHit(Int_t volumeID, Int_t trackID, Double_t r,
94 Double_t z, Double_t fi,Int_t q);
95
96 Bool_t First(); //set current hit to first hit
25419831 97 Bool_t Next(Int_t id = -1); //set current hit to next
835b3d81 98 AliTPChit * GetHit() const;
cf98c13f 99 AliTrackHitsParam * GetParam();
100 AliHitInfo * GetHitInfo();
101 Int_t GetEntriesFast() { return fHitsPosAndQ ? fHitsPosAndQ->ArraySize():0;}
102 void SetHitPrecision(Double_t prec) {fPrecision=prec;}
103 void SetStepPrecision(Double_t prec) {fStep=prec;}
104 void SetMaxDistance(UInt_t distance) {fMaxDistance = distance;}
105 Bool_t FlushHitStack(Bool_t force=kTRUE); //
835b3d81 106private:
cf98c13f 107 void FlushHitStack2(Int_t index1, Int_t index2); //
108 AliObjectArray * fTrackHitsInfo; //quick information about track
109 AliObjectArray * fTrackHitsParam; //hit information
633d3715 110 TArrayOfArrayVStack * fHitsPosAndQ; //position information
cf98c13f 111
112 Double_t fPrecision; // required precision
113 Double_t fStep; //unit step size
114 UInt_t fMaxDistance; //maximal distance between two connected hits
115 AliTPCTempHitInfo * fTempInfo; //!information about track
116 AliTPCCurrentHit * fCurrentHit; //!information about current hit
117 static const Double_t fgkPrecision; //precision
118 static const Double_t fgkPrecision2; //precision
982aff31 119 static Int_t fgCounter1; // counter1
120 static Int_t fgCounter2; // counter2
835b3d81 121
cf98c13f 122 ClassDef(AliTPCTrackHits,1)
123};
124
125
126#endif //ALITPCTRACKHITS_H