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