ROOT logo

/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
*                                                                        *
* Author: The ALICE Off-line Project.                                    *
* Contributors are mentioned in the code where appropriate.              *
*                                                                        *
* Permission to use, copy, modify and distribute this software and its   *
* documentation strictly for non-commercial purposes is hereby granted   *
* without fee, provided that the above copyright notice appears in all   *
* copies and that both the copyright notice and this permission notice   *
* appear in the supporting documentation. The authors make no claims     *
* about the suitability of this software for any purpose. It is          *
* provided "as is" without express or implied warranty.                  *
**************************************************************************/
//
// Class for spectrum correction
// Subtraction of hadronic background, Unfolding of the data and
// Renormalization done here
// The following containers have to be set:
//  - Correction framework container for real data
//  - Correction framework container for MC (Efficiency Map)
//  - Correction framework container for background coming from data
//  - Correction framework container for background coming from MC
//
//  Author: 
//            Raphaelle Bailhache <R.Bailhache@gsi.de>
//            Markus Fasel <M.Fasel@gsi.de>
//

#include <TArrayD.h>
#include <TH1.h>
#include <TList.h>
#include <TObjArray.h>
#include <TROOT.h>
#include <TCanvas.h>
#include <TLegend.h>
#include <TStyle.h>
#include <TMath.h>
#include <TAxis.h>
#include <TGraphErrors.h>
#include <TFile.h>
#include <TPad.h>
#include <TH2D.h>
#include <TF1.h>

#include "AliPID.h"
#include "AliCFContainer.h"
#include "AliCFDataGrid.h"
#include "AliCFEffGrid.h"
#include "AliCFGridSparse.h"
#include "AliCFUnfolding.h"
#include "AliLog.h"

#include "AliHFECorrectSpectrumBase.h"
#include "AliHFEcuts.h"
#include "AliHFEcontainer.h"
#include "AliHFEtools.h"

ClassImp(AliHFECorrectSpectrumBase)

//____________________________________________________________
AliHFECorrectSpectrumBase::AliHFECorrectSpectrumBase(const char *name):
  TNamed(name, ""),
  fCFContainers(new TObjArray(kNbCFContainers)),
  fCorrelation(NULL),
  fEfficiencyFunction(NULL),
  fEtaSelected(kFALSE),
  fSetSmoothing(kFALSE),
  fNbDimensions(1),
  fNEvents(0),
  fStepMC(-1),
  fStepTrue(-1),
  fStepData(-1),
  fStepBeforeCutsV0(-1),
  fStepAfterCutsV0(-1),
  fStepGuessedUnfolding(-1),
  fNumberOfIterations(10),
  fChargeChoosen(kAllCharge),
  fTestCentralityLow(-1),
  fTestCentralityHigh(-1)
{
  //
  // Default constructor
  //

  memset(fEtaRange, 0, sizeof(Double_t) * 2);
  memset(fEtaRangeNorm, 0, sizeof(Double_t) * 2);
  memset(fDims, 0, sizeof(Int_t) * 3);
  SetNbDimensions(1);
 
}
//____________________________________________________________
AliHFECorrectSpectrumBase::AliHFECorrectSpectrumBase(const AliHFECorrectSpectrumBase &ref):
  TNamed(ref),
  fCFContainers(NULL),
  fCorrelation(NULL),
  fEfficiencyFunction(NULL),
  fEtaSelected(ref.fEtaSelected),
  fSetSmoothing(ref.fSetSmoothing),
  fNbDimensions(ref.fNbDimensions),
  fNEvents(ref.fNEvents),
  fStepMC(ref.fStepMC),
  fStepTrue(ref.fStepTrue),
  fStepData(ref.fStepData),
  fStepBeforeCutsV0(ref.fStepBeforeCutsV0),
  fStepAfterCutsV0(ref.fStepAfterCutsV0),
  fStepGuessedUnfolding(ref.fStepGuessedUnfolding),
  fNumberOfIterations(ref.fNumberOfIterations),
  fChargeChoosen(ref.fChargeChoosen),
  fTestCentralityLow(ref.fTestCentralityLow),
  fTestCentralityHigh(ref.fTestCentralityHigh)
{
  //
  // Copy constructor
  //
  ref.Copy(*this);

}
//____________________________________________________________
AliHFECorrectSpectrumBase &AliHFECorrectSpectrumBase::operator=(const AliHFECorrectSpectrumBase &ref){
  //
  // Assignment operator
  //
  if(this == &ref) 
    ref.Copy(*this);
  return *this;
}
//____________________________________________________________
void AliHFECorrectSpectrumBase::Copy(TObject &o) const {
  // 
  // Copy into object o
  //
  AliHFECorrectSpectrumBase &target = dynamic_cast<AliHFECorrectSpectrumBase &>(o);
  target.fCFContainers = fCFContainers;
  target.fCorrelation = fCorrelation;
  target.fEfficiencyFunction = fEfficiencyFunction;
  target.fEtaSelected = fEtaSelected;
  target.fSetSmoothing = fSetSmoothing;
  target.fNbDimensions = fNbDimensions;
  target.fNEvents = fNEvents;
  target.fStepMC = fStepMC;
  target.fStepTrue = fStepTrue;
  target.fStepData = fStepData;
  target.fStepBeforeCutsV0 = fStepBeforeCutsV0;
  target.fStepAfterCutsV0 = fStepAfterCutsV0;
  target.fStepGuessedUnfolding = fStepGuessedUnfolding;
  target.fNumberOfIterations = fNumberOfIterations;
  target.fChargeChoosen = fChargeChoosen;
  target.fTestCentralityLow = fTestCentralityLow;
  target.fTestCentralityHigh = fTestCentralityHigh;
  target.fDims[0] = fDims[0];
  target.fDims[1] = fDims[1];
  target.fDims[2] = fDims[2];
  target.fEtaRange[0] = fEtaRange[0];
  target.fEtaRange[1] = fEtaRange[1];
  target.fEtaRangeNorm[0] = fEtaRangeNorm[0];
  target.fEtaRangeNorm[1] = fEtaRangeNorm[1];

}

//____________________________________________________________
AliHFECorrectSpectrumBase::~AliHFECorrectSpectrumBase(){
  //
  // Destructor
  //
  if(fCFContainers) delete fCFContainers;
 
}
//__________________________________________________________________________________
TGraphErrors *AliHFECorrectSpectrumBase::Normalize(THnSparse * const spectrum) const {
  //
  // Normalize the spectrum to 1/(2*Pi*p_{T})*dN/dp_{T} (GeV/c)^{-2}
  // Give the final pt spectrum to be compared
  //

  if(fNEvents > 0) {

    TH1D* projection = spectrum->Projection(0);
    AliHFEtools::NormaliseBinWidth(projection);
    TGraphErrors *graphError = NormalizeTH1(projection);
    return graphError;
  
  }
    
  return 0x0;
  

}
//__________________________________________________________________________________
TGraphErrors *AliHFECorrectSpectrumBase::Normalize(AliCFDataGrid * const spectrum) const {
  //
  // Normalize the spectrum to 1/(2*Pi*p_{T})*dN/dp_{T} (GeV/c)^{-2}
  // Give the final pt spectrum to be compared
  //
  if(fNEvents > 0) {

    TH1D* projection = (TH1D *) spectrum->Project(0);
    AliHFEtools::NormaliseBinWidth(projection);
    TGraphErrors *graphError = NormalizeTH1(projection);

    return graphError;
    
  }

  return 0x0;
  

}
//__________________________________________________________________________________
TGraphErrors *AliHFECorrectSpectrumBase::NormalizeTH1(TH1 *input) const {
  //
  // Normalize the spectrum to 1/(2*Pi*p_{T})*dN/dp_{T} (GeV/c)^{-2}
  // Give the final pt spectrum to be compared
  //
  Double_t chargecoefficient = 0.5;
  if(fChargeChoosen != 0) chargecoefficient = 1.0;

  Double_t etarange = fEtaSelected ? fEtaRangeNorm[1] - fEtaRangeNorm[0] : 1.6;
  printf("Normalizing Eta Range %f\n", etarange);
  printf("Number of events in Normalisation: %d\n", fNEvents);
  AliDebug(3, Form("charge coefficient: %f\n", chargecoefficient));
  if(fNEvents > 0) {

    TGraphErrors *spectrumNormalized = new TGraphErrors(input->GetNbinsX());
    Double_t p = 0, dp = 0; Int_t point = 1;
    Double_t n = 0, dN = 0;
    Double_t nCorr = 0, dNcorr = 0;
    //Double_t errdN = 0, errdp = 0;
    Double_t errdN = 0;
    for(Int_t ibin = input->GetXaxis()->GetFirst(); ibin <= input->GetXaxis()->GetLast(); ibin++){
      point = ibin - input->GetXaxis()->GetFirst();
      p = input->GetXaxis()->GetBinCenter(ibin);
      dp = input->GetXaxis()->GetBinWidth(ibin)/2.;
      n = input->GetBinContent(ibin);
      AliDebug(6, Form("p: %f, n: %e\n", p, n));
      dN = input->GetBinError(ibin);
      // New point
      nCorr = chargecoefficient * 1./etarange * 1./(Double_t)(fNEvents) * 1./(2. * TMath::Pi() * p) * n;
      errdN = 1./(2. * TMath::Pi() * p);
      //errdp = 1./(2. * TMath::Pi() * p*p) * n;
      //dNcorr = chargecoefficient * 1./etarange * 1./(Double_t)(fNEvents) * TMath::Sqrt(errdN * errdN * dN *dN + errdp *errdp * dp *dp);
      dNcorr = chargecoefficient * 1./etarange * 1./(Double_t)(fNEvents) * TMath::Sqrt(errdN * errdN * dN *dN);
      
      spectrumNormalized->SetPoint(point, p, nCorr);
      spectrumNormalized->SetPointError(point, dp, dNcorr);
    }
    spectrumNormalized->GetXaxis()->SetTitle("p_{T} [GeV/c]");
    spectrumNormalized->GetYaxis()->SetTitle("#frac{1}{2 #pi p_{T}} #frac{dN}{dp_{T}} / [GeV/c]^{-2}");
    spectrumNormalized->SetMarkerStyle(22);
    spectrumNormalized->SetMarkerColor(kBlue);
    spectrumNormalized->SetLineColor(kBlue);

    return spectrumNormalized;
    
  }

  return 0x0;
  

}
//____________________________________________________________
void AliHFECorrectSpectrumBase::SetContainer(AliCFContainer *cont, AliHFECorrectSpectrumBase::CFContainer_t type){
  //
  // Set the container for a given step to the 
  //
  if(!fCFContainers) fCFContainers = new TObjArray(kNbCFContainers);
  fCFContainers->AddAt(cont, type);
}

//____________________________________________________________
AliCFContainer *AliHFECorrectSpectrumBase::GetContainer(AliHFECorrectSpectrumBase::CFContainer_t type){
  //
  // Get Correction Framework Container for given type
  //
  if(!fCFContainers) return NULL;
  return dynamic_cast<AliCFContainer *>(fCFContainers->At(type));
}
//____________________________________________________________
AliCFContainer *AliHFECorrectSpectrumBase::GetSlicedContainer(AliCFContainer *container, Int_t nDim, Int_t *dimensions,Int_t source,Chargetype_t charge, Int_t centralitylow, Int_t centralityhigh, Bool_t doCentralityProjection) {
  //
  // Slice bin for a given source of electron
  // nDim is the number of dimension the corrections are done
  // dimensions are the definition of the dimensions
  // source is if we want to keep only one MC source (-1 means we don't cut on the MC source)
  // positivenegative if we want to keep positive (1) or negative (0) or both (-1)
  // centrality (-1 means we do not cut on centrality)
  //
  const double kVerySmall = 1e-5;
  
  Double_t *varMin = new Double_t[container->GetNVar()],
           *varMax = new Double_t[container->GetNVar()];

  Double_t *binLimits;
  for(Int_t ivar = 0; ivar < container->GetNVar(); ivar++){
    
    binLimits = new Double_t[container->GetNBins(ivar)+1];
    container->GetBinLimits(ivar,binLimits);
    varMin[ivar] = binLimits[0];
    varMax[ivar] = binLimits[container->GetNBins(ivar)];
    // source
    if(ivar == 4){
      if((source>= 0) && (source<container->GetNBins(ivar))) {
              varMin[ivar] = container->GetAxis(4,0)->GetBinLowEdge(container->GetAxis(4,0)->FindBin(binLimits[source]));
              varMax[ivar] = container->GetAxis(4,0)->GetBinUpEdge(container->GetAxis(4,0)->FindBin(binLimits[source]));
      }     
    }
    // charge
    if(ivar == 3) {
      if(charge != kAllCharge){
        varMin[ivar] = container->GetAxis(3,0)->GetBinLowEdge(container->GetAxis(3,0)->FindBin(charge));
        varMax[ivar] = container->GetAxis(3,0)->GetBinUpEdge(container->GetAxis(3,0)->FindBin(charge));
      }
    }
    // eta
    if(ivar == 1){
      for(Int_t ic = 1; ic <= container->GetAxis(1,0)->GetLast(); ic++) 
        AliDebug(1, Form("eta bin %d, min %f, max %f\n", ic, container->GetAxis(1,0)->GetBinLowEdge(ic), container->GetAxis(1,0)->GetBinUpEdge(ic))); 
      if(fEtaSelected){
        varMin[ivar] = fEtaRange[0];
        varMax[ivar] = fEtaRange[1];
      }
    }
    if(fEtaSelected){
      fEtaRangeNorm[0] = container->GetAxis(1,0)->GetBinLowEdge(container->GetAxis(1,0)->FindBin(fEtaRange[0]));
      fEtaRangeNorm[1] = container->GetAxis(1,0)->GetBinUpEdge(container->GetAxis(1,0)->FindBin(fEtaRange[1]));
      AliInfo(Form("Normalization done in eta range [%f,%f]\n", fEtaRangeNorm[0], fEtaRangeNorm[1]));
    }
    // centrality
    if(ivar == 5){
	    if((centralitylow>= 0) && (centralitylow<container->GetNBins(ivar)) && (centralityhigh>= 0) && (centralityhigh<container->GetNBins(ivar)) && doCentralityProjection) {
	      varMin[ivar] = binLimits[centralitylow]+ kVerySmall;
	      varMax[ivar] = binLimits[centralityhigh]+ kVerySmall;

	      TAxis *axistest = container->GetAxis(5,0);
	      AliDebug(1, Form("Number of bin in centrality direction %d\n",axistest->GetNbins()));
	      AliDebug(1, Form("Project from %f to %f\n",binLimits[centralitylow],binLimits[centralityhigh]));
	      Double_t lowcentrality = axistest->GetBinLowEdge(axistest->FindBin(binLimits[centralitylow]));
	      Double_t highcentrality = axistest->GetBinUpEdge(axistest->FindBin(binLimits[centralityhigh]));
	      AliDebug(1, Form("Low centrality %f and high centrality %f\n",lowcentrality,highcentrality));
	    }
    }
    
    // Protect varmax against overflow 
    if(TMath::Abs(varMax[ivar] - binLimits[container->GetNBins(ivar)]) < kVerySmall){
      AliInfo("Protection against overflow bin");
      varMax[ivar] -= kVerySmall;
    }
    if(varMax[ivar] > binLimits[container->GetNBins(ivar)]){
      AliError("Upper limit exceeds allowed range");
      varMax[ivar] = binLimits[container->GetNBins(ivar)] - kVerySmall;
    }

    // Protect varmin against overflow 
    if(TMath::Abs(varMin[ivar] - binLimits[container->GetNBins(ivar)]) < kVerySmall){
      AliInfo("Protection against overflow bin");
      varMin[ivar] -= kVerySmall;
    }
    if(varMin[ivar] > binLimits[container->GetNBins(ivar)]){
      AliError("Upper limit exceeds allowed range");
      varMin[ivar] = binLimits[container->GetNBins(ivar)] - kVerySmall;
    }
    AliDebug(1, Form("variable %d: Settting limits to %f and %f\n", ivar, varMin[ivar], varMax[ivar]));
    delete[] binLimits;
   
  }

  AliCFContainer *k = container->MakeSlice(nDim, dimensions, varMin, varMax);
  delete[] varMin; delete[] varMax;

  return k;

}

//_________________________________________________________________________
THnSparseF *AliHFECorrectSpectrumBase::GetSlicedCorrelation(THnSparseF *correlationmatrix, Int_t nDim, Int_t *dimensions,Chargetype_t charge,Int_t centralitylow, Int_t centralityhigh, Bool_t doCentralityProjection) const {
  //
  // Slice correlation
  //

  Int_t ndimensions = correlationmatrix->GetNdimensions();
  //printf("Number of dimension %d correlation map\n",ndimensions);
  if(ndimensions < (2*nDim)) {
    AliError("Problem in the dimensions");
    return NULL;
  }
  
  // Cut in centrality is centrality > -1
  if((5+((Int_t)(ndimensions/2.))) < ndimensions) {
    if((centralitylow >=0) && (centralityhigh >=0)) {
      
      TAxis *axiscentrality0 = correlationmatrix->GetAxis(5);
      TAxis *axiscentrality1 = correlationmatrix->GetAxis(5+((Int_t)(ndimensions/2.)));
      
      Int_t bins0 = axiscentrality0->GetNbins();
      Int_t bins1 = axiscentrality1->GetNbins();
      
      AliDebug(1, Form("Number of centrality bins: %d and %d\n",bins0,bins1));
      if(bins0 != bins1) {
	      AliError("Problem in the dimensions");
	      return NULL;
      }
      
      if((centralitylow>= 0) && (centralitylow<bins0) && (centralityhigh>= 0) && (centralityhigh<bins0) && doCentralityProjection) {
	      axiscentrality0->SetRangeUser(centralitylow,centralityhigh);
	      axiscentrality1->SetRangeUser(centralitylow,centralityhigh);
	
	      Double_t lowcentrality0 = axiscentrality0->GetBinLowEdge(axiscentrality0->FindBin(centralitylow));
	      Double_t highcentrality0 = axiscentrality0->GetBinUpEdge(axiscentrality0->FindBin(centralityhigh));
	      Double_t lowcentrality1 = axiscentrality1->GetBinLowEdge(axiscentrality1->FindBin(centralitylow));
	      Double_t highcentrality1 = axiscentrality1->GetBinUpEdge(axiscentrality1->FindBin(centralityhigh));
	      AliDebug(1,Form("0 Low centrality %f and high centrality %f\n",lowcentrality0,highcentrality0));
	      AliDebug(1,Form("1 Low centrality %f and high centrality %f\n",lowcentrality1,highcentrality1));
	
      }    
    }
  }

  // Cut in eta > -1
  if(fEtaSelected){
    if((1+((Int_t)(ndimensions/2.))) < ndimensions) {
      
      TAxis *axiseta0 = correlationmatrix->GetAxis(1);
      TAxis *axiseta1 = correlationmatrix->GetAxis(1+((Int_t)(ndimensions/2.)));
      
      Int_t bins0 = axiseta0->GetNbins();
      Int_t bins1 = axiseta1->GetNbins();
      
      AliDebug(1, Form("Number of eta bins: %d and %d\n",bins0,bins1));
      if(bins0 != bins1) {
	AliError("Problem in the dimensions");
	return NULL;
      }
      
      axiseta0->SetRangeUser(fEtaRange[0],fEtaRange[1]);
      axiseta1->SetRangeUser(fEtaRange[0],fEtaRange[1]);
	
	Double_t loweta0 = axiseta0->GetBinLowEdge(axiseta0->FindBin(fEtaRange[0]));
	Double_t higheta0 = axiseta0->GetBinUpEdge(axiseta0->FindBin(fEtaRange[1]));
	Double_t loweta1 = axiseta1->GetBinLowEdge(axiseta1->FindBin(fEtaRange[0]));
	Double_t higheta1 = axiseta1->GetBinUpEdge(axiseta1->FindBin(fEtaRange[1]));
	AliInfo(Form("0 Low eta %f and high eta %f\n",loweta0,higheta0));
	AliInfo(Form("1 Low eta %f and high eta %f\n",loweta1,higheta1));
	
    }    
  }

  // Cut in charge
  if(charge != kAllCharge) {
    if((3+((Int_t)(ndimensions/2.))) < ndimensions) {
      
      TAxis *axischarge0 = correlationmatrix->GetAxis(3);
      TAxis *axischarge1 = correlationmatrix->GetAxis(3+((Int_t)(ndimensions/2.)));
      
      Int_t bins0 = axischarge0->GetNbins();
      Int_t bins1 = axischarge1->GetNbins();
      
      AliDebug(1, Form("Number of charge bins: %d and %d\n",bins0,bins1));
      if(bins0 != bins1) {
	AliError("Problem in the dimensions");
	return NULL;
      }
      
      axischarge0->SetRangeUser(charge,charge);
      axischarge1->SetRangeUser(charge,charge);
      
      Double_t lowcharge0 = axischarge0->GetBinLowEdge(axischarge0->FindBin(charge));
      Double_t highcharge0 = axischarge0->GetBinUpEdge(axischarge0->FindBin(charge));
      Double_t lowcharge1 = axischarge1->GetBinLowEdge(axischarge1->FindBin(charge));
      Double_t highcharge1 = axischarge1->GetBinUpEdge(axischarge1->FindBin(charge));
      AliInfo(Form("0 Low charge %f and high charge %f\n",lowcharge0,highcharge0));
      AliInfo(Form("1 Low charge %f and high charge %f\n",lowcharge1,highcharge1));
      
    }
  }
  

  Int_t ndimensionsContainer = (Int_t) ndimensions/2;
  
  Int_t *dim = new Int_t[nDim*2];
  for(Int_t iter=0; iter < nDim; iter++){
    dim[iter] = dimensions[iter];
    dim[iter+nDim] = ndimensionsContainer + dimensions[iter];
  }
    
  THnSparseF *k = (THnSparseF *) correlationmatrix->Projection(nDim*2,dim);

  delete[] dim; 
  return k;
  
}
//___________________________________________________________________________
void AliHFECorrectSpectrumBase::CorrectStatErr(AliCFDataGrid *backgroundGrid) const { 
  //
  // Correct statistical error
  //

  TH1D *h1 = (TH1D*)backgroundGrid->Project(0);
  Int_t nbinX = h1->GetNbinsX();
  Int_t bins[1];
  for(Long_t i = 1; i <= nbinX; i++) {
    bins[0] = i;
    Float_t content = h1->GetBinContent(i);
    if(content>0){
      Float_t error = TMath::Sqrt(content);
      backgroundGrid->SetElementError(bins, error);
    }
  }
}
//_________________________________________________________________________
TObject* AliHFECorrectSpectrumBase::GetSpectrum(const AliCFContainer * const c, Int_t step) {
  AliCFDataGrid* data = new AliCFDataGrid("data","",*c, step);
  return data;
}
//_________________________________________________________________________
TObject* AliHFECorrectSpectrumBase::GetEfficiency(const AliCFContainer * const c, Int_t step, Int_t step0){
  // 
  // Create efficiency grid and calculate efficiency
  // of step to step0
  //
  TString name("eff");
  name += step;
  name+= step0;
  AliCFEffGrid* eff = new AliCFEffGrid((const char*)name,"",*c);
  eff->CalculateEfficiency(step,step0);
  return eff;
}
//____________________________________________________________________________
void AliHFECorrectSpectrumBase::SetNbDimensions(Int_t nbDimensions) {
  //
  // Set the dimensions
  //
  fNbDimensions = nbDimensions;
  switch(fNbDimensions){
  case 1:   fDims[0] = 0;
    break;
  case 2:   for(Int_t i = 0; i < 2; i++) fDims[i] = i;
    break;
  case 3:   for(Int_t i = 0; i < 3; i++) fDims[i] = i;
    break;
  default:
    AliError("Container with this number of dimensions not foreseen (yet)");
    return ;
  };

}
 AliHFECorrectSpectrumBase.cxx:1
 AliHFECorrectSpectrumBase.cxx:2
 AliHFECorrectSpectrumBase.cxx:3
 AliHFECorrectSpectrumBase.cxx:4
 AliHFECorrectSpectrumBase.cxx:5
 AliHFECorrectSpectrumBase.cxx:6
 AliHFECorrectSpectrumBase.cxx:7
 AliHFECorrectSpectrumBase.cxx:8
 AliHFECorrectSpectrumBase.cxx:9
 AliHFECorrectSpectrumBase.cxx:10
 AliHFECorrectSpectrumBase.cxx:11
 AliHFECorrectSpectrumBase.cxx:12
 AliHFECorrectSpectrumBase.cxx:13
 AliHFECorrectSpectrumBase.cxx:14
 AliHFECorrectSpectrumBase.cxx:15
 AliHFECorrectSpectrumBase.cxx:16
 AliHFECorrectSpectrumBase.cxx:17
 AliHFECorrectSpectrumBase.cxx:18
 AliHFECorrectSpectrumBase.cxx:19
 AliHFECorrectSpectrumBase.cxx:20
 AliHFECorrectSpectrumBase.cxx:21
 AliHFECorrectSpectrumBase.cxx:22
 AliHFECorrectSpectrumBase.cxx:23
 AliHFECorrectSpectrumBase.cxx:24
 AliHFECorrectSpectrumBase.cxx:25
 AliHFECorrectSpectrumBase.cxx:26
 AliHFECorrectSpectrumBase.cxx:27
 AliHFECorrectSpectrumBase.cxx:28
 AliHFECorrectSpectrumBase.cxx:29
 AliHFECorrectSpectrumBase.cxx:30
 AliHFECorrectSpectrumBase.cxx:31
 AliHFECorrectSpectrumBase.cxx:32
 AliHFECorrectSpectrumBase.cxx:33
 AliHFECorrectSpectrumBase.cxx:34
 AliHFECorrectSpectrumBase.cxx:35
 AliHFECorrectSpectrumBase.cxx:36
 AliHFECorrectSpectrumBase.cxx:37
 AliHFECorrectSpectrumBase.cxx:38
 AliHFECorrectSpectrumBase.cxx:39
 AliHFECorrectSpectrumBase.cxx:40
 AliHFECorrectSpectrumBase.cxx:41
 AliHFECorrectSpectrumBase.cxx:42
 AliHFECorrectSpectrumBase.cxx:43
 AliHFECorrectSpectrumBase.cxx:44
 AliHFECorrectSpectrumBase.cxx:45
 AliHFECorrectSpectrumBase.cxx:46
 AliHFECorrectSpectrumBase.cxx:47
 AliHFECorrectSpectrumBase.cxx:48
 AliHFECorrectSpectrumBase.cxx:49
 AliHFECorrectSpectrumBase.cxx:50
 AliHFECorrectSpectrumBase.cxx:51
 AliHFECorrectSpectrumBase.cxx:52
 AliHFECorrectSpectrumBase.cxx:53
 AliHFECorrectSpectrumBase.cxx:54
 AliHFECorrectSpectrumBase.cxx:55
 AliHFECorrectSpectrumBase.cxx:56
 AliHFECorrectSpectrumBase.cxx:57
 AliHFECorrectSpectrumBase.cxx:58
 AliHFECorrectSpectrumBase.cxx:59
 AliHFECorrectSpectrumBase.cxx:60
 AliHFECorrectSpectrumBase.cxx:61
 AliHFECorrectSpectrumBase.cxx:62
 AliHFECorrectSpectrumBase.cxx:63
 AliHFECorrectSpectrumBase.cxx:64
 AliHFECorrectSpectrumBase.cxx:65
 AliHFECorrectSpectrumBase.cxx:66
 AliHFECorrectSpectrumBase.cxx:67
 AliHFECorrectSpectrumBase.cxx:68
 AliHFECorrectSpectrumBase.cxx:69
 AliHFECorrectSpectrumBase.cxx:70
 AliHFECorrectSpectrumBase.cxx:71
 AliHFECorrectSpectrumBase.cxx:72
 AliHFECorrectSpectrumBase.cxx:73
 AliHFECorrectSpectrumBase.cxx:74
 AliHFECorrectSpectrumBase.cxx:75
 AliHFECorrectSpectrumBase.cxx:76
 AliHFECorrectSpectrumBase.cxx:77
 AliHFECorrectSpectrumBase.cxx:78
 AliHFECorrectSpectrumBase.cxx:79
 AliHFECorrectSpectrumBase.cxx:80
 AliHFECorrectSpectrumBase.cxx:81
 AliHFECorrectSpectrumBase.cxx:82
 AliHFECorrectSpectrumBase.cxx:83
 AliHFECorrectSpectrumBase.cxx:84
 AliHFECorrectSpectrumBase.cxx:85
 AliHFECorrectSpectrumBase.cxx:86
 AliHFECorrectSpectrumBase.cxx:87
 AliHFECorrectSpectrumBase.cxx:88
 AliHFECorrectSpectrumBase.cxx:89
 AliHFECorrectSpectrumBase.cxx:90
 AliHFECorrectSpectrumBase.cxx:91
 AliHFECorrectSpectrumBase.cxx:92
 AliHFECorrectSpectrumBase.cxx:93
 AliHFECorrectSpectrumBase.cxx:94
 AliHFECorrectSpectrumBase.cxx:95
 AliHFECorrectSpectrumBase.cxx:96
 AliHFECorrectSpectrumBase.cxx:97
 AliHFECorrectSpectrumBase.cxx:98
 AliHFECorrectSpectrumBase.cxx:99
 AliHFECorrectSpectrumBase.cxx:100
 AliHFECorrectSpectrumBase.cxx:101
 AliHFECorrectSpectrumBase.cxx:102
 AliHFECorrectSpectrumBase.cxx:103
 AliHFECorrectSpectrumBase.cxx:104
 AliHFECorrectSpectrumBase.cxx:105
 AliHFECorrectSpectrumBase.cxx:106
 AliHFECorrectSpectrumBase.cxx:107
 AliHFECorrectSpectrumBase.cxx:108
 AliHFECorrectSpectrumBase.cxx:109
 AliHFECorrectSpectrumBase.cxx:110
 AliHFECorrectSpectrumBase.cxx:111
 AliHFECorrectSpectrumBase.cxx:112
 AliHFECorrectSpectrumBase.cxx:113
 AliHFECorrectSpectrumBase.cxx:114
 AliHFECorrectSpectrumBase.cxx:115
 AliHFECorrectSpectrumBase.cxx:116
 AliHFECorrectSpectrumBase.cxx:117
 AliHFECorrectSpectrumBase.cxx:118
 AliHFECorrectSpectrumBase.cxx:119
 AliHFECorrectSpectrumBase.cxx:120
 AliHFECorrectSpectrumBase.cxx:121
 AliHFECorrectSpectrumBase.cxx:122
 AliHFECorrectSpectrumBase.cxx:123
 AliHFECorrectSpectrumBase.cxx:124
 AliHFECorrectSpectrumBase.cxx:125
 AliHFECorrectSpectrumBase.cxx:126
 AliHFECorrectSpectrumBase.cxx:127
 AliHFECorrectSpectrumBase.cxx:128
 AliHFECorrectSpectrumBase.cxx:129
 AliHFECorrectSpectrumBase.cxx:130
 AliHFECorrectSpectrumBase.cxx:131
 AliHFECorrectSpectrumBase.cxx:132
 AliHFECorrectSpectrumBase.cxx:133
 AliHFECorrectSpectrumBase.cxx:134
 AliHFECorrectSpectrumBase.cxx:135
 AliHFECorrectSpectrumBase.cxx:136
 AliHFECorrectSpectrumBase.cxx:137
 AliHFECorrectSpectrumBase.cxx:138
 AliHFECorrectSpectrumBase.cxx:139
 AliHFECorrectSpectrumBase.cxx:140
 AliHFECorrectSpectrumBase.cxx:141
 AliHFECorrectSpectrumBase.cxx:142
 AliHFECorrectSpectrumBase.cxx:143
 AliHFECorrectSpectrumBase.cxx:144
 AliHFECorrectSpectrumBase.cxx:145
 AliHFECorrectSpectrumBase.cxx:146
 AliHFECorrectSpectrumBase.cxx:147
 AliHFECorrectSpectrumBase.cxx:148
 AliHFECorrectSpectrumBase.cxx:149
 AliHFECorrectSpectrumBase.cxx:150
 AliHFECorrectSpectrumBase.cxx:151
 AliHFECorrectSpectrumBase.cxx:152
 AliHFECorrectSpectrumBase.cxx:153
 AliHFECorrectSpectrumBase.cxx:154
 AliHFECorrectSpectrumBase.cxx:155
 AliHFECorrectSpectrumBase.cxx:156
 AliHFECorrectSpectrumBase.cxx:157
 AliHFECorrectSpectrumBase.cxx:158
 AliHFECorrectSpectrumBase.cxx:159
 AliHFECorrectSpectrumBase.cxx:160
 AliHFECorrectSpectrumBase.cxx:161
 AliHFECorrectSpectrumBase.cxx:162
 AliHFECorrectSpectrumBase.cxx:163
 AliHFECorrectSpectrumBase.cxx:164
 AliHFECorrectSpectrumBase.cxx:165
 AliHFECorrectSpectrumBase.cxx:166
 AliHFECorrectSpectrumBase.cxx:167
 AliHFECorrectSpectrumBase.cxx:168
 AliHFECorrectSpectrumBase.cxx:169
 AliHFECorrectSpectrumBase.cxx:170
 AliHFECorrectSpectrumBase.cxx:171
 AliHFECorrectSpectrumBase.cxx:172
 AliHFECorrectSpectrumBase.cxx:173
 AliHFECorrectSpectrumBase.cxx:174
 AliHFECorrectSpectrumBase.cxx:175
 AliHFECorrectSpectrumBase.cxx:176
 AliHFECorrectSpectrumBase.cxx:177
 AliHFECorrectSpectrumBase.cxx:178
 AliHFECorrectSpectrumBase.cxx:179
 AliHFECorrectSpectrumBase.cxx:180
 AliHFECorrectSpectrumBase.cxx:181
 AliHFECorrectSpectrumBase.cxx:182
 AliHFECorrectSpectrumBase.cxx:183
 AliHFECorrectSpectrumBase.cxx:184
 AliHFECorrectSpectrumBase.cxx:185
 AliHFECorrectSpectrumBase.cxx:186
 AliHFECorrectSpectrumBase.cxx:187
 AliHFECorrectSpectrumBase.cxx:188
 AliHFECorrectSpectrumBase.cxx:189
 AliHFECorrectSpectrumBase.cxx:190
 AliHFECorrectSpectrumBase.cxx:191
 AliHFECorrectSpectrumBase.cxx:192
 AliHFECorrectSpectrumBase.cxx:193
 AliHFECorrectSpectrumBase.cxx:194
 AliHFECorrectSpectrumBase.cxx:195
 AliHFECorrectSpectrumBase.cxx:196
 AliHFECorrectSpectrumBase.cxx:197
 AliHFECorrectSpectrumBase.cxx:198
 AliHFECorrectSpectrumBase.cxx:199
 AliHFECorrectSpectrumBase.cxx:200
 AliHFECorrectSpectrumBase.cxx:201
 AliHFECorrectSpectrumBase.cxx:202
 AliHFECorrectSpectrumBase.cxx:203
 AliHFECorrectSpectrumBase.cxx:204
 AliHFECorrectSpectrumBase.cxx:205
 AliHFECorrectSpectrumBase.cxx:206
 AliHFECorrectSpectrumBase.cxx:207
 AliHFECorrectSpectrumBase.cxx:208
 AliHFECorrectSpectrumBase.cxx:209
 AliHFECorrectSpectrumBase.cxx:210
 AliHFECorrectSpectrumBase.cxx:211
 AliHFECorrectSpectrumBase.cxx:212
 AliHFECorrectSpectrumBase.cxx:213
 AliHFECorrectSpectrumBase.cxx:214
 AliHFECorrectSpectrumBase.cxx:215
 AliHFECorrectSpectrumBase.cxx:216
 AliHFECorrectSpectrumBase.cxx:217
 AliHFECorrectSpectrumBase.cxx:218
 AliHFECorrectSpectrumBase.cxx:219
 AliHFECorrectSpectrumBase.cxx:220
 AliHFECorrectSpectrumBase.cxx:221
 AliHFECorrectSpectrumBase.cxx:222
 AliHFECorrectSpectrumBase.cxx:223
 AliHFECorrectSpectrumBase.cxx:224
 AliHFECorrectSpectrumBase.cxx:225
 AliHFECorrectSpectrumBase.cxx:226
 AliHFECorrectSpectrumBase.cxx:227
 AliHFECorrectSpectrumBase.cxx:228
 AliHFECorrectSpectrumBase.cxx:229
 AliHFECorrectSpectrumBase.cxx:230
 AliHFECorrectSpectrumBase.cxx:231
 AliHFECorrectSpectrumBase.cxx:232
 AliHFECorrectSpectrumBase.cxx:233
 AliHFECorrectSpectrumBase.cxx:234
 AliHFECorrectSpectrumBase.cxx:235
 AliHFECorrectSpectrumBase.cxx:236
 AliHFECorrectSpectrumBase.cxx:237
 AliHFECorrectSpectrumBase.cxx:238
 AliHFECorrectSpectrumBase.cxx:239
 AliHFECorrectSpectrumBase.cxx:240
 AliHFECorrectSpectrumBase.cxx:241
 AliHFECorrectSpectrumBase.cxx:242
 AliHFECorrectSpectrumBase.cxx:243
 AliHFECorrectSpectrumBase.cxx:244
 AliHFECorrectSpectrumBase.cxx:245
 AliHFECorrectSpectrumBase.cxx:246
 AliHFECorrectSpectrumBase.cxx:247
 AliHFECorrectSpectrumBase.cxx:248
 AliHFECorrectSpectrumBase.cxx:249
 AliHFECorrectSpectrumBase.cxx:250
 AliHFECorrectSpectrumBase.cxx:251
 AliHFECorrectSpectrumBase.cxx:252
 AliHFECorrectSpectrumBase.cxx:253
 AliHFECorrectSpectrumBase.cxx:254
 AliHFECorrectSpectrumBase.cxx:255
 AliHFECorrectSpectrumBase.cxx:256
 AliHFECorrectSpectrumBase.cxx:257
 AliHFECorrectSpectrumBase.cxx:258
 AliHFECorrectSpectrumBase.cxx:259
 AliHFECorrectSpectrumBase.cxx:260
 AliHFECorrectSpectrumBase.cxx:261
 AliHFECorrectSpectrumBase.cxx:262
 AliHFECorrectSpectrumBase.cxx:263
 AliHFECorrectSpectrumBase.cxx:264
 AliHFECorrectSpectrumBase.cxx:265
 AliHFECorrectSpectrumBase.cxx:266
 AliHFECorrectSpectrumBase.cxx:267
 AliHFECorrectSpectrumBase.cxx:268
 AliHFECorrectSpectrumBase.cxx:269
 AliHFECorrectSpectrumBase.cxx:270
 AliHFECorrectSpectrumBase.cxx:271
 AliHFECorrectSpectrumBase.cxx:272
 AliHFECorrectSpectrumBase.cxx:273
 AliHFECorrectSpectrumBase.cxx:274
 AliHFECorrectSpectrumBase.cxx:275
 AliHFECorrectSpectrumBase.cxx:276
 AliHFECorrectSpectrumBase.cxx:277
 AliHFECorrectSpectrumBase.cxx:278
 AliHFECorrectSpectrumBase.cxx:279
 AliHFECorrectSpectrumBase.cxx:280
 AliHFECorrectSpectrumBase.cxx:281
 AliHFECorrectSpectrumBase.cxx:282
 AliHFECorrectSpectrumBase.cxx:283
 AliHFECorrectSpectrumBase.cxx:284
 AliHFECorrectSpectrumBase.cxx:285
 AliHFECorrectSpectrumBase.cxx:286
 AliHFECorrectSpectrumBase.cxx:287
 AliHFECorrectSpectrumBase.cxx:288
 AliHFECorrectSpectrumBase.cxx:289
 AliHFECorrectSpectrumBase.cxx:290
 AliHFECorrectSpectrumBase.cxx:291
 AliHFECorrectSpectrumBase.cxx:292
 AliHFECorrectSpectrumBase.cxx:293
 AliHFECorrectSpectrumBase.cxx:294
 AliHFECorrectSpectrumBase.cxx:295
 AliHFECorrectSpectrumBase.cxx:296
 AliHFECorrectSpectrumBase.cxx:297
 AliHFECorrectSpectrumBase.cxx:298
 AliHFECorrectSpectrumBase.cxx:299
 AliHFECorrectSpectrumBase.cxx:300
 AliHFECorrectSpectrumBase.cxx:301
 AliHFECorrectSpectrumBase.cxx:302
 AliHFECorrectSpectrumBase.cxx:303
 AliHFECorrectSpectrumBase.cxx:304
 AliHFECorrectSpectrumBase.cxx:305
 AliHFECorrectSpectrumBase.cxx:306
 AliHFECorrectSpectrumBase.cxx:307
 AliHFECorrectSpectrumBase.cxx:308
 AliHFECorrectSpectrumBase.cxx:309
 AliHFECorrectSpectrumBase.cxx:310
 AliHFECorrectSpectrumBase.cxx:311
 AliHFECorrectSpectrumBase.cxx:312
 AliHFECorrectSpectrumBase.cxx:313
 AliHFECorrectSpectrumBase.cxx:314
 AliHFECorrectSpectrumBase.cxx:315
 AliHFECorrectSpectrumBase.cxx:316
 AliHFECorrectSpectrumBase.cxx:317
 AliHFECorrectSpectrumBase.cxx:318
 AliHFECorrectSpectrumBase.cxx:319
 AliHFECorrectSpectrumBase.cxx:320
 AliHFECorrectSpectrumBase.cxx:321
 AliHFECorrectSpectrumBase.cxx:322
 AliHFECorrectSpectrumBase.cxx:323
 AliHFECorrectSpectrumBase.cxx:324
 AliHFECorrectSpectrumBase.cxx:325
 AliHFECorrectSpectrumBase.cxx:326
 AliHFECorrectSpectrumBase.cxx:327
 AliHFECorrectSpectrumBase.cxx:328
 AliHFECorrectSpectrumBase.cxx:329
 AliHFECorrectSpectrumBase.cxx:330
 AliHFECorrectSpectrumBase.cxx:331
 AliHFECorrectSpectrumBase.cxx:332
 AliHFECorrectSpectrumBase.cxx:333
 AliHFECorrectSpectrumBase.cxx:334
 AliHFECorrectSpectrumBase.cxx:335
 AliHFECorrectSpectrumBase.cxx:336
 AliHFECorrectSpectrumBase.cxx:337
 AliHFECorrectSpectrumBase.cxx:338
 AliHFECorrectSpectrumBase.cxx:339
 AliHFECorrectSpectrumBase.cxx:340
 AliHFECorrectSpectrumBase.cxx:341
 AliHFECorrectSpectrumBase.cxx:342
 AliHFECorrectSpectrumBase.cxx:343
 AliHFECorrectSpectrumBase.cxx:344
 AliHFECorrectSpectrumBase.cxx:345
 AliHFECorrectSpectrumBase.cxx:346
 AliHFECorrectSpectrumBase.cxx:347
 AliHFECorrectSpectrumBase.cxx:348
 AliHFECorrectSpectrumBase.cxx:349
 AliHFECorrectSpectrumBase.cxx:350
 AliHFECorrectSpectrumBase.cxx:351
 AliHFECorrectSpectrumBase.cxx:352
 AliHFECorrectSpectrumBase.cxx:353
 AliHFECorrectSpectrumBase.cxx:354
 AliHFECorrectSpectrumBase.cxx:355
 AliHFECorrectSpectrumBase.cxx:356
 AliHFECorrectSpectrumBase.cxx:357
 AliHFECorrectSpectrumBase.cxx:358
 AliHFECorrectSpectrumBase.cxx:359
 AliHFECorrectSpectrumBase.cxx:360
 AliHFECorrectSpectrumBase.cxx:361
 AliHFECorrectSpectrumBase.cxx:362
 AliHFECorrectSpectrumBase.cxx:363
 AliHFECorrectSpectrumBase.cxx:364
 AliHFECorrectSpectrumBase.cxx:365
 AliHFECorrectSpectrumBase.cxx:366
 AliHFECorrectSpectrumBase.cxx:367
 AliHFECorrectSpectrumBase.cxx:368
 AliHFECorrectSpectrumBase.cxx:369
 AliHFECorrectSpectrumBase.cxx:370
 AliHFECorrectSpectrumBase.cxx:371
 AliHFECorrectSpectrumBase.cxx:372
 AliHFECorrectSpectrumBase.cxx:373
 AliHFECorrectSpectrumBase.cxx:374
 AliHFECorrectSpectrumBase.cxx:375
 AliHFECorrectSpectrumBase.cxx:376
 AliHFECorrectSpectrumBase.cxx:377
 AliHFECorrectSpectrumBase.cxx:378
 AliHFECorrectSpectrumBase.cxx:379
 AliHFECorrectSpectrumBase.cxx:380
 AliHFECorrectSpectrumBase.cxx:381
 AliHFECorrectSpectrumBase.cxx:382
 AliHFECorrectSpectrumBase.cxx:383
 AliHFECorrectSpectrumBase.cxx:384
 AliHFECorrectSpectrumBase.cxx:385
 AliHFECorrectSpectrumBase.cxx:386
 AliHFECorrectSpectrumBase.cxx:387
 AliHFECorrectSpectrumBase.cxx:388
 AliHFECorrectSpectrumBase.cxx:389
 AliHFECorrectSpectrumBase.cxx:390
 AliHFECorrectSpectrumBase.cxx:391
 AliHFECorrectSpectrumBase.cxx:392
 AliHFECorrectSpectrumBase.cxx:393
 AliHFECorrectSpectrumBase.cxx:394
 AliHFECorrectSpectrumBase.cxx:395
 AliHFECorrectSpectrumBase.cxx:396
 AliHFECorrectSpectrumBase.cxx:397
 AliHFECorrectSpectrumBase.cxx:398
 AliHFECorrectSpectrumBase.cxx:399
 AliHFECorrectSpectrumBase.cxx:400
 AliHFECorrectSpectrumBase.cxx:401
 AliHFECorrectSpectrumBase.cxx:402
 AliHFECorrectSpectrumBase.cxx:403
 AliHFECorrectSpectrumBase.cxx:404
 AliHFECorrectSpectrumBase.cxx:405
 AliHFECorrectSpectrumBase.cxx:406
 AliHFECorrectSpectrumBase.cxx:407
 AliHFECorrectSpectrumBase.cxx:408
 AliHFECorrectSpectrumBase.cxx:409
 AliHFECorrectSpectrumBase.cxx:410
 AliHFECorrectSpectrumBase.cxx:411
 AliHFECorrectSpectrumBase.cxx:412
 AliHFECorrectSpectrumBase.cxx:413
 AliHFECorrectSpectrumBase.cxx:414
 AliHFECorrectSpectrumBase.cxx:415
 AliHFECorrectSpectrumBase.cxx:416
 AliHFECorrectSpectrumBase.cxx:417
 AliHFECorrectSpectrumBase.cxx:418
 AliHFECorrectSpectrumBase.cxx:419
 AliHFECorrectSpectrumBase.cxx:420
 AliHFECorrectSpectrumBase.cxx:421
 AliHFECorrectSpectrumBase.cxx:422
 AliHFECorrectSpectrumBase.cxx:423
 AliHFECorrectSpectrumBase.cxx:424
 AliHFECorrectSpectrumBase.cxx:425
 AliHFECorrectSpectrumBase.cxx:426
 AliHFECorrectSpectrumBase.cxx:427
 AliHFECorrectSpectrumBase.cxx:428
 AliHFECorrectSpectrumBase.cxx:429
 AliHFECorrectSpectrumBase.cxx:430
 AliHFECorrectSpectrumBase.cxx:431
 AliHFECorrectSpectrumBase.cxx:432
 AliHFECorrectSpectrumBase.cxx:433
 AliHFECorrectSpectrumBase.cxx:434
 AliHFECorrectSpectrumBase.cxx:435
 AliHFECorrectSpectrumBase.cxx:436
 AliHFECorrectSpectrumBase.cxx:437
 AliHFECorrectSpectrumBase.cxx:438
 AliHFECorrectSpectrumBase.cxx:439
 AliHFECorrectSpectrumBase.cxx:440
 AliHFECorrectSpectrumBase.cxx:441
 AliHFECorrectSpectrumBase.cxx:442
 AliHFECorrectSpectrumBase.cxx:443
 AliHFECorrectSpectrumBase.cxx:444
 AliHFECorrectSpectrumBase.cxx:445
 AliHFECorrectSpectrumBase.cxx:446
 AliHFECorrectSpectrumBase.cxx:447
 AliHFECorrectSpectrumBase.cxx:448
 AliHFECorrectSpectrumBase.cxx:449
 AliHFECorrectSpectrumBase.cxx:450
 AliHFECorrectSpectrumBase.cxx:451
 AliHFECorrectSpectrumBase.cxx:452
 AliHFECorrectSpectrumBase.cxx:453
 AliHFECorrectSpectrumBase.cxx:454
 AliHFECorrectSpectrumBase.cxx:455
 AliHFECorrectSpectrumBase.cxx:456
 AliHFECorrectSpectrumBase.cxx:457
 AliHFECorrectSpectrumBase.cxx:458
 AliHFECorrectSpectrumBase.cxx:459
 AliHFECorrectSpectrumBase.cxx:460
 AliHFECorrectSpectrumBase.cxx:461
 AliHFECorrectSpectrumBase.cxx:462
 AliHFECorrectSpectrumBase.cxx:463
 AliHFECorrectSpectrumBase.cxx:464
 AliHFECorrectSpectrumBase.cxx:465
 AliHFECorrectSpectrumBase.cxx:466
 AliHFECorrectSpectrumBase.cxx:467
 AliHFECorrectSpectrumBase.cxx:468
 AliHFECorrectSpectrumBase.cxx:469
 AliHFECorrectSpectrumBase.cxx:470
 AliHFECorrectSpectrumBase.cxx:471
 AliHFECorrectSpectrumBase.cxx:472
 AliHFECorrectSpectrumBase.cxx:473
 AliHFECorrectSpectrumBase.cxx:474
 AliHFECorrectSpectrumBase.cxx:475
 AliHFECorrectSpectrumBase.cxx:476
 AliHFECorrectSpectrumBase.cxx:477
 AliHFECorrectSpectrumBase.cxx:478
 AliHFECorrectSpectrumBase.cxx:479
 AliHFECorrectSpectrumBase.cxx:480
 AliHFECorrectSpectrumBase.cxx:481
 AliHFECorrectSpectrumBase.cxx:482
 AliHFECorrectSpectrumBase.cxx:483
 AliHFECorrectSpectrumBase.cxx:484
 AliHFECorrectSpectrumBase.cxx:485
 AliHFECorrectSpectrumBase.cxx:486
 AliHFECorrectSpectrumBase.cxx:487
 AliHFECorrectSpectrumBase.cxx:488
 AliHFECorrectSpectrumBase.cxx:489
 AliHFECorrectSpectrumBase.cxx:490
 AliHFECorrectSpectrumBase.cxx:491
 AliHFECorrectSpectrumBase.cxx:492
 AliHFECorrectSpectrumBase.cxx:493
 AliHFECorrectSpectrumBase.cxx:494
 AliHFECorrectSpectrumBase.cxx:495
 AliHFECorrectSpectrumBase.cxx:496
 AliHFECorrectSpectrumBase.cxx:497
 AliHFECorrectSpectrumBase.cxx:498
 AliHFECorrectSpectrumBase.cxx:499
 AliHFECorrectSpectrumBase.cxx:500
 AliHFECorrectSpectrumBase.cxx:501
 AliHFECorrectSpectrumBase.cxx:502
 AliHFECorrectSpectrumBase.cxx:503
 AliHFECorrectSpectrumBase.cxx:504
 AliHFECorrectSpectrumBase.cxx:505
 AliHFECorrectSpectrumBase.cxx:506
 AliHFECorrectSpectrumBase.cxx:507
 AliHFECorrectSpectrumBase.cxx:508
 AliHFECorrectSpectrumBase.cxx:509
 AliHFECorrectSpectrumBase.cxx:510
 AliHFECorrectSpectrumBase.cxx:511
 AliHFECorrectSpectrumBase.cxx:512
 AliHFECorrectSpectrumBase.cxx:513
 AliHFECorrectSpectrumBase.cxx:514
 AliHFECorrectSpectrumBase.cxx:515
 AliHFECorrectSpectrumBase.cxx:516
 AliHFECorrectSpectrumBase.cxx:517
 AliHFECorrectSpectrumBase.cxx:518
 AliHFECorrectSpectrumBase.cxx:519
 AliHFECorrectSpectrumBase.cxx:520
 AliHFECorrectSpectrumBase.cxx:521
 AliHFECorrectSpectrumBase.cxx:522
 AliHFECorrectSpectrumBase.cxx:523
 AliHFECorrectSpectrumBase.cxx:524
 AliHFECorrectSpectrumBase.cxx:525
 AliHFECorrectSpectrumBase.cxx:526
 AliHFECorrectSpectrumBase.cxx:527
 AliHFECorrectSpectrumBase.cxx:528
 AliHFECorrectSpectrumBase.cxx:529
 AliHFECorrectSpectrumBase.cxx:530
 AliHFECorrectSpectrumBase.cxx:531
 AliHFECorrectSpectrumBase.cxx:532
 AliHFECorrectSpectrumBase.cxx:533
 AliHFECorrectSpectrumBase.cxx:534
 AliHFECorrectSpectrumBase.cxx:535
 AliHFECorrectSpectrumBase.cxx:536
 AliHFECorrectSpectrumBase.cxx:537
 AliHFECorrectSpectrumBase.cxx:538
 AliHFECorrectSpectrumBase.cxx:539
 AliHFECorrectSpectrumBase.cxx:540
 AliHFECorrectSpectrumBase.cxx:541
 AliHFECorrectSpectrumBase.cxx:542
 AliHFECorrectSpectrumBase.cxx:543
 AliHFECorrectSpectrumBase.cxx:544
 AliHFECorrectSpectrumBase.cxx:545
 AliHFECorrectSpectrumBase.cxx:546