]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCTrackHitsV2.h
Adding sparse view - Jens
[u/mrichter/AliRoot.git] / TPC / AliTPCTrackHitsV2.h
index 225bb19c3f6f7cf9e659af233bbfca063129a29d..8703d9b3f91ddedd1e69c964d3bb85425cc10b1d 100644 (file)
@@ -10,8 +10,9 @@
 //
 
 #include "TObject.h"
+#include "TClonesArray.h"
+
 
-class TClonesArray;
 class AliTPChit;
 class AliTPCTempHitInfoV2;
 class AliTPCCurrentHitV2;
@@ -19,9 +20,24 @@ class AliHit;
 
 class AliTrackHitsParamV2 : public TObject {
 
+
 public:
   AliTrackHitsParamV2();
-  AliTrackHitsParamV2(const AliTrackHitsParamV2 &hit):  TObject(hit)
+
+   AliTrackHitsParamV2(const AliTrackHitsParamV2 &hit):  TObject(hit),
+   fTrackID(0), 
+   fVolumeID(0),
+   fR(0.),  
+   fZ(0.),  
+   fFi(0.), 
+   fAn(0.), 
+   fAd(0.), 
+   fTheta(0.), 
+   fThetaD(0.), 
+   fNHits(0), 
+   fHitDistance(0), 
+   fCharge(0),
+   fTime(0) 
     {hit.Copy(*this);}
   AliTrackHitsParamV2& operator = (const AliTrackHitsParamV2 &hit)
      {hit.Copy(*this); return (*this);}
@@ -113,12 +129,56 @@ public:
 class AliTPCTrackHitsV2 : public TObject {
 
 public:
-  AliTPCTrackHitsV2(); 
+  AliTPCTrackHitsV2();
   ~AliTPCTrackHitsV2();
-  AliTPCTrackHitsV2(const AliTPCTrackHitsV2 &hit):  TObject(hit)
-    {hit.Copy(*this);}
+  AliTPCTrackHitsV2(const AliTPCTrackHitsV2 &hit):  TObject(hit), 
+  fArray(0), 
+  fSize(hit.fSize),           
+  fPrecision(hit.fPrecision),  
+  fStep(hit.fStep),       
+  fMaxDistance(hit.fMaxDistance),   
+  fNVolumes(hit.fNVolumes), 
+  fVolumes(0),         
+  fTempInfo(hit.fTempInfo), 
+  fCurrentHit(hit.fCurrentHit),  
+  fHit(hit.fHit) 
+    { //
+      //copy constructor
+      //
+        
+      (*fArray) = (*hit.fArray);
+       //
+        delete [] fVolumes;
+        fVolumes = new Int_t[fNVolumes];
+        memcpy(fVolumes,hit.fVolumes,fNVolumes*sizeof(Int_t));
+    }
   AliTPCTrackHitsV2& operator = (const AliTPCTrackHitsV2 &hit)
-     {hit.Copy(*this); return (*this);}
+    {
+      if(this!=&hit){
+        TObject::operator=(hit);
+        fSize=hit.fSize;           
+        fPrecision=hit.fPrecision;  
+        fStep=hit.fStep;       
+        fMaxDistance=hit.fMaxDistance;   
+        fNVolumes=hit.fNVolumes;                   
+        fTempInfo=hit.fTempInfo; 
+        fCurrentHit=hit.fCurrentHit;  
+        fHit=hit.fHit;
+       //
+        //delete fArray;
+        fArray->Clear();
+        (*fArray)=(*hit.fArray);  
+       //
+        delete [] fVolumes;
+        fVolumes = new Int_t[fNVolumes];
+        memcpy(fVolumes,hit.fVolumes,fNVolumes*sizeof(Int_t));
+       //
+      }
+     
+     return *this;
+    }
+
+
   void Clear(Option_t * /*option*/ ="");
   void AddHitKartez(Int_t volumeID, Int_t trackID, Double_t x, 
                    Double_t y, Double_t z,Int_t q,Float_t time);