ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, 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: AliAnalysisTaskPIDconfig.cxx 43811 2014-10-11 Naghmeh Mohammadi $ */

#include "TChain.h"
#include "TTree.h"
#include "TList.h"
#include "TMath.h"
#include "TObjArray.h"
#include "TCanvas.h"
#include "TGraphErrors.h"
#include "TString.h"
#include "TFile.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TH3F.h"
#include "TH2D.h"
#include "TH3D.h"
#include "TArrayF.h"
#include "TF1.h"
#include "TROOT.h"
#include "stdio.h"
#include "TCutG.h"


#include "AliTHn.h"
#include "AliLog.h"
#include "AliAnalysisManager.h"
#include "AliESDEvent.h"
#include "AliAODInputHandler.h"
#include "AliAODEvent.h"
#include "AliAODTrack.h"
#include "AliAODInputHandler.h"
#include "AliCollisionGeometry.h"
#include "AliGenEventHeader.h"
#include "AliAnalysisUtils.h"
#include "AliPIDCombined.h"
#include "AliAnalysisTask.h"
#include "AliAODHandler.h"
#include <AliInputEventHandler.h>
#include <AliVEventHandler.h>
#include <AliVParticle.h>
#include <AliVTrack.h>
#include <AliTPCPIDResponse.h>
#include <AliTOFPIDResponse.h>
#include "AliAnalysisTaskPIDconfig.h"
#include "AliAnalysisTaskSE.h"
#include "AliAODPid.h"
#include "AliPhysicsSelection.h"
#include "AliCentralitySelectionTask.h"
#include "AliCentrality.h"
#include "AliKFParticle.h"
#include "AliKFVertex.h"
#include "AliPID.h"
#include "AliPIDResponse.h"
#include "AliCFContainer.h"
#include "AliCFManager.h"
#include "AliVEvent.h"
#include "AliAODVZERO.h"

using std::cout;
using std::endl;


ClassImp(AliAnalysisTaskPIDconfig)
//ClassImp()
//___________________________________________________________________
AliAnalysisTaskPIDconfig::AliAnalysisTaskPIDconfig():
AliAnalysisTaskSE(),
fVevent(0),
fESD(0),
fAOD(0),
fPIDResponse(0),
fTriggerSelection(0),
fCentralityPercentileMin(0.),
fCentralityPercentileMax(5.),
fFilterBit(1),
fDCAxyCut(-1),
fDCAzCut(-1),
fData2011(kFALSE),
fTriggerMB(kTRUE),
fTriggerCentral(kFALSE),
fUseCentrality(kTRUE),
fCutTPCmultiplicityOutliersAOD(kFALSE),
fPIDcuts(kFALSE),
fCentralityEstimator("V0M"),
fContoursFile(0),
fCutContourList(0),
fListQA(0x0),
fListQAtpctof(0x0),
fListQAInfo(0x0),
fhistCentralityPass(0),
fNoEvents(0),
fpVtxZ(0),
fhistDCABefore(0),
fhistDCAAfter(0),
fhistPhiDistBefore(0),
fhistPhiDistAfter(0),
fhistEtaDistBefore(0),
fhistEtaDistAfter(0),
fTPCvsGlobalMultBeforeOutliers(0),
fTPCvsGlobalMultAfterOutliers(0),
fTPCvsGlobalMultAfter(0),
fHistBetavsPTOFbeforePID(0),
fHistdEdxvsPTPCbeforePID(0),
fhistNsigmaP(0),
fhistTPCnSigmavsP(0),
fHistBetavsPTOFafterPID(0),
fHistdEdxvsPTPCafterPID(0),
fHistBetavsPTOFafterPIDTPCTOF(0),
fHistdEdxvsPTPCafterPIDTPCTOF(0),
fHistBetavsPTOFafterPIDTPConly(0),
fHistdEdxvsPTPCafterPIDTPConly(0),
fHistPion_BetavsPTOFafterPIDTPCTOF(0),
fHistPion_dEdxvsPTPCafterPIDTPCTOF(0),
fHistKaon_BetavsPTOFafterPIDTPCTOF(0),
fHistKaon_dEdxvsPTPCafterPIDTPCTOF(0),
fHistProton_BetavsPTOFafterPIDTPCTOF(0),
fHistProton_dEdxvsPTPCafterPIDTPCTOF(0),
fhistPionEtaDistAfter(0),
fhistKaonEtaDistAfter(0),
fhistProtonEtaDistAfter(0)
 //fSparseSpecies(0),
//fvalueSpecies(0)
{
    for(int i=0;i<150;i++){
        fCutContour[i]= NULL;
        fCutGraph[i]=NULL;
    }
}


//___________________________________________________________________

AliAnalysisTaskPIDconfig::AliAnalysisTaskPIDconfig(const char *name):
AliAnalysisTaskSE(name),
fVevent(0),
fESD(0),
fAOD(0),
fPIDResponse(0),
fTriggerSelection(0),
fCentralityPercentileMin(0.),
fCentralityPercentileMax(5.),
fFilterBit(1),
fDCAxyCut(-1),
fDCAzCut(-1),
fData2011(kFALSE),
fTriggerMB(kTRUE),
fTriggerCentral(kFALSE),
fUseCentrality(kTRUE),
fCutTPCmultiplicityOutliersAOD(kFALSE),
fPIDcuts(kFALSE),
fCentralityEstimator("V0M"),
fContoursFile(0),
fCutContourList(0),
fListQA(0x0),
fListQAtpctof(0x0),
fListQAInfo(0x0),
fhistCentralityPass(0),
fNoEvents(0),
fpVtxZ(0),
fhistDCABefore(0),
fhistDCAAfter(0),
fhistPhiDistBefore(0),
fhistPhiDistAfter(0),
fhistEtaDistBefore(0),
fhistEtaDistAfter(0),
fTPCvsGlobalMultBeforeOutliers(0),
fTPCvsGlobalMultAfterOutliers(0),
fTPCvsGlobalMultAfter(0),
fHistBetavsPTOFbeforePID(0),
fHistdEdxvsPTPCbeforePID(0),
fhistNsigmaP(0),
fhistTPCnSigmavsP(0),
fHistBetavsPTOFafterPID(0),
fHistdEdxvsPTPCafterPID(0),
fHistBetavsPTOFafterPIDTPCTOF(0),
fHistdEdxvsPTPCafterPIDTPCTOF(0),
fHistBetavsPTOFafterPIDTPConly(0),
fHistdEdxvsPTPCafterPIDTPConly(0),
fHistPion_BetavsPTOFafterPIDTPCTOF(0),
fHistPion_dEdxvsPTPCafterPIDTPCTOF(0),
fHistKaon_BetavsPTOFafterPIDTPCTOF(0),
fHistKaon_dEdxvsPTPCafterPIDTPCTOF(0),
fHistProton_BetavsPTOFafterPIDTPCTOF(0),
fHistProton_dEdxvsPTPCafterPIDTPCTOF(0),
fhistPionEtaDistAfter(0),
fhistKaonEtaDistAfter(0),
fhistProtonEtaDistAfter(0)
//fSparseSpecies(0),
//fvalueSpecies(0)root
{
    //Default Constructor
    //fCutContour[150]=NULL;
    //fCutGraph[150]=NULL;
    DefineInput(0,TChain::Class());
    DefineOutput(1,TList::Class());
}

//_____________________________________________________________________
AliAnalysisTaskPIDconfig::~AliAnalysisTaskPIDconfig()
{
    //Destructor
    
    fContoursFile->Close();
    for(int i=0;i<150;i++){
        delete fCutContour[i];
        delete fCutGraph[i];
    }
    
    
    //   delete fPID;
    //  delete fPIDqa;
    //   delete fTrackCuts;
    // delete fSparseSpecies;
    //delete []fvalueSpecies;
    
    
}
//______________________________________________________________________
void AliAnalysisTaskPIDconfig::UserCreateOutputObjects()
{
    //
    // Create the output QA objects
    //
    
    AliLog::SetClassDebugLevel("AliAnalysisTaskPIDconfig",10);
    
    //input hander
    AliAnalysisManager *mgr=AliAnalysisManager::GetAnalysisManager();
    AliInputEventHandler *inputHandler=dynamic_cast<AliInputEventHandler*>(mgr->GetInputEventHandler());
    if (!inputHandler) AliFatal("Input handler needed");
    
    //pid response object
    fPIDResponse=inputHandler->GetPIDResponse();
    if (!fPIDResponse) AliError("PIDResponse object was not created");
    
    if(fPIDcuts){ GetPIDContours(); cout<<"********** PID cut contours retrieved **********"<<endl;}
    //
    fListQA=new TList;
    fListQA->SetOwner();
    
    fListQAtpctof=new TList;
    fListQAtpctof->SetOwner();
    fListQAtpctof->SetName("PID_TPC_TOF");
    
    fListQAInfo=new TList;
    fListQAInfo->SetOwner();
    fListQAInfo->SetName("Event_Track_Info");
    
    fListQA->Add(fListQAtpctof);
    fListQA->Add(fListQAInfo);
    
    SetupTPCTOFqa();
    SetupEventInfo();
    
    PostData(1,fListQA);
}
//______________________________________________________________________
void AliAnalysisTaskPIDconfig::UserExec(Option_t*){
    //Main loop
    //Called for each event
    
    // create pointer to event
    fAOD = dynamic_cast<AliAODEvent*>(InputEvent());
    fESD = dynamic_cast<AliESDEvent*>(InputEvent());
    
    Int_t ntracks=fAOD->GetNumberOfTracks();
    
    
    if(!(fESD || fAOD)){
        printf("ERROR: fESD & fAOD not available\n");
        return;
    }
    fVevent = dynamic_cast<AliVEvent*>(InputEvent());
    if (!fVevent) {
        printf("ERROR: fVevent not available\n");
        return;
    }
    
    Bool_t pass = kFALSE;
    CheckCentrality(fVevent,pass);
    
    if(!pass){ return;}
    
    const AliVVertex *pVtx = fVevent->GetPrimaryVertex();
    
    Double_t pVtxZ = -999;
    pVtxZ = pVtx->GetZ();
    
    if(TMath::Abs(pVtxZ)>10) return;
    
    TH1F *hNoEvents = (TH1F*)fListQAInfo->At(1);
    TH1F *histpVtxZ = (TH1F*)fListQAInfo->At(2);
    
    if(hNoEvents) hNoEvents->Fill(0);
    if(histpVtxZ) histpVtxZ->Fill(pVtxZ);
    
    if(ntracks<2) return;
    
    // if(!pass) return;
    
    TH2F *HistTPCvsGlobalMultBeforeOutliers = (TH2F*)fListQAInfo->At(3);
    
    TH2F *HistTPCvsGlobalMultAfterOutliers = (TH2F*)fListQAInfo->At(4);
    
    Float_t multTPC(0.); // tpc mult estimate
    Float_t multGlobal(0.); // global multiplicity
    
    const Int_t nGoodTracks = fVevent->GetNumberOfTracks();
    if(!fData2011) { // cut on outliers
        
        for(Int_t iTrack = 0; iTrack < nGoodTracks; iTrack++) { // fill tpc mult
            AliAODTrack* AODtrack =dynamic_cast<AliAODTrack*>(fVevent->GetTrack(iTrack));
            if (!AODtrack) continue;
            if (!(AODtrack->TestFilterBit(1))) continue;
            if ((AODtrack->Pt() < .2) || (AODtrack->Pt() > 5.0) || (TMath::Abs(AODtrack->Eta()) > .8) || (AODtrack->GetTPCNcls() < 70)  || (AODtrack->GetDetPid()->GetTPCsignal() < 10.0) || (AODtrack->Chi2perNDF() < 0.2)) continue;
            multTPC++;
        }//track loop
        
        for(Int_t iTrack = 0; iTrack < nGoodTracks; iTrack++) { // fill global mult
            AliAODTrack *AODtrack=dynamic_cast<AliAODTrack*>(fVevent->GetTrack(iTrack));
            if (!AODtrack) continue;
            if (!(AODtrack->TestFilterBit(16))) continue;
            if ((AODtrack->Pt() < .2) || (AODtrack->Pt() > 5.0) || (TMath::Abs(AODtrack->Eta()) > .8) || (AODtrack->GetTPCNcls() < 70) || (AODtrack->GetDetPid()->GetTPCsignal() < 10.0) || (AODtrack->Chi2perNDF() < 0.1)) continue;
            Double_t b[2] = {-99., -99.};
            Double_t bCov[3] = {-99., -99., -99.};
            AliAODTrack copy(*AODtrack);
            if (!(copy.PropagateToDCA(fVevent->GetPrimaryVertex(), fVevent->GetMagneticField(), 100., b, bCov))) continue;
            if ((TMath::Abs(b[0]) > 0.3) || (TMath::Abs(b[1]) > 0.3)) continue;
            multGlobal++;
        } //track loop
        
        HistTPCvsGlobalMultBeforeOutliers->Fill(multGlobal,multTPC);
        
        if(multTPC < (-40.3+1.22*multGlobal) || multTPC > (32.1+1.59*multGlobal)){ pass = kFALSE;}
        
        if(!pass) return;
        HistTPCvsGlobalMultAfterOutliers->Fill(multGlobal,multTPC);
        
    }
    
    
    if(fData2011) { // cut on outliers
        //Float_t multTPC(0.); // tpc mult estimate
        //Float_t multGlob(0.); // global multiplicity
        for(Int_t iTrack = 0; iTrack < nGoodTracks; iTrack++) { // fill tpc mult
            AliAODTrack *AODtrack=dynamic_cast<AliAODTrack*>(fVevent->GetTrack(iTrack));
            if (!AODtrack) continue;
            if (!(AODtrack->TestFilterBit(1))) continue;
            if ((AODtrack->Pt() < .2) || (AODtrack->Pt() > 5.0) || (TMath::Abs(AODtrack->Eta()) > .8) || (AODtrack->GetTPCNcls() < 70)  || (AODtrack->GetDetPid()->GetTPCsignal() < 10.0) || (AODtrack->Chi2perNDF() < 0.2)) continue;
            multTPC++;
        }
        for(Int_t iTrack = 0; iTrack < nGoodTracks; iTrack++) { // fill global mult
            AliAODTrack *AODtrack=dynamic_cast<AliAODTrack*>(fVevent->GetTrack(iTrack));
            if (!AODtrack) continue;
            if (!(AODtrack->TestFilterBit(16))) continue;
            if ((AODtrack->Pt() < .2) || (AODtrack->Pt() > 5.0) || (TMath::Abs(AODtrack->Eta()) > .8) || (AODtrack->GetTPCNcls() < 70) || (AODtrack->GetDetPid()->GetTPCsignal() < 10.0) || (AODtrack->Chi2perNDF() < 0.1)) continue;
            Double_t b[2] = {-99., -99.};
            Double_t bCov[3] = {-99., -99., -99.};
            AliAODTrack copy(*AODtrack);
            if (!(copy.PropagateToDCA(fVevent->GetPrimaryVertex(), fVevent->GetMagneticField(), 100., b, bCov))) continue;
            if ((TMath::Abs(b[0]) > 0.3) || (TMath::Abs(b[1]) > 0.3)) continue;
            multGlobal++;
            
        } //track loop
        
        HistTPCvsGlobalMultBeforeOutliers->Fill(multGlobal,multTPC);
        
        if(multTPC < (-36.73 + 1.48*multGlobal) || multTPC > (62.87 + 1.78*multGlobal)){pass = kFALSE;}
        
        if(!pass) return;
        HistTPCvsGlobalMultAfterOutliers->Fill(multGlobal,multTPC);
        
    }
    
    for(Int_t itrack = 0; itrack < ntracks; itrack++){
        
        AliAODTrack *track=dynamic_cast<AliAODTrack*>(fVevent->GetTrack(itrack));
        if(!track) continue;
        
        Float_t dcaXY = track->DCA();
        Float_t dcaZ  = track->ZAtDCA();
        
        TH2F* HistDCAbefore =(TH2F*)fListQAInfo->At(5);
        HistDCAbefore->Fill(dcaZ,dcaXY);
        
        Double_t p = -999, pT = -999, phi = -999, eta = -999, dEdx =-999;
        Double_t length = -999., beta =-999, tofTime = -999., tof = -999.;
        Double_t c = TMath::C()*1.E-9;// m/ns
        
        //cout<<"track->GetFilterMap()= "<<track->GetFilterMap()<<endl;
        if(!track->TestFilterBit(fFilterBit)) continue;
        
        p=track->P();
        pT=track->Pt();
        phi=track->Phi();
        eta=track->Eta();
        dEdx=track->GetDetPid()->GetTPCsignal();
        
        Float_t probMis = fPIDResponse->GetTOFMismatchProbability(track);
        if (probMis < 0.01) { //if u want to reduce mismatch using also TPC
            
            //if ( (track->IsOn(AliAODTrack::kTOFin)) && (track->IsOn(AliAODTrack::kTIME)) &&  (track->IsOn(AliAODTrack::kTOFout))) {
            if ( (track->IsOn(AliAODTrack::kITSin)) && (track->IsOn(AliAODTrack::kTOFpid)) ) {
                
                tofTime = track->GetTOFsignal();//in ps
                length = track->GetIntegratedLength();
                
                tof = tofTime*1E-3; // ns
                //cout<<"tof = "<<tof<<endl;
                if (tof <= 0) continue;
                //cout<<"length = "<<length<<endl;
                if (length <= 0) continue;
                
                length = length*0.01; // in meters
                tof = tof*c;
                beta = length/tof;
                
                TH2F *HistBetavsPTOFbeforePID = (TH2F*)fListQAInfo->At(6);
                HistBetavsPTOFbeforePID ->Fill(track->P()*track->Charge(),beta);
            }//TOF signal
            
            TH2F *HistdEdxvsPTPCbeforePID = (TH2F*)fListQAInfo->At(7);
            HistdEdxvsPTPCbeforePID -> Fill(track->P()*track->Charge(),dEdx); //TPC signal
        
            //QA plot
            TH1F *HistPhiDistBefore = (TH1F*)fListQAInfo->At(8);
            HistPhiDistBefore->Fill(phi);
            //
            TH1F *HistEtaDistBefore = (TH1F*)fListQAInfo->At(9);
            HistEtaDistBefore->Fill(eta);
        
        
            if(pT<0.1) continue;
            if(TMath::Abs(eta)>0.8) continue;
        
            Int_t TPCNcls = track->GetTPCNcls();
        
            if(TPCNcls<70 || dEdx<10) continue;
        
            // fill QA histograms
        
            TH2F* HistDCAAfter =(TH2F*)fListQAInfo->At(10);
            HistDCAAfter->Fill(dcaZ,dcaXY);
        
            TH1F *HistPhiDistAfter = (TH1F*)fListQAInfo->At(11);
            HistPhiDistAfter->Fill(phi);
        
            TH1F *HistEtaDistAfter = (TH1F*)fListQAInfo->At(12);
            HistEtaDistAfter->Fill(eta);
        
        
            Bool_t pWithinRange = kFALSE;
            Int_t p_bin = -999;
            Double_t pBins[50];
            for(int b=0;b<50;b++){pBins[b] = 0.1*b;}
            for(int i=0;i<50;i++){
                if(p>pBins[i] && p<(pBins[i]+0.1)){
                    pWithinRange = kTRUE;
                    p_bin = i;
                }
            }
        
            for (Int_t ispecie=0; ispecie<AliPID::kSPECIESC; ++ispecie){

                Double_t nSigmaTOF=fPIDResponse->NumberOfSigmasTOF(track, (AliPID::EParticleType)ispecie);
                Double_t nSigmaTPC=fPIDResponse->NumberOfSigmasTPC(track, (AliPID::EParticleType)ispecie);
            
                int i = ispecie - AliPID::kPion;
            
                if(fPIDcuts && pWithinRange){// for pions, kaons and protons only
                    if(ispecie==AliPID::kPion || ispecie==AliPID::kKaon || ispecie==AliPID::kProton){
                        int index = 50*i+p_bin;
                       
                        if(fCutContour[index]->IsInside(nSigmaTOF,nSigmaTPC)){//p_bin>7
                            TH3 *hist1 = (TH3*)fListQAtpctof->At(ispecie);
                            if (hist1){
                                hist1->Fill(nSigmaTPC,nSigmaTOF,p);}
                        }
                        if(p_bin>7 && fCutContour[index]->IsInside(nSigmaTOF,nSigmaTPC)){//p_bin>7
                            if ( (track->IsOn(AliAODTrack::kITSin)) && (track->IsOn(AliAODTrack::kTOFpid)) ) {
                                TH2F *HistBetavsPTOFafterPID = (TH2F*)fListQAInfo->At(13);
                                HistBetavsPTOFafterPID ->Fill(track->P()*track->Charge(),beta);
                            }
                            TH2F *HistdEdxvsPTPCafterPID = (TH2F*)fListQAInfo->At(14);
                            HistdEdxvsPTPCafterPID -> Fill(track->P()*track->Charge(),dEdx); //TPC signal
                        }
                        
                        if(p_bin<8 && nSigmaTPC<3 && nSigmaTPC>-3){//p_bin<8
                            if ( (track->IsOn(AliAODTrack::kITSin)) && (track->IsOn(AliAODTrack::kTOFpid)) ) {
                                TH2F *HistBetavsPTOFafterPID = (TH2F*)fListQAInfo->At(13);
                                HistBetavsPTOFafterPID ->Fill(track->P()*track->Charge(),beta);
                            }
                            TH2F *HistdEdxvsPTPCafterPID = (TH2F*)fListQAInfo->At(14);
                            HistdEdxvsPTPCafterPID -> Fill(track->P()*track->Charge(),dEdx); //TPC signal
                        }
                        
                        TH2F *hTPCnSigmavsP = (TH2F*)fListQAtpctof->At(ispecie+AliPID::kSPECIESC);
                        if (hTPCnSigmavsP){
                            hTPCnSigmavsP->Fill(track->P()*track->Charge(),nSigmaTPC);}
                        
                        //=======================With TPC+TOF nsigma method Only!==============================
                        if(fCutContour[index]->IsInside(nSigmaTOF,nSigmaTPC)){
                            
                            if ( (track->IsOn(AliAODTrack::kITSin)) && (track->IsOn(AliAODTrack::kTOFpid)) ) {
                                TH2F *HistBetavsPTOFafterPIDTPCTOF = (TH2F*)fListQAInfo->At(15);
                                HistBetavsPTOFafterPIDTPCTOF ->Fill(track->P()*track->Charge(),beta);
                                if(ispecie==AliPID::kPion){
                                    TH2F *HistPion_BetavsPTOFafterPIDTPCTOF = (TH2F*)fListQAInfo->At(19);
                                    HistPion_BetavsPTOFafterPIDTPCTOF ->Fill(track->P()*track->Charge(),beta);
                                }
                                if(ispecie==AliPID::kKaon){
                                    TH2F *HistKaon_BetavsPTOFafterPIDTPCTOF = (TH2F*)fListQAInfo->At(21);
                                    HistKaon_BetavsPTOFafterPIDTPCTOF ->Fill(track->P()*track->Charge(),beta);
                                }
                                if(ispecie==AliPID::kProton){
                                    TH2F *HistProton_BetavsPTOFafterPIDTPCTOF = (TH2F*)fListQAInfo->At(23);
                                    HistProton_BetavsPTOFafterPIDTPCTOF ->Fill(track->P()*track->Charge(),beta);
                                }
                            }
                            TH2F *HistdEdxvsPTPCafterPIDTPCTOF = (TH2F*)fListQAInfo->At(16);
                            HistdEdxvsPTPCafterPIDTPCTOF -> Fill(track->P()*track->Charge(),dEdx); //TPC signal
                            if(ispecie==AliPID::kPion){
                                TH2F *HistPion_dEdxvsPTPCafterPIDTPCTOF = (TH2F*)fListQAInfo->At(20);
                                HistPion_dEdxvsPTPCafterPIDTPCTOF -> Fill(track->P()*track->Charge(),dEdx); //TPC signal
                                TH1F *HistPionEta = (TH1F*)fListQAInfo->At(25);
                                HistPionEta->Fill(eta);
                            }
                            if(ispecie==AliPID::kKaon){
                                TH2F *HistKaon_dEdxvsPTPCafterPIDTPCTOF = (TH2F*)fListQAInfo->At(22);
                                HistKaon_dEdxvsPTPCafterPIDTPCTOF -> Fill(track->P()*track->Charge(),dEdx); //TPC signal
                                TH1F *HistKaonEta = (TH1F*)fListQAInfo->At(26);
                                HistKaonEta->Fill(eta);
                            }
                            if(ispecie==AliPID::kProton){
                                TH2F *HistProton_dEdxvsPTPCafterPIDTPCTOF = (TH2F*)fListQAInfo->At(24);
                                HistProton_dEdxvsPTPCafterPIDTPCTOF -> Fill(track->P()*track->Charge(),dEdx); //TPC signal
                                TH1F *HistProtonEta = (TH1F*)fListQAInfo->At(27);
                                HistProtonEta->Fill(eta);

                            }
                            
                        }
                        //======================With TPC nsigma Only!
                        if(nSigmaTPC<3 && nSigmaTPC>-3){
                            if ( (track->IsOn(AliAODTrack::kITSin)) && (track->IsOn(AliAODTrack::kTOFpid)) ) {
                                TH2F *HistBetavsPTOFafterPIDTPConly = (TH2F*)fListQAInfo->At(17);
                                HistBetavsPTOFafterPIDTPConly ->Fill(track->P()*track->Charge(),beta);
                            }
                            TH2F *HistdEdxvsPTPCafterPIDTPConly = (TH2F*)fListQAInfo->At(18);
                            HistdEdxvsPTPCafterPIDTPConly -> Fill(track->P()*track->Charge(),dEdx); //TPC signal
                        }
                        //========================================================================================
                        
                        
                    }
                }
                if(!fPIDcuts){
                    TH3 *hist1 = (TH3*)fListQAtpctof->At(ispecie);
                    if (hist1){
                        hist1->Fill(nSigmaTPC,nSigmaTOF,p);}
                    
                    TH2F *hTPCnSigmavsP = (TH2F*)fListQAtpctof->At(ispecie+AliPID::kSPECIESC);
                    if (hTPCnSigmavsP){
                        hTPCnSigmavsP->Fill(track->P()*track->Charge(),nSigmaTPC);}
                    
                }
            }
        }//probMis
        
    }//track loop
    
    TH2F *HistTPCvsGlobalMultAfter = (TH2F*) fListQAInfo->At(19);
    HistTPCvsGlobalMultAfter->Fill(multGlobal,multTPC);
    
}
//_________________________________________
void AliAnalysisTaskPIDconfig::CheckCentrality(AliVEvent* event, Bool_t &centralitypass)
{
    // Check if event is within the set centrality range. Falls back to V0 centrality determination if no method is set
    if (!fUseCentrality) AliFatal("No centrality method set! FATAL ERROR!");
    Double_t centvalue = event->GetCentrality()->GetCentralityPercentile(fCentralityEstimator);
    //cout << "Centrality evaluated-------------------------: " << centvalue <<endl;
    if ((centvalue >= fCentralityPercentileMin) && (centvalue < fCentralityPercentileMax))
    {
        TH1F *hCentralityPass = (TH1F*)fListQAInfo->At(0);
        hCentralityPass->Fill(centvalue);
        //cout << "--------------Fill pass-------------------------"<<endl;
        centralitypass = kTRUE;
    }
    
}
//______________________________________________________________________________
void AliAnalysisTaskPIDconfig::GetPIDContours()
{
    fContoursFile = new TFile(Form("$ALICE_ROOT/PWGCF/FLOW/database/PIDCutContours_%i-%i.root",fCentralityPercentileMin,fCentralityPercentileMax));
    
    fCutContourList=(TDirectory*)fContoursFile->Get("Filterbit1");
    if(!fCutContourList){printf("The contour file is empty"); return;}

    Double_t pBinning[50];
    for(int b=0;b<50;b++){pBinning[b]=b;}
    TString species[3] = {"pion","kaon","proton"};
    
    for(int i=0;i<150;i++){
        int ispecie = i/50;
        int iPbin = i%50;
        TList *Species_contours = (TList*)fCutContourList->Get(species[ispecie]);
        //if(Species_contours){cout<<"Species_contours exists"<<endl;}
        
        TString Graph_Name = "contourlines_";
        Graph_Name += species[ispecie];
        Graph_Name += Form("%.f%.f-%i%icent",pBinning[iPbin],pBinning[iPbin]+1,fCentralityPercentileMin,fCentralityPercentileMax);
        //cout<<Graph_Name<<endl;
        fCutGraph[i] = (TGraph*)Species_contours->FindObject(Graph_Name);
        
        if(!fCutGraph[i]){cout<<"Contour Graph does not exist"<<endl; continue;}
        
        fCutContour[i] = new TCutG(Graph_Name.Data(),fCutGraph[i]->GetN(),fCutGraph[i]->GetX(),fCutGraph[i]->GetY());
        
    }
    
}
//______________________________________________________________________________
void AliAnalysisTaskPIDconfig::SetupTPCTOFqa()
{
    //
    // Create the qa objects for TPC + TOF combination
    
    
    //TPC and TOF signal vs. momentum
    for (Int_t ispecie=0; ispecie<AliPID::kSPECIESC; ++ispecie){
        fhistNsigmaP = new TH3F(Form("NsigmaP_TPC_TOF_%s",AliPID::ParticleName(ispecie)),Form("TPC n#sigma vs. TOF n#sigma %s vs. p ;TPC n#sigma;TOF n#sigma;p [GeV]",AliPID::ParticleName(ispecie)),200,-20,20,200,-20,20,60,0.1,6);
        fListQAtpctof->Add(fhistNsigmaP);
    }
 
    //TPC signal vs. momentum
    for (Int_t ispecie=0; ispecie<AliPID::kSPECIESC; ++ispecie){
        fhistTPCnSigmavsP = new TH2F(Form("NsigmaP_TPC_%s",AliPID::ParticleName(ispecie)),Form("TPC n#sigma %s vs. p ;p [GeV];TPC n#sigma",AliPID::ParticleName(ispecie)),60,0,6,125,-5,20);
        fListQAtpctof->Add(fhistTPCnSigmavsP);
    }
    
}
//______________________________________________________________________________
void AliAnalysisTaskPIDconfig::SetupEventInfo()
{
    //event and track info
    
    fhistCentralityPass = new TH1F("fcentralityPass","centralityPass", 100,0,100);
    fListQAInfo->Add(fhistCentralityPass);
    
    fNoEvents = new TH1F("number of events","no. of events",1,0,1);
    fListQAInfo->Add(fNoEvents);
    
    fpVtxZ = new TH1F("pVtxZ","pVtxZ",100,-20,20);
    fListQAInfo->Add(fpVtxZ);
    
    fTPCvsGlobalMultBeforeOutliers = new TH2F("TPC vs. Global Multiplicity Before","TPC vs. Global Multiplicity Before",500,0,6000,500,0,6000);
    fListQAInfo->Add(fTPCvsGlobalMultBeforeOutliers);
    
    fTPCvsGlobalMultAfterOutliers = new TH2F("TPC vs. Global Multiplicity After outliers","TPC vs. Global Multiplicity After outliers",500,0,6000,500,0,6000);
    fListQAInfo->Add(fTPCvsGlobalMultAfterOutliers);
    
    fhistDCABefore = new TH2F("DCA xy vs z (before)","DCA before",200,0,10,200,0,10);
    fListQAInfo->Add(fhistDCABefore);
    
    fHistBetavsPTOFbeforePID = new TH2F("momentum vs beta before PID","momentum vs beta before PID",1000,-10.,10.,1000,0,1.2);
    fListQAInfo->Add(fHistBetavsPTOFbeforePID);
    
    fHistdEdxvsPTPCbeforePID = new TH2F("momentum vs dEdx before PID","momentum vs dEdx before PID",1000,-10.,10.,1000,0,1000);
    fListQAInfo->Add(fHistdEdxvsPTPCbeforePID);
    
    fhistPhiDistBefore = new TH1F("Phi Distribution Before Cuts","Phi Distribution Before Cuts",200,0,6.4);
    fListQAInfo->Add(fhistPhiDistBefore);
    
    fhistEtaDistBefore = new TH1F("Eta Distribution Before Cuts","Eta Distribution Before Cuts",100,-2,2);
    fListQAInfo->Add(fhistEtaDistBefore);
    
    fhistDCAAfter = new TH2F("DCA xy vs z (after)","DCA after",200,0,10,200,0,10);
    fListQAInfo->Add(fhistDCAAfter);
    
    fhistPhiDistAfter = new TH1F("Phi Distribution After Cuts","Phi Distribution After Cuts",200,0,6.4);
    fListQAInfo->Add(fhistPhiDistAfter);
    
    fhistEtaDistAfter = new TH1F("Eta Distribution After Cuts","Eta Distribution After Cuts",200,-10,10);
    fListQAInfo->Add(fhistEtaDistAfter);
    
    fHistBetavsPTOFafterPID = new TH2F("momentum vs beta after PID","momentum vs beta after PID",1000,-10.,10.,1000,0,1.2);
    fListQAInfo->Add(fHistBetavsPTOFafterPID);
    
    fHistdEdxvsPTPCafterPID = new TH2F("momentum vs dEdx after PID","momentum vs dEdx after PID",1000,-10.,10.,1000,0,1000);
    fListQAInfo->Add(fHistdEdxvsPTPCafterPID);
    
    fHistBetavsPTOFafterPIDTPCTOF = new TH2F("momentum vs beta after PID TPC+TOF","momentum vs beta after PID TPC+TOF",1000,-10.,10.,1000,0,1.2);
    fListQAInfo->Add(fHistBetavsPTOFafterPIDTPCTOF);
    
    fHistdEdxvsPTPCafterPIDTPCTOF = new TH2F("momentum vs dEdx after PID TPC+TOF","momentum vs dEdx after PID TPC+TOF",1000,-10.,10.,1000,0,1000);
    fListQAInfo->Add(fHistdEdxvsPTPCafterPIDTPCTOF);
    
    fHistBetavsPTOFafterPIDTPConly = new TH2F("momentum vs beta after PID TPC only","momentum vs beta after PID TPC only",1000,-10.,10.,1000,0,1.2);
    fListQAInfo->Add(fHistBetavsPTOFafterPIDTPConly);
    
    fHistdEdxvsPTPCafterPIDTPConly = new TH2F("momentum vs dEdx after PID TPC only","momentum vs dEdx after PID TPC only",1000,-10.,10.,1000,0,1000);
    fListQAInfo->Add(fHistdEdxvsPTPCafterPIDTPConly);
    
    fHistPion_BetavsPTOFafterPIDTPCTOF = new TH2F("Pion momentum vs beta after PID TPC+TOF","Pion momentum vs beta after PID TPC+TOF",1000,-10.,10.,1000,0,1.2);
    fListQAInfo->Add(fHistPion_BetavsPTOFafterPIDTPCTOF);
    
    fHistPion_dEdxvsPTPCafterPIDTPCTOF = new TH2F("Pion momentum vs dEdx after PID TPC+TOF","Pion momentum vs dEdx after PID TPC+TOF",1000,-10.,10.,1000,0,1000);
    fListQAInfo->Add(fHistPion_dEdxvsPTPCafterPIDTPCTOF);
    
    fHistKaon_BetavsPTOFafterPIDTPCTOF = new TH2F("Kaon momentum vs beta after PID TPC+TOF","Kaon momentum vs beta after PID TPC+TOF",1000,-10.,10.,1000,0,1.2);
    fListQAInfo->Add(fHistKaon_BetavsPTOFafterPIDTPCTOF);
    
    fHistKaon_dEdxvsPTPCafterPIDTPCTOF = new TH2F("Kaon momentum vs dEdx after PID TPC+TOF","Kaon momentum vs dEdx after PID TPC+TOF",1000,-10.,10.,1000,0,1000);
    fListQAInfo->Add(fHistKaon_dEdxvsPTPCafterPIDTPCTOF);
    
    fHistProton_BetavsPTOFafterPIDTPCTOF = new TH2F("Proton momentum vs beta after PID TPC+TOF","Proton momentum vs beta after PID TPC+TOF",1000,-10.,10.,1000,0,1.2);
    fListQAInfo->Add(fHistProton_BetavsPTOFafterPIDTPCTOF);
    
    fHistProton_dEdxvsPTPCafterPIDTPCTOF = new TH2F("Proton momentum vs dEdx after PID TPC+TOF","Proton momentum vs dEdx after PID TPC+TOF",1000,-10.,10.,1000,0,1000);
    fListQAInfo->Add(fHistProton_dEdxvsPTPCafterPIDTPCTOF);
    
    fhistPionEtaDistAfter = new TH1F("Pion Eta Distribution After PID Cuts","Pion Eta Distribution After PID Cuts",100,-2,2);
    fListQAInfo->Add(fhistPionEtaDistAfter);
    
    fhistKaonEtaDistAfter = new TH1F("Kaon Eta Distribution After PID Cuts","Kaon Eta Distribution After PID Cuts",100,-2,2);
    fListQAInfo->Add(fhistKaonEtaDistAfter);

    fhistProtonEtaDistAfter = new TH1F("Proton Eta Distribution After PID Cuts","Proton Eta Distribution PID After Cuts",100,-2,2);
    fListQAInfo->Add(fhistProtonEtaDistAfter);
    
    fTPCvsGlobalMultAfter = new TH2F("TPC vs. Global Multiplicity After","TPC vs. Global Multiplicity After",500,0,6000,500,0,6000);
    fListQAInfo->Add(fTPCvsGlobalMultAfter);
    
}


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