#include <TAxis.h>
#include <TCanvas.h>
#include <TFile.h>
#include <TH1D.h>
#include <TLegend.h>
#include <TList.h>
#include "AliCFContainer.h"
#include "AliCFEffGrid.h"
#include "AliHFEcontainer.h"
#include "AliHFEcuts.h"
#include "AliHFEpostAnalysis.h"
ClassImp(AliHFEpostAnalysis)
AliHFEpostAnalysis::AliHFEpostAnalysis():
TObject(),
fResults(NULL),
fAnalysisObjects(0),
fEfficiencyContainer(NULL),
fPIDperformance(NULL),
fSignalToBackgroundMC(NULL)
{
}
AliHFEpostAnalysis::AliHFEpostAnalysis(const AliHFEpostAnalysis &ref):
TObject(ref),
fResults(ref.fResults),
fAnalysisObjects(ref.fAnalysisObjects),
fEfficiencyContainer(ref.fEfficiencyContainer),
fPIDperformance(ref.fPIDperformance),
fSignalToBackgroundMC(ref.fSignalToBackgroundMC)
{
}
AliHFEpostAnalysis& AliHFEpostAnalysis::operator=(const AliHFEpostAnalysis &ref){
if(this == &ref) return *this;
TObject::operator=(ref);
fResults = ref.fResults;
fAnalysisObjects = ref.fAnalysisObjects;
fPIDperformance = ref.fPIDperformance;
fSignalToBackgroundMC = ref.fSignalToBackgroundMC;
return *this;
}
AliHFEpostAnalysis::~AliHFEpostAnalysis(){
if(fResults) delete fResults;
}
Int_t AliHFEpostAnalysis::SetTaskQA(const TList *input){
Int_t nFound = 0;
fPIDperformance = dynamic_cast<THnSparseF *>(input->FindObject("PIDperformance"));
if(!fPIDperformance){
AliError("Histogram fPIDperformance not found in the List of Outputs");
} else {
SETBIT(fAnalysisObjects, kPIDperf);
nFound++;
}
fSignalToBackgroundMC = dynamic_cast<THnSparseF *>(input->FindObject("SignalToBackgroundMC"));
if(!fSignalToBackgroundMC){
AliError("Histogram fSignalToBackgroundMC not found in the list of outputs");
} else {
SETBIT(fAnalysisObjects, kSigBackg);
nFound++;
}
AliInfo(Form("Found %d analysis objects", nFound));
return nFound;
}
void AliHFEpostAnalysis::StoreOutput(const char *filename){
if(fResults){
TFile *outfile = new TFile(filename, "RECREATE");
outfile->cd();
fResults->Write("HFEresults", TObject::kSingleKey);
outfile->Close();
delete outfile;
}
}
void AliHFEpostAnalysis::DrawMCSignal2Background(){
if(!fSignalToBackgroundMC) return;
fSignalToBackgroundMC->GetAxis(5)->SetRange(2,2);
TH1 *hEff[3], *hSB[3];
hEff[0] = CreateHistoSignalToBackgroundMC(0, 0);
hEff[1] = CreateHistoSignalToBackgroundMC(0, 1);
hEff[2] = CreateHistoSignalToBackgroundMC(0, 2);
hSB[0] = CreateHistoSignalToBackgroundMC(1, 0);
hSB[1] = CreateHistoSignalToBackgroundMC(1, 1);
hSB[2] = CreateHistoSignalToBackgroundMC(1, 2);
fSignalToBackgroundMC->GetAxis(5)->SetRange(0, fSignalToBackgroundMC->GetAxis(4)->GetNbins());
TCanvas *cMCSB = new TCanvas("cMCSB", "MC Sig/Backg studies", 800, 400);
cMCSB->Divide(2);
TLegend *leg;
TH1 **sample[2] = {&hEff[0], &hSB[0]};
const char *chargename[3] = {"All Charges", "Negative Charge", "Positive Charge"};
for(Int_t isample = 0; isample < 2; isample++){
leg = new TLegend(0.7, 0.1, 0.89, 0.3);
leg->SetBorderSize(1);
leg->SetFillColor(kWhite);
cMCSB->cd(isample + 1);
for(Int_t icharge = 0; icharge < 3; icharge++){
sample[isample][icharge]->Draw(icharge > 0? "psame" : "p");
leg->AddEntry(sample[isample][icharge], chargename[icharge], "p");
}
leg->Draw();
gPad->Update();
}
}
TH1 *AliHFEpostAnalysis::CreateHistoSignalToBackgroundMC(Int_t mode, Int_t charge){
TH1 *hNom = NULL, *hDenom = NULL;
if(charge) fSignalToBackgroundMC->GetAxis(3)->SetRange(charge, charge);
fSignalToBackgroundMC->GetAxis(4)->SetRange(2,3);
hNom = fSignalToBackgroundMC->Projection(0);
hNom->SetName("nom");
fSignalToBackgroundMC->GetAxis(4)->SetRange(0, fSignalToBackgroundMC->GetAxis(4)->GetLast() + 1);
if(mode == 1) fSignalToBackgroundMC->GetAxis(4)->SetRange(1,1);
hDenom = fSignalToBackgroundMC->Projection(0);
hDenom->SetName("denom");
if(mode == 1) fSignalToBackgroundMC->GetAxis(4)->SetRange(0, fSignalToBackgroundMC->GetAxis(4)->GetLast() + 1);
if(charge) fSignalToBackgroundMC->GetAxis(3)->SetRange(0, fSignalToBackgroundMC->GetAxis(3)->GetLast() + 1);
TH1 *hEff = dynamic_cast<TH1D *>(hNom->Clone());
if(hEff){
TString hname, cname;
hname = mode ? "sigToBack" : "sigEff";
Color_t mycolor = kBlack;
switch(charge){
case 0: mycolor = kBlue; cname = "All"; break;
case 1: mycolor = kBlack; cname = "Neg"; break;
case 2: mycolor = kRed; cname ="Pos"; break;
default: break;
}
hname += cname;
hEff->SetName(hname);
hEff->SetTitle(mode ? "Signal/Background" : "Signal/(Signal+Background)");
hEff->Divide(hDenom);
hEff->GetXaxis()->SetTitle("p_{T} / GeV/c");
hEff->GetYaxis()->SetTitle("Efficiency");
hEff->SetStats(kFALSE);
hEff->SetLineColor(kBlack);
hEff->SetLineWidth(1);
hEff->SetMarkerStyle(22);
hEff->SetMarkerColor(mycolor);
}
delete hNom; delete hDenom;
return hEff;
}
void AliHFEpostAnalysis::DrawEfficiency(){
TCanvas *cEff = new TCanvas("cEff", "Efficiency", 800, 600);
cEff->Divide(2,2);
if(!fEfficiencyContainer) return;
AliCFContainer *tracks = fEfficiencyContainer->MakeMergedCFContainer("trackContCombined", "MC + Rec(reco) Track Information", "MCTrackCont:recTrackContReco");
AliCFEffGrid *effCalc = new AliCFEffGrid("effCalc", "Efficiency Calculation Grid", *tracks);
effCalc->CalculateEfficiency(AliHFEcuts::kStepMCInAcceptance, AliHFEcuts::kStepMCGenerated);
TH1 *effReconstructibleP = effCalc->Project(0);
effReconstructibleP->SetName("effReconstructibleP");
effReconstructibleP->SetTitle("Efficiency of reconstructible tracks");
effReconstructibleP->GetXaxis()->SetTitle("p_{T} / GeV/c");
effReconstructibleP->GetYaxis()->SetTitle("Efficiency");
effReconstructibleP->GetYaxis()->SetRangeUser(0.,1.);
effReconstructibleP->SetMarkerStyle(22);
effReconstructibleP->SetMarkerColor(kBlue);
effReconstructibleP->SetLineColor(kBlack);
effReconstructibleP->SetStats(kFALSE);
cEff->cd(1);
effReconstructibleP->Draw("e");
effCalc->CalculateEfficiency(AliHFEcuts::kStepMCGeneratedZOutNoPileUpCentralityFine, AliHFEcuts::kStepMCGenerated);
TH1 *effSignal = effCalc->Project(0);
effSignal->SetName("effSignal");
effSignal->SetTitle("Efficiency of Signal Electrons");
effSignal->GetXaxis()->SetTitle("p_{T} / GeV/c");
effSignal->GetYaxis()->SetTitle("Efficiency");
effSignal->GetYaxis()->SetRangeUser(0., 1.);
effSignal->SetMarkerStyle(22);
effSignal->SetMarkerColor(kBlue);
effSignal->SetLineColor(kBlack);
effSignal->SetStats(kFALSE);
cEff->cd(2);
effSignal->Draw("e");
effCalc->CalculateEfficiency(tracks->GetNStep() - 1, AliHFEcuts::kStepMCGenerated);
TH1 *effPIDP = effCalc->Project(0);
effPIDP->SetName("effPIDP");
effPIDP->SetTitle("Efficiency of selected tracks");
effPIDP->GetXaxis()->SetTitle("p_{T} / GeV/c");
effPIDP->GetYaxis()->SetTitle("Efficiency");
effPIDP->GetYaxis()->SetRangeUser(0.,1.);
effPIDP->SetMarkerStyle(22);
effPIDP->SetMarkerColor(kBlue);
effPIDP->SetLineColor(kBlack);
effPIDP->SetStats(kFALSE);
cEff->cd(3);
effPIDP->Draw("e");
effCalc->CalculateEfficiency(tracks->GetNStep() - 1, AliHFEcuts::kStepMCInAcceptance);
TH1 *effPIDAcc = effCalc->Project(0);
effPIDAcc->SetName("effPIDAcc");
effPIDAcc->SetTitle("Efficiency of selected tracks in acceptance");
effPIDAcc->GetXaxis()->SetTitle("p_{T} / GeV/c");
effPIDAcc->GetYaxis()->SetTitle("Efficiency");
effPIDAcc->GetYaxis()->SetRangeUser(0.,1.);
effPIDAcc->SetMarkerStyle(22);
effPIDAcc->SetMarkerColor(kBlue);
effPIDAcc->SetLineColor(kBlack);
effPIDAcc->SetStats(kFALSE);
cEff->cd(4);
effPIDAcc->Draw("e");
delete effCalc;
}
void AliHFEpostAnalysis::DrawPIDperformance(){
if(!fPIDperformance) return;
TH1 *electronPurity[3], *signalPurity[3], *fakeContamination[3];
electronPurity[0] = CreateHistoPIDperformance(0, 0);
electronPurity[1] = CreateHistoPIDperformance(0, 1);
electronPurity[2] = CreateHistoPIDperformance(0, 2);
signalPurity[0] = CreateHistoPIDperformance(1, 0);
signalPurity[1] = CreateHistoPIDperformance(1, 1);
signalPurity[2] = CreateHistoPIDperformance(1, 2);
fakeContamination[0] = CreateHistoPIDperformance(2, 0);
fakeContamination[1] = CreateHistoPIDperformance(2, 1);
fakeContamination[2] = CreateHistoPIDperformance(2, 2);
TCanvas *cRatios = new TCanvas("cRatios", "Ratio Plots", 800, 600);
const char *chargename[3] = {"All Charges", "Negative Charge", "Positive Charge"};
cRatios->Divide(2,2);
TH1 **sample[3] = {&electronPurity[0], &signalPurity[0], &fakeContamination[0]};
TLegend *leg;
for(Int_t isample = 0; isample < 3; isample++){
cRatios->cd(isample + 1);
leg = new TLegend(0.7, 0.1, 0.89, 0.3);
leg->SetBorderSize(1);
leg->SetFillColor(kWhite);
for(Int_t icharge = 0; icharge < 3; icharge++){
leg->AddEntry(sample[isample][icharge], chargename[icharge], "p");
sample[isample][icharge]->Draw(icharge > 0 ? "esame" : "e");
}
leg->Draw();
gPad->Update();
}
}
TH1 *AliHFEpostAnalysis::CreateHistoPIDperformance(Int_t mode, Int_t charge){
fPIDperformance->GetAxis(4)->SetRange(0, fPIDperformance->GetAxis(4)->GetNbins()+1);
fPIDperformance->GetAxis(3)->SetRange(0, fPIDperformance->GetAxis(3)->GetNbins() + 1);
TH1 *hNom = NULL, *hDenom = NULL;
TString hname, htitle, cname;
Color_t mycolor = kBlack;
if(charge) fPIDperformance->GetAxis(3)->SetRange(charge, charge);
if(mode == 1) fPIDperformance->GetAxis(4)->SetRange(2,3);
hDenom = fPIDperformance->Projection(0);
hDenom->Sumw2();
hDenom->SetName("hDenom");
if(mode == 1) fPIDperformance->GetAxis(4)->SetRange(0, fPIDperformance->GetAxis(4)->GetNbins() + 1);
switch(mode){
case 0:
fPIDperformance->GetAxis(4)->SetRange(2,3);
hname = "electronPurity";
htitle = "Electron Purity";
break;
case 1:
fPIDperformance->GetAxis(4)->SetRange(3,3);
hname = "signalPurity";
htitle = "Signal Purity";
break;
case 2:
fPIDperformance->GetAxis(4)->SetRange(1,1);
hname = "fakeContamination";
htitle = "Contamination of misidentified hadrons";
break;
default: break;
}
switch(charge){
case 0:
cname = "All";
mycolor = kBlue;
break;
case 1:
cname = "Neg";
mycolor = kBlack;
break;
case 2:
cname = "Pos";
mycolor = kRed;
break;
}
hname += cname;
hNom = fPIDperformance->Projection(0);
hNom->Sumw2();
hNom->SetName("hNom");
fPIDperformance->GetAxis(4)->SetRange(0, fPIDperformance->GetAxis(4)->GetNbins()+1);
if(charge) fPIDperformance->GetAxis(3)->SetRange(0, fPIDperformance->GetAxis(3)->GetNbins() + 1);
TH1 *hEff = dynamic_cast<TH1D *>(hNom->Clone());
if(hEff){
hEff->SetName(hname.Data());
hEff->SetTitle(htitle.Data());
hEff->Divide(hDenom);
hEff->Scale(100.);
hEff->GetXaxis()->SetTitle("p_{T} / GeV/c");
hEff->GetYaxis()->SetTitle(mode < 2 ? "Purity / %" : "Contamination / %");
hEff->GetYaxis()->SetRangeUser(0., 100.);
hEff->SetStats(kFALSE);
hEff->SetLineColor(kBlack);
hEff->SetLineWidth(1);
hEff->SetMarkerColor(mycolor);
hEff->SetMarkerStyle(22);
delete hNom; delete hDenom;
}
return hEff;
}
void AliHFEpostAnalysis::DrawCutEfficiency(Bool_t MC, Int_t source){
TCanvas *output = new TCanvas("effCut", "Cut Step efficiency", 800, 600);
output->cd();
TLegend *leg = new TLegend(0.6, 0.7, 0.89, 0.89);
leg->SetHeader("Cut Step:");
leg->SetBorderSize(0);
leg->SetFillColor(kWhite);
leg->SetFillStyle(0);
AliCFContainer *tracks = fEfficiencyContainer->MakeMergedCFContainer("mergedTracks", "Container for MC and reconstructed Track information", "MCTrackCont:recTrackContReco");
Int_t nStepMC = fEfficiencyContainer->GetCFContainer("MCTrackCont")->GetNStep();
AliDebug(1, Form("Number of MC Cut Steps: %d", nStepMC));
const Int_t markerStart = 24;
const Int_t colorStart = 1;
TH1 *hTemp = NULL;
if(MC){
if(source > -1 && source < 4){
AliInfo(Form("Setting source to %d", source));
for(Int_t istep = 0; istep < tracks->GetNStep(); istep++) tracks->GetAxis(4, istep)->SetRange(source + 1, source + 1);
}
}
AliCFEffGrid effcalc("cutEfficiency", "Cut step efficiency calculation", *tracks);
Bool_t first = kTRUE;
Int_t histcounter = 0;
if(MC){
effcalc.CalculateEfficiency(AliHFEcuts::kStepMCInAcceptance, AliHFEcuts::kStepMCGenerated);
hTemp = effcalc.Project(0);
hTemp->SetName(Form("hEff%d", histcounter));
hTemp->SetTitle("Cut Step Efficiency");
hTemp->SetMarkerColor(colorStart + histcounter);
hTemp->SetMarkerStyle(markerStart + histcounter);
hTemp->GetXaxis()->SetTitle("p / GeV/c");
hTemp->GetYaxis()->SetTitle("Efficiency");
hTemp->GetYaxis()->SetRangeUser(0., 2.);
hTemp->SetStats(kFALSE);
hTemp->Draw("ep");
leg->AddEntry(hTemp, tracks->GetStepTitle(AliHFEcuts::kStepMCInAcceptance), "p");
histcounter++;
effcalc.CalculateEfficiency(nStepMC, AliHFEcuts::kStepMCGenerated);
hTemp = effcalc.Project(0);
hTemp->SetName("hEff2");
hTemp->SetTitle("Cut Step Efficiency");
hTemp->SetMarkerColor(colorStart + histcounter);
hTemp->SetMarkerStyle(markerStart + histcounter);
hTemp->GetXaxis()->SetTitle("p / GeV/c");
hTemp->GetYaxis()->SetTitle("Efficiency");
hTemp->GetYaxis()->SetRangeUser(0., 2.);
hTemp->SetStats(kFALSE);
hTemp->Draw("epsame");
leg->AddEntry(hTemp, tracks->GetStepTitle(nStepMC), "p");
first = kFALSE;
histcounter++;
}
for(Int_t istep = nStepMC+1; istep < tracks->GetNStep(); istep++){
effcalc.CalculateEfficiency(istep, istep - 1);
hTemp = effcalc.Project(0);
hTemp->SetName(Form("hEff%d", istep));
hTemp->SetTitle("Cut Step Efficiency");
hTemp->SetMarkerColor(colorStart + histcounter);
hTemp->SetMarkerStyle(markerStart + histcounter);
hTemp->SetStats(kFALSE);
hTemp->Draw(first ? "ep" : "epsame");
hTemp->GetXaxis()->SetTitle("P / GeV/c");
hTemp->GetYaxis()->SetTitle("Efficiency");
hTemp->GetYaxis()->SetRangeUser(0., 2.);
leg->AddEntry(hTemp, tracks->GetStepTitle(istep), "p");
first = kFALSE;
histcounter++;
}
leg->Draw();
delete tracks;
}
AliHFEpostAnalysis.cxx:10 AliHFEpostAnalysis.cxx:11 AliHFEpostAnalysis.cxx:12 AliHFEpostAnalysis.cxx:13 AliHFEpostAnalysis.cxx:14 AliHFEpostAnalysis.cxx:15 AliHFEpostAnalysis.cxx:16 AliHFEpostAnalysis.cxx:17 AliHFEpostAnalysis.cxx:18 AliHFEpostAnalysis.cxx:19 AliHFEpostAnalysis.cxx:20 AliHFEpostAnalysis.cxx:21 AliHFEpostAnalysis.cxx:22 AliHFEpostAnalysis.cxx:23 AliHFEpostAnalysis.cxx:24 AliHFEpostAnalysis.cxx:25 AliHFEpostAnalysis.cxx:26 AliHFEpostAnalysis.cxx:27 AliHFEpostAnalysis.cxx:28 AliHFEpostAnalysis.cxx:29 AliHFEpostAnalysis.cxx:30 AliHFEpostAnalysis.cxx:31 AliHFEpostAnalysis.cxx:32 AliHFEpostAnalysis.cxx:33 AliHFEpostAnalysis.cxx:34 AliHFEpostAnalysis.cxx:35 AliHFEpostAnalysis.cxx:36 AliHFEpostAnalysis.cxx:37 AliHFEpostAnalysis.cxx:38 AliHFEpostAnalysis.cxx:39 AliHFEpostAnalysis.cxx:40 AliHFEpostAnalysis.cxx:41 AliHFEpostAnalysis.cxx:42 AliHFEpostAnalysis.cxx:43 AliHFEpostAnalysis.cxx:44 AliHFEpostAnalysis.cxx:45 AliHFEpostAnalysis.cxx:46 AliHFEpostAnalysis.cxx:47 AliHFEpostAnalysis.cxx:48 AliHFEpostAnalysis.cxx:49 AliHFEpostAnalysis.cxx:50 AliHFEpostAnalysis.cxx:51 AliHFEpostAnalysis.cxx:52 AliHFEpostAnalysis.cxx:53 AliHFEpostAnalysis.cxx:54 AliHFEpostAnalysis.cxx:55 AliHFEpostAnalysis.cxx:56 AliHFEpostAnalysis.cxx:57 AliHFEpostAnalysis.cxx:58 AliHFEpostAnalysis.cxx:59 AliHFEpostAnalysis.cxx:60 AliHFEpostAnalysis.cxx:61 AliHFEpostAnalysis.cxx:62 AliHFEpostAnalysis.cxx:63 AliHFEpostAnalysis.cxx:64 AliHFEpostAnalysis.cxx:65 AliHFEpostAnalysis.cxx:66 AliHFEpostAnalysis.cxx:67 AliHFEpostAnalysis.cxx:68 AliHFEpostAnalysis.cxx:69 AliHFEpostAnalysis.cxx:70 AliHFEpostAnalysis.cxx:71 AliHFEpostAnalysis.cxx:72 AliHFEpostAnalysis.cxx:73 AliHFEpostAnalysis.cxx:74 AliHFEpostAnalysis.cxx:75 AliHFEpostAnalysis.cxx:76 AliHFEpostAnalysis.cxx:77 AliHFEpostAnalysis.cxx:78 AliHFEpostAnalysis.cxx:79 AliHFEpostAnalysis.cxx:80 AliHFEpostAnalysis.cxx:81 AliHFEpostAnalysis.cxx:82 AliHFEpostAnalysis.cxx:83 AliHFEpostAnalysis.cxx:84 AliHFEpostAnalysis.cxx:85 AliHFEpostAnalysis.cxx:86 AliHFEpostAnalysis.cxx:87 AliHFEpostAnalysis.cxx:88 AliHFEpostAnalysis.cxx:89 AliHFEpostAnalysis.cxx:90 AliHFEpostAnalysis.cxx:91 AliHFEpostAnalysis.cxx:92 AliHFEpostAnalysis.cxx:93 AliHFEpostAnalysis.cxx:94 AliHFEpostAnalysis.cxx:95 AliHFEpostAnalysis.cxx:96 AliHFEpostAnalysis.cxx:97 AliHFEpostAnalysis.cxx:98 AliHFEpostAnalysis.cxx:99 AliHFEpostAnalysis.cxx:100 AliHFEpostAnalysis.cxx:101 AliHFEpostAnalysis.cxx:102 AliHFEpostAnalysis.cxx:103 AliHFEpostAnalysis.cxx:104 AliHFEpostAnalysis.cxx:105 AliHFEpostAnalysis.cxx:106 AliHFEpostAnalysis.cxx:107 AliHFEpostAnalysis.cxx:108 AliHFEpostAnalysis.cxx:109 AliHFEpostAnalysis.cxx:110 AliHFEpostAnalysis.cxx:111 AliHFEpostAnalysis.cxx:112 AliHFEpostAnalysis.cxx:113 AliHFEpostAnalysis.cxx:114 AliHFEpostAnalysis.cxx:115 AliHFEpostAnalysis.cxx:116 AliHFEpostAnalysis.cxx:117 AliHFEpostAnalysis.cxx:118 AliHFEpostAnalysis.cxx:119 AliHFEpostAnalysis.cxx:120 AliHFEpostAnalysis.cxx:121 AliHFEpostAnalysis.cxx:122 AliHFEpostAnalysis.cxx:123 AliHFEpostAnalysis.cxx:124 AliHFEpostAnalysis.cxx:125 AliHFEpostAnalysis.cxx:126 AliHFEpostAnalysis.cxx:127 AliHFEpostAnalysis.cxx:128 AliHFEpostAnalysis.cxx:129 AliHFEpostAnalysis.cxx:130 AliHFEpostAnalysis.cxx:131 AliHFEpostAnalysis.cxx:132 AliHFEpostAnalysis.cxx:133 AliHFEpostAnalysis.cxx:134 AliHFEpostAnalysis.cxx:135 AliHFEpostAnalysis.cxx:136 AliHFEpostAnalysis.cxx:137 AliHFEpostAnalysis.cxx:138 AliHFEpostAnalysis.cxx:139 AliHFEpostAnalysis.cxx:140 AliHFEpostAnalysis.cxx:141 AliHFEpostAnalysis.cxx:142 AliHFEpostAnalysis.cxx:143 AliHFEpostAnalysis.cxx:144 AliHFEpostAnalysis.cxx:145 AliHFEpostAnalysis.cxx:146 AliHFEpostAnalysis.cxx:147 AliHFEpostAnalysis.cxx:148 AliHFEpostAnalysis.cxx:149 AliHFEpostAnalysis.cxx:150 AliHFEpostAnalysis.cxx:151 AliHFEpostAnalysis.cxx:152 AliHFEpostAnalysis.cxx:153 AliHFEpostAnalysis.cxx:154 AliHFEpostAnalysis.cxx:155 AliHFEpostAnalysis.cxx:156 AliHFEpostAnalysis.cxx:157 AliHFEpostAnalysis.cxx:158 AliHFEpostAnalysis.cxx:159 AliHFEpostAnalysis.cxx:160 AliHFEpostAnalysis.cxx:161 AliHFEpostAnalysis.cxx:162 AliHFEpostAnalysis.cxx:163 AliHFEpostAnalysis.cxx:164 AliHFEpostAnalysis.cxx:165 AliHFEpostAnalysis.cxx:166 AliHFEpostAnalysis.cxx:167 AliHFEpostAnalysis.cxx:168 AliHFEpostAnalysis.cxx:169 AliHFEpostAnalysis.cxx:170 AliHFEpostAnalysis.cxx:171 AliHFEpostAnalysis.cxx:172 AliHFEpostAnalysis.cxx:173 AliHFEpostAnalysis.cxx:174 AliHFEpostAnalysis.cxx:175 AliHFEpostAnalysis.cxx:176 AliHFEpostAnalysis.cxx:177 AliHFEpostAnalysis.cxx:178 AliHFEpostAnalysis.cxx:179 AliHFEpostAnalysis.cxx:180 AliHFEpostAnalysis.cxx:181 AliHFEpostAnalysis.cxx:182 AliHFEpostAnalysis.cxx:183 AliHFEpostAnalysis.cxx:184 AliHFEpostAnalysis.cxx:185 AliHFEpostAnalysis.cxx:186 AliHFEpostAnalysis.cxx:187 AliHFEpostAnalysis.cxx:188 AliHFEpostAnalysis.cxx:189 AliHFEpostAnalysis.cxx:190 AliHFEpostAnalysis.cxx:191 AliHFEpostAnalysis.cxx:192 AliHFEpostAnalysis.cxx:193 AliHFEpostAnalysis.cxx:194 AliHFEpostAnalysis.cxx:195 AliHFEpostAnalysis.cxx:196 AliHFEpostAnalysis.cxx:197 AliHFEpostAnalysis.cxx:198 AliHFEpostAnalysis.cxx:199 AliHFEpostAnalysis.cxx:200 AliHFEpostAnalysis.cxx:201 AliHFEpostAnalysis.cxx:202 AliHFEpostAnalysis.cxx:203 AliHFEpostAnalysis.cxx:204 AliHFEpostAnalysis.cxx:205 AliHFEpostAnalysis.cxx:206 AliHFEpostAnalysis.cxx:207 AliHFEpostAnalysis.cxx:208 AliHFEpostAnalysis.cxx:209 AliHFEpostAnalysis.cxx:210 AliHFEpostAnalysis.cxx:211 AliHFEpostAnalysis.cxx:212 AliHFEpostAnalysis.cxx:213 AliHFEpostAnalysis.cxx:214 AliHFEpostAnalysis.cxx:215 AliHFEpostAnalysis.cxx:216 AliHFEpostAnalysis.cxx:217 AliHFEpostAnalysis.cxx:218 AliHFEpostAnalysis.cxx:219 AliHFEpostAnalysis.cxx:220 AliHFEpostAnalysis.cxx:221 AliHFEpostAnalysis.cxx:222 AliHFEpostAnalysis.cxx:223 AliHFEpostAnalysis.cxx:224 AliHFEpostAnalysis.cxx:225 AliHFEpostAnalysis.cxx:226 AliHFEpostAnalysis.cxx:227 AliHFEpostAnalysis.cxx:228 AliHFEpostAnalysis.cxx:229 AliHFEpostAnalysis.cxx:230 AliHFEpostAnalysis.cxx:231 AliHFEpostAnalysis.cxx:232 AliHFEpostAnalysis.cxx:233 AliHFEpostAnalysis.cxx:234 AliHFEpostAnalysis.cxx:235 AliHFEpostAnalysis.cxx:236 AliHFEpostAnalysis.cxx:237 AliHFEpostAnalysis.cxx:238 AliHFEpostAnalysis.cxx:239 AliHFEpostAnalysis.cxx:240 AliHFEpostAnalysis.cxx:241 AliHFEpostAnalysis.cxx:242 AliHFEpostAnalysis.cxx:243 AliHFEpostAnalysis.cxx:244 AliHFEpostAnalysis.cxx:245 AliHFEpostAnalysis.cxx:246 AliHFEpostAnalysis.cxx:247 AliHFEpostAnalysis.cxx:248 AliHFEpostAnalysis.cxx:249 AliHFEpostAnalysis.cxx:250 AliHFEpostAnalysis.cxx:251 AliHFEpostAnalysis.cxx:252 AliHFEpostAnalysis.cxx:253 AliHFEpostAnalysis.cxx:254 AliHFEpostAnalysis.cxx:255 AliHFEpostAnalysis.cxx:256 AliHFEpostAnalysis.cxx:257 AliHFEpostAnalysis.cxx:258 AliHFEpostAnalysis.cxx:259 AliHFEpostAnalysis.cxx:260 AliHFEpostAnalysis.cxx:261 AliHFEpostAnalysis.cxx:262 AliHFEpostAnalysis.cxx:263 AliHFEpostAnalysis.cxx:264 AliHFEpostAnalysis.cxx:265 AliHFEpostAnalysis.cxx:266 AliHFEpostAnalysis.cxx:267 AliHFEpostAnalysis.cxx:268 AliHFEpostAnalysis.cxx:269 AliHFEpostAnalysis.cxx:270 AliHFEpostAnalysis.cxx:271 AliHFEpostAnalysis.cxx:272 AliHFEpostAnalysis.cxx:273 AliHFEpostAnalysis.cxx:274 AliHFEpostAnalysis.cxx:275 AliHFEpostAnalysis.cxx:276 AliHFEpostAnalysis.cxx:277 AliHFEpostAnalysis.cxx:278 AliHFEpostAnalysis.cxx:279 AliHFEpostAnalysis.cxx:280 AliHFEpostAnalysis.cxx:281 AliHFEpostAnalysis.cxx:282 AliHFEpostAnalysis.cxx:283 AliHFEpostAnalysis.cxx:284 AliHFEpostAnalysis.cxx:285 AliHFEpostAnalysis.cxx:286 AliHFEpostAnalysis.cxx:287 AliHFEpostAnalysis.cxx:288 AliHFEpostAnalysis.cxx:289 AliHFEpostAnalysis.cxx:290 AliHFEpostAnalysis.cxx:291 AliHFEpostAnalysis.cxx:292 AliHFEpostAnalysis.cxx:293 AliHFEpostAnalysis.cxx:294 AliHFEpostAnalysis.cxx:295 AliHFEpostAnalysis.cxx:296 AliHFEpostAnalysis.cxx:297 AliHFEpostAnalysis.cxx:298 AliHFEpostAnalysis.cxx:299 AliHFEpostAnalysis.cxx:300 AliHFEpostAnalysis.cxx:301 AliHFEpostAnalysis.cxx:302 AliHFEpostAnalysis.cxx:303 AliHFEpostAnalysis.cxx:304 AliHFEpostAnalysis.cxx:305 AliHFEpostAnalysis.cxx:306 AliHFEpostAnalysis.cxx:307 AliHFEpostAnalysis.cxx:308 AliHFEpostAnalysis.cxx:309 AliHFEpostAnalysis.cxx:310 AliHFEpostAnalysis.cxx:311 AliHFEpostAnalysis.cxx:312 AliHFEpostAnalysis.cxx:313 AliHFEpostAnalysis.cxx:314 AliHFEpostAnalysis.cxx:315 AliHFEpostAnalysis.cxx:316 AliHFEpostAnalysis.cxx:317 AliHFEpostAnalysis.cxx:318 AliHFEpostAnalysis.cxx:319 AliHFEpostAnalysis.cxx:320 AliHFEpostAnalysis.cxx:321 AliHFEpostAnalysis.cxx:322 AliHFEpostAnalysis.cxx:323 AliHFEpostAnalysis.cxx:324 AliHFEpostAnalysis.cxx:325 AliHFEpostAnalysis.cxx:326 AliHFEpostAnalysis.cxx:327 AliHFEpostAnalysis.cxx:328 AliHFEpostAnalysis.cxx:329 AliHFEpostAnalysis.cxx:330 AliHFEpostAnalysis.cxx:331 AliHFEpostAnalysis.cxx:332 AliHFEpostAnalysis.cxx:333 AliHFEpostAnalysis.cxx:334 AliHFEpostAnalysis.cxx:335 AliHFEpostAnalysis.cxx:336 AliHFEpostAnalysis.cxx:337 AliHFEpostAnalysis.cxx:338 AliHFEpostAnalysis.cxx:339 AliHFEpostAnalysis.cxx:340 AliHFEpostAnalysis.cxx:341 AliHFEpostAnalysis.cxx:342 AliHFEpostAnalysis.cxx:343 AliHFEpostAnalysis.cxx:344 AliHFEpostAnalysis.cxx:345 AliHFEpostAnalysis.cxx:346 AliHFEpostAnalysis.cxx:347 AliHFEpostAnalysis.cxx:348 AliHFEpostAnalysis.cxx:349 AliHFEpostAnalysis.cxx:350 AliHFEpostAnalysis.cxx:351 AliHFEpostAnalysis.cxx:352 AliHFEpostAnalysis.cxx:353 AliHFEpostAnalysis.cxx:354 AliHFEpostAnalysis.cxx:355 AliHFEpostAnalysis.cxx:356 AliHFEpostAnalysis.cxx:357 AliHFEpostAnalysis.cxx:358 AliHFEpostAnalysis.cxx:359 AliHFEpostAnalysis.cxx:360 AliHFEpostAnalysis.cxx:361 AliHFEpostAnalysis.cxx:362 AliHFEpostAnalysis.cxx:363 AliHFEpostAnalysis.cxx:364 AliHFEpostAnalysis.cxx:365 AliHFEpostAnalysis.cxx:366 AliHFEpostAnalysis.cxx:367 AliHFEpostAnalysis.cxx:368 AliHFEpostAnalysis.cxx:369 AliHFEpostAnalysis.cxx:370 AliHFEpostAnalysis.cxx:371 AliHFEpostAnalysis.cxx:372 AliHFEpostAnalysis.cxx:373 AliHFEpostAnalysis.cxx:374 AliHFEpostAnalysis.cxx:375 AliHFEpostAnalysis.cxx:376 AliHFEpostAnalysis.cxx:377 AliHFEpostAnalysis.cxx:378 AliHFEpostAnalysis.cxx:379 AliHFEpostAnalysis.cxx:380 AliHFEpostAnalysis.cxx:381 AliHFEpostAnalysis.cxx:382 AliHFEpostAnalysis.cxx:383 AliHFEpostAnalysis.cxx:384 AliHFEpostAnalysis.cxx:385 AliHFEpostAnalysis.cxx:386 AliHFEpostAnalysis.cxx:387 AliHFEpostAnalysis.cxx:388 AliHFEpostAnalysis.cxx:389 AliHFEpostAnalysis.cxx:390 AliHFEpostAnalysis.cxx:391 AliHFEpostAnalysis.cxx:392 AliHFEpostAnalysis.cxx:393 AliHFEpostAnalysis.cxx:394 AliHFEpostAnalysis.cxx:395 AliHFEpostAnalysis.cxx:396 AliHFEpostAnalysis.cxx:397 AliHFEpostAnalysis.cxx:398 AliHFEpostAnalysis.cxx:399 AliHFEpostAnalysis.cxx:400 AliHFEpostAnalysis.cxx:401 AliHFEpostAnalysis.cxx:402 AliHFEpostAnalysis.cxx:403 AliHFEpostAnalysis.cxx:404 AliHFEpostAnalysis.cxx:405 AliHFEpostAnalysis.cxx:406 AliHFEpostAnalysis.cxx:407 AliHFEpostAnalysis.cxx:408 AliHFEpostAnalysis.cxx:409 AliHFEpostAnalysis.cxx:410 AliHFEpostAnalysis.cxx:411 AliHFEpostAnalysis.cxx:412 AliHFEpostAnalysis.cxx:413 AliHFEpostAnalysis.cxx:414 AliHFEpostAnalysis.cxx:415 AliHFEpostAnalysis.cxx:416 AliHFEpostAnalysis.cxx:417 AliHFEpostAnalysis.cxx:418 AliHFEpostAnalysis.cxx:419 AliHFEpostAnalysis.cxx:420 AliHFEpostAnalysis.cxx:421 AliHFEpostAnalysis.cxx:422 AliHFEpostAnalysis.cxx:423 AliHFEpostAnalysis.cxx:424 AliHFEpostAnalysis.cxx:425 AliHFEpostAnalysis.cxx:426 AliHFEpostAnalysis.cxx:427 AliHFEpostAnalysis.cxx:428 AliHFEpostAnalysis.cxx:429 AliHFEpostAnalysis.cxx:430 AliHFEpostAnalysis.cxx:431 AliHFEpostAnalysis.cxx:432 AliHFEpostAnalysis.cxx:433 AliHFEpostAnalysis.cxx:434 AliHFEpostAnalysis.cxx:435 AliHFEpostAnalysis.cxx:436 AliHFEpostAnalysis.cxx:437 AliHFEpostAnalysis.cxx:438 AliHFEpostAnalysis.cxx:439 AliHFEpostAnalysis.cxx:440 AliHFEpostAnalysis.cxx:441 AliHFEpostAnalysis.cxx:442 AliHFEpostAnalysis.cxx:443 AliHFEpostAnalysis.cxx:444 AliHFEpostAnalysis.cxx:445 AliHFEpostAnalysis.cxx:446 AliHFEpostAnalysis.cxx:447 AliHFEpostAnalysis.cxx:448 AliHFEpostAnalysis.cxx:449 AliHFEpostAnalysis.cxx:450 AliHFEpostAnalysis.cxx:451 AliHFEpostAnalysis.cxx:452 AliHFEpostAnalysis.cxx:453 AliHFEpostAnalysis.cxx:454 AliHFEpostAnalysis.cxx:455 AliHFEpostAnalysis.cxx:456 AliHFEpostAnalysis.cxx:457 AliHFEpostAnalysis.cxx:458 AliHFEpostAnalysis.cxx:459 AliHFEpostAnalysis.cxx:460 AliHFEpostAnalysis.cxx:461 AliHFEpostAnalysis.cxx:462 AliHFEpostAnalysis.cxx:463 AliHFEpostAnalysis.cxx:464 AliHFEpostAnalysis.cxx:465 AliHFEpostAnalysis.cxx:466 AliHFEpostAnalysis.cxx:467 AliHFEpostAnalysis.cxx:468 AliHFEpostAnalysis.cxx:469 AliHFEpostAnalysis.cxx:470 AliHFEpostAnalysis.cxx:471 AliHFEpostAnalysis.cxx:472 AliHFEpostAnalysis.cxx:473 AliHFEpostAnalysis.cxx:474 AliHFEpostAnalysis.cxx:475 AliHFEpostAnalysis.cxx:476 AliHFEpostAnalysis.cxx:477 AliHFEpostAnalysis.cxx:478 AliHFEpostAnalysis.cxx:479 AliHFEpostAnalysis.cxx:480 AliHFEpostAnalysis.cxx:481 AliHFEpostAnalysis.cxx:482 AliHFEpostAnalysis.cxx:483 AliHFEpostAnalysis.cxx:484 AliHFEpostAnalysis.cxx:485 AliHFEpostAnalysis.cxx:486 AliHFEpostAnalysis.cxx:487 AliHFEpostAnalysis.cxx:488 AliHFEpostAnalysis.cxx:489 AliHFEpostAnalysis.cxx:490 AliHFEpostAnalysis.cxx:491 AliHFEpostAnalysis.cxx:492 AliHFEpostAnalysis.cxx:493