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