Correct sign for calculated b_y (outside measured region).
[u/mrichter/AliRoot.git] / TPC / AliTPCTrackHits.h
index c1c44d7..82fdc79 100644 (file)
@@ -8,38 +8,38 @@
 //  Manager class for TPC   clusters                   //
 ////////////////////////////////////////////////
 
+class TClonesArray;
+
 #include "AliCTypes.h"
-#include "AliSegmentID.h"
-#include "AliArrayS.h"
-#include "AliTPC.h"
-#include "TVector3.h"
-#include "AliObjectArray.h"
 #include "TArrayOfArray.h"
 
-class TClonesArray;
-class AliArrayS;
 class AliTPChit;
 class AliTPCTempHitInfo;
 class AliTPCCurrentHit;
+class AliObjectArray;
 
+class AliTrackHitsInfo   {
 
-class AliTrackHitsInfo {
-public:
-  AliTrackHitsInfo(){fgCounter1++;fgCounter2++;}
+ public:
+  AliTrackHitsInfo();
   ~AliTrackHitsInfo(){fgCounter1--;}
+private:  
   Int_t   fTrackID;  //track ID
   Int_t   fVolumeID;   //volume ID
   UInt_t   fHitParamIndex; //corresponding index  
-  static Int_t fgCounter1;
-  static Int_t fgCounter2;  
+  static Int_t fgCounter1; //counter
+  static Int_t fgCounter2;   //counter
+
   LClassDef(AliTrackHitsInfo,1)  
 };
 
 
 class AliTrackHitsParam {
-public:
-  AliTrackHitsParam(){fgCounter1++;fgCounter2++;}
+ public:
+  AliTrackHitsParam();
   ~AliTrackHitsParam(){fgCounter1--;}
+ private:
   Float_t fR;  //radius
   Float_t fZ;  //z position
   Float_t fFi; //radial angle
@@ -47,21 +47,25 @@ public:
   Float_t fAd; //derivation of angle
   Float_t fTheta; //theta angle
   Float_t fThetaD; //theta angle derivation
-  static Int_t fgCounter1;
-  static Int_t fgCounter2;  
+  static Int_t fgCounter1; //counter
+  static Int_t fgCounter2;   //counter
+
   LClassDef(AliTrackHitsParam,1)  
 };
 
 
 class AliHitInfo {
 public:
-  AliHitInfo(){fgCounter1++;fgCounter2++;}
+  AliHitInfo() : fHitDistance(0), fCharge(0) {fgCounter1++;fgCounter2++;}
   ~AliHitInfo(){fgCounter1--;}
+ private:
   Short_t fHitDistance; //distance to previous hit
   Short_t fCharge; //deponed charge
-  static Int_t fgCounter1;
-  static Int_t fgCounter2;  
-  LClassDef(AliHitInfo,1)
+  Short_t fTime; //hit time
+  static Int_t fgCounter1; //counter
+  static Int_t fgCounter2;  //counter
+
+  LClassDef(AliHitInfo,2)
 };
 
 
@@ -70,15 +74,18 @@ class AliTPCTrackHits : public TObject{
 public:
   AliTPCTrackHits(); 
   ~AliTPCTrackHits();
+  AliTPCTrackHits(const AliTPCTrackHits& r);
+  AliTPCTrackHits & operator=(const AliTPCTrackHits& r);  
+
   void Clear();
   void AddHitKartez(Int_t volumeID, Int_t trackID, Double_t x, 
-                   Double_t y, Double_t z,Int_t q);
+                   Double_t y, Double_t z,Int_t q, Float_t time);
   void AddHit(Int_t volumeID, Int_t trackID, Double_t r, 
-             Double_t z, Double_t fi,Int_t q);
+             Double_t z, Double_t fi,Int_t q,Float_t time);
  
   Bool_t First(); //set current hit to first hit 
-  Bool_t Next();  //set current hit to next
-  AliTPChit * GetHit();
+  Bool_t Next(Int_t id = -1);  //set current hit to next
+  AliTPChit * GetHit() const;
   AliTrackHitsParam * GetParam();
   AliHitInfo * GetHitInfo();
   Int_t  GetEntriesFast() { return fHitsPosAndQ ? fHitsPosAndQ->ArraySize():0;}
@@ -86,7 +93,7 @@ public:
   void SetStepPrecision(Double_t prec) {fStep=prec;}
   void SetMaxDistance(UInt_t distance) {fMaxDistance = distance;}
   Bool_t  FlushHitStack(Bool_t force=kTRUE);    //
-public:
+private:
   void FlushHitStack2(Int_t index1, Int_t index2);   //
   AliObjectArray * fTrackHitsInfo;  //quick information about track
   AliObjectArray * fTrackHitsParam;  //hit information  
@@ -99,9 +106,11 @@ public:
   AliTPCCurrentHit  * fCurrentHit; //!information about current hit 
   static const Double_t fgkPrecision;  //precision 
   static const Double_t fgkPrecision2;  //precision
-  static Int_t fgCounter1;
-  static Int_t fgCounter2;  
-  ClassDef(AliTPCTrackHits,1) 
+  static const Double_t fgkTimePrecision;  //hit time precision 
+  static Int_t fgCounter1;  // counter1
+  static Int_t fgCounter2;  // counter2
+
+  ClassDef(AliTPCTrackHits,2) 
 };