]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - CORRFW/AliCFGrid.cxx
syntax correction in comments
[u/mrichter/AliRoot.git] / CORRFW / AliCFGrid.cxx
index 5efaca207f802002ce2c8d258cafb69e01a21a81..0dfdcdaa18482e55e5110b9e8e8a62868994fe98 100644 (file)
 //   Still to be done:                                                 //
 // --Implement methods to merge cells                                  //
 // --Interpolate among bins in a range                                 // 
-// This implementation will be aventually replaced  byAliCFGridSparse  //
+// This implementation will be eventually replaced by AliCFGridSparse  //
 //---------------------------------------------------------------------//
 //
 //
-#include <AliLog.h>
+#include "AliLog.h"
 #include "AliCFGrid.h"
 #include "TMath.h"
 #include "TROOT.h"
@@ -168,7 +168,7 @@ Float_t AliCFGrid::GetElement(Double_t *var) const
   Int_t ovfl=0;  
   for(Int_t i=0;i<fNVar;i++){
     Int_t nbins=fNVarBins[i]+1;
-    Float_t *bins=new Float_t[nbins];
+    Double_t *bins=new Double_t[nbins];
     for(Int_t ibin =0;ibin<nbins;ibin++){
      bins[ibin] = fVarBinLimits[ibin+fOffset[i]];
     }
@@ -236,7 +236,7 @@ Float_t AliCFGrid::GetElementError(Double_t *var) const
   Int_t ovfl=0;  
   for(Int_t i=0;i<fNVar;i++){
     Int_t nbins=fNVarBins[i]+1;
-    Float_t *bins=new Float_t[nbins];
+    Double_t *bins=new Double_t[nbins];
     for(Int_t ibin =0;ibin<nbins;ibin++){
      bins[ibin] = fVarBinLimits[ibin+fOffset[i]];
     }
@@ -299,7 +299,7 @@ void AliCFGrid::SetElement(Double_t *var, Float_t val)
   Int_t ovfl=0;  
   for(Int_t i=0;i<fNVar;i++){
     Int_t nbins=fNVarBins[i]+1;
-    Float_t *bins=new Float_t[nbins];
+    Double_t *bins=new Double_t[nbins];
     for(Int_t ibin =0;ibin<nbins;ibin++){
      bins[ibin] = fVarBinLimits[ibin+fOffset[i]];
     }
@@ -362,7 +362,7 @@ void AliCFGrid::SetElementError(Double_t *var, Float_t val)
   Int_t ovfl=0;  
   for(Int_t i=0;i<fNVar;i++){
     Int_t nbins=fNVarBins[i]+1;
-    Float_t *bins=new Float_t[nbins];
+    Double_t *bins=new Double_t[nbins];
     for(Int_t ibin =0;ibin<nbins;ibin++){
      bins[ibin] = fVarBinLimits[ibin+fOffset[i]];
     }
@@ -415,7 +415,7 @@ void AliCFGrid::Fill(Double_t *var, Double_t weight)
 
   for(Int_t i=0;i<fNVar;i++){
     Int_t nbins=fNVarBins[i]+1;
-    Float_t *bins=new Float_t[nbins];
+    Double_t *bins=new Double_t[nbins];
     for(Int_t ibin =0;ibin<nbins;ibin++){
      bins[ibin] = fVarBinLimits[ibin+fOffset[i]];
     }
@@ -767,16 +767,16 @@ TH1D *AliCFGrid::Slice(Int_t ivar, Double_t *varMin, Double_t* varMax) const
   //Find out the min and max bins
 
   for(Int_t i=0;i<fNVar;i++){
-    Float_t xmin=varMin[i]; // the min values  
-    Float_t xmax=varMax[i]; // the min values  
-    Int_t nbins=fNVarBins[i]+1;
-    Float_t *bins=new Float_t[nbins];
-    for(Int_t ibin =0;ibin<nbins;ibin++){
-     bins[ibin] = fVarBinLimits[ibin+fOffset[i]];
+    Double_t xmin=varMin[i]; // the min values  
+    Double_t xmax=varMax[i]; // the max values  
+    Int_t nBins=fNVarBins[i]+1;
+    Double_t *Bins=new Double_t[nBins];
+    for(Int_t ibin =0;ibin<nBins;ibin++){
+     Bins[ibin] = fVarBinLimits[ibin+fOffset[i]];
     }
-    indexMin[i] = TMath::BinarySearch(nbins,bins,xmin);
-    indexMax[i] = TMath::BinarySearch(nbins,bins,xmax);
-    delete [] bins;
+    indexMin[i] = TMath::BinarySearch(nBins,Bins,xmin);
+    indexMax[i] = TMath::BinarySearch(nBins,Bins,xmax);
+    delete [] Bins;
   }
 
   Float_t sum=0;
@@ -786,6 +786,8 @@ TH1D *AliCFGrid::Slice(Int_t ivar, Double_t *varMin, Double_t* varMax) const
   Int_t *index= new Int_t[fNVar];
   Int_t ielmin=GetBinIndex(indexMin);
   Int_t ielmax=GetBinIndex(indexMax);
+
+
   for(Int_t iel=ielmin;iel<=ielmax;iel++){
     GetBinIndex(iel,index);
     Bool_t isIn=kTRUE;
@@ -797,6 +799,8 @@ TH1D *AliCFGrid::Slice(Int_t ivar, Double_t *varMin, Double_t* varMax) const
   }
 
   delete [] index;
+  delete [] indexMin;
+  delete [] indexMax;
 
 
   for(Int_t ibin =0;ibin<nbins;ibin++){
@@ -1068,7 +1072,7 @@ void AliCFGrid::Rebin(const Int_t* group)
   for(Int_t i=0;i<fNVar;i++){
     if(group[i]!=1)AliInfo(Form(" merging bins along dimension %i in groups of %i bins", i,group[i]));
   }
-  AliInfo(Form("This method was so far not implemented for AliCFGrid, but it is available in AliCFGridSparse"));
+  AliInfo(Form("This method was so far not implemented for AliCFGrid, but it is available for AliCFGridSparse"));
 
 }
 //____________________________________________________________________
@@ -1106,27 +1110,3 @@ void AliCFGrid::Copy(TObject& c) const
     target.fErr2 = fErr2;
   
 }
-//____________________________________________________________________
-void AliCFGrid::SetExcludeOffEntriesInProj(Bool_t in)
-{
-  //
-  // require under/overflows in 'hidden dimensions' to be excluded
-  // or included, when performing projections.
-  // For AliCFGrid implementation, only option = kTRUE is available
-
-  if(in){
-    AliInfo(Form("This option not available for AliCFGrid")); 
-    return;
-  }
-
-  fExclOffEntriesInProj=in;
-} 
-//____________________________________________________________________
-Bool_t AliCFGrid::GetExcludeOffEntriesInProj( ) const 
-{
-  //
-  // return flag saying whether under/overflows are excluded in projections 
-  //
-  
-  return fExclOffEntriesInProj;
-}