]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCclusterKr.h
Memory leak problems (TLinearFitter)- way around
[u/mrichter/AliRoot.git] / TPC / AliTPCclusterKr.h
index 39f789bcba06f3aa41130b6c6faa4fc44fd9ae60..9b14a12cb5c37ffcba4eb6c1653e8196b7674163 100644 (file)
 //   Origin: Adam Matyja, INP PAN, adam.matyja@ifj.edu.pl
 //-------------------------------------------------------
 
-#include <vector>
-#include "TObject.h"
+#include "AliCluster.h"
+#include "TObjArray.h"
 #include "AliTPCvtpr.h"
 
+
 //_____________________________________________________________________________
-class AliTPCclusterKr: public TObject{
+class AliTPCclusterKr: public AliCluster{
 public:
   AliTPCclusterKr();
   AliTPCclusterKr(const AliTPCclusterKr & param);//copy constructor
   AliTPCclusterKr &operator = (const AliTPCclusterKr & param); 
-  ~AliTPCclusterKr();
-
+  virtual ~AliTPCclusterKr();
 
-  void SetMax(AliTPCvtpr q){fMax=q;}//set values of max. in cluster
-  void SetADCcluster(Short_t q){fADCcluster=q;}
-  void SetSec(Short_t q){fNsec=q;}
-  void SetNpads(Short_t q){fNpads=q;}
-  void SetSize(){fSize=fCluster.size();}
+  virtual void SetCenter();//set center of the cluster weighted by charge
 
-  AliTPCvtpr GetMax(){return fMax;}
-  Short_t GetADCcluster(){return  fADCcluster;}
-  Short_t GetSec(){return fNsec;}
-  Short_t GetNpads(){return fNpads;}
-  Short_t GetSize(){return fSize;}
+  virtual void SetMax(AliTPCvtpr q){fMax=q;}//set values of max. in cluster
+  virtual void SetADCcluster(Int_t q){fADCcluster=q;}
+  virtual void SetSec(Short_t q){fSec=q;}
+  virtual void SetNPads(Short_t q){fNPads=q;}
+  virtual void SetNRows(Short_t q){fNRows=q;}
+  virtual void SetSize(){fSize=fCluster->GetEntriesFast();}
+  virtual void SetCenterX(Double_t q){fCenterX=q;}
+  virtual void SetCenterY(Double_t q){fCenterY=q;}
+  virtual void SetCenterT(Double_t q){fCenterT=q;}
+  //void AddDigitToCluster(AliTPCvtpr *q){fCluster.push_back(q);}
+  virtual void AddDigitToCluster(AliTPCvtpr *q){
+    fCluster->AddLast(q);
+    fCluster->Compress();
+  }
 
-  std::vector< AliTPCvtpr*> fCluster;//cluster contents(adc,nt,np,nr)
+  AliTPCvtpr GetMax() const {return fMax;}
+  Int_t GetADCcluster() const {return  fADCcluster;}
+  Short_t GetSec() const {return fSec;}
+  Short_t GetNPads() const {return fNPads;}
+  Short_t GetNRows() const {return fNRows;}
+  Short_t GetSize() const {return fSize;}
+  Double_t GetCenterX() const {return fCenterX;}
+  Double_t GetCenterY() const {return fCenterY;}
+  Double_t GetCenterT() const {return fCenterT;}
+  AliTPCvtpr *GetDigitFromCluster(Int_t i) const {return (AliTPCvtpr*)fCluster->At(i);}
 
 private:
   AliTPCvtpr fMax;//max (ADC,timebin,pad,row) in cluster
-  Short_t fADCcluster; //ADC of cluster
-  Short_t fNsec;  //sector of the cluster
-  Short_t fNpads; //number of pads in cluster
+  Int_t fADCcluster; //ADC of cluster
+  Short_t fSec;  //sector of the cluster
+  Short_t fNPads; //number of pads in cluster
+  Short_t fNRows; //number of rows in cluster
   Short_t fSize; //size of vector
+  Double_t fCenterX;// X coordinate of the cluster center in cm
+  Double_t fCenterY;// Y coordinate of the cluster center in cm
+  Double_t fCenterT;// time coordinate of the cluster center in timebins
+  //std::vector< AliTPCvtpr*> fCluster;//cluster contents(adc,nt,np,nr)
+  TObjArray *fCluster;//cluster contents(adc,nt,np,nr)
+
 
-  ClassDef(AliTPCclusterKr,1)  // Time Projection Chamber Kr clusters
+  ClassDef(AliTPCclusterKr,4)  // Time Projection Chamber Kr clusters
 };