]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - TPC/AliTPCTrackHits.h
Coding violation fixies (Jens Viechula)
[u/mrichter/AliRoot.git] / TPC / AliTPCTrackHits.h
... / ...
CommitLineData
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 */
5
6/* $Id$ */
7////////////////////////////////////////////////
8// Manager class for TPC clusters //
9////////////////////////////////////////////////
10
11class TClonesArray;
12
13#include "AliCTypes.h"
14#include "TArrayOfArray.h"
15
16class AliTPChit;
17class AliTPCTempHitInfo;
18class AliTPCCurrentHit;
19class AliObjectArray;
20
21class AliTrackHitsInfo {
22
23 public:
24 AliTrackHitsInfo();
25 ~AliTrackHitsInfo(){fgCounter1--;}
26
27private:
28 Int_t fTrackID; //track ID
29 Int_t fVolumeID; //volume ID
30 UInt_t fHitParamIndex; //corresponding index
31 static Int_t fgCounter1; //counter
32 static Int_t fgCounter2; //counter
33
34 LClassDef(AliTrackHitsInfo,1)
35};
36
37
38class AliTrackHitsParam {
39 public:
40 AliTrackHitsParam();
41 ~AliTrackHitsParam(){fgCounter1--;}
42 private:
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; //counter
51 static Int_t fgCounter2; //counter
52
53 LClassDef(AliTrackHitsParam,1)
54};
55
56
57class AliHitInfo {
58public:
59 AliHitInfo() : fHitDistance(0), fCharge(0) {fgCounter1++;fgCounter2++;}
60 ~AliHitInfo(){fgCounter1--;}
61 private:
62 Short_t fHitDistance; //distance to previous hit
63 Short_t fCharge; //deponed charge
64 Short_t fTime; //hit time
65 static Int_t fgCounter1; //counter
66 static Int_t fgCounter2; //counter
67
68 LClassDef(AliHitInfo,2)
69};
70
71
72
73class AliTPCTrackHits : public TObject{
74public:
75 AliTPCTrackHits();
76 ~AliTPCTrackHits();
77 AliTPCTrackHits(const AliTPCTrackHits& r);
78 AliTPCTrackHits & operator=(const AliTPCTrackHits& r);
79
80 void Clear();
81 void AddHitKartez(Int_t volumeID, Int_t trackID, Double_t x,
82 Double_t y, Double_t z,Int_t q, Float_t time);
83 void AddHit(Int_t volumeID, Int_t trackID, Double_t r,
84 Double_t z, Double_t fi,Int_t q,Float_t time);
85
86 Bool_t First(); //set current hit to first hit
87 Bool_t Next(Int_t id = -1); //set current hit to next
88 AliTPChit * GetHit() const;
89 AliTrackHitsParam * GetParam();
90 AliHitInfo * GetHitInfo();
91 Int_t GetEntriesFast() { return fHitsPosAndQ ? fHitsPosAndQ->ArraySize():0;}
92 void SetHitPrecision(Double_t prec) {fPrecision=prec;}
93 void SetStepPrecision(Double_t prec) {fStep=prec;}
94 void SetMaxDistance(UInt_t distance) {fMaxDistance = distance;}
95 Bool_t FlushHitStack(Bool_t force=kTRUE); //
96private:
97 void FlushHitStack2(Int_t index1, Int_t index2); //
98 AliObjectArray * fTrackHitsInfo; //quick information about track
99 AliObjectArray * fTrackHitsParam; //hit information
100 TArrayOfArrayVStack * fHitsPosAndQ; //position information
101
102 Double_t fPrecision; // required precision
103 Double_t fStep; //unit step size
104 UInt_t fMaxDistance; //maximal distance between two connected hits
105 AliTPCTempHitInfo * fTempInfo; //!information about track
106 AliTPCCurrentHit * fCurrentHit; //!information about current hit
107 static const Double_t fgkPrecision; //precision
108 static const Double_t fgkPrecision2; //precision
109 static const Double_t fgkTimePrecision; //hit time precision
110 static Int_t fgCounter1; // counter1
111 static Int_t fgCounter2; // counter2
112
113 ClassDef(AliTPCTrackHits,2)
114};
115
116
117#endif //ALITPCTRACKHITS_H