#include "AliDxHFECorrelation.h"
#include "AliVParticle.h"
#include "AliLog.h"
#include "TObjArray.h"
#include "AliHFCorrelator.h"
#include "AliAODEvent.h"
#include "AliAODVertex.h"
#include "TH1D.h"
#include "TH2D.h"
#include "TH3D.h"
#include "THnSparse.h"
#include "TMath.h"
#include "TFile.h"
#include "TCanvas.h"
#include "TDatabasePDG.h"
#include "TLorentzVector.h"
#include "AliReducedParticle.h"
#include "AliDxHFEParticleSelection.h"
#include <iostream>
#include <cerrno>
#include <memory>
using namespace std;
ClassImp(AliDxHFECorrelation)
AliDxHFECorrelation::AliDxHFECorrelation(const char* name)
: TNamed(name?name:"AliDxHFECorrelation", "")
, fHistograms(NULL)
, fControlObjects(NULL)
, fCorrProperties(NULL)
, fhEventControlCorr(NULL)
, fCuts(NULL)
, fUseMC(kFALSE)
, fCorrelator(NULL)
, fUseEventMixing(kFALSE)
, fSystem(0)
, fMinPhi(-TMath::Pi()/2)
, fMaxPhi(3*TMath::Pi()/2)
, fDeltaPhi(0)
, fDeltaEta(0)
, fDimThn(0)
, fCorrArray(NULL)
, fEventType(0)
, fTriggerParticleType(kD)
{
}
const char* AliDxHFECorrelation::fgkEventControlBinNames[]={
"nEventsAll",
"nEventsSelected",
"nEventsTriggerd",
"nEventsCorrelated"
};
AliDxHFECorrelation::~AliDxHFECorrelation()
{
if (fHistograms) delete fHistograms;
fHistograms=NULL;
if (fControlObjects) delete fControlObjects;
fControlObjects=NULL;
fCorrProperties=NULL;
fhEventControlCorr=NULL;
if(fCorrelator) delete fCorrelator;
fCorrelator=NULL;
if(fCorrArray) delete fCorrArray;
fCorrArray=NULL;
fCuts=NULL;
}
int AliDxHFECorrelation::Init(const char* arguments)
{
AliInfo("Initializing correlation objects");
ParseArguments(arguments);
fCorrProperties=DefineTHnSparse();
AddControlObject(fCorrProperties);
TString histoname="";
if(fTriggerParticleType==kElectron)
histoname="hEventControlHFExDCorr";
else
histoname="hEventControlDxHFECorr";
std::auto_ptr<TH1D> hEventControl(new TH1D(histoname.Data(), histoname.Data(), 10, 0, 10));
if (!hEventControl.get()) {
return -ENOMEM;
}
int iLabel=0;
for (iLabel=0; iLabel<kNEventControlLabels; iLabel++)
hEventControl->GetXaxis()->SetBinLabel(iLabel+1, fgkEventControlBinNames[iLabel]);
fhEventControlCorr=hEventControl.release();
AddControlObject(fhEventControlCorr);
AliHFAssociatedTrackCuts* cuts=dynamic_cast<AliHFAssociatedTrackCuts*>(fCuts);
if (!cuts) {
if (fCuts)
AliError(Form("cuts object of wrong type %s, required AliHFAssociatedTrackCuts", fCuts->ClassName()));
else
AliError("mandatory cuts object missing");
return -EINVAL;
}
if (cuts->GetNCentPoolBins()==0 || cuts->GetCentPoolBins()==NULL ||
cuts->GetNZvtxPoolBins()==0 || cuts->GetZvtxPoolBins()==NULL) {
AliError(Form("inavlid object %s: bin configuration is mandatory", cuts->GetName()));
cuts->Dump();
return -EINVAL;
}
cuts->Print("");
fCorrelator = new AliHFCorrelator("Correlator", cuts, fSystem);
fCorrelator->SetDeltaPhiInterval(fMinPhi,fMaxPhi);
fCorrelator->SetEventMixing(fUseEventMixing);
fCorrelator->SetAssociatedParticleType(AliHFCorrelator::kElectron);
fCorrelator->SetApplyDisplacementCut(kFALSE);
fCorrelator->SetUseMC(fUseMC);
fCorrelator->SetUseReco(kTRUE);
Bool_t pooldef = fCorrelator->DefineEventPool();
if(!pooldef) AliInfo("Warning:: Event pool not defined properly");
Double_t MaxNofEvents = cuts->GetMaxNEventsInPool();
Double_t MinNofTracks = cuts->GetMinNTracksInPool();
Int_t NofCentBins = cuts->GetNCentPoolBins();
const Double_t * CentBins = cuts->GetCentPoolBins();
const Double_t defaultCentBins[] = {0,100};
if (NofCentBins==0 || CentBins==NULL) {
NofCentBins=1;
CentBins=defaultCentBins;
}
Int_t NofZVrtxBins = cuts->GetNZvtxPoolBins();
const Double_t *ZVrtxBins = cuts->GetZvtxPoolBins();
const Double_t defaultZVrtxBins[] = {-10,10};
if (NofZVrtxBins==0 || ZVrtxBins==NULL) {
NofZVrtxBins=1;
ZVrtxBins=defaultZVrtxBins;
}
Int_t nofEventPropBins =0;
if(fSystem) nofEventPropBins = 100;
if(!fSystem) nofEventPropBins = NofCentBins;
Double_t minvalue = CentBins[0];
Double_t maxvalue = CentBins[NofCentBins];
Double_t Zminvalue = ZVrtxBins[0];
Double_t Zmaxvalue = ZVrtxBins[NofCentBins];
const Double_t Nevents[]={0,2*MaxNofEvents/10,4*MaxNofEvents/10,6*MaxNofEvents/10,8*MaxNofEvents/10,MaxNofEvents};
const Double_t * events = Nevents;
TH3D * EventsPerPoolBin = new TH3D("EventsPerPoolBin","Number of events in bin pool",NofCentBins,CentBins,NofZVrtxBins,ZVrtxBins,5,events);
EventsPerPoolBin->GetXaxis()->SetTitle("Centrality/multiplicity ");
EventsPerPoolBin->GetYaxis()->SetTitle("Z vertex [cm]");
EventsPerPoolBin->GetZaxis()->SetTitle("Number of events in pool bin");
if(fUseEventMixing) AddControlObject(EventsPerPoolBin);
Double_t MaxNofTracks = (MaxNofEvents+1)*MinNofTracks;
Double_t Diff = MaxNofTracks-MinNofTracks;
Double_t Ntracks[]={MinNofTracks,MinNofTracks+Diff/5,MinNofTracks+2*Diff/5,MinNofTracks+3*Diff/5,MinNofTracks+4*Diff/5,MaxNofTracks};
Double_t * trackN = Ntracks;
TH3D * NofTracksPerPoolBin = new TH3D("NofTracksPerPoolBin","Number of tracks in bin pool",NofCentBins,CentBins,NofZVrtxBins,ZVrtxBins,5,trackN);
NofTracksPerPoolBin->GetXaxis()->SetTitle("Centrality/multiplicity ");
NofTracksPerPoolBin->GetYaxis()->SetTitle("Z vertex [cm]");
NofTracksPerPoolBin->GetZaxis()->SetTitle("Number of tracks per bin");
if(fUseEventMixing) AddControlObject(NofTracksPerPoolBin);
TH2D * NofPoolBinCalls = new TH2D("NofPoolBinCalls","Number of tracks in bin pool",NofCentBins,CentBins,NofZVrtxBins,ZVrtxBins);
NofPoolBinCalls->GetXaxis()->SetTitle("Centrality/multiplicity ");
NofPoolBinCalls->GetYaxis()->SetTitle("Z vertex [cm]");
if(fUseEventMixing) AddControlObject(NofPoolBinCalls);
TH2D * EventProps = new TH2D("EventProps","Number of tracks in bin pool",nofEventPropBins,minvalue,maxvalue,100,Zminvalue,Zmaxvalue);
EventProps->GetXaxis()->SetTitle("Centrality/multiplicity ");
EventProps->GetYaxis()->SetTitle("Z vertex [cm]");
if(fUseEventMixing) AddControlObject(EventProps);
return 0;
}
int AliDxHFECorrelation::ParseArguments(const char* arguments)
{
TString strArguments(arguments);
auto_ptr<TObjArray> tokens(strArguments.Tokenize(" "));
if (!tokens.get()) return -ENOMEM;
TIter next(tokens.get());
TObject* token;
while ((token=next())) {
TString argument=token->GetName();
if (argument.BeginsWith("event-mixing")) {
fUseEventMixing=true;
continue;
}
if (argument.BeginsWith("mc") ||
argument.BeginsWith("use-mc")) {
fUseMC=true;
continue;
}
if (argument.BeginsWith("system=")) {
argument.ReplaceAll("system=", "");
if (argument.CompareTo("pp")==0) fSystem=0;
else if (argument.CompareTo("Pb-Pb")==0) fSystem=1;
else {
AliWarning(Form("can not set collision system, unknown parameter '%s'", argument.Data()));
fSystem=0;
}
continue;
}
if (argument.BeginsWith("trigger=")){
argument.ReplaceAll("trigger=", "");
if (argument.CompareTo("D")==0) { fTriggerParticleType=kD; AliInfo("Trigger on D"); }
if (argument.CompareTo("D0")==0) { fTriggerParticleType=kD; AliInfo("Trigger on D");}
else if (argument.CompareTo("electron")==0){ fTriggerParticleType=kElectron; AliInfo("trigger on electron");}
continue;
}
AliWarning(Form("unknown argument '%s'", argument.Data()));
}
return 0;
}
THnSparse* AliDxHFECorrelation::DefineTHnSparse()
{
AliDebug(1, "Creating Corr THnSparse");
static const int sizeEventdphi = 7;
InitTHnSparseArray(sizeEventdphi);
const double pi=TMath::Pi();
int binsEventdphi[sizeEventdphi] = { 200, 1000, 100, 21, 1000, 100, 100};
double minEventdphi [sizeEventdphi] = { 1.5648, 0, 0, 0, 0, fMinPhi, -2};
double maxEventdphi [sizeEventdphi] = { 2.1648, 100, 2*pi, 20, 100, fMaxPhi, 2};
const char* nameEventdphi[sizeEventdphi] = {
"D0InvMass",
"PtD0",
"PhiD0",
"PtBinD0",
"PtEl",
"#Delta#Phi",
"#Delta#eta"
};
TString name;
name.Form("%s info", GetName());
return CreateControlTHnSparse(name,sizeEventdphi,binsEventdphi,minEventdphi,maxEventdphi,nameEventdphi);
}
THnSparse* AliDxHFECorrelation::CreateControlTHnSparse(const char* name,
int thnSize,
int* thnBins,
double* thnMin,
double* thnMax,
const char** binLabels) const
{
AliInfo("Setting up THnSparse");
std::auto_ptr<THnSparseD> th(new THnSparseD(name, name, thnSize, thnBins, thnMin, thnMax));
if (th.get()==NULL) {
return NULL;
}
for (int iLabel=0; iLabel<thnSize; iLabel++) {
th->GetAxis(iLabel)->SetTitle(binLabels[iLabel]);
}
return th.release();
}
int AliDxHFECorrelation::AddControlObject(TObject* pObj)
{
AliInfo("Adding object");
if (!pObj) return -EINVAL;
if (!fControlObjects) {
fControlObjects=new TList;
if (!fControlObjects) return -ENOMEM;
fControlObjects->SetOwner();
}
if (fControlObjects->FindObject(pObj->GetName())) {
AliError(Form("ignoring duplicate object '%s' of type %s", pObj->GetName(), pObj->ClassName()));
return -EEXIST;
}
fControlObjects->Add(pObj);
return 0;
}
int AliDxHFECorrelation::HistogramEventProperties(int bin)
{
if (!fhEventControlCorr) return 0;
fhEventControlCorr->Fill(bin);
return 0;
}
int AliDxHFECorrelation::Fill(const TObjArray* triggerCandidates, const TObjArray* associatedTracks, const AliVEvent* pEvent)
{
if (!triggerCandidates || !associatedTracks) return -EINVAL;
if (!fControlObjects) {
Init();
}
if (!fControlObjects) {
AliError("Initialisation failed, can not fill THnSparse");
return -ENODEV;
}
if (!fCorrelator) {
AliError("working class instance fCorrelator missing");
return -ENODEV;
}
fCorrelator->SetAODEvent(dynamic_cast<AliAODEvent*>(const_cast<AliVEvent*>(pEvent)));
Bool_t correlatorON = fCorrelator->Initialize();
if(!correlatorON) {
AliError("AliHFCorrelator didn't initialize the pool correctly or processed a bad event");
return 1;
}
TIter itrigger(triggerCandidates);
TObject* otrigger=NULL;
int ctrigger=-1;
while ((otrigger=itrigger())!=NULL) {
ctrigger++;
AliReducedParticle* ptrigger=dynamic_cast<AliReducedParticle*>(otrigger);
if (!ptrigger) continue;
Double_t phiTrigger = ptrigger->Phi();
Double_t ptTrigger = ptrigger->Pt();
Double_t etaTrigger = ptrigger->Eta();
phiTrigger = fCorrelator->SetCorrectPhiRange(phiTrigger);
fCorrelator->SetTriggerParticleProperties(ptTrigger,phiTrigger,etaTrigger);
Bool_t execPool = fCorrelator->ProcessEventPool();
if(fUseEventMixing && !execPool) {
AliDebug(1,"Mixed event analysis: pool is not ready");
continue;
}
Int_t NofEventsinPool = 1;
if(fUseEventMixing) NofEventsinPool = fCorrelator->GetNofEventsInPool();
for (Int_t jMix =0; jMix < NofEventsinPool; jMix++){
Bool_t analyzetracks = fCorrelator->ProcessAssociatedTracks(jMix, associatedTracks);
if(!analyzetracks) {
AliError("AliHFCorrelator::Cannot process the track array");
continue;
}
Int_t NofTracks = fCorrelator->GetNofTracks();
for(Int_t iTrack = 0; iTrack<NofTracks; iTrack++){
Bool_t runcorrelation = fCorrelator->Correlate(iTrack);
if(!runcorrelation) continue;
fDeltaPhi = fCorrelator->GetDeltaPhi();
fDeltaEta = fCorrelator->GetDeltaEta();
AliReducedParticle *assoc = fCorrelator->GetAssociatedParticle();
FillParticleProperties(ptrigger,assoc,ParticleProperties(),GetDimTHnSparse());
fCorrProperties->Fill(ParticleProperties());
}
}
}
Bool_t updated = fCorrelator->PoolUpdate(associatedTracks);
if(fUseEventMixing){
if(!updated) AliDebug(1,"Pool was not updated");
else {
EventMixingChecks(pEvent);
AliDebug(1,"Pool was updated");
}
}
return 0;
}
int AliDxHFECorrelation::FillParticleProperties(AliVParticle* tr, AliVParticle *as, Double_t* data, int dimension) const
{
if (!data) return -EINVAL;
AliReducedParticle *ptrigger=(AliReducedParticle*)tr;
AliReducedParticle *assoc=(AliReducedParticle*)as;
if (!ptrigger || !assoc) return -ENODATA;
int i=0;
if (dimension!=GetDimTHnSparse()) {
return -ENOSPC;
}
if(fTriggerParticleType==kD){
data[i++]=ptrigger->GetInvMass();
data[i++]=ptrigger->Pt();
data[i++]=ptrigger->Phi();
data[i++]=ptrigger->GetPtBin();
data[i++]=assoc->Pt();
}
else{
data[i++]=assoc->GetInvMass();
data[i++]=assoc->Pt();
data[i++]=assoc->Phi();
data[i++]=assoc->GetPtBin();
data[i++]=ptrigger->Pt();
}
data[i++]=GetDeltaPhi();
data[i++]=GetDeltaEta();
return i;
}
void AliDxHFECorrelation::Clear(Option_t * )
{
return TObject::Clear();
}
void AliDxHFECorrelation::Print(Option_t *) const
{
cout << "====================================================================" << endl;
TObject::Print();
if (fHistograms) {
fHistograms->Print();
}
}
void AliDxHFECorrelation::Draw(Option_t *)
{
}
TObject* AliDxHFECorrelation::FindObject(const char *name) const
{
if (fControlObjects) {
return fControlObjects->FindObject(name);
}
return NULL;
}
TObject* AliDxHFECorrelation::FindObject(const TObject *obj) const
{
if (fControlObjects) {
return fControlObjects->FindObject(obj);
}
return NULL;
}
void AliDxHFECorrelation::SaveAs(const char *filename, Option_t *) const
{
std::auto_ptr<TFile> output(TFile::Open(filename, "RECREATE"));
if (!output.get() || output->IsZombie()) {
AliError(Form("can not open file %s from writing", filename));
return;
}
output->cd();
if (fControlObjects) fControlObjects->Write();
output->Close();
}
AliDxHFECorrelation& AliDxHFECorrelation::operator+=(const AliDxHFECorrelation& other)
{
if (!fHistograms || !other.fHistograms) return *this;
for (int i=0; i<kNofHistograms; i++) {
if (fHistograms->At(i)==NULL || other.fHistograms->At(i)==NULL) continue;
TH1* target=reinterpret_cast<TH1*>(fHistograms->At(i));
TH1* source=reinterpret_cast<TH1*>(other.fHistograms->At(i));
if (!target || !source) continue;
TString name(fHistograms->At(i)->GetName());
if (name.CompareTo(target->GetName())!=0) {
AliWarning(Form("skipping incompatible objects at position %d: %s vs %s", i, source->GetName(), target->GetName()));
continue;
}
if (source->IsA()!=target->IsA()) {
AliWarning(Form("skipping incompatible classes at position %d: %s vs %s", i, source->ClassName(), target->ClassName()));
continue;
}
target->Add(source);
}
return *this;
}
void AliDxHFECorrelation::EventMixingChecks(const AliVEvent* pEvent){
AliAODEvent *AOD= (AliAODEvent*)(pEvent);
AliCentrality *centralityObj = 0;
Int_t multiplicity = -1;
Double_t MultipOrCent = -1;
if(!fSystem){
multiplicity = AOD->GetNumberOfTracks();
MultipOrCent = multiplicity;
}
if(fSystem){
centralityObj = ((AliVAODHeader*)AOD->GetHeader())->GetCentralityP();
MultipOrCent = centralityObj->GetCentralityPercentileUnchecked("V0M");
AliInfo(Form("Centrality is %f", MultipOrCent));
}
AliAODVertex *vtx = AOD->GetPrimaryVertex();
Double_t zvertex = vtx->GetZ();
AliEventPool *pool = fCorrelator->GetPool();
((TH2D*)fControlObjects->FindObject("NofPoolBinCalls"))->Fill(MultipOrCent,zvertex);
((TH2D*)fControlObjects->FindObject("EventProps"))->Fill(MultipOrCent,zvertex);
((TH3D*)fControlObjects->FindObject("EventsPerPoolBin"))->Fill(MultipOrCent,zvertex,pool->NTracksInPool());
((TH3D*)fControlObjects->FindObject("NofTracksPerPoolBin"))->Fill(MultipOrCent,zvertex,pool->GetCurrentNEvents());
}
AliDxHFECorrelation.cxx:1 AliDxHFECorrelation.cxx:2 AliDxHFECorrelation.cxx:3 AliDxHFECorrelation.cxx:4 AliDxHFECorrelation.cxx:5 AliDxHFECorrelation.cxx:6 AliDxHFECorrelation.cxx:7 AliDxHFECorrelation.cxx:8 AliDxHFECorrelation.cxx:9 AliDxHFECorrelation.cxx:10 AliDxHFECorrelation.cxx:11 AliDxHFECorrelation.cxx:12 AliDxHFECorrelation.cxx:13 AliDxHFECorrelation.cxx:14 AliDxHFECorrelation.cxx:15 AliDxHFECorrelation.cxx:16 AliDxHFECorrelation.cxx:17 AliDxHFECorrelation.cxx:18 AliDxHFECorrelation.cxx:19 AliDxHFECorrelation.cxx:20 AliDxHFECorrelation.cxx:21 AliDxHFECorrelation.cxx:22 AliDxHFECorrelation.cxx:23 AliDxHFECorrelation.cxx:24 AliDxHFECorrelation.cxx:25 AliDxHFECorrelation.cxx:26 AliDxHFECorrelation.cxx:27 AliDxHFECorrelation.cxx:28 AliDxHFECorrelation.cxx:29 AliDxHFECorrelation.cxx:30 AliDxHFECorrelation.cxx:31 AliDxHFECorrelation.cxx:32 AliDxHFECorrelation.cxx:33 AliDxHFECorrelation.cxx:34 AliDxHFECorrelation.cxx:35 AliDxHFECorrelation.cxx:36 AliDxHFECorrelation.cxx:37 AliDxHFECorrelation.cxx:38 AliDxHFECorrelation.cxx:39 AliDxHFECorrelation.cxx:40 AliDxHFECorrelation.cxx:41 AliDxHFECorrelation.cxx:42 AliDxHFECorrelation.cxx:43 AliDxHFECorrelation.cxx:44 AliDxHFECorrelation.cxx:45 AliDxHFECorrelation.cxx:46 AliDxHFECorrelation.cxx:47 AliDxHFECorrelation.cxx:48 AliDxHFECorrelation.cxx:49 AliDxHFECorrelation.cxx:50 AliDxHFECorrelation.cxx:51 AliDxHFECorrelation.cxx:52 AliDxHFECorrelation.cxx:53 AliDxHFECorrelation.cxx:54 AliDxHFECorrelation.cxx:55 AliDxHFECorrelation.cxx:56 AliDxHFECorrelation.cxx:57 AliDxHFECorrelation.cxx:58 AliDxHFECorrelation.cxx:59 AliDxHFECorrelation.cxx:60 AliDxHFECorrelation.cxx:61 AliDxHFECorrelation.cxx:62 AliDxHFECorrelation.cxx:63 AliDxHFECorrelation.cxx:64 AliDxHFECorrelation.cxx:65 AliDxHFECorrelation.cxx:66 AliDxHFECorrelation.cxx:67 AliDxHFECorrelation.cxx:68 AliDxHFECorrelation.cxx:69 AliDxHFECorrelation.cxx:70 AliDxHFECorrelation.cxx:71 AliDxHFECorrelation.cxx:72 AliDxHFECorrelation.cxx:73 AliDxHFECorrelation.cxx:74 AliDxHFECorrelation.cxx:75 AliDxHFECorrelation.cxx:76 AliDxHFECorrelation.cxx:77 AliDxHFECorrelation.cxx:78 AliDxHFECorrelation.cxx:79 AliDxHFECorrelation.cxx:80 AliDxHFECorrelation.cxx:81 AliDxHFECorrelation.cxx:82 AliDxHFECorrelation.cxx:83 AliDxHFECorrelation.cxx:84 AliDxHFECorrelation.cxx:85 AliDxHFECorrelation.cxx:86 AliDxHFECorrelation.cxx:87 AliDxHFECorrelation.cxx:88 AliDxHFECorrelation.cxx:89 AliDxHFECorrelation.cxx:90 AliDxHFECorrelation.cxx:91 AliDxHFECorrelation.cxx:92 AliDxHFECorrelation.cxx:93 AliDxHFECorrelation.cxx:94 AliDxHFECorrelation.cxx:95 AliDxHFECorrelation.cxx:96 AliDxHFECorrelation.cxx:97 AliDxHFECorrelation.cxx:98 AliDxHFECorrelation.cxx:99 AliDxHFECorrelation.cxx:100 AliDxHFECorrelation.cxx:101 AliDxHFECorrelation.cxx:102 AliDxHFECorrelation.cxx:103 AliDxHFECorrelation.cxx:104 AliDxHFECorrelation.cxx:105 AliDxHFECorrelation.cxx:106 AliDxHFECorrelation.cxx:107 AliDxHFECorrelation.cxx:108 AliDxHFECorrelation.cxx:109 AliDxHFECorrelation.cxx:110 AliDxHFECorrelation.cxx:111 AliDxHFECorrelation.cxx:112 AliDxHFECorrelation.cxx:113 AliDxHFECorrelation.cxx:114 AliDxHFECorrelation.cxx:115 AliDxHFECorrelation.cxx:116 AliDxHFECorrelation.cxx:117 AliDxHFECorrelation.cxx:118 AliDxHFECorrelation.cxx:119 AliDxHFECorrelation.cxx:120 AliDxHFECorrelation.cxx:121 AliDxHFECorrelation.cxx:122 AliDxHFECorrelation.cxx:123 AliDxHFECorrelation.cxx:124 AliDxHFECorrelation.cxx:125 AliDxHFECorrelation.cxx:126 AliDxHFECorrelation.cxx:127 AliDxHFECorrelation.cxx:128 AliDxHFECorrelation.cxx:129 AliDxHFECorrelation.cxx:130 AliDxHFECorrelation.cxx:131 AliDxHFECorrelation.cxx:132 AliDxHFECorrelation.cxx:133 AliDxHFECorrelation.cxx:134 AliDxHFECorrelation.cxx:135 AliDxHFECorrelation.cxx:136 AliDxHFECorrelation.cxx:137 AliDxHFECorrelation.cxx:138 AliDxHFECorrelation.cxx:139 AliDxHFECorrelation.cxx:140 AliDxHFECorrelation.cxx:141 AliDxHFECorrelation.cxx:142 AliDxHFECorrelation.cxx:143 AliDxHFECorrelation.cxx:144 AliDxHFECorrelation.cxx:145 AliDxHFECorrelation.cxx:146 AliDxHFECorrelation.cxx:147 AliDxHFECorrelation.cxx:148 AliDxHFECorrelation.cxx:149 AliDxHFECorrelation.cxx:150 AliDxHFECorrelation.cxx:151 AliDxHFECorrelation.cxx:152 AliDxHFECorrelation.cxx:153 AliDxHFECorrelation.cxx:154 AliDxHFECorrelation.cxx:155 AliDxHFECorrelation.cxx:156 AliDxHFECorrelation.cxx:157 AliDxHFECorrelation.cxx:158 AliDxHFECorrelation.cxx:159 AliDxHFECorrelation.cxx:160 AliDxHFECorrelation.cxx:161 AliDxHFECorrelation.cxx:162 AliDxHFECorrelation.cxx:163 AliDxHFECorrelation.cxx:164 AliDxHFECorrelation.cxx:165 AliDxHFECorrelation.cxx:166 AliDxHFECorrelation.cxx:167 AliDxHFECorrelation.cxx:168 AliDxHFECorrelation.cxx:169 AliDxHFECorrelation.cxx:170 AliDxHFECorrelation.cxx:171 AliDxHFECorrelation.cxx:172 AliDxHFECorrelation.cxx:173 AliDxHFECorrelation.cxx:174 AliDxHFECorrelation.cxx:175 AliDxHFECorrelation.cxx:176 AliDxHFECorrelation.cxx:177 AliDxHFECorrelation.cxx:178 AliDxHFECorrelation.cxx:179 AliDxHFECorrelation.cxx:180 AliDxHFECorrelation.cxx:181 AliDxHFECorrelation.cxx:182 AliDxHFECorrelation.cxx:183 AliDxHFECorrelation.cxx:184 AliDxHFECorrelation.cxx:185 AliDxHFECorrelation.cxx:186 AliDxHFECorrelation.cxx:187 AliDxHFECorrelation.cxx:188 AliDxHFECorrelation.cxx:189 AliDxHFECorrelation.cxx:190 AliDxHFECorrelation.cxx:191 AliDxHFECorrelation.cxx:192 AliDxHFECorrelation.cxx:193 AliDxHFECorrelation.cxx:194 AliDxHFECorrelation.cxx:195 AliDxHFECorrelation.cxx:196 AliDxHFECorrelation.cxx:197 AliDxHFECorrelation.cxx:198 AliDxHFECorrelation.cxx:199 AliDxHFECorrelation.cxx:200 AliDxHFECorrelation.cxx:201 AliDxHFECorrelation.cxx:202 AliDxHFECorrelation.cxx:203 AliDxHFECorrelation.cxx:204 AliDxHFECorrelation.cxx:205 AliDxHFECorrelation.cxx:206 AliDxHFECorrelation.cxx:207 AliDxHFECorrelation.cxx:208 AliDxHFECorrelation.cxx:209 AliDxHFECorrelation.cxx:210 AliDxHFECorrelation.cxx:211 AliDxHFECorrelation.cxx:212 AliDxHFECorrelation.cxx:213 AliDxHFECorrelation.cxx:214 AliDxHFECorrelation.cxx:215 AliDxHFECorrelation.cxx:216 AliDxHFECorrelation.cxx:217 AliDxHFECorrelation.cxx:218 AliDxHFECorrelation.cxx:219 AliDxHFECorrelation.cxx:220 AliDxHFECorrelation.cxx:221 AliDxHFECorrelation.cxx:222 AliDxHFECorrelation.cxx:223 AliDxHFECorrelation.cxx:224 AliDxHFECorrelation.cxx:225 AliDxHFECorrelation.cxx:226 AliDxHFECorrelation.cxx:227 AliDxHFECorrelation.cxx:228 AliDxHFECorrelation.cxx:229 AliDxHFECorrelation.cxx:230 AliDxHFECorrelation.cxx:231 AliDxHFECorrelation.cxx:232 AliDxHFECorrelation.cxx:233 AliDxHFECorrelation.cxx:234 AliDxHFECorrelation.cxx:235 AliDxHFECorrelation.cxx:236 AliDxHFECorrelation.cxx:237 AliDxHFECorrelation.cxx:238 AliDxHFECorrelation.cxx:239 AliDxHFECorrelation.cxx:240 AliDxHFECorrelation.cxx:241 AliDxHFECorrelation.cxx:242 AliDxHFECorrelation.cxx:243 AliDxHFECorrelation.cxx:244 AliDxHFECorrelation.cxx:245 AliDxHFECorrelation.cxx:246 AliDxHFECorrelation.cxx:247 AliDxHFECorrelation.cxx:248 AliDxHFECorrelation.cxx:249 AliDxHFECorrelation.cxx:250 AliDxHFECorrelation.cxx:251 AliDxHFECorrelation.cxx:252 AliDxHFECorrelation.cxx:253 AliDxHFECorrelation.cxx:254 AliDxHFECorrelation.cxx:255 AliDxHFECorrelation.cxx:256 AliDxHFECorrelation.cxx:257 AliDxHFECorrelation.cxx:258 AliDxHFECorrelation.cxx:259 AliDxHFECorrelation.cxx:260 AliDxHFECorrelation.cxx:261 AliDxHFECorrelation.cxx:262 AliDxHFECorrelation.cxx:263 AliDxHFECorrelation.cxx:264 AliDxHFECorrelation.cxx:265 AliDxHFECorrelation.cxx:266 AliDxHFECorrelation.cxx:267 AliDxHFECorrelation.cxx:268 AliDxHFECorrelation.cxx:269 AliDxHFECorrelation.cxx:270 AliDxHFECorrelation.cxx:271 AliDxHFECorrelation.cxx:272 AliDxHFECorrelation.cxx:273 AliDxHFECorrelation.cxx:274 AliDxHFECorrelation.cxx:275 AliDxHFECorrelation.cxx:276 AliDxHFECorrelation.cxx:277 AliDxHFECorrelation.cxx:278 AliDxHFECorrelation.cxx:279 AliDxHFECorrelation.cxx:280 AliDxHFECorrelation.cxx:281 AliDxHFECorrelation.cxx:282 AliDxHFECorrelation.cxx:283 AliDxHFECorrelation.cxx:284 AliDxHFECorrelation.cxx:285 AliDxHFECorrelation.cxx:286 AliDxHFECorrelation.cxx:287 AliDxHFECorrelation.cxx:288 AliDxHFECorrelation.cxx:289 AliDxHFECorrelation.cxx:290 AliDxHFECorrelation.cxx:291 AliDxHFECorrelation.cxx:292 AliDxHFECorrelation.cxx:293 AliDxHFECorrelation.cxx:294 AliDxHFECorrelation.cxx:295 AliDxHFECorrelation.cxx:296 AliDxHFECorrelation.cxx:297 AliDxHFECorrelation.cxx:298 AliDxHFECorrelation.cxx:299 AliDxHFECorrelation.cxx:300 AliDxHFECorrelation.cxx:301 AliDxHFECorrelation.cxx:302 AliDxHFECorrelation.cxx:303 AliDxHFECorrelation.cxx:304 AliDxHFECorrelation.cxx:305 AliDxHFECorrelation.cxx:306 AliDxHFECorrelation.cxx:307 AliDxHFECorrelation.cxx:308 AliDxHFECorrelation.cxx:309 AliDxHFECorrelation.cxx:310 AliDxHFECorrelation.cxx:311 AliDxHFECorrelation.cxx:312 AliDxHFECorrelation.cxx:313 AliDxHFECorrelation.cxx:314 AliDxHFECorrelation.cxx:315 AliDxHFECorrelation.cxx:316 AliDxHFECorrelation.cxx:317 AliDxHFECorrelation.cxx:318 AliDxHFECorrelation.cxx:319 AliDxHFECorrelation.cxx:320 AliDxHFECorrelation.cxx:321 AliDxHFECorrelation.cxx:322 AliDxHFECorrelation.cxx:323 AliDxHFECorrelation.cxx:324 AliDxHFECorrelation.cxx:325 AliDxHFECorrelation.cxx:326 AliDxHFECorrelation.cxx:327 AliDxHFECorrelation.cxx:328 AliDxHFECorrelation.cxx:329 AliDxHFECorrelation.cxx:330 AliDxHFECorrelation.cxx:331 AliDxHFECorrelation.cxx:332 AliDxHFECorrelation.cxx:333 AliDxHFECorrelation.cxx:334 AliDxHFECorrelation.cxx:335 AliDxHFECorrelation.cxx:336 AliDxHFECorrelation.cxx:337 AliDxHFECorrelation.cxx:338 AliDxHFECorrelation.cxx:339 AliDxHFECorrelation.cxx:340 AliDxHFECorrelation.cxx:341 AliDxHFECorrelation.cxx:342 AliDxHFECorrelation.cxx:343 AliDxHFECorrelation.cxx:344 AliDxHFECorrelation.cxx:345 AliDxHFECorrelation.cxx:346 AliDxHFECorrelation.cxx:347 AliDxHFECorrelation.cxx:348 AliDxHFECorrelation.cxx:349 AliDxHFECorrelation.cxx:350 AliDxHFECorrelation.cxx:351 AliDxHFECorrelation.cxx:352 AliDxHFECorrelation.cxx:353 AliDxHFECorrelation.cxx:354 AliDxHFECorrelation.cxx:355 AliDxHFECorrelation.cxx:356 AliDxHFECorrelation.cxx:357 AliDxHFECorrelation.cxx:358 AliDxHFECorrelation.cxx:359 AliDxHFECorrelation.cxx:360 AliDxHFECorrelation.cxx:361 AliDxHFECorrelation.cxx:362 AliDxHFECorrelation.cxx:363 AliDxHFECorrelation.cxx:364 AliDxHFECorrelation.cxx:365 AliDxHFECorrelation.cxx:366 AliDxHFECorrelation.cxx:367 AliDxHFECorrelation.cxx:368 AliDxHFECorrelation.cxx:369 AliDxHFECorrelation.cxx:370 AliDxHFECorrelation.cxx:371 AliDxHFECorrelation.cxx:372 AliDxHFECorrelation.cxx:373 AliDxHFECorrelation.cxx:374 AliDxHFECorrelation.cxx:375 AliDxHFECorrelation.cxx:376 AliDxHFECorrelation.cxx:377 AliDxHFECorrelation.cxx:378 AliDxHFECorrelation.cxx:379 AliDxHFECorrelation.cxx:380 AliDxHFECorrelation.cxx:381 AliDxHFECorrelation.cxx:382 AliDxHFECorrelation.cxx:383 AliDxHFECorrelation.cxx:384 AliDxHFECorrelation.cxx:385 AliDxHFECorrelation.cxx:386 AliDxHFECorrelation.cxx:387 AliDxHFECorrelation.cxx:388 AliDxHFECorrelation.cxx:389 AliDxHFECorrelation.cxx:390 AliDxHFECorrelation.cxx:391 AliDxHFECorrelation.cxx:392 AliDxHFECorrelation.cxx:393 AliDxHFECorrelation.cxx:394 AliDxHFECorrelation.cxx:395 AliDxHFECorrelation.cxx:396 AliDxHFECorrelation.cxx:397 AliDxHFECorrelation.cxx:398 AliDxHFECorrelation.cxx:399 AliDxHFECorrelation.cxx:400 AliDxHFECorrelation.cxx:401 AliDxHFECorrelation.cxx:402 AliDxHFECorrelation.cxx:403 AliDxHFECorrelation.cxx:404 AliDxHFECorrelation.cxx:405 AliDxHFECorrelation.cxx:406 AliDxHFECorrelation.cxx:407 AliDxHFECorrelation.cxx:408 AliDxHFECorrelation.cxx:409 AliDxHFECorrelation.cxx:410 AliDxHFECorrelation.cxx:411 AliDxHFECorrelation.cxx:412 AliDxHFECorrelation.cxx:413 AliDxHFECorrelation.cxx:414 AliDxHFECorrelation.cxx:415 AliDxHFECorrelation.cxx:416 AliDxHFECorrelation.cxx:417 AliDxHFECorrelation.cxx:418 AliDxHFECorrelation.cxx:419 AliDxHFECorrelation.cxx:420 AliDxHFECorrelation.cxx:421 AliDxHFECorrelation.cxx:422 AliDxHFECorrelation.cxx:423 AliDxHFECorrelation.cxx:424 AliDxHFECorrelation.cxx:425 AliDxHFECorrelation.cxx:426 AliDxHFECorrelation.cxx:427 AliDxHFECorrelation.cxx:428 AliDxHFECorrelation.cxx:429 AliDxHFECorrelation.cxx:430 AliDxHFECorrelation.cxx:431 AliDxHFECorrelation.cxx:432 AliDxHFECorrelation.cxx:433 AliDxHFECorrelation.cxx:434 AliDxHFECorrelation.cxx:435 AliDxHFECorrelation.cxx:436 AliDxHFECorrelation.cxx:437 AliDxHFECorrelation.cxx:438 AliDxHFECorrelation.cxx:439 AliDxHFECorrelation.cxx:440 AliDxHFECorrelation.cxx:441 AliDxHFECorrelation.cxx:442 AliDxHFECorrelation.cxx:443 AliDxHFECorrelation.cxx:444 AliDxHFECorrelation.cxx:445 AliDxHFECorrelation.cxx:446 AliDxHFECorrelation.cxx:447 AliDxHFECorrelation.cxx:448 AliDxHFECorrelation.cxx:449 AliDxHFECorrelation.cxx:450 AliDxHFECorrelation.cxx:451 AliDxHFECorrelation.cxx:452 AliDxHFECorrelation.cxx:453 AliDxHFECorrelation.cxx:454 AliDxHFECorrelation.cxx:455 AliDxHFECorrelation.cxx:456 AliDxHFECorrelation.cxx:457 AliDxHFECorrelation.cxx:458 AliDxHFECorrelation.cxx:459 AliDxHFECorrelation.cxx:460 AliDxHFECorrelation.cxx:461 AliDxHFECorrelation.cxx:462 AliDxHFECorrelation.cxx:463 AliDxHFECorrelation.cxx:464 AliDxHFECorrelation.cxx:465 AliDxHFECorrelation.cxx:466 AliDxHFECorrelation.cxx:467 AliDxHFECorrelation.cxx:468 AliDxHFECorrelation.cxx:469 AliDxHFECorrelation.cxx:470 AliDxHFECorrelation.cxx:471 AliDxHFECorrelation.cxx:472 AliDxHFECorrelation.cxx:473 AliDxHFECorrelation.cxx:474 AliDxHFECorrelation.cxx:475 AliDxHFECorrelation.cxx:476 AliDxHFECorrelation.cxx:477 AliDxHFECorrelation.cxx:478 AliDxHFECorrelation.cxx:479 AliDxHFECorrelation.cxx:480 AliDxHFECorrelation.cxx:481 AliDxHFECorrelation.cxx:482 AliDxHFECorrelation.cxx:483 AliDxHFECorrelation.cxx:484 AliDxHFECorrelation.cxx:485 AliDxHFECorrelation.cxx:486 AliDxHFECorrelation.cxx:487 AliDxHFECorrelation.cxx:488 AliDxHFECorrelation.cxx:489 AliDxHFECorrelation.cxx:490 AliDxHFECorrelation.cxx:491 AliDxHFECorrelation.cxx:492 AliDxHFECorrelation.cxx:493 AliDxHFECorrelation.cxx:494 AliDxHFECorrelation.cxx:495 AliDxHFECorrelation.cxx:496 AliDxHFECorrelation.cxx:497 AliDxHFECorrelation.cxx:498 AliDxHFECorrelation.cxx:499 AliDxHFECorrelation.cxx:500 AliDxHFECorrelation.cxx:501 AliDxHFECorrelation.cxx:502 AliDxHFECorrelation.cxx:503 AliDxHFECorrelation.cxx:504 AliDxHFECorrelation.cxx:505 AliDxHFECorrelation.cxx:506 AliDxHFECorrelation.cxx:507 AliDxHFECorrelation.cxx:508 AliDxHFECorrelation.cxx:509 AliDxHFECorrelation.cxx:510 AliDxHFECorrelation.cxx:511 AliDxHFECorrelation.cxx:512 AliDxHFECorrelation.cxx:513 AliDxHFECorrelation.cxx:514 AliDxHFECorrelation.cxx:515 AliDxHFECorrelation.cxx:516 AliDxHFECorrelation.cxx:517 AliDxHFECorrelation.cxx:518 AliDxHFECorrelation.cxx:519 AliDxHFECorrelation.cxx:520 AliDxHFECorrelation.cxx:521 AliDxHFECorrelation.cxx:522 AliDxHFECorrelation.cxx:523 AliDxHFECorrelation.cxx:524 AliDxHFECorrelation.cxx:525 AliDxHFECorrelation.cxx:526 AliDxHFECorrelation.cxx:527 AliDxHFECorrelation.cxx:528 AliDxHFECorrelation.cxx:529 AliDxHFECorrelation.cxx:530 AliDxHFECorrelation.cxx:531 AliDxHFECorrelation.cxx:532 AliDxHFECorrelation.cxx:533 AliDxHFECorrelation.cxx:534 AliDxHFECorrelation.cxx:535 AliDxHFECorrelation.cxx:536 AliDxHFECorrelation.cxx:537 AliDxHFECorrelation.cxx:538 AliDxHFECorrelation.cxx:539 AliDxHFECorrelation.cxx:540 AliDxHFECorrelation.cxx:541 AliDxHFECorrelation.cxx:542 AliDxHFECorrelation.cxx:543 AliDxHFECorrelation.cxx:544 AliDxHFECorrelation.cxx:545 AliDxHFECorrelation.cxx:546 AliDxHFECorrelation.cxx:547 AliDxHFECorrelation.cxx:548 AliDxHFECorrelation.cxx:549 AliDxHFECorrelation.cxx:550 AliDxHFECorrelation.cxx:551 AliDxHFECorrelation.cxx:552 AliDxHFECorrelation.cxx:553 AliDxHFECorrelation.cxx:554 AliDxHFECorrelation.cxx:555 AliDxHFECorrelation.cxx:556 AliDxHFECorrelation.cxx:557 AliDxHFECorrelation.cxx:558 AliDxHFECorrelation.cxx:559 AliDxHFECorrelation.cxx:560 AliDxHFECorrelation.cxx:561 AliDxHFECorrelation.cxx:562 AliDxHFECorrelation.cxx:563 AliDxHFECorrelation.cxx:564 AliDxHFECorrelation.cxx:565 AliDxHFECorrelation.cxx:566 AliDxHFECorrelation.cxx:567 AliDxHFECorrelation.cxx:568 AliDxHFECorrelation.cxx:569 AliDxHFECorrelation.cxx:570 AliDxHFECorrelation.cxx:571 AliDxHFECorrelation.cxx:572 AliDxHFECorrelation.cxx:573 AliDxHFECorrelation.cxx:574 AliDxHFECorrelation.cxx:575 AliDxHFECorrelation.cxx:576 AliDxHFECorrelation.cxx:577 AliDxHFECorrelation.cxx:578 AliDxHFECorrelation.cxx:579 AliDxHFECorrelation.cxx:580 AliDxHFECorrelation.cxx:581 AliDxHFECorrelation.cxx:582 AliDxHFECorrelation.cxx:583 AliDxHFECorrelation.cxx:584 AliDxHFECorrelation.cxx:585 AliDxHFECorrelation.cxx:586 AliDxHFECorrelation.cxx:587 AliDxHFECorrelation.cxx:588 AliDxHFECorrelation.cxx:589 AliDxHFECorrelation.cxx:590 AliDxHFECorrelation.cxx:591 AliDxHFECorrelation.cxx:592 AliDxHFECorrelation.cxx:593 AliDxHFECorrelation.cxx:594 AliDxHFECorrelation.cxx:595 AliDxHFECorrelation.cxx:596 AliDxHFECorrelation.cxx:597 AliDxHFECorrelation.cxx:598 AliDxHFECorrelation.cxx:599 AliDxHFECorrelation.cxx:600 AliDxHFECorrelation.cxx:601 AliDxHFECorrelation.cxx:602 AliDxHFECorrelation.cxx:603 AliDxHFECorrelation.cxx:604 AliDxHFECorrelation.cxx:605 AliDxHFECorrelation.cxx:606 AliDxHFECorrelation.cxx:607 AliDxHFECorrelation.cxx:608 AliDxHFECorrelation.cxx:609 AliDxHFECorrelation.cxx:610 AliDxHFECorrelation.cxx:611 AliDxHFECorrelation.cxx:612 AliDxHFECorrelation.cxx:613 AliDxHFECorrelation.cxx:614 AliDxHFECorrelation.cxx:615