+
+
+//inline functions :
+
+inline Long_t AliCFGridSparse::GetNBinsTotal() const {
+ Long_t n=1;
+ for (Int_t iVar=0; iVar<GetNVar(); iVar++) {
+ n *= fData->GetAxis(iVar)->GetNbins();
+ }
+ return n ;
+}
+
+inline void AliCFGridSparse::PrintNBins() const
+{
+ //
+ // printing the array containing the # of bins
+ //
+ for (Int_t i=0;i<GetNVar();i++) {
+ AliInfo(Form("bins in axis %i are: %i",i,fData->GetAxis(i)->GetNbins()));
+ }
+}
+
+inline void AliCFGridSparse::PrintBinLimits() const
+{
+ //
+ // printing the bin limits for each variable
+ //
+ for (Int_t iVar=0; iVar<GetNVar(); iVar++) {
+ AliInfo(Form("variable %d :",iVar));
+ const Int_t nBins = GetNBins(iVar) ;
+ Double_t *array = new Double_t[nBins+1];
+ GetBinLimits(iVar,array);
+ for (Int_t iBin=0; iBin<nBins; iBin++) {
+ AliInfo(Form(" bin limit index %i is: %e",iBin,array[iBin]));
+ }
+ delete [] array ;
+ }
+}
+
+inline void AliCFGridSparse::GetBinLimits(Int_t ivar, Double_t * array) const {
+ TAxis * axis = fData->GetAxis(ivar) ;
+ Int_t nBins = axis->GetNbins();
+ for (Int_t iBin=0; iBin<nBins; iBin++) array[iBin] = axis->GetBinLowEdge(iBin+1);
+ array[nBins] = axis->GetBinUpEdge(nBins);
+}
+
+inline Int_t* AliCFGridSparse::GetNBins() const {
+ Int_t *bins = new Int_t[GetNVar()];
+ for (Int_t iVar=0; iVar<GetNVar(); iVar++) {
+ bins[iVar] = GetNBins(iVar) ;
+ }
+ return bins;
+}
+
+inline Double_t* AliCFGridSparse::GetBinLimits(Int_t ivar) const {
+ Double_t * binLimits = new Double_t[GetNBins(ivar)+1] ;
+ GetBinLimits(ivar,binLimits);
+ return binLimits;
+}
+
+inline Int_t AliCFGridSparse::GetVar(const Char_t* title) const {
+ TString str(title);
+ for (Int_t iVar=0; iVar<GetNVar(); iVar++) {
+ if (!str.CompareTo(GetVarTitle(iVar))) return iVar;
+ }
+ AliError("Variable not found");
+ return -1;
+}
+
+inline void AliCFGridSparse::GetProjectionName (TString& s, Int_t var0, Int_t var1, Int_t var2) const {
+ s.Form("%s_proj-%s",GetName(),GetVarTitle(var0));
+ if (var1>=0) {
+ s.Append(Form("-%s",GetVarTitle(var1)));
+ if (var2>=0) s.Append(Form("-%s",GetVarTitle(var2)));
+ }
+}
+
+inline void AliCFGridSparse::GetProjectionTitle(TString& s, Int_t var0, Int_t var1, Int_t var2) const {
+ s.Form("%s: projection on %s",GetTitle(),GetVarTitle(var0));
+ if (var1>=0) {
+ s.Append(Form("-%s",GetVarTitle(var1)));
+ if (var2>=0) s.Append(Form("-%s",GetVarTitle(var2)));
+ }
+}
+