Obsolete - removed
[u/mrichter/AliRoot.git] / TPC / AliTPCTrackHitsV2.h
CommitLineData
f641f6bd 1#ifndef ALITPCTRACKHITSV2_H
2#define ALITPCTRACKHITSV2_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 hits //
9////////////////////////////////////////////////
10
11#include "TObject.h"
12
13class TClonesArray;
14class AliArrayS;
15class AliTPChit;
16class AliTPCTempHitInfoV2;
17class AliTPCCurrentHitV2;
fce0283f 18class AliHit;
f641f6bd 19
20class AliTrackHitsParamV2 : public TObject {
9b1855ba 21 friend class AliTPC;
22 friend class AliTRD;
23 friend class AliTPCTrackHitsV2;
24 friend class AliTPCTempHitInfoV2;
25 friend class AliTRDtrackHits;
26
f641f6bd 27public:
9b1855ba 28
f641f6bd 29 AliTrackHitsParamV2();
30 ~AliTrackHitsParamV2();
9b1855ba 31 private:
f641f6bd 32 Int_t fTrackID; // ID of the track
33 Short_t fVolumeID;// volume ID
34 Float_t fR; //radius
35 Float_t fZ; //z position
36 Float_t fFi; //radial angle
37 Float_t fAn; //angle with the radial vector
38 Float_t fAd; //derivation of angle
39 Float_t fTheta; //theta angle
40 Float_t fThetaD; //theta angle derivation
41 Int_t fNHits; //nuber of thits
42 Short_t * fHitDistance; //[fNHits] array of hits distances
43 Short_t * fCharge; //[fNHits] array of charges
44 static Int_t fgCounter1;
45 static Int_t fgCounter2;
46 ClassDef(AliTrackHitsParamV2,1)
47};
48
49
50
51class AliTPCTrackHitsV2 : public TObject {
9b1855ba 52 friend class AliTPCTempHitInfoV2;
f641f6bd 53public:
54 AliTPCTrackHitsV2();
55 ~AliTPCTrackHitsV2();
56 void Clear();
57 void AddHitKartez(Int_t volumeID, Int_t trackID, Double_t x,
58 Double_t y, Double_t z,Int_t q);
59 void AddHit(Int_t volumeID, Int_t trackID, Double_t r,
60 Double_t z, Double_t fi,Int_t q);
61
62 Bool_t First(); //set current hit to first hit
63 Bool_t Next(); //set current hit to next
fce0283f 64 AliHit * GetHit();
f641f6bd 65 AliTrackHitsParamV2 * GetParam();
66
67 TClonesArray * GetArray(){return fArray;}
68 Int_t GetEntriesFast() { return fSize;}
69 void SetHitPrecision(Double_t prec) {fPrecision=prec;}
70 void SetStepPrecision(Double_t prec) {fStep=prec;}
71 void SetMaxDistance(UInt_t distance) {fMaxDistance = distance;}
72 Bool_t FlushHitStack(Bool_t force=kTRUE); //
73 Int_t * GetVolumes(){ return fVolumes;}
74 Int_t GetNVolumes(){return fNVolumes;}
75public:
76 void AddVolume(Int_t volume); //add volumes to tthe list of volumes
77 void FlushHitStack2(Int_t index1, Int_t index2); //
9b1855ba 78 protected:
f641f6bd 79 TClonesArray * fArray; //array of compressed hits
80 Int_t fSize; //total number of hits in track
81 Double_t fPrecision; // required precision
82 Double_t fStep; //unit step size
83 UInt_t fMaxDistance; //maximal distance between two connected hits
84 Int_t fNVolumes; //number of volumes in track
85 Int_t * fVolumes; //[fNVolumes] list of volumes
86 AliTPCTempHitInfoV2 * fTempInfo; //!information about track
87 AliTPCCurrentHitV2 * fCurrentHit; //!information about current hit
fce0283f 88 AliHit * fHit; //! current hit information
f641f6bd 89 static const Double_t fgkPrecision; //precision
90 static const Double_t fgkPrecision2; //precision
91 static Int_t fgCounter1;
92 static Int_t fgCounter2;
93 ClassDef(AliTPCTrackHitsV2,1)
94};
95
fce0283f 96struct AliTPCCurrentHitV2 {
45bcf167 97 Int_t fParamIndex;// - current param pointer
98 Int_t fStackIndex; // - current hit stack index
fce0283f 99 Double_t fR; //current Radius
100 Bool_t fStatus; //current status
101};
102
103
f641f6bd 104
105#endif //ALITPCTRACKHITSV2_H