// 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"
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]];
}
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]];
}
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]];
}
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]];
}
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]];
}
//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;
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;
}
delete [] index;
+ delete [] indexMin;
+ delete [] indexMax;
for(Int_t ibin =0;ibin<nbins;ibin++){
}
}
//____________________________________________________________________
+void AliCFGrid::Rebin(const Int_t* group)
+{
+ //
+ // Not yet implemented
+ //
+ 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 for AliCFGridSparse"));
+
+}
+//____________________________________________________________________
void AliCFGrid::SumW2()
{
//
// or included, when performing projections.
// For AliCFGrid implementation, only option = kTRUE is available
- if(in){
- AliInfo(Form("This option not available for AliCFGrid"));
+ if(!in){
+ AliInfo(Form("This option is not available for AliCFGrid, Under/Overflows in hidden dimensions are always excluded"));
return;
}