]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/AliTPCTrackHitsV2.h
Add signal fitting to chain of analysis (Marian)
[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////////////////////////////////////////////////
018a927a 10//
f641f6bd 11
12#include "TObject.h"
13
14class TClonesArray;
f641f6bd 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:
28 AliTrackHitsParamV2();
53110b9d 29 AliTrackHitsParamV2(const AliTrackHitsParamV2 &hit): TObject(hit)
30 {hit.Copy(*this);}
31 AliTrackHitsParamV2& operator = (const AliTrackHitsParamV2 &hit)
32 {hit.Copy(*this); return (*this);}
f641f6bd 33 ~AliTrackHitsParamV2();
53110b9d 34
af05e6c8 35 Float_t Eta() const;
36
9b1855ba 37 private:
f641f6bd 38 Int_t fTrackID; // ID of the track
39 Short_t fVolumeID;// volume ID
40 Float_t fR; //radius
41 Float_t fZ; //z position
42 Float_t fFi; //radial angle
43 Float_t fAn; //angle with the radial vector
44 Float_t fAd; //derivation of angle
45 Float_t fTheta; //theta angle
46 Float_t fThetaD; //theta angle derivation
47 Int_t fNHits; //nuber of thits
48 Short_t * fHitDistance; //[fNHits] array of hits distances
49 Short_t * fCharge; //[fNHits] array of charges
e61fd20d 50 Short_t * fTime; //[fNHits] array of hits time
53110b9d 51 static Int_t fgCounter1; //First internal counter
52 static Int_t fgCounter2; // Second internal counter
53
54 void Copy(TObject &) const
55 {Error("Copy","Not Implemented");}
56
e61fd20d 57 ClassDef(AliTrackHitsParamV2,2)
f641f6bd 58};
59
60
f641f6bd 61class AliTPCTrackHitsV2 : public TObject {
9b1855ba 62 friend class AliTPCTempHitInfoV2;
53110b9d 63
f641f6bd 64public:
65 AliTPCTrackHitsV2();
66 ~AliTPCTrackHitsV2();
53110b9d 67 AliTPCTrackHitsV2(const AliTPCTrackHitsV2 &hit): TObject(hit)
68 {hit.Copy(*this);}
69 AliTPCTrackHitsV2& operator = (const AliTPCTrackHitsV2 &hit)
70 {hit.Copy(*this); return (*this);}
5f6e636c 71 void Clear(Option_t * /*option*/ ="");
f641f6bd 72 void AddHitKartez(Int_t volumeID, Int_t trackID, Double_t x,
e61fd20d 73 Double_t y, Double_t z,Int_t q,Float_t time);
f641f6bd 74 void AddHit(Int_t volumeID, Int_t trackID, Double_t r,
e61fd20d 75 Double_t z, Double_t fi,Int_t q,Float_t time);
f641f6bd 76
77 Bool_t First(); //set current hit to first hit
78 Bool_t Next(); //set current hit to next
53110b9d 79 AliHit * GetHit() const;
f641f6bd 80 AliTrackHitsParamV2 * GetParam();
81
82 TClonesArray * GetArray(){return fArray;}
53110b9d 83 Int_t GetEntriesFast() const { return fSize;}
f641f6bd 84 void SetHitPrecision(Double_t prec) {fPrecision=prec;}
85 void SetStepPrecision(Double_t prec) {fStep=prec;}
86 void SetMaxDistance(UInt_t distance) {fMaxDistance = distance;}
87 Bool_t FlushHitStack(Bool_t force=kTRUE); //
88 Int_t * GetVolumes(){ return fVolumes;}
53110b9d 89 Int_t GetNVolumes() const {return fNVolumes;}
90
f641f6bd 91public:
92 void AddVolume(Int_t volume); //add volumes to tthe list of volumes
93 void FlushHitStack2(Int_t index1, Int_t index2); //
53110b9d 94
95protected:
f641f6bd 96 TClonesArray * fArray; //array of compressed hits
97 Int_t fSize; //total number of hits in track
98 Double_t fPrecision; // required precision
99 Double_t fStep; //unit step size
100 UInt_t fMaxDistance; //maximal distance between two connected hits
101 Int_t fNVolumes; //number of volumes in track
102 Int_t * fVolumes; //[fNVolumes] list of volumes
103 AliTPCTempHitInfoV2 * fTempInfo; //!information about track
104 AliTPCCurrentHitV2 * fCurrentHit; //!information about current hit
fce0283f 105 AliHit * fHit; //! current hit information
f641f6bd 106 static const Double_t fgkPrecision; //precision
107 static const Double_t fgkPrecision2; //precision
e61fd20d 108 static const Double_t fgkTimePrecision; //hit time precision
53110b9d 109 static Int_t fgCounter1; // First internal counter
110 static Int_t fgCounter2; // Second internal counter
111
112private:
113 void Copy(TObject &) const
114 {Error("Copy","Not Implemented");}
115
116
e61fd20d 117 ClassDef(AliTPCTrackHitsV2,2)
f641f6bd 118};
119
fce0283f 120struct AliTPCCurrentHitV2 {
45bcf167 121 Int_t fParamIndex;// - current param pointer
122 Int_t fStackIndex; // - current hit stack index
fce0283f 123 Double_t fR; //current Radius
124 Bool_t fStatus; //current status
125};
126
127
f641f6bd 128
129#endif //ALITPCTRACKHITSV2_H