#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 "AliHFEInclusiveSpectrum.h"
#include "AliHFEInclusiveSpectrumQA.h"
#include "AliHFEcuts.h"
#include "AliHFEcontainer.h"
#include "AliHFEtools.h"
ClassImp(AliHFEInclusiveSpectrum)
AliHFEInclusiveSpectrum::AliHFEInclusiveSpectrum(const char *name):
AliHFECorrectSpectrumBase(name),
fQA(NULL),
fNoCentralitySelectionMC(kFALSE)
{
fQA = new AliHFEInclusiveSpectrumQA("AliHFEInclusiveSpectrumQA");
}
AliHFEInclusiveSpectrum::AliHFEInclusiveSpectrum(const AliHFEInclusiveSpectrum &ref):
AliHFECorrectSpectrumBase(ref),
fQA(ref.fQA),
fNoCentralitySelectionMC(ref.fNoCentralitySelectionMC)
{
ref.Copy(*this);
}
AliHFEInclusiveSpectrum &AliHFEInclusiveSpectrum::operator=(const AliHFEInclusiveSpectrum &ref){
if(this == &ref)
ref.Copy(*this);
return *this;
}
void AliHFEInclusiveSpectrum::Copy(TObject &o) const {
AliHFEInclusiveSpectrum &target = dynamic_cast<AliHFEInclusiveSpectrum &>(o);
target.fQA = fQA;
target.fNoCentralitySelectionMC = fNoCentralitySelectionMC;
}
AliHFEInclusiveSpectrum::~AliHFEInclusiveSpectrum(){
if(fQA) delete fQA;
}
Bool_t AliHFEInclusiveSpectrum::Init(const AliHFEcontainer *datahfecontainer, const AliHFEcontainer *mchfecontainer, const AliHFEcontainer *, const AliHFEcontainer *v0hfecontainer,AliCFContainer *photoniccontainerD){
Bool_t centralitySelectionData = kTRUE, centralitySelectionMC = !fNoCentralitySelectionMC;
AliCFContainer *datacontainer = datahfecontainer->GetCFContainer("recTrackContReco");
AliCFContainer *contaminationcontainer = datahfecontainer->GetCFContainer("hadronicBackground");
if((!datacontainer) || (!contaminationcontainer)) return kFALSE;
AliCFContainer *datacontainerD = GetSlicedContainer(datacontainer, fNbDimensions, fDims, -1, fChargeChoosen,fTestCentralityLow,fTestCentralityHigh, centralitySelectionData);
AliCFContainer *contaminationcontainerD = GetSlicedContainer(contaminationcontainer, fNbDimensions, fDims, -1, fChargeChoosen,fTestCentralityLow,fTestCentralityHigh, centralitySelectionData);
if((!datacontainerD) || (!contaminationcontainerD)) return kFALSE;
SetContainer(datacontainerD,AliHFECorrectSpectrumBase::kDataContainer);
SetContainer(contaminationcontainerD,AliHFECorrectSpectrumBase::kBackgroundData);
SetContainer(photoniccontainerD,AliHFECorrectSpectrumBase::kPhotonicBackground);
Int_t dimqa = datacontainer->GetNVar();
Int_t dimsqa[dimqa];
for(Int_t i = 0; i < dimqa; i++) dimsqa[i] = i;
AliCFContainer *datacontainerDQA = GetSlicedContainer(datacontainer, dimqa, dimsqa, -1, fChargeChoosen,fTestCentralityLow,fTestCentralityHigh, centralitySelectionData);
fQA->AddResultAt(datacontainerDQA,AliHFEInclusiveSpectrumQA::kDataProjection);
AliCFContainer *mccontaineresd = 0x0;
AliCFContainer *mccontainermc = 0x0;
mccontaineresd = mchfecontainer->MakeMergedCFContainer("sumesd","sumesd","MCTrackCont:recTrackContReco");
mccontainermc = mchfecontainer->MakeMergedCFContainer("summc","summc","MCTrackCont:recTrackContMC");
if((!mccontaineresd) || (!mccontainermc)) return kFALSE;
Int_t source = -1;
AliCFContainer *mccontaineresdD = GetSlicedContainer(mccontaineresd, fNbDimensions, fDims, source, fChargeChoosen,fTestCentralityLow,fTestCentralityHigh, centralitySelectionMC);
AliCFContainer *mccontainermcD = GetSlicedContainer(mccontainermc, fNbDimensions, fDims, source, fChargeChoosen,fTestCentralityLow,fTestCentralityHigh, centralitySelectionMC);
if((!mccontaineresdD) || (!mccontainermcD)) return kFALSE;
SetContainer(mccontainermcD,AliHFECorrectSpectrumBase::kMCContainerMC);
SetContainer(mccontaineresdD,AliHFECorrectSpectrumBase::kMCContainerESD);
THnSparseF *mccorrelation = mchfecontainer->GetCorrelationMatrix("correlationstepbeforePID");
if(!mccorrelation) mccorrelation = mchfecontainer->GetCorrelationMatrix("correlationstepafterPID");
if(!mccorrelation) return kFALSE;
THnSparseF *mccorrelationD = GetSlicedCorrelation(mccorrelation, fNbDimensions, fDims,fChargeChoosen,fTestCentralityLow,fTestCentralityHigh, centralitySelectionMC);
if(!mccorrelationD) {
printf("No correlation\n");
return kFALSE;
}
SetCorrelation(mccorrelationD);
fQA->AddResultAt(mccorrelation,AliHFEInclusiveSpectrumQA::kCMProjection);
if(v0hfecontainer) {
AliCFContainer *containerV0 = v0hfecontainer->GetCFContainer("taggedTrackContainerReco");
if(!containerV0) return kFALSE;
AliCFContainer *containerV0Electron = GetSlicedContainer(containerV0, fNbDimensions, fDims, AliPID::kElectron,fChargeChoosen,fTestCentralityLow,fTestCentralityHigh);
if(!containerV0Electron) return kFALSE;
SetContainer(containerV0Electron,AliHFECorrectSpectrumBase::kDataContainerV0);
}
fQA->DrawProjections();
return kTRUE;
}
Bool_t AliHFEInclusiveSpectrum::Correct(Bool_t subtractcontamination, Bool_t subtractphotonic){
gStyle->SetPalette(1);
gStyle->SetOptStat(1111);
gStyle->SetPadBorderMode(0);
gStyle->SetCanvasColor(10);
gStyle->SetPadLeftMargin(0.13);
gStyle->SetPadRightMargin(0.13);
printf("Steps are: stepdata %d, stepMC %d, steptrue %d, stepV0after %d, stepV0before %d\n",fStepData,fStepMC,fStepTrue,fStepAfterCutsV0,fStepBeforeCutsV0);
if((!GetContainer(kDataContainer)) || (!GetContainer(kMCContainerMC)) || (!GetContainer(kMCContainerESD))){
AliInfo("You have to init before");
return kFALSE;
}
if((fStepTrue < 0) && (fStepMC < 0) && (fStepData < 0)) {
AliInfo("You have to set the steps before: SetMCTruthStep, SetMCEffStep, SetStepToCorrect");
return kFALSE;
}
SetStepGuessedUnfolding(AliHFEcuts::kStepRecKineITSTPC + AliHFEcuts::kNcutStepsMCTrack);
AliCFDataGrid *dataGridAfterFirstSteps = 0x0;
AliCFDataGrid *dataspectrumaftersubstraction = 0x0;
if(subtractcontamination) {
dataspectrumaftersubstraction = SubtractBackground();
dataGridAfterFirstSteps = dataspectrumaftersubstraction;
}
AliCFDataGrid *dataspectrumafterphotonicsubstraction = 0x0;
if(subtractphotonic) {
dataspectrumafterphotonicsubstraction = SubtractPhotonicBackground();
dataGridAfterFirstSteps = dataspectrumafterphotonicsubstraction;
}
AliCFDataGrid *dataspectrumafterV0efficiencycorrection = 0x0;
AliCFContainer *dataContainerV0 = GetContainer(kDataContainerV0);
if(dataContainerV0){
dataspectrumafterV0efficiencycorrection = CorrectV0Efficiency(dataspectrumaftersubstraction);
dataGridAfterFirstSteps = dataspectrumafterV0efficiencycorrection;
}
AliCFDataGrid *dataspectrumafterefficiencyparametrizedcorrection = 0x0;
if(fEfficiencyFunction){
dataspectrumafterefficiencyparametrizedcorrection = CorrectParametrizedEfficiency(dataGridAfterFirstSteps);
dataGridAfterFirstSteps = dataspectrumafterefficiencyparametrizedcorrection;
}
TGraphErrors* correctedspectrumD = 0x0;
TGraphErrors* alltogetherspectrumD = 0x0;
if(fStepMC>fStepTrue) {
THnSparse *correctedspectrum = Unfold(dataGridAfterFirstSteps);
if(!correctedspectrum){
AliError("No corrected spectrum\n");
return kFALSE;
}
AliCFDataGrid *alltogetherCorrection = CorrectForEfficiency(dataGridAfterFirstSteps);
correctedspectrumD = Normalize(correctedspectrum);
alltogetherspectrumD = Normalize(alltogetherCorrection);
}
else {
if(dataGridAfterFirstSteps) {
correctedspectrumD = Normalize(dataGridAfterFirstSteps);
alltogetherspectrumD = Normalize(dataGridAfterFirstSteps);
}
}
fQA->AddResultAt(correctedspectrumD,AliHFEInclusiveSpectrumQA::kFinalResultUnfolded);
fQA->AddResultAt(alltogetherspectrumD,AliHFEInclusiveSpectrumQA::kFinalResultDirectEfficiency);
fQA->DrawResult();
return kTRUE;
}
AliCFDataGrid* AliHFEInclusiveSpectrum::SubtractBackground(){
AliCFContainer *dataContainer = GetContainer(kDataContainer);
if(!dataContainer){
AliError("Data Container not available");
return NULL;
}
printf("Step data: %d\n",fStepData);
AliCFDataGrid *spectrumSubtracted = new AliCFDataGrid("spectrumSubtracted", "Data Grid for spectrum after Background subtraction", *dataContainer,fStepData);
AliCFDataGrid *dataspectrumbeforesubstraction = (AliCFDataGrid *) ((AliCFDataGrid *)GetSpectrum(GetContainer(kDataContainer),fStepData))->Clone();
dataspectrumbeforesubstraction->SetName("dataspectrumbeforesubstraction");
AliCFContainer *backgroundContainer = GetContainer(kBackgroundData);
if(!backgroundContainer){
AliError("MC background container not found");
return NULL;
}
Int_t stepbackground = 1;
AliCFDataGrid *backgroundGrid = new AliCFDataGrid("ContaminationGrid","ContaminationGrid",*backgroundContainer,stepbackground);
spectrumSubtracted->Add(backgroundGrid,-1.0);
TH1D *subtractedspectrum = (TH1D *) spectrumSubtracted->Project(0);
AliHFEtools::NormaliseBinWidth(subtractedspectrum);
TH1D *rawspectrum = (TH1D *) dataspectrumbeforesubstraction->Project(0);
AliHFEtools::NormaliseBinWidth(rawspectrum);
fQA->AddResultAt(subtractedspectrum,AliHFEInclusiveSpectrumQA::kAfterSC);
fQA->AddResultAt(rawspectrum,AliHFEInclusiveSpectrumQA::kBeforeSC);
fQA->DrawSubtractContamination();
if(fNbDimensions>=2) {
fQA->AddResultAt((TObject *) spectrumSubtracted,AliHFEInclusiveSpectrumQA::kAfterSCND);
fQA->AddResultAt((TObject *) dataspectrumbeforesubstraction,AliHFEInclusiveSpectrumQA::kBeforeSCND);
fQA->AddResultAt((TObject *) backgroundGrid,AliHFEInclusiveSpectrumQA::kHadronContaminationND);
fQA->DrawSubtractContaminationND();
}
return spectrumSubtracted;
}
AliCFDataGrid* AliHFEInclusiveSpectrum::SubtractPhotonicBackground(){
printf("Photonic Background Subtraction \n");
AliCFContainer *dataContainer = GetContainer(kDataContainer);
if(!dataContainer){
AliError("Data Container not available");
return NULL;
}
printf("Step data: %d\n",fStepData);
AliCFDataGrid *spectrumPhotonicSubtracted = new AliCFDataGrid("spectrumPhotonicSubtracted", "Data Grid for spectrum after Photonic Background subtraction", *dataContainer,fStepData);
AliCFDataGrid *dataSpectrumBeforePhotonicSubstraction = (AliCFDataGrid *) ((AliCFDataGrid *)GetSpectrum(GetContainer(kDataContainer),fStepData))->Clone();
dataSpectrumBeforePhotonicSubstraction->SetName("dataSpectrumBeforePhotonicSubstraction");
AliCFContainer *photonicContainer = GetContainer(kPhotonicBackground);
if(!photonicContainer){
AliError("Photonic background container not found");
return NULL;
}
Int_t stepbackground = 0;
AliCFDataGrid *photonicGrid = new AliCFDataGrid("ContaminationGrid","ContaminationGrid",*photonicContainer,stepbackground);
spectrumPhotonicSubtracted->Add(photonicGrid,-1.0);
TH1D *photonicsubtractedspectrum = (TH1D *) spectrumPhotonicSubtracted->Project(0);
AliHFEtools::NormaliseBinWidth(photonicsubtractedspectrum);
TH1D *newrawspectrum = (TH1D *) dataSpectrumBeforePhotonicSubstraction->Project(0);
AliHFEtools::NormaliseBinWidth(newrawspectrum);
fQA->AddResultAt(photonicsubtractedspectrum,AliHFEInclusiveSpectrumQA::kAfterSPB);
fQA->AddResultAt(newrawspectrum,AliHFEInclusiveSpectrumQA::kBeforeSPB);
fQA->DrawSubtractPhotonicBackground();
return spectrumPhotonicSubtracted;
}
AliCFDataGrid *AliHFEInclusiveSpectrum::CorrectParametrizedEfficiency(AliCFDataGrid* const bgsubpectrum){
AliCFDataGrid *dataGrid = 0x0;
if(bgsubpectrum) {
dataGrid = bgsubpectrum;
}
else {
AliCFContainer *dataContainer = GetContainer(kDataContainer);
if(!dataContainer){
AliError("Data Container not available");
return NULL;
}
dataGrid = new AliCFDataGrid("dataGrid","dataGrid",*dataContainer, fStepData);
}
AliCFDataGrid *result = (AliCFDataGrid *) dataGrid->Clone();
result->SetName("ParametrizedEfficiencyBefore");
THnSparse *h = result->GetGrid();
Int_t nbdimensions = h->GetNdimensions();
AliCFContainer *dataContainer = GetContainer(kDataContainer);
if(!dataContainer){
AliError("Data Container not available");
return NULL;
}
AliCFContainer *dataContainerbis = (AliCFContainer *) dataContainer->Clone();
dataContainerbis->Add(dataContainerbis,-1.0);
Int_t* coord = new Int_t[nbdimensions];
memset(coord, 0, sizeof(Int_t) * nbdimensions);
Double_t* points = new Double_t[nbdimensions];
ULong64_t nEntries = h->GetNbins();
for (ULong64_t i = 0; i < nEntries; ++i) {
Double_t value = h->GetBinContent(i, coord);
for (Int_t j = 0; j < nbdimensions; ++j)
points[j] = h->GetAxis(j)->GetBinCenter(coord[j]);
if (!fEfficiencyFunction->IsInside(points))
continue;
TF1::RejectPoint(kFALSE);
Double_t valueEfficiency = fEfficiencyFunction->EvalPar(points, NULL);
if(valueEfficiency > 0.0) {
h->SetBinContent(coord,value/valueEfficiency);
dataContainerbis->SetBinContent(coord,fStepData,value/valueEfficiency);
Double_t error = h->GetBinError(i);
h->SetBinError(coord,error/valueEfficiency);
dataContainerbis->SetBinError(coord,fStepData,error/valueEfficiency);
}
}
delete[] coord;
delete[] points;
AliCFDataGrid *resultt = new AliCFDataGrid("spectrumEfficiencyParametrized", "Data Grid for spectrum after Efficiency parametrized", *dataContainerbis,fStepData);
TH1D *afterE = (TH1D *) resultt->Project(0);
AliHFEtools::NormaliseBinWidth(afterE);
TH1D *beforeE = (TH1D *) dataGrid->Project(0);
AliHFEtools::NormaliseBinWidth(beforeE);
fQA->AddResultAt(afterE,AliHFEInclusiveSpectrumQA::kAfterPE);
fQA->AddResultAt(beforeE,AliHFEInclusiveSpectrumQA::kBeforePE);
fQA->AddResultAt(fEfficiencyFunction,AliHFEInclusiveSpectrumQA::kPEfficiency);
fQA->DrawCorrectWithEfficiency(AliHFEInclusiveSpectrumQA::kParametrized);
if(fNbDimensions>=2) {
fQA->AddResultAt((TObject *) resultt,AliHFEInclusiveSpectrumQA::kAfterPEND);
fQA->AddResultAt((TObject *) dataGrid,AliHFEInclusiveSpectrumQA::kBeforePEND);
fQA->AddResultAt((TObject *) fEfficiencyFunction,AliHFEInclusiveSpectrumQA::kPEfficiencyND);
fQA->DrawCorrectWithEfficiencyND(AliHFEInclusiveSpectrumQA::kParametrized);
}
return resultt;
}
AliCFDataGrid *AliHFEInclusiveSpectrum::CorrectV0Efficiency(AliCFDataGrid* const bgsubpectrum){
AliCFContainer *v0Container = GetContainer(kDataContainerV0);
if(!v0Container){
AliError("V0 Container not available");
return NULL;
}
AliCFEffGrid* efficiencyD = new AliCFEffGrid("efficiency","",*v0Container);
efficiencyD->CalculateEfficiency(fStepAfterCutsV0,fStepBeforeCutsV0);
AliCFDataGrid *dataGrid = 0x0;
if(bgsubpectrum) {
dataGrid = bgsubpectrum;
}
else {
AliCFContainer *dataContainer = GetContainer(kDataContainer);
if(!dataContainer){
AliError("Data Container not available");
return NULL;
}
dataGrid = new AliCFDataGrid("dataGrid","dataGrid",*dataContainer, fStepData);
}
AliCFDataGrid *result = (AliCFDataGrid *) dataGrid->Clone();
result->ApplyEffCorrection(*efficiencyD);
TH1D *afterE = (TH1D *) result->Project(0);
AliHFEtools::NormaliseBinWidth(afterE);
TH1D *beforeE = (TH1D *) dataGrid->Project(0);
AliHFEtools::NormaliseBinWidth(beforeE);
TH1D* efficiencyDproj = (TH1D *) efficiencyD->Project(0);
fQA->AddResultAt(afterE,AliHFEInclusiveSpectrumQA::kAfterV0);
fQA->AddResultAt(beforeE,AliHFEInclusiveSpectrumQA::kBeforeV0);
fQA->AddResultAt(efficiencyDproj,AliHFEInclusiveSpectrumQA::kV0Efficiency);
fQA->DrawCorrectWithEfficiency(AliHFEInclusiveSpectrumQA::kV0);
if(fNbDimensions>=2) {
fQA->AddResultAt((TObject *) result,AliHFEInclusiveSpectrumQA::kAfterV0ND);
fQA->AddResultAt((TObject *) dataGrid,AliHFEInclusiveSpectrumQA::kBeforeV0ND);
fQA->AddResultAt((TObject *) efficiencyD,AliHFEInclusiveSpectrumQA::kV0EfficiencyND);
fQA->DrawCorrectWithEfficiencyND(AliHFEInclusiveSpectrumQA::kV0);
}
return result;
}
THnSparse *AliHFEInclusiveSpectrum::Unfold(AliCFDataGrid* const bgsubpectrum){
AliCFContainer *mcContainer = GetContainer(kMCContainerMC);
if(!mcContainer){
AliError("MC Container not available");
return NULL;
}
if(!fCorrelation){
AliError("No Correlation map available");
return NULL;
}
AliCFDataGrid *dataGrid = 0x0;
if(bgsubpectrum) {
dataGrid = bgsubpectrum;
}
else {
AliCFContainer *dataContainer = GetContainer(kDataContainer);
if(!dataContainer){
AliError("Data Container not available");
return NULL;
}
dataGrid = new AliCFDataGrid("dataGrid","dataGrid",*dataContainer, fStepData);
}
AliCFDataGrid* guessedGrid = new AliCFDataGrid("guessed","",*mcContainer, fStepGuessedUnfolding);
THnSparse* guessedTHnSparse = ((AliCFGridSparse*)guessedGrid->GetData())->GetGrid();
AliCFEffGrid* efficiencyD = new AliCFEffGrid("efficiency","",*mcContainer);
efficiencyD->CalculateEfficiency(fStepMC,fStepTrue);
AliCFUnfolding unfolding("unfolding","",fNbDimensions,fCorrelation,efficiencyD->GetGrid(),dataGrid->GetGrid(),guessedTHnSparse,1.e-06,0,fNumberOfIterations);
if(fSetSmoothing) unfolding.UseSmoothing();
unfolding.Unfold();
THnSparse* result = unfolding.GetUnfolded();
THnSparse* residual = unfolding.GetEstMeasured();
TH1D *residualh = (TH1D *) residual->Projection(0);
TH1D *beforeE = (TH1D *) dataGrid->Project(0);
TH1D* efficiencyDproj = (TH1D *) efficiencyD->Project(0);
TH1D *afterE = (TH1D *) result->Projection(0);
AliHFEtools::NormaliseBinWidth(residualh);
AliHFEtools::NormaliseBinWidth(beforeE);
AliHFEtools::NormaliseBinWidth(afterE);
fQA->AddResultAt(residualh,AliHFEInclusiveSpectrumQA::kResidualU);
fQA->AddResultAt(afterE,AliHFEInclusiveSpectrumQA::kAfterU);
fQA->AddResultAt(beforeE,AliHFEInclusiveSpectrumQA::kBeforeU);
fQA->AddResultAt(efficiencyDproj,AliHFEInclusiveSpectrumQA::kUEfficiency);
fQA->DrawUnfolding();
return (THnSparse *) result->Clone();
}
AliCFDataGrid *AliHFEInclusiveSpectrum::CorrectForEfficiency(AliCFDataGrid* const bgsubpectrum){
AliCFContainer *mcContainer = GetContainer(kMCContainerESD);
if(!mcContainer){
AliError("MC Container not available");
return NULL;
}
AliCFEffGrid* efficiencyD = new AliCFEffGrid("efficiency","",*mcContainer);
efficiencyD->CalculateEfficiency(fStepMC,fStepTrue);
AliCFDataGrid *dataGrid = 0x0;
if(bgsubpectrum) {
dataGrid = bgsubpectrum;
}
else {
AliCFContainer *dataContainer = GetContainer(kDataContainer);
if(!dataContainer){
AliError("Data Container not available");
return NULL;
}
dataGrid = new AliCFDataGrid("dataGrid","dataGrid",*dataContainer, fStepData);
}
AliCFDataGrid *result = (AliCFDataGrid *) dataGrid->Clone();
result->ApplyEffCorrection(*efficiencyD);
TH1D *afterE = (TH1D *) result->Project(0);
AliHFEtools::NormaliseBinWidth(afterE);
TH1D *beforeE = (TH1D *) dataGrid->Project(0);
AliHFEtools::NormaliseBinWidth(beforeE);
TH1D* efficiencyDproj = (TH1D *) efficiencyD->Project(0);
fQA->AddResultAt(afterE,AliHFEInclusiveSpectrumQA::kAfterMCE);
fQA->AddResultAt(beforeE,AliHFEInclusiveSpectrumQA::kBeforeMCE);
fQA->AddResultAt(efficiencyDproj,AliHFEInclusiveSpectrumQA::kMCEfficiency);
fQA->DrawCorrectWithEfficiency(AliHFEInclusiveSpectrumQA::kMC);
if(fNbDimensions>=2) {
fQA->AddResultAt((TObject *) result,AliHFEInclusiveSpectrumQA::kAfterMCEND);
fQA->AddResultAt((TObject *) dataGrid,AliHFEInclusiveSpectrumQA::kBeforeMCEND);
fQA->AddResultAt((TObject *) efficiencyD,AliHFEInclusiveSpectrumQA::kMCEfficiencyND);
fQA->DrawCorrectWithEfficiencyND(AliHFEInclusiveSpectrumQA::kMC);
}
return result;
}
void AliHFEInclusiveSpectrum::WriteResults(const char *filename)
{
AliCFContainer *dataContainer = GetContainer(kDataContainer);
AliCFContainer *mcContainer = GetContainer(kMCContainerMC);
TObject *unfolded = 0x0;
TObject *correctedspectrum = 0x0;
if(fQA) {
unfolded = fQA->GetResult(AliHFEInclusiveSpectrumQA::kFinalResultUnfolded);
correctedspectrum = fQA->GetResult(AliHFEInclusiveSpectrumQA::kFinalResultDirectEfficiency);
}
TFile *file = TFile::Open(filename,"recreate");
if(dataContainer) dataContainer->Write("data");
if(mcContainer) mcContainer->Write("mcefficiency");
if(fCorrelation) fCorrelation->Write("correlationmatrix");
if(unfolded) unfolded->Write("unfoldedspectrum");
if(correctedspectrum) correctedspectrum->Write("correctedspectrum");
if(fQA) fQA->Write("QAResults");
file->Close();
}
AliHFEInclusiveSpectrum.cxx:1 AliHFEInclusiveSpectrum.cxx:2 AliHFEInclusiveSpectrum.cxx:3 AliHFEInclusiveSpectrum.cxx:4 AliHFEInclusiveSpectrum.cxx:5 AliHFEInclusiveSpectrum.cxx:6 AliHFEInclusiveSpectrum.cxx:7 AliHFEInclusiveSpectrum.cxx:8 AliHFEInclusiveSpectrum.cxx:9 AliHFEInclusiveSpectrum.cxx:10 AliHFEInclusiveSpectrum.cxx:11 AliHFEInclusiveSpectrum.cxx:12 AliHFEInclusiveSpectrum.cxx:13 AliHFEInclusiveSpectrum.cxx:14 AliHFEInclusiveSpectrum.cxx:15 AliHFEInclusiveSpectrum.cxx:16 AliHFEInclusiveSpectrum.cxx:17 AliHFEInclusiveSpectrum.cxx:18 AliHFEInclusiveSpectrum.cxx:19 AliHFEInclusiveSpectrum.cxx:20 AliHFEInclusiveSpectrum.cxx:21 AliHFEInclusiveSpectrum.cxx:22 AliHFEInclusiveSpectrum.cxx:23 AliHFEInclusiveSpectrum.cxx:24 AliHFEInclusiveSpectrum.cxx:25 AliHFEInclusiveSpectrum.cxx:26 AliHFEInclusiveSpectrum.cxx:27 AliHFEInclusiveSpectrum.cxx:28 AliHFEInclusiveSpectrum.cxx:29 AliHFEInclusiveSpectrum.cxx:30 AliHFEInclusiveSpectrum.cxx:31 AliHFEInclusiveSpectrum.cxx:32 AliHFEInclusiveSpectrum.cxx:33 AliHFEInclusiveSpectrum.cxx:34 AliHFEInclusiveSpectrum.cxx:35 AliHFEInclusiveSpectrum.cxx:36 AliHFEInclusiveSpectrum.cxx:37 AliHFEInclusiveSpectrum.cxx:38 AliHFEInclusiveSpectrum.cxx:39 AliHFEInclusiveSpectrum.cxx:40 AliHFEInclusiveSpectrum.cxx:41 AliHFEInclusiveSpectrum.cxx:42 AliHFEInclusiveSpectrum.cxx:43 AliHFEInclusiveSpectrum.cxx:44 AliHFEInclusiveSpectrum.cxx:45 AliHFEInclusiveSpectrum.cxx:46 AliHFEInclusiveSpectrum.cxx:47 AliHFEInclusiveSpectrum.cxx:48 AliHFEInclusiveSpectrum.cxx:49 AliHFEInclusiveSpectrum.cxx:50 AliHFEInclusiveSpectrum.cxx:51 AliHFEInclusiveSpectrum.cxx:52 AliHFEInclusiveSpectrum.cxx:53 AliHFEInclusiveSpectrum.cxx:54 AliHFEInclusiveSpectrum.cxx:55 AliHFEInclusiveSpectrum.cxx:56 AliHFEInclusiveSpectrum.cxx:57 AliHFEInclusiveSpectrum.cxx:58 AliHFEInclusiveSpectrum.cxx:59 AliHFEInclusiveSpectrum.cxx:60 AliHFEInclusiveSpectrum.cxx:61 AliHFEInclusiveSpectrum.cxx:62 AliHFEInclusiveSpectrum.cxx:63 AliHFEInclusiveSpectrum.cxx:64 AliHFEInclusiveSpectrum.cxx:65 AliHFEInclusiveSpectrum.cxx:66 AliHFEInclusiveSpectrum.cxx:67 AliHFEInclusiveSpectrum.cxx:68 AliHFEInclusiveSpectrum.cxx:69 AliHFEInclusiveSpectrum.cxx:70 AliHFEInclusiveSpectrum.cxx:71 AliHFEInclusiveSpectrum.cxx:72 AliHFEInclusiveSpectrum.cxx:73 AliHFEInclusiveSpectrum.cxx:74 AliHFEInclusiveSpectrum.cxx:75 AliHFEInclusiveSpectrum.cxx:76 AliHFEInclusiveSpectrum.cxx:77 AliHFEInclusiveSpectrum.cxx:78 AliHFEInclusiveSpectrum.cxx:79 AliHFEInclusiveSpectrum.cxx:80 AliHFEInclusiveSpectrum.cxx:81 AliHFEInclusiveSpectrum.cxx:82 AliHFEInclusiveSpectrum.cxx:83 AliHFEInclusiveSpectrum.cxx:84 AliHFEInclusiveSpectrum.cxx:85 AliHFEInclusiveSpectrum.cxx:86 AliHFEInclusiveSpectrum.cxx:87 AliHFEInclusiveSpectrum.cxx:88 AliHFEInclusiveSpectrum.cxx:89 AliHFEInclusiveSpectrum.cxx:90 AliHFEInclusiveSpectrum.cxx:91 AliHFEInclusiveSpectrum.cxx:92 AliHFEInclusiveSpectrum.cxx:93 AliHFEInclusiveSpectrum.cxx:94 AliHFEInclusiveSpectrum.cxx:95 AliHFEInclusiveSpectrum.cxx:96 AliHFEInclusiveSpectrum.cxx:97 AliHFEInclusiveSpectrum.cxx:98 AliHFEInclusiveSpectrum.cxx:99 AliHFEInclusiveSpectrum.cxx:100 AliHFEInclusiveSpectrum.cxx:101 AliHFEInclusiveSpectrum.cxx:102 AliHFEInclusiveSpectrum.cxx:103 AliHFEInclusiveSpectrum.cxx:104 AliHFEInclusiveSpectrum.cxx:105 AliHFEInclusiveSpectrum.cxx:106 AliHFEInclusiveSpectrum.cxx:107 AliHFEInclusiveSpectrum.cxx:108 AliHFEInclusiveSpectrum.cxx:109 AliHFEInclusiveSpectrum.cxx:110 AliHFEInclusiveSpectrum.cxx:111 AliHFEInclusiveSpectrum.cxx:112 AliHFEInclusiveSpectrum.cxx:113 AliHFEInclusiveSpectrum.cxx:114 AliHFEInclusiveSpectrum.cxx:115 AliHFEInclusiveSpectrum.cxx:116 AliHFEInclusiveSpectrum.cxx:117 AliHFEInclusiveSpectrum.cxx:118 AliHFEInclusiveSpectrum.cxx:119 AliHFEInclusiveSpectrum.cxx:120 AliHFEInclusiveSpectrum.cxx:121 AliHFEInclusiveSpectrum.cxx:122 AliHFEInclusiveSpectrum.cxx:123 AliHFEInclusiveSpectrum.cxx:124 AliHFEInclusiveSpectrum.cxx:125 AliHFEInclusiveSpectrum.cxx:126 AliHFEInclusiveSpectrum.cxx:127 AliHFEInclusiveSpectrum.cxx:128 AliHFEInclusiveSpectrum.cxx:129 AliHFEInclusiveSpectrum.cxx:130 AliHFEInclusiveSpectrum.cxx:131 AliHFEInclusiveSpectrum.cxx:132 AliHFEInclusiveSpectrum.cxx:133 AliHFEInclusiveSpectrum.cxx:134 AliHFEInclusiveSpectrum.cxx:135 AliHFEInclusiveSpectrum.cxx:136 AliHFEInclusiveSpectrum.cxx:137 AliHFEInclusiveSpectrum.cxx:138 AliHFEInclusiveSpectrum.cxx:139 AliHFEInclusiveSpectrum.cxx:140 AliHFEInclusiveSpectrum.cxx:141 AliHFEInclusiveSpectrum.cxx:142 AliHFEInclusiveSpectrum.cxx:143 AliHFEInclusiveSpectrum.cxx:144 AliHFEInclusiveSpectrum.cxx:145 AliHFEInclusiveSpectrum.cxx:146 AliHFEInclusiveSpectrum.cxx:147 AliHFEInclusiveSpectrum.cxx:148 AliHFEInclusiveSpectrum.cxx:149 AliHFEInclusiveSpectrum.cxx:150 AliHFEInclusiveSpectrum.cxx:151 AliHFEInclusiveSpectrum.cxx:152 AliHFEInclusiveSpectrum.cxx:153 AliHFEInclusiveSpectrum.cxx:154 AliHFEInclusiveSpectrum.cxx:155 AliHFEInclusiveSpectrum.cxx:156 AliHFEInclusiveSpectrum.cxx:157 AliHFEInclusiveSpectrum.cxx:158 AliHFEInclusiveSpectrum.cxx:159 AliHFEInclusiveSpectrum.cxx:160 AliHFEInclusiveSpectrum.cxx:161 AliHFEInclusiveSpectrum.cxx:162 AliHFEInclusiveSpectrum.cxx:163 AliHFEInclusiveSpectrum.cxx:164 AliHFEInclusiveSpectrum.cxx:165 AliHFEInclusiveSpectrum.cxx:166 AliHFEInclusiveSpectrum.cxx:167 AliHFEInclusiveSpectrum.cxx:168 AliHFEInclusiveSpectrum.cxx:169 AliHFEInclusiveSpectrum.cxx:170 AliHFEInclusiveSpectrum.cxx:171 AliHFEInclusiveSpectrum.cxx:172 AliHFEInclusiveSpectrum.cxx:173 AliHFEInclusiveSpectrum.cxx:174 AliHFEInclusiveSpectrum.cxx:175 AliHFEInclusiveSpectrum.cxx:176 AliHFEInclusiveSpectrum.cxx:177 AliHFEInclusiveSpectrum.cxx:178 AliHFEInclusiveSpectrum.cxx:179 AliHFEInclusiveSpectrum.cxx:180 AliHFEInclusiveSpectrum.cxx:181 AliHFEInclusiveSpectrum.cxx:182 AliHFEInclusiveSpectrum.cxx:183 AliHFEInclusiveSpectrum.cxx:184 AliHFEInclusiveSpectrum.cxx:185 AliHFEInclusiveSpectrum.cxx:186 AliHFEInclusiveSpectrum.cxx:187 AliHFEInclusiveSpectrum.cxx:188 AliHFEInclusiveSpectrum.cxx:189 AliHFEInclusiveSpectrum.cxx:190 AliHFEInclusiveSpectrum.cxx:191 AliHFEInclusiveSpectrum.cxx:192 AliHFEInclusiveSpectrum.cxx:193 AliHFEInclusiveSpectrum.cxx:194 AliHFEInclusiveSpectrum.cxx:195 AliHFEInclusiveSpectrum.cxx:196 AliHFEInclusiveSpectrum.cxx:197 AliHFEInclusiveSpectrum.cxx:198 AliHFEInclusiveSpectrum.cxx:199 AliHFEInclusiveSpectrum.cxx:200 AliHFEInclusiveSpectrum.cxx:201 AliHFEInclusiveSpectrum.cxx:202 AliHFEInclusiveSpectrum.cxx:203 AliHFEInclusiveSpectrum.cxx:204 AliHFEInclusiveSpectrum.cxx:205 AliHFEInclusiveSpectrum.cxx:206 AliHFEInclusiveSpectrum.cxx:207 AliHFEInclusiveSpectrum.cxx:208 AliHFEInclusiveSpectrum.cxx:209 AliHFEInclusiveSpectrum.cxx:210 AliHFEInclusiveSpectrum.cxx:211 AliHFEInclusiveSpectrum.cxx:212 AliHFEInclusiveSpectrum.cxx:213 AliHFEInclusiveSpectrum.cxx:214 AliHFEInclusiveSpectrum.cxx:215 AliHFEInclusiveSpectrum.cxx:216 AliHFEInclusiveSpectrum.cxx:217 AliHFEInclusiveSpectrum.cxx:218 AliHFEInclusiveSpectrum.cxx:219 AliHFEInclusiveSpectrum.cxx:220 AliHFEInclusiveSpectrum.cxx:221 AliHFEInclusiveSpectrum.cxx:222 AliHFEInclusiveSpectrum.cxx:223 AliHFEInclusiveSpectrum.cxx:224 AliHFEInclusiveSpectrum.cxx:225 AliHFEInclusiveSpectrum.cxx:226 AliHFEInclusiveSpectrum.cxx:227 AliHFEInclusiveSpectrum.cxx:228 AliHFEInclusiveSpectrum.cxx:229 AliHFEInclusiveSpectrum.cxx:230 AliHFEInclusiveSpectrum.cxx:231 AliHFEInclusiveSpectrum.cxx:232 AliHFEInclusiveSpectrum.cxx:233 AliHFEInclusiveSpectrum.cxx:234 AliHFEInclusiveSpectrum.cxx:235 AliHFEInclusiveSpectrum.cxx:236 AliHFEInclusiveSpectrum.cxx:237 AliHFEInclusiveSpectrum.cxx:238 AliHFEInclusiveSpectrum.cxx:239 AliHFEInclusiveSpectrum.cxx:240 AliHFEInclusiveSpectrum.cxx:241 AliHFEInclusiveSpectrum.cxx:242 AliHFEInclusiveSpectrum.cxx:243 AliHFEInclusiveSpectrum.cxx:244 AliHFEInclusiveSpectrum.cxx:245 AliHFEInclusiveSpectrum.cxx:246 AliHFEInclusiveSpectrum.cxx:247 AliHFEInclusiveSpectrum.cxx:248 AliHFEInclusiveSpectrum.cxx:249 AliHFEInclusiveSpectrum.cxx:250 AliHFEInclusiveSpectrum.cxx:251 AliHFEInclusiveSpectrum.cxx:252 AliHFEInclusiveSpectrum.cxx:253 AliHFEInclusiveSpectrum.cxx:254 AliHFEInclusiveSpectrum.cxx:255 AliHFEInclusiveSpectrum.cxx:256 AliHFEInclusiveSpectrum.cxx:257 AliHFEInclusiveSpectrum.cxx:258 AliHFEInclusiveSpectrum.cxx:259 AliHFEInclusiveSpectrum.cxx:260 AliHFEInclusiveSpectrum.cxx:261 AliHFEInclusiveSpectrum.cxx:262 AliHFEInclusiveSpectrum.cxx:263 AliHFEInclusiveSpectrum.cxx:264 AliHFEInclusiveSpectrum.cxx:265 AliHFEInclusiveSpectrum.cxx:266 AliHFEInclusiveSpectrum.cxx:267 AliHFEInclusiveSpectrum.cxx:268 AliHFEInclusiveSpectrum.cxx:269 AliHFEInclusiveSpectrum.cxx:270 AliHFEInclusiveSpectrum.cxx:271 AliHFEInclusiveSpectrum.cxx:272 AliHFEInclusiveSpectrum.cxx:273 AliHFEInclusiveSpectrum.cxx:274 AliHFEInclusiveSpectrum.cxx:275 AliHFEInclusiveSpectrum.cxx:276 AliHFEInclusiveSpectrum.cxx:277 AliHFEInclusiveSpectrum.cxx:278 AliHFEInclusiveSpectrum.cxx:279 AliHFEInclusiveSpectrum.cxx:280 AliHFEInclusiveSpectrum.cxx:281 AliHFEInclusiveSpectrum.cxx:282 AliHFEInclusiveSpectrum.cxx:283 AliHFEInclusiveSpectrum.cxx:284 AliHFEInclusiveSpectrum.cxx:285 AliHFEInclusiveSpectrum.cxx:286 AliHFEInclusiveSpectrum.cxx:287 AliHFEInclusiveSpectrum.cxx:288 AliHFEInclusiveSpectrum.cxx:289 AliHFEInclusiveSpectrum.cxx:290 AliHFEInclusiveSpectrum.cxx:291 AliHFEInclusiveSpectrum.cxx:292 AliHFEInclusiveSpectrum.cxx:293 AliHFEInclusiveSpectrum.cxx:294 AliHFEInclusiveSpectrum.cxx:295 AliHFEInclusiveSpectrum.cxx:296 AliHFEInclusiveSpectrum.cxx:297 AliHFEInclusiveSpectrum.cxx:298 AliHFEInclusiveSpectrum.cxx:299 AliHFEInclusiveSpectrum.cxx:300 AliHFEInclusiveSpectrum.cxx:301 AliHFEInclusiveSpectrum.cxx:302 AliHFEInclusiveSpectrum.cxx:303 AliHFEInclusiveSpectrum.cxx:304 AliHFEInclusiveSpectrum.cxx:305 AliHFEInclusiveSpectrum.cxx:306 AliHFEInclusiveSpectrum.cxx:307 AliHFEInclusiveSpectrum.cxx:308 AliHFEInclusiveSpectrum.cxx:309 AliHFEInclusiveSpectrum.cxx:310 AliHFEInclusiveSpectrum.cxx:311 AliHFEInclusiveSpectrum.cxx:312 AliHFEInclusiveSpectrum.cxx:313 AliHFEInclusiveSpectrum.cxx:314 AliHFEInclusiveSpectrum.cxx:315 AliHFEInclusiveSpectrum.cxx:316 AliHFEInclusiveSpectrum.cxx:317 AliHFEInclusiveSpectrum.cxx:318 AliHFEInclusiveSpectrum.cxx:319 AliHFEInclusiveSpectrum.cxx:320 AliHFEInclusiveSpectrum.cxx:321 AliHFEInclusiveSpectrum.cxx:322 AliHFEInclusiveSpectrum.cxx:323 AliHFEInclusiveSpectrum.cxx:324 AliHFEInclusiveSpectrum.cxx:325 AliHFEInclusiveSpectrum.cxx:326 AliHFEInclusiveSpectrum.cxx:327 AliHFEInclusiveSpectrum.cxx:328 AliHFEInclusiveSpectrum.cxx:329 AliHFEInclusiveSpectrum.cxx:330 AliHFEInclusiveSpectrum.cxx:331 AliHFEInclusiveSpectrum.cxx:332 AliHFEInclusiveSpectrum.cxx:333 AliHFEInclusiveSpectrum.cxx:334 AliHFEInclusiveSpectrum.cxx:335 AliHFEInclusiveSpectrum.cxx:336 AliHFEInclusiveSpectrum.cxx:337 AliHFEInclusiveSpectrum.cxx:338 AliHFEInclusiveSpectrum.cxx:339 AliHFEInclusiveSpectrum.cxx:340 AliHFEInclusiveSpectrum.cxx:341 AliHFEInclusiveSpectrum.cxx:342 AliHFEInclusiveSpectrum.cxx:343 AliHFEInclusiveSpectrum.cxx:344 AliHFEInclusiveSpectrum.cxx:345 AliHFEInclusiveSpectrum.cxx:346 AliHFEInclusiveSpectrum.cxx:347 AliHFEInclusiveSpectrum.cxx:348 AliHFEInclusiveSpectrum.cxx:349 AliHFEInclusiveSpectrum.cxx:350 AliHFEInclusiveSpectrum.cxx:351 AliHFEInclusiveSpectrum.cxx:352 AliHFEInclusiveSpectrum.cxx:353 AliHFEInclusiveSpectrum.cxx:354 AliHFEInclusiveSpectrum.cxx:355 AliHFEInclusiveSpectrum.cxx:356 AliHFEInclusiveSpectrum.cxx:357 AliHFEInclusiveSpectrum.cxx:358 AliHFEInclusiveSpectrum.cxx:359 AliHFEInclusiveSpectrum.cxx:360 AliHFEInclusiveSpectrum.cxx:361 AliHFEInclusiveSpectrum.cxx:362 AliHFEInclusiveSpectrum.cxx:363 AliHFEInclusiveSpectrum.cxx:364 AliHFEInclusiveSpectrum.cxx:365 AliHFEInclusiveSpectrum.cxx:366 AliHFEInclusiveSpectrum.cxx:367 AliHFEInclusiveSpectrum.cxx:368 AliHFEInclusiveSpectrum.cxx:369 AliHFEInclusiveSpectrum.cxx:370 AliHFEInclusiveSpectrum.cxx:371 AliHFEInclusiveSpectrum.cxx:372 AliHFEInclusiveSpectrum.cxx:373 AliHFEInclusiveSpectrum.cxx:374 AliHFEInclusiveSpectrum.cxx:375 AliHFEInclusiveSpectrum.cxx:376 AliHFEInclusiveSpectrum.cxx:377 AliHFEInclusiveSpectrum.cxx:378 AliHFEInclusiveSpectrum.cxx:379 AliHFEInclusiveSpectrum.cxx:380 AliHFEInclusiveSpectrum.cxx:381 AliHFEInclusiveSpectrum.cxx:382 AliHFEInclusiveSpectrum.cxx:383 AliHFEInclusiveSpectrum.cxx:384 AliHFEInclusiveSpectrum.cxx:385 AliHFEInclusiveSpectrum.cxx:386 AliHFEInclusiveSpectrum.cxx:387 AliHFEInclusiveSpectrum.cxx:388 AliHFEInclusiveSpectrum.cxx:389 AliHFEInclusiveSpectrum.cxx:390 AliHFEInclusiveSpectrum.cxx:391 AliHFEInclusiveSpectrum.cxx:392 AliHFEInclusiveSpectrum.cxx:393 AliHFEInclusiveSpectrum.cxx:394 AliHFEInclusiveSpectrum.cxx:395 AliHFEInclusiveSpectrum.cxx:396 AliHFEInclusiveSpectrum.cxx:397 AliHFEInclusiveSpectrum.cxx:398 AliHFEInclusiveSpectrum.cxx:399 AliHFEInclusiveSpectrum.cxx:400 AliHFEInclusiveSpectrum.cxx:401 AliHFEInclusiveSpectrum.cxx:402 AliHFEInclusiveSpectrum.cxx:403 AliHFEInclusiveSpectrum.cxx:404 AliHFEInclusiveSpectrum.cxx:405 AliHFEInclusiveSpectrum.cxx:406 AliHFEInclusiveSpectrum.cxx:407 AliHFEInclusiveSpectrum.cxx:408 AliHFEInclusiveSpectrum.cxx:409 AliHFEInclusiveSpectrum.cxx:410 AliHFEInclusiveSpectrum.cxx:411 AliHFEInclusiveSpectrum.cxx:412 AliHFEInclusiveSpectrum.cxx:413 AliHFEInclusiveSpectrum.cxx:414 AliHFEInclusiveSpectrum.cxx:415 AliHFEInclusiveSpectrum.cxx:416 AliHFEInclusiveSpectrum.cxx:417 AliHFEInclusiveSpectrum.cxx:418 AliHFEInclusiveSpectrum.cxx:419 AliHFEInclusiveSpectrum.cxx:420 AliHFEInclusiveSpectrum.cxx:421 AliHFEInclusiveSpectrum.cxx:422 AliHFEInclusiveSpectrum.cxx:423 AliHFEInclusiveSpectrum.cxx:424 AliHFEInclusiveSpectrum.cxx:425 AliHFEInclusiveSpectrum.cxx:426 AliHFEInclusiveSpectrum.cxx:427 AliHFEInclusiveSpectrum.cxx:428 AliHFEInclusiveSpectrum.cxx:429 AliHFEInclusiveSpectrum.cxx:430 AliHFEInclusiveSpectrum.cxx:431 AliHFEInclusiveSpectrum.cxx:432 AliHFEInclusiveSpectrum.cxx:433 AliHFEInclusiveSpectrum.cxx:434 AliHFEInclusiveSpectrum.cxx:435 AliHFEInclusiveSpectrum.cxx:436 AliHFEInclusiveSpectrum.cxx:437 AliHFEInclusiveSpectrum.cxx:438 AliHFEInclusiveSpectrum.cxx:439 AliHFEInclusiveSpectrum.cxx:440 AliHFEInclusiveSpectrum.cxx:441 AliHFEInclusiveSpectrum.cxx:442 AliHFEInclusiveSpectrum.cxx:443 AliHFEInclusiveSpectrum.cxx:444 AliHFEInclusiveSpectrum.cxx:445 AliHFEInclusiveSpectrum.cxx:446 AliHFEInclusiveSpectrum.cxx:447 AliHFEInclusiveSpectrum.cxx:448 AliHFEInclusiveSpectrum.cxx:449 AliHFEInclusiveSpectrum.cxx:450 AliHFEInclusiveSpectrum.cxx:451 AliHFEInclusiveSpectrum.cxx:452 AliHFEInclusiveSpectrum.cxx:453 AliHFEInclusiveSpectrum.cxx:454 AliHFEInclusiveSpectrum.cxx:455 AliHFEInclusiveSpectrum.cxx:456 AliHFEInclusiveSpectrum.cxx:457 AliHFEInclusiveSpectrum.cxx:458 AliHFEInclusiveSpectrum.cxx:459 AliHFEInclusiveSpectrum.cxx:460 AliHFEInclusiveSpectrum.cxx:461 AliHFEInclusiveSpectrum.cxx:462 AliHFEInclusiveSpectrum.cxx:463 AliHFEInclusiveSpectrum.cxx:464 AliHFEInclusiveSpectrum.cxx:465 AliHFEInclusiveSpectrum.cxx:466 AliHFEInclusiveSpectrum.cxx:467 AliHFEInclusiveSpectrum.cxx:468 AliHFEInclusiveSpectrum.cxx:469 AliHFEInclusiveSpectrum.cxx:470 AliHFEInclusiveSpectrum.cxx:471 AliHFEInclusiveSpectrum.cxx:472 AliHFEInclusiveSpectrum.cxx:473 AliHFEInclusiveSpectrum.cxx:474 AliHFEInclusiveSpectrum.cxx:475 AliHFEInclusiveSpectrum.cxx:476 AliHFEInclusiveSpectrum.cxx:477 AliHFEInclusiveSpectrum.cxx:478 AliHFEInclusiveSpectrum.cxx:479 AliHFEInclusiveSpectrum.cxx:480 AliHFEInclusiveSpectrum.cxx:481 AliHFEInclusiveSpectrum.cxx:482 AliHFEInclusiveSpectrum.cxx:483 AliHFEInclusiveSpectrum.cxx:484 AliHFEInclusiveSpectrum.cxx:485 AliHFEInclusiveSpectrum.cxx:486 AliHFEInclusiveSpectrum.cxx:487 AliHFEInclusiveSpectrum.cxx:488 AliHFEInclusiveSpectrum.cxx:489 AliHFEInclusiveSpectrum.cxx:490 AliHFEInclusiveSpectrum.cxx:491 AliHFEInclusiveSpectrum.cxx:492 AliHFEInclusiveSpectrum.cxx:493 AliHFEInclusiveSpectrum.cxx:494 AliHFEInclusiveSpectrum.cxx:495 AliHFEInclusiveSpectrum.cxx:496 AliHFEInclusiveSpectrum.cxx:497 AliHFEInclusiveSpectrum.cxx:498 AliHFEInclusiveSpectrum.cxx:499 AliHFEInclusiveSpectrum.cxx:500 AliHFEInclusiveSpectrum.cxx:501 AliHFEInclusiveSpectrum.cxx:502 AliHFEInclusiveSpectrum.cxx:503 AliHFEInclusiveSpectrum.cxx:504 AliHFEInclusiveSpectrum.cxx:505 AliHFEInclusiveSpectrum.cxx:506 AliHFEInclusiveSpectrum.cxx:507 AliHFEInclusiveSpectrum.cxx:508 AliHFEInclusiveSpectrum.cxx:509 AliHFEInclusiveSpectrum.cxx:510 AliHFEInclusiveSpectrum.cxx:511 AliHFEInclusiveSpectrum.cxx:512 AliHFEInclusiveSpectrum.cxx:513 AliHFEInclusiveSpectrum.cxx:514 AliHFEInclusiveSpectrum.cxx:515 AliHFEInclusiveSpectrum.cxx:516 AliHFEInclusiveSpectrum.cxx:517 AliHFEInclusiveSpectrum.cxx:518 AliHFEInclusiveSpectrum.cxx:519 AliHFEInclusiveSpectrum.cxx:520 AliHFEInclusiveSpectrum.cxx:521 AliHFEInclusiveSpectrum.cxx:522 AliHFEInclusiveSpectrum.cxx:523 AliHFEInclusiveSpectrum.cxx:524 AliHFEInclusiveSpectrum.cxx:525 AliHFEInclusiveSpectrum.cxx:526 AliHFEInclusiveSpectrum.cxx:527 AliHFEInclusiveSpectrum.cxx:528 AliHFEInclusiveSpectrum.cxx:529 AliHFEInclusiveSpectrum.cxx:530 AliHFEInclusiveSpectrum.cxx:531 AliHFEInclusiveSpectrum.cxx:532 AliHFEInclusiveSpectrum.cxx:533 AliHFEInclusiveSpectrum.cxx:534 AliHFEInclusiveSpectrum.cxx:535 AliHFEInclusiveSpectrum.cxx:536 AliHFEInclusiveSpectrum.cxx:537 AliHFEInclusiveSpectrum.cxx:538 AliHFEInclusiveSpectrum.cxx:539 AliHFEInclusiveSpectrum.cxx:540 AliHFEInclusiveSpectrum.cxx:541 AliHFEInclusiveSpectrum.cxx:542 AliHFEInclusiveSpectrum.cxx:543 AliHFEInclusiveSpectrum.cxx:544 AliHFEInclusiveSpectrum.cxx:545 AliHFEInclusiveSpectrum.cxx:546 AliHFEInclusiveSpectrum.cxx:547 AliHFEInclusiveSpectrum.cxx:548 AliHFEInclusiveSpectrum.cxx:549 AliHFEInclusiveSpectrum.cxx:550 AliHFEInclusiveSpectrum.cxx:551 AliHFEInclusiveSpectrum.cxx:552 AliHFEInclusiveSpectrum.cxx:553 AliHFEInclusiveSpectrum.cxx:554 AliHFEInclusiveSpectrum.cxx:555 AliHFEInclusiveSpectrum.cxx:556 AliHFEInclusiveSpectrum.cxx:557 AliHFEInclusiveSpectrum.cxx:558 AliHFEInclusiveSpectrum.cxx:559 AliHFEInclusiveSpectrum.cxx:560 AliHFEInclusiveSpectrum.cxx:561 AliHFEInclusiveSpectrum.cxx:562 AliHFEInclusiveSpectrum.cxx:563 AliHFEInclusiveSpectrum.cxx:564 AliHFEInclusiveSpectrum.cxx:565 AliHFEInclusiveSpectrum.cxx:566 AliHFEInclusiveSpectrum.cxx:567 AliHFEInclusiveSpectrum.cxx:568 AliHFEInclusiveSpectrum.cxx:569 AliHFEInclusiveSpectrum.cxx:570 AliHFEInclusiveSpectrum.cxx:571 AliHFEInclusiveSpectrum.cxx:572 AliHFEInclusiveSpectrum.cxx:573 AliHFEInclusiveSpectrum.cxx:574 AliHFEInclusiveSpectrum.cxx:575 AliHFEInclusiveSpectrum.cxx:576 AliHFEInclusiveSpectrum.cxx:577 AliHFEInclusiveSpectrum.cxx:578 AliHFEInclusiveSpectrum.cxx:579 AliHFEInclusiveSpectrum.cxx:580 AliHFEInclusiveSpectrum.cxx:581 AliHFEInclusiveSpectrum.cxx:582 AliHFEInclusiveSpectrum.cxx:583 AliHFEInclusiveSpectrum.cxx:584 AliHFEInclusiveSpectrum.cxx:585 AliHFEInclusiveSpectrum.cxx:586 AliHFEInclusiveSpectrum.cxx:587 AliHFEInclusiveSpectrum.cxx:588 AliHFEInclusiveSpectrum.cxx:589 AliHFEInclusiveSpectrum.cxx:590 AliHFEInclusiveSpectrum.cxx:591 AliHFEInclusiveSpectrum.cxx:592 AliHFEInclusiveSpectrum.cxx:593 AliHFEInclusiveSpectrum.cxx:594 AliHFEInclusiveSpectrum.cxx:595 AliHFEInclusiveSpectrum.cxx:596 AliHFEInclusiveSpectrum.cxx:597 AliHFEInclusiveSpectrum.cxx:598 AliHFEInclusiveSpectrum.cxx:599 AliHFEInclusiveSpectrum.cxx:600 AliHFEInclusiveSpectrum.cxx:601 AliHFEInclusiveSpectrum.cxx:602 AliHFEInclusiveSpectrum.cxx:603 AliHFEInclusiveSpectrum.cxx:604 AliHFEInclusiveSpectrum.cxx:605 AliHFEInclusiveSpectrum.cxx:606 AliHFEInclusiveSpectrum.cxx:607 AliHFEInclusiveSpectrum.cxx:608 AliHFEInclusiveSpectrum.cxx:609 AliHFEInclusiveSpectrum.cxx:610 AliHFEInclusiveSpectrum.cxx:611 AliHFEInclusiveSpectrum.cxx:612 AliHFEInclusiveSpectrum.cxx:613 AliHFEInclusiveSpectrum.cxx:614 AliHFEInclusiveSpectrum.cxx:615 AliHFEInclusiveSpectrum.cxx:616 AliHFEInclusiveSpectrum.cxx:617 AliHFEInclusiveSpectrum.cxx:618 AliHFEInclusiveSpectrum.cxx:619 AliHFEInclusiveSpectrum.cxx:620 AliHFEInclusiveSpectrum.cxx:621 AliHFEInclusiveSpectrum.cxx:622 AliHFEInclusiveSpectrum.cxx:623 AliHFEInclusiveSpectrum.cxx:624 AliHFEInclusiveSpectrum.cxx:625 AliHFEInclusiveSpectrum.cxx:626 AliHFEInclusiveSpectrum.cxx:627 AliHFEInclusiveSpectrum.cxx:628 AliHFEInclusiveSpectrum.cxx:629 AliHFEInclusiveSpectrum.cxx:630 AliHFEInclusiveSpectrum.cxx:631 AliHFEInclusiveSpectrum.cxx:632 AliHFEInclusiveSpectrum.cxx:633 AliHFEInclusiveSpectrum.cxx:634 AliHFEInclusiveSpectrum.cxx:635 AliHFEInclusiveSpectrum.cxx:636 AliHFEInclusiveSpectrum.cxx:637 AliHFEInclusiveSpectrum.cxx:638 AliHFEInclusiveSpectrum.cxx:639 AliHFEInclusiveSpectrum.cxx:640 AliHFEInclusiveSpectrum.cxx:641 AliHFEInclusiveSpectrum.cxx:642 AliHFEInclusiveSpectrum.cxx:643 AliHFEInclusiveSpectrum.cxx:644 AliHFEInclusiveSpectrum.cxx:645 AliHFEInclusiveSpectrum.cxx:646 AliHFEInclusiveSpectrum.cxx:647 AliHFEInclusiveSpectrum.cxx:648 AliHFEInclusiveSpectrum.cxx:649 AliHFEInclusiveSpectrum.cxx:650 AliHFEInclusiveSpectrum.cxx:651 AliHFEInclusiveSpectrum.cxx:652 AliHFEInclusiveSpectrum.cxx:653 AliHFEInclusiveSpectrum.cxx:654 AliHFEInclusiveSpectrum.cxx:655 AliHFEInclusiveSpectrum.cxx:656 AliHFEInclusiveSpectrum.cxx:657 AliHFEInclusiveSpectrum.cxx:658 AliHFEInclusiveSpectrum.cxx:659 AliHFEInclusiveSpectrum.cxx:660 AliHFEInclusiveSpectrum.cxx:661 AliHFEInclusiveSpectrum.cxx:662 AliHFEInclusiveSpectrum.cxx:663 AliHFEInclusiveSpectrum.cxx:664 AliHFEInclusiveSpectrum.cxx:665 AliHFEInclusiveSpectrum.cxx:666 AliHFEInclusiveSpectrum.cxx:667 AliHFEInclusiveSpectrum.cxx:668 AliHFEInclusiveSpectrum.cxx:669 AliHFEInclusiveSpectrum.cxx:670 AliHFEInclusiveSpectrum.cxx:671 AliHFEInclusiveSpectrum.cxx:672 AliHFEInclusiveSpectrum.cxx:673 AliHFEInclusiveSpectrum.cxx:674 AliHFEInclusiveSpectrum.cxx:675 AliHFEInclusiveSpectrum.cxx:676 AliHFEInclusiveSpectrum.cxx:677 AliHFEInclusiveSpectrum.cxx:678 AliHFEInclusiveSpectrum.cxx:679 AliHFEInclusiveSpectrum.cxx:680 AliHFEInclusiveSpectrum.cxx:681 AliHFEInclusiveSpectrum.cxx:682 AliHFEInclusiveSpectrum.cxx:683 AliHFEInclusiveSpectrum.cxx:684 AliHFEInclusiveSpectrum.cxx:685 AliHFEInclusiveSpectrum.cxx:686 AliHFEInclusiveSpectrum.cxx:687 AliHFEInclusiveSpectrum.cxx:688 AliHFEInclusiveSpectrum.cxx:689 AliHFEInclusiveSpectrum.cxx:690 AliHFEInclusiveSpectrum.cxx:691 AliHFEInclusiveSpectrum.cxx:692 AliHFEInclusiveSpectrum.cxx:693 AliHFEInclusiveSpectrum.cxx:694 AliHFEInclusiveSpectrum.cxx:695 AliHFEInclusiveSpectrum.cxx:696 AliHFEInclusiveSpectrum.cxx:697 AliHFEInclusiveSpectrum.cxx:698 AliHFEInclusiveSpectrum.cxx:699 AliHFEInclusiveSpectrum.cxx:700 AliHFEInclusiveSpectrum.cxx:701 AliHFEInclusiveSpectrum.cxx:702 AliHFEInclusiveSpectrum.cxx:703 AliHFEInclusiveSpectrum.cxx:704 AliHFEInclusiveSpectrum.cxx:705 AliHFEInclusiveSpectrum.cxx:706 AliHFEInclusiveSpectrum.cxx:707 AliHFEInclusiveSpectrum.cxx:708 AliHFEInclusiveSpectrum.cxx:709 AliHFEInclusiveSpectrum.cxx:710 AliHFEInclusiveSpectrum.cxx:711 AliHFEInclusiveSpectrum.cxx:712 AliHFEInclusiveSpectrum.cxx:713 AliHFEInclusiveSpectrum.cxx:714 AliHFEInclusiveSpectrum.cxx:715 AliHFEInclusiveSpectrum.cxx:716 AliHFEInclusiveSpectrum.cxx:717