Obsolete - removed
[u/mrichter/AliRoot.git] / TPC / AliTPCTrackHitsV2.h
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
13 class TClonesArray;
14 class AliArrayS;
15 class AliTPChit;
16 class AliTPCTempHitInfoV2;
17 class AliTPCCurrentHitV2;
18 class AliHit;
19
20 class AliTrackHitsParamV2 : public TObject {
21   friend class   AliTPC;
22   friend class   AliTRD;
23   friend class   AliTPCTrackHitsV2;
24   friend class   AliTPCTempHitInfoV2;
25   friend class   AliTRDtrackHits;
26
27 public:
28   
29   AliTrackHitsParamV2();
30   ~AliTrackHitsParamV2();
31  private:
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
51 class AliTPCTrackHitsV2 : public TObject {
52   friend class AliTPCTempHitInfoV2;
53 public:
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
64   AliHit * GetHit();
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;}
75 public:
76   void AddVolume(Int_t volume); //add volumes to tthe list of volumes
77   void FlushHitStack2(Int_t index1, Int_t index2);   //
78  protected:
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 
88   AliHit * fHit;                     //! current hit information
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
96 struct AliTPCCurrentHitV2 {
97   Int_t   fParamIndex;//  - current param pointer
98   Int_t   fStackIndex; // - current hit stack index
99   Double_t fR;   //current Radius
100   Bool_t  fStatus; //current status    
101 };   
102
103
104
105 #endif //ALITPCTRACKHITSV2_H