ROOT logo
#ifndef ALIAODPIDHF_H
#define ALIAODPIDHF_H

/* Copyright(c) 1998-2006, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $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,  J. van der Maarel j.vandermaarel@cern.ch
////***********************************************************

#include <TString.h>
#include <TH1F.h>
#include <TObject.h>
#include "AliAODTrack.h"
#include "AliPIDResponse.h"
#include "AliPIDCombined.h"
#include "AliPID.h"

class AliAODPidHF : public TObject{
  
public:
  
  enum ECombDetectors {
    kTPC,
    kTOF,
    kTPCTOF,
    kTPCITS
  };
  
  AliAODPidHF();
  AliAODPidHF(const AliAODPidHF& pid);
  AliAODPidHF& operator=(const AliAODPidHF& pid);
  virtual ~AliAODPidHF();
  
  //Setters
  void SetSigma(Double_t *sigma){
    for(Int_t i=0; i<fnNSigma; i++) fnSigma[i]=sigma[i];
  }
  void SetSigma(Int_t idet,Double_t sigma){fnSigma[idet]=sigma;return;}
  void SetSigmaForTPC(Double_t *sigma){for(Int_t i=0;i<3;i++) fnSigma[i]=sigma[i];return;}
  void SetSigmaForTPCCompat(Double_t sigma){fnSigmaCompat[0]=sigma;return;}
  void SetSigmaForTOFCompat(Double_t sigma){fnSigmaCompat[1]=sigma;return;}
  void SetSigmaForTOF(Double_t sigma){fnSigma[3]=sigma;return;}
  void SetSigmaForITS(Double_t sigma){fnSigma[4]=sigma;return;}
  void SetTofSigma(Double_t sigma){fTOFSigma=sigma;return;}
  
  void SetCutOnTOFmismatchProb(Double_t cut=0.01){fCutTOFmismatch=cut;}
  void DisableCutOnTOFmismatchProb(){fCutTOFmismatch=999.;}
  
  void SetMinNClustersTPCPID(Int_t minc) {fMinNClustersTPCPID=minc;}
  
  void SetCombinednSigmaCutForPiKP(Float_t sigpi, Float_t sigk, Float_t sigp){
    fMaxnSigmaCombined[0]=sigpi;
    fMaxnSigmaCombined[1]=sigk;
    fMaxnSigmaCombined[2]=sigp;
  }
  void SetTPCnSigmaRangeForPions(Float_t smin, Float_t smax){
    fMinnSigmaTPC[0]=smin;
    fMaxnSigmaTPC[0]=smax;
  }
  void SetTOFnSigmaRangeForPions(Float_t smin, Float_t smax){
    fMinnSigmaTOF[0]=smin;
    fMaxnSigmaTOF[0]=smax;
  }
  void SetTPCnSigmaRangeForKaons(Float_t smin, Float_t smax){
    fMinnSigmaTPC[1]=smin;
    fMaxnSigmaTPC[1]=smax;
  }
  void SetTOFnSigmaRangeForKaons(Float_t smin, Float_t smax){
    fMinnSigmaTOF[1]=smin;
    fMaxnSigmaTOF[1]=smax;
  }
  void SetTPCnSigmaRangeForProtons(Float_t smin, Float_t smax){
    fMinnSigmaTPC[2]=smin;
    fMaxnSigmaTPC[2]=smax;
  }
  void SetTOFnSigmaRangeForProtons(Float_t smin, Float_t smax){
    fMinnSigmaTOF[2]=smin;
    fMaxnSigmaTOF[2]=smax;
  }
  
  void SetPriors(Double_t *priors){fPriors=priors;return;}
  void SetPLimit(Double_t *plim){for(Int_t i=0;i<fnPLimit;i++) fPLimit[i]=plim[i];return;}
  void SetPLimit(Double_t *plim,Int_t npLim){fnPLimit=npLim;for(Int_t i=0;i<fnPLimit;i++) fPLimit[i]=plim[i];return;}
  void SetAsym(Bool_t asym){fAsym=asym;return;}
  void SetUseAsymmnSigmaTOF(Double_t nsmin, Double_t nsmax, Double_t nscompmin, Double_t nscompmax){
    fUseAsymTOF=kTRUE;
    fLownSigmaTOF=nsmin; fUpnSigmaTOF=nsmax;
    fLownSigmaCompatTOF=nscompmin; fUpnSigmaCompatTOF=nscompmax;
  }
  void SetTPC(Bool_t tpc){fTPC=tpc;return;}
  void SetTOF(Bool_t tof){fTOF=tof;return;}
  void SetITS(Bool_t its){fITS=its;return;}
  void SetTRD(Bool_t trd){fTRD=trd;return;}
  void SetMatch(Int_t match){fMatch=match;return;}
  void SetForceTOFforKaons(Bool_t forceTOF){fForceTOFforKaons=forceTOF;return;}
  void SetCompat(Bool_t comp){fCompat=comp;return;}
  void SetMC(Bool_t mc){fMC=mc;return;}
  void SetMClowenpp2011(Bool_t mc){fMCLowEn2011=mc;return;}
  void SetOnePad(Bool_t onepad){fOnePad=onepad;return;}
  void SetppLowEn2011(Bool_t opt){fppLowEn2011=opt;return;}
  void SetPbPb(Bool_t pbpb){fPbPb=pbpb;return;}
  void SetPCompatTOF(Double_t pTOF){fPCompatTOF=pTOF;return;}
  void SetTOFdecide(Bool_t tOFdecide){fTOFdecide=tOFdecide;return;}
  void SetOldPid(Bool_t oldPid){fOldPid=oldPid;return;}
  void SetPtThresholdTPC(Double_t ptThresholdTPC){fPtThresholdTPC=ptThresholdTPC;return;}
  void SetMaxTrackMomForCombinedPID(Double_t mom){fMaxTrackMomForCombinedPID=mom;}
  void SetPidResponse(AliPIDResponse *pidResp) {fPidResponse=pidResp;return;}
  void SetCombDetectors(ECombDetectors pidComb) {
    fCombDetectors=pidComb;
  }
  void SetPionPriorHisto(TH1F* histo){
    if(fPriorsH[AliPID::kPion]) delete fPriorsH[AliPID::kPion];
    fPriorsH[AliPID::kPion] = new TH1F(*histo);
  }
  void SetKaonPriorHisto(TH1F* histo){
    if(fPriorsH[AliPID::kKaon]) delete fPriorsH[AliPID::kKaon];
    fPriorsH[AliPID::kKaon] = new TH1F(*histo);
  }
  void SetProtonPriorHisto(TH1F* histo){
    if(fPriorsH[AliPID::kProton]) delete fPriorsH[AliPID::kProton];
    fPriorsH[AliPID::kProton] = new TH1F(*histo);
  }
  
  
  //Getters
  
  Int_t GetnSigmaTPC(AliAODTrack *track, Int_t species, Double_t &sigma) const;
  Int_t GetnSigmaTOF(AliAODTrack *track, Int_t species, Double_t &sigma) const;
  Int_t GetnSigmaITS(AliAODTrack *track, Int_t species, Double_t &sigma) const;
  Double_t GetSigma(Int_t idet) const{return fnSigma[idet];}
  Double_t GetTofSigma() const{return fTOFSigma;}
  //void GetPriors(Double_t *priors) const{priors=fPriors;return;}
  //void GetPLimit(Double_t *plim) const{plim=fPLimit;}
  void GetPriors(Double_t *priors) const{for(Int_t i=0;i<fnPriors;i++){priors[i]=fPriors[i];}return;}
  void GetPLimit(Double_t *plim) const{for(Int_t i=0;i<fnPLimit;i++){plim[i]=fPLimit[i];}return;}
  Bool_t GetAsym() const{return fAsym;}
  Bool_t GetTPC() const{return fTPC;}
  Bool_t GetTOF() const{return fTOF;}
  Bool_t GetITS() const{return fITS;}
  Bool_t GetTRD() const{return fTRD;}
  Int_t GetMatch() const{return fMatch;}
  Bool_t GetForceTOFforKaons() const{return fForceTOFforKaons;}
  Bool_t GetCompat() const{return fCompat;}
  Bool_t GetMC() const{return fMC;}
  Bool_t GetOnePad() const{return fOnePad;}
  Bool_t GetppLowEn2011() const {return fppLowEn2011;}
  Bool_t GetMCLowEn2011() const {return fMCLowEn2011;}
  Bool_t GetPbPb() const{return fPbPb;}
  Bool_t GetTOFdecide() const{return fTOFdecide;}
  Double_t GetPCompatTOF() const{return fPCompatTOF;}
  Double_t GetnSigmaCompatTPC() const{return fnSigmaCompat[0];}
  Double_t GetnSigmaCompatTOF() const{return fnSigmaCompat[1];}
  Bool_t GetOldPid(){return fOldPid;}
  Double_t GetPtThresholdTPC(){return fPtThresholdTPC;}
  Double_t GetMaxTrackMomForCombinedPID(){return fMaxTrackMomForCombinedPID;}
  AliPIDResponse *GetPidResponse() const {return fPidResponse;}
  AliPIDCombined *GetPidCombined() const {return fPidCombined;}
  ECombDetectors GetCombDetectors() const {
    return fCombDetectors;
  }
  Bool_t GetUseCombined() {return fUseCombined;}
  Bool_t GetDefaultPriors() {return fDefaultPriors;}
  
  Int_t RawSignalPID (AliAODTrack *track, TString detector) const;
  Bool_t IsKaonRaw (AliAODTrack *track, TString detector) const;
  Bool_t IsPionRaw (AliAODTrack *track, TString detector) const;
  Bool_t IsProtonRaw (AliAODTrack *track, TString detector) const;
  Bool_t IsElectronRaw (AliAODTrack *track, TString detector) const;
  void CombinedProbability(AliAODTrack *track,Bool_t *type) const; //0 = pion, 1 = kaon, 2 = proton
  Bool_t CheckStatus(AliAODTrack *track,TString detectors) const;
  
  Bool_t CheckITSPIDStatus(AliAODTrack *track) const;
  Bool_t CheckTPCPIDStatus(AliAODTrack *track) const;
  Bool_t CheckTOFPIDStatus(AliAODTrack *track) const;
  Bool_t CheckTRDPIDStatus(AliAODTrack *track) const;
  
  Bool_t TPCRawAsym(AliAODTrack* track,Int_t specie) const;
  Int_t MatchTPCTOF(AliAODTrack *track,Int_t specie);
  
  Int_t MakeRawPid(AliAODTrack *track,Int_t specie); //general method to perform PID using raw signals
  
  Bool_t IsTOFPiKexcluded(AliAODTrack *track,Double_t nsigmaK);
  
  Bool_t IsExcluded(AliAODTrack *track, Int_t labelTrack, Double_t nsigmaCut, TString detector);
  
  void GetTPCBetheBlochParams(Double_t alephParameters[5]) const;
  void SetBetheBloch();
  // method for AliPIDCombined object
  void SetSelectedSpecies(Int_t ispecies = AliPID::kSPECIES){GetPidCombined()->SetSelectedSpecies(ispecies);};
  void SetPriorDistribution(AliPID::EParticleType type,TH1F *prior);
  void DrawPrior(AliPID::EParticleType type);
  void SetPriorsHistos(TString priorFileName);
  void SetUpCombinedPID();
  void SetUseCombined(Bool_t useCombined=kTRUE) {fUseCombined=useCombined;}
  void SetUseDefaultPriors(Bool_t defaultP)	    {fDefaultPriors=defaultP;}
  Int_t ApplyPidTPCRaw(AliAODTrack *track,Int_t specie) const;
  Int_t ApplyPidTOFRaw(AliAODTrack *track,Int_t specie) const;
  Int_t ApplyPidITSRaw(AliAODTrack *track,Int_t specie) const;
  Int_t ApplyTOFCompatibilityBand(AliAODTrack *track,Int_t specie) const;
  
  void PrintAll() const;

  //Assymetric PID using histograms
  void SetIdBand(AliPID::EParticleType specie, AliPIDResponse::EDetector detector, TH1F *min, TH1F *max);
  void SetIdBand(AliPID::EParticleType specie, AliPIDResponse::EDetector detector, TF1 *min, TF1 *max);
  void SetCompBand(AliPID::EParticleType specie, AliPIDResponse::EDetector detector, TH1F *min, TH1F *max);
  void SetCompBand(AliPID::EParticleType specie, AliPIDResponse::EDetector detector, TF1 *min, TF1 *max);
  Bool_t CheckDetectorPIDStatus(AliPIDResponse::EDetector detector, AliAODTrack *track);
  Float_t NumberOfSigmas(AliPID::EParticleType specie, AliPIDResponse::EDetector detector, AliAODTrack *track);
  Int_t CheckBands(AliPID::EParticleType specie, AliPIDResponse::EDetector detector, AliAODTrack *track);
  TF1 *GetIdBandMin(AliPID::EParticleType specie, AliPIDResponse::EDetector detector) { return fIdBandMin[((int) specie)][((int) detector)]; }
  TF1 *GetIdBandMax(AliPID::EParticleType specie, AliPIDResponse::EDetector detector) { return fIdBandMax[((int) specie)][((int) detector)]; }
  TF1 *GetCompBandMin(AliPID::EParticleType specie, AliPIDResponse::EDetector detector) { return fCompBandMin[((int) specie)][((int) detector)]; }
  TF1 *GetCompBandMax(AliPID::EParticleType specie, AliPIDResponse::EDetector detector) { return fCompBandMax[((int) specie)][((int) detector)]; }

  //Some suggested asymmetric PID
  void SetShiftedAsymmetricPID();
  void SetIdAsymmetricPID();
  void SetIdCompAsymmetricPID();
  
protected:
  
  
private:
  Int_t fnNSigma; // number of sigmas
  Double_t *fnSigma; // [fnNSigma], sigma for the raw signal PID: 0-2 for TPC, 3 for TOF, 4 for ITS
  Double_t fTOFSigma; // TOF precision
  Double_t fCutTOFmismatch; // Cut of TOF mismatch probability
  UInt_t fMinNClustersTPCPID;       // Minimum TPC PID clusters cut
  Int_t fnPriors; //number of priors
  Double_t *fPriors; // [fnPriors], set of priors
  Int_t fnPLimit; //number of Plimit
  Double_t *fPLimit; // [fnPLimit], limit of p intervals for asimmetric PID: fPLimit<p[0], fPLimit[0]<p<fPLimit[1], p>fPLimit[1]
  Bool_t fAsym; // asimmetric PID required
  Bool_t fTPC; //switch to include or exclude TPC
  Bool_t fTOF; // switch to include or exclude TOF
  Bool_t fITS; //switch to include or exclude ITS
  Bool_t fTRD; // switch to include or exclude TRD
  Int_t fMatch; //switch to combine the info from more detectors: 1 = || , 2 = &, 3 = p region
  Bool_t fForceTOFforKaons; // force TOF for kaons in mode fMatch==5
  Bool_t fCompat; // compatibility region : useful only if fMatch=1
  Double_t fPCompatTOF; //  compatibility p limit for TOF
  Bool_t fUseAsymTOF; // flag for using asymmetrig nSigmaCut in TOF for fMatch==1
  Double_t fLownSigmaTOF;  // lower nsigma TOF (for fUseAsymTOF)
  Double_t fUpnSigmaTOF;  // upper nsigma TOF (for fUseAsymTOF)
  Double_t fLownSigmaCompatTOF;  // lower nsigma TOF (for fUseAsymTOF)
  Double_t fUpnSigmaCompatTOF;  // upper nsigma TOF (for fUseAsymTOF)
  Int_t fnNSigmaCompat; // number of sigmas
  Double_t *fnSigmaCompat; //[fnNSigmaCompat]  0: n sigma for TPC compatibility band, 1: for TOF
  Double_t fMaxnSigmaCombined[3];  // nSigma cut for pi,K,p (TPC^2+TOF^2)
  Double_t fMinnSigmaTPC[3]; //min. of nSigma range for pi,K,p in TPC (match==5)
  Double_t fMaxnSigmaTPC[3]; //max. of nSigma range for pi,K,p in TPC (match==5)
  Double_t fMinnSigmaTOF[3]; //min. of nSigma range for pi,K,p in TOF (match==5)
  Double_t fMaxnSigmaTOF[3]; //max. of nSigma range for pi,K,p in TOF (match==5)
  Bool_t fMC; // MC(kTRUE) or real data (kFALSE, default option)
  Bool_t fOnePad; //  real data with one pad clusters
  Bool_t fMCLowEn2011; //  MC for low energy MC
  Bool_t fppLowEn2011; //  Data for low energy pp 2011
  Bool_t fPbPb; //  real data PbPb
  Bool_t fTOFdecide; //  real data PbPb
  Bool_t fOldPid; //  old PID method implemented
  Double_t fPtThresholdTPC; //  pT threshold to use TPC PID
  Double_t fMaxTrackMomForCombinedPID; // momentum threshold to use PID
  AliPIDResponse *fPidResponse; //! pid response
  AliPIDCombined* fPidCombined; //! combined PID object
  
  AliTPCPIDResponse* fTPCResponse; //! TPC response
  
  TH1F* fPriorsH[AliPID::kSPECIES]; // priors histos
  ECombDetectors fCombDetectors; // detectors to be involved for combined PID
  Bool_t fUseCombined; // detectors to be involved for combined PID
  Bool_t fDefaultPriors; // use default priors for combined PID

  //Storage of identification/compatibility band for different species and detectors:
  TF1 *fIdBandMin[AliPID::kSPECIES][4];
  TF1 *fIdBandMax[AliPID::kSPECIES][4];
  TF1 *fCompBandMin[AliPID::kSPECIES][4];
  TF1 *fCompBandMax[AliPID::kSPECIES][4];

  ClassDef(AliAODPidHF,24) // AliAODPid for heavy flavor PID

};

struct HistFunc {
   HistFunc(TH1F *f): fHist(f) {}
   double operator() (double *x, double * ) const {
      TAxis *axis = fHist->GetXaxis();
      Int_t bin = axis->FindBin(x[0]);
      if (x[0] == axis->GetXmax()) {
        bin = axis->GetNbins();
      }
      return fHist->GetBinContent(bin);

   }
   TH1F *fHist;
};

#endif

 AliAODPidHF.h:1
 AliAODPidHF.h:2
 AliAODPidHF.h:3
 AliAODPidHF.h:4
 AliAODPidHF.h:5
 AliAODPidHF.h:6
 AliAODPidHF.h:7
 AliAODPidHF.h:8
 AliAODPidHF.h:9
 AliAODPidHF.h:10
 AliAODPidHF.h:11
 AliAODPidHF.h:12
 AliAODPidHF.h:13
 AliAODPidHF.h:14
 AliAODPidHF.h:15
 AliAODPidHF.h:16
 AliAODPidHF.h:17
 AliAODPidHF.h:18
 AliAODPidHF.h:19
 AliAODPidHF.h:20
 AliAODPidHF.h:21
 AliAODPidHF.h:22
 AliAODPidHF.h:23
 AliAODPidHF.h:24
 AliAODPidHF.h:25
 AliAODPidHF.h:26
 AliAODPidHF.h:27
 AliAODPidHF.h:28
 AliAODPidHF.h:29
 AliAODPidHF.h:30
 AliAODPidHF.h:31
 AliAODPidHF.h:32
 AliAODPidHF.h:33
 AliAODPidHF.h:34
 AliAODPidHF.h:35
 AliAODPidHF.h:36
 AliAODPidHF.h:37
 AliAODPidHF.h:38
 AliAODPidHF.h:39
 AliAODPidHF.h:40
 AliAODPidHF.h:41
 AliAODPidHF.h:42
 AliAODPidHF.h:43
 AliAODPidHF.h:44
 AliAODPidHF.h:45
 AliAODPidHF.h:46
 AliAODPidHF.h:47
 AliAODPidHF.h:48
 AliAODPidHF.h:49
 AliAODPidHF.h:50
 AliAODPidHF.h:51
 AliAODPidHF.h:52
 AliAODPidHF.h:53
 AliAODPidHF.h:54
 AliAODPidHF.h:55
 AliAODPidHF.h:56
 AliAODPidHF.h:57
 AliAODPidHF.h:58
 AliAODPidHF.h:59
 AliAODPidHF.h:60
 AliAODPidHF.h:61
 AliAODPidHF.h:62
 AliAODPidHF.h:63
 AliAODPidHF.h:64
 AliAODPidHF.h:65
 AliAODPidHF.h:66
 AliAODPidHF.h:67
 AliAODPidHF.h:68
 AliAODPidHF.h:69
 AliAODPidHF.h:70
 AliAODPidHF.h:71
 AliAODPidHF.h:72
 AliAODPidHF.h:73
 AliAODPidHF.h:74
 AliAODPidHF.h:75
 AliAODPidHF.h:76
 AliAODPidHF.h:77
 AliAODPidHF.h:78
 AliAODPidHF.h:79
 AliAODPidHF.h:80
 AliAODPidHF.h:81
 AliAODPidHF.h:82
 AliAODPidHF.h:83
 AliAODPidHF.h:84
 AliAODPidHF.h:85
 AliAODPidHF.h:86
 AliAODPidHF.h:87
 AliAODPidHF.h:88
 AliAODPidHF.h:89
 AliAODPidHF.h:90
 AliAODPidHF.h:91
 AliAODPidHF.h:92
 AliAODPidHF.h:93
 AliAODPidHF.h:94
 AliAODPidHF.h:95
 AliAODPidHF.h:96
 AliAODPidHF.h:97
 AliAODPidHF.h:98
 AliAODPidHF.h:99
 AliAODPidHF.h:100
 AliAODPidHF.h:101
 AliAODPidHF.h:102
 AliAODPidHF.h:103
 AliAODPidHF.h:104
 AliAODPidHF.h:105
 AliAODPidHF.h:106
 AliAODPidHF.h:107
 AliAODPidHF.h:108
 AliAODPidHF.h:109
 AliAODPidHF.h:110
 AliAODPidHF.h:111
 AliAODPidHF.h:112
 AliAODPidHF.h:113
 AliAODPidHF.h:114
 AliAODPidHF.h:115
 AliAODPidHF.h:116
 AliAODPidHF.h:117
 AliAODPidHF.h:118
 AliAODPidHF.h:119
 AliAODPidHF.h:120
 AliAODPidHF.h:121
 AliAODPidHF.h:122
 AliAODPidHF.h:123
 AliAODPidHF.h:124
 AliAODPidHF.h:125
 AliAODPidHF.h:126
 AliAODPidHF.h:127
 AliAODPidHF.h:128
 AliAODPidHF.h:129
 AliAODPidHF.h:130
 AliAODPidHF.h:131
 AliAODPidHF.h:132
 AliAODPidHF.h:133
 AliAODPidHF.h:134
 AliAODPidHF.h:135
 AliAODPidHF.h:136
 AliAODPidHF.h:137
 AliAODPidHF.h:138
 AliAODPidHF.h:139
 AliAODPidHF.h:140
 AliAODPidHF.h:141
 AliAODPidHF.h:142
 AliAODPidHF.h:143
 AliAODPidHF.h:144
 AliAODPidHF.h:145
 AliAODPidHF.h:146
 AliAODPidHF.h:147
 AliAODPidHF.h:148
 AliAODPidHF.h:149
 AliAODPidHF.h:150
 AliAODPidHF.h:151
 AliAODPidHF.h:152
 AliAODPidHF.h:153
 AliAODPidHF.h:154
 AliAODPidHF.h:155
 AliAODPidHF.h:156
 AliAODPidHF.h:157
 AliAODPidHF.h:158
 AliAODPidHF.h:159
 AliAODPidHF.h:160
 AliAODPidHF.h:161
 AliAODPidHF.h:162
 AliAODPidHF.h:163
 AliAODPidHF.h:164
 AliAODPidHF.h:165
 AliAODPidHF.h:166
 AliAODPidHF.h:167
 AliAODPidHF.h:168
 AliAODPidHF.h:169
 AliAODPidHF.h:170
 AliAODPidHF.h:171
 AliAODPidHF.h:172
 AliAODPidHF.h:173
 AliAODPidHF.h:174
 AliAODPidHF.h:175
 AliAODPidHF.h:176
 AliAODPidHF.h:177
 AliAODPidHF.h:178
 AliAODPidHF.h:179
 AliAODPidHF.h:180
 AliAODPidHF.h:181
 AliAODPidHF.h:182
 AliAODPidHF.h:183
 AliAODPidHF.h:184
 AliAODPidHF.h:185
 AliAODPidHF.h:186
 AliAODPidHF.h:187
 AliAODPidHF.h:188
 AliAODPidHF.h:189
 AliAODPidHF.h:190
 AliAODPidHF.h:191
 AliAODPidHF.h:192
 AliAODPidHF.h:193
 AliAODPidHF.h:194
 AliAODPidHF.h:195
 AliAODPidHF.h:196
 AliAODPidHF.h:197
 AliAODPidHF.h:198
 AliAODPidHF.h:199
 AliAODPidHF.h:200
 AliAODPidHF.h:201
 AliAODPidHF.h:202
 AliAODPidHF.h:203
 AliAODPidHF.h:204
 AliAODPidHF.h:205
 AliAODPidHF.h:206
 AliAODPidHF.h:207
 AliAODPidHF.h:208
 AliAODPidHF.h:209
 AliAODPidHF.h:210
 AliAODPidHF.h:211
 AliAODPidHF.h:212
 AliAODPidHF.h:213
 AliAODPidHF.h:214
 AliAODPidHF.h:215
 AliAODPidHF.h:216
 AliAODPidHF.h:217
 AliAODPidHF.h:218
 AliAODPidHF.h:219
 AliAODPidHF.h:220
 AliAODPidHF.h:221
 AliAODPidHF.h:222
 AliAODPidHF.h:223
 AliAODPidHF.h:224
 AliAODPidHF.h:225
 AliAODPidHF.h:226
 AliAODPidHF.h:227
 AliAODPidHF.h:228
 AliAODPidHF.h:229
 AliAODPidHF.h:230
 AliAODPidHF.h:231
 AliAODPidHF.h:232
 AliAODPidHF.h:233
 AliAODPidHF.h:234
 AliAODPidHF.h:235
 AliAODPidHF.h:236
 AliAODPidHF.h:237
 AliAODPidHF.h:238
 AliAODPidHF.h:239
 AliAODPidHF.h:240
 AliAODPidHF.h:241
 AliAODPidHF.h:242
 AliAODPidHF.h:243
 AliAODPidHF.h:244
 AliAODPidHF.h:245
 AliAODPidHF.h:246
 AliAODPidHF.h:247
 AliAODPidHF.h:248
 AliAODPidHF.h:249
 AliAODPidHF.h:250
 AliAODPidHF.h:251
 AliAODPidHF.h:252
 AliAODPidHF.h:253
 AliAODPidHF.h:254
 AliAODPidHF.h:255
 AliAODPidHF.h:256
 AliAODPidHF.h:257
 AliAODPidHF.h:258
 AliAODPidHF.h:259
 AliAODPidHF.h:260
 AliAODPidHF.h:261
 AliAODPidHF.h:262
 AliAODPidHF.h:263
 AliAODPidHF.h:264
 AliAODPidHF.h:265
 AliAODPidHF.h:266
 AliAODPidHF.h:267
 AliAODPidHF.h:268
 AliAODPidHF.h:269
 AliAODPidHF.h:270
 AliAODPidHF.h:271
 AliAODPidHF.h:272
 AliAODPidHF.h:273
 AliAODPidHF.h:274
 AliAODPidHF.h:275
 AliAODPidHF.h:276
 AliAODPidHF.h:277
 AliAODPidHF.h:278
 AliAODPidHF.h:279
 AliAODPidHF.h:280
 AliAODPidHF.h:281
 AliAODPidHF.h:282
 AliAODPidHF.h:283
 AliAODPidHF.h:284
 AliAODPidHF.h:285
 AliAODPidHF.h:286
 AliAODPidHF.h:287
 AliAODPidHF.h:288
 AliAODPidHF.h:289
 AliAODPidHF.h:290
 AliAODPidHF.h:291
 AliAODPidHF.h:292
 AliAODPidHF.h:293
 AliAODPidHF.h:294
 AliAODPidHF.h:295
 AliAODPidHF.h:296
 AliAODPidHF.h:297
 AliAODPidHF.h:298
 AliAODPidHF.h:299
 AliAODPidHF.h:300
 AliAODPidHF.h:301
 AliAODPidHF.h:302
 AliAODPidHF.h:303
 AliAODPidHF.h:304