ROOT logo
#ifndef ALITWOPARTICLEPIDCORR_H
#define ALITWOPARTICLEPIDCORR_H

#include "THn.h" // in cxx file causes .../THn.h:257: error: conflicting declaration ‘typedef class THnT<float> THnF’


class TH1F;
class TH2F;
class TH3F;
class THnSparse;
class TString;
class TList;
//class AliESDtrackCuts;
class TSeqCollection;
class AliPIDResponse;
class AliPIDCombined;  
class AliAODEvent;
class AliVEvent;
class AliAODTrack;
class AliVTrack;
class AliAODv0;
class AliAODVertex;
class AliEventPoolManager;
class TFormula;
class AliAnalysisUtils;
class LRCParticlePID;
class AliVParticle;
class AliCFContainer;
class AliCFGridSparse;
class THnBase;
class AliTHn;
class TProfile;


#include <TObject.h> //LRCParticlePID is a derived class from"TObject"
#include "TMath.h"
#include "TNamed.h"
#include "AliUEHist.h"
#include "AliPID.h"
#include "AliAnalysisTask.h"
#include "AliUEHist.h"
#include "TString.h"
#include "AliVParticle.h"
#include "TParticle.h"
#include "AliLog.h"
#include "AliTHn.h"
#include "TBits.h"


#ifndef ALIANALYSISTASKSE_H
#include "AliAnalysisTaskSE.h"
#endif

namespace AliPIDNameSpace {
  
  enum PIDType
  {
    NSigmaTPC = 0,
    NSigmaTOF,
    NSigmaTPCTOF,  // squared sum
    Bayes    
  };
  const Int_t NSigmaPIDType=NSigmaTPCTOF;//number of Nsigma PID types
    
  enum AliDetectorType
  {
    fITS = 0,
    fTPC,
    fTOF,
    fNDetectors
  };
  
  
  enum AliParticleSpecies
  {
    SpPion = 0,
    SpKaon,
    SpProton,
    unidentified,
    SpKs0,
    SpLam,
    SpALam,
    SpKsBckg,
    SpLamBckg,
    SpALamBckg,
    NSpecies=unidentified,//for pion, kaon and proton part only not for v0s
    SpUndefined=999
  }; // Particle species used in plotting
  
  
  enum AliCharge
  {
    Posch = 0,
    Negch,
    NCharge
  };
}


using namespace AliPIDNameSpace;

class AliTwoParticlePIDCorr : public AliAnalysisTaskSE {
 public:
    AliTwoParticlePIDCorr();
    AliTwoParticlePIDCorr(const char *name);
    virtual ~AliTwoParticlePIDCorr();
    
    virtual void     UserCreateOutputObjects();
    virtual void     UserExec(Option_t *option);
    virtual void    doAODevent();
    virtual void    doMCAODevent();
    virtual void     Terminate(Option_t *);
  void	   SetSharedClusterCut(Double_t value) { fSharedClusterCut = value; }
  void	   SetSharedTPCmapCut(Double_t value1) { fSharedTPCmapCut = value1; }
  void	   SetSharedfraction_Pair_cut(Double_t value2) { fSharedfraction_Pair_cut = value2; }


  void SettwoTrackEfficiencyCutDataReco(Bool_t twoTrackEfficiencyCutDataReco,Float_t twoTrackEfficiencyCutValue1,Float_t TwoTrackCutMinRadius,Float_t TwoTrackCutMaxRadius)
  {
    ftwoTrackEfficiencyCutDataReco=twoTrackEfficiencyCutDataReco;
    twoTrackEfficiencyCutValue=twoTrackEfficiencyCutValue1;
    fTwoTrackCutMinRadius=TwoTrackCutMinRadius;
    fTwoTrackCutMaxRadius=TwoTrackCutMaxRadius;
  }
  void SetVertextype(Int_t Vertextype){fVertextype=Vertextype;}                                                 //Check it every time
    void SetZvtxcut(Double_t zvtxcut) {fzvtxcut=zvtxcut;}
    void SetZvtxcut_MC(Double_t VxMax_MC,Double_t VyMax_MC,Double_t VzMax_MC) {
fVxMax_MC=VxMax_MC;
fVyMax_MC=VyMax_MC;
fVzMax_MC=VzMax_MC;
}

    void SetCustomBinning(TString receivedCustomBinning) { fCustomBinning = receivedCustomBinning; }
    void SetMaxNofMixingTracks(Int_t MaxNofMixingTracks) {fMaxNofMixingTracks=MaxNofMixingTracks;}               //Check it every time
  void SetCentralityEstimator(TString CentralityMethod) { fCentralityMethod = CentralityMethod;}
  void SetPPVsMultUtils(Bool_t val)  {fPPVsMultUtils = val;}
  void SetSampleType(TString SampleType) {fSampleType=SampleType;}
  void SetRequestEventPlane(Bool_t RequestEventPlane,Bool_t RequestEventPlanemixing,Bool_t V2,Bool_t V3,TString EPdetector,Bool_t IsAfter2011){
fRequestEventPlane=RequestEventPlane;
fRequestEventPlanemixing=RequestEventPlanemixing;
fV2=V2;
fV3=V3;
fEPdet=EPdetector;
fIsAfter2011=IsAfter2011;
}
  void SetAnalysisType(TString AnalysisType){fAnalysisType=AnalysisType;}
  void SetFilterBit(Int_t FilterBit) {fFilterBit=FilterBit;}
  void SetTrackStatus(UInt_t status) { fTrackStatus = status; }
  void SetfilltrigassoUNID(Bool_t filltrigassoUNID){ffilltrigassoUNID=filltrigassoUNID;}
  void SetfilltrigUNIDassoID(Bool_t filltrigUNIDassoID){ffilltrigUNIDassoID=filltrigUNIDassoID;}
  void SetfilltrigIDassoUNID(Bool_t filltrigIDassoUNID){ffilltrigIDassoUNID=filltrigIDassoUNID;}
  void SetfilltrigIDassoID(Bool_t filltrigIDassoID){ ffilltrigIDassoID=filltrigIDassoID;}
  void SetfilltrigIDassoIDMCTRUTH(Bool_t filltrigIDassoIDMCTRUTH){ffilltrigIDassoIDMCTRUTH=filltrigIDassoIDMCTRUTH;}
  void SetSelectHighestPtTrig(Bool_t SelectHighestPtTrig){fSelectHighestPtTrig=SelectHighestPtTrig;}
  void SetTriggerSpeciesSelection(Bool_t TriggerSpeciesSelection,Int_t TriggerSpecies,Bool_t containPIDtrig){
    fTriggerSpeciesSelection=TriggerSpeciesSelection;//if it is KTRUE then Set containPIDtrig=kFALSE
    fTriggerSpecies=TriggerSpecies;
    fcontainPIDtrig=containPIDtrig;
  }
  void SetAssociatedSpeciesSelection(Bool_t AssociatedSpeciesSelection,Int_t AssociatedSpecies, Bool_t containPIDasso)
  {
    fAssociatedSpeciesSelection=AssociatedSpeciesSelection;//if it is KTRUE then Set containPIDasso=kFALSE
    fAssociatedSpecies=AssociatedSpecies;
    fcontainPIDasso=containPIDasso;
  }

  void SettingChargeCounting(Int_t val) {SetChargeAxis=val;}

 void SetFIllPIDQAHistos(Bool_t FIllPIDQAHistos){fFIllPIDQAHistos=FIllPIDQAHistos;}
  void SetRejectPileUp(Bool_t rejectPileUp) {frejectPileUp=rejectPileUp;}
  void SetCheckFirstEventInChunk(Bool_t CheckFirstEventInChunk) {fCheckFirstEventInChunk=CheckFirstEventInChunk;}

  void SetKinematicCuts(Float_t minPt, Float_t maxPt,Float_t mineta,Float_t maxeta)
  {
    fminPt=minPt;
    fmaxPt=maxPt;
    fmineta=mineta;
    fmaxeta=maxeta;
  }
  void SetDcaCut(Bool_t dcacut,Double_t dcacutvalue)
  {
    fdcacut=dcacut;
    fdcacutvalue=dcacutvalue;
  }
  void SetfillHistQA(Bool_t fillhistQAReco,Bool_t fillhistQATruth)
  {
    ffillhistQAReco=fillhistQAReco;
    ffillhistQATruth=fillhistQATruth;
  }
  void SetPtordering(Bool_t PtOrderDataReco,Bool_t PtOrderMCTruth)
  {
    fPtOrderDataReco=PtOrderDataReco;
    fPtOrderMCTruth=PtOrderMCTruth;
  }
  void SetWeightPerEvent(Bool_t flag) {  fWeightPerEvent = flag;}
  void Setselectprimarydatareco(Bool_t onlyprimarydatareco) {fonlyprimarydatareco=onlyprimarydatareco;}
  void SetselectprimaryTruth(Bool_t selectprimaryTruth) {fselectprimaryTruth=selectprimaryTruth;}
  void SetCombinedNSigmaCut(Double_t NSigmaPID) {fNSigmaPID=NSigmaPID;}
  void SetHighPtKaonNSigmaPID(Float_t HighPtKaonSigma,Float_t HighPtKaonNSigmaPID)
  {
    fHighPtKaonSigma=HighPtKaonSigma;
    fHighPtKaonNSigmaPID=HighPtKaonNSigmaPID;
  }
  void IgnoreoverlappedTracks(Bool_t UseExclusiveNSigma){fUseExclusiveNSigma=UseExclusiveNSigma;}
  void SetRemoveTracksT0Fill( Bool_t RemoveTracksT0Fill){fRemoveTracksT0Fill=RemoveTracksT0Fill;}
  void SetPairSelectCharge(Int_t SelectCharge){fSelectCharge=SelectCharge;}
  void SetTrigAssoSelectcharge( Int_t TriggerSelectCharge,Int_t AssociatedSelectCharge)
  {
    fTriggerSelectCharge=TriggerSelectCharge;
    fAssociatedSelectCharge=AssociatedSelectCharge;
  }
  void SetEtaOrdering(Bool_t EtaOrdering){fEtaOrdering=EtaOrdering;}
  void SetCutConversionsResonances( Bool_t CutConversions,Bool_t CutResonances)
  {
     fCutConversions=CutConversions;
     fCutResonances=CutResonances;
  }
  void SetCleanUp(Bool_t InjectedSignals,Bool_t RemoveWeakDecays,Bool_t RemoveDuplicates)
  {
    fInjectedSignals=InjectedSignals;
    fRemoveWeakDecays=RemoveWeakDecays;
    fRemoveDuplicates=RemoveDuplicates;
  }
  void SetEfficiency(Bool_t fillefficiency,Bool_t applyTrigefficiency,Bool_t applyAssoefficiency)
    {
      ffillefficiency=fillefficiency;
      fapplyTrigefficiency=applyTrigefficiency;
      fapplyAssoefficiency=applyAssoefficiency;

    }
  void SetComboeffPtRange(Double_t minPtComboeff,Double_t maxPtComboeff) {
    fminPtComboeff=minPtComboeff;
    fmaxPtComboeff=maxPtComboeff;}
  //only one can be kTRUE at a time(for the next two Setters)
  void Setmesoneffrequired(Bool_t mesoneffrequired) {fmesoneffrequired=mesoneffrequired;}
  void Setkaonprotoneffrequired(Bool_t kaonprotoneffrequired){fkaonprotoneffrequired=kaonprotoneffrequired;}
   void SetOnlyOneEtaSide(Int_t OnlyOneEtaSide){fOnlyOneEtaSide=OnlyOneEtaSide;}
   void SetRejectResonanceDaughters(Int_t RejectResonanceDaughters){fRejectResonanceDaughters=RejectResonanceDaughters;}

void SetTOFPIDVal(Bool_t RequestTOFPID,Float_t PtTOFPIDmin,Float_t PtTOFPIDmax)
   {
fRequestTOFPID=RequestTOFPID;
fPtTOFPIDmin=PtTOFPIDmin;
fPtTOFPIDmax=PtTOFPIDmax;
}

 void SetEffcorectionfilePathName(TString efffilename) {fefffilename=efffilename;}
 

  //PID Type
  void SetPIDType(PIDType PIDmethod) { fPIDType = PIDmethod; }
  PIDType GetPIDType() {return fPIDType; }
  //NSigma cut
  //set cut on beyesian probability
  void SetBayesCut(Double_t cut){fBayesCut=cut;}
  void SetdiffPIDcutvalues(Bool_t diffPIDcutvalues,Double_t PIDCutval1, Double_t PIDCutval2, Double_t PIDCutval3,Double_t PIDCutval4){
    fdiffPIDcutvalues=diffPIDcutvalues;
    fPIDCutval1=PIDCutval1;
    fPIDCutval2=PIDCutval2;
    fPIDCutval3=PIDCutval3;
    fPIDCutval4=PIDCutval4;
  }
 void  SetRandomizeReactionPlane(Bool_t RandomizeReactionPlane){fRandomizeReactionPlane=RandomizeReactionPlane;}
 
   //****************************************************************************************EP related part
  void OpenInfoCalbration(Int_t run);
  void SetTPCclusterN(Int_t ncl){fNcluster=ncl;};
   //****************************************************************************************EP related part
//--------------------------------------------------------------------------//
//v0 daughters

void SetV0TrigCorr(Bool_t V0TrigCorr){fV0TrigCorr=V0TrigCorr;}
void SetUsev0DaughterPID(Bool_t Usev0DaughterPID){fUsev0DaughterPID=Usev0DaughterPID;}

 void SetCutsForV0AndDaughters(Double_t MinPtDaughter,Double_t MaxPtDaughter ,Double_t DCAtoPrimVtx, Double_t MaxDCADaughter,Double_t MinCPA,Double_t MaxBoundary,Double_t DaughNClsTPC,Float_t FracSharedTPCcls)
{
  //fEtaLimitDaughter=EtaLimit;//0.8
fMinPtDaughter=MinPtDaughter;//1.0 GeV/c for our AliHelper
fMaxPtDaughter=MaxPtDaughter;//4.0 GeV/c
fDCAToPrimVtx=DCAtoPrimVtx;//0.1 cm
fMaxDCADaughter=MaxDCADaughter;//1.0 cm
fMinCPA=MinCPA;//0.998
lMax=MaxBoundary;//100 cm
fDaugNClsTPC=DaughNClsTPC;//70
fFracTPCcls=FracSharedTPCcls;//0.4
}


 private:                                                                                      
 //histograms
    TList *fOutput;        //! Output list
    TList *fOutputList;        //! Output list
    TList *fList;              //! List for output objects


    TString    fCentralityMethod;     // Method to determine centrality
    Bool_t fPPVsMultUtils;//switch to ON quantile information for pp 7 TeV case
    TString    fSampleType;     // pp,p-Pb,Pb-Pb
    Bool_t fRequestEventPlane; //only for PbPb
    Bool_t fRequestEventPlanemixing; //only for PbPb
    Int_t    fnTracksVertex;        // QA tracks pointing to principal vertex
    AliAODVertex* trkVtx;//!
    Float_t zvtx;
    Int_t    fFilterBit;         // track selection cuts
     UInt_t         fTrackStatus;       // if non-0, the bits set in this variable are required for each track
    Double_t       fSharedClusterCut;  // cut on shared clusters (only for AOD, give the actual cut value)
    Double_t fSharedTPCmapCut;//cut on TPC shared map(set any non negative value to implement this cut automatically, no meaning of the value itself)
    Double_t fSharedfraction_Pair_cut;//cut on pairs at the correlation level to check whether the correlating pair has large shared clusters(set fraction percentage to be set as cut off)
    Int_t fVertextype;
    Int_t skipParticlesAbove;
    Double_t fzvtxcut;
    Double_t fVxMax_MC;
    Double_t fVyMax_MC;
    Double_t fVzMax_MC;

    Bool_t ffilltrigassoUNID;
    Bool_t ffilltrigUNIDassoID;
    Bool_t ffilltrigIDassoUNID;
    Bool_t ffilltrigIDassoID;
    Bool_t ffilltrigIDassoIDMCTRUTH;
    Int_t fMaxNofMixingTracks;
    Bool_t fPtOrderMCTruth;
    Bool_t fPtOrderDataReco;
    Bool_t fWeightPerEvent;
    Bool_t fTriggerSpeciesSelection;
    Bool_t fAssociatedSpeciesSelection;
    Bool_t fRandomizeReactionPlane;
    Int_t fTriggerSpecies;
    Int_t fAssociatedSpecies;
    TString fCustomBinning;//for setting customized binning
    TString fBinningString;//final binning string
    Bool_t fSelectHighestPtTrig;
    Bool_t fcontainPIDtrig;
    Bool_t fcontainPIDasso;
    Int_t SetChargeAxis;
     Bool_t frejectPileUp;
     Bool_t fCheckFirstEventInChunk;
    Float_t fminPt;
    Float_t fmaxPt;
    Float_t fmineta;
    Float_t fmaxeta;
    Bool_t fselectprimaryTruth;
    Bool_t fonlyprimarydatareco;
    Bool_t fdcacut;
    Double_t fdcacutvalue;
    Bool_t ffillhistQAReco;
    Bool_t ffillhistQATruth;
    Int_t kTrackVariablesPair ;
    Double_t fminPtTrig;
    Double_t fmaxPtTrig;
    Double_t fminPtComboeff;
    Double_t fmaxPtComboeff;
    Double_t fminPtAsso;
    Double_t fmaxPtAsso;
    Double_t fmincentmult;
    Double_t fmaxcentmult;
    TH1F *fPriHistShare;//!
    TH1F *fhistcentrality;//!
    TH1F *fhistImpactParm;//!
    TH2F *fhistImpactParmvsMult;//!
    TH2F *fNchNpartCorr;//!
    TH1F *fEventCounter; //!
    TH2F *fEtaSpectrasso;//!
    TH2F *fphiSpectraasso;//!
    TH1F *MCtruthpt;//! 
    TH1F *MCtrutheta;//! 
    TH1F *MCtruthphi;//!
    TH1F *MCtruthpionpt;//!
    TH1F *MCtruthpioneta;//!
    TH1F *MCtruthpionphi;//!
    TH1F *MCtruthkaonpt;//!
    TH1F *MCtruthkaoneta;//!
    TH1F *MCtruthkaonphi;//!
    TH1F *MCtruthprotonpt;//!
    TH1F *MCtruthprotoneta;//!
    TH1F *MCtruthprotonphi;//! 
    TH2F *fPioncont;//!
    TH2F *fKaoncont;//!
    TH2F *fProtoncont;//!
    TH2F *fUNIDcont;//!
    TH2F *fEventno;//!
    TH2F *fEventnobaryon;//!
    TH2F *fEventnomeson;//!
    TH2F *fhistJetTrigestimate;//!
    TH3F* fTwoTrackDistancePtdip;//!
    TH3F* fTwoTrackDistancePtdipmix;//!
    TH3F* fTwoTrackDistancePt[2];    //! control histograms for two-track efficiency study: dphi*_min vs deta (0 = before cut, 1 = after cut)
    TH3F* fTwoTrackDistancePtmix[2];    //! control histograms for two-track efficiency study: dphi*_min vs deta (0 = before cut, 1 = after cut)

    TH2D* fCentralityCorrelation;  //! centrality vs Tracks multiplicity
 //VZERO calibration
  TH1F *fHistVZEROAGainEqualizationMap;//VZERO calibration map
  TH1F *fHistVZEROCGainEqualizationMap;//VZERO calibration map
  TH2F *fHistVZEROChannelGainEqualizationMap; //VZERO calibration map
  TH1* fCentralityWeights;		     // for centrality flattening

    TH2F *fHistCentStats; //!centrality stats
    TH2F *fHistRefmult;//!
    TH2F *fHistEQVZEROvsTPCmultiplicity;//!
    TH2F *fHistEQVZEROAvsTPCmultiplicity;//!
    TH2F *fHistEQVZEROCvsTPCmultiplicity;//!
    TH2F *fHistVZEROCvsEQVZEROCmultiplicity;//!
    TH2F *fHistVZEROAvsEQVZEROAmultiplicity;//!
    TH2F *fHistVZEROCvsVZEROAmultiplicity;//!
    TH2F *fHistEQVZEROCvsEQVZEROAmultiplicity;//!
    TH2F *fHistVZEROSignal;//!
    TH2F *fHistEventPlaneTruth;//!
    TH2D *fHistPsiMinusPhi;//! psi - phi QA histogram
    TH3F *fEventPlanePID;//!
   //****************************************************************************************EP related part

    Float_t evplaneMC,fgPsi2v0a,fgPsi2v0c,fgPsi2tpc; // current Psi2
   Float_t fgPsi3v0a,fgPsi3v0c,fgPsi3tpc; // current Psi3
   Float_t fgPsi2v0aMC,fgPsi2v0cMC,fgPsi2tpcMC; // current Psi2
   Float_t fgPsi3v0aMC,fgPsi3v0cMC,fgPsi3tpcMC,gReactionPlane; // current Psi3
  Bool_t fV2; // switch to set the harmonics
  Bool_t fV3; // switch to set the harmonics
  Bool_t fIsAfter2011; // switch for 2011 and later runs

  //    Int_t nCentrBin = 9;          //  cenrality bins

  //
  // Cuts and options
  //

  Int_t fRun;                       // current run checked to load VZERO calibrations

  Int_t fNcluster;           // Numer of TPC cluster required

  TString fEPdet; //Set the name of the event plane to be used to reconstruct the event plane
    
  // Output objects
  TProfile *fMultV0;                //! object containing VZERO calibration information
  Float_t fV0Cpol;          //! loaded by OADB
  Float_t fV0Apol;          //! loaded by OADB
  Float_t fMeanQ[9][2][2];           // and recentering
  Float_t fWidthQ[9][2][2];          // ...
  Float_t fMeanQv3[9][2][2];         // also for v3
  Float_t fWidthQv3[9][2][2];        // ...

  TProfile *fHResTPCv0A2;   //! TProfile for subevent resolution (output)
  TProfile *fHResTPCv0C2;   //! TProfile for subevent resolution (output)
  TProfile *fHResv0Cv0A2;   //! TProfile for subevent resolution (output)
  TProfile *fHResTPCv0A3;    //! also for v3
  TProfile *fHResTPCv0C3;   //! also for v3
  TProfile *fHResv0Cv0A3;   //! also for v3

 TProfile *fHResMA2;   //! TProfile for subevent resolution (output)
  TProfile *fHResMC2;   //! TProfile for subevent resolution (output)
  TProfile *fHResAC2;   //! TProfile for subevent resolution (output)
  TProfile *fHResMA3;    //! also for v3
  TProfile *fHResMC3;   //! also for v3
  TProfile *fHResAC3;   //! also for v3

  TH2F *fPhiRPTPC;          //! EP distribution vs. centrality (v2)
  TH2F *fPhiRPTPCv3;          //! EP distribution vs. centrality (v2)
  TH2F *fPhiRPv0A;          //! EP distribution vs. centrality (v2)
  TH2F *fPhiRPv0C;          //! EP distribution vs. centrality (v2)
  TH2F *fPhiRPv0Av3;      //! EP distribution vs. centrality (v3)
  TH2F *fPhiRPv0Cv3;      //! EP distribution vs. centrality (v3)
    //****************************************************************************************EP related part

    TH2F* fControlConvResoncances; //! control histograms for cuts on conversions and resonances

    TH2F *fHistoTPCdEdx;//!
    TH2F *fHistoTOFbeta;//!
    TH3F *fTPCTOFPion3d;//!
    TH3F *fTPCTOFKaon3d;//!
    TH3F *fTPCTOFProton3d;//!
    TH1F *fPionPt;//!
    TH1F *fPionEta;//!
    TH1F *fPionPhi;//!
    TH1F *fKaonPt;//!
    TH1F *fKaonEta;//!
    TH1F *fKaonPhi;//!
    TH1F *fProtonPt;//!
    TH1F *fProtonEta;//!
    TH1F *fProtonPhi;//!
    // TH3F *fHistocentNSigmaTPC;//! nsigma TPC
    // TH3F *fHistocentNSigmaTOF;//! nsigma TOF 
 
    AliTHn *fCorrelatonTruthPrimary;//!
    AliTHn *fCorrelatonTruthPrimarymix;//!
    AliTHn *fTHnCorrUNID;//!
    AliTHn *fTHnCorrUNIDmix;//!
    AliTHn *fTHnCorrID;//!
    AliTHn *fTHnCorrIDmix;//!
    AliTHn *fTHnCorrIDUNID;//!
    AliTHn *fTHnCorrIDUNIDmix;//!
    AliTHn *fTHnTrigcount;//!
    AliTHn *fTHnTrigcountMCTruthPrim;//!
    AliTHn* fTrackHistEfficiency[6]; //! container for tracking efficiency and contamination (all particles filled including leading one): axes: eta, pT, particle species:::::::::0 pion, 1 kaon,2 proton,3 mesons,4 kaons+protons,5 all

    
    TH1F *fHistQA[16]; //!                  
     
   
    THnSparse *effcorection[6];//!
    // THnF *effmap[6];  

    Int_t ClassifyTrack(AliAODTrack* track,AliAODVertex* vertex,Float_t magfield,Bool_t fill);
  Double_t* GetBinning(const char* configuration, const char* tag, Int_t& nBins);


  void Fillcorrelation(Float_t ReactionPlane,TObjArray *trackstrig,TObjArray *tracksasso,Double_t cent,Float_t vtx,Float_t weight,Bool_t firstTime,Float_t bSign,Bool_t fPtOrder,Bool_t twoTrackEfficiencyCut,Bool_t mixcase,TString fillup);//mixcase=kTRUE in case of mixing; 
 Bool_t CalculateSharedFraction(const TBits *triggerPadMap,const TBits *assocPadMap,const TBits *triggerShareMap,const TBits *assocShareMap);
 Float_t GetTrackbyTrackeffvalue(AliAODTrack* track,Double_t cent,Float_t evzvtx, Int_t parpid);

 //Fill PID and Event planes
 void FillPIDEventPlane(Double_t centrality,Int_t par,Float_t trigphi,Float_t fReactionPlane);
 //V0-h correlation related functions
 TObjArray* GetV0Particles(AliVEvent* event,Double_t cent);
 Bool_t CheckStatusv0Daughter(AliAODTrack *t1 ,AliAODTrack *t2);
 Float_t  GetFractionTPCSharedCls( AliAODTrack *track);
 Bool_t  CheckStatusv0(AliAODv0 *v1);
 Bool_t IsTrackFromV0(AliAODEvent* fAOD,AliAODTrack* track);





//Mixing functions
 // void DefineEventPool();
  AliEventPoolManager    *fPoolMgr;//! 
  TClonesArray          *fArrayMC;//!
  TString          fAnalysisType;          // "MCAOD", "MC", "AOD"
  TString fefffilename;
    //PID part histograms

  //PID functions
    Bool_t HasTPCPID(AliAODTrack *track) const; // has TPC PID
    Bool_t HasTOFPID(AliAODTrack *track) const; // has TOF PID
    Double_t GetBeta(AliAODTrack *track);
    void CalculateNSigmas(AliAODTrack *track, Bool_t FIllQAHistos);
    Int_t FindMinNSigma(AliAODTrack *track, Bool_t FIllQAHistos);
    Bool_t* GetDoubleCounting(AliAODTrack * trk, Bool_t FIllQAHistos);
    Int_t GetParticle(AliAODTrack * trk, Bool_t FIllQAHistos);  
 
     TH2F* GetHistogram2D(const char * name);//!return histogram "name" from fOutputList

     Bool_t ftwoTrackEfficiencyCutDataReco; 
    Float_t fTwoTrackCutMinRadius;
    Float_t fTwoTrackCutMaxRadius;	   
   Float_t twoTrackEfficiencyCutValue;
  //Pid objects
  AliPIDResponse *fPID; //! PID
  AliPIDCombined   *fPIDCombined;     //! PIDCombined

  //set PID Combined
  void SetPIDCombined(AliPIDCombined *obj){fPIDCombined=obj;}
  AliPIDCombined *GetPIDCombined(){return fPIDCombined;}
 
  Double_t GetBayesCut(){return fBayesCut;}
  Int_t GetIDBayes(AliAODTrack *trk, Bool_t FIllQAHistos);//calculate the PID according to bayesian PID
  UInt_t CalcPIDCombined(AliAODTrack *track,Int_t detMask, Double_t* prob) const;
  Bool_t* GetAllCompatibleIdentitiesNSigma(AliAODTrack * trk, Bool_t FIllQAHistos);//All the identities are true


  Int_t eventno;
  Float_t fPtTOFPIDmin; //lower pt bound for the TOCTOF combined circular pid
  Float_t fPtTOFPIDmax; //uper pt bound for the TOCTOF combined circular pid
  Bool_t fRequestTOFPID;//if true returns kSpUndefined if the TOF signal is missing
  PIDType fPIDType; // PID type  Double_t fNSigmaPID; // number of sigma for PID cut
  Bool_t fFIllPIDQAHistos; //Switch for filling the nSigma histos
  Double_t fNSigmaPID; // number of sigma for PID cut
  Double_t fBayesCut; // Cut on Bayesian probability
 Bool_t fdiffPIDcutvalues;
 Double_t fPIDCutval1;
 Double_t fPIDCutval2;
 Double_t fPIDCutval3;
 Double_t fPIDCutval4;

  Float_t fHighPtKaonNSigmaPID;// number of sigma for PID cut for Kaons above fHighPtKaonSigma(-1 default, no cut applied)
  Float_t fHighPtKaonSigma;//lower pt bound for the fHighPtKaonNSigmaPID to be set >0(i.e. to make it applicable)
  Bool_t fUseExclusiveNSigma;//if true returns the identity only if no double counting(i.e not in the overlap area)
  Bool_t fRemoveTracksT0Fill;//if true remove tracks for which only StartTime from To-Fill is available (worst resolution)
 Int_t fSelectCharge;           // (un)like sign selection when building correlations: 0: no selection; 1: unlike sign; 2: like sign
    Int_t fTriggerSelectCharge;    // select charge of trigger particle: 1: positive; -1 negative
    Int_t fAssociatedSelectCharge; // select charge of associated particle: 1: positive; -1 negative
    Float_t fTriggerRestrictEta;   // restrict eta range for trigger particle (default: -1 [off])
    Bool_t fEtaOrdering;           // eta ordering, see AliUEHistograms.h for documentation
    Bool_t fCutConversions;        // cut on conversions (inv mass)
    Bool_t fCutResonances;         // cut on resonances (inv mass)
    Int_t fRejectResonanceDaughters; // reject all daughters of all resonance candidates (1: test method (cut at m_inv=0.9); 2: k0; 3: lambda)
    Int_t fOnlyOneEtaSide;       // decides that only trigger particle from one eta side are considered (0 = all; -1 = negative, 1 = positive)
    Bool_t fInjectedSignals;	  // check header to skip injected signals in MC
    Bool_t fRemoveWeakDecays;	   // remove secondaries from weak decays from tracks and particles
    Bool_t fRemoveDuplicates;// remove particles with the same label (double reconstruction)
    Bool_t fapplyTrigefficiency;//if kTRUE then eff correction calculation starts
    Bool_t fapplyAssoefficiency;//if kTRUE then eff correction calculation starts
    Bool_t ffillefficiency;  //if kTRUE then THNsparses used for eff. calculation are filled up
    Bool_t fmesoneffrequired;
    Bool_t fkaonprotoneffrequired;
   AliAnalysisUtils*     fAnalysisUtils;      // points to class with common analysis utilities
  TFormula*      fDCAXYCut;          // additional pt dependent cut on DCA XY (only for AOD)
  //*****************************************************************************V0 related objects are here
  Bool_t fV0TrigCorr;
  Bool_t fUsev0DaughterPID;
 Double_t fMinPtDaughter ;// to be decided to make it compatible with AliHelperPID so far we keep it 1GeV/C
  Double_t fMaxPtDaughter; //same statement as above
  Double_t fDCAToPrimVtx ;//put standard cuts
  Double_t fMaxDCADaughter;//put standard cuts
  Double_t fMinCPA; //cosine of pointing angle
  Double_t lMax;
TH3F*  fHistRawPtCentInvK0s;//!
TH3F*  fHistRawPtCentInvLambda;//!
TH3F*  fHistRawPtCentInvAntiLambda;//!
TH3F*  fHistFinalPtCentInvK0s;//!
TH3F*  fHistFinalPtCentInvLambda;//!
TH3F*  fHistFinalPtCentInvAntiLambda;//!
  Double_t NCtau;
  Double_t fCutctauK0s; //ctau cut for kShort
  Double_t fCutctauLambda;
  Double_t fCutctauAntiLambda;
  Double_t fRapCutK0s;
  Double_t fRapCutLambda; 
Int_t fDaugNClsTPC;
Float_t fFracTPCcls;



  Float_t fnsigmas[NSpecies][NSigmaPIDType+1]; //nsigma values
  Bool_t fHasDoubleCounting[NSpecies];//array with compatible identities

  //Int_t fPIDMethod; // PID method

 //functions
  Bool_t CheckTrack(AliAODTrack * part);
  Float_t PhiRange(Float_t DPhi);
  Float_t GetInvMassSquared(Float_t pt1, Float_t eta1, Float_t phi1, Float_t pt2, Float_t eta2, Float_t phi2, Float_t m0_1, Float_t m0_2);
Float_t GetInvMassSquaredCheap(Float_t pt1, Float_t eta1, Float_t phi1, Float_t pt2, Float_t eta2, Float_t phi2, Float_t m0_1, Float_t m0_2);
  Float_t GetDPhiStar(Float_t phi1, Float_t pt1, Float_t charge1, Float_t phi2, Float_t pt2, Float_t charge2, Float_t radius, Float_t bSign);
  TObjArray* CloneAndReduceTrackList(TObjArray* tracks);


  void ShiftTracks(TObjArray* tracks, Double_t angle);
  Bool_t AcceptEventCentralityWeight(Double_t centrality);

  //get event plane
  Float_t GetEventPlane(AliVEvent *event,Bool_t truth,Double_t v0Centr);
  Double_t GetAcceptedEventMultiplicity(AliVEvent *aod,Bool_t truth);//returns centrality after event(mainly vertex) selection IsEventAccepted  GetAcceptedEventMultiplicity
  
  //get vzero equalization
  Double_t GetEqualizationFactor(Int_t run, const char* side);
  Double_t GetChannelEqualizationFactor(Int_t run,Int_t channel);
  void SetVZEROCalibrationFile(const char* filename,const char* lhcPeriod);
  void SetCentralityWeights(TH1* hist) { fCentralityWeights = hist; }

  Double_t GetRefMultiOrCentrality(AliVEvent *event, Bool_t truth);
  Double_t GetReferenceMultiplicityVZEROFromAOD(AliVEvent *event);//mainly important for pp 7 TeV

    
    AliTwoParticlePIDCorr(const AliTwoParticlePIDCorr&); // not implemented
    AliTwoParticlePIDCorr& operator=(const AliTwoParticlePIDCorr&); // not implemented
    
    ClassDef(AliTwoParticlePIDCorr, 1); // example of analysis
};
class LRCParticlePID : public TObject {
public:
 LRCParticlePID(Int_t par,Double_t Invmass,Short_t icharge,Float_t pt,Float_t eta, Float_t phi,Float_t effcorrectionval,const TBits *clustermap,const TBits *sharemap)
   :fparticle(par),fInvmass(Invmass),fcharge(icharge),fPt(pt), fEta(eta), fPhi(phi),feffcorrectionval(effcorrectionval),fTPCClusterMap(clustermap),fTPCHitShareMap(sharemap) {}
  virtual ~LRCParticlePID() {}
  
    virtual Float_t Eta()        const { return fEta; }
    virtual Float_t Phi()        const { return fPhi; }
    virtual Float_t Pt() const { return fPt; }
    Int_t getparticle() const {return fparticle;}
    Double_t GetInvMass() const {return fInvmass;}
    virtual Short_t Charge()      const { return fcharge; }
    Float_t geteffcorrectionval() const {return feffcorrectionval;}
    virtual Bool_t IsEqual(const TObject* obj) const { return (obj->GetUniqueID() == GetUniqueID()); }
    virtual void SetPhi(Double_t phiv) { fPhi = phiv; }
    virtual const TBits * GetTPCPadMap() {return fTPCClusterMap; }
    virtual const TBits * GetTPCSharedMap() {return fTPCHitShareMap; }

private:
  LRCParticlePID(const LRCParticlePID&);  // not implemented
   LRCParticlePID& operator=(const LRCParticlePID&);  // not implemented
  
  Int_t fparticle;
  Double_t fInvmass;
  Short_t fcharge;
  Float_t fPt;
  Float_t fEta;
  Float_t fPhi;
  Float_t feffcorrectionval;
   const TBits   *fTPCClusterMap;
   const TBits   *fTPCHitShareMap;
  ClassDef(LRCParticlePID, 1);
} ;

#endif

//(fSampleType=="pp_2_76" || fCentralityMethod.EndsWith("_MANUAL"))
//(fSampleType=="pp_2_76" || fCentralityMethod.EndsWith("_MANUAL") || (fSampleType=="pp_7" && fPPVsMultUtils==kFALSE))
//(fCentralityMethod.EndsWith("_MANUAL"))
/*
fMinPtDaughter
fMaxPtDaughter
fDCAToPrimVtx
fMaxDCADaughter
fMinCPA
lMax
fCentralityMethod == "MC_b"
fCentralityCorrelation
*/
//fV0TrigCorr
//ParticlePID_InvMass

//particlepidtrig
//fRequestEventPlanemixing
 AliTwoParticlePIDCorr.h:1
 AliTwoParticlePIDCorr.h:2
 AliTwoParticlePIDCorr.h:3
 AliTwoParticlePIDCorr.h:4
 AliTwoParticlePIDCorr.h:5
 AliTwoParticlePIDCorr.h:6
 AliTwoParticlePIDCorr.h:7
 AliTwoParticlePIDCorr.h:8
 AliTwoParticlePIDCorr.h:9
 AliTwoParticlePIDCorr.h:10
 AliTwoParticlePIDCorr.h:11
 AliTwoParticlePIDCorr.h:12
 AliTwoParticlePIDCorr.h:13
 AliTwoParticlePIDCorr.h:14
 AliTwoParticlePIDCorr.h:15
 AliTwoParticlePIDCorr.h:16
 AliTwoParticlePIDCorr.h:17
 AliTwoParticlePIDCorr.h:18
 AliTwoParticlePIDCorr.h:19
 AliTwoParticlePIDCorr.h:20
 AliTwoParticlePIDCorr.h:21
 AliTwoParticlePIDCorr.h:22
 AliTwoParticlePIDCorr.h:23
 AliTwoParticlePIDCorr.h:24
 AliTwoParticlePIDCorr.h:25
 AliTwoParticlePIDCorr.h:26
 AliTwoParticlePIDCorr.h:27
 AliTwoParticlePIDCorr.h:28
 AliTwoParticlePIDCorr.h:29
 AliTwoParticlePIDCorr.h:30
 AliTwoParticlePIDCorr.h:31
 AliTwoParticlePIDCorr.h:32
 AliTwoParticlePIDCorr.h:33
 AliTwoParticlePIDCorr.h:34
 AliTwoParticlePIDCorr.h:35
 AliTwoParticlePIDCorr.h:36
 AliTwoParticlePIDCorr.h:37
 AliTwoParticlePIDCorr.h:38
 AliTwoParticlePIDCorr.h:39
 AliTwoParticlePIDCorr.h:40
 AliTwoParticlePIDCorr.h:41
 AliTwoParticlePIDCorr.h:42
 AliTwoParticlePIDCorr.h:43
 AliTwoParticlePIDCorr.h:44
 AliTwoParticlePIDCorr.h:45
 AliTwoParticlePIDCorr.h:46
 AliTwoParticlePIDCorr.h:47
 AliTwoParticlePIDCorr.h:48
 AliTwoParticlePIDCorr.h:49
 AliTwoParticlePIDCorr.h:50
 AliTwoParticlePIDCorr.h:51
 AliTwoParticlePIDCorr.h:52
 AliTwoParticlePIDCorr.h:53
 AliTwoParticlePIDCorr.h:54
 AliTwoParticlePIDCorr.h:55
 AliTwoParticlePIDCorr.h:56
 AliTwoParticlePIDCorr.h:57
 AliTwoParticlePIDCorr.h:58
 AliTwoParticlePIDCorr.h:59
 AliTwoParticlePIDCorr.h:60
 AliTwoParticlePIDCorr.h:61
 AliTwoParticlePIDCorr.h:62
 AliTwoParticlePIDCorr.h:63
 AliTwoParticlePIDCorr.h:64
 AliTwoParticlePIDCorr.h:65
 AliTwoParticlePIDCorr.h:66
 AliTwoParticlePIDCorr.h:67
 AliTwoParticlePIDCorr.h:68
 AliTwoParticlePIDCorr.h:69
 AliTwoParticlePIDCorr.h:70
 AliTwoParticlePIDCorr.h:71
 AliTwoParticlePIDCorr.h:72
 AliTwoParticlePIDCorr.h:73
 AliTwoParticlePIDCorr.h:74
 AliTwoParticlePIDCorr.h:75
 AliTwoParticlePIDCorr.h:76
 AliTwoParticlePIDCorr.h:77
 AliTwoParticlePIDCorr.h:78
 AliTwoParticlePIDCorr.h:79
 AliTwoParticlePIDCorr.h:80
 AliTwoParticlePIDCorr.h:81
 AliTwoParticlePIDCorr.h:82
 AliTwoParticlePIDCorr.h:83
 AliTwoParticlePIDCorr.h:84
 AliTwoParticlePIDCorr.h:85
 AliTwoParticlePIDCorr.h:86
 AliTwoParticlePIDCorr.h:87
 AliTwoParticlePIDCorr.h:88
 AliTwoParticlePIDCorr.h:89
 AliTwoParticlePIDCorr.h:90
 AliTwoParticlePIDCorr.h:91
 AliTwoParticlePIDCorr.h:92
 AliTwoParticlePIDCorr.h:93
 AliTwoParticlePIDCorr.h:94
 AliTwoParticlePIDCorr.h:95
 AliTwoParticlePIDCorr.h:96
 AliTwoParticlePIDCorr.h:97
 AliTwoParticlePIDCorr.h:98
 AliTwoParticlePIDCorr.h:99
 AliTwoParticlePIDCorr.h:100
 AliTwoParticlePIDCorr.h:101
 AliTwoParticlePIDCorr.h:102
 AliTwoParticlePIDCorr.h:103
 AliTwoParticlePIDCorr.h:104
 AliTwoParticlePIDCorr.h:105
 AliTwoParticlePIDCorr.h:106
 AliTwoParticlePIDCorr.h:107
 AliTwoParticlePIDCorr.h:108
 AliTwoParticlePIDCorr.h:109
 AliTwoParticlePIDCorr.h:110
 AliTwoParticlePIDCorr.h:111
 AliTwoParticlePIDCorr.h:112
 AliTwoParticlePIDCorr.h:113
 AliTwoParticlePIDCorr.h:114
 AliTwoParticlePIDCorr.h:115
 AliTwoParticlePIDCorr.h:116
 AliTwoParticlePIDCorr.h:117
 AliTwoParticlePIDCorr.h:118
 AliTwoParticlePIDCorr.h:119
 AliTwoParticlePIDCorr.h:120
 AliTwoParticlePIDCorr.h:121
 AliTwoParticlePIDCorr.h:122
 AliTwoParticlePIDCorr.h:123
 AliTwoParticlePIDCorr.h:124
 AliTwoParticlePIDCorr.h:125
 AliTwoParticlePIDCorr.h:126
 AliTwoParticlePIDCorr.h:127
 AliTwoParticlePIDCorr.h:128
 AliTwoParticlePIDCorr.h:129
 AliTwoParticlePIDCorr.h:130
 AliTwoParticlePIDCorr.h:131
 AliTwoParticlePIDCorr.h:132
 AliTwoParticlePIDCorr.h:133
 AliTwoParticlePIDCorr.h:134
 AliTwoParticlePIDCorr.h:135
 AliTwoParticlePIDCorr.h:136
 AliTwoParticlePIDCorr.h:137
 AliTwoParticlePIDCorr.h:138
 AliTwoParticlePIDCorr.h:139
 AliTwoParticlePIDCorr.h:140
 AliTwoParticlePIDCorr.h:141
 AliTwoParticlePIDCorr.h:142
 AliTwoParticlePIDCorr.h:143
 AliTwoParticlePIDCorr.h:144
 AliTwoParticlePIDCorr.h:145
 AliTwoParticlePIDCorr.h:146
 AliTwoParticlePIDCorr.h:147
 AliTwoParticlePIDCorr.h:148
 AliTwoParticlePIDCorr.h:149
 AliTwoParticlePIDCorr.h:150
 AliTwoParticlePIDCorr.h:151
 AliTwoParticlePIDCorr.h:152
 AliTwoParticlePIDCorr.h:153
 AliTwoParticlePIDCorr.h:154
 AliTwoParticlePIDCorr.h:155
 AliTwoParticlePIDCorr.h:156
 AliTwoParticlePIDCorr.h:157
 AliTwoParticlePIDCorr.h:158
 AliTwoParticlePIDCorr.h:159
 AliTwoParticlePIDCorr.h:160
 AliTwoParticlePIDCorr.h:161
 AliTwoParticlePIDCorr.h:162
 AliTwoParticlePIDCorr.h:163
 AliTwoParticlePIDCorr.h:164
 AliTwoParticlePIDCorr.h:165
 AliTwoParticlePIDCorr.h:166
 AliTwoParticlePIDCorr.h:167
 AliTwoParticlePIDCorr.h:168
 AliTwoParticlePIDCorr.h:169
 AliTwoParticlePIDCorr.h:170
 AliTwoParticlePIDCorr.h:171
 AliTwoParticlePIDCorr.h:172
 AliTwoParticlePIDCorr.h:173
 AliTwoParticlePIDCorr.h:174
 AliTwoParticlePIDCorr.h:175
 AliTwoParticlePIDCorr.h:176
 AliTwoParticlePIDCorr.h:177
 AliTwoParticlePIDCorr.h:178
 AliTwoParticlePIDCorr.h:179
 AliTwoParticlePIDCorr.h:180
 AliTwoParticlePIDCorr.h:181
 AliTwoParticlePIDCorr.h:182
 AliTwoParticlePIDCorr.h:183
 AliTwoParticlePIDCorr.h:184
 AliTwoParticlePIDCorr.h:185
 AliTwoParticlePIDCorr.h:186
 AliTwoParticlePIDCorr.h:187
 AliTwoParticlePIDCorr.h:188
 AliTwoParticlePIDCorr.h:189
 AliTwoParticlePIDCorr.h:190
 AliTwoParticlePIDCorr.h:191
 AliTwoParticlePIDCorr.h:192
 AliTwoParticlePIDCorr.h:193
 AliTwoParticlePIDCorr.h:194
 AliTwoParticlePIDCorr.h:195
 AliTwoParticlePIDCorr.h:196
 AliTwoParticlePIDCorr.h:197
 AliTwoParticlePIDCorr.h:198
 AliTwoParticlePIDCorr.h:199
 AliTwoParticlePIDCorr.h:200
 AliTwoParticlePIDCorr.h:201
 AliTwoParticlePIDCorr.h:202
 AliTwoParticlePIDCorr.h:203
 AliTwoParticlePIDCorr.h:204
 AliTwoParticlePIDCorr.h:205
 AliTwoParticlePIDCorr.h:206
 AliTwoParticlePIDCorr.h:207
 AliTwoParticlePIDCorr.h:208
 AliTwoParticlePIDCorr.h:209
 AliTwoParticlePIDCorr.h:210
 AliTwoParticlePIDCorr.h:211
 AliTwoParticlePIDCorr.h:212
 AliTwoParticlePIDCorr.h:213
 AliTwoParticlePIDCorr.h:214
 AliTwoParticlePIDCorr.h:215
 AliTwoParticlePIDCorr.h:216
 AliTwoParticlePIDCorr.h:217
 AliTwoParticlePIDCorr.h:218
 AliTwoParticlePIDCorr.h:219
 AliTwoParticlePIDCorr.h:220
 AliTwoParticlePIDCorr.h:221
 AliTwoParticlePIDCorr.h:222
 AliTwoParticlePIDCorr.h:223
 AliTwoParticlePIDCorr.h:224
 AliTwoParticlePIDCorr.h:225
 AliTwoParticlePIDCorr.h:226
 AliTwoParticlePIDCorr.h:227
 AliTwoParticlePIDCorr.h:228
 AliTwoParticlePIDCorr.h:229
 AliTwoParticlePIDCorr.h:230
 AliTwoParticlePIDCorr.h:231
 AliTwoParticlePIDCorr.h:232
 AliTwoParticlePIDCorr.h:233
 AliTwoParticlePIDCorr.h:234
 AliTwoParticlePIDCorr.h:235
 AliTwoParticlePIDCorr.h:236
 AliTwoParticlePIDCorr.h:237
 AliTwoParticlePIDCorr.h:238
 AliTwoParticlePIDCorr.h:239
 AliTwoParticlePIDCorr.h:240
 AliTwoParticlePIDCorr.h:241
 AliTwoParticlePIDCorr.h:242
 AliTwoParticlePIDCorr.h:243
 AliTwoParticlePIDCorr.h:244
 AliTwoParticlePIDCorr.h:245
 AliTwoParticlePIDCorr.h:246
 AliTwoParticlePIDCorr.h:247
 AliTwoParticlePIDCorr.h:248
 AliTwoParticlePIDCorr.h:249
 AliTwoParticlePIDCorr.h:250
 AliTwoParticlePIDCorr.h:251
 AliTwoParticlePIDCorr.h:252
 AliTwoParticlePIDCorr.h:253
 AliTwoParticlePIDCorr.h:254
 AliTwoParticlePIDCorr.h:255
 AliTwoParticlePIDCorr.h:256
 AliTwoParticlePIDCorr.h:257
 AliTwoParticlePIDCorr.h:258
 AliTwoParticlePIDCorr.h:259
 AliTwoParticlePIDCorr.h:260
 AliTwoParticlePIDCorr.h:261
 AliTwoParticlePIDCorr.h:262
 AliTwoParticlePIDCorr.h:263
 AliTwoParticlePIDCorr.h:264
 AliTwoParticlePIDCorr.h:265
 AliTwoParticlePIDCorr.h:266
 AliTwoParticlePIDCorr.h:267
 AliTwoParticlePIDCorr.h:268
 AliTwoParticlePIDCorr.h:269
 AliTwoParticlePIDCorr.h:270
 AliTwoParticlePIDCorr.h:271
 AliTwoParticlePIDCorr.h:272
 AliTwoParticlePIDCorr.h:273
 AliTwoParticlePIDCorr.h:274
 AliTwoParticlePIDCorr.h:275
 AliTwoParticlePIDCorr.h:276
 AliTwoParticlePIDCorr.h:277
 AliTwoParticlePIDCorr.h:278
 AliTwoParticlePIDCorr.h:279
 AliTwoParticlePIDCorr.h:280
 AliTwoParticlePIDCorr.h:281
 AliTwoParticlePIDCorr.h:282
 AliTwoParticlePIDCorr.h:283
 AliTwoParticlePIDCorr.h:284
 AliTwoParticlePIDCorr.h:285
 AliTwoParticlePIDCorr.h:286
 AliTwoParticlePIDCorr.h:287
 AliTwoParticlePIDCorr.h:288
 AliTwoParticlePIDCorr.h:289
 AliTwoParticlePIDCorr.h:290
 AliTwoParticlePIDCorr.h:291
 AliTwoParticlePIDCorr.h:292
 AliTwoParticlePIDCorr.h:293
 AliTwoParticlePIDCorr.h:294
 AliTwoParticlePIDCorr.h:295
 AliTwoParticlePIDCorr.h:296
 AliTwoParticlePIDCorr.h:297
 AliTwoParticlePIDCorr.h:298
 AliTwoParticlePIDCorr.h:299
 AliTwoParticlePIDCorr.h:300
 AliTwoParticlePIDCorr.h:301
 AliTwoParticlePIDCorr.h:302
 AliTwoParticlePIDCorr.h:303
 AliTwoParticlePIDCorr.h:304
 AliTwoParticlePIDCorr.h:305
 AliTwoParticlePIDCorr.h:306
 AliTwoParticlePIDCorr.h:307
 AliTwoParticlePIDCorr.h:308
 AliTwoParticlePIDCorr.h:309
 AliTwoParticlePIDCorr.h:310
 AliTwoParticlePIDCorr.h:311
 AliTwoParticlePIDCorr.h:312
 AliTwoParticlePIDCorr.h:313
 AliTwoParticlePIDCorr.h:314
 AliTwoParticlePIDCorr.h:315
 AliTwoParticlePIDCorr.h:316
 AliTwoParticlePIDCorr.h:317
 AliTwoParticlePIDCorr.h:318
 AliTwoParticlePIDCorr.h:319
 AliTwoParticlePIDCorr.h:320
 AliTwoParticlePIDCorr.h:321
 AliTwoParticlePIDCorr.h:322
 AliTwoParticlePIDCorr.h:323
 AliTwoParticlePIDCorr.h:324
 AliTwoParticlePIDCorr.h:325
 AliTwoParticlePIDCorr.h:326
 AliTwoParticlePIDCorr.h:327
 AliTwoParticlePIDCorr.h:328
 AliTwoParticlePIDCorr.h:329
 AliTwoParticlePIDCorr.h:330
 AliTwoParticlePIDCorr.h:331
 AliTwoParticlePIDCorr.h:332
 AliTwoParticlePIDCorr.h:333
 AliTwoParticlePIDCorr.h:334
 AliTwoParticlePIDCorr.h:335
 AliTwoParticlePIDCorr.h:336
 AliTwoParticlePIDCorr.h:337
 AliTwoParticlePIDCorr.h:338
 AliTwoParticlePIDCorr.h:339
 AliTwoParticlePIDCorr.h:340
 AliTwoParticlePIDCorr.h:341
 AliTwoParticlePIDCorr.h:342
 AliTwoParticlePIDCorr.h:343
 AliTwoParticlePIDCorr.h:344
 AliTwoParticlePIDCorr.h:345
 AliTwoParticlePIDCorr.h:346
 AliTwoParticlePIDCorr.h:347
 AliTwoParticlePIDCorr.h:348
 AliTwoParticlePIDCorr.h:349
 AliTwoParticlePIDCorr.h:350
 AliTwoParticlePIDCorr.h:351
 AliTwoParticlePIDCorr.h:352
 AliTwoParticlePIDCorr.h:353
 AliTwoParticlePIDCorr.h:354
 AliTwoParticlePIDCorr.h:355
 AliTwoParticlePIDCorr.h:356
 AliTwoParticlePIDCorr.h:357
 AliTwoParticlePIDCorr.h:358
 AliTwoParticlePIDCorr.h:359
 AliTwoParticlePIDCorr.h:360
 AliTwoParticlePIDCorr.h:361
 AliTwoParticlePIDCorr.h:362
 AliTwoParticlePIDCorr.h:363
 AliTwoParticlePIDCorr.h:364
 AliTwoParticlePIDCorr.h:365
 AliTwoParticlePIDCorr.h:366
 AliTwoParticlePIDCorr.h:367
 AliTwoParticlePIDCorr.h:368
 AliTwoParticlePIDCorr.h:369
 AliTwoParticlePIDCorr.h:370
 AliTwoParticlePIDCorr.h:371
 AliTwoParticlePIDCorr.h:372
 AliTwoParticlePIDCorr.h:373
 AliTwoParticlePIDCorr.h:374
 AliTwoParticlePIDCorr.h:375
 AliTwoParticlePIDCorr.h:376
 AliTwoParticlePIDCorr.h:377
 AliTwoParticlePIDCorr.h:378
 AliTwoParticlePIDCorr.h:379
 AliTwoParticlePIDCorr.h:380
 AliTwoParticlePIDCorr.h:381
 AliTwoParticlePIDCorr.h:382
 AliTwoParticlePIDCorr.h:383
 AliTwoParticlePIDCorr.h:384
 AliTwoParticlePIDCorr.h:385
 AliTwoParticlePIDCorr.h:386
 AliTwoParticlePIDCorr.h:387
 AliTwoParticlePIDCorr.h:388
 AliTwoParticlePIDCorr.h:389
 AliTwoParticlePIDCorr.h:390
 AliTwoParticlePIDCorr.h:391
 AliTwoParticlePIDCorr.h:392
 AliTwoParticlePIDCorr.h:393
 AliTwoParticlePIDCorr.h:394
 AliTwoParticlePIDCorr.h:395
 AliTwoParticlePIDCorr.h:396
 AliTwoParticlePIDCorr.h:397
 AliTwoParticlePIDCorr.h:398
 AliTwoParticlePIDCorr.h:399
 AliTwoParticlePIDCorr.h:400
 AliTwoParticlePIDCorr.h:401
 AliTwoParticlePIDCorr.h:402
 AliTwoParticlePIDCorr.h:403
 AliTwoParticlePIDCorr.h:404
 AliTwoParticlePIDCorr.h:405
 AliTwoParticlePIDCorr.h:406
 AliTwoParticlePIDCorr.h:407
 AliTwoParticlePIDCorr.h:408
 AliTwoParticlePIDCorr.h:409
 AliTwoParticlePIDCorr.h:410
 AliTwoParticlePIDCorr.h:411
 AliTwoParticlePIDCorr.h:412
 AliTwoParticlePIDCorr.h:413
 AliTwoParticlePIDCorr.h:414
 AliTwoParticlePIDCorr.h:415
 AliTwoParticlePIDCorr.h:416
 AliTwoParticlePIDCorr.h:417
 AliTwoParticlePIDCorr.h:418
 AliTwoParticlePIDCorr.h:419
 AliTwoParticlePIDCorr.h:420
 AliTwoParticlePIDCorr.h:421
 AliTwoParticlePIDCorr.h:422
 AliTwoParticlePIDCorr.h:423
 AliTwoParticlePIDCorr.h:424
 AliTwoParticlePIDCorr.h:425
 AliTwoParticlePIDCorr.h:426
 AliTwoParticlePIDCorr.h:427
 AliTwoParticlePIDCorr.h:428
 AliTwoParticlePIDCorr.h:429
 AliTwoParticlePIDCorr.h:430
 AliTwoParticlePIDCorr.h:431
 AliTwoParticlePIDCorr.h:432
 AliTwoParticlePIDCorr.h:433
 AliTwoParticlePIDCorr.h:434
 AliTwoParticlePIDCorr.h:435
 AliTwoParticlePIDCorr.h:436
 AliTwoParticlePIDCorr.h:437
 AliTwoParticlePIDCorr.h:438
 AliTwoParticlePIDCorr.h:439
 AliTwoParticlePIDCorr.h:440
 AliTwoParticlePIDCorr.h:441
 AliTwoParticlePIDCorr.h:442
 AliTwoParticlePIDCorr.h:443
 AliTwoParticlePIDCorr.h:444
 AliTwoParticlePIDCorr.h:445
 AliTwoParticlePIDCorr.h:446
 AliTwoParticlePIDCorr.h:447
 AliTwoParticlePIDCorr.h:448
 AliTwoParticlePIDCorr.h:449
 AliTwoParticlePIDCorr.h:450
 AliTwoParticlePIDCorr.h:451
 AliTwoParticlePIDCorr.h:452
 AliTwoParticlePIDCorr.h:453
 AliTwoParticlePIDCorr.h:454
 AliTwoParticlePIDCorr.h:455
 AliTwoParticlePIDCorr.h:456
 AliTwoParticlePIDCorr.h:457
 AliTwoParticlePIDCorr.h:458
 AliTwoParticlePIDCorr.h:459
 AliTwoParticlePIDCorr.h:460
 AliTwoParticlePIDCorr.h:461
 AliTwoParticlePIDCorr.h:462
 AliTwoParticlePIDCorr.h:463
 AliTwoParticlePIDCorr.h:464
 AliTwoParticlePIDCorr.h:465
 AliTwoParticlePIDCorr.h:466
 AliTwoParticlePIDCorr.h:467
 AliTwoParticlePIDCorr.h:468
 AliTwoParticlePIDCorr.h:469
 AliTwoParticlePIDCorr.h:470
 AliTwoParticlePIDCorr.h:471
 AliTwoParticlePIDCorr.h:472
 AliTwoParticlePIDCorr.h:473
 AliTwoParticlePIDCorr.h:474
 AliTwoParticlePIDCorr.h:475
 AliTwoParticlePIDCorr.h:476
 AliTwoParticlePIDCorr.h:477
 AliTwoParticlePIDCorr.h:478
 AliTwoParticlePIDCorr.h:479
 AliTwoParticlePIDCorr.h:480
 AliTwoParticlePIDCorr.h:481
 AliTwoParticlePIDCorr.h:482
 AliTwoParticlePIDCorr.h:483
 AliTwoParticlePIDCorr.h:484
 AliTwoParticlePIDCorr.h:485
 AliTwoParticlePIDCorr.h:486
 AliTwoParticlePIDCorr.h:487
 AliTwoParticlePIDCorr.h:488
 AliTwoParticlePIDCorr.h:489
 AliTwoParticlePIDCorr.h:490
 AliTwoParticlePIDCorr.h:491
 AliTwoParticlePIDCorr.h:492
 AliTwoParticlePIDCorr.h:493
 AliTwoParticlePIDCorr.h:494
 AliTwoParticlePIDCorr.h:495
 AliTwoParticlePIDCorr.h:496
 AliTwoParticlePIDCorr.h:497
 AliTwoParticlePIDCorr.h:498
 AliTwoParticlePIDCorr.h:499
 AliTwoParticlePIDCorr.h:500
 AliTwoParticlePIDCorr.h:501
 AliTwoParticlePIDCorr.h:502
 AliTwoParticlePIDCorr.h:503
 AliTwoParticlePIDCorr.h:504
 AliTwoParticlePIDCorr.h:505
 AliTwoParticlePIDCorr.h:506
 AliTwoParticlePIDCorr.h:507
 AliTwoParticlePIDCorr.h:508
 AliTwoParticlePIDCorr.h:509
 AliTwoParticlePIDCorr.h:510
 AliTwoParticlePIDCorr.h:511
 AliTwoParticlePIDCorr.h:512
 AliTwoParticlePIDCorr.h:513
 AliTwoParticlePIDCorr.h:514
 AliTwoParticlePIDCorr.h:515
 AliTwoParticlePIDCorr.h:516
 AliTwoParticlePIDCorr.h:517
 AliTwoParticlePIDCorr.h:518
 AliTwoParticlePIDCorr.h:519
 AliTwoParticlePIDCorr.h:520
 AliTwoParticlePIDCorr.h:521
 AliTwoParticlePIDCorr.h:522
 AliTwoParticlePIDCorr.h:523
 AliTwoParticlePIDCorr.h:524
 AliTwoParticlePIDCorr.h:525
 AliTwoParticlePIDCorr.h:526
 AliTwoParticlePIDCorr.h:527
 AliTwoParticlePIDCorr.h:528
 AliTwoParticlePIDCorr.h:529
 AliTwoParticlePIDCorr.h:530
 AliTwoParticlePIDCorr.h:531
 AliTwoParticlePIDCorr.h:532
 AliTwoParticlePIDCorr.h:533
 AliTwoParticlePIDCorr.h:534
 AliTwoParticlePIDCorr.h:535
 AliTwoParticlePIDCorr.h:536
 AliTwoParticlePIDCorr.h:537
 AliTwoParticlePIDCorr.h:538
 AliTwoParticlePIDCorr.h:539
 AliTwoParticlePIDCorr.h:540
 AliTwoParticlePIDCorr.h:541
 AliTwoParticlePIDCorr.h:542
 AliTwoParticlePIDCorr.h:543
 AliTwoParticlePIDCorr.h:544
 AliTwoParticlePIDCorr.h:545
 AliTwoParticlePIDCorr.h:546
 AliTwoParticlePIDCorr.h:547
 AliTwoParticlePIDCorr.h:548
 AliTwoParticlePIDCorr.h:549
 AliTwoParticlePIDCorr.h:550
 AliTwoParticlePIDCorr.h:551
 AliTwoParticlePIDCorr.h:552
 AliTwoParticlePIDCorr.h:553
 AliTwoParticlePIDCorr.h:554
 AliTwoParticlePIDCorr.h:555
 AliTwoParticlePIDCorr.h:556
 AliTwoParticlePIDCorr.h:557
 AliTwoParticlePIDCorr.h:558
 AliTwoParticlePIDCorr.h:559
 AliTwoParticlePIDCorr.h:560
 AliTwoParticlePIDCorr.h:561
 AliTwoParticlePIDCorr.h:562
 AliTwoParticlePIDCorr.h:563
 AliTwoParticlePIDCorr.h:564
 AliTwoParticlePIDCorr.h:565
 AliTwoParticlePIDCorr.h:566
 AliTwoParticlePIDCorr.h:567
 AliTwoParticlePIDCorr.h:568
 AliTwoParticlePIDCorr.h:569
 AliTwoParticlePIDCorr.h:570
 AliTwoParticlePIDCorr.h:571
 AliTwoParticlePIDCorr.h:572
 AliTwoParticlePIDCorr.h:573
 AliTwoParticlePIDCorr.h:574
 AliTwoParticlePIDCorr.h:575
 AliTwoParticlePIDCorr.h:576
 AliTwoParticlePIDCorr.h:577
 AliTwoParticlePIDCorr.h:578
 AliTwoParticlePIDCorr.h:579
 AliTwoParticlePIDCorr.h:580
 AliTwoParticlePIDCorr.h:581
 AliTwoParticlePIDCorr.h:582
 AliTwoParticlePIDCorr.h:583
 AliTwoParticlePIDCorr.h:584
 AliTwoParticlePIDCorr.h:585
 AliTwoParticlePIDCorr.h:586
 AliTwoParticlePIDCorr.h:587
 AliTwoParticlePIDCorr.h:588
 AliTwoParticlePIDCorr.h:589
 AliTwoParticlePIDCorr.h:590
 AliTwoParticlePIDCorr.h:591
 AliTwoParticlePIDCorr.h:592
 AliTwoParticlePIDCorr.h:593
 AliTwoParticlePIDCorr.h:594
 AliTwoParticlePIDCorr.h:595
 AliTwoParticlePIDCorr.h:596
 AliTwoParticlePIDCorr.h:597
 AliTwoParticlePIDCorr.h:598
 AliTwoParticlePIDCorr.h:599
 AliTwoParticlePIDCorr.h:600
 AliTwoParticlePIDCorr.h:601
 AliTwoParticlePIDCorr.h:602
 AliTwoParticlePIDCorr.h:603
 AliTwoParticlePIDCorr.h:604
 AliTwoParticlePIDCorr.h:605
 AliTwoParticlePIDCorr.h:606
 AliTwoParticlePIDCorr.h:607
 AliTwoParticlePIDCorr.h:608
 AliTwoParticlePIDCorr.h:609
 AliTwoParticlePIDCorr.h:610
 AliTwoParticlePIDCorr.h:611
 AliTwoParticlePIDCorr.h:612
 AliTwoParticlePIDCorr.h:613
 AliTwoParticlePIDCorr.h:614
 AliTwoParticlePIDCorr.h:615
 AliTwoParticlePIDCorr.h:616
 AliTwoParticlePIDCorr.h:617
 AliTwoParticlePIDCorr.h:618
 AliTwoParticlePIDCorr.h:619
 AliTwoParticlePIDCorr.h:620
 AliTwoParticlePIDCorr.h:621
 AliTwoParticlePIDCorr.h:622
 AliTwoParticlePIDCorr.h:623
 AliTwoParticlePIDCorr.h:624
 AliTwoParticlePIDCorr.h:625
 AliTwoParticlePIDCorr.h:626
 AliTwoParticlePIDCorr.h:627
 AliTwoParticlePIDCorr.h:628
 AliTwoParticlePIDCorr.h:629
 AliTwoParticlePIDCorr.h:630
 AliTwoParticlePIDCorr.h:631
 AliTwoParticlePIDCorr.h:632
 AliTwoParticlePIDCorr.h:633
 AliTwoParticlePIDCorr.h:634
 AliTwoParticlePIDCorr.h:635
 AliTwoParticlePIDCorr.h:636
 AliTwoParticlePIDCorr.h:637
 AliTwoParticlePIDCorr.h:638
 AliTwoParticlePIDCorr.h:639
 AliTwoParticlePIDCorr.h:640
 AliTwoParticlePIDCorr.h:641
 AliTwoParticlePIDCorr.h:642
 AliTwoParticlePIDCorr.h:643
 AliTwoParticlePIDCorr.h:644
 AliTwoParticlePIDCorr.h:645
 AliTwoParticlePIDCorr.h:646
 AliTwoParticlePIDCorr.h:647
 AliTwoParticlePIDCorr.h:648
 AliTwoParticlePIDCorr.h:649
 AliTwoParticlePIDCorr.h:650
 AliTwoParticlePIDCorr.h:651
 AliTwoParticlePIDCorr.h:652
 AliTwoParticlePIDCorr.h:653
 AliTwoParticlePIDCorr.h:654
 AliTwoParticlePIDCorr.h:655
 AliTwoParticlePIDCorr.h:656
 AliTwoParticlePIDCorr.h:657
 AliTwoParticlePIDCorr.h:658
 AliTwoParticlePIDCorr.h:659
 AliTwoParticlePIDCorr.h:660
 AliTwoParticlePIDCorr.h:661
 AliTwoParticlePIDCorr.h:662
 AliTwoParticlePIDCorr.h:663
 AliTwoParticlePIDCorr.h:664
 AliTwoParticlePIDCorr.h:665
 AliTwoParticlePIDCorr.h:666
 AliTwoParticlePIDCorr.h:667
 AliTwoParticlePIDCorr.h:668
 AliTwoParticlePIDCorr.h:669
 AliTwoParticlePIDCorr.h:670
 AliTwoParticlePIDCorr.h:671
 AliTwoParticlePIDCorr.h:672
 AliTwoParticlePIDCorr.h:673
 AliTwoParticlePIDCorr.h:674
 AliTwoParticlePIDCorr.h:675
 AliTwoParticlePIDCorr.h:676
 AliTwoParticlePIDCorr.h:677
 AliTwoParticlePIDCorr.h:678
 AliTwoParticlePIDCorr.h:679
 AliTwoParticlePIDCorr.h:680
 AliTwoParticlePIDCorr.h:681
 AliTwoParticlePIDCorr.h:682
 AliTwoParticlePIDCorr.h:683
 AliTwoParticlePIDCorr.h:684
 AliTwoParticlePIDCorr.h:685
 AliTwoParticlePIDCorr.h:686
 AliTwoParticlePIDCorr.h:687
 AliTwoParticlePIDCorr.h:688
 AliTwoParticlePIDCorr.h:689
 AliTwoParticlePIDCorr.h:690
 AliTwoParticlePIDCorr.h:691
 AliTwoParticlePIDCorr.h:692
 AliTwoParticlePIDCorr.h:693
 AliTwoParticlePIDCorr.h:694
 AliTwoParticlePIDCorr.h:695
 AliTwoParticlePIDCorr.h:696
 AliTwoParticlePIDCorr.h:697
 AliTwoParticlePIDCorr.h:698
 AliTwoParticlePIDCorr.h:699
 AliTwoParticlePIDCorr.h:700
 AliTwoParticlePIDCorr.h:701
 AliTwoParticlePIDCorr.h:702
 AliTwoParticlePIDCorr.h:703
 AliTwoParticlePIDCorr.h:704
 AliTwoParticlePIDCorr.h:705
 AliTwoParticlePIDCorr.h:706
 AliTwoParticlePIDCorr.h:707
 AliTwoParticlePIDCorr.h:708
 AliTwoParticlePIDCorr.h:709
 AliTwoParticlePIDCorr.h:710
 AliTwoParticlePIDCorr.h:711