]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliH2F.cxx
Iteration number stored into output file
[u/mrichter/AliRoot.git] / TPC / AliH2F.cxx
index da02e6e807f440c0d1a451ab6d0c60b8559cd75b..6a2058d83b35f1f34880283d8f899b66b574dd24 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/*
-$Log$
-Revision 1.1.4.2  2000/04/10 11:32:37  kowal2
-
-"ROOT"-based class with some extra functionality
-
-*/
+/* $Id$ */
 
 //----------------------------------------------------------------------------
 //  Author:   Marian Ivanov
@@ -28,15 +22,11 @@ Revision 1.1.4.2  2000/04/10 11:32:37  kowal2
 //
 //-----------------------------------------------------------------------------
 
-#include "AliH2F.h"
-#include "TClonesArray.h"
-#include "AliTPC.h"
-#include "TRandom.h"
-#include "AliCluster.h"
-#include "AliClusterFinder.h"
-//*KEEP,TMath.
+#include <TClonesArray.h>
+#include <TMath.h>
+#include <TRandom.h>
 
-// other include files follow here
+#include "AliH2F.h"
 
 
 ClassImp(AliH2F)
@@ -46,11 +36,8 @@ ClassImp(AliH2F)
 //***********************************************************************
 AliH2F::AliH2F():TH2F() 
 {
-  fSigmaX2 = 1.;
-  fSigmaY2 = 1.;
-  fdx = 1;
-  fdy=1;
-  fFitMatrix.ResizeTo(5,1);  
+  //
 }
 AliH2F::AliH2F(const Text_t *name,const Text_t *title,
                       Int_t nbinsx,Axis_t xlow,Axis_t xup
@@ -58,41 +45,46 @@ AliH2F::AliH2F(const Text_t *name,const Text_t *title,
   TH2F(name,title,nbinsx,xlow,xup
        ,nbinsy,ylow,yup)
 {
-  fSigmaX2 = 1.;
-  fSigmaY2 = 1.;
-  fdx = 1;
-  fdy=1; 
-  fFitMatrix.ResizeTo(5,1);  
+  //
+  
 }
      
 AliH2F::~AliH2F() 
 {
+  //
 }
 
-AliH2F::AliH2F(const AliH2F &) 
+AliH2F::AliH2F(const AliH2F &his) :
+  TH2F(his)
 {
+  //
+  
 }
 
-AliH2F & AliH2F::operator = (const AliH2F &) 
+AliH2F & AliH2F::operator = (const AliH2F & /*his*/
 {
-   return *this;
+  //
+  return *this;
 }
 
+/*
 TClonesArray * AliH2F::FindPeaks(Float_t threshold, Float_t noise)
 {
   //find peaks and write it in form of AliTPCcluster to array
     
   //firstly we need to create object for cluster finding
   //and fill it with contents of histogram
-  AliClusterFinder cfinder;
+  AliTPCClusterFinder cfinder;
   cfinder.SetThreshold(threshold);
   cfinder.SetNoise(noise);
   cfinder.GetHisto(this);
   return cfinder.FindPeaks3();
 }
+*/
 
 void AliH2F::ClearSpectrum()
 {
+  //clera histogram
   Int_t dimx =  fXaxis.GetNbins();
   Int_t dimy =  fYaxis.GetNbins();
   for (Int_t i = 0 ;i<dimx;i++)
@@ -106,6 +98,7 @@ void AliH2F::ClearSpectrum()
 
 void AliH2F::AddNoise(Float_t sn)
 {
+  // add gauss noise with sigma sn
   Int_t dimx =  fXaxis.GetNbins();
   Int_t dimy =  fYaxis.GetNbins();
   for (Int_t i = 0 ;i<dimx;i++)
@@ -123,7 +116,7 @@ void AliH2F::AddNoise(Float_t sn)
 }
 void AliH2F::AddGauss(Float_t x, Float_t y, 
                          Float_t sx, Float_t sy, Float_t max)
-{
+{  
   //transform to histogram coordinata  
   Int_t dimx =  fXaxis.GetNbins();
   Int_t dimy =  fYaxis.GetNbins();
@@ -151,6 +144,7 @@ void AliH2F::AddGauss(Float_t x, Float_t y,
 
 void AliH2F::ClearUnderTh(Int_t threshold)
 {
+  //clear histogram for bin under threshold
   Int_t dimx =  fXaxis.GetNbins();
   Int_t dimy =  fYaxis.GetNbins();
   for (Int_t i = 0 ;i<=dimx;i++)
@@ -164,6 +158,7 @@ void AliH2F::ClearUnderTh(Int_t threshold)
 
 void AliH2F::Round()
 {
+  //round float to integer 
   Int_t dimx =  fXaxis.GetNbins();
   Int_t dimy =  fYaxis.GetNbins();
   for (Int_t i = 0 ;i<=dimx;i++)
@@ -202,10 +197,10 @@ AliH2F *AliH2F::GetSubrange2d(Float_t xmin, Float_t xmax,
   TString  t2 = fTitle ;
   t1+="_subrange";
   t2+="_subrange";
-  const  Text_t * tt1 = t1;
-  const Text_t * tt2 = t2;
+  const Text_t *ktt1 = t1;
+  const Text_t *ktt2 = t2;
   
-  AliH2F * sub = new AliH2F(tt1,tt2,nx,xmin,xmax,ny,ymin,ymax); 
+  AliH2F * sub = new AliH2F(ktt1,ktt2,nx,xmin,xmax,ny,ymin,ymax); 
   
   Int_t i1 = Int_t( Float_t(fXaxis.GetNbins())*(xmin-fXaxis.GetXmin())/
                    (fXaxis.GetXmax()-fXaxis.GetXmin()) ) ;
@@ -249,10 +244,10 @@ TH1F *AliH2F::GetAmplitudes(Float_t zmin, Float_t zmax, Float_t th, Float_t xmin
   TString  t2 = fTitle ;
   t1+="_amplitudes";
   t2+="_amplitudes";
-  const  Text_t * tt1 = t1;
-  const Text_t * tt2 = t2;
+  const  Text_t *ktt1 = t1;
+  const Text_t *ktt2 = t2;
   
-  TH1F * h = new TH1F(tt1,tt2,100,zmin,zmax); 
+  TH1F * h = new TH1F(ktt1,ktt2,100,zmin,zmax); 
   
   Int_t i1 = Int_t( Float_t(fXaxis.GetNbins())*(xmin-fXaxis.GetXmin())/
                    (fXaxis.GetXmax()-fXaxis.GetXmin()) ) ;
@@ -306,82 +301,3 @@ Float_t   AliH2F::GetOccupancy(Float_t th , Float_t xmin, Float_t xmax,
   else 
     return 0;
 }
-
-//TH1F * AliH2F::GetSubrange1dx(Float_t xmin, Float_t xmax, Float_t y)
-//{
-//
-//}
-//TH1F * AliH2F::GetSubrange1dy(Float_t x, Float_t ymin, Float_t ymax)
-//{
-//
-//}
-
-void AliH2F::SetSmoothSigma(Float_t sigmaX, Float_t sigmaY)
-{
-  Float_t wx = (fXaxis.GetXmax()-fXaxis.GetXmin()) / Float_t(fXaxis.GetNbins());
-  Float_t wx2 = wx*wx;
-  Float_t wy = (fYaxis.GetXmax()-fYaxis.GetXmin()) / Float_t(fYaxis.GetNbins()) ;
-  Float_t wy2 =wy*wy;
-  fSigmaX2 = sigmaX*sigmaX/wx2;
-  fSigmaY2 = sigmaY*sigmaX/wy2;  
-}
-
-void AliH2F::SetSmoothRange(Float_t dx,Float_t dy)
-{
-  Float_t wx = (fXaxis.GetXmax()-fXaxis.GetXmin()) / Float_t(fXaxis.GetNbins());
-  Float_t wy = (fYaxis.GetXmax()-fYaxis.GetXmin()) / Float_t(fYaxis.GetNbins());
-  fdx = Int_t(dx/wx);
-  fdy = Int_t(dy/wy);
-}
-
-TMatrix *  AliH2F::GetFitMatrix(Int_t irow, Int_t icolumn) 
-{
-  SmoothCell(irow,icolumn);
-  return &fFitMatrix;
-}
-
-void AliH2F::SmoothCell(Int_t irow, Int_t icolumn)
-{
-  //calculate interpolation around point irow icollumn
-  //fitting by surface of second oreder
-  Int_t index;  
-  Float_t x,y,z,x2,x3,x4,y2,y3,y4;
-  Float_t sz = 0.0,szx = 0.0 ,szy = 0.0 ,szx2 = 0.0,szy2 = 0.0;
-  Float_t sx = 0.,sx2 = 0.,sx3 = 0.,sx4 = 0.;
-  Float_t sy = 0.,sy2 = 0. ,sy3 = 0. ,sy4 = 0.;
-  Float_t sxy = 0.,sxy2 = 0. ,sx2y =0.0 ,sx2y2 =0.0;
-  Float_t w;
-  Float_t sumweight = 0;
-  for (Int_t i = -fdx; i <=fdx; i++)  
-    for (Int_t j = -fdy; j <=fdy; j++)  
-      {
-       index = GetBin(irow+i,icolumn+j);
-        w = 1/(Float_t(i*i)+fSigmaX2)*1/(Float_t(j*j)+fSigmaY2);
-        z = GetBinContent(index);
-        x = irow+i;
-        x2 = x*x;           x3 = x2*x;         x4 = x2*x2;
-        y = icolumn+j;
-        y2   = y*y;         y3   = y2*y;       y4   = y2*y2; 
-       sz  += z*w;         sx  += x*w;        sy  += y*w;
-        szx += z*x*w;       szy += z*y*w;      szx2+= z*x2*w;     szy2 += z*y3*w;
-        sx2 += x2*w;        sx3 += x3*w;       sx4 += x4*w;
-        sy2 += y2*w;        sy3 += y3*w;       sy4 += y4*w;
-        sxy += x*y*w;       sxy2+= x*y2*w;     sx2y+=x2*y*w;      sx2y2+= x2*y2*w;
-        sumweight +=w;
-      }
-  TMatrix mat(5,5);
-  if (!fFitMatrix.IsValid()) fFitMatrix.ResizeTo(5,1);
-  
-  fFitMatrix(0,0) = sz;  
-  fFitMatrix(1,0) = szx;
-  fFitMatrix(2,0) = szy;
-  fFitMatrix(3,0) = szx2;
-  fFitMatrix(4,0) = szy2;
-  
-  mat(0,0) = sumweight;
-                  mat(0,1) = sx;    mat(0,2) = sy;  mat(0,3) = sx2;  mat(0,4) =sy2; 
-  mat(1,0) = sx;  mat(1,1) = sx2;   mat(1,2) = sxy; mat(1,3) = sx3;  mat(1,4) =sxy2;
-  mat(2,0) = sy;  mat(2,1) = sxy;   mat(2,2) = sy2; mat(2,3) = sx2y; mat(2,4) =sy3 ;
-  mat(3,0) = sx2; mat(3,1) = sx3;   mat(3,2) = sx2y;mat(3,3) = sx4 ; mat(3,4) =sx2y2;
-  mat(4,0) = sy2; mat(4,1) = sxy2;  mat(4,2) = sy3; mat(4,3) = sx2y2;mat(4,4) =sy4;
-}