ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2006, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 * *************************************************************************/

/* $Id$ */

//***********************************************************
// Class AliAODPidHF
// class for PID with AliAODRecoDecayHF
// Authors: D. Caffarri caffarri@pd.infn.it, A.Dainese andrea.dainese@pd.infn.it, S. Dash dash@to.infn.it, F. Prino prino@to.infn.it, R. Romita r.romita@gsi.de, Y. Wang yifei@pi0.physi.uni-heidelberg.de P. Antonioli pietro.antonioli@bo.infn.it, J. van der Maarel j.vandermaarel@cern.ch
//***********************************************************
#include <TCanvas.h>
#include <TString.h>
#include <TH1F.h>
#include <TF1.h>
#include <TFile.h>

#include "AliAODPidHF.h"
#include "AliAODPid.h"
#include "AliPID.h"
#include "AliPIDResponse.h"
#include "AliAODpidUtil.h"
#include "AliESDtrack.h"


ClassImp(AliAODPidHF)

//------------------------------
AliAODPidHF::AliAODPidHF():
TObject(),
fnNSigma(5),
fnSigma(0),
fTOFSigma(160.),
fCutTOFmismatch(0.01),
fMinNClustersTPCPID(0),
fnPriors(5),
fPriors(0),
fnPLimit(2),
fPLimit(0),
fAsym(kFALSE),
fTPC(kFALSE),
fTOF(kFALSE),
fITS(kFALSE),
fTRD(kFALSE),
fMatch(0),
fForceTOFforKaons(kFALSE),
fCompat(kFALSE),
fPCompatTOF(1.5),
fUseAsymTOF(kFALSE),
fLownSigmaTOF(-3.),
fUpnSigmaTOF(3.),
fLownSigmaCompatTOF(-3.),
fUpnSigmaCompatTOF(3.),
fnNSigmaCompat(2),
fnSigmaCompat(0),
fMC(kFALSE),
fOnePad(kFALSE),
fMCLowEn2011(kFALSE),
fppLowEn2011(kFALSE),
fPbPb(kFALSE),
fTOFdecide(kFALSE),
fOldPid(kFALSE),
fPtThresholdTPC(999999.),
fMaxTrackMomForCombinedPID(999999.),
fPidResponse(0),
fPidCombined(new AliPIDCombined()),
fTPCResponse(new AliTPCPIDResponse()),
fPriorsH(),
fCombDetectors(kTPCTOF),
fUseCombined(kFALSE),
fDefaultPriors(kTRUE)
{
  //
  // Default constructor
  //
  fPLimit=new Double_t[fnPLimit];
  fnSigma=new Double_t[fnNSigma];
  fPriors=new Double_t[fnPriors];
  fnSigmaCompat=new Double_t[fnNSigmaCompat];
  
  for(Int_t i=0;i<fnNSigma;i++){
    fnSigma[i]=0.;
  }
  for(Int_t i=0;i<fnPriors;i++){
    fPriors[i]=0.;
  }
  for(Int_t i=0;i<fnPLimit;i++){
    fPLimit[i]=0.;
  }
  for(Int_t i=0;i<fnNSigmaCompat;i++){
    fnSigmaCompat[i]=3.;
  }
  for(Int_t i=0; i<3; i++){ // pi, K, proton
    fMaxnSigmaCombined[i]=3.;
    fMinnSigmaTPC[i]=-3;
    fMaxnSigmaTPC[i]=3;
    fMinnSigmaTOF[i]=-3;
    fMaxnSigmaTOF[i]=3;
  }
  for (Int_t s=0;s<AliPID::kSPECIES;s++) {
    for (Int_t d=0;d<4;d++) {
      fIdBandMin[s][d] = NULL;
      fIdBandMax[s][d] = NULL;
      fCompBandMin[s][d] = NULL;
      fCompBandMax[s][d] = NULL;
    }
  }
  
}
//----------------------
AliAODPidHF::~AliAODPidHF()
{
  // destructor
  if(fPLimit) delete [] fPLimit;
  if(fnSigma) delete [] fnSigma;
  if(fPriors) delete [] fPriors;
  if(fnSigmaCompat) delete [] fnSigmaCompat;
  delete fPidCombined;
  
  delete fTPCResponse;
  for (Int_t ispecies=0;ispecies<AliPID::kSPECIES;++ispecies) {
    delete fPriorsH[ispecies];
  }

  for (Int_t s=0;s<AliPID::kSPECIES;s++) {
    for (Int_t d=0;d<4;d++) {
      delete fIdBandMin[s][d];
      delete fIdBandMax[s][d];
      delete fCompBandMin[s][d];
      delete fCompBandMax[s][d];
    }
  }
}
//------------------------
AliAODPidHF::AliAODPidHF(const AliAODPidHF& pid) :
TObject(),
fnNSigma(pid.fnNSigma),
fnSigma(0),
fTOFSigma(pid.fTOFSigma),
fCutTOFmismatch(pid.fCutTOFmismatch),
fMinNClustersTPCPID(pid.fMinNClustersTPCPID),
fnPriors(pid.fnPriors),
fPriors(0),
fnPLimit(pid.fnPLimit),
fPLimit(0),
fAsym(pid.fAsym),
fTPC(pid.fTPC),
fTOF(pid.fTOF),
fITS(pid.fITS),
fTRD(pid.fTRD),
fMatch(pid.fMatch),
fForceTOFforKaons(pid.fForceTOFforKaons),
fCompat(pid.fCompat),
fPCompatTOF(pid.fPCompatTOF),
fUseAsymTOF(pid.fUseAsymTOF),
fLownSigmaTOF(pid.fLownSigmaTOF),
fUpnSigmaTOF(pid.fUpnSigmaTOF),
fLownSigmaCompatTOF(pid.fLownSigmaCompatTOF),
fUpnSigmaCompatTOF(pid.fUpnSigmaCompatTOF),
fnNSigmaCompat(pid.fnNSigmaCompat),
fnSigmaCompat(0x0),
fMC(pid.fMC),
fOnePad(pid.fOnePad),
fMCLowEn2011(pid.fMCLowEn2011),
fppLowEn2011(pid.fppLowEn2011),
fPbPb(pid.fPbPb),
fTOFdecide(pid.fTOFdecide),
fOldPid(pid.fOldPid),
fPtThresholdTPC(pid.fPtThresholdTPC),
fMaxTrackMomForCombinedPID(pid.fMaxTrackMomForCombinedPID),
fPidResponse(0x0),
fPidCombined(0x0),
fTPCResponse(0x0),
fCombDetectors(pid.fCombDetectors),
fUseCombined(pid.fUseCombined),
fDefaultPriors(pid.fDefaultPriors)
{
  
  fnSigmaCompat=new Double_t[fnNSigmaCompat];
  for(Int_t i=0;i<fnNSigmaCompat;i++){
    fnSigmaCompat[i]=pid.fnSigmaCompat[i];
  }
  fnSigma = new Double_t[fnNSigma];
  for(Int_t i=0;i<fnNSigma;i++){
    fnSigma[i]=pid.fnSigma[i];
  }
  fPriors = new Double_t[fnPriors];
  for(Int_t i=0;i<fnPriors;i++){
    fPriors[i]=pid.fPriors[i];
  }
  fPLimit = new Double_t[fnPLimit];
  for(Int_t i=0;i<fnPLimit;i++){
    fPLimit[i]=pid.fPLimit[i];
  }
  fPriors = new Double_t[fnPriors];
  for(Int_t i=0;i<fnPriors;i++){
    fPriors[i]=pid.fPriors[i];
  }
  for(Int_t i=0;i<AliPID::kSPECIES;i++){
    fPriorsH[i]=pid.fPriorsH[i];
  }
  for(Int_t i=0; i<3; i++){ // pi, K, proton
    fMaxnSigmaCombined[i]=pid.fMaxnSigmaCombined[i];
    fMinnSigmaTPC[i]=pid.fMinnSigmaTPC[i];
    fMaxnSigmaTPC[i]=pid.fMaxnSigmaTPC[i];
    fMinnSigmaTOF[i]=pid.fMinnSigmaTOF[i];
    fMaxnSigmaTOF[i]=pid.fMaxnSigmaTOF[i];
  }
  
  //  if(pid.fTPCResponse) fTPCResponse = new AliTPCPIDResponse(*(pid.fTPCResponse));
  fTPCResponse = new AliTPCPIDResponse();
  SetBetheBloch();
  fPidCombined = new AliPIDCombined();
  //fPidResponse = new AliPIDResponse(*(pid.fPidResponse));
  //fPidCombined = new AliPIDCombined(*(pid.fPidCombined));

  //Copy bands
  for (Int_t s=0;s<AliPID::kSPECIES;s++) {
    for (Int_t d=0;d<4;d++) {
      fIdBandMin[s][d]   = pid.fIdBandMin[s][d]   ? new TF1(*pid.fIdBandMin[s][d])   : NULL;
      fIdBandMax[s][d]   = pid.fIdBandMax[s][d]   ? new TF1(*pid.fIdBandMax[s][d])   : NULL;
      fCompBandMin[s][d] = pid.fCompBandMin[s][d] ? new TF1(*pid.fCompBandMin[s][d]) : NULL;
      fCompBandMax[s][d] = pid.fCompBandMax[s][d] ? new TF1(*pid.fCompBandMax[s][d]) : NULL;
    }
  }
  
}
//----------------------
Int_t AliAODPidHF::RawSignalPID(AliAODTrack *track, TString detector) const{
  // raw PID for single detectors, returns the particle type with smaller sigma
  Int_t specie=-1;
  if(detector.Contains("ITS")) return ApplyPidITSRaw(track,specie);
  if(detector.Contains("TPC")) return ApplyPidTPCRaw(track,specie);
  if(detector.Contains("TOF")) return ApplyPidTOFRaw(track,specie);
  
  return specie;
  
}
//---------------------------
Bool_t AliAODPidHF::IsKaonRaw(AliAODTrack *track, TString detector) const{
  // checks if the track can be a kaon, raw PID applied for single detectors
  Int_t specie=0;
  
  if(detector.Contains("ITS")) specie=ApplyPidITSRaw(track,3);
  if(detector.Contains("TPC")) specie=ApplyPidTPCRaw(track,3);
  if(detector.Contains("TOF")) specie=ApplyPidTOFRaw(track,3);
  
  if(specie==3) return kTRUE;
  return kFALSE;
}
//---------------------------
Bool_t AliAODPidHF::IsPionRaw (AliAODTrack *track, TString detector) const{
  // checks if the track can be a pion, raw PID applied for single detectors
  
  Int_t specie=0;
  
  if(detector.Contains("ITS")) specie=ApplyPidITSRaw(track,2);
  if(detector.Contains("TPC")) specie=ApplyPidTPCRaw(track,2);
  if(detector.Contains("TOF")) specie=ApplyPidTOFRaw(track,2);
  
  if(specie==2) return kTRUE;
  return kFALSE;
}
//---------------------------
Bool_t AliAODPidHF::IsProtonRaw (AliAODTrack *track, TString detector) const{
  // checks if the track can be a proton raw PID applied for single detectors
  
  Int_t specie=0;
  if(detector.Contains("ITS")) specie=ApplyPidITSRaw(track,4);
  if(detector.Contains("TPC")) specie=ApplyPidTPCRaw(track,4);
  if(detector.Contains("TOF")) specie=ApplyPidTOFRaw(track,4);
  
  if(specie==4) return kTRUE;
  
  return kFALSE;
}
//--------------------------
Bool_t AliAODPidHF::IsElectronRaw(AliAODTrack *track, TString detector) const{
  // checks if the track can be an electron raw PID applied for single detectors
  
  Int_t specie=-1;
  if(detector.Contains("ITS")) specie=ApplyPidITSRaw(track,0);
  if(detector.Contains("TPC")) specie=ApplyPidTPCRaw(track,0);
  if(detector.Contains("TOF")) specie=ApplyPidTOFRaw(track,0);
  
  if(specie==0) return kTRUE;
  
  return kFALSE;
}
//--------------------------
Int_t AliAODPidHF::ApplyPidTPCRaw(AliAODTrack *track,Int_t specie) const{
  // n-sigma cut, TPC PID
  
  Double_t nsigma=-999.;
  Int_t pid=-1;
  
  if(specie<0){  // from RawSignalPID : should return the particle specie to wich the de/dx is closer to the bethe-block curve -> performance to be checked
    Double_t nsigmaMin=999.;
    for(Int_t ipart=0;ipart<5;ipart++){
      if(GetnSigmaTPC(track,ipart,nsigma)==1){
        nsigma=TMath::Abs(nsigma);
        if((nsigma<nsigmaMin) && (nsigma<fnSigma[0])) {
          pid=ipart;
          nsigmaMin=nsigma;
        }
      }
    }
  }else{ // asks only for one particle specie
    if(GetnSigmaTPC(track,specie,nsigma)==1){
      nsigma=TMath::Abs(nsigma);
      if (nsigma>fnSigma[0]) pid=-1;
      else pid=specie;
    }
  }
  
  return pid;
}
//----------------------------
Int_t AliAODPidHF::ApplyPidITSRaw(AliAODTrack *track,Int_t specie) const{
  // truncated mean, ITS PID
  
  Double_t nsigma=-999.;
  Int_t pid=-1;
  
  if(specie<0){  // from RawSignalPID : should return the particle specie to wich the de/dx is closer to the bethe-block curve -> performance to be checked
    Double_t nsigmaMin=999.;
    for(Int_t ipart=0;ipart<5;ipart++){
      if(GetnSigmaITS(track,ipart,nsigma)==1){
        nsigma=TMath::Abs(nsigma);
        if((nsigma<nsigmaMin) && (nsigma<fnSigma[4])) {
          pid=ipart;
          nsigmaMin=nsigma;
        }
      }
    }
  }else{ // asks only for one particle specie
    if(GetnSigmaITS(track,specie,nsigma)==1){
      nsigma=TMath::Abs(nsigma);
      if (nsigma>fnSigma[4]) pid=-1;
      else pid=specie;
    }
  }
  
  return pid;
}
//----------------------------
Int_t AliAODPidHF::ApplyPidTOFRaw(AliAODTrack *track,Int_t specie) const{
  // n-sigma cut, TOF PID
  
  Double_t nsigma=-999.;
  Int_t pid=-1;
  
  if(specie<0){
    Double_t nsigmaMin=999.;
    for(Int_t ipart=0;ipart<5;ipart++){
      if(GetnSigmaTOF(track,ipart,nsigma)==1){
        nsigma=TMath::Abs(nsigma);
        if((nsigma<nsigmaMin)&& (nsigma<fnSigma[3])){
          pid=ipart;
          nsigmaMin=nsigma;
        }
      }
    }
  }else{ // asks only for one particle specie
    Double_t nSigmaMin,nSigmaMax;
    if(fUseAsymTOF){
      nSigmaMin=fLownSigmaTOF;
      nSigmaMax=fUpnSigmaTOF;
    }else{
      nSigmaMin=-fnSigma[3];
      nSigmaMax=fnSigma[3];
    }
    if(GetnSigmaTOF(track,specie,nsigma)==1){
      if(nsigma<nSigmaMin || nsigma>nSigmaMax) pid=-1;
      else pid=specie;
    }
  }
  return pid;
}
//----------------------------
Int_t AliAODPidHF::ApplyTOFCompatibilityBand(AliAODTrack *track,Int_t specie) const{
  // n-sigma cut, TOF PID
  
  if(specie<0) return -1;
  Double_t nsigma=-999.;
  Int_t pid=-1;
  
  Double_t nSigmaMin,nSigmaMax;
  if(fUseAsymTOF){
    nSigmaMin=fLownSigmaCompatTOF;
    nSigmaMax=fUpnSigmaCompatTOF;
  }else{
    nSigmaMin=-fnSigmaCompat[1];
    nSigmaMax=fnSigmaCompat[1];
  }
  if(GetnSigmaTOF(track,specie,nsigma)==1){
    if(nsigma<nSigmaMin || nsigma>nSigmaMax) pid=-1;
    else pid=specie;
  }
  return pid;
}
//------------------------------
void AliAODPidHF::CombinedProbability(AliAODTrack *track,Bool_t *type) const{
  // combined PID stored inside the AOD track
  
  const Double_t *pid=track->PID();
  Float_t max=0.;
  Int_t k=-1;
  for (Int_t i=0; i<10; i++) {
    if (pid[i]>max) {k=i; max=pid[i];}
  }
  
  if(k==2) type[0]=kTRUE;
  if(k==3) type[1]=kTRUE;
  if(k==4) type[2]=kTRUE;
  
  return;
}
//--------------------------------
Bool_t AliAODPidHF::CheckITSPIDStatus(AliAODTrack *track) const{
  // Check if the track is good for ITS PID
  AliPIDResponse::EDetPidStatus status = fPidResponse->CheckPIDStatus(AliPIDResponse::kITS,track);
  if (status != AliPIDResponse::kDetPidOk) return kFALSE;
  return kTRUE;
}
//--------------------------------
Bool_t AliAODPidHF::CheckTPCPIDStatus(AliAODTrack *track) const{
  // Check if the track is good for TPC PID
  AliPIDResponse::EDetPidStatus status = fPidResponse->CheckPIDStatus(AliPIDResponse::kTPC,track);
  if (status != AliPIDResponse::kDetPidOk) return kFALSE;
  UInt_t nclsTPCPID = track->GetTPCsignalN();
  if(nclsTPCPID<fMinNClustersTPCPID) return kFALSE;
  return kTRUE;
}
//--------------------------------
Bool_t AliAODPidHF::CheckTOFPIDStatus(AliAODTrack *track) const{
  // Check if the track is good for TOF PID
  AliPIDResponse::EDetPidStatus status = fPidResponse->CheckPIDStatus(AliPIDResponse::kTOF,track);
  if (status != AliPIDResponse::kDetPidOk) return kFALSE;
  Float_t probMis = fPidResponse->GetTOFMismatchProbability(track);
  if (probMis > fCutTOFmismatch) return kFALSE;
  if ((track->GetStatus()&AliESDtrack::kTOFpid )==0 &&
      track->GetStatus()&AliESDtrack::kITSrefit )   return kFALSE;
  return kTRUE;
}
//--------------------------------
Bool_t AliAODPidHF::CheckTRDPIDStatus(AliAODTrack *track) const{
  // Check if the track is good for TRD PID
  AliPIDResponse::EDetPidStatus status = fPidResponse->CheckPIDStatus(AliPIDResponse::kTRD,track);
  if (status != AliPIDResponse::kDetPidOk) return kFALSE;
  return kTRUE;
}
//--------------------------------
Bool_t AliAODPidHF::CheckStatus(AliAODTrack *track,TString detectors) const{
  // Quality cuts on the tracks, detector by detector
  if(detectors.Contains("ITS")) return CheckITSPIDStatus(track);
  else if(detectors.Contains("TPC")) return CheckTPCPIDStatus(track);
  else if(detectors.Contains("TOF")) return CheckTOFPIDStatus(track);
  else if(detectors.Contains("TRD")) return CheckTRDPIDStatus(track);
  else{
    AliError("Wrong detector name");
    return kFALSE;
  }
}
//--------------------------------------------
Bool_t AliAODPidHF::TPCRawAsym(AliAODTrack* track,Int_t specie) const{
  // TPC nsigma cut PID, different sigmas in different p bins
  
  AliAODPid *pidObj = track->GetDetPid();
  Double_t mom = pidObj->GetTPCmomentum();
  if(mom>fPtThresholdTPC) return kTRUE;
  
  Double_t nsigma;
  if(GetnSigmaTPC(track,specie,nsigma)!=1) return kFALSE;
  nsigma=TMath::Abs(nsigma);
  
  
  if(mom<fPLimit[0] && nsigma<fnSigma[0]) return kTRUE;
  if(mom<fPLimit[1] && mom>fPLimit[0] && nsigma<fnSigma[1]) return kTRUE;
  if(mom>fPLimit[1] && nsigma<fnSigma[2]) return kTRUE;
  
  return kFALSE;
}
//------------------
Int_t AliAODPidHF::MatchTPCTOF(AliAODTrack *track, Int_t specie){
  // combination of the PID info coming from TPC and TOF
  
  Double_t ptrack=track->P();
  if(ptrack>fMaxTrackMomForCombinedPID) return 1;
  
  Bool_t okTPC=CheckTPCPIDStatus(track);
  if(ptrack>fPtThresholdTPC) okTPC=kFALSE;
  Bool_t okTOF=CheckTOFPIDStatus(track);
  
  if(fMatch==1){
    //TOF || TPC (a la' Andrea R.)
    // convention:
    // for the single detectors: -1 = kFALSE, 1 = kTRUE, 0 = compatible
    // the method returns the sum of the response of the 2 detectors
    
    if(fTPC && fTOF) {
      if(!okTPC && !okTOF) return 0;
    }
    
    Int_t tTPCinfo=0;
    if(fTPC && okTPC){
      tTPCinfo=-1;
      if(fAsym) {
        if(TPCRawAsym(track,specie)) tTPCinfo=1;
      }else{
        if(ApplyPidTPCRaw(track,specie)==specie) tTPCinfo=1;
      }
      if(fCompat && tTPCinfo<0){
        Double_t sig0tmp=fnSigma[0];
        SetSigma(0,fnSigmaCompat[0]);
        if(ApplyPidTPCRaw(track,specie)==specie) tTPCinfo=0;
        SetSigma(0,sig0tmp);
      }
    }
    
    Int_t tTOFinfo=0;
    if(fTOF){
      if(!okTOF && fTPC) return tTPCinfo;
      tTOFinfo=-1;
      if(ApplyPidTOFRaw(track,specie)==specie) tTOFinfo=1;
      if(fCompat && tTOFinfo>0){
        if(ptrack>fPCompatTOF) {
          if(ApplyTOFCompatibilityBand(track,specie)==specie) tTOFinfo=0;
        }
      }
    }
    
    
    if(tTPCinfo+tTOFinfo==0 && fTOFdecide){
      if(!okTOF) return tTPCinfo;
      return tTOFinfo;
    }
    
    if(tTPCinfo+tTOFinfo==0 && fITS){
      if(!CheckITSPIDStatus(track)) return tTPCinfo+tTOFinfo;
      Int_t tITSinfo = -1;
      if(ApplyPidITSRaw(track,specie)==specie) tITSinfo=1;
      return tITSinfo;
    }
    return tTPCinfo+tTOFinfo;
  }
  
  if(fMatch==2){
    //TPC & TOF (a la' Yifei)
    // convention: -1 = kFALSE, 1 = kTRUE, 0 = not identified
    Int_t tTPCinfo=0;
    
    if(fTPC && okTPC) {
      tTPCinfo=1;
      if(fAsym){
        if(!TPCRawAsym(track,specie)) tTPCinfo=-1;
      }else{
        if(ApplyPidTPCRaw(track,specie)!=specie) tTPCinfo=-1;
      }
    }
    
    Int_t tTOFinfo=1;
    if(fTOF){
      if(fTPC && !okTOF) return tTPCinfo;
      if(ApplyPidTPCRaw(track,specie)!=specie) tTOFinfo=-1;
    }
    
    if(tTOFinfo==1 && tTPCinfo==1) return 1;
    
    if(tTPCinfo+tTOFinfo==0 && fITS){
      if(!CheckITSPIDStatus(track)) return tTPCinfo+tTOFinfo;
      Int_t tITSinfo = -1;
      if(ApplyPidITSRaw(track,specie)==specie) tITSinfo=1;
      return tITSinfo;
    }
    return -1;
  }
  
  if(fMatch==3){
    //TPC for p<fPLimit[0], TOF for p>=fPLimit[0] (a la' Andrea A.)
    // convention (temporary): -1 = kFALSE, 1 = kTRUE, 0 = not identified
    if(fTPC && fTOF) if(!okTPC && !okTOF) return 0;
    
    
    Int_t tTPCinfo=-1;
    if(ptrack>=fPLimit[0] && ptrack<fPLimit[1] && fTPC) {
      if(!okTPC) return 0;
      if(fAsym) {
        if(TPCRawAsym(track,specie)) tTPCinfo=1;
      }else{
        if(ApplyPidTPCRaw(track,specie)==specie) tTPCinfo=1;
      }
      return tTPCinfo;
    }
    
    Int_t tTOFinfo=-1;
    if(ptrack>=fPLimit[1] && fTOF){
      if(!okTOF) return 0;
      if(ApplyPidTOFRaw(track,specie)==specie) tTOFinfo=1;
      return tTOFinfo;
    }
    
    Int_t tITSinfo=-1;
    if(ptrack<fPLimit[0] && fITS){
      if(!CheckITSPIDStatus(track)) return 0;
      if(ApplyPidITSRaw(track,specie)==specie) tITSinfo=1;
      return tITSinfo;
    }
  }
  
  if(fMatch==4 || fMatch==5){
    
    // fMatch == 4 ---> "circular cut" in nSigmaTPC, nSimgaTOF plane
    //             ---> nsigmaTPC^2+nsigmaTOF^2 < cut^2
    // fMatch == 5 ---> "rectangular cut" in nSigmaTPC, nsigmaTOF plane
    //             ---> ns1<nSigmaTPC<NS1  && ns2<nSigmaTOF<NS2
    
    Double_t nSigmaTPC=0.;
    if(okTPC) {
      nSigmaTPC=fPidResponse->NumberOfSigmasTPC(track,(AliPID::EParticleType)specie);
      if(nSigmaTPC<-990.) nSigmaTPC=0.;
    }
    Double_t nSigmaTOF=0.;
    if(okTOF) {
      nSigmaTOF=fPidResponse->NumberOfSigmasTOF(track,(AliPID::EParticleType)specie);
    }
    Int_t iPart=specie-2; //species is 2 for pions,3 for kaons and 4 for protons
    if(iPart<0 || iPart>2) return -1;
    if(fMatch==4){
      Double_t nSigma2=nSigmaTPC*nSigmaTPC+nSigmaTOF*nSigmaTOF;
      if(nSigma2<fMaxnSigmaCombined[iPart]*fMaxnSigmaCombined[iPart]) return 1;
      else return -1;
    }
    else if(fMatch==5){
      if(fForceTOFforKaons && iPart==1 && !okTOF) return -1;
      if((nSigmaTPC>fMinnSigmaTPC[iPart] && nSigmaTPC<fMaxnSigmaTPC[iPart]) &&
         (nSigmaTOF>fMinnSigmaTOF[iPart] && nSigmaTOF<fMaxnSigmaTOF[iPart])) return 1;
      else return -1;
    }
  }
  
  //Asymmetric cuts using user defined bands
  if (fMatch == 10) {
    if (fTPC && fTOF && !okTPC && !okTOF) {
      return 0;
    }
    
    Int_t tTPCinfo = 0;
    if (fTPC && okTPC) {
      tTPCinfo = CheckBands((AliPID::EParticleType) specie, AliPIDResponse::kTPC, track);
    }
    
    Int_t tTOFinfo = 0;
    if (fTOF) {
      if (!okTOF && fTPC) {
        return tTPCinfo;
      }
      tTOFinfo = CheckBands((AliPID::EParticleType) specie, AliPIDResponse::kTOF, track);
    }
    
    
    if (tTPCinfo+tTOFinfo == 0 && fTOFdecide) {
      if (!okTOF) {
        return tTPCinfo;
      }
      return tTOFinfo;
    }
    
    if (tTPCinfo+tTOFinfo == 0 && fITS) {
      if (!CheckITSPIDStatus(track)) {
        return tTPCinfo+tTOFinfo;
      }
      Int_t tITSinfo = CheckBands((AliPID::EParticleType) specie, AliPIDResponse::kITS, track);
      return tITSinfo;
    }
    return tTPCinfo+tTOFinfo;
  }

  return -1;
  
}
//----------------------------------
Int_t AliAODPidHF::MakeRawPid(AliAODTrack *track, Int_t specie){
  // general method to compute PID
  if(fMatch>0){
    return MatchTPCTOF(track,specie);
  }else{
    if(fTPC && !fTOF && !fITS) {
      Int_t tTPCres=0;
      if(!fAsym){
        tTPCres=ApplyPidTPCRaw(track,specie);
        if(tTPCres==specie) return 1;
        else return tTPCres;
      }else{
        if(TPCRawAsym(track,specie)) tTPCres=1;
        else tTPCres=-1;
      }
      return tTPCres;
    }else if(fTOF && !fTPC && !fITS) {
      Int_t tTOFres=ApplyPidTOFRaw(track,specie);
      if(tTOFres==specie) return 1;
      else return tTOFres;
    }else if(fITS && !fTPC && !fTOF) {
      Int_t tITSres=ApplyPidITSRaw(track,specie);
      if(tITSres==specie) return 1;
      else return tITSres;
    }else{
      AliError("You should enable just one detector if you don't want to match");
      return 0;
    }
  }
}
//--------------------------------------------
void AliAODPidHF::GetTPCBetheBlochParams(Double_t alephParameters[5]) const {
  // TPC bethe bloch parameters
  if(fMC) {  // MC
    
    if(fPbPb) { // PbPb MC
      
      alephParameters[0] = 1.44405/50.;
      alephParameters[1] = 2.35409e+01;
      alephParameters[2] = TMath::Exp(-2.90330e+01);
      alephParameters[3] = 2.10681e+00;
      alephParameters[4] = 4.62254e+00;
      
    } else {  // pp MC
      if(fMCLowEn2011){
        alephParameters[0]=0.0207667;
        alephParameters[1]=29.9936;
        alephParameters[2]=3.87866e-11;
        alephParameters[3]=2.17291;
        alephParameters[4]=7.1623;
      }else if(fOnePad){
        alephParameters[0]=0.029021;
        alephParameters[1]=25.4181;
        alephParameters[2]=4.66596e-08;
        alephParameters[3]=1.90008;
        alephParameters[4]=4.63783;
      }else{
        alephParameters[0] = 2.15898/50.;
        alephParameters[1] = 1.75295e+01;
        alephParameters[2] = 3.40030e-09;
        alephParameters[3] = 1.96178e+00;
        alephParameters[4] = 3.91720e+00;
      }
    }
    
  } else { // Real Data
    
    if(fOnePad) { // pp 1-pad (since LHC10d)
      
      alephParameters[0] =1.34490e+00/50.;
      alephParameters[1] = 2.69455e+01;
      alephParameters[2] = TMath::Exp(-2.97552e+01);
      alephParameters[3] = 2.35339e+00;
      alephParameters[4] = 5.98079e+00;
      
    } else if(fPbPb) { // PbPb
      
      // alephParameters[0] = 1.25202/50.;
      // alephParameters[1] = 2.74992e+01;
      // alephParameters[2] = TMath::Exp(-3.31517e+01);
      // alephParameters[3] = 2.46246;
      // alephParameters[4] = 6.78938;
      
      alephParameters[0] = 5.10207e+00/50.;
      alephParameters[1] = 7.94982e+00;
      alephParameters[2] = TMath::Exp(-9.07942e+00);
      alephParameters[3] = 2.38808e+00;
      alephParameters[4] = 1.68165e+00;
      
    } else if(fppLowEn2011){ // pp low energy
      
      alephParameters[0]=0.031642;
      alephParameters[1]=22.353;
      alephParameters[2]=4.16239e-12;
      alephParameters[3]=2.61952;
      alephParameters[4]=5.76086;
      
    } else {  // pp no 1-pad (LHC10bc)
      
      alephParameters[0] = 0.0283086/0.97;
      alephParameters[1] = 2.63394e+01;
      alephParameters[2] = 5.04114e-11;
      alephParameters[3] = 2.12543e+00;
      alephParameters[4] = 4.88663e+00;
      
    }
    
  }
  
}

//-----------------------
void AliAODPidHF::SetBetheBloch() {
  // Set Bethe Bloch Parameters
  
  Double_t alephParameters[5];
  GetTPCBetheBlochParams(alephParameters);
  fTPCResponse->SetBetheBlochParameters(alephParameters[0],alephParameters[1],alephParameters[2],alephParameters[3],alephParameters[4]);
  
  return;
}


//--------------------------------------------------------------------------
Int_t AliAODPidHF::GetnSigmaITS(AliAODTrack *track,Int_t species, Double_t &nsigma) const{
  // get n sigma for ITS
  
  
  if (!CheckITSPIDStatus(track)) return -1;
  
  Double_t nsigmaITS=-999;
  
  if (fOldPid) {
    Double_t mom=track->P();
    AliAODPid *pidObj = track->GetDetPid();
    Double_t dedx=pidObj->GetITSsignal();
    
    AliITSPIDResponse itsResponse;
    AliPID::EParticleType type=AliPID::EParticleType(species);
    nsigmaITS = itsResponse.GetNumberOfSigmas(mom,dedx,type);
    
  } // old pid
  else { // new pid
    
    AliPID::EParticleType type=AliPID::EParticleType(species);
    nsigmaITS = fPidResponse->NumberOfSigmasITS(track,type);
    
  } //new pid
  
  nsigma = nsigmaITS;
  
  return 1;
  
}
//--------------------------------------------------------------------------
Int_t AliAODPidHF::GetnSigmaTPC(AliAODTrack *track, Int_t species, Double_t &nsigma) const{
  // get n sigma for TPC
  
  if(!CheckTPCPIDStatus(track)) return -1;
  
  Double_t nsigmaTPC=-999;
  
  if(fOldPid){
    AliAODPid *pidObj = track->GetDetPid();
    Double_t dedx=pidObj->GetTPCsignal();
    Double_t mom = pidObj->GetTPCmomentum();
    if(mom>fPtThresholdTPC) return -2;
    UShort_t nTPCClus=pidObj->GetTPCsignalN();
    if(nTPCClus==0) {nTPCClus=track->GetTPCNcls();}
    AliPID::EParticleType type=AliPID::EParticleType(species);
    nsigmaTPC = fTPCResponse->GetNumberOfSigmas(mom,dedx,nTPCClus,type);
    nsigma=nsigmaTPC;
  } else{
    if(!fPidResponse) return -1;
    AliPID::EParticleType type=AliPID::EParticleType(species);
    nsigmaTPC = fPidResponse->NumberOfSigmasTPC(track,type);
    nsigma=nsigmaTPC;
  }
  return 1;
}

//-----------------------------

Int_t AliAODPidHF::GetnSigmaTOF(AliAODTrack *track,Int_t species, Double_t &nsigma) const{
  // get n sigma for TOF
  
  if(!CheckTOFPIDStatus(track)) return -1;
  
  if(fPidResponse){
    nsigma = fPidResponse->NumberOfSigmasTOF(track,(AliPID::EParticleType)species);
    return 1;
  }else{
    AliFatal("To use TOF PID you need to attach AliPIDResponseTask");
    nsigma=-999.;
    return -1;
  }
}

//-----------------------
Bool_t AliAODPidHF::IsExcluded(AliAODTrack *track, Int_t labelTrack, Double_t nsigmaCut, TString detectors) {
  // Exclude a given hypothesis (labelTracks) in detector
  
  if (detectors.Contains("ITS")) {
    
    AliInfo("Nothing to be done");
    /*
     Double_t nsigma=0.;
     if (GetnSigmaITS(track,labelTrack,nsigma)==1){
     if(nsigma>nsigmaCut) return kTRUE;
     }
     */
    return kFALSE;
    
  } else if (detectors.Contains("TPC")) {
    
    Double_t nsigma=0.;
    if (GetnSigmaTPC(track,labelTrack,nsigma)==1){
      if(nsigma>nsigmaCut) return kTRUE;
    }
    return kFALSE;
    
  } else if (detectors.Contains("TOF")) {
    
    Double_t nsigma=0.;
    if (GetnSigmaTOF(track,labelTrack,nsigma)==1){
      if(nsigma>nsigmaCut) return kTRUE;
    }
    return kFALSE;
    
  }
  return kFALSE;
  
}
//-----------------------
Bool_t AliAODPidHF::IsTOFPiKexcluded(AliAODTrack *track,Double_t nsigmaK){
  // TOF proton compatibility
  
  if(!CheckTOFPIDStatus(track)) return 0;
  
  Double_t nsigma;
  if(GetnSigmaTOF(track,3,nsigma)==1){
    if(nsigma>nsigmaK) return kTRUE;
  }
  return kFALSE;
  /*  Double_t time[AliPID::kSPECIESN];
   Double_t sigmaTOFPid[AliPID::kSPECIES];
   AliAODPid *pidObj = track->GetDetPid();
   pidObj->GetIntegratedTimes(time);
   Double_t sigTOF=pidObj->GetTOFsignal();
   
   AliAODEvent *event=(AliAODEvent*)track->GetAODEvent();
   if (event) {
   AliTOFHeader* tofH=(AliTOFHeader*)event->GetTOFHeader();
   if (tofH && fPidResponse) {
   AliTOFPIDResponse TOFres = (AliTOFPIDResponse)fPidResponse->GetTOFResponse();
   sigTOF -= TOFres.GetStartTime(track->P());
   sigmaTOFPid[3]=TOFres.GetExpectedSigma(track->P(),time[3],AliPID::ParticleMass(3));
   }
   else  pidObj->GetTOFpidResolution(sigmaTOFPid);
   } else  pidObj->GetTOFpidResolution(sigmaTOFPid);
   Double_t sigmaTOFtrack;
   if (sigmaTOFPid[3]>0) sigmaTOFtrack=sigmaTOFPid[3];
   else sigmaTOFtrack=fTOFSigma;  // backward compatibility for old AODs
   
   if((sigTOF-time[3])>nsigmaK*sigmaTOFtrack)return kTRUE;// K, Pi excluded (->LIKELY A PROTON)
   
   return kFALSE;
   */
}

//--------------------------------------------------------------------------
void AliAODPidHF::SetPriorDistribution(AliPID::EParticleType type,TH1F *prior){
  
	//
	// method setting the prior distributions to the AliPIDCombined object of the AliAODPidHF data member
	// all the checks are done directly in the AliPIDCombined object
	//
  
	GetPidCombined()->SetPriorDistribution(type,prior);
}
//--------------------------------------------------------------------------
void AliAODPidHF::DrawPrior(AliPID::EParticleType type){
  
	//
	// Drawing prior distribution for type "type"
  
	new TCanvas();
	GetPidCombined()->GetPriorDistribution(type)->Draw();
}

//-----------------------------
void AliAODPidHF::SetPriorsHistos(TString priorFileName){
  // Set histograms with priors
  
  for (Int_t ispecies=0;ispecies<AliPID::kSPECIES;++ispecies) {
    if(fPriorsH[ispecies]) delete fPriorsH[ispecies];
    TString nt ="name";
    nt+="_prior_";
    nt+=AliPID::ParticleName(ispecies);
  }
  TDirectory *current = gDirectory;
  TFile *priorFile=TFile::Open(priorFileName);
  if (priorFile) {
    TH1F* h3=static_cast<TH1F*>(priorFile->Get("priors3step9"));
    TH1F* h2=static_cast<TH1F*>(priorFile->Get("priors2step9"));
    TH1F* h1=static_cast<TH1F*>(priorFile->Get("priors1step9"));
    current->cd();
    fPriorsH[AliPID::kProton] = new TH1F(*h3);
    fPriorsH[AliPID::kKaon  ] = new TH1F(*h2);
    fPriorsH[AliPID::kPion  ] = new TH1F(*h1);
    priorFile->Close();
    delete priorFile;
    TF1 *salt=new TF1("salt","1.e-10",0,10);
    fPriorsH[AliPID::kProton]->Add(salt);
    fPriorsH[AliPID::kKaon  ]->Add(salt);
    fPriorsH[AliPID::kPion  ]->Add(salt);
    delete salt;
  }
}
//----------------------------------
void AliAODPidHF::SetUpCombinedPID(){
  // Configuration of combined Bayesian PID
  
  fPidCombined->SetSelectedSpecies(AliPID::kSPECIES);
  if(!fDefaultPriors){
  	for (Int_t ispecies=0;ispecies<AliPID::kSPECIES;++ispecies) {
    	fPidCombined->SetPriorDistribution(static_cast<AliPID::EParticleType>(ispecies),fPriorsH[ispecies]);
  	}
  }else{
  	fPidCombined->SetDefaultTPCPriors();
  }
  switch (fCombDetectors){
    case kTPCTOF:
      fPidCombined->SetDetectorMask(AliPIDResponse::kDetTPC|AliPIDResponse::kDetTOF);
      break;
    case kTPCITS:
      fPidCombined->SetDetectorMask(AliPIDResponse::kDetTPC|AliPIDResponse::kDetITS);
      break;
    case kTPC:
      fPidCombined->SetDetectorMask(AliPIDResponse::kDetTPC);
      break;
    case kTOF:
      fPidCombined->SetDetectorMask(AliPIDResponse::kDetTOF);
      break;
  }
}


//-----------------------------
void AliAODPidHF::PrintAll() const {
  // print the configuration
  printf("Detectors used for PID: ");
  if(fITS) printf("ITS ");
  if(fTPC) printf("TPC ");
  if(fTRD) printf("TRD ");
  if(fTOF) printf("TOF ");
  printf("\n");
  printf("Minimum TPC PID clusters = %d\n",fMinNClustersTPCPID);
  printf("Maximum momentum for using TPC PID = %f\n",fPtThresholdTPC);
  printf("TOF Mismatch probablility cut = %f\n",fCutTOFmismatch);
  printf("Maximum momentum for combined PID TPC PID = %f\n",fMaxTrackMomForCombinedPID);
  if(fOldPid){
    printf("Use OLD PID");
    printf("  fMC = %d\n",fMC);
    printf("  fPbPb = %d\n",fPbPb);
    printf("  fOnePad = %d\n",fOnePad);
    printf("  fMCLowEn2011 = %d\n",fMCLowEn2011);
    printf("  fppLowEn2011 = %d\n",fppLowEn2011);
  }
  printf("--- Matching algorithm = %d ---\n",fMatch);
  if(fMatch==1){
    if(fITS) printf("nSigmaITS = %.2f\n",fnSigma[4]);
    if(fTOF){
      printf("nSigmaTOF = %.2f\n",fnSigma[3]);
      if(fCompat) printf("Compatibility band at nSigmaTOF=%.2f for p>%.2f\n",fnSigmaCompat[1],fPCompatTOF);
    }
    if(fTPC){
      if(fAsym){
        printf("nSigmaTPC:\n");
        printf("   pt<%.2f      \t nsigmaTPC= %.2f\n",fPLimit[0],fnSigma[0]);
        printf("   %.2f<pt<%.2f \t nsigmaTPC= %.2f\n",fPLimit[0],fPLimit[1],fnSigma[1]);
        printf("   pt>%.2f      \t nsigmaTPC= %.2f\n",fPLimit[1],fnSigma[2]);
      }else{
        printf("nSigmaTPC = %.2f\n",fnSigma[0]);
      }
      if(fCompat) printf("Compatibility band at nSigmaTPC=%.2f\n",fnSigmaCompat[0]);
    }
  }else if(fMatch==4){
    printf("Cuts on sqrt(nSigmaTPC^2+nSigmaTOF^2):\n");
    printf(" Pions:   nSigma = %.2f\n",fMaxnSigmaCombined[0]);
    printf(" Kaons:   nSigma = %.2f\n",fMaxnSigmaCombined[1]);
    printf(" Protons: nSigma = %.2f\n",fMaxnSigmaCombined[2]);
  }else if(fMatch==5){
    printf("nSigma ranges:\n");
    printf(" Pions:   %.2f<nSigmaTPC<%.2f   %.2f<nSigmaTOF<%.2f\n",
           fMinnSigmaTPC[0],fMaxnSigmaTPC[0],fMinnSigmaTOF[0],fMaxnSigmaTOF[0]);
    printf(" Kaons:   %.2f<nSigmaTPC<%.2f   %.2f<nSigmaTOF<%.2f\n",
           fMinnSigmaTPC[1],fMaxnSigmaTPC[1],fMinnSigmaTOF[1],fMaxnSigmaTOF[1]);
    printf(" Protons: %.2f<nSigmaTPC<%.2f   %.2f<nSigmaTOF<%.2f\n",
           fMinnSigmaTPC[2],fMaxnSigmaTPC[2],fMinnSigmaTOF[2],fMaxnSigmaTOF[2]);
  } else if (fMatch == 10) {
    printf("Asymmetric PID using identification/compatibility bands as a function of track momentum p\n");
    printf("The following bands are set:\n");
    TString species[] = {"electron", "muon", "pion", "kaon", "proton"};
    TString detectors[] = {"ITS", "TPC", "TRD", "TOF"};
    for (Int_t s=0;s<AliPID::kSPECIES;s++) {
      for (Int_t d=0;d<4;d++) {
        if (fIdBandMin[s][d] && fIdBandMax[s][d]) {
          printf("  Identification band %s %s\n", species[s].Data(), detectors[d].Data());
        }
        if (fCompBandMin[s][d] && fCompBandMax[s][d]) {
          printf("  Compatibility band %s %s\n", species[s].Data(), detectors[d].Data());
        }
      }
    }
  }
}

//------------------
void AliAODPidHF::SetIdBand(AliPID::EParticleType specie, AliPIDResponse::EDetector detector, TH1F *min, TH1F *max) {
  int spe = (int) specie;
  int det = (int) detector;

  if (spe >= AliPID::kSPECIES || det > 3 || !min || !max) {
    AliError("Identification band not set");
    return;
  }

  TAxis *axis;
  HistFunc *histFunc;

  axis = min->GetXaxis();
  histFunc = new HistFunc(min);
  TF1 *minFunc = new TF1(Form("IdMin_%d_%d", spe, det), histFunc, axis->GetBinLowEdge(axis->GetFirst()), axis->GetBinUpEdge(axis->GetLast()), 0, "HistFunc");

  axis = max->GetXaxis();
  histFunc = new HistFunc(max);
  TF1 *maxFunc = new TF1(Form("IdMax_%d_%d", spe, det), histFunc, axis->GetBinLowEdge(axis->GetFirst()), axis->GetBinUpEdge(axis->GetLast()), 0, "HistFunc");

  SetIdBand(specie, detector, minFunc, maxFunc);
}

//------------------
void AliAODPidHF::SetIdBand(AliPID::EParticleType specie, AliPIDResponse::EDetector detector, TF1 *min, TF1 *max) {
  int spe = (int) specie;
  int det = (int) detector;

  if (spe >= AliPID::kSPECIES || det > 3 || !min || !max) {
    AliError("Identification band not set");
    return;
  }

  if (fIdBandMin[spe][det]) {
    delete fIdBandMin[spe][det];
  }
  fIdBandMin[spe][det] = new TF1(*min);

  if (fIdBandMax[spe][det]) {
    delete fIdBandMax[spe][det];
  }
  fIdBandMax[spe][det] = new TF1(*max);
}

//------------------
void AliAODPidHF::SetCompBand(AliPID::EParticleType specie, AliPIDResponse::EDetector detector, TH1F *min, TH1F *max) {
  int spe = (int) specie;
  int det = (int) detector;

  if (spe >= AliPID::kSPECIES || det > 3 || !min || !max) {
    AliError("Compatibility band not set");
    return;
  }

  TAxis *axis;
  HistFunc *histFunc;

  axis = min->GetXaxis();
  histFunc = new HistFunc(min);
  TF1 *minFunc = new TF1(Form("CompMin_%d_%d", spe, det), histFunc, axis->GetBinLowEdge(axis->GetFirst()), axis->GetBinUpEdge(axis->GetLast()), 0, "HistFunc");

  axis = max->GetXaxis();
  histFunc = new HistFunc(max);
  TF1 *maxFunc = new TF1(Form("CompMax_%d_%d", spe, det), histFunc, axis->GetBinLowEdge(axis->GetFirst()), axis->GetBinUpEdge(axis->GetLast()), 0, "HistFunc");

  SetCompBand(specie, detector, minFunc, maxFunc);
}

//------------------
void AliAODPidHF::SetCompBand(AliPID::EParticleType specie, AliPIDResponse::EDetector detector, TF1 *min, TF1 *max) {
  int spe = (int) specie;
  int det = (int) detector;

  if (spe >= AliPID::kSPECIES || det > 3 || !min || !max) {
    AliError("Compatibility band not set");
    return;
  }

  if (fCompBandMin[spe][det]) {
    delete fCompBandMin[spe][det];
  }
  fCompBandMin[spe][det] = new TF1(*min);

  if (fCompBandMax[spe][det]) {
    delete fCompBandMax[spe][det];
  }
  fCompBandMax[spe][det] = new TF1(*max);
}

//------------------
Bool_t AliAODPidHF::CheckDetectorPIDStatus(AliPIDResponse::EDetector detector, AliAODTrack* track) {
  switch (detector) {
    case AliPIDResponse::kITS:
      return CheckITSPIDStatus(track);
      break;
    case AliPIDResponse::kTPC:
      return CheckTPCPIDStatus(track);
      break;
    case AliPIDResponse::kTRD:
      return CheckTRDPIDStatus(track);
      break;
    case AliPIDResponse::kTOF:
      return CheckTOFPIDStatus(track);
      break;
    default:
      return kFALSE;
      break;
  }
}

//------------------
Float_t AliAODPidHF::NumberOfSigmas(AliPID::EParticleType specie, AliPIDResponse::EDetector detector, AliAODTrack *track) {
  switch (detector) {
    case AliPIDResponse::kITS:
      return fPidResponse->NumberOfSigmasITS(track, specie);
      break;
    case AliPIDResponse::kTPC:
      return fPidResponse->NumberOfSigmasTPC(track, specie);
      break;
    case AliPIDResponse::kTOF:
      return fPidResponse->NumberOfSigmasTOF(track, specie);
      break;
    default:
      return -999.;
      break;
  }
}

//------------------
Int_t AliAODPidHF::CheckBands(AliPID::EParticleType specie, AliPIDResponse::EDetector detector, AliAODTrack *track) {
  //Return: -1 for no match, 0 for comp. band and 1 for id band

  Int_t spe = (Int_t) specie;
  Int_t det = (Int_t) detector;

  if (!fPidResponse || spe >= AliPID::kSPECIES) {
    return -1;
  }

  if (!CheckDetectorPIDStatus(detector, track)) {
    return 1;
  }

  double P = track->P();

  Float_t nSigma = NumberOfSigmas(specie, detector, track);
  Float_t minContent, maxContent;

  //Check if within identification band, return 1
  TF1 *IdBandMin = fIdBandMin[spe][det];
  TF1 *IdBandMax = fIdBandMax[spe][det];

  if (IdBandMin && IdBandMax) {
    minContent = IdBandMin->Eval(P);
    maxContent = IdBandMax->Eval(P);
    if ((minContent == 0 || nSigma >= minContent) && (maxContent == 0 || nSigma <= maxContent)) {
      return 1;
    }
  }

  //Check if within compatibility band, return 0
  TF1 *CompBandMin = fCompBandMin[spe][det];
  TF1 *CompBandMax = fCompBandMax[spe][det];

  if (CompBandMin && CompBandMax) {
    minContent = CompBandMin->Eval(P);
    maxContent = CompBandMax->Eval(P);
    if ((minContent == 0 || nSigma >= minContent) && (maxContent == 0 || nSigma <= maxContent)) {
      return 0;
    }
  }

  //No bands set: don't perform PID
  if (!IdBandMin && !IdBandMax && !CompBandMin && !CompBandMax) {
    AliWarning(Form("No identification & compatibility band set for specie=%d detector=%d", spe, det));
    return 1;
  }

  //Otherwise, return -1
  return -1;
}

//------------------
void AliAODPidHF::SetShiftedAsymmetricPID() {
  SetMatch(10);
  SetTPC(kTRUE);
  SetTOF(kTRUE);

  //TPC K: shift by -0.2
  TF1 *TPCCompBandMinK = new TF1("TPCCompBandMinK", "[0]", 0.3, 4); TPCCompBandMinK->SetParameter(0, -3.2);
  TF1 *TPCCompBandMaxK = new TF1("TPCCompBandMaxK", "[0]", 0.3, 4); TPCCompBandMaxK->SetParameter(0, 2.8);
  SetCompBand(AliPID::kKaon, AliPIDResponse::kTPC, TPCCompBandMinK, TPCCompBandMaxK);

  TF1 *TPCIdBandMinK = new TF1("TPCIdBandMinK", "[0]", 0.3, 4); TPCIdBandMinK->SetParameter(0, -2.2);
  TF1 *TPCIdBandMaxK = new TF1("TPCIdBandMaxK", "[0]", 0.3, 4); TPCIdBandMaxK->SetParameter(0, 1.8);
  SetIdBand(AliPID::kKaon, AliPIDResponse::kTPC, TPCIdBandMinK, TPCIdBandMaxK);

  //TPC pi: shift by -0.14
  TF1 *TPCCompBandMinPi = new TF1("TPCCompBandMinPi", "[0]", 0.3, 4); TPCCompBandMinPi->SetParameter(0, -3.14);
  TF1 *TPCCompBandMaxPi = new TF1("TPCCompBandMaxPi", "[0]", 0.3, 4); TPCCompBandMaxPi->SetParameter(0, 2.86);
  SetCompBand(AliPID::kPion, AliPIDResponse::kTPC, TPCCompBandMinPi, TPCCompBandMaxPi);

  TF1 *TPCIdBandMinPi = new TF1("TPCIdBandMinPi", "[0]", 0.3, 4); TPCIdBandMinPi->SetParameter(0, -2.14);
  TF1 *TPCIdBandMaxPi = new TF1("TPCIdBandMaxPi", "[0]", 0.3, 4); TPCIdBandMaxPi->SetParameter(0, 1.86);
  SetIdBand(AliPID::kPion, AliPIDResponse::kTPC, TPCIdBandMinPi, TPCIdBandMaxPi);

  //TOF K: shift by -0.1
  TF1 *TOFCompBandMinK = new TF1("TOFCompBandMinK", "[0]", 2, 50); TOFCompBandMinK->SetParameter(0, -3.1);
  TF1 *TOFCompBandMaxK = new TF1("TOFCompBandMaxK", "[0]", 2, 50); TOFCompBandMaxK->SetParameter(0, 2.9);
  SetCompBand(AliPID::kKaon, AliPIDResponse::kTOF, TOFCompBandMinK, TOFCompBandMaxK);

  TF1 *TOFIdBandMinK = new TF1("TOFIdBandMinK", "[0]", 0.3, 2); TOFIdBandMinK->SetParameter(0, -3.1);
  TF1 *TOFIdBandMaxK = new TF1("TOFIdBandMaxK", "[0]", 0.3, 2); TOFIdBandMaxK->SetParameter(0, 2.9);
  SetIdBand(AliPID::kKaon, AliPIDResponse::kTOF, TOFIdBandMinK, TOFIdBandMaxK);

  //TOF pi: shift by -0.15
  TF1 *TOFCompBandMinPi = new TF1("TOFCompBandMinPi", "[0]", 2, 50); TOFCompBandMinPi->SetParameter(0, -3.15);
  TF1 *TOFCompBandMaxPi = new TF1("TOFCompBandMaxPi", "[0]", 2, 50); TOFCompBandMaxPi->SetParameter(0, 2.85);
  SetCompBand(AliPID::kPion, AliPIDResponse::kTOF, TOFCompBandMinPi, TOFCompBandMaxPi);

  TF1 *TOFIdBandMinPi = new TF1("TOFIdBandMinPi", "[0]", 0.3, 2); TOFIdBandMinPi->SetParameter(0, -3.15);
  TF1 *TOFIdBandMaxPi = new TF1("TOFIdBandMaxPi", "[0]", 0.3, 2); TOFIdBandMaxPi->SetParameter(0, 2.85);
  SetIdBand(AliPID::kPion, AliPIDResponse::kTOF, TOFIdBandMinPi, TOFIdBandMaxPi);
}

//------------------
void AliAODPidHF::SetIdAsymmetricPID() {
  //Set identification bands

  SetMatch(10);
  SetTPC(kTRUE);
  SetTOF(kTRUE);

  //TPC K
  Double_t TPCIdBandMinKBins[] = {0.3, 0.4, 0.5, 0.6, 0.9, 4};
  TH1F *TPCIdBandMinK = new TH1F("TPCIdBandMinK", "TPC Id Band Min K", 5, TPCIdBandMinKBins);
  TPCIdBandMinK->SetBinContent(1, -3); //0.3-0.4
  TPCIdBandMinK->SetBinContent(2, -2); //0.4-0.5
  TPCIdBandMinK->SetBinContent(3, -3); //0.5-0.6
  TPCIdBandMinK->SetBinContent(4, -2); //0.6-0.9
  TPCIdBandMinK->SetBinContent(5, -3); //0.9-4

  Double_t TPCIdBandMaxKBins[] = {0.3, 0.6, 0.7, 4};
  TH1F *TPCIdBandMaxK = new TH1F("TPCIdBandMaxK", "TPC Id Band Max K", 3, TPCIdBandMaxKBins);
  TPCIdBandMaxK->SetBinContent(1, 3); //0.3-0.6
  TPCIdBandMaxK->SetBinContent(2, 2); //0.6-0.7
  TPCIdBandMaxK->SetBinContent(3, 3); //0.7-4

  SetIdBand(AliPID::kKaon, AliPIDResponse::kTPC, TPCIdBandMinK, TPCIdBandMaxK);
  GetIdBandMin(AliPID::kKaon, AliPIDResponse::kTPC)->SetNpx(1000);
  GetIdBandMax(AliPID::kKaon, AliPIDResponse::kTPC)->SetNpx(1000);

  //TPC pi
  Double_t TPCIdBandMinpiBins[] = {0.3, 4};
  TH1F *TPCIdBandMinpi = new TH1F("TPCIdBandMinpi", "TPC Id Band Min pi", 1, TPCIdBandMinpiBins);
  TPCIdBandMinpi->SetBinContent(1, -3); //0.3-4

  Double_t TPCIdBandMaxpiBins[] = {0.3, 0.7, 0.9, 1.3, 1.4, 4};
  TH1F *TPCIdBandMaxpi = new TH1F("TPCIdBandMaxpi", "TPC Id Band Max pi", 5, TPCIdBandMaxpiBins);
  TPCIdBandMaxpi->SetBinContent(1, 3); //0.3-0.7
  TPCIdBandMaxpi->SetBinContent(2, 2); //0.7-0.9
  TPCIdBandMaxpi->SetBinContent(3, 3); //0.9-1.3
  TPCIdBandMaxpi->SetBinContent(4, 2); //1.3-1.4
  TPCIdBandMaxpi->SetBinContent(5, 3); //1.4-4

  SetIdBand(AliPID::kPion, AliPIDResponse::kTPC, TPCIdBandMinpi, TPCIdBandMaxpi);
  GetIdBandMin(AliPID::kPion, AliPIDResponse::kTPC)->SetNpx(1000);
  GetIdBandMax(AliPID::kPion, AliPIDResponse::kTPC)->SetNpx(1000);

  //TOF K
  TF1 *TOFIdBandMinK = new TF1("TOFIdBandMinK", "[0]", 0, 50); TOFIdBandMinK->SetParameter(0, -3);
  TF1 *TOFIdBandMaxK = new TF1("TOFIdBandMaxK", "[0]", 0, 50); TOFIdBandMaxK->SetParameter(0, 3);
  
  SetIdBand(AliPID::kKaon, AliPIDResponse::kTOF, TOFIdBandMinK, TOFIdBandMaxK);

  //TOF pi
  TF1 *TOFIdBandMinPi = new TF1("TOFIdBandMinPi", "[0]", 0, 50); TOFIdBandMinPi->SetParameter(0, -3);
  TF1 *TOFIdBandMaxPi = new TF1("TOFIdBandMaxPi", "[0]", 0, 50); TOFIdBandMaxPi->SetParameter(0, 3);
  
  SetIdBand(AliPID::kPion, AliPIDResponse::kTOF, TOFIdBandMinPi, TOFIdBandMaxPi);
}

//------------------
void AliAODPidHF::SetIdCompAsymmetricPID() {
  //Set compatibility and identification bands

  SetMatch(10);
  SetTPC(kTRUE);
  SetTOF(kTRUE);

  //TPC K
  TF1 *TPCCompBandMinK = new TF1("TPCCompBandMinK", "[0]", 0.3, 4); TPCCompBandMinK->SetParameter(0, -3);
  TF1 *TPCCompBandMaxK = new TF1("TPCCompBandMaxK", "[0]", 0.3, 4); TPCCompBandMaxK->SetParameter(0, 3);
  
  SetCompBand(AliPID::kKaon, AliPIDResponse::kTPC, TPCCompBandMinK, TPCCompBandMaxK);

  Double_t TPCIdBandMinKBins[6] = {0.3, 0.45, 0.55, 0.7, 1.1, 4};
  TH1F *TPCIdBandMinK = new TH1F("TPCIdBandMinK", "TPC Id Band Min K", 5, TPCIdBandMinKBins);
  TPCIdBandMinK->SetBinContent(1, -2); //0.3 -0.45
  TPCIdBandMinK->SetBinContent(2, -1); //0.45-0.55
  TPCIdBandMinK->SetBinContent(3, -2); //0.55-0.7
  TPCIdBandMinK->SetBinContent(4, -1); //0.7 -1.1
  TPCIdBandMinK->SetBinContent(5, -2); //1.1 -4
  
  Double_t TPCIdBandMaxKBins[4] = {0.3, 0.5, 0.7, 4};
  TH1F *TPCIdBandMaxK = new TH1F("TPCIdBandMaxK", "TPC Id Band Max K", 3, TPCIdBandMaxKBins);
  TPCIdBandMaxK->SetBinContent(1, 2); //0.3-0.5
  TPCIdBandMaxK->SetBinContent(2, 1); //0.5-0.7
  TPCIdBandMaxK->SetBinContent(3, 2); //0.7-4

  SetIdBand(AliPID::kKaon, AliPIDResponse::kTPC, TPCIdBandMinK, TPCIdBandMaxK);
  GetIdBandMin(AliPID::kKaon, AliPIDResponse::kTPC)->SetNpx(1000);
  GetIdBandMax(AliPID::kKaon, AliPIDResponse::kTPC)->SetNpx(1000);

  //TPC pi
  TF1 *TPCCompBandMinpi = new TF1("TPCCompBandMinpi", "[0]", 0.3, 4); TPCCompBandMinpi->SetParameter(0, -3);
  TF1 *TPCCompBandMaxpi = new TF1("TPCCompBandMaxpi", "[0]", 0.3, 4); TPCCompBandMaxpi->SetParameter(0, 3);
  
  SetCompBand(AliPID::kPion, AliPIDResponse::kTPC, TPCCompBandMinpi, TPCCompBandMaxpi);

  Double_t TPCIdBandMinpiBins[2] = {0.3, 4};
  TH1F *TPCIdBandMinpi = new TH1F("TPCIdBandMinpi", "TPC Id Band Min pi", 1, TPCIdBandMinpiBins);
  TPCIdBandMinpi->SetBinContent(1, -2); //0.3-4
  
  Double_t TPCIdBandMaxpiBins[4] = {0.3, 0.7, 1.7, 4};
  TH1F *TPCIdBandMaxpi = new TH1F("TPCIdBandMaxpi", "TPC Id Band Max pi", 3, TPCIdBandMaxpiBins);
  TPCIdBandMaxpi->SetBinContent(1, 2); //0.3-0.7
  TPCIdBandMaxpi->SetBinContent(2, 1); //0.7-1.7
  TPCIdBandMaxpi->SetBinContent(3, 2); //1.7-4
  
  SetIdBand(AliPID::kPion, AliPIDResponse::kTPC, TPCIdBandMinpi, TPCIdBandMaxpi);
  GetIdBandMin(AliPID::kPion, AliPIDResponse::kTPC)->SetNpx(1000);
  GetIdBandMax(AliPID::kPion, AliPIDResponse::kTPC)->SetNpx(1000);

  //TOF K
  TF1 *TOFCompBandMinK = new TF1("TOFCompBandMinK", "[0]", 2, 50); TOFCompBandMinK->SetParameter(0, -3);
  TF1 *TOFCompBandMaxK = new TF1("TOFCompBandMaxK", "[0]", 2, 50); TOFCompBandMaxK->SetParameter(0, 3);

  SetCompBand(AliPID::kKaon, AliPIDResponse::kTOF, TOFCompBandMinK, TOFCompBandMaxK);

  TF1 *TOFIdBandMinK = new TF1("TOFIdBandMinK", "[0]", 0.3, 2); TOFIdBandMinK->SetParameter(0, -3);
  TF1 *TOFIdBandMaxK = new TF1("TOFIdBandMaxK", "[0]", 0.3, 2); TOFIdBandMaxK->SetParameter(0, 3);

  SetIdBand(AliPID::kKaon, AliPIDResponse::kTOF, TOFIdBandMinK, TOFIdBandMaxK);

  //TOF pi
  TF1 *TOFCompBandMinpi = new TF1("TOFCompBandMinpi", "[0]", 2, 50); TOFCompBandMinpi->SetParameter(0, -3);
  TF1 *TOFCompBandMaxpi = new TF1("TOFCompBandMaxpi", "[0]", 2, 50); TOFCompBandMaxpi->SetParameter(0, 3);

  SetCompBand(AliPID::kPion, AliPIDResponse::kTOF, TOFCompBandMinpi, TOFCompBandMaxpi);

  TF1 *TOFIdBandMinpi = new TF1("TOFIdBandMinpi", "[0]", 0.3, 2); TOFIdBandMinpi->SetParameter(0, -3);
  TF1 *TOFIdBandMaxpi = new TF1("TOFIdBandMaxpi", "[0]", 0.3, 2); TOFIdBandMaxpi->SetParameter(0, 3);

  SetIdBand(AliPID::kPion, AliPIDResponse::kTOF, TOFIdBandMinpi, TOFIdBandMaxpi);
}
 AliAODPidHF.cxx:1
 AliAODPidHF.cxx:2
 AliAODPidHF.cxx:3
 AliAODPidHF.cxx:4
 AliAODPidHF.cxx:5
 AliAODPidHF.cxx:6
 AliAODPidHF.cxx:7
 AliAODPidHF.cxx:8
 AliAODPidHF.cxx:9
 AliAODPidHF.cxx:10
 AliAODPidHF.cxx:11
 AliAODPidHF.cxx:12
 AliAODPidHF.cxx:13
 AliAODPidHF.cxx:14
 AliAODPidHF.cxx:15
 AliAODPidHF.cxx:16
 AliAODPidHF.cxx:17
 AliAODPidHF.cxx:18
 AliAODPidHF.cxx:19
 AliAODPidHF.cxx:20
 AliAODPidHF.cxx:21
 AliAODPidHF.cxx:22
 AliAODPidHF.cxx:23
 AliAODPidHF.cxx:24
 AliAODPidHF.cxx:25
 AliAODPidHF.cxx:26
 AliAODPidHF.cxx:27
 AliAODPidHF.cxx:28
 AliAODPidHF.cxx:29
 AliAODPidHF.cxx:30
 AliAODPidHF.cxx:31
 AliAODPidHF.cxx:32
 AliAODPidHF.cxx:33
 AliAODPidHF.cxx:34
 AliAODPidHF.cxx:35
 AliAODPidHF.cxx:36
 AliAODPidHF.cxx:37
 AliAODPidHF.cxx:38
 AliAODPidHF.cxx:39
 AliAODPidHF.cxx:40
 AliAODPidHF.cxx:41
 AliAODPidHF.cxx:42
 AliAODPidHF.cxx:43
 AliAODPidHF.cxx:44
 AliAODPidHF.cxx:45
 AliAODPidHF.cxx:46
 AliAODPidHF.cxx:47
 AliAODPidHF.cxx:48
 AliAODPidHF.cxx:49
 AliAODPidHF.cxx:50
 AliAODPidHF.cxx:51
 AliAODPidHF.cxx:52
 AliAODPidHF.cxx:53
 AliAODPidHF.cxx:54
 AliAODPidHF.cxx:55
 AliAODPidHF.cxx:56
 AliAODPidHF.cxx:57
 AliAODPidHF.cxx:58
 AliAODPidHF.cxx:59
 AliAODPidHF.cxx:60
 AliAODPidHF.cxx:61
 AliAODPidHF.cxx:62
 AliAODPidHF.cxx:63
 AliAODPidHF.cxx:64
 AliAODPidHF.cxx:65
 AliAODPidHF.cxx:66
 AliAODPidHF.cxx:67
 AliAODPidHF.cxx:68
 AliAODPidHF.cxx:69
 AliAODPidHF.cxx:70
 AliAODPidHF.cxx:71
 AliAODPidHF.cxx:72
 AliAODPidHF.cxx:73
 AliAODPidHF.cxx:74
 AliAODPidHF.cxx:75
 AliAODPidHF.cxx:76
 AliAODPidHF.cxx:77
 AliAODPidHF.cxx:78
 AliAODPidHF.cxx:79
 AliAODPidHF.cxx:80
 AliAODPidHF.cxx:81
 AliAODPidHF.cxx:82
 AliAODPidHF.cxx:83
 AliAODPidHF.cxx:84
 AliAODPidHF.cxx:85
 AliAODPidHF.cxx:86
 AliAODPidHF.cxx:87
 AliAODPidHF.cxx:88
 AliAODPidHF.cxx:89
 AliAODPidHF.cxx:90
 AliAODPidHF.cxx:91
 AliAODPidHF.cxx:92
 AliAODPidHF.cxx:93
 AliAODPidHF.cxx:94
 AliAODPidHF.cxx:95
 AliAODPidHF.cxx:96
 AliAODPidHF.cxx:97
 AliAODPidHF.cxx:98
 AliAODPidHF.cxx:99
 AliAODPidHF.cxx:100
 AliAODPidHF.cxx:101
 AliAODPidHF.cxx:102
 AliAODPidHF.cxx:103
 AliAODPidHF.cxx:104
 AliAODPidHF.cxx:105
 AliAODPidHF.cxx:106
 AliAODPidHF.cxx:107
 AliAODPidHF.cxx:108
 AliAODPidHF.cxx:109
 AliAODPidHF.cxx:110
 AliAODPidHF.cxx:111
 AliAODPidHF.cxx:112
 AliAODPidHF.cxx:113
 AliAODPidHF.cxx:114
 AliAODPidHF.cxx:115
 AliAODPidHF.cxx:116
 AliAODPidHF.cxx:117
 AliAODPidHF.cxx:118
 AliAODPidHF.cxx:119
 AliAODPidHF.cxx:120
 AliAODPidHF.cxx:121
 AliAODPidHF.cxx:122
 AliAODPidHF.cxx:123
 AliAODPidHF.cxx:124
 AliAODPidHF.cxx:125
 AliAODPidHF.cxx:126
 AliAODPidHF.cxx:127
 AliAODPidHF.cxx:128
 AliAODPidHF.cxx:129
 AliAODPidHF.cxx:130
 AliAODPidHF.cxx:131
 AliAODPidHF.cxx:132
 AliAODPidHF.cxx:133
 AliAODPidHF.cxx:134
 AliAODPidHF.cxx:135
 AliAODPidHF.cxx:136
 AliAODPidHF.cxx:137
 AliAODPidHF.cxx:138
 AliAODPidHF.cxx:139
 AliAODPidHF.cxx:140
 AliAODPidHF.cxx:141
 AliAODPidHF.cxx:142
 AliAODPidHF.cxx:143
 AliAODPidHF.cxx:144
 AliAODPidHF.cxx:145
 AliAODPidHF.cxx:146
 AliAODPidHF.cxx:147
 AliAODPidHF.cxx:148
 AliAODPidHF.cxx:149
 AliAODPidHF.cxx:150
 AliAODPidHF.cxx:151
 AliAODPidHF.cxx:152
 AliAODPidHF.cxx:153
 AliAODPidHF.cxx:154
 AliAODPidHF.cxx:155
 AliAODPidHF.cxx:156
 AliAODPidHF.cxx:157
 AliAODPidHF.cxx:158
 AliAODPidHF.cxx:159
 AliAODPidHF.cxx:160
 AliAODPidHF.cxx:161
 AliAODPidHF.cxx:162
 AliAODPidHF.cxx:163
 AliAODPidHF.cxx:164
 AliAODPidHF.cxx:165
 AliAODPidHF.cxx:166
 AliAODPidHF.cxx:167
 AliAODPidHF.cxx:168
 AliAODPidHF.cxx:169
 AliAODPidHF.cxx:170
 AliAODPidHF.cxx:171
 AliAODPidHF.cxx:172
 AliAODPidHF.cxx:173
 AliAODPidHF.cxx:174
 AliAODPidHF.cxx:175
 AliAODPidHF.cxx:176
 AliAODPidHF.cxx:177
 AliAODPidHF.cxx:178
 AliAODPidHF.cxx:179
 AliAODPidHF.cxx:180
 AliAODPidHF.cxx:181
 AliAODPidHF.cxx:182
 AliAODPidHF.cxx:183
 AliAODPidHF.cxx:184
 AliAODPidHF.cxx:185
 AliAODPidHF.cxx:186
 AliAODPidHF.cxx:187
 AliAODPidHF.cxx:188
 AliAODPidHF.cxx:189
 AliAODPidHF.cxx:190
 AliAODPidHF.cxx:191
 AliAODPidHF.cxx:192
 AliAODPidHF.cxx:193
 AliAODPidHF.cxx:194
 AliAODPidHF.cxx:195
 AliAODPidHF.cxx:196
 AliAODPidHF.cxx:197
 AliAODPidHF.cxx:198
 AliAODPidHF.cxx:199
 AliAODPidHF.cxx:200
 AliAODPidHF.cxx:201
 AliAODPidHF.cxx:202
 AliAODPidHF.cxx:203
 AliAODPidHF.cxx:204
 AliAODPidHF.cxx:205
 AliAODPidHF.cxx:206
 AliAODPidHF.cxx:207
 AliAODPidHF.cxx:208
 AliAODPidHF.cxx:209
 AliAODPidHF.cxx:210
 AliAODPidHF.cxx:211
 AliAODPidHF.cxx:212
 AliAODPidHF.cxx:213
 AliAODPidHF.cxx:214
 AliAODPidHF.cxx:215
 AliAODPidHF.cxx:216
 AliAODPidHF.cxx:217
 AliAODPidHF.cxx:218
 AliAODPidHF.cxx:219
 AliAODPidHF.cxx:220
 AliAODPidHF.cxx:221
 AliAODPidHF.cxx:222
 AliAODPidHF.cxx:223
 AliAODPidHF.cxx:224
 AliAODPidHF.cxx:225
 AliAODPidHF.cxx:226
 AliAODPidHF.cxx:227
 AliAODPidHF.cxx:228
 AliAODPidHF.cxx:229
 AliAODPidHF.cxx:230
 AliAODPidHF.cxx:231
 AliAODPidHF.cxx:232
 AliAODPidHF.cxx:233
 AliAODPidHF.cxx:234
 AliAODPidHF.cxx:235
 AliAODPidHF.cxx:236
 AliAODPidHF.cxx:237
 AliAODPidHF.cxx:238
 AliAODPidHF.cxx:239
 AliAODPidHF.cxx:240
 AliAODPidHF.cxx:241
 AliAODPidHF.cxx:242
 AliAODPidHF.cxx:243
 AliAODPidHF.cxx:244
 AliAODPidHF.cxx:245
 AliAODPidHF.cxx:246
 AliAODPidHF.cxx:247
 AliAODPidHF.cxx:248
 AliAODPidHF.cxx:249
 AliAODPidHF.cxx:250
 AliAODPidHF.cxx:251
 AliAODPidHF.cxx:252
 AliAODPidHF.cxx:253
 AliAODPidHF.cxx:254
 AliAODPidHF.cxx:255
 AliAODPidHF.cxx:256
 AliAODPidHF.cxx:257
 AliAODPidHF.cxx:258
 AliAODPidHF.cxx:259
 AliAODPidHF.cxx:260
 AliAODPidHF.cxx:261
 AliAODPidHF.cxx:262
 AliAODPidHF.cxx:263
 AliAODPidHF.cxx:264
 AliAODPidHF.cxx:265
 AliAODPidHF.cxx:266
 AliAODPidHF.cxx:267
 AliAODPidHF.cxx:268
 AliAODPidHF.cxx:269
 AliAODPidHF.cxx:270
 AliAODPidHF.cxx:271
 AliAODPidHF.cxx:272
 AliAODPidHF.cxx:273
 AliAODPidHF.cxx:274
 AliAODPidHF.cxx:275
 AliAODPidHF.cxx:276
 AliAODPidHF.cxx:277
 AliAODPidHF.cxx:278
 AliAODPidHF.cxx:279
 AliAODPidHF.cxx:280
 AliAODPidHF.cxx:281
 AliAODPidHF.cxx:282
 AliAODPidHF.cxx:283
 AliAODPidHF.cxx:284
 AliAODPidHF.cxx:285
 AliAODPidHF.cxx:286
 AliAODPidHF.cxx:287
 AliAODPidHF.cxx:288
 AliAODPidHF.cxx:289
 AliAODPidHF.cxx:290
 AliAODPidHF.cxx:291
 AliAODPidHF.cxx:292
 AliAODPidHF.cxx:293
 AliAODPidHF.cxx:294
 AliAODPidHF.cxx:295
 AliAODPidHF.cxx:296
 AliAODPidHF.cxx:297
 AliAODPidHF.cxx:298
 AliAODPidHF.cxx:299
 AliAODPidHF.cxx:300
 AliAODPidHF.cxx:301
 AliAODPidHF.cxx:302
 AliAODPidHF.cxx:303
 AliAODPidHF.cxx:304
 AliAODPidHF.cxx:305
 AliAODPidHF.cxx:306
 AliAODPidHF.cxx:307
 AliAODPidHF.cxx:308
 AliAODPidHF.cxx:309
 AliAODPidHF.cxx:310
 AliAODPidHF.cxx:311
 AliAODPidHF.cxx:312
 AliAODPidHF.cxx:313
 AliAODPidHF.cxx:314
 AliAODPidHF.cxx:315
 AliAODPidHF.cxx:316
 AliAODPidHF.cxx:317
 AliAODPidHF.cxx:318
 AliAODPidHF.cxx:319
 AliAODPidHF.cxx:320
 AliAODPidHF.cxx:321
 AliAODPidHF.cxx:322
 AliAODPidHF.cxx:323
 AliAODPidHF.cxx:324
 AliAODPidHF.cxx:325
 AliAODPidHF.cxx:326
 AliAODPidHF.cxx:327
 AliAODPidHF.cxx:328
 AliAODPidHF.cxx:329
 AliAODPidHF.cxx:330
 AliAODPidHF.cxx:331
 AliAODPidHF.cxx:332
 AliAODPidHF.cxx:333
 AliAODPidHF.cxx:334
 AliAODPidHF.cxx:335
 AliAODPidHF.cxx:336
 AliAODPidHF.cxx:337
 AliAODPidHF.cxx:338
 AliAODPidHF.cxx:339
 AliAODPidHF.cxx:340
 AliAODPidHF.cxx:341
 AliAODPidHF.cxx:342
 AliAODPidHF.cxx:343
 AliAODPidHF.cxx:344
 AliAODPidHF.cxx:345
 AliAODPidHF.cxx:346
 AliAODPidHF.cxx:347
 AliAODPidHF.cxx:348
 AliAODPidHF.cxx:349
 AliAODPidHF.cxx:350
 AliAODPidHF.cxx:351
 AliAODPidHF.cxx:352
 AliAODPidHF.cxx:353
 AliAODPidHF.cxx:354
 AliAODPidHF.cxx:355
 AliAODPidHF.cxx:356
 AliAODPidHF.cxx:357
 AliAODPidHF.cxx:358
 AliAODPidHF.cxx:359
 AliAODPidHF.cxx:360
 AliAODPidHF.cxx:361
 AliAODPidHF.cxx:362
 AliAODPidHF.cxx:363
 AliAODPidHF.cxx:364
 AliAODPidHF.cxx:365
 AliAODPidHF.cxx:366
 AliAODPidHF.cxx:367
 AliAODPidHF.cxx:368
 AliAODPidHF.cxx:369
 AliAODPidHF.cxx:370
 AliAODPidHF.cxx:371
 AliAODPidHF.cxx:372
 AliAODPidHF.cxx:373
 AliAODPidHF.cxx:374
 AliAODPidHF.cxx:375
 AliAODPidHF.cxx:376
 AliAODPidHF.cxx:377
 AliAODPidHF.cxx:378
 AliAODPidHF.cxx:379
 AliAODPidHF.cxx:380
 AliAODPidHF.cxx:381
 AliAODPidHF.cxx:382
 AliAODPidHF.cxx:383
 AliAODPidHF.cxx:384
 AliAODPidHF.cxx:385
 AliAODPidHF.cxx:386
 AliAODPidHF.cxx:387
 AliAODPidHF.cxx:388
 AliAODPidHF.cxx:389
 AliAODPidHF.cxx:390
 AliAODPidHF.cxx:391
 AliAODPidHF.cxx:392
 AliAODPidHF.cxx:393
 AliAODPidHF.cxx:394
 AliAODPidHF.cxx:395
 AliAODPidHF.cxx:396
 AliAODPidHF.cxx:397
 AliAODPidHF.cxx:398
 AliAODPidHF.cxx:399
 AliAODPidHF.cxx:400
 AliAODPidHF.cxx:401
 AliAODPidHF.cxx:402
 AliAODPidHF.cxx:403
 AliAODPidHF.cxx:404
 AliAODPidHF.cxx:405
 AliAODPidHF.cxx:406
 AliAODPidHF.cxx:407
 AliAODPidHF.cxx:408
 AliAODPidHF.cxx:409
 AliAODPidHF.cxx:410
 AliAODPidHF.cxx:411
 AliAODPidHF.cxx:412
 AliAODPidHF.cxx:413
 AliAODPidHF.cxx:414
 AliAODPidHF.cxx:415
 AliAODPidHF.cxx:416
 AliAODPidHF.cxx:417
 AliAODPidHF.cxx:418
 AliAODPidHF.cxx:419
 AliAODPidHF.cxx:420
 AliAODPidHF.cxx:421
 AliAODPidHF.cxx:422
 AliAODPidHF.cxx:423
 AliAODPidHF.cxx:424
 AliAODPidHF.cxx:425
 AliAODPidHF.cxx:426
 AliAODPidHF.cxx:427
 AliAODPidHF.cxx:428
 AliAODPidHF.cxx:429
 AliAODPidHF.cxx:430
 AliAODPidHF.cxx:431
 AliAODPidHF.cxx:432
 AliAODPidHF.cxx:433
 AliAODPidHF.cxx:434
 AliAODPidHF.cxx:435
 AliAODPidHF.cxx:436
 AliAODPidHF.cxx:437
 AliAODPidHF.cxx:438
 AliAODPidHF.cxx:439
 AliAODPidHF.cxx:440
 AliAODPidHF.cxx:441
 AliAODPidHF.cxx:442
 AliAODPidHF.cxx:443
 AliAODPidHF.cxx:444
 AliAODPidHF.cxx:445
 AliAODPidHF.cxx:446
 AliAODPidHF.cxx:447
 AliAODPidHF.cxx:448
 AliAODPidHF.cxx:449
 AliAODPidHF.cxx:450
 AliAODPidHF.cxx:451
 AliAODPidHF.cxx:452
 AliAODPidHF.cxx:453
 AliAODPidHF.cxx:454
 AliAODPidHF.cxx:455
 AliAODPidHF.cxx:456
 AliAODPidHF.cxx:457
 AliAODPidHF.cxx:458
 AliAODPidHF.cxx:459
 AliAODPidHF.cxx:460
 AliAODPidHF.cxx:461
 AliAODPidHF.cxx:462
 AliAODPidHF.cxx:463
 AliAODPidHF.cxx:464
 AliAODPidHF.cxx:465
 AliAODPidHF.cxx:466
 AliAODPidHF.cxx:467
 AliAODPidHF.cxx:468
 AliAODPidHF.cxx:469
 AliAODPidHF.cxx:470
 AliAODPidHF.cxx:471
 AliAODPidHF.cxx:472
 AliAODPidHF.cxx:473
 AliAODPidHF.cxx:474
 AliAODPidHF.cxx:475
 AliAODPidHF.cxx:476
 AliAODPidHF.cxx:477
 AliAODPidHF.cxx:478
 AliAODPidHF.cxx:479
 AliAODPidHF.cxx:480
 AliAODPidHF.cxx:481
 AliAODPidHF.cxx:482
 AliAODPidHF.cxx:483
 AliAODPidHF.cxx:484
 AliAODPidHF.cxx:485
 AliAODPidHF.cxx:486
 AliAODPidHF.cxx:487
 AliAODPidHF.cxx:488
 AliAODPidHF.cxx:489
 AliAODPidHF.cxx:490
 AliAODPidHF.cxx:491
 AliAODPidHF.cxx:492
 AliAODPidHF.cxx:493
 AliAODPidHF.cxx:494
 AliAODPidHF.cxx:495
 AliAODPidHF.cxx:496
 AliAODPidHF.cxx:497
 AliAODPidHF.cxx:498
 AliAODPidHF.cxx:499
 AliAODPidHF.cxx:500
 AliAODPidHF.cxx:501
 AliAODPidHF.cxx:502
 AliAODPidHF.cxx:503
 AliAODPidHF.cxx:504
 AliAODPidHF.cxx:505
 AliAODPidHF.cxx:506
 AliAODPidHF.cxx:507
 AliAODPidHF.cxx:508
 AliAODPidHF.cxx:509
 AliAODPidHF.cxx:510
 AliAODPidHF.cxx:511
 AliAODPidHF.cxx:512
 AliAODPidHF.cxx:513
 AliAODPidHF.cxx:514
 AliAODPidHF.cxx:515
 AliAODPidHF.cxx:516
 AliAODPidHF.cxx:517
 AliAODPidHF.cxx:518
 AliAODPidHF.cxx:519
 AliAODPidHF.cxx:520
 AliAODPidHF.cxx:521
 AliAODPidHF.cxx:522
 AliAODPidHF.cxx:523
 AliAODPidHF.cxx:524
 AliAODPidHF.cxx:525
 AliAODPidHF.cxx:526
 AliAODPidHF.cxx:527
 AliAODPidHF.cxx:528
 AliAODPidHF.cxx:529
 AliAODPidHF.cxx:530
 AliAODPidHF.cxx:531
 AliAODPidHF.cxx:532
 AliAODPidHF.cxx:533
 AliAODPidHF.cxx:534
 AliAODPidHF.cxx:535
 AliAODPidHF.cxx:536
 AliAODPidHF.cxx:537
 AliAODPidHF.cxx:538
 AliAODPidHF.cxx:539
 AliAODPidHF.cxx:540
 AliAODPidHF.cxx:541
 AliAODPidHF.cxx:542
 AliAODPidHF.cxx:543
 AliAODPidHF.cxx:544
 AliAODPidHF.cxx:545
 AliAODPidHF.cxx:546
 AliAODPidHF.cxx:547
 AliAODPidHF.cxx:548
 AliAODPidHF.cxx:549
 AliAODPidHF.cxx:550
 AliAODPidHF.cxx:551
 AliAODPidHF.cxx:552
 AliAODPidHF.cxx:553
 AliAODPidHF.cxx:554
 AliAODPidHF.cxx:555
 AliAODPidHF.cxx:556
 AliAODPidHF.cxx:557
 AliAODPidHF.cxx:558
 AliAODPidHF.cxx:559
 AliAODPidHF.cxx:560
 AliAODPidHF.cxx:561
 AliAODPidHF.cxx:562
 AliAODPidHF.cxx:563
 AliAODPidHF.cxx:564
 AliAODPidHF.cxx:565
 AliAODPidHF.cxx:566
 AliAODPidHF.cxx:567
 AliAODPidHF.cxx:568
 AliAODPidHF.cxx:569
 AliAODPidHF.cxx:570
 AliAODPidHF.cxx:571
 AliAODPidHF.cxx:572
 AliAODPidHF.cxx:573
 AliAODPidHF.cxx:574
 AliAODPidHF.cxx:575
 AliAODPidHF.cxx:576
 AliAODPidHF.cxx:577
 AliAODPidHF.cxx:578
 AliAODPidHF.cxx:579
 AliAODPidHF.cxx:580
 AliAODPidHF.cxx:581
 AliAODPidHF.cxx:582
 AliAODPidHF.cxx:583
 AliAODPidHF.cxx:584
 AliAODPidHF.cxx:585
 AliAODPidHF.cxx:586
 AliAODPidHF.cxx:587
 AliAODPidHF.cxx:588
 AliAODPidHF.cxx:589
 AliAODPidHF.cxx:590
 AliAODPidHF.cxx:591
 AliAODPidHF.cxx:592
 AliAODPidHF.cxx:593
 AliAODPidHF.cxx:594
 AliAODPidHF.cxx:595
 AliAODPidHF.cxx:596
 AliAODPidHF.cxx:597
 AliAODPidHF.cxx:598
 AliAODPidHF.cxx:599
 AliAODPidHF.cxx:600
 AliAODPidHF.cxx:601
 AliAODPidHF.cxx:602
 AliAODPidHF.cxx:603
 AliAODPidHF.cxx:604
 AliAODPidHF.cxx:605
 AliAODPidHF.cxx:606
 AliAODPidHF.cxx:607
 AliAODPidHF.cxx:608
 AliAODPidHF.cxx:609
 AliAODPidHF.cxx:610
 AliAODPidHF.cxx:611
 AliAODPidHF.cxx:612
 AliAODPidHF.cxx:613
 AliAODPidHF.cxx:614
 AliAODPidHF.cxx:615
 AliAODPidHF.cxx:616
 AliAODPidHF.cxx:617
 AliAODPidHF.cxx:618
 AliAODPidHF.cxx:619
 AliAODPidHF.cxx:620
 AliAODPidHF.cxx:621
 AliAODPidHF.cxx:622
 AliAODPidHF.cxx:623
 AliAODPidHF.cxx:624
 AliAODPidHF.cxx:625
 AliAODPidHF.cxx:626
 AliAODPidHF.cxx:627
 AliAODPidHF.cxx:628
 AliAODPidHF.cxx:629
 AliAODPidHF.cxx:630
 AliAODPidHF.cxx:631
 AliAODPidHF.cxx:632
 AliAODPidHF.cxx:633
 AliAODPidHF.cxx:634
 AliAODPidHF.cxx:635
 AliAODPidHF.cxx:636
 AliAODPidHF.cxx:637
 AliAODPidHF.cxx:638
 AliAODPidHF.cxx:639
 AliAODPidHF.cxx:640
 AliAODPidHF.cxx:641
 AliAODPidHF.cxx:642
 AliAODPidHF.cxx:643
 AliAODPidHF.cxx:644
 AliAODPidHF.cxx:645
 AliAODPidHF.cxx:646
 AliAODPidHF.cxx:647
 AliAODPidHF.cxx:648
 AliAODPidHF.cxx:649
 AliAODPidHF.cxx:650
 AliAODPidHF.cxx:651
 AliAODPidHF.cxx:652
 AliAODPidHF.cxx:653
 AliAODPidHF.cxx:654
 AliAODPidHF.cxx:655
 AliAODPidHF.cxx:656
 AliAODPidHF.cxx:657
 AliAODPidHF.cxx:658
 AliAODPidHF.cxx:659
 AliAODPidHF.cxx:660
 AliAODPidHF.cxx:661
 AliAODPidHF.cxx:662
 AliAODPidHF.cxx:663
 AliAODPidHF.cxx:664
 AliAODPidHF.cxx:665
 AliAODPidHF.cxx:666
 AliAODPidHF.cxx:667
 AliAODPidHF.cxx:668
 AliAODPidHF.cxx:669
 AliAODPidHF.cxx:670
 AliAODPidHF.cxx:671
 AliAODPidHF.cxx:672
 AliAODPidHF.cxx:673
 AliAODPidHF.cxx:674
 AliAODPidHF.cxx:675
 AliAODPidHF.cxx:676
 AliAODPidHF.cxx:677
 AliAODPidHF.cxx:678
 AliAODPidHF.cxx:679
 AliAODPidHF.cxx:680
 AliAODPidHF.cxx:681
 AliAODPidHF.cxx:682
 AliAODPidHF.cxx:683
 AliAODPidHF.cxx:684
 AliAODPidHF.cxx:685
 AliAODPidHF.cxx:686
 AliAODPidHF.cxx:687
 AliAODPidHF.cxx:688
 AliAODPidHF.cxx:689
 AliAODPidHF.cxx:690
 AliAODPidHF.cxx:691
 AliAODPidHF.cxx:692
 AliAODPidHF.cxx:693
 AliAODPidHF.cxx:694
 AliAODPidHF.cxx:695
 AliAODPidHF.cxx:696
 AliAODPidHF.cxx:697
 AliAODPidHF.cxx:698
 AliAODPidHF.cxx:699
 AliAODPidHF.cxx:700
 AliAODPidHF.cxx:701
 AliAODPidHF.cxx:702
 AliAODPidHF.cxx:703
 AliAODPidHF.cxx:704
 AliAODPidHF.cxx:705
 AliAODPidHF.cxx:706
 AliAODPidHF.cxx:707
 AliAODPidHF.cxx:708
 AliAODPidHF.cxx:709
 AliAODPidHF.cxx:710
 AliAODPidHF.cxx:711
 AliAODPidHF.cxx:712
 AliAODPidHF.cxx:713
 AliAODPidHF.cxx:714
 AliAODPidHF.cxx:715
 AliAODPidHF.cxx:716
 AliAODPidHF.cxx:717
 AliAODPidHF.cxx:718
 AliAODPidHF.cxx:719
 AliAODPidHF.cxx:720
 AliAODPidHF.cxx:721
 AliAODPidHF.cxx:722
 AliAODPidHF.cxx:723
 AliAODPidHF.cxx:724
 AliAODPidHF.cxx:725
 AliAODPidHF.cxx:726
 AliAODPidHF.cxx:727
 AliAODPidHF.cxx:728
 AliAODPidHF.cxx:729
 AliAODPidHF.cxx:730
 AliAODPidHF.cxx:731
 AliAODPidHF.cxx:732
 AliAODPidHF.cxx:733
 AliAODPidHF.cxx:734
 AliAODPidHF.cxx:735
 AliAODPidHF.cxx:736
 AliAODPidHF.cxx:737
 AliAODPidHF.cxx:738
 AliAODPidHF.cxx:739
 AliAODPidHF.cxx:740
 AliAODPidHF.cxx:741
 AliAODPidHF.cxx:742
 AliAODPidHF.cxx:743
 AliAODPidHF.cxx:744
 AliAODPidHF.cxx:745
 AliAODPidHF.cxx:746
 AliAODPidHF.cxx:747
 AliAODPidHF.cxx:748
 AliAODPidHF.cxx:749
 AliAODPidHF.cxx:750
 AliAODPidHF.cxx:751
 AliAODPidHF.cxx:752
 AliAODPidHF.cxx:753
 AliAODPidHF.cxx:754
 AliAODPidHF.cxx:755
 AliAODPidHF.cxx:756
 AliAODPidHF.cxx:757
 AliAODPidHF.cxx:758
 AliAODPidHF.cxx:759
 AliAODPidHF.cxx:760
 AliAODPidHF.cxx:761
 AliAODPidHF.cxx:762
 AliAODPidHF.cxx:763
 AliAODPidHF.cxx:764
 AliAODPidHF.cxx:765
 AliAODPidHF.cxx:766
 AliAODPidHF.cxx:767
 AliAODPidHF.cxx:768
 AliAODPidHF.cxx:769
 AliAODPidHF.cxx:770
 AliAODPidHF.cxx:771
 AliAODPidHF.cxx:772
 AliAODPidHF.cxx:773
 AliAODPidHF.cxx:774
 AliAODPidHF.cxx:775
 AliAODPidHF.cxx:776
 AliAODPidHF.cxx:777
 AliAODPidHF.cxx:778
 AliAODPidHF.cxx:779
 AliAODPidHF.cxx:780
 AliAODPidHF.cxx:781
 AliAODPidHF.cxx:782
 AliAODPidHF.cxx:783
 AliAODPidHF.cxx:784
 AliAODPidHF.cxx:785
 AliAODPidHF.cxx:786
 AliAODPidHF.cxx:787
 AliAODPidHF.cxx:788
 AliAODPidHF.cxx:789
 AliAODPidHF.cxx:790
 AliAODPidHF.cxx:791
 AliAODPidHF.cxx:792
 AliAODPidHF.cxx:793
 AliAODPidHF.cxx:794
 AliAODPidHF.cxx:795
 AliAODPidHF.cxx:796
 AliAODPidHF.cxx:797
 AliAODPidHF.cxx:798
 AliAODPidHF.cxx:799
 AliAODPidHF.cxx:800
 AliAODPidHF.cxx:801
 AliAODPidHF.cxx:802
 AliAODPidHF.cxx:803
 AliAODPidHF.cxx:804
 AliAODPidHF.cxx:805
 AliAODPidHF.cxx:806
 AliAODPidHF.cxx:807
 AliAODPidHF.cxx:808
 AliAODPidHF.cxx:809
 AliAODPidHF.cxx:810
 AliAODPidHF.cxx:811
 AliAODPidHF.cxx:812
 AliAODPidHF.cxx:813
 AliAODPidHF.cxx:814
 AliAODPidHF.cxx:815
 AliAODPidHF.cxx:816
 AliAODPidHF.cxx:817
 AliAODPidHF.cxx:818
 AliAODPidHF.cxx:819
 AliAODPidHF.cxx:820
 AliAODPidHF.cxx:821
 AliAODPidHF.cxx:822
 AliAODPidHF.cxx:823
 AliAODPidHF.cxx:824
 AliAODPidHF.cxx:825
 AliAODPidHF.cxx:826
 AliAODPidHF.cxx:827
 AliAODPidHF.cxx:828
 AliAODPidHF.cxx:829
 AliAODPidHF.cxx:830
 AliAODPidHF.cxx:831
 AliAODPidHF.cxx:832
 AliAODPidHF.cxx:833
 AliAODPidHF.cxx:834
 AliAODPidHF.cxx:835
 AliAODPidHF.cxx:836
 AliAODPidHF.cxx:837
 AliAODPidHF.cxx:838
 AliAODPidHF.cxx:839
 AliAODPidHF.cxx:840
 AliAODPidHF.cxx:841
 AliAODPidHF.cxx:842
 AliAODPidHF.cxx:843
 AliAODPidHF.cxx:844
 AliAODPidHF.cxx:845
 AliAODPidHF.cxx:846
 AliAODPidHF.cxx:847
 AliAODPidHF.cxx:848
 AliAODPidHF.cxx:849
 AliAODPidHF.cxx:850
 AliAODPidHF.cxx:851
 AliAODPidHF.cxx:852
 AliAODPidHF.cxx:853
 AliAODPidHF.cxx:854
 AliAODPidHF.cxx:855
 AliAODPidHF.cxx:856
 AliAODPidHF.cxx:857
 AliAODPidHF.cxx:858
 AliAODPidHF.cxx:859
 AliAODPidHF.cxx:860
 AliAODPidHF.cxx:861
 AliAODPidHF.cxx:862
 AliAODPidHF.cxx:863
 AliAODPidHF.cxx:864
 AliAODPidHF.cxx:865
 AliAODPidHF.cxx:866
 AliAODPidHF.cxx:867
 AliAODPidHF.cxx:868
 AliAODPidHF.cxx:869
 AliAODPidHF.cxx:870
 AliAODPidHF.cxx:871
 AliAODPidHF.cxx:872
 AliAODPidHF.cxx:873
 AliAODPidHF.cxx:874
 AliAODPidHF.cxx:875
 AliAODPidHF.cxx:876
 AliAODPidHF.cxx:877
 AliAODPidHF.cxx:878
 AliAODPidHF.cxx:879
 AliAODPidHF.cxx:880
 AliAODPidHF.cxx:881
 AliAODPidHF.cxx:882
 AliAODPidHF.cxx:883
 AliAODPidHF.cxx:884
 AliAODPidHF.cxx:885
 AliAODPidHF.cxx:886
 AliAODPidHF.cxx:887
 AliAODPidHF.cxx:888
 AliAODPidHF.cxx:889
 AliAODPidHF.cxx:890
 AliAODPidHF.cxx:891
 AliAODPidHF.cxx:892
 AliAODPidHF.cxx:893
 AliAODPidHF.cxx:894
 AliAODPidHF.cxx:895
 AliAODPidHF.cxx:896
 AliAODPidHF.cxx:897
 AliAODPidHF.cxx:898
 AliAODPidHF.cxx:899
 AliAODPidHF.cxx:900
 AliAODPidHF.cxx:901
 AliAODPidHF.cxx:902
 AliAODPidHF.cxx:903
 AliAODPidHF.cxx:904
 AliAODPidHF.cxx:905
 AliAODPidHF.cxx:906
 AliAODPidHF.cxx:907
 AliAODPidHF.cxx:908
 AliAODPidHF.cxx:909
 AliAODPidHF.cxx:910
 AliAODPidHF.cxx:911
 AliAODPidHF.cxx:912
 AliAODPidHF.cxx:913
 AliAODPidHF.cxx:914
 AliAODPidHF.cxx:915
 AliAODPidHF.cxx:916
 AliAODPidHF.cxx:917
 AliAODPidHF.cxx:918
 AliAODPidHF.cxx:919
 AliAODPidHF.cxx:920
 AliAODPidHF.cxx:921
 AliAODPidHF.cxx:922
 AliAODPidHF.cxx:923
 AliAODPidHF.cxx:924
 AliAODPidHF.cxx:925
 AliAODPidHF.cxx:926
 AliAODPidHF.cxx:927
 AliAODPidHF.cxx:928
 AliAODPidHF.cxx:929
 AliAODPidHF.cxx:930
 AliAODPidHF.cxx:931
 AliAODPidHF.cxx:932
 AliAODPidHF.cxx:933
 AliAODPidHF.cxx:934
 AliAODPidHF.cxx:935
 AliAODPidHF.cxx:936
 AliAODPidHF.cxx:937
 AliAODPidHF.cxx:938
 AliAODPidHF.cxx:939
 AliAODPidHF.cxx:940
 AliAODPidHF.cxx:941
 AliAODPidHF.cxx:942
 AliAODPidHF.cxx:943
 AliAODPidHF.cxx:944
 AliAODPidHF.cxx:945
 AliAODPidHF.cxx:946
 AliAODPidHF.cxx:947
 AliAODPidHF.cxx:948
 AliAODPidHF.cxx:949
 AliAODPidHF.cxx:950
 AliAODPidHF.cxx:951
 AliAODPidHF.cxx:952
 AliAODPidHF.cxx:953
 AliAODPidHF.cxx:954
 AliAODPidHF.cxx:955
 AliAODPidHF.cxx:956
 AliAODPidHF.cxx:957
 AliAODPidHF.cxx:958
 AliAODPidHF.cxx:959
 AliAODPidHF.cxx:960
 AliAODPidHF.cxx:961
 AliAODPidHF.cxx:962
 AliAODPidHF.cxx:963
 AliAODPidHF.cxx:964
 AliAODPidHF.cxx:965
 AliAODPidHF.cxx:966
 AliAODPidHF.cxx:967
 AliAODPidHF.cxx:968
 AliAODPidHF.cxx:969
 AliAODPidHF.cxx:970
 AliAODPidHF.cxx:971
 AliAODPidHF.cxx:972
 AliAODPidHF.cxx:973
 AliAODPidHF.cxx:974
 AliAODPidHF.cxx:975
 AliAODPidHF.cxx:976
 AliAODPidHF.cxx:977
 AliAODPidHF.cxx:978
 AliAODPidHF.cxx:979
 AliAODPidHF.cxx:980
 AliAODPidHF.cxx:981
 AliAODPidHF.cxx:982
 AliAODPidHF.cxx:983
 AliAODPidHF.cxx:984
 AliAODPidHF.cxx:985
 AliAODPidHF.cxx:986
 AliAODPidHF.cxx:987
 AliAODPidHF.cxx:988
 AliAODPidHF.cxx:989
 AliAODPidHF.cxx:990
 AliAODPidHF.cxx:991
 AliAODPidHF.cxx:992
 AliAODPidHF.cxx:993
 AliAODPidHF.cxx:994
 AliAODPidHF.cxx:995
 AliAODPidHF.cxx:996
 AliAODPidHF.cxx:997
 AliAODPidHF.cxx:998
 AliAODPidHF.cxx:999
 AliAODPidHF.cxx:1000
 AliAODPidHF.cxx:1001
 AliAODPidHF.cxx:1002
 AliAODPidHF.cxx:1003
 AliAODPidHF.cxx:1004
 AliAODPidHF.cxx:1005
 AliAODPidHF.cxx:1006
 AliAODPidHF.cxx:1007
 AliAODPidHF.cxx:1008
 AliAODPidHF.cxx:1009
 AliAODPidHF.cxx:1010
 AliAODPidHF.cxx:1011
 AliAODPidHF.cxx:1012
 AliAODPidHF.cxx:1013
 AliAODPidHF.cxx:1014
 AliAODPidHF.cxx:1015
 AliAODPidHF.cxx:1016
 AliAODPidHF.cxx:1017
 AliAODPidHF.cxx:1018
 AliAODPidHF.cxx:1019
 AliAODPidHF.cxx:1020
 AliAODPidHF.cxx:1021
 AliAODPidHF.cxx:1022
 AliAODPidHF.cxx:1023
 AliAODPidHF.cxx:1024
 AliAODPidHF.cxx:1025
 AliAODPidHF.cxx:1026
 AliAODPidHF.cxx:1027
 AliAODPidHF.cxx:1028
 AliAODPidHF.cxx:1029
 AliAODPidHF.cxx:1030
 AliAODPidHF.cxx:1031
 AliAODPidHF.cxx:1032
 AliAODPidHF.cxx:1033
 AliAODPidHF.cxx:1034
 AliAODPidHF.cxx:1035
 AliAODPidHF.cxx:1036
 AliAODPidHF.cxx:1037
 AliAODPidHF.cxx:1038
 AliAODPidHF.cxx:1039
 AliAODPidHF.cxx:1040
 AliAODPidHF.cxx:1041
 AliAODPidHF.cxx:1042
 AliAODPidHF.cxx:1043
 AliAODPidHF.cxx:1044
 AliAODPidHF.cxx:1045
 AliAODPidHF.cxx:1046
 AliAODPidHF.cxx:1047
 AliAODPidHF.cxx:1048
 AliAODPidHF.cxx:1049
 AliAODPidHF.cxx:1050
 AliAODPidHF.cxx:1051
 AliAODPidHF.cxx:1052
 AliAODPidHF.cxx:1053
 AliAODPidHF.cxx:1054
 AliAODPidHF.cxx:1055
 AliAODPidHF.cxx:1056
 AliAODPidHF.cxx:1057
 AliAODPidHF.cxx:1058
 AliAODPidHF.cxx:1059
 AliAODPidHF.cxx:1060
 AliAODPidHF.cxx:1061
 AliAODPidHF.cxx:1062
 AliAODPidHF.cxx:1063
 AliAODPidHF.cxx:1064
 AliAODPidHF.cxx:1065
 AliAODPidHF.cxx:1066
 AliAODPidHF.cxx:1067
 AliAODPidHF.cxx:1068
 AliAODPidHF.cxx:1069
 AliAODPidHF.cxx:1070
 AliAODPidHF.cxx:1071
 AliAODPidHF.cxx:1072
 AliAODPidHF.cxx:1073
 AliAODPidHF.cxx:1074
 AliAODPidHF.cxx:1075
 AliAODPidHF.cxx:1076
 AliAODPidHF.cxx:1077
 AliAODPidHF.cxx:1078
 AliAODPidHF.cxx:1079
 AliAODPidHF.cxx:1080
 AliAODPidHF.cxx:1081
 AliAODPidHF.cxx:1082
 AliAODPidHF.cxx:1083
 AliAODPidHF.cxx:1084
 AliAODPidHF.cxx:1085
 AliAODPidHF.cxx:1086
 AliAODPidHF.cxx:1087
 AliAODPidHF.cxx:1088
 AliAODPidHF.cxx:1089
 AliAODPidHF.cxx:1090
 AliAODPidHF.cxx:1091
 AliAODPidHF.cxx:1092
 AliAODPidHF.cxx:1093
 AliAODPidHF.cxx:1094
 AliAODPidHF.cxx:1095
 AliAODPidHF.cxx:1096
 AliAODPidHF.cxx:1097
 AliAODPidHF.cxx:1098
 AliAODPidHF.cxx:1099
 AliAODPidHF.cxx:1100
 AliAODPidHF.cxx:1101
 AliAODPidHF.cxx:1102
 AliAODPidHF.cxx:1103
 AliAODPidHF.cxx:1104
 AliAODPidHF.cxx:1105
 AliAODPidHF.cxx:1106
 AliAODPidHF.cxx:1107
 AliAODPidHF.cxx:1108
 AliAODPidHF.cxx:1109
 AliAODPidHF.cxx:1110
 AliAODPidHF.cxx:1111
 AliAODPidHF.cxx:1112
 AliAODPidHF.cxx:1113
 AliAODPidHF.cxx:1114
 AliAODPidHF.cxx:1115
 AliAODPidHF.cxx:1116
 AliAODPidHF.cxx:1117
 AliAODPidHF.cxx:1118
 AliAODPidHF.cxx:1119
 AliAODPidHF.cxx:1120
 AliAODPidHF.cxx:1121
 AliAODPidHF.cxx:1122
 AliAODPidHF.cxx:1123
 AliAODPidHF.cxx:1124
 AliAODPidHF.cxx:1125
 AliAODPidHF.cxx:1126
 AliAODPidHF.cxx:1127
 AliAODPidHF.cxx:1128
 AliAODPidHF.cxx:1129
 AliAODPidHF.cxx:1130
 AliAODPidHF.cxx:1131
 AliAODPidHF.cxx:1132
 AliAODPidHF.cxx:1133
 AliAODPidHF.cxx:1134
 AliAODPidHF.cxx:1135
 AliAODPidHF.cxx:1136
 AliAODPidHF.cxx:1137
 AliAODPidHF.cxx:1138
 AliAODPidHF.cxx:1139
 AliAODPidHF.cxx:1140
 AliAODPidHF.cxx:1141
 AliAODPidHF.cxx:1142
 AliAODPidHF.cxx:1143
 AliAODPidHF.cxx:1144
 AliAODPidHF.cxx:1145
 AliAODPidHF.cxx:1146
 AliAODPidHF.cxx:1147
 AliAODPidHF.cxx:1148
 AliAODPidHF.cxx:1149
 AliAODPidHF.cxx:1150
 AliAODPidHF.cxx:1151
 AliAODPidHF.cxx:1152
 AliAODPidHF.cxx:1153
 AliAODPidHF.cxx:1154
 AliAODPidHF.cxx:1155
 AliAODPidHF.cxx:1156
 AliAODPidHF.cxx:1157
 AliAODPidHF.cxx:1158
 AliAODPidHF.cxx:1159
 AliAODPidHF.cxx:1160
 AliAODPidHF.cxx:1161
 AliAODPidHF.cxx:1162
 AliAODPidHF.cxx:1163
 AliAODPidHF.cxx:1164
 AliAODPidHF.cxx:1165
 AliAODPidHF.cxx:1166
 AliAODPidHF.cxx:1167
 AliAODPidHF.cxx:1168
 AliAODPidHF.cxx:1169
 AliAODPidHF.cxx:1170
 AliAODPidHF.cxx:1171
 AliAODPidHF.cxx:1172
 AliAODPidHF.cxx:1173
 AliAODPidHF.cxx:1174
 AliAODPidHF.cxx:1175
 AliAODPidHF.cxx:1176
 AliAODPidHF.cxx:1177
 AliAODPidHF.cxx:1178
 AliAODPidHF.cxx:1179
 AliAODPidHF.cxx:1180
 AliAODPidHF.cxx:1181
 AliAODPidHF.cxx:1182
 AliAODPidHF.cxx:1183
 AliAODPidHF.cxx:1184
 AliAODPidHF.cxx:1185
 AliAODPidHF.cxx:1186
 AliAODPidHF.cxx:1187
 AliAODPidHF.cxx:1188
 AliAODPidHF.cxx:1189
 AliAODPidHF.cxx:1190
 AliAODPidHF.cxx:1191
 AliAODPidHF.cxx:1192
 AliAODPidHF.cxx:1193
 AliAODPidHF.cxx:1194
 AliAODPidHF.cxx:1195
 AliAODPidHF.cxx:1196
 AliAODPidHF.cxx:1197
 AliAODPidHF.cxx:1198
 AliAODPidHF.cxx:1199
 AliAODPidHF.cxx:1200
 AliAODPidHF.cxx:1201
 AliAODPidHF.cxx:1202
 AliAODPidHF.cxx:1203
 AliAODPidHF.cxx:1204
 AliAODPidHF.cxx:1205
 AliAODPidHF.cxx:1206
 AliAODPidHF.cxx:1207
 AliAODPidHF.cxx:1208
 AliAODPidHF.cxx:1209
 AliAODPidHF.cxx:1210
 AliAODPidHF.cxx:1211
 AliAODPidHF.cxx:1212
 AliAODPidHF.cxx:1213
 AliAODPidHF.cxx:1214
 AliAODPidHF.cxx:1215
 AliAODPidHF.cxx:1216
 AliAODPidHF.cxx:1217
 AliAODPidHF.cxx:1218
 AliAODPidHF.cxx:1219
 AliAODPidHF.cxx:1220
 AliAODPidHF.cxx:1221
 AliAODPidHF.cxx:1222
 AliAODPidHF.cxx:1223
 AliAODPidHF.cxx:1224
 AliAODPidHF.cxx:1225
 AliAODPidHF.cxx:1226
 AliAODPidHF.cxx:1227
 AliAODPidHF.cxx:1228
 AliAODPidHF.cxx:1229
 AliAODPidHF.cxx:1230
 AliAODPidHF.cxx:1231
 AliAODPidHF.cxx:1232
 AliAODPidHF.cxx:1233
 AliAODPidHF.cxx:1234
 AliAODPidHF.cxx:1235
 AliAODPidHF.cxx:1236
 AliAODPidHF.cxx:1237
 AliAODPidHF.cxx:1238
 AliAODPidHF.cxx:1239
 AliAODPidHF.cxx:1240
 AliAODPidHF.cxx:1241
 AliAODPidHF.cxx:1242
 AliAODPidHF.cxx:1243
 AliAODPidHF.cxx:1244
 AliAODPidHF.cxx:1245
 AliAODPidHF.cxx:1246
 AliAODPidHF.cxx:1247
 AliAODPidHF.cxx:1248
 AliAODPidHF.cxx:1249
 AliAODPidHF.cxx:1250
 AliAODPidHF.cxx:1251
 AliAODPidHF.cxx:1252
 AliAODPidHF.cxx:1253
 AliAODPidHF.cxx:1254
 AliAODPidHF.cxx:1255
 AliAODPidHF.cxx:1256
 AliAODPidHF.cxx:1257
 AliAODPidHF.cxx:1258
 AliAODPidHF.cxx:1259
 AliAODPidHF.cxx:1260
 AliAODPidHF.cxx:1261
 AliAODPidHF.cxx:1262
 AliAODPidHF.cxx:1263
 AliAODPidHF.cxx:1264
 AliAODPidHF.cxx:1265
 AliAODPidHF.cxx:1266
 AliAODPidHF.cxx:1267
 AliAODPidHF.cxx:1268
 AliAODPidHF.cxx:1269
 AliAODPidHF.cxx:1270
 AliAODPidHF.cxx:1271
 AliAODPidHF.cxx:1272
 AliAODPidHF.cxx:1273
 AliAODPidHF.cxx:1274
 AliAODPidHF.cxx:1275
 AliAODPidHF.cxx:1276
 AliAODPidHF.cxx:1277
 AliAODPidHF.cxx:1278
 AliAODPidHF.cxx:1279
 AliAODPidHF.cxx:1280
 AliAODPidHF.cxx:1281
 AliAODPidHF.cxx:1282
 AliAODPidHF.cxx:1283
 AliAODPidHF.cxx:1284
 AliAODPidHF.cxx:1285
 AliAODPidHF.cxx:1286
 AliAODPidHF.cxx:1287
 AliAODPidHF.cxx:1288
 AliAODPidHF.cxx:1289
 AliAODPidHF.cxx:1290
 AliAODPidHF.cxx:1291
 AliAODPidHF.cxx:1292
 AliAODPidHF.cxx:1293
 AliAODPidHF.cxx:1294
 AliAODPidHF.cxx:1295
 AliAODPidHF.cxx:1296
 AliAODPidHF.cxx:1297
 AliAODPidHF.cxx:1298
 AliAODPidHF.cxx:1299
 AliAODPidHF.cxx:1300
 AliAODPidHF.cxx:1301
 AliAODPidHF.cxx:1302
 AliAODPidHF.cxx:1303
 AliAODPidHF.cxx:1304
 AliAODPidHF.cxx:1305
 AliAODPidHF.cxx:1306
 AliAODPidHF.cxx:1307
 AliAODPidHF.cxx:1308
 AliAODPidHF.cxx:1309
 AliAODPidHF.cxx:1310
 AliAODPidHF.cxx:1311
 AliAODPidHF.cxx:1312
 AliAODPidHF.cxx:1313
 AliAODPidHF.cxx:1314
 AliAODPidHF.cxx:1315
 AliAODPidHF.cxx:1316
 AliAODPidHF.cxx:1317
 AliAODPidHF.cxx:1318
 AliAODPidHF.cxx:1319
 AliAODPidHF.cxx:1320
 AliAODPidHF.cxx:1321
 AliAODPidHF.cxx:1322
 AliAODPidHF.cxx:1323
 AliAODPidHF.cxx:1324
 AliAODPidHF.cxx:1325
 AliAODPidHF.cxx:1326
 AliAODPidHF.cxx:1327
 AliAODPidHF.cxx:1328
 AliAODPidHF.cxx:1329
 AliAODPidHF.cxx:1330
 AliAODPidHF.cxx:1331
 AliAODPidHF.cxx:1332
 AliAODPidHF.cxx:1333
 AliAODPidHF.cxx:1334
 AliAODPidHF.cxx:1335
 AliAODPidHF.cxx:1336
 AliAODPidHF.cxx:1337
 AliAODPidHF.cxx:1338
 AliAODPidHF.cxx:1339
 AliAODPidHF.cxx:1340
 AliAODPidHF.cxx:1341
 AliAODPidHF.cxx:1342
 AliAODPidHF.cxx:1343
 AliAODPidHF.cxx:1344
 AliAODPidHF.cxx:1345
 AliAODPidHF.cxx:1346
 AliAODPidHF.cxx:1347
 AliAODPidHF.cxx:1348
 AliAODPidHF.cxx:1349
 AliAODPidHF.cxx:1350
 AliAODPidHF.cxx:1351
 AliAODPidHF.cxx:1352
 AliAODPidHF.cxx:1353
 AliAODPidHF.cxx:1354
 AliAODPidHF.cxx:1355
 AliAODPidHF.cxx:1356
 AliAODPidHF.cxx:1357
 AliAODPidHF.cxx:1358
 AliAODPidHF.cxx:1359
 AliAODPidHF.cxx:1360
 AliAODPidHF.cxx:1361
 AliAODPidHF.cxx:1362
 AliAODPidHF.cxx:1363
 AliAODPidHF.cxx:1364
 AliAODPidHF.cxx:1365
 AliAODPidHF.cxx:1366
 AliAODPidHF.cxx:1367
 AliAODPidHF.cxx:1368
 AliAODPidHF.cxx:1369
 AliAODPidHF.cxx:1370
 AliAODPidHF.cxx:1371
 AliAODPidHF.cxx:1372
 AliAODPidHF.cxx:1373
 AliAODPidHF.cxx:1374
 AliAODPidHF.cxx:1375
 AliAODPidHF.cxx:1376
 AliAODPidHF.cxx:1377
 AliAODPidHF.cxx:1378
 AliAODPidHF.cxx:1379
 AliAODPidHF.cxx:1380
 AliAODPidHF.cxx:1381
 AliAODPidHF.cxx:1382
 AliAODPidHF.cxx:1383
 AliAODPidHF.cxx:1384
 AliAODPidHF.cxx:1385
 AliAODPidHF.cxx:1386
 AliAODPidHF.cxx:1387
 AliAODPidHF.cxx:1388
 AliAODPidHF.cxx:1389
 AliAODPidHF.cxx:1390
 AliAODPidHF.cxx:1391
 AliAODPidHF.cxx:1392
 AliAODPidHF.cxx:1393
 AliAODPidHF.cxx:1394
 AliAODPidHF.cxx:1395
 AliAODPidHF.cxx:1396
 AliAODPidHF.cxx:1397
 AliAODPidHF.cxx:1398
 AliAODPidHF.cxx:1399
 AliAODPidHF.cxx:1400
 AliAODPidHF.cxx:1401
 AliAODPidHF.cxx:1402
 AliAODPidHF.cxx:1403
 AliAODPidHF.cxx:1404
 AliAODPidHF.cxx:1405
 AliAODPidHF.cxx:1406
 AliAODPidHF.cxx:1407
 AliAODPidHF.cxx:1408
 AliAODPidHF.cxx:1409
 AliAODPidHF.cxx:1410
 AliAODPidHF.cxx:1411
 AliAODPidHF.cxx:1412
 AliAODPidHF.cxx:1413
 AliAODPidHF.cxx:1414
 AliAODPidHF.cxx:1415
 AliAODPidHF.cxx:1416
 AliAODPidHF.cxx:1417
 AliAODPidHF.cxx:1418
 AliAODPidHF.cxx:1419
 AliAODPidHF.cxx:1420
 AliAODPidHF.cxx:1421
 AliAODPidHF.cxx:1422
 AliAODPidHF.cxx:1423
 AliAODPidHF.cxx:1424
 AliAODPidHF.cxx:1425
 AliAODPidHF.cxx:1426
 AliAODPidHF.cxx:1427
 AliAODPidHF.cxx:1428
 AliAODPidHF.cxx:1429
 AliAODPidHF.cxx:1430
 AliAODPidHF.cxx:1431
 AliAODPidHF.cxx:1432
 AliAODPidHF.cxx:1433
 AliAODPidHF.cxx:1434
 AliAODPidHF.cxx:1435
 AliAODPidHF.cxx:1436
 AliAODPidHF.cxx:1437
 AliAODPidHF.cxx:1438
 AliAODPidHF.cxx:1439
 AliAODPidHF.cxx:1440
 AliAODPidHF.cxx:1441
 AliAODPidHF.cxx:1442
 AliAODPidHF.cxx:1443
 AliAODPidHF.cxx:1444
 AliAODPidHF.cxx:1445
 AliAODPidHF.cxx:1446
 AliAODPidHF.cxx:1447
 AliAODPidHF.cxx:1448
 AliAODPidHF.cxx:1449
 AliAODPidHF.cxx:1450
 AliAODPidHF.cxx:1451
 AliAODPidHF.cxx:1452
 AliAODPidHF.cxx:1453
 AliAODPidHF.cxx:1454
 AliAODPidHF.cxx:1455
 AliAODPidHF.cxx:1456
 AliAODPidHF.cxx:1457
 AliAODPidHF.cxx:1458
 AliAODPidHF.cxx:1459
 AliAODPidHF.cxx:1460
 AliAODPidHF.cxx:1461
 AliAODPidHF.cxx:1462
 AliAODPidHF.cxx:1463
 AliAODPidHF.cxx:1464
 AliAODPidHF.cxx:1465
 AliAODPidHF.cxx:1466
 AliAODPidHF.cxx:1467
 AliAODPidHF.cxx:1468
 AliAODPidHF.cxx:1469