ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2009, 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.                  *
 **************************************************************************/


/* $Id: $ */

/////////////////////////////////////////////////////////////
// class to average D meson -hadron correlations
//
// Author: A. Rossi, andrea.rossi@cern.ch
/////////////////////////////////////////////////////////////

#include "AliHFDmesonCorrAverage.h"
#include "AliHFDhadronCorrSystUnc.h"
#include <TMath.h>
#include <TH1D.h>
#include <TCanvas.h>
#include <TGraphAsymmErrors.h>


//using std::cout;
//using std::endl;

ClassImp(AliHFDmesonCorrAverage)

AliHFDmesonCorrAverage::AliHFDmesonCorrAverage() : 
TNamed(),
  fSystDzero(0),
  fSystDstar(0),
  fSystDplus(0),
  fSystDaverage(0),
  fincludeDzero(kFALSE),
  fincludeDstar(kFALSE),                    
  fincludeDplus(kFALSE),                   
  fmethod(),
  fptminD(),
  fptmaxD(),
  fptminAsso(),
  fptmaxAsso(),
  fhDzero(0x0),
  fhDstar(0x0),
  fhDplus(0x0),
  fhDaverage(0x0),
  fgrTotSystAverage(0x0),
  fgrFDSystAverage(0x0),
  fgrNonFDSystAverage(0x0),
  fweightsDzeroStat(0x0),
  fweightsDstarStat(0x0),
  fweightsDplusStat(0x0),
  fweightsDzeroSystYield(0x0),
  fweightsDstarSystYield(0x0),
  fweightsDplusSystYield(0x0),
  fweightsDzeroSystBkg(0x0),
  fweightsDstarSystBkg(0x0),
  fweightsDplusSystBkg(0x0),
  fnbinsphi(),  
  fsys(-2),
  fyear(-2),
  fSystAlreadySet(kFALSE),
  fArithmeticAverage(kFALSE),
  fhUsedWeightsDzero(0x0),
  fhUsedWeightsDstar(0x0),
  fhUsedWeightsDplus(0x0)
{// standard constructor 
  
}


AliHFDmesonCorrAverage::AliHFDmesonCorrAverage(const char* name) : 
  TNamed(name,name),
  fSystDzero(0),
  fSystDstar(0),
  fSystDplus(0),
  fSystDaverage(0),
  fincludeDzero(kFALSE),
  fincludeDstar(kFALSE),                    
  fincludeDplus(kFALSE),                   
  fmethod(),
  fptminD(),
  fptmaxD(),
  fptminAsso(),
  fptmaxAsso(),
  fhDzero(0x0),
  fhDstar(0x0),
  fhDplus(0x0),
  fhDaverage(0x0),
  fgrTotSystAverage(0x0),
  fgrFDSystAverage(0x0),
  fgrNonFDSystAverage(0x0),
  fweightsDzeroStat(0x0),
  fweightsDstarStat(0x0),
  fweightsDplusStat(0x0),
  fweightsDzeroSystYield(0x0),
  fweightsDstarSystYield(0x0),
  fweightsDplusSystYield(0x0),
  fweightsDzeroSystBkg(0x0),
  fweightsDstarSystBkg(0x0),
  fweightsDplusSystBkg(0x0),
  fnbinsphi(),
  fsys(-2),
  fyear(-2),
  fSystAlreadySet(kFALSE),
  fArithmeticAverage(kFALSE),
  fhUsedWeightsDzero(0x0),
  fhUsedWeightsDstar(0x0),
  fhUsedWeightsDplus(0x0)
{// default constructor 

}

AliHFDmesonCorrAverage::~AliHFDmesonCorrAverage(){
  
  delete fSystDzero;
  delete fSystDstar;
  delete fSystDplus;
  delete fSystDaverage;
  delete fhDzero;
  delete fhDstar; 
  delete fhDplus;
  delete fhDaverage;
  delete fgrTotSystAverage;
  delete fgrFDSystAverage;
  delete fgrNonFDSystAverage;
  delete fweightsDzeroStat;
  delete fweightsDstarStat;
  delete fweightsDplusStat;
  delete fweightsDzeroSystYield;
  delete fweightsDstarSystYield;
  delete fweightsDplusSystYield;
  delete fweightsDzeroSystBkg;
  delete fweightsDstarSystBkg;
  delete fweightsDplusSystBkg;
  delete  fhUsedWeightsDzero;
  delete fhUsedWeightsDstar;
  delete fhUsedWeightsDplus;

}



Bool_t AliHFDmesonCorrAverage::InitSystematicUncertainty(Int_t system,Int_t year){
  if(!fSystAlreadySet){
    if(system!=-1){
      if(system==0){ //pp
	if(fincludeDzero){
	  if(year==2010){
	    fSystDzero=new AliHFDhadronCorrSystUnc("fSystDzero");
	    fSystDzero->InitStandardUncertaintiesPP2010(0,(fptminD+fptmaxD)*0.5,fptminAsso);  
	    fSystDzero->BuildTotalUncHisto();
	    fSystDzero->BuildTotalNonFDUncHisto();
	    fSystDzero->BuildGraphsUnc(fhDzero);
	    fSystDzero->BuildGraphsRelUnc();
	  }
	  else {
	    Printf("No values for syst unc foreseen for this dataset");
	  }
	}
	
	if(fincludeDstar){
	  if(year==2010){
	    fSystDstar=new AliHFDhadronCorrSystUnc("fSystDstar");
	    fSystDstar->InitStandardUncertaintiesPP2010(1,(fptminD+fptmaxD)*0.5,fptminAsso);  
	    fSystDstar->BuildTotalUncHisto();
	    fSystDstar->BuildTotalNonFDUncHisto();
	    fSystDstar->BuildGraphsUnc(fhDstar);
	    fSystDstar->BuildGraphsRelUnc();
	  }
	  else {
	    Printf("No values for syst unc foreseen for this dataset");
	  }
	}
	
	if(fincludeDplus){
	  if(year==2010){
	    fSystDplus=new AliHFDhadronCorrSystUnc("fSystDplus");
	    fSystDplus->InitStandardUncertaintiesPP2010(2,(fptminD+fptmaxD)*0.5,fptminAsso);  
	    fSystDplus->BuildTotalUncHisto();
	    fSystDplus->BuildTotalNonFDUncHisto();
	    fSystDplus->BuildGraphsUnc(fhDplus);
	    fSystDplus->BuildGraphsRelUnc();
	  }
	  else {
	    Printf("No values for syst unc foreseen for this dataset");
	  }
	}
      }
      else if(system==1){ //p-Pb
	if(fincludeDzero){
	  if(year==2013){
	    fSystDzero=new AliHFDhadronCorrSystUnc("fSystDzero");
	    fSystDzero->InitStandardUncertaintiesPPb2013(0,(fptminD+fptmaxD)*0.5,fptminAsso);  
	    fSystDzero->BuildTotalUncHisto();
	    fSystDzero->BuildTotalNonFDUncHisto();
	    fSystDzero->BuildGraphsUnc(fhDzero);
	    fSystDzero->BuildGraphsRelUnc();
	  }
	  else {
	    Printf("No values for syst unc foreseen for this dataset");
	  }
	}
	if(fincludeDstar){
	  if(year==2013){
	    fSystDstar=new AliHFDhadronCorrSystUnc("fSystDstar");
	    fSystDstar->InitStandardUncertaintiesPPb2013(1,(fptminD+fptmaxD)*0.5,fptminAsso);  
	    fSystDstar->BuildTotalUncHisto();
	    fSystDstar->BuildTotalNonFDUncHisto();
	    fSystDstar->BuildGraphsUnc(fhDstar);
	    fSystDstar->BuildGraphsRelUnc();
	  }
	  else {
	    Printf("No values for syst unc foreseen for this dataset");
	  }
	}
	
	if(fincludeDplus){
	  if(year==2013){
	    fSystDplus=new AliHFDhadronCorrSystUnc("fSystDplus");
	    fSystDplus->InitStandardUncertaintiesPPb2013(2,(fptminD+fptmaxD)*0.5,fptminAsso);  
	    fSystDplus->BuildTotalUncHisto();
	    fSystDplus->BuildTotalNonFDUncHisto();
	    fSystDplus->BuildGraphsUnc(fhDplus);
	    fSystDplus->BuildGraphsRelUnc();
	  }
	  else {
	    Printf("No values for syst unc foreseen for this dataset");
	  }
	}
      }
      else {
	Printf("Cannot initiate syst uncertainties: wrong system selected");
	return kFALSE;
      }
    }
  }
  
  fSystDaverage=new AliHFDhadronCorrSystUnc("fSystDaverage");
  if(fincludeDzero)fSystDaverage->SetHistoTemplate(fSystDzero->GetHistoTemplate(),"fhDeltaPhiTemplateDaverage");
  else if(fincludeDstar)fSystDaverage->SetHistoTemplate(fSystDstar->GetHistoTemplate(),"fhDeltaPhiTemplateDaverage");
  else if(fincludeDplus)fSystDaverage->SetHistoTemplate(fSystDplus->GetHistoTemplate(),"fhDeltaPhiTemplateDaverage");
  
  fSystDaverage->InitEmptyHistosFromTemplate();
  
  return kTRUE;
}


void AliHFDmesonCorrAverage::InitAverageHisto(TH1D *h){
  fhDaverage=(TH1D*)h->Clone("fhDaverage");  
  fhDaverage->SetXTitle("#Delta#varphi = #varphi_{assoc} - #varphi_{D}");
  fhDaverage->SetYTitle("#frac{1}{N_{D}}#frac{dN^{h}}{d#Delta#varphi} (rad^{-1})");
  fhDaverage->SetTitle("");
  fhDaverage->SetMinimum(0);

  fhDaverage->Reset(0);
  fhDaverage->SetLineWidth(2);
  fhDaverage->SetLineColor(kBlack);
  fhDaverage->SetMarkerStyle(20);
  fhDaverage->SetMarkerSize(1.2);
  fhDaverage->SetMarkerColor(kBlack);

  // The following histos are created here to use the final binning
  fhUsedWeightsDzero=(TH1D*)h->Clone("fhUsedWeightsDzero");
  fhUsedWeightsDzero->SetTitle("Dzero final weights used");
  fhUsedWeightsDzero->SetXTitle("#Delta#varphi = #varphi_{assoc} - #varphi_{D}");
  fhUsedWeightsDzero->SetYTitle("weight");

  fhUsedWeightsDplus=(TH1D*)h->Clone("fhUsedWeightsDplus");
  fhUsedWeightsDplus->SetTitle("Dplus final weights used");
  fhUsedWeightsDplus->SetXTitle("#Delta#varphi = #varphi_{assoc} - #varphi_{D}");
  fhUsedWeightsDplus->SetYTitle("weight");

  fhUsedWeightsDstar=(TH1D*)h->Clone("fhUsedWeightsDstar");
  fhUsedWeightsDstar->SetTitle("Dstar final weights used");
  fhUsedWeightsDstar->SetXTitle("#Delta#varphi = #varphi_{assoc} - #varphi_{D}");
  fhUsedWeightsDstar->SetYTitle("weight");



}

void AliHFDmesonCorrAverage::CalculateAverage(){
  if(fmethod!=10&&fmethod!=20){
    Printf("This option for the calculation of the average has not been implemented yet");
    return;
  }
  // check that histos were set
  if(fincludeDzero&&(!fhDzero)){
    Printf("Dzero histo not set");
    return;
  }
  if(fincludeDstar&&(!fhDstar)){
    Printf("Dstar histo not set");
    return;
  }
  if(fincludeDplus&&(!fhDplus)){
    Printf("Dplus histo not set");
    return;
  }
  

  // check that they have the same binning
  if(fincludeDzero&&fincludeDstar){
    if(fhDzero->GetNbinsX()!=fhDstar->GetNbinsX()){
      Printf("Dzero and Dstar histos have different binning");    
      return ;
    }
    fnbinsphi=fhDzero->GetNbinsX();
    for(Int_t j=1;j<=fnbinsphi;j++){
      if(TMath::Abs(fhDzero->GetBinLowEdge(j)-fhDstar->GetBinLowEdge(j))>0.001){
	Printf("Dzero and Dstar histos have different binning");    
	return;
      }
    }
    InitAverageHisto(fhDzero);
  }
  if(fincludeDzero&&fincludeDplus){
    if(fhDzero->GetNbinsX()!=fhDplus->GetNbinsX()){
    Printf("Dzero and Dplus histos have different binning");    
    return ;
    }
    fnbinsphi=fhDzero->GetNbinsX();
    for(Int_t j=1;j<=fnbinsphi;j++){
      if(TMath::Abs(fhDzero->GetBinLowEdge(j)-fhDplus->GetBinLowEdge(j))>0.001){
	Printf("Dzero and Dplus histos have different binning");    
	return;
      }
    }
    if(!fhDaverage)InitAverageHisto(fhDzero);
  }
  if(fincludeDstar&&fincludeDplus){
    if(fhDstar->GetNbinsX()!=fhDplus->GetNbinsX()){
      Printf("Dstar and Dplus histos have different binning");    
      return ;
    }
    fnbinsphi=fhDstar->GetNbinsX();
    for(Int_t j=1;j<=fnbinsphi;j++){
      if(TMath::Abs(fhDstar->GetBinLowEdge(j)-fhDplus->GetBinLowEdge(j))>0.001){
	Printf("Dplus and Dstar histos have different binning");    
	return;
      }
    }
    if(!fhDaverage)InitAverageHisto(fhDstar);
  }
  
  if(!(fincludeDstar||fincludeDplus||fincludeDzero)){
    Printf("No mesons choosen for average");
    return ;
  }
  Int_t nmeson=0;
  if(fincludeDzero)nmeson++;
  if(fincludeDstar)nmeson++;
  if(fincludeDplus)nmeson++;
  
  printf("Settin syst \n");

  if(!InitSystematicUncertainty(fsys,fyear)){
    Printf("Cannot init syst uncertainties \n");
    return;
  }
  
  SetWeights();
  printf("Weights set \n");
  
  for(Int_t j=1;j<=fnbinsphi;j++){
    Double_t value=0.,errStatValue=0.,errSystYieldValue=0.,errSystBkgValue=0.,weight=0.;
    Double_t systMCclosureMin=0.,systMCcorrectionsMin=0.,systFDmin=0.,systMCDefficiencyMin=0.,systSecContaminationMin=0.;
    Double_t systMCclosureMax=0.,systMCcorrectionsMax=0.,systFDmax=0.,systMCDefficiencyMax=0.,systSecContaminationMax=0.;
    Double_t sumweights=0;
    Double_t errsyst;

    if(fincludeDzero){
      // stat error + yield unc + bkg subtr
      if(fArithmeticAverage){
	weight=1./nmeson;
      }
      else {
	weight=1./(1./fweightsDzeroStat[j-1]+1./fweightsDzeroSystYield[j-1]+1./fweightsDzeroSystBkg[j-1]);// need to do this way since we stored separately the stat and syst weight (=1/variance)
      }
      fhUsedWeightsDzero->SetBinContent(j,weight);

      value+=fhDzero->GetBinContent(j)*weight;
      errStatValue+=1./fweightsDzeroStat[j-1]*weight*weight;
      errSystYieldValue+=1./fweightsDzeroSystYield[j-1]*weight*weight;
      errSystBkgValue+=1./fweightsDzeroSystBkg[j-1]*weight*weight;
      sumweights+=weight;
      
      printf("Dzero the value is: %f, weight: %f \n",value, weight);
      // MCcorrections  : associated tracks, correlated
      errsyst=TMath::Abs(fhDzero->GetBinContent(j)*fSystDzero->GetHistoMCcorrectionsMin()->GetBinContent(j));
      systMCcorrectionsMin+=errsyst*weight;
      errsyst=fhDzero->GetBinContent(j)*fSystDzero->GetHistoMCcorrectionsMax()->GetBinContent(j);
      systMCcorrectionsMax+=errsyst*weight;

      printf(" Dzero trackeff the min syst value is: %f (rel %f), sum: %f \n",errsyst,fSystDzero->GetHistoMCcorrectionsMin()->GetBinContent(j), systMCcorrectionsMin);
      printf(" Dzero trackeff the max syst value is: %f (rel %f), sum: %f \n",errsyst,fSystDzero->GetHistoMCcorrectionsMax()->GetBinContent(j), systMCcorrectionsMax);

      // MCDefficiency  : uncorrelated
      errsyst=fhDzero->GetBinContent(j)*fSystDzero->GetHistoMCDefficiencyMin()->GetBinContent(j);
      systMCDefficiencyMin+=errsyst*errsyst*weight*weight;
      errsyst=fhDzero->GetBinContent(j)*fSystDzero->GetHistoMCDefficiencyMax()->GetBinContent(j);
      systMCDefficiencyMax+=errsyst*errsyst*weight*weight;

      // SecContamination  : correlated
      errsyst=TMath::Abs(fhDzero->GetBinContent(j)*fSystDzero->GetHistoSecContaminationMin()->GetBinContent(j));
      systSecContaminationMin+=errsyst*weight;
      errsyst=fhDzero->GetBinContent(j)*fSystDzero->GetHistoSecContaminationMax()->GetBinContent(j);
      systSecContaminationMax+=errsyst*weight;

      // MC closure: fully correlated
      errsyst=TMath::Abs(fhDzero->GetBinContent(j)*fSystDzero->GetHistoMCclosureTestMin()->GetBinContent(j));
      systMCclosureMin+=errsyst*weight;
      errsyst=fhDzero->GetBinContent(j)*fSystDzero->GetHistoMCclosureTestMax()->GetBinContent(j);
      systMCclosureMax+=errsyst*weight;

      printf(" Dzero Mcclosure the min syst value is: %f (rel %f), sum: %f \n",errsyst,fSystDzero->GetHistoMCclosureTestMin()->GetBinContent(j), systMCclosureMin);
      printf(" Dzero Mcclosure the max syst value is: %f (rel %f), sum: %f \n",errsyst,fSystDzero->GetHistoMCclosureTestMax()->GetBinContent(j), systMCclosureMax);

      // FD (assume full correlations)
      errsyst=TMath::Abs(fhDzero->GetBinContent(j)*fSystDzero->GetHistoFDmin()->GetBinContent(j));
      systFDmin+=errsyst*weight;
      errsyst=fhDzero->GetBinContent(j)*fSystDzero->GetHistoFDmax()->GetBinContent(j);
      systFDmax+=errsyst*weight;
      printf(" Dzero feeddown the min syst value is: %f (rel %f), sum: %f \n",errsyst,fSystDzero->GetHistoFDmin()->GetBinContent(j), systFDmin);
      printf(" Dzero feeddown the max syst value is: %f (rel %f), sum: %f \n",errsyst,fSystDzero->GetHistoFDmax()->GetBinContent(j), systFDmax);

      printf("Dzero the value is: %f, weight: %f \n",value, weight);
    } 
    if(fincludeDstar){
      if(fArithmeticAverage){
	weight=1./nmeson;
      }
      else{
	// stat error + yield unc + bkg subtr
	weight=1./(1./fweightsDstarStat[j-1]+1./fweightsDstarSystYield[j-1]+1./fweightsDstarSystBkg[j-1]);// need to do this way since we stored separately the stat and syst weight (=1/variance)
      }
      fhUsedWeightsDstar->SetBinContent(j,weight);
      value+=fhDstar->GetBinContent(j)*weight;
      errStatValue+=1./fweightsDstarStat[j-1]*weight*weight;
      errSystYieldValue+=1./fweightsDstarSystYield[j-1]*weight*weight;
      errSystBkgValue+=1./fweightsDstarSystBkg[j-1]*weight*weight;
      sumweights+=weight;

      printf("Dstar the value is: %f, weight: %f \n",value, weight);

      // MCcorrections: associated tracks, correlated
      errsyst=TMath::Abs(fhDstar->GetBinContent(j)*fSystDstar->GetHistoMCcorrectionsMin()->GetBinContent(j));
      systMCcorrectionsMin+=errsyst*weight;
      errsyst=TMath::Abs(fhDstar->GetBinContent(j)*fSystDstar->GetHistoMCcorrectionsMax()->GetBinContent(j));
      systMCcorrectionsMax+=errsyst*weight;

      printf(" Dstar trackeff the min syst value is: %f (rel %f), sum: %f \n",errsyst,fSystDstar->GetHistoMCcorrectionsMin()->GetBinContent(j), systMCcorrectionsMin);
      printf(" Dstar trackeff the max syst value is: %f (rel %f), sum: %f \n",errsyst,fSystDstar->GetHistoMCcorrectionsMax()->GetBinContent(j), systMCcorrectionsMax);

      // MCDefficiency  : uncorrelated
      errsyst=fhDstar->GetBinContent(j)*fSystDstar->GetHistoMCDefficiencyMin()->GetBinContent(j);
      systMCDefficiencyMin+=errsyst*errsyst*weight*weight;
      errsyst=fhDstar->GetBinContent(j)*fSystDstar->GetHistoMCDefficiencyMax()->GetBinContent(j);
      systMCDefficiencyMax+=errsyst*errsyst*weight*weight;

      // SecContamination  : correlated
      errsyst=TMath::Abs(fhDstar->GetBinContent(j)*fSystDstar->GetHistoSecContaminationMin()->GetBinContent(j));
      systSecContaminationMin+=errsyst*weight;
      errsyst=fhDstar->GetBinContent(j)*fSystDstar->GetHistoSecContaminationMax()->GetBinContent(j);
      systSecContaminationMax+=errsyst*weight;

      // MC closure
      errsyst=TMath::Abs(fhDstar->GetBinContent(j)*fSystDstar->GetHistoMCclosureTestMin()->GetBinContent(j));
      systMCclosureMin+=errsyst*weight;
      errsyst=fhDstar->GetBinContent(j)*fSystDstar->GetHistoMCclosureTestMax()->GetBinContent(j);
      systMCclosureMax+=errsyst*weight;

      printf(" Dstar Mcclosure the min syst value is: %f (rel %f), sum: %f \n",errsyst,fSystDstar->GetHistoMCclosureTestMin()->GetBinContent(j), systMCclosureMin);
      printf(" Dstar Mcclosure the max syst value is: %f (rel %f), sum: %f \n",errsyst,fSystDstar->GetHistoMCclosureTestMax()->GetBinContent(j), systMCclosureMax);


      // FD (assume full correlations)
      errsyst=TMath::Abs(fhDstar->GetBinContent(j)*fSystDstar->GetHistoFDmin()->GetBinContent(j));
      systFDmin+=errsyst*weight;
      errsyst=fhDstar->GetBinContent(j)*fSystDstar->GetHistoFDmax()->GetBinContent(j);
      systFDmax+=errsyst*weight;

      printf(" Dstar feeddown the min syst value is: %f (rel %f), sum: %f \n",errsyst,fSystDstar->GetHistoFDmin()->GetBinContent(j), systFDmin);
      printf(" Dstar feeddown the max syst value is: %f (rel %f), sum: %f \n",errsyst,fSystDstar->GetHistoFDmax()->GetBinContent(j), systFDmax);

      printf("Dstar the value is: %f, weight: %f \n",value, weight);
    }
    if(fincludeDplus){
      if(fArithmeticAverage){
	weight=1./nmeson;
      }
      else{
	// stat error + yield unc + bkg subtr
	weight=1./(1./fweightsDplusStat[j-1]+1./fweightsDplusSystYield[j-1]+1./fweightsDplusSystBkg[j-1]);// need to do this way since we stored separately the stat and syst weight (=1/variance)
      }
      fhUsedWeightsDplus->SetBinContent(j,weight);
      value+=fhDplus->GetBinContent(j)*weight;
      errStatValue+=1./fweightsDplusStat[j-1]*weight*weight;
      errSystYieldValue+=1./fweightsDplusSystYield[j-1]*weight*weight;      
      errSystBkgValue+=1./fweightsDplusSystBkg[j-1]*weight*weight;
      sumweights+=weight;

      printf("Dplus the value is: %f, weight: %f \n",value, weight);

      // MCcorrections  : associated tracsk, correlated
      errsyst=TMath::Abs(fhDplus->GetBinContent(j)*fSystDplus->GetHistoMCcorrectionsMin()->GetBinContent(j));
      systMCcorrectionsMin+=errsyst*weight;
      errsyst=fhDplus->GetBinContent(j)*fSystDplus->GetHistoMCcorrectionsMax()->GetBinContent(j);
      systMCcorrectionsMax+=errsyst*weight;

      printf(" Dplus trackeff the min syst value is: %f (rel %f), sum: %f \n",errsyst,fSystDplus->GetHistoMCcorrectionsMin()->GetBinContent(j), systMCcorrectionsMin);
      printf(" Dplus trackeff the max syst value is: %f (rel %f), sum: %f \n",errsyst,fSystDplus->GetHistoMCcorrectionsMax()->GetBinContent(j), systMCcorrectionsMax);

      // MCDefficiency  : uncorrelated
      errsyst=fhDplus->GetBinContent(j)*fSystDplus->GetHistoMCDefficiencyMin()->GetBinContent(j);
      systMCDefficiencyMin+=errsyst*errsyst*weight*weight;
      errsyst=fhDplus->GetBinContent(j)*fSystDplus->GetHistoMCDefficiencyMax()->GetBinContent(j);
      systMCDefficiencyMax+=errsyst*errsyst*weight*weight;

      printf(" Dplus cutvariat the min syst value is: %f (rel %f), sum: %f \n",errsyst,fSystDplus->GetHistoMCDefficiencyMin()->GetBinContent(j), systMCDefficiencyMin);
      printf(" Dplus cutvariat the max syst value is: %f (rel %f), sum: %f \n",errsyst,fSystDplus->GetHistoMCDefficiencyMax()->GetBinContent(j), systMCDefficiencyMax);

      // SecContamination  : correlated
      errsyst=TMath::Abs(fhDplus->GetBinContent(j)*fSystDplus->GetHistoSecContaminationMin()->GetBinContent(j));
      systSecContaminationMin+=errsyst*weight;
      errsyst=fhDplus->GetBinContent(j)*fSystDplus->GetHistoSecContaminationMax()->GetBinContent(j);
      systSecContaminationMax+=errsyst*weight;

      // MC closure
      errsyst=TMath::Abs(fhDplus->GetBinContent(j)*fSystDplus->GetHistoMCclosureTestMin()->GetBinContent(j));
      systMCclosureMin+=errsyst*weight;
      errsyst=fhDplus->GetBinContent(j)*fSystDplus->GetHistoMCclosureTestMax()->GetBinContent(j);
      systMCclosureMax+=errsyst*weight;

      printf(" Dplus Mcclosure the min syst value is: %f (rel %f), sum: %f \n",errsyst,fSystDplus->GetHistoMCclosureTestMin()->GetBinContent(j), systMCclosureMin);
      printf(" Dplus Mcclosure the max syst value is: %f (rel %f), sum: %f \n",errsyst,fSystDplus->GetHistoMCclosureTestMax()->GetBinContent(j), systMCclosureMax);

      // FD (assume full correlations)
      errsyst=TMath::Abs(fhDplus->GetBinContent(j)*fSystDplus->GetHistoFDmin()->GetBinContent(j));
      systFDmin+=errsyst*weight;
      errsyst=fhDplus->GetBinContent(j)*fSystDplus->GetHistoFDmax()->GetBinContent(j);
      systFDmax+=errsyst*weight;

      printf(" Dplus feeddown the min syst value is: %f (rel %f), sum: %f \n",errsyst,fSystDplus->GetHistoFDmin()->GetBinContent(j), systMCclosureMin);
      printf(" Dplus feeddown the max syst value is: %f (rel %f), sum: %f \n",errsyst,fSystDplus->GetHistoFDmax()->GetBinContent(j), systMCclosureMax);

      printf("Dplus the value is: %f, weight: %f \n",value, weight);

    }
    
    value/=sumweights;
    errStatValue/=sumweights*sumweights;// was: ((Double_t)nmeson*sumweights);
    errSystYieldValue/=sumweights*sumweights;// was: ((Double_t)nmeson*sumweights);
    errSystBkgValue/=sumweights*sumweights; // was: ((Double_t)nmeson*sumweights);
    fhDaverage->SetBinContent(j,value);
    fhDaverage->SetBinError(j,TMath::Sqrt(errStatValue));

    // Settting unc on yield and back sub
    fSystDaverage->GetHistoYieldUnc()->SetBinContent(j,TMath::Sqrt(errSystYieldValue)/TMath::Abs(value));
    fSystDaverage->GetHistoBackSubUncMin()->SetBinContent(j,-TMath::Sqrt(errSystBkgValue)/TMath::Abs(value));
    fSystDaverage->GetHistoBackSubUncMax()->SetBinContent(j,TMath::Sqrt(errSystBkgValue)/TMath::Abs(value));



    // MCcorrections, associated tracks  
    if(systMCcorrectionsMin>=0.){
      systMCcorrectionsMin=systMCcorrectionsMin/sumweights;
    }
    else {
      Printf("Negative sum in error calculation \n");
      return;
    }
    
    if(systMCcorrectionsMax>=0.){
      systMCcorrectionsMax=systMCcorrectionsMax/sumweights;
    }
    else {
      Printf("Negative sum in error calculation \n");
      return;
    }


    // MCDefficiency  
    if(systMCDefficiencyMin>=0.){
      systMCDefficiencyMin=TMath::Sqrt(systMCDefficiencyMin)/sumweights;
    }
    else {
      Printf("Negative sum in error calculation \n");
      return;
    }
    
    if(systMCDefficiencyMax>=0.){
      systMCDefficiencyMax=TMath::Sqrt(systMCDefficiencyMax)/sumweights;
    }
    else {
      Printf("Negative sum in error calculation \n");
      return;
    }

    // SecContamination  
    if(systSecContaminationMin>=0.){
      systSecContaminationMin=systSecContaminationMin/sumweights;
    }
    else {
      Printf("Negative sum in error calculation \n");
      return;
    }
    
    if(systSecContaminationMax>=0.){
      systSecContaminationMax=systSecContaminationMax/sumweights;
    }
    else {
      Printf("Negative sum in error calculation \n");
      return;
    }

    // MCclosureTest  
    if(systMCclosureMin>=0.){
      systMCclosureMin=systMCclosureMin/sumweights;
    }
    else {
      Printf("Negative sum in error calculation \n");
      return;
    }

    if(systMCclosureMax>=0.){
      systMCclosureMax=systMCclosureMax/sumweights;
    }
    else {
      Printf("Negative sum in error calculation \n");
      return;
    }



    // Feed down  
    if(systFDmin>=0.){
      systFDmin=systFDmin/sumweights;
    }
    else {
      Printf("Negative sum in error calculation \n");
      return;
    }
    
    if(systFDmax>=0.){
      systFDmax=systFDmax/sumweights;
    }
    else {
      Printf("Negative sum in error calculation \n");
      return;
    }

    value=TMath::Abs(value);// protection to avoid flipping of min syst histo sign

    fSystDaverage->GetHistoMCcorrectionsMin()->SetBinContent(j,-systMCcorrectionsMin/value);
    fSystDaverage->GetHistoMCcorrectionsMax()->SetBinContent(j,systMCcorrectionsMax/value);

    fSystDaverage->GetHistoMCDefficiencyMin()->SetBinContent(j,-systMCDefficiencyMin/value);
    fSystDaverage->GetHistoMCDefficiencyMax()->SetBinContent(j,systMCDefficiencyMax/value);

    fSystDaverage->GetHistoSecContaminationMin()->SetBinContent(j,-systSecContaminationMin/value);
    fSystDaverage->GetHistoSecContaminationMax()->SetBinContent(j,systSecContaminationMax/value);

    fSystDaverage->GetHistoMCclosureTestMin()->SetBinContent(j,-systMCclosureMin/value);
    fSystDaverage->GetHistoMCclosureTestMax()->SetBinContent(j,systMCclosureMax/value);
    
    fSystDaverage->GetHistoFDmin()->SetBinContent(j,-systFDmin/value);
    fSystDaverage->GetHistoFDmax()->SetBinContent(j,systFDmax/value);

  }
  fSystDaverage->BuildTotalUncHisto();
  fSystDaverage->BuildTotalNonFDUncHisto();
  fSystDaverage->BuildGraphsUnc(fhDaverage);
  fSystDaverage->BuildGraphsRelUnc();
  
  return ;
  
}


TH1D* AliHFDmesonCorrAverage::ReflectHisto(TH1D *h){
  
  TH1D *h2=new TH1D(Form("%sReflected",h->GetName()),Form("%sReflected",h->GetName()),h->GetNbinsX()/2.,0.,TMath::Pi());
  for(Int_t j=1;j<=h->GetNbinsX();j++){
    Double_t x=h->GetBinCenter(j);
    Double_t y0=h->GetBinContent(j);
    Double_t ey0=h->GetBinError(j);
    Int_t j2;
    if(x>0&&x<TMath::Pi())j2=h2->FindBin(x);
    else if(x<0)j2=h2->FindBin(-1.*x);
    else if(x>TMath::Pi())j2=h2->FindBin(2.*TMath::Pi()-x);
    else {
      printf("Point %d excluded \n",j);
      continue;
    }
    Double_t y=h2->GetBinContent(j2);
    Double_t ey=h2->GetBinError(j2);
    h2->SetBinContent(j2,y+y0);
    h2->SetBinError(j2,TMath::Sqrt(ey0*ey0+ey*ey));
  }
  
  return h2;
}

void AliHFDmesonCorrAverage::SetWeights(){

  
  if(fincludeDzero){    
    TH1D *hYieldUnc=fSystDzero->GetHistoYieldUnc();
    TH1D *hBkgUncMin=fSystDzero->GetHistoBackSubUncMin();
    TH1D *hBkgUncMax=fSystDzero->GetHistoBackSubUncMax();
    if(fweightsDzeroStat)delete fweightsDzeroStat;
    if(fweightsDzeroSystYield)delete fweightsDzeroSystYield;
    if(fweightsDzeroSystBkg)delete fweightsDzeroSystBkg;
    fweightsDzeroStat=new Double_t[fnbinsphi];    
    fweightsDzeroSystYield=new Double_t[fnbinsphi];    
    fweightsDzeroSystBkg=new Double_t[fnbinsphi];    
    //    fhGlobalWeightDzero=new TH1F("fhGlobalWeightDzero","fhGlobalWeightDzero",fnbinsphi
    for(Int_t j=0;j<fnbinsphi;j++){
      if(fmethod==10){
	fweightsDzeroStat[j]=1./(fhDzero->GetBinError(j+1)*fhDzero->GetBinError(j+1));
	fweightsDzeroSystYield[j]=1./(hYieldUnc->GetBinContent(j+1)*fhDzero->GetBinContent(j+1)*hYieldUnc->GetBinContent(j+1)*fhDzero->GetBinContent(j+1)); 
	//for asymmetric uncertainties...
	if(TMath::Abs(hBkgUncMin->GetBinContent(j+1)) > TMath::Abs(hBkgUncMax->GetBinContent(j+1))) fweightsDzeroSystBkg[j]=1./(hBkgUncMin->GetBinContent(j+1)*fhDzero->GetBinContent(j+1)*hBkgUncMin->GetBinContent(j+1)*fhDzero->GetBinContent(j+1));
	else fweightsDzeroSystBkg[j]=1./(hBkgUncMax->GetBinContent(j+1)*fhDzero->GetBinContent(j+1)*hBkgUncMax->GetBinContent(j+1)*fhDzero->GetBinContent(j+1));
      }
      else{
	Printf("This option for the calculation of the average has not been implemented yet");
	return;
      }
    }
  }

  if(fincludeDstar){    
    TH1D *hYieldUnc=fSystDstar->GetHistoYieldUnc();
    TH1D *hBkgUncMin=fSystDstar->GetHistoBackSubUncMin();
    TH1D *hBkgUncMax=fSystDstar->GetHistoBackSubUncMax();
    if(fweightsDstarStat)delete fweightsDstarStat;
    if(fweightsDstarSystYield)delete fweightsDstarSystYield;
    if(fweightsDstarSystBkg)delete fweightsDstarSystBkg;
    fweightsDstarStat=new Double_t[fnbinsphi];
    fweightsDstarSystYield=new Double_t[fnbinsphi];    
    fweightsDstarSystBkg=new Double_t[fnbinsphi];    
    for(Int_t j=0;j<fnbinsphi;j++){
      if(fmethod==10){
	fweightsDstarStat[j]=1./(fhDstar->GetBinError(j+1)*fhDstar->GetBinError(j+1));
	fweightsDstarSystYield[j]=1./(hYieldUnc->GetBinContent(j+1)*fhDstar->GetBinContent(j+1)*hYieldUnc->GetBinContent(j+1)*fhDstar->GetBinContent(j+1)); 
	//for asymmetric uncertainties...
	if(TMath::Abs(hBkgUncMin->GetBinContent(j+1)) > TMath::Abs(hBkgUncMax->GetBinContent(j+1))) fweightsDstarSystBkg[j]=1./(hBkgUncMin->GetBinContent(j+1)*fhDstar->GetBinContent(j+1)*hBkgUncMin->GetBinContent(j+1)*fhDstar->GetBinContent(j+1));
	else fweightsDstarSystBkg[j]=1./(hBkgUncMax->GetBinContent(j+1)*fhDstar->GetBinContent(j+1)*hBkgUncMax->GetBinContent(j+1)*fhDstar->GetBinContent(j+1));
      }
      else{
	Printf("This option for the calculation of the average has not been implemented yet");
	return;
      }
    }
  }
  
  if(fincludeDplus){    
    TH1D *hYieldUnc=fSystDplus->GetHistoYieldUnc();
    TH1D *hBkgUncMin=fSystDplus->GetHistoBackSubUncMin();
    TH1D *hBkgUncMax=fSystDplus->GetHistoBackSubUncMax();
    if(fweightsDplusStat)delete fweightsDplusStat;
    if(fweightsDplusSystYield)delete fweightsDplusSystYield;
    if(fweightsDplusSystBkg)delete fweightsDplusSystBkg;
    fweightsDplusStat=new Double_t[fnbinsphi];    
    fweightsDplusSystYield=new Double_t[fnbinsphi];    
    fweightsDplusSystBkg=new Double_t[fnbinsphi];    
    for(Int_t j=0;j<fnbinsphi;j++){
      if(fmethod==10){
	fweightsDplusStat[j]=1./(fhDplus->GetBinError(j+1)*fhDplus->GetBinError(j+1));
	fweightsDplusSystYield[j]=1./(hYieldUnc->GetBinContent(j+1)*fhDplus->GetBinContent(j+1)*hYieldUnc->GetBinContent(j+1)*fhDplus->GetBinContent(j+1)); 
	//for asymmetric uncertainties...
	if(TMath::Abs(hBkgUncMin->GetBinContent(j+1)) > TMath::Abs(hBkgUncMax->GetBinContent(j+1))) fweightsDplusSystBkg[j]=1./(hBkgUncMin->GetBinContent(j+1)*fhDplus->GetBinContent(j+1)*hBkgUncMin->GetBinContent(j+1)*fhDplus->GetBinContent(j+1));
	else fweightsDplusSystBkg[j]=1./(hBkgUncMax->GetBinContent(j+1)*fhDplus->GetBinContent(j+1)*hBkgUncMax->GetBinContent(j+1)*fhDplus->GetBinContent(j+1));
      }
      else{
	Printf("This option for the calculation of the average has not been implemented yet");
	return;
      }
    }
  }
  
  
  
  
}


 AliHFDmesonCorrAverage.cxx:1
 AliHFDmesonCorrAverage.cxx:2
 AliHFDmesonCorrAverage.cxx:3
 AliHFDmesonCorrAverage.cxx:4
 AliHFDmesonCorrAverage.cxx:5
 AliHFDmesonCorrAverage.cxx:6
 AliHFDmesonCorrAverage.cxx:7
 AliHFDmesonCorrAverage.cxx:8
 AliHFDmesonCorrAverage.cxx:9
 AliHFDmesonCorrAverage.cxx:10
 AliHFDmesonCorrAverage.cxx:11
 AliHFDmesonCorrAverage.cxx:12
 AliHFDmesonCorrAverage.cxx:13
 AliHFDmesonCorrAverage.cxx:14
 AliHFDmesonCorrAverage.cxx:15
 AliHFDmesonCorrAverage.cxx:16
 AliHFDmesonCorrAverage.cxx:17
 AliHFDmesonCorrAverage.cxx:18
 AliHFDmesonCorrAverage.cxx:19
 AliHFDmesonCorrAverage.cxx:20
 AliHFDmesonCorrAverage.cxx:21
 AliHFDmesonCorrAverage.cxx:22
 AliHFDmesonCorrAverage.cxx:23
 AliHFDmesonCorrAverage.cxx:24
 AliHFDmesonCorrAverage.cxx:25
 AliHFDmesonCorrAverage.cxx:26
 AliHFDmesonCorrAverage.cxx:27
 AliHFDmesonCorrAverage.cxx:28
 AliHFDmesonCorrAverage.cxx:29
 AliHFDmesonCorrAverage.cxx:30
 AliHFDmesonCorrAverage.cxx:31
 AliHFDmesonCorrAverage.cxx:32
 AliHFDmesonCorrAverage.cxx:33
 AliHFDmesonCorrAverage.cxx:34
 AliHFDmesonCorrAverage.cxx:35
 AliHFDmesonCorrAverage.cxx:36
 AliHFDmesonCorrAverage.cxx:37
 AliHFDmesonCorrAverage.cxx:38
 AliHFDmesonCorrAverage.cxx:39
 AliHFDmesonCorrAverage.cxx:40
 AliHFDmesonCorrAverage.cxx:41
 AliHFDmesonCorrAverage.cxx:42
 AliHFDmesonCorrAverage.cxx:43
 AliHFDmesonCorrAverage.cxx:44
 AliHFDmesonCorrAverage.cxx:45
 AliHFDmesonCorrAverage.cxx:46
 AliHFDmesonCorrAverage.cxx:47
 AliHFDmesonCorrAverage.cxx:48
 AliHFDmesonCorrAverage.cxx:49
 AliHFDmesonCorrAverage.cxx:50
 AliHFDmesonCorrAverage.cxx:51
 AliHFDmesonCorrAverage.cxx:52
 AliHFDmesonCorrAverage.cxx:53
 AliHFDmesonCorrAverage.cxx:54
 AliHFDmesonCorrAverage.cxx:55
 AliHFDmesonCorrAverage.cxx:56
 AliHFDmesonCorrAverage.cxx:57
 AliHFDmesonCorrAverage.cxx:58
 AliHFDmesonCorrAverage.cxx:59
 AliHFDmesonCorrAverage.cxx:60
 AliHFDmesonCorrAverage.cxx:61
 AliHFDmesonCorrAverage.cxx:62
 AliHFDmesonCorrAverage.cxx:63
 AliHFDmesonCorrAverage.cxx:64
 AliHFDmesonCorrAverage.cxx:65
 AliHFDmesonCorrAverage.cxx:66
 AliHFDmesonCorrAverage.cxx:67
 AliHFDmesonCorrAverage.cxx:68
 AliHFDmesonCorrAverage.cxx:69
 AliHFDmesonCorrAverage.cxx:70
 AliHFDmesonCorrAverage.cxx:71
 AliHFDmesonCorrAverage.cxx:72
 AliHFDmesonCorrAverage.cxx:73
 AliHFDmesonCorrAverage.cxx:74
 AliHFDmesonCorrAverage.cxx:75
 AliHFDmesonCorrAverage.cxx:76
 AliHFDmesonCorrAverage.cxx:77
 AliHFDmesonCorrAverage.cxx:78
 AliHFDmesonCorrAverage.cxx:79
 AliHFDmesonCorrAverage.cxx:80
 AliHFDmesonCorrAverage.cxx:81
 AliHFDmesonCorrAverage.cxx:82
 AliHFDmesonCorrAverage.cxx:83
 AliHFDmesonCorrAverage.cxx:84
 AliHFDmesonCorrAverage.cxx:85
 AliHFDmesonCorrAverage.cxx:86
 AliHFDmesonCorrAverage.cxx:87
 AliHFDmesonCorrAverage.cxx:88
 AliHFDmesonCorrAverage.cxx:89
 AliHFDmesonCorrAverage.cxx:90
 AliHFDmesonCorrAverage.cxx:91
 AliHFDmesonCorrAverage.cxx:92
 AliHFDmesonCorrAverage.cxx:93
 AliHFDmesonCorrAverage.cxx:94
 AliHFDmesonCorrAverage.cxx:95
 AliHFDmesonCorrAverage.cxx:96
 AliHFDmesonCorrAverage.cxx:97
 AliHFDmesonCorrAverage.cxx:98
 AliHFDmesonCorrAverage.cxx:99
 AliHFDmesonCorrAverage.cxx:100
 AliHFDmesonCorrAverage.cxx:101
 AliHFDmesonCorrAverage.cxx:102
 AliHFDmesonCorrAverage.cxx:103
 AliHFDmesonCorrAverage.cxx:104
 AliHFDmesonCorrAverage.cxx:105
 AliHFDmesonCorrAverage.cxx:106
 AliHFDmesonCorrAverage.cxx:107
 AliHFDmesonCorrAverage.cxx:108
 AliHFDmesonCorrAverage.cxx:109
 AliHFDmesonCorrAverage.cxx:110
 AliHFDmesonCorrAverage.cxx:111
 AliHFDmesonCorrAverage.cxx:112
 AliHFDmesonCorrAverage.cxx:113
 AliHFDmesonCorrAverage.cxx:114
 AliHFDmesonCorrAverage.cxx:115
 AliHFDmesonCorrAverage.cxx:116
 AliHFDmesonCorrAverage.cxx:117
 AliHFDmesonCorrAverage.cxx:118
 AliHFDmesonCorrAverage.cxx:119
 AliHFDmesonCorrAverage.cxx:120
 AliHFDmesonCorrAverage.cxx:121
 AliHFDmesonCorrAverage.cxx:122
 AliHFDmesonCorrAverage.cxx:123
 AliHFDmesonCorrAverage.cxx:124
 AliHFDmesonCorrAverage.cxx:125
 AliHFDmesonCorrAverage.cxx:126
 AliHFDmesonCorrAverage.cxx:127
 AliHFDmesonCorrAverage.cxx:128
 AliHFDmesonCorrAverage.cxx:129
 AliHFDmesonCorrAverage.cxx:130
 AliHFDmesonCorrAverage.cxx:131
 AliHFDmesonCorrAverage.cxx:132
 AliHFDmesonCorrAverage.cxx:133
 AliHFDmesonCorrAverage.cxx:134
 AliHFDmesonCorrAverage.cxx:135
 AliHFDmesonCorrAverage.cxx:136
 AliHFDmesonCorrAverage.cxx:137
 AliHFDmesonCorrAverage.cxx:138
 AliHFDmesonCorrAverage.cxx:139
 AliHFDmesonCorrAverage.cxx:140
 AliHFDmesonCorrAverage.cxx:141
 AliHFDmesonCorrAverage.cxx:142
 AliHFDmesonCorrAverage.cxx:143
 AliHFDmesonCorrAverage.cxx:144
 AliHFDmesonCorrAverage.cxx:145
 AliHFDmesonCorrAverage.cxx:146
 AliHFDmesonCorrAverage.cxx:147
 AliHFDmesonCorrAverage.cxx:148
 AliHFDmesonCorrAverage.cxx:149
 AliHFDmesonCorrAverage.cxx:150
 AliHFDmesonCorrAverage.cxx:151
 AliHFDmesonCorrAverage.cxx:152
 AliHFDmesonCorrAverage.cxx:153
 AliHFDmesonCorrAverage.cxx:154
 AliHFDmesonCorrAverage.cxx:155
 AliHFDmesonCorrAverage.cxx:156
 AliHFDmesonCorrAverage.cxx:157
 AliHFDmesonCorrAverage.cxx:158
 AliHFDmesonCorrAverage.cxx:159
 AliHFDmesonCorrAverage.cxx:160
 AliHFDmesonCorrAverage.cxx:161
 AliHFDmesonCorrAverage.cxx:162
 AliHFDmesonCorrAverage.cxx:163
 AliHFDmesonCorrAverage.cxx:164
 AliHFDmesonCorrAverage.cxx:165
 AliHFDmesonCorrAverage.cxx:166
 AliHFDmesonCorrAverage.cxx:167
 AliHFDmesonCorrAverage.cxx:168
 AliHFDmesonCorrAverage.cxx:169
 AliHFDmesonCorrAverage.cxx:170
 AliHFDmesonCorrAverage.cxx:171
 AliHFDmesonCorrAverage.cxx:172
 AliHFDmesonCorrAverage.cxx:173
 AliHFDmesonCorrAverage.cxx:174
 AliHFDmesonCorrAverage.cxx:175
 AliHFDmesonCorrAverage.cxx:176
 AliHFDmesonCorrAverage.cxx:177
 AliHFDmesonCorrAverage.cxx:178
 AliHFDmesonCorrAverage.cxx:179
 AliHFDmesonCorrAverage.cxx:180
 AliHFDmesonCorrAverage.cxx:181
 AliHFDmesonCorrAverage.cxx:182
 AliHFDmesonCorrAverage.cxx:183
 AliHFDmesonCorrAverage.cxx:184
 AliHFDmesonCorrAverage.cxx:185
 AliHFDmesonCorrAverage.cxx:186
 AliHFDmesonCorrAverage.cxx:187
 AliHFDmesonCorrAverage.cxx:188
 AliHFDmesonCorrAverage.cxx:189
 AliHFDmesonCorrAverage.cxx:190
 AliHFDmesonCorrAverage.cxx:191
 AliHFDmesonCorrAverage.cxx:192
 AliHFDmesonCorrAverage.cxx:193
 AliHFDmesonCorrAverage.cxx:194
 AliHFDmesonCorrAverage.cxx:195
 AliHFDmesonCorrAverage.cxx:196
 AliHFDmesonCorrAverage.cxx:197
 AliHFDmesonCorrAverage.cxx:198
 AliHFDmesonCorrAverage.cxx:199
 AliHFDmesonCorrAverage.cxx:200
 AliHFDmesonCorrAverage.cxx:201
 AliHFDmesonCorrAverage.cxx:202
 AliHFDmesonCorrAverage.cxx:203
 AliHFDmesonCorrAverage.cxx:204
 AliHFDmesonCorrAverage.cxx:205
 AliHFDmesonCorrAverage.cxx:206
 AliHFDmesonCorrAverage.cxx:207
 AliHFDmesonCorrAverage.cxx:208
 AliHFDmesonCorrAverage.cxx:209
 AliHFDmesonCorrAverage.cxx:210
 AliHFDmesonCorrAverage.cxx:211
 AliHFDmesonCorrAverage.cxx:212
 AliHFDmesonCorrAverage.cxx:213
 AliHFDmesonCorrAverage.cxx:214
 AliHFDmesonCorrAverage.cxx:215
 AliHFDmesonCorrAverage.cxx:216
 AliHFDmesonCorrAverage.cxx:217
 AliHFDmesonCorrAverage.cxx:218
 AliHFDmesonCorrAverage.cxx:219
 AliHFDmesonCorrAverage.cxx:220
 AliHFDmesonCorrAverage.cxx:221
 AliHFDmesonCorrAverage.cxx:222
 AliHFDmesonCorrAverage.cxx:223
 AliHFDmesonCorrAverage.cxx:224
 AliHFDmesonCorrAverage.cxx:225
 AliHFDmesonCorrAverage.cxx:226
 AliHFDmesonCorrAverage.cxx:227
 AliHFDmesonCorrAverage.cxx:228
 AliHFDmesonCorrAverage.cxx:229
 AliHFDmesonCorrAverage.cxx:230
 AliHFDmesonCorrAverage.cxx:231
 AliHFDmesonCorrAverage.cxx:232
 AliHFDmesonCorrAverage.cxx:233
 AliHFDmesonCorrAverage.cxx:234
 AliHFDmesonCorrAverage.cxx:235
 AliHFDmesonCorrAverage.cxx:236
 AliHFDmesonCorrAverage.cxx:237
 AliHFDmesonCorrAverage.cxx:238
 AliHFDmesonCorrAverage.cxx:239
 AliHFDmesonCorrAverage.cxx:240
 AliHFDmesonCorrAverage.cxx:241
 AliHFDmesonCorrAverage.cxx:242
 AliHFDmesonCorrAverage.cxx:243
 AliHFDmesonCorrAverage.cxx:244
 AliHFDmesonCorrAverage.cxx:245
 AliHFDmesonCorrAverage.cxx:246
 AliHFDmesonCorrAverage.cxx:247
 AliHFDmesonCorrAverage.cxx:248
 AliHFDmesonCorrAverage.cxx:249
 AliHFDmesonCorrAverage.cxx:250
 AliHFDmesonCorrAverage.cxx:251
 AliHFDmesonCorrAverage.cxx:252
 AliHFDmesonCorrAverage.cxx:253
 AliHFDmesonCorrAverage.cxx:254
 AliHFDmesonCorrAverage.cxx:255
 AliHFDmesonCorrAverage.cxx:256
 AliHFDmesonCorrAverage.cxx:257
 AliHFDmesonCorrAverage.cxx:258
 AliHFDmesonCorrAverage.cxx:259
 AliHFDmesonCorrAverage.cxx:260
 AliHFDmesonCorrAverage.cxx:261
 AliHFDmesonCorrAverage.cxx:262
 AliHFDmesonCorrAverage.cxx:263
 AliHFDmesonCorrAverage.cxx:264
 AliHFDmesonCorrAverage.cxx:265
 AliHFDmesonCorrAverage.cxx:266
 AliHFDmesonCorrAverage.cxx:267
 AliHFDmesonCorrAverage.cxx:268
 AliHFDmesonCorrAverage.cxx:269
 AliHFDmesonCorrAverage.cxx:270
 AliHFDmesonCorrAverage.cxx:271
 AliHFDmesonCorrAverage.cxx:272
 AliHFDmesonCorrAverage.cxx:273
 AliHFDmesonCorrAverage.cxx:274
 AliHFDmesonCorrAverage.cxx:275
 AliHFDmesonCorrAverage.cxx:276
 AliHFDmesonCorrAverage.cxx:277
 AliHFDmesonCorrAverage.cxx:278
 AliHFDmesonCorrAverage.cxx:279
 AliHFDmesonCorrAverage.cxx:280
 AliHFDmesonCorrAverage.cxx:281
 AliHFDmesonCorrAverage.cxx:282
 AliHFDmesonCorrAverage.cxx:283
 AliHFDmesonCorrAverage.cxx:284
 AliHFDmesonCorrAverage.cxx:285
 AliHFDmesonCorrAverage.cxx:286
 AliHFDmesonCorrAverage.cxx:287
 AliHFDmesonCorrAverage.cxx:288
 AliHFDmesonCorrAverage.cxx:289
 AliHFDmesonCorrAverage.cxx:290
 AliHFDmesonCorrAverage.cxx:291
 AliHFDmesonCorrAverage.cxx:292
 AliHFDmesonCorrAverage.cxx:293
 AliHFDmesonCorrAverage.cxx:294
 AliHFDmesonCorrAverage.cxx:295
 AliHFDmesonCorrAverage.cxx:296
 AliHFDmesonCorrAverage.cxx:297
 AliHFDmesonCorrAverage.cxx:298
 AliHFDmesonCorrAverage.cxx:299
 AliHFDmesonCorrAverage.cxx:300
 AliHFDmesonCorrAverage.cxx:301
 AliHFDmesonCorrAverage.cxx:302
 AliHFDmesonCorrAverage.cxx:303
 AliHFDmesonCorrAverage.cxx:304
 AliHFDmesonCorrAverage.cxx:305
 AliHFDmesonCorrAverage.cxx:306
 AliHFDmesonCorrAverage.cxx:307
 AliHFDmesonCorrAverage.cxx:308
 AliHFDmesonCorrAverage.cxx:309
 AliHFDmesonCorrAverage.cxx:310
 AliHFDmesonCorrAverage.cxx:311
 AliHFDmesonCorrAverage.cxx:312
 AliHFDmesonCorrAverage.cxx:313
 AliHFDmesonCorrAverage.cxx:314
 AliHFDmesonCorrAverage.cxx:315
 AliHFDmesonCorrAverage.cxx:316
 AliHFDmesonCorrAverage.cxx:317
 AliHFDmesonCorrAverage.cxx:318
 AliHFDmesonCorrAverage.cxx:319
 AliHFDmesonCorrAverage.cxx:320
 AliHFDmesonCorrAverage.cxx:321
 AliHFDmesonCorrAverage.cxx:322
 AliHFDmesonCorrAverage.cxx:323
 AliHFDmesonCorrAverage.cxx:324
 AliHFDmesonCorrAverage.cxx:325
 AliHFDmesonCorrAverage.cxx:326
 AliHFDmesonCorrAverage.cxx:327
 AliHFDmesonCorrAverage.cxx:328
 AliHFDmesonCorrAverage.cxx:329
 AliHFDmesonCorrAverage.cxx:330
 AliHFDmesonCorrAverage.cxx:331
 AliHFDmesonCorrAverage.cxx:332
 AliHFDmesonCorrAverage.cxx:333
 AliHFDmesonCorrAverage.cxx:334
 AliHFDmesonCorrAverage.cxx:335
 AliHFDmesonCorrAverage.cxx:336
 AliHFDmesonCorrAverage.cxx:337
 AliHFDmesonCorrAverage.cxx:338
 AliHFDmesonCorrAverage.cxx:339
 AliHFDmesonCorrAverage.cxx:340
 AliHFDmesonCorrAverage.cxx:341
 AliHFDmesonCorrAverage.cxx:342
 AliHFDmesonCorrAverage.cxx:343
 AliHFDmesonCorrAverage.cxx:344
 AliHFDmesonCorrAverage.cxx:345
 AliHFDmesonCorrAverage.cxx:346
 AliHFDmesonCorrAverage.cxx:347
 AliHFDmesonCorrAverage.cxx:348
 AliHFDmesonCorrAverage.cxx:349
 AliHFDmesonCorrAverage.cxx:350
 AliHFDmesonCorrAverage.cxx:351
 AliHFDmesonCorrAverage.cxx:352
 AliHFDmesonCorrAverage.cxx:353
 AliHFDmesonCorrAverage.cxx:354
 AliHFDmesonCorrAverage.cxx:355
 AliHFDmesonCorrAverage.cxx:356
 AliHFDmesonCorrAverage.cxx:357
 AliHFDmesonCorrAverage.cxx:358
 AliHFDmesonCorrAverage.cxx:359
 AliHFDmesonCorrAverage.cxx:360
 AliHFDmesonCorrAverage.cxx:361
 AliHFDmesonCorrAverage.cxx:362
 AliHFDmesonCorrAverage.cxx:363
 AliHFDmesonCorrAverage.cxx:364
 AliHFDmesonCorrAverage.cxx:365
 AliHFDmesonCorrAverage.cxx:366
 AliHFDmesonCorrAverage.cxx:367
 AliHFDmesonCorrAverage.cxx:368
 AliHFDmesonCorrAverage.cxx:369
 AliHFDmesonCorrAverage.cxx:370
 AliHFDmesonCorrAverage.cxx:371
 AliHFDmesonCorrAverage.cxx:372
 AliHFDmesonCorrAverage.cxx:373
 AliHFDmesonCorrAverage.cxx:374
 AliHFDmesonCorrAverage.cxx:375
 AliHFDmesonCorrAverage.cxx:376
 AliHFDmesonCorrAverage.cxx:377
 AliHFDmesonCorrAverage.cxx:378
 AliHFDmesonCorrAverage.cxx:379
 AliHFDmesonCorrAverage.cxx:380
 AliHFDmesonCorrAverage.cxx:381
 AliHFDmesonCorrAverage.cxx:382
 AliHFDmesonCorrAverage.cxx:383
 AliHFDmesonCorrAverage.cxx:384
 AliHFDmesonCorrAverage.cxx:385
 AliHFDmesonCorrAverage.cxx:386
 AliHFDmesonCorrAverage.cxx:387
 AliHFDmesonCorrAverage.cxx:388
 AliHFDmesonCorrAverage.cxx:389
 AliHFDmesonCorrAverage.cxx:390
 AliHFDmesonCorrAverage.cxx:391
 AliHFDmesonCorrAverage.cxx:392
 AliHFDmesonCorrAverage.cxx:393
 AliHFDmesonCorrAverage.cxx:394
 AliHFDmesonCorrAverage.cxx:395
 AliHFDmesonCorrAverage.cxx:396
 AliHFDmesonCorrAverage.cxx:397
 AliHFDmesonCorrAverage.cxx:398
 AliHFDmesonCorrAverage.cxx:399
 AliHFDmesonCorrAverage.cxx:400
 AliHFDmesonCorrAverage.cxx:401
 AliHFDmesonCorrAverage.cxx:402
 AliHFDmesonCorrAverage.cxx:403
 AliHFDmesonCorrAverage.cxx:404
 AliHFDmesonCorrAverage.cxx:405
 AliHFDmesonCorrAverage.cxx:406
 AliHFDmesonCorrAverage.cxx:407
 AliHFDmesonCorrAverage.cxx:408
 AliHFDmesonCorrAverage.cxx:409
 AliHFDmesonCorrAverage.cxx:410
 AliHFDmesonCorrAverage.cxx:411
 AliHFDmesonCorrAverage.cxx:412
 AliHFDmesonCorrAverage.cxx:413
 AliHFDmesonCorrAverage.cxx:414
 AliHFDmesonCorrAverage.cxx:415
 AliHFDmesonCorrAverage.cxx:416
 AliHFDmesonCorrAverage.cxx:417
 AliHFDmesonCorrAverage.cxx:418
 AliHFDmesonCorrAverage.cxx:419
 AliHFDmesonCorrAverage.cxx:420
 AliHFDmesonCorrAverage.cxx:421
 AliHFDmesonCorrAverage.cxx:422
 AliHFDmesonCorrAverage.cxx:423
 AliHFDmesonCorrAverage.cxx:424
 AliHFDmesonCorrAverage.cxx:425
 AliHFDmesonCorrAverage.cxx:426
 AliHFDmesonCorrAverage.cxx:427
 AliHFDmesonCorrAverage.cxx:428
 AliHFDmesonCorrAverage.cxx:429
 AliHFDmesonCorrAverage.cxx:430
 AliHFDmesonCorrAverage.cxx:431
 AliHFDmesonCorrAverage.cxx:432
 AliHFDmesonCorrAverage.cxx:433
 AliHFDmesonCorrAverage.cxx:434
 AliHFDmesonCorrAverage.cxx:435
 AliHFDmesonCorrAverage.cxx:436
 AliHFDmesonCorrAverage.cxx:437
 AliHFDmesonCorrAverage.cxx:438
 AliHFDmesonCorrAverage.cxx:439
 AliHFDmesonCorrAverage.cxx:440
 AliHFDmesonCorrAverage.cxx:441
 AliHFDmesonCorrAverage.cxx:442
 AliHFDmesonCorrAverage.cxx:443
 AliHFDmesonCorrAverage.cxx:444
 AliHFDmesonCorrAverage.cxx:445
 AliHFDmesonCorrAverage.cxx:446
 AliHFDmesonCorrAverage.cxx:447
 AliHFDmesonCorrAverage.cxx:448
 AliHFDmesonCorrAverage.cxx:449
 AliHFDmesonCorrAverage.cxx:450
 AliHFDmesonCorrAverage.cxx:451
 AliHFDmesonCorrAverage.cxx:452
 AliHFDmesonCorrAverage.cxx:453
 AliHFDmesonCorrAverage.cxx:454
 AliHFDmesonCorrAverage.cxx:455
 AliHFDmesonCorrAverage.cxx:456
 AliHFDmesonCorrAverage.cxx:457
 AliHFDmesonCorrAverage.cxx:458
 AliHFDmesonCorrAverage.cxx:459
 AliHFDmesonCorrAverage.cxx:460
 AliHFDmesonCorrAverage.cxx:461
 AliHFDmesonCorrAverage.cxx:462
 AliHFDmesonCorrAverage.cxx:463
 AliHFDmesonCorrAverage.cxx:464
 AliHFDmesonCorrAverage.cxx:465
 AliHFDmesonCorrAverage.cxx:466
 AliHFDmesonCorrAverage.cxx:467
 AliHFDmesonCorrAverage.cxx:468
 AliHFDmesonCorrAverage.cxx:469
 AliHFDmesonCorrAverage.cxx:470
 AliHFDmesonCorrAverage.cxx:471
 AliHFDmesonCorrAverage.cxx:472
 AliHFDmesonCorrAverage.cxx:473
 AliHFDmesonCorrAverage.cxx:474
 AliHFDmesonCorrAverage.cxx:475
 AliHFDmesonCorrAverage.cxx:476
 AliHFDmesonCorrAverage.cxx:477
 AliHFDmesonCorrAverage.cxx:478
 AliHFDmesonCorrAverage.cxx:479
 AliHFDmesonCorrAverage.cxx:480
 AliHFDmesonCorrAverage.cxx:481
 AliHFDmesonCorrAverage.cxx:482
 AliHFDmesonCorrAverage.cxx:483
 AliHFDmesonCorrAverage.cxx:484
 AliHFDmesonCorrAverage.cxx:485
 AliHFDmesonCorrAverage.cxx:486
 AliHFDmesonCorrAverage.cxx:487
 AliHFDmesonCorrAverage.cxx:488
 AliHFDmesonCorrAverage.cxx:489
 AliHFDmesonCorrAverage.cxx:490
 AliHFDmesonCorrAverage.cxx:491
 AliHFDmesonCorrAverage.cxx:492
 AliHFDmesonCorrAverage.cxx:493
 AliHFDmesonCorrAverage.cxx:494
 AliHFDmesonCorrAverage.cxx:495
 AliHFDmesonCorrAverage.cxx:496
 AliHFDmesonCorrAverage.cxx:497
 AliHFDmesonCorrAverage.cxx:498
 AliHFDmesonCorrAverage.cxx:499
 AliHFDmesonCorrAverage.cxx:500
 AliHFDmesonCorrAverage.cxx:501
 AliHFDmesonCorrAverage.cxx:502
 AliHFDmesonCorrAverage.cxx:503
 AliHFDmesonCorrAverage.cxx:504
 AliHFDmesonCorrAverage.cxx:505
 AliHFDmesonCorrAverage.cxx:506
 AliHFDmesonCorrAverage.cxx:507
 AliHFDmesonCorrAverage.cxx:508
 AliHFDmesonCorrAverage.cxx:509
 AliHFDmesonCorrAverage.cxx:510
 AliHFDmesonCorrAverage.cxx:511
 AliHFDmesonCorrAverage.cxx:512
 AliHFDmesonCorrAverage.cxx:513
 AliHFDmesonCorrAverage.cxx:514
 AliHFDmesonCorrAverage.cxx:515
 AliHFDmesonCorrAverage.cxx:516
 AliHFDmesonCorrAverage.cxx:517
 AliHFDmesonCorrAverage.cxx:518
 AliHFDmesonCorrAverage.cxx:519
 AliHFDmesonCorrAverage.cxx:520
 AliHFDmesonCorrAverage.cxx:521
 AliHFDmesonCorrAverage.cxx:522
 AliHFDmesonCorrAverage.cxx:523
 AliHFDmesonCorrAverage.cxx:524
 AliHFDmesonCorrAverage.cxx:525
 AliHFDmesonCorrAverage.cxx:526
 AliHFDmesonCorrAverage.cxx:527
 AliHFDmesonCorrAverage.cxx:528
 AliHFDmesonCorrAverage.cxx:529
 AliHFDmesonCorrAverage.cxx:530
 AliHFDmesonCorrAverage.cxx:531
 AliHFDmesonCorrAverage.cxx:532
 AliHFDmesonCorrAverage.cxx:533
 AliHFDmesonCorrAverage.cxx:534
 AliHFDmesonCorrAverage.cxx:535
 AliHFDmesonCorrAverage.cxx:536
 AliHFDmesonCorrAverage.cxx:537
 AliHFDmesonCorrAverage.cxx:538
 AliHFDmesonCorrAverage.cxx:539
 AliHFDmesonCorrAverage.cxx:540
 AliHFDmesonCorrAverage.cxx:541
 AliHFDmesonCorrAverage.cxx:542
 AliHFDmesonCorrAverage.cxx:543
 AliHFDmesonCorrAverage.cxx:544
 AliHFDmesonCorrAverage.cxx:545
 AliHFDmesonCorrAverage.cxx:546
 AliHFDmesonCorrAverage.cxx:547
 AliHFDmesonCorrAverage.cxx:548
 AliHFDmesonCorrAverage.cxx:549
 AliHFDmesonCorrAverage.cxx:550
 AliHFDmesonCorrAverage.cxx:551
 AliHFDmesonCorrAverage.cxx:552
 AliHFDmesonCorrAverage.cxx:553
 AliHFDmesonCorrAverage.cxx:554
 AliHFDmesonCorrAverage.cxx:555
 AliHFDmesonCorrAverage.cxx:556
 AliHFDmesonCorrAverage.cxx:557
 AliHFDmesonCorrAverage.cxx:558
 AliHFDmesonCorrAverage.cxx:559
 AliHFDmesonCorrAverage.cxx:560
 AliHFDmesonCorrAverage.cxx:561
 AliHFDmesonCorrAverage.cxx:562
 AliHFDmesonCorrAverage.cxx:563
 AliHFDmesonCorrAverage.cxx:564
 AliHFDmesonCorrAverage.cxx:565
 AliHFDmesonCorrAverage.cxx:566
 AliHFDmesonCorrAverage.cxx:567
 AliHFDmesonCorrAverage.cxx:568
 AliHFDmesonCorrAverage.cxx:569
 AliHFDmesonCorrAverage.cxx:570
 AliHFDmesonCorrAverage.cxx:571
 AliHFDmesonCorrAverage.cxx:572
 AliHFDmesonCorrAverage.cxx:573
 AliHFDmesonCorrAverage.cxx:574
 AliHFDmesonCorrAverage.cxx:575
 AliHFDmesonCorrAverage.cxx:576
 AliHFDmesonCorrAverage.cxx:577
 AliHFDmesonCorrAverage.cxx:578
 AliHFDmesonCorrAverage.cxx:579
 AliHFDmesonCorrAverage.cxx:580
 AliHFDmesonCorrAverage.cxx:581
 AliHFDmesonCorrAverage.cxx:582
 AliHFDmesonCorrAverage.cxx:583
 AliHFDmesonCorrAverage.cxx:584
 AliHFDmesonCorrAverage.cxx:585
 AliHFDmesonCorrAverage.cxx:586
 AliHFDmesonCorrAverage.cxx:587
 AliHFDmesonCorrAverage.cxx:588
 AliHFDmesonCorrAverage.cxx:589
 AliHFDmesonCorrAverage.cxx:590
 AliHFDmesonCorrAverage.cxx:591
 AliHFDmesonCorrAverage.cxx:592
 AliHFDmesonCorrAverage.cxx:593
 AliHFDmesonCorrAverage.cxx:594
 AliHFDmesonCorrAverage.cxx:595
 AliHFDmesonCorrAverage.cxx:596
 AliHFDmesonCorrAverage.cxx:597
 AliHFDmesonCorrAverage.cxx:598
 AliHFDmesonCorrAverage.cxx:599
 AliHFDmesonCorrAverage.cxx:600
 AliHFDmesonCorrAverage.cxx:601
 AliHFDmesonCorrAverage.cxx:602
 AliHFDmesonCorrAverage.cxx:603
 AliHFDmesonCorrAverage.cxx:604
 AliHFDmesonCorrAverage.cxx:605
 AliHFDmesonCorrAverage.cxx:606
 AliHFDmesonCorrAverage.cxx:607
 AliHFDmesonCorrAverage.cxx:608
 AliHFDmesonCorrAverage.cxx:609
 AliHFDmesonCorrAverage.cxx:610
 AliHFDmesonCorrAverage.cxx:611
 AliHFDmesonCorrAverage.cxx:612
 AliHFDmesonCorrAverage.cxx:613
 AliHFDmesonCorrAverage.cxx:614
 AliHFDmesonCorrAverage.cxx:615
 AliHFDmesonCorrAverage.cxx:616
 AliHFDmesonCorrAverage.cxx:617
 AliHFDmesonCorrAverage.cxx:618
 AliHFDmesonCorrAverage.cxx:619
 AliHFDmesonCorrAverage.cxx:620
 AliHFDmesonCorrAverage.cxx:621
 AliHFDmesonCorrAverage.cxx:622
 AliHFDmesonCorrAverage.cxx:623
 AliHFDmesonCorrAverage.cxx:624
 AliHFDmesonCorrAverage.cxx:625
 AliHFDmesonCorrAverage.cxx:626
 AliHFDmesonCorrAverage.cxx:627
 AliHFDmesonCorrAverage.cxx:628
 AliHFDmesonCorrAverage.cxx:629
 AliHFDmesonCorrAverage.cxx:630
 AliHFDmesonCorrAverage.cxx:631
 AliHFDmesonCorrAverage.cxx:632
 AliHFDmesonCorrAverage.cxx:633
 AliHFDmesonCorrAverage.cxx:634
 AliHFDmesonCorrAverage.cxx:635
 AliHFDmesonCorrAverage.cxx:636
 AliHFDmesonCorrAverage.cxx:637
 AliHFDmesonCorrAverage.cxx:638
 AliHFDmesonCorrAverage.cxx:639
 AliHFDmesonCorrAverage.cxx:640
 AliHFDmesonCorrAverage.cxx:641
 AliHFDmesonCorrAverage.cxx:642
 AliHFDmesonCorrAverage.cxx:643
 AliHFDmesonCorrAverage.cxx:644
 AliHFDmesonCorrAverage.cxx:645
 AliHFDmesonCorrAverage.cxx:646
 AliHFDmesonCorrAverage.cxx:647
 AliHFDmesonCorrAverage.cxx:648
 AliHFDmesonCorrAverage.cxx:649
 AliHFDmesonCorrAverage.cxx:650
 AliHFDmesonCorrAverage.cxx:651
 AliHFDmesonCorrAverage.cxx:652
 AliHFDmesonCorrAverage.cxx:653
 AliHFDmesonCorrAverage.cxx:654
 AliHFDmesonCorrAverage.cxx:655
 AliHFDmesonCorrAverage.cxx:656
 AliHFDmesonCorrAverage.cxx:657
 AliHFDmesonCorrAverage.cxx:658
 AliHFDmesonCorrAverage.cxx:659
 AliHFDmesonCorrAverage.cxx:660
 AliHFDmesonCorrAverage.cxx:661
 AliHFDmesonCorrAverage.cxx:662
 AliHFDmesonCorrAverage.cxx:663
 AliHFDmesonCorrAverage.cxx:664
 AliHFDmesonCorrAverage.cxx:665
 AliHFDmesonCorrAverage.cxx:666
 AliHFDmesonCorrAverage.cxx:667
 AliHFDmesonCorrAverage.cxx:668
 AliHFDmesonCorrAverage.cxx:669
 AliHFDmesonCorrAverage.cxx:670
 AliHFDmesonCorrAverage.cxx:671
 AliHFDmesonCorrAverage.cxx:672
 AliHFDmesonCorrAverage.cxx:673
 AliHFDmesonCorrAverage.cxx:674
 AliHFDmesonCorrAverage.cxx:675
 AliHFDmesonCorrAverage.cxx:676
 AliHFDmesonCorrAverage.cxx:677
 AliHFDmesonCorrAverage.cxx:678
 AliHFDmesonCorrAverage.cxx:679
 AliHFDmesonCorrAverage.cxx:680
 AliHFDmesonCorrAverage.cxx:681
 AliHFDmesonCorrAverage.cxx:682
 AliHFDmesonCorrAverage.cxx:683
 AliHFDmesonCorrAverage.cxx:684
 AliHFDmesonCorrAverage.cxx:685
 AliHFDmesonCorrAverage.cxx:686
 AliHFDmesonCorrAverage.cxx:687
 AliHFDmesonCorrAverage.cxx:688
 AliHFDmesonCorrAverage.cxx:689
 AliHFDmesonCorrAverage.cxx:690
 AliHFDmesonCorrAverage.cxx:691
 AliHFDmesonCorrAverage.cxx:692
 AliHFDmesonCorrAverage.cxx:693
 AliHFDmesonCorrAverage.cxx:694
 AliHFDmesonCorrAverage.cxx:695
 AliHFDmesonCorrAverage.cxx:696
 AliHFDmesonCorrAverage.cxx:697
 AliHFDmesonCorrAverage.cxx:698
 AliHFDmesonCorrAverage.cxx:699
 AliHFDmesonCorrAverage.cxx:700
 AliHFDmesonCorrAverage.cxx:701
 AliHFDmesonCorrAverage.cxx:702
 AliHFDmesonCorrAverage.cxx:703
 AliHFDmesonCorrAverage.cxx:704
 AliHFDmesonCorrAverage.cxx:705
 AliHFDmesonCorrAverage.cxx:706
 AliHFDmesonCorrAverage.cxx:707
 AliHFDmesonCorrAverage.cxx:708
 AliHFDmesonCorrAverage.cxx:709
 AliHFDmesonCorrAverage.cxx:710
 AliHFDmesonCorrAverage.cxx:711
 AliHFDmesonCorrAverage.cxx:712
 AliHFDmesonCorrAverage.cxx:713
 AliHFDmesonCorrAverage.cxx:714
 AliHFDmesonCorrAverage.cxx:715
 AliHFDmesonCorrAverage.cxx:716
 AliHFDmesonCorrAverage.cxx:717
 AliHFDmesonCorrAverage.cxx:718
 AliHFDmesonCorrAverage.cxx:719
 AliHFDmesonCorrAverage.cxx:720
 AliHFDmesonCorrAverage.cxx:721
 AliHFDmesonCorrAverage.cxx:722
 AliHFDmesonCorrAverage.cxx:723
 AliHFDmesonCorrAverage.cxx:724
 AliHFDmesonCorrAverage.cxx:725
 AliHFDmesonCorrAverage.cxx:726
 AliHFDmesonCorrAverage.cxx:727
 AliHFDmesonCorrAverage.cxx:728
 AliHFDmesonCorrAverage.cxx:729
 AliHFDmesonCorrAverage.cxx:730
 AliHFDmesonCorrAverage.cxx:731
 AliHFDmesonCorrAverage.cxx:732
 AliHFDmesonCorrAverage.cxx:733
 AliHFDmesonCorrAverage.cxx:734
 AliHFDmesonCorrAverage.cxx:735
 AliHFDmesonCorrAverage.cxx:736
 AliHFDmesonCorrAverage.cxx:737
 AliHFDmesonCorrAverage.cxx:738
 AliHFDmesonCorrAverage.cxx:739
 AliHFDmesonCorrAverage.cxx:740
 AliHFDmesonCorrAverage.cxx:741
 AliHFDmesonCorrAverage.cxx:742
 AliHFDmesonCorrAverage.cxx:743
 AliHFDmesonCorrAverage.cxx:744
 AliHFDmesonCorrAverage.cxx:745
 AliHFDmesonCorrAverage.cxx:746
 AliHFDmesonCorrAverage.cxx:747
 AliHFDmesonCorrAverage.cxx:748
 AliHFDmesonCorrAverage.cxx:749
 AliHFDmesonCorrAverage.cxx:750
 AliHFDmesonCorrAverage.cxx:751
 AliHFDmesonCorrAverage.cxx:752
 AliHFDmesonCorrAverage.cxx:753
 AliHFDmesonCorrAverage.cxx:754
 AliHFDmesonCorrAverage.cxx:755
 AliHFDmesonCorrAverage.cxx:756
 AliHFDmesonCorrAverage.cxx:757
 AliHFDmesonCorrAverage.cxx:758
 AliHFDmesonCorrAverage.cxx:759
 AliHFDmesonCorrAverage.cxx:760
 AliHFDmesonCorrAverage.cxx:761
 AliHFDmesonCorrAverage.cxx:762
 AliHFDmesonCorrAverage.cxx:763
 AliHFDmesonCorrAverage.cxx:764
 AliHFDmesonCorrAverage.cxx:765
 AliHFDmesonCorrAverage.cxx:766
 AliHFDmesonCorrAverage.cxx:767
 AliHFDmesonCorrAverage.cxx:768
 AliHFDmesonCorrAverage.cxx:769
 AliHFDmesonCorrAverage.cxx:770
 AliHFDmesonCorrAverage.cxx:771
 AliHFDmesonCorrAverage.cxx:772
 AliHFDmesonCorrAverage.cxx:773
 AliHFDmesonCorrAverage.cxx:774
 AliHFDmesonCorrAverage.cxx:775
 AliHFDmesonCorrAverage.cxx:776
 AliHFDmesonCorrAverage.cxx:777
 AliHFDmesonCorrAverage.cxx:778
 AliHFDmesonCorrAverage.cxx:779
 AliHFDmesonCorrAverage.cxx:780
 AliHFDmesonCorrAverage.cxx:781
 AliHFDmesonCorrAverage.cxx:782
 AliHFDmesonCorrAverage.cxx:783
 AliHFDmesonCorrAverage.cxx:784
 AliHFDmesonCorrAverage.cxx:785
 AliHFDmesonCorrAverage.cxx:786
 AliHFDmesonCorrAverage.cxx:787
 AliHFDmesonCorrAverage.cxx:788
 AliHFDmesonCorrAverage.cxx:789
 AliHFDmesonCorrAverage.cxx:790
 AliHFDmesonCorrAverage.cxx:791
 AliHFDmesonCorrAverage.cxx:792
 AliHFDmesonCorrAverage.cxx:793
 AliHFDmesonCorrAverage.cxx:794
 AliHFDmesonCorrAverage.cxx:795
 AliHFDmesonCorrAverage.cxx:796
 AliHFDmesonCorrAverage.cxx:797
 AliHFDmesonCorrAverage.cxx:798
 AliHFDmesonCorrAverage.cxx:799
 AliHFDmesonCorrAverage.cxx:800