ROOT logo
// $Id$

//**************************************************************************
//* This file is property of and copyright by the ALICE Project            * 
//* ALICE Experiment at CERN, All rights reserved.                         *
//*                                                                        *
//* Primary Authors: Matthias Richter <Matthias.Richter@ift.uib.no>        *
//*                  Sedat Altinpinar <Sedat.Altinpinar@cern.ch>           *
//*                  Hege Erdal       <hege.erdal@gmail.com>               *
//*                                                                        *
//* Permission to use, copy, modify and distribute this software and its   *
//* documentation strictly for non-commercial purposes is hereby granted   *
//* without fee, provided that the above copyright notice appears in all   *
//* copies and that both the copyright notice and this permission notice   *
//* appear in the supporting documentation. The authors make no claims     *
//* about the suitability of this software for any purpose. It is          *
//* provided "as is" without express or implied warranty.                  *
//**************************************************************************

/// @file   AliAnalysisTaskDxHFECorrelation.cxx
/// @author Sedat Altinpinar, Hege Erdal, Matthias Richter
/// @date   2012-03-19
/// @brief  AnalysisTask D0 - HFE correlation
///

#include "AliAnalysisTaskDxHFECorrelation.h"
#include "AliDxHFECorrelation.h"
#include "AliDxHFECorrelationMC.h"
#include "AliDxHFEParticleSelectionD0.h"
#include "AliDxHFEParticleSelectionMCD0.h"
#include "AliDxHFEParticleSelectionEl.h"
#include "AliDxHFEParticleSelectionMCEl.h"
#include "AliDxHFEParticleSelection.h"
#include "AliHFCorrelator.h"
#include "AliAnalysisManager.h"
#include "AliLog.h"
#include "AliESDInputHandler.h"
#include "AliAnalysisDataSlot.h"
#include "AliAnalysisDataContainer.h"
#include "AliAnalysisManager.h"
#include "AliVertexerTracks.h"
#include "AliAODHandler.h"
#include "AliInputEventHandler.h"
#include "AliAODEvent.h"
#include "AliAODVertex.h"
#include "AliAODTrack.h"
#include "AliAODMCHeader.h"
#include "AliAODMCParticle.h"
#include "AliAODRecoDecayHF2Prong.h"
#include "AliAODRecoCascadeHF.h"
#include "AliRDHFCutsD0toKpi.h"
#include "AliPID.h"
#include "AliPIDResponse.h"
#include "AliHFEcontainer.h"
#include "AliHFEpid.h"
#include "AliHFEpidBase.h"
#include "AliHFEcuts.h"
#include "AliHFEtools.h"
#include "TObject.h"
#include "TChain.h"
#include "TSystem.h"
#include "AliReducedParticle.h"
#include "AliHFAssociatedTrackCuts.h" // initialization of event pool
#include "TFile.h"
#include <memory>

using namespace std;

/// ROOT macro for the implementation of ROOT specific class methods
ClassImp(AliAnalysisTaskDxHFECorrelation)

AliAnalysisTaskDxHFECorrelation::AliAnalysisTaskDxHFECorrelation(const char* opt)
  : AliAnalysisTaskSE("AliAnalysisTaskDxHFECorrelation")
  , fOutput(0)
  , fOption(opt)
  , fCorrelation(NULL)
  , fD0s(NULL)
  , fElectrons(NULL)
  , fCutsD0(NULL)
  , fCuts(NULL)
  , fUseMC(kFALSE)
  , fUseEventMixing(kFALSE)
  , fSystem(0)
  , fSelectedD0s(NULL)
  , fSelectedElectrons(NULL)
  , fListHFE(NULL)
  , fTriggerParticle(AliDxHFECorrelation::kD)
  , fUseKine(kFALSE)
  , fMCArray(NULL)
  , fCorrelationArguments("")
{
  // constructor
  //
  //
  DefineSlots();
}

int AliAnalysisTaskDxHFECorrelation::DefineSlots()
{
  // define the data slots
  DefineInput(0, TChain::Class());
  DefineOutput(1, TList::Class());
  DefineOutput(2,AliRDHFCutsD0toKpi::Class());
  DefineOutput(3,TList::Class());
  DefineOutput(4,AliHFAssociatedTrackCuts::Class());
  return 0;
}

AliAnalysisTaskDxHFECorrelation::~AliAnalysisTaskDxHFECorrelation()
{
  // destructor
  //
  //

  // histograms are in the output list and deleted when the output
  // list is deleted by the TSelector dtor

  if (fOutput && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) {
    delete fOutput;
    fOutput = 0;
  }
  if (fD0s) delete fD0s;
  fD0s=NULL;
  if (fElectrons) delete fElectrons;
  fElectrons=NULL;
  if (fCorrelation) delete fCorrelation;
  fCorrelation=NULL;
  // external object, do not delete
  fCutsD0=NULL;
  // external object, do not delete
  // TODO: also delete it here? this class is set as owner...
  fListHFE=NULL;
  if(fSelectedElectrons) delete fSelectedElectrons;
  fSelectedElectrons=NULL;
  if(fSelectedD0s) delete fSelectedD0s;
  fSelectedD0s=NULL;
  if(fListHFE) delete fListHFE;
  fListHFE=NULL;
  if(fMCArray) delete fMCArray;
  fMCArray=NULL;


}

void AliAnalysisTaskDxHFECorrelation::UserCreateOutputObjects()
{
  // create result objects and add to output list
  int iResult=0;
  // ParseArguments will also define the strings that are used as input
  // for the particle selection classes and the correlation class

  ParseArguments(fOption.Data());

  fOutput = new TList;
  fOutput->SetOwner();

  // D0s ===============================================
  if(fUseMC) fD0s=new AliDxHFEParticleSelectionMCD0(fOption);
  else fD0s=new AliDxHFEParticleSelectionD0(fOption);
  fD0s->SetCuts(fCutsD0,AliDxHFEParticleSelectionD0::kCutD0);
  iResult=fD0s->Init();
  if (iResult<0) {
    AliFatal(Form("initialization of worker class instance fD0s failed with error %d", iResult));
  }

  //Electrons ============================================
  fListHFE->SetOwner(); // Not sure if needed
  if(fUseMC) fElectrons=new AliDxHFEParticleSelectionMCEl(fOption);
  else fElectrons=new AliDxHFEParticleSelectionEl(fOption);
  fElectrons->SetCuts(fListHFE, AliDxHFEParticleSelectionEl::kCutList);
  iResult=fElectrons->Init();
  if (iResult<0) {
    AliFatal(Form("initialization of worker class instance fElectrons failed with error %d", iResult));
  }

  //Correlation ===========================================
  if(fUseMC) fCorrelation=new AliDxHFECorrelationMC;
  else fCorrelation=new AliDxHFECorrelation;
  fCorrelation->SetCuts(fCuts);
  iResult=fCorrelation->Init(fOption);
  if (iResult<0) {
    AliFatal(Form("initialization of worker class instance fCorrelation failed with error %d", iResult));
  }

  // Fix for merging:
  // Retrieving the individual objects created
  // and storing them instead of fD0s, fElectrons etc.. 
  TList *list =(TList*)fCorrelation->GetControlObjects();
  TObject *obj=NULL;

  TIter next(list);
  while((obj = next())){
    fOutput->Add(obj);
  }

  list=(TList*)fD0s->GetControlObjects();
  next=TIter(list);
  while((obj= next())){
    fOutput->Add(obj);
  }

  list=(TList*)fElectrons->GetControlObjects();
  next=TIter(list);
  while((obj = next()))
    fOutput->Add(obj);

  if (!fCutsD0) {
    AliFatal(Form("cut object for D0 missing"));
    return;
  }
 
  if (!dynamic_cast<AliRDHFCutsD0toKpi*>(fCutsD0)) {
    AliFatal(Form("cut object %s is of incorrect type %s, expecting AliRDHFCutsD0toKpi", fCutsD0->GetName(), fCutsD0->ClassName()));
    return;
  }
  // that's the copy for the output stream
  AliRDHFCutsD0toKpi* copyfCuts=new AliRDHFCutsD0toKpi(dynamic_cast<AliRDHFCutsD0toKpi&>(*fCutsD0));
  const char* nameoutput=GetOutputSlot(2)->GetContainer()->GetName();
  copyfCuts->SetName(nameoutput);

  // all tasks must post data once for all outputs
  PostData(1, fOutput);
  PostData(2,copyfCuts);
  PostData(3,fListHFE);
  PostData(4,fCuts);

}

void AliAnalysisTaskDxHFECorrelation::UserExec(Option_t* /*option*/)
{
  // process the event
  TObject* pInput=InputEvent();
  if (!pInput) {
    AliError("failed to get input");
    return;
  }
  AliVEvent *pEvent = dynamic_cast<AliVEvent*>(pInput);
  TClonesArray *inputArray=0;

  fCorrelation->HistogramEventProperties(AliDxHFECorrelation::kEventsAll);

  if(!pEvent && AODEvent() && IsStandardAOD()) { //Not sure if this is needed.. Keep it for now. 
    // In case there is an AOD handler writing a standard AOD, use the AOD 
    // event in memory rather than the input (ESD) event.    
    pEvent = dynamic_cast<AliAODEvent*> (AODEvent());
    // in this case the braches in the deltaAOD (AliAOD.VertexingHF.root)
    // have to taken from the AOD event hold by the AliAODExtension
    AliAODHandler* aodHandler = (AliAODHandler*) 
      ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
    
    if(aodHandler->GetExtensions()) {
      AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject("AliAOD.VertexingHF.root");
      AliAODEvent* aodFromExt = ext->GetAOD();
      inputArray=(TClonesArray*)aodFromExt->GetList()->FindObject("D0toKpi");
    }
  } else if(pEvent) {
    inputArray=(TClonesArray*)pEvent->GetList()->FindObject("D0toKpi");
  }
  if(!inputArray || !pEvent) {
    AliError("Input branch not found!\n");
    return;
  }
  // fix for temporary bug in ESDfilter
  // the AODs with null vertex pointer didn't pass the PhysSel
  if(!pEvent->GetPrimaryVertex() || TMath::Abs(pEvent->GetMagneticField())<0.001){
    AliDebug(2,"Rejected at GetPrimaryvertex");
    return;
  }

  AliRDHFCuts* cutsd0=dynamic_cast<AliRDHFCuts*>(fCutsD0);
  if (!cutsd0) return; // Fatal thrown already in initialization

  if(!cutsd0->IsEventSelected(pEvent)) {
    // TODO: Fill histograms based on why the event is rejected
    AliDebug(2,"rejected at IsEventSelected");
    return;
  }

  if(fSystem==1){
    // Not really used anywhere, just as a test of centralityselection
    // (Could also be used in histo, so have not removed it)
    AliCentrality *centralityObj = 0;
    Double_t MultipOrCent = -1;
    AliAODEvent* aodEvent=dynamic_cast<AliAODEvent*>(pEvent);
    if (aodEvent) {
      centralityObj = ((AliVAODHeader*)aodEvent->GetHeader())->GetCentralityP();
      if (centralityObj) {
	MultipOrCent = centralityObj->GetCentralityPercentileUnchecked("V0M");
      }
    }
    AliInfo(Form("Centrality is %f", MultipOrCent));
  }

  // Gets the PID response from the analysis manager
  AliPIDResponse *pidResponse = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler())->GetPIDResponse();
  if(!pidResponse){
    // TODO: consider issuing fatal instead of debug in case pidresponse not available
    AliDebug(1, "Using default PID Response");
    pidResponse = AliHFEtools::GetDefaultPID(kFALSE, fInputEvent->IsA() == AliAODEvent::Class()); 
  }
  
  // Fetching the PID objects from the list, checks if the objects are AliHFEpids
  // If so, checks if they are initialized and also sets the pidresponse
  TObject *obj=NULL;
  TIter next(fListHFE);
  while((obj = next())){
    AliHFEpid* pidObj=dynamic_cast<AliHFEpid*>(obj);
    if(pidObj){
      if(!pidObj->IsInitialized()){
	AliWarning("PID not initialised, get from Run no");
	pidObj->InitializePID(pEvent->GetRunNumber());
      }
      pidObj->SetPIDResponse(pidResponse);
    }
  }

  // Also sends the pidresponse to the particle selection class for electron
  fElectrons->SetPIDResponse(pidResponse); 

  // Retrieving process from the AODMCHeader. 
  // TODO: Move it somewhere else? (keep it here for the moment since only need to read once pr event)
  if(fUseMC){
    AliAODMCHeader *mcHeader = dynamic_cast<AliAODMCHeader*>(pEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName()));
    
    if (!mcHeader) {
      AliError("Could not find MC Header in AOD");
      return;
    }
    Int_t eventType = mcHeader->GetEventType();
    fCorrelation->SetEventType(eventType);
    if(fUseKine){
      fMCArray = dynamic_cast<TObjArray*>(pEvent->FindListObject(AliAODMCParticle::StdBranchName()));
      if(fUseMC && !fMCArray){
	AliError("Array of MC particles not found");
	return;
      }
    }
  }

  Int_t nInD0toKpi = inputArray->GetEntriesFast();

  fCorrelation->HistogramEventProperties(AliDxHFECorrelation::kEventsSel);

  Int_t nElSelected=0;
  // Run electron selection first if trigger particle is an electron
  if(fTriggerParticle==AliDxHFECorrelation::kElectron){

    if (fSelectedElectrons) delete fSelectedElectrons;
    // If run on kinematical level, send in MCarray instead of reconstructed tracks
    if(fUseKine) fSelectedElectrons=(fElectrons->Select(fMCArray, pEvent));
    else fSelectedElectrons=(fElectrons->Select(pEvent));
  
    if(! fSelectedElectrons) {
      return;
    }

    nElSelected =  fSelectedElectrons->GetEntriesFast();

    // No need to go further if no electrons are found, except for event mixing. Will here anyway correlate D0s with electrons from previous events
    if(!fUseEventMixing && nElSelected==0){
      AliDebug(4,"No electrons found in this event");
      return;
    }
    // Fill bin with triggered events if electrons are the trigger (only for events with nr electrons >0)
    if(nElSelected>0) fCorrelation->HistogramEventProperties(AliDxHFECorrelation::kEventsTriggered);

  }


  // D0 selection 
  if(fSelectedD0s) delete fSelectedD0s;
  if(fUseKine)  fSelectedD0s=(fD0s->Select(fMCArray,pEvent));
  else fSelectedD0s=(fD0s->Select(inputArray,pEvent));
  
  if(! fSelectedD0s) {
    return;
  }
  Int_t nD0Selected = fSelectedD0s->GetEntriesFast();

  // When not using EventMixing, no need to go further if no D0s are found.
  // For Event Mixing, need to store all found electrons in the pool
  if(!fUseEventMixing && nD0Selected==0){
    AliDebug(4,"No D0s found in this event");
    return;
  }
  //  Run electron selection second if trigger particle is D0
  if(fTriggerParticle!=AliDxHFECorrelation::kElectron){

    // Fill bin with triggered events here if D0 are the trigger (only for events with nr D0 >0)
    if(nD0Selected>0) fCorrelation->HistogramEventProperties(AliDxHFECorrelation::kEventsTriggered);

    if (fSelectedElectrons) delete fSelectedElectrons;

    // If run on kinematical level, send in MCarray instead of reconstructed tracks
    if(fUseKine) fSelectedElectrons=(fElectrons->Select(fMCArray, pEvent));
    else fSelectedElectrons=(fElectrons->Select(pEvent));
    if(! fSelectedElectrons) {
      return;
    }

    nElSelected =  fSelectedElectrons->GetEntriesFast();

    // No need to go further if no electrons are found, except for event mixing. Will here anyway correlate D0s with electrons from previous events
    if(!fUseEventMixing && nElSelected==0){
      AliDebug(4,"No electrons found in this event");
      return;
    }
  }

  // Should not be necessary:
  if(!fUseEventMixing && (nD0Selected==0 && nElSelected==0)){
    AliDebug(4,"Neither D0 nor electrons in this event");
    return;
  }
  
  AliDebug(4,Form("Number of D0->Kpi Start: %d , End: %d    Electrons Selected: %d\n", nInD0toKpi, nD0Selected, nElSelected));

  if(nD0Selected >0 && nElSelected>0) fCorrelation->HistogramEventProperties(AliDxHFECorrelation::kEventsCorrelated);

  int iResult=0;
  if(fTriggerParticle==AliDxHFECorrelation::kD) 
    fCorrelation->Fill(fSelectedD0s, fSelectedElectrons, pEvent);
  else 
    fCorrelation->Fill(fSelectedElectrons, fSelectedD0s, pEvent);

  if (iResult<0) {
    AliFatal(Form("%s processing failed with error %d", fCorrelation->GetName(), iResult));
  }

  PostData(1, fOutput);
  return;

}

int AliAnalysisTaskDxHFECorrelation::ParseArguments(const char* arguments)
{
  // parse arguments and set internal flags
  TString strArguments(arguments);
  auto_ptr<TObjArray> tokens(strArguments.Tokenize(" "));
  if (!tokens.get()) return 0;
  AliInfo(strArguments);
  TIter next(tokens.get());
  TObject* token;
  while ((token=next())) {
    TString argument=token->GetName();
   
    if (argument.BeginsWith("event-mixing")) {
      fUseEventMixing=true;
      AliInfo("Running with Event mixing");
      continue;
    }
      
    if (argument.BeginsWith("mc")) {
      fUseMC=true;
      AliInfo("Running on MC data");
      continue;
    }
    if (argument.BeginsWith("usekine") || argument.BeginsWith("kine")) {
      fUseKine=true;
      AliInfo("Running on MC stack");
      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 if (argument.CompareTo("p-Pb")==0){ fSystem=2;}
      else {
	AliWarning(Form("can not set collision system, unknown parameter '%s'", argument.Data()));
	// TODO: check what makes sense
	fSystem=0;
      }
      continue;
    }
    if (argument.BeginsWith("trigger=")){
      argument.ReplaceAll("trigger=", "");
      if (argument.CompareTo("D0")==0) {fTriggerParticle=AliDxHFECorrelation::kD; AliInfo("CorrTask: trigger on D0");}
      else if (argument.CompareTo("D")==0){ fTriggerParticle=AliDxHFECorrelation::kD; AliInfo("CorrTask: trigger on D0");}
      else if (argument.CompareTo("electron")==0) { fTriggerParticle=AliDxHFECorrelation::kElectron; AliInfo("CorrTask: trigger on electron");}
      continue;
    }
    AliWarning(Form("unknown argument '%s'", argument.Data()));
      
  }

  return 0;
}

void AliAnalysisTaskDxHFECorrelation::FinishTaskOutput()
{
  // end of the processing
}

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