]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCTrackHitsV2.h
Print removed
[u/mrichter/AliRoot.git] / TPC / AliTPCTrackHitsV2.h
index f2f4dfed00fdf3a9f14fc622acef69839deba967..128d5341c7bde60d24c41893d145c0a7ae0c5279 100644 (file)
@@ -7,6 +7,7 @@
 ////////////////////////////////////////////////
 //  Manager class for TPC   hits                   //
 ////////////////////////////////////////////////
+//
 
 #include "TObject.h"
 
@@ -15,12 +16,24 @@ class AliArrayS;
 class AliTPChit;
 class AliTPCTempHitInfoV2;
 class AliTPCCurrentHitV2;
-
+class AliHit;
 
 class AliTrackHitsParamV2 : public TObject {
+  friend class   AliTPC;
+  friend class   AliTRD;
+  friend class   AliTPCTrackHitsV2;
+  friend class   AliTPCTempHitInfoV2;
+  friend class   AliTRDtrackHits;
+
 public:
   AliTrackHitsParamV2();
+  AliTrackHitsParamV2(const AliTrackHitsParamV2 &hit):  TObject(hit)
+    {hit.Copy(*this);}
+  AliTrackHitsParamV2& operator = (const AliTrackHitsParamV2 &hit)
+     {hit.Copy(*this); return (*this);}
   ~AliTrackHitsParamV2();
+
+ private:
   Int_t fTrackID; // ID of the track
   Short_t fVolumeID;// volume ID
   Float_t fR;  //radius
@@ -33,17 +46,26 @@ public:
   Int_t   fNHits; //nuber of thits
   Short_t * fHitDistance; //[fNHits] array of hits distances
   Short_t * fCharge; //[fNHits] array of charges
-  static Int_t fgCounter1;
-  static Int_t fgCounter2;  
+  static Int_t fgCounter1; //First internal counter
+  static Int_t fgCounter2; // Second internal counter
+
+  void Copy(TObject &) const
+  {Error("Copy","Not Implemented");}
+
   ClassDef(AliTrackHitsParamV2,1)  
 };
 
 
-
 class AliTPCTrackHitsV2 : public TObject {
+  friend class AliTPCTempHitInfoV2;
+
 public:
   AliTPCTrackHitsV2(); 
   ~AliTPCTrackHitsV2();
+  AliTPCTrackHitsV2(const AliTPCTrackHitsV2 &hit):  TObject(hit)
+    {hit.Copy(*this);}
+  AliTPCTrackHitsV2& operator = (const AliTPCTrackHitsV2 &hit)
+     {hit.Copy(*this); return (*this);}
   void Clear();
   void AddHitKartez(Int_t volumeID, Int_t trackID, Double_t x, 
                    Double_t y, Double_t z,Int_t q);
@@ -52,20 +74,23 @@ public:
  
   Bool_t First(); //set current hit to first hit 
   Bool_t Next();  //set current hit to next
-  AliTPChit * GetHit();
+  AliHit * GetHit() const;
   AliTrackHitsParamV2 * GetParam();
 
   TClonesArray * GetArray(){return fArray;}
-  Int_t  GetEntriesFast() { return fSize;}
+  Int_t  GetEntriesFast() const { return fSize;}
   void SetHitPrecision(Double_t prec) {fPrecision=prec;}
   void SetStepPrecision(Double_t prec) {fStep=prec;}
   void SetMaxDistance(UInt_t distance) {fMaxDistance = distance;}
   Bool_t  FlushHitStack(Bool_t force=kTRUE);    //
   Int_t *  GetVolumes(){ return fVolumes;}
-  Int_t GetNVolumes(){return fNVolumes;}
+  Int_t GetNVolumes() const {return fNVolumes;}
+
 public:
   void AddVolume(Int_t volume); //add volumes to tthe list of volumes
   void FlushHitStack2(Int_t index1, Int_t index2);   //
+
+protected:
   TClonesArray * fArray;  //array of compressed hits
   Int_t fSize;            //total number of hits in track
   Double_t fPrecision;  // required precision
@@ -75,12 +100,27 @@ public:
   Int_t *  fVolumes;    //[fNVolumes] list of volumes
   AliTPCTempHitInfoV2 * fTempInfo; //!information about track
   AliTPCCurrentHitV2  * fCurrentHit; //!information about current hit 
+  AliHit * fHit;                     //! current hit information
   static const Double_t fgkPrecision;  //precision 
   static const Double_t fgkPrecision2;  //precision
-  static Int_t fgCounter1;
-  static Int_t fgCounter2;  
+  static Int_t fgCounter1; // First internal counter
+  static Int_t fgCounter2; // Second internal counter
+
+private:
+  void Copy(TObject &) const
+  {Error("Copy","Not Implemented");}
+
+
   ClassDef(AliTPCTrackHitsV2,1) 
 };
 
+struct AliTPCCurrentHitV2 {
+  Int_t   fParamIndex;//  - current param pointer
+  Int_t   fStackIndex; // - current hit stack index
+  Double_t fR;   //current Radius
+  Bool_t  fStatus; //current status    
+};   
+
+
 
 #endif //ALITPCTRACKHITSV2_H