ROOT logo

void AddTaskPIDconfig(Int_t CentralityTriggerSelection = AliVEvent::kMB, Double_t centralityMin=0, Double_t centralityMax=5 ,Double_t FilterBit=1, Bool_t PIDcuts=kFALSE,TString useroutputfile="output"){

    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
    if (!mgr) {
        ::Error("AddTaskPID", "No analysis manager to connect to.");
        return 0x0;
    }
    
    // standard with task
    printf("========================================================================================\n");
    printf("PID: Initialising AliAnalysisTaskPIDconfig\n");
    printf("========================================================================================\n");
    
    Double_t centrMin[9] = {0,5,10,20,30,40,50,60,70};
    Double_t centrMax[9] = {5,10,20,30,40,50,60,70,80};
    Bool_t Pass_Min = kFALSE;
    Bool_t Pass_Max = kFALSE;

    for(int i=0;i<9;i++)
    {
        if(centralityMin == centrMin[i]){
            const int iMin = i;
            Pass_Min = kTRUE;
        }
        if(centralityMax == centrMax[i]){
            const int iMax = i;
            Pass_Max = kTRUE;
        }
    }
    if(!Pass_Min || !Pass_Max){
        ::Error("centrality Min and Max don't match the defined ranges");
        return 0x0;
    }
    
    const int ncentr = iMax - iMin +1;
    TString outputfile[ncentr];
    AliAnalysisDataContainer *coutput1[ncentr];
    AliAnalysisTaskPIDconfig *pidTask[ncentr];
    int icentr = 0;
    
    
    
    for(int i=0;i<iMax-iMin+1;i++){
        icentr = i + iMin;
        outputfile[i] = useroutputfile;
        outputfile[i].Append(".root");
        pidTask[i] = new AliAnalysisTaskPIDconfig(Form("pidTask_%.f-%.f",centrMin[icentr],centrMax[icentr]));
        pidTask[i]->SelectCollisionCandidates(CentralityTriggerSelection);
        pidTask[i]->SetCutTPCmultiplicityOutliersAOD(kTRUE);
        pidTask[i]->SetData2011(kFALSE);
        pidTask[i]->SetFilterBit(FilterBit);
        pidTask[i]->SetUseCentrality(kTRUE);
        pidTask[i]->SetCentralityPercentileMin(centrMin[icentr]);
        pidTask[i]->SetCentralityPercentileMax(centrMax[icentr]);
        pidTask[i]->SetCentralityEstimator("V0M");
        pidTask[i]->SetDCAxyCut(10);
        pidTask[i]->SetDCAzCut(10);
        pidTask[i]->SetCuts(PIDcuts);
        
        mgr->AddTask(pidTask[i]);
        
        coutput1[i] = mgr->CreateContainer(Form("PID_%.f-%.f",centrMin[icentr],centrMax[icentr]), TList::Class(),AliAnalysisManager::kOutputContainer,outputfile[i]);
  
        //connect containers
        mgr->ConnectInput  (pidTask[i],  0, mgr->GetCommonInputContainer());
        mgr->ConnectOutput (pidTask[i],  1, coutput1[i]);
        
        //return pidTask[icentr];

    }
 AddTaskPIDconfig.C:1
 AddTaskPIDconfig.C:2
 AddTaskPIDconfig.C:3
 AddTaskPIDconfig.C:4
 AddTaskPIDconfig.C:5
 AddTaskPIDconfig.C:6
 AddTaskPIDconfig.C:7
 AddTaskPIDconfig.C:8
 AddTaskPIDconfig.C:9
 AddTaskPIDconfig.C:10
 AddTaskPIDconfig.C:11
 AddTaskPIDconfig.C:12
 AddTaskPIDconfig.C:13
 AddTaskPIDconfig.C:14
 AddTaskPIDconfig.C:15
 AddTaskPIDconfig.C:16
 AddTaskPIDconfig.C:17
 AddTaskPIDconfig.C:18
 AddTaskPIDconfig.C:19
 AddTaskPIDconfig.C:20
 AddTaskPIDconfig.C:21
 AddTaskPIDconfig.C:22
 AddTaskPIDconfig.C:23
 AddTaskPIDconfig.C:24
 AddTaskPIDconfig.C:25
 AddTaskPIDconfig.C:26
 AddTaskPIDconfig.C:27
 AddTaskPIDconfig.C:28
 AddTaskPIDconfig.C:29
 AddTaskPIDconfig.C:30
 AddTaskPIDconfig.C:31
 AddTaskPIDconfig.C:32
 AddTaskPIDconfig.C:33
 AddTaskPIDconfig.C:34
 AddTaskPIDconfig.C:35
 AddTaskPIDconfig.C:36
 AddTaskPIDconfig.C:37
 AddTaskPIDconfig.C:38
 AddTaskPIDconfig.C:39
 AddTaskPIDconfig.C:40
 AddTaskPIDconfig.C:41
 AddTaskPIDconfig.C:42
 AddTaskPIDconfig.C:43
 AddTaskPIDconfig.C:44
 AddTaskPIDconfig.C:45
 AddTaskPIDconfig.C:46
 AddTaskPIDconfig.C:47
 AddTaskPIDconfig.C:48
 AddTaskPIDconfig.C:49
 AddTaskPIDconfig.C:50
 AddTaskPIDconfig.C:51
 AddTaskPIDconfig.C:52
 AddTaskPIDconfig.C:53
 AddTaskPIDconfig.C:54
 AddTaskPIDconfig.C:55
 AddTaskPIDconfig.C:56
 AddTaskPIDconfig.C:57
 AddTaskPIDconfig.C:58
 AddTaskPIDconfig.C:59
 AddTaskPIDconfig.C:60
 AddTaskPIDconfig.C:61
 AddTaskPIDconfig.C:62
 AddTaskPIDconfig.C:63
 AddTaskPIDconfig.C:64
 AddTaskPIDconfig.C:65
 AddTaskPIDconfig.C:66
 AddTaskPIDconfig.C:67
 AddTaskPIDconfig.C:68
 AddTaskPIDconfig.C:69
 AddTaskPIDconfig.C:70
 AddTaskPIDconfig.C:71
 AddTaskPIDconfig.C:72