ROOT logo
AddTaskPidVZEROSP(Int_t centralityselection=AliVEvent::kAny,Float_t etamin=-0.8,Float_t etamax=0.8,Int_t side=0,Int_t filterbit=1,Bool_t TOFbeta=kFALSE){
  gROOT->LoadMacro("$ALICE_ROOT/PWGCF/FLOW/macros/AddTaskFlowCentralityPIDSP.C");

  const Int_t ncentr = 5;
  Int_t cmin[ncentr]={0,5,10,20,40};
  Int_t cmax[ncentr]={5,10,20,30,50};

  for(Int_t i=0;i < ncentr;i++){
    if(!TOFbeta){
      AddTaskFlowCentralityPIDSP(centralityselection,cmin[i],cmax[i],"AnalysisResults",kFALSE,AliPID::kPion,AliFlowTrackCuts::kTOFbayesian,0,2,0,etamin,etamax,"",side,filterbit); // no pid
      AddTaskFlowCentralityPIDSP(centralityselection,cmin[i],cmax[i],"AnalysisResults",kTRUE,AliPID::kPion,AliFlowTrackCuts::kTOFbayesian,0,2,0,etamin,etamax,"",side,filterbit);
      AddTaskFlowCentralityPIDSP(centralityselection,cmin[i],cmax[i],"AnalysisResults",kTRUE,AliPID::kKaon,AliFlowTrackCuts::kTOFbayesian,0,2,0,etamin,etamax,"",side,filterbit);
      AddTaskFlowCentralityPIDSP(centralityselection,cmin[i],cmax[i],"AnalysisResults",kTRUE,AliPID::kProton,AliFlowTrackCuts::kTOFbayesian,-1,2,0,etamin,etamax,"",side,filterbit);
      AddTaskFlowCentralityPIDSP(centralityselection,cmin[i],cmax[i],"AnalysisResults",kTRUE,AliPID::kProton,AliFlowTrackCuts::kTOFbayesian,0,2,0,etamin,etamax,"",side,filterbit);
    }
    else{
      AddTaskFlowCentralityPIDSP(centralityselection,cmin[i],cmax[i],"AnalysisResults",kFALSE,AliPID::kPion,AliFlowTrackCuts::kTOFbeta,0,2,0,etamin,etamax,"",side,filterbit); // no pid
      AddTaskFlowCentralityPIDSP(centralityselection,cmin[i],cmax[i],"AnalysisResults",kTRUE,AliPID::kPion,AliFlowTrackCuts::kTOFbeta,0,2,0,etamin,etamax,"",side,filterbit);
      AddTaskFlowCentralityPIDSP(centralityselection,cmin[i],cmax[i],"AnalysisResults",kTRUE,AliPID::kKaon,AliFlowTrackCuts::kTOFbeta,0,2,0,etamin,etamax,"",side,filterbit);
      AddTaskFlowCentralityPIDSP(centralityselection,cmin[i],cmax[i],"AnalysisResults",kTRUE,AliPID::kProton,AliFlowTrackCuts::kTOFbeta,-1,2,0,etamin,etamax,"",side,filterbit);
      AddTaskFlowCentralityPIDSP(centralityselection,cmin[i],cmax[i],"AnalysisResults",kTRUE,AliPID::kProton,AliFlowTrackCuts::kTOFbeta,0,2,0,etamin,etamax,"",side,filterbit);
    }
    AddTaskFlowCentralityPIDSP(centralityselection,cmin[i],cmax[i],"AnalysisResults",kTRUE,AliPID::kPion,AliFlowTrackCuts::kTPCbayesian,0,2,0,etamin,etamax,"",side,filterbit);
    AddTaskFlowCentralityPIDSP(centralityselection,cmin[i],cmax[i],"AnalysisResults",kTRUE,AliPID::kKaon,AliFlowTrackCuts::kTPCbayesian,0,2,0,etamin,etamax,"",side,filterbit);
    AddTaskFlowCentralityPIDSP(centralityselection,cmin[i],cmax[i],"AnalysisResults",kTRUE,AliPID::kProton,AliFlowTrackCuts::kTPCbayesian,-1,2,0,etamin,etamax,"",side,filterbit);
    AddTaskFlowCentralityPIDSP(centralityselection,cmin[i],cmax[i],"AnalysisResults",kTRUE,AliPID::kProton,AliFlowTrackCuts::kTPCbayesian,0,2,0,etamin,etamax,"",side,filterbit);
  }
}

createSPres(){
  gSystem->Load("libVMC.so");
  gSystem->Load("libPhysics.so");
  gSystem->Load("libTree.so");
  gSystem->Load("libMinuit.so");
  gSystem->Load("libSTEERBase.so");
  gSystem->Load("libANALYSIS.so");
  gSystem->Load("libAOD.so");
  gSystem->Load("libESD.so");
  gSystem->Load("libANALYSIS.so");
  gSystem->Load("libANALYSISalice.so");
  gSystem->Load("libCORRFW.so");
  gSystem->Load("libNetx.so");
  gSystem->Load("libPWGflowBase.so");
  
  char name[200];
  char *spe[4]={"pion","kaon","antipr","proton"};
  char *tech[2]={"TOF","TPC"};
  const Int_t ncentr = 5;
  Int_t cmin[ncentr]={0,5,10,20,40};
  Int_t cmax[ncentr]={5,10,20,30,50};
  
  TFile *f = new TFile("AnalysisResults.root");
  TFile *fo = new TFile("results.root","RECREATE");
  TDirectory* directory = dynamic_cast<TDirectory*>(f->Get("outputSPanalysisTPCstandalone"));
  TList* listTemp = directory->GetListOfKeys();
  for(Int_t i=0;i < ncentr;i++){
    TList* list2 = dynamic_cast<TList*>(directory->Get(listTemp->At(i*ncentr)->GetName()));
    AliFlowAnalysisWithScalarProduct* sp2 = new AliFlowAnalysisWithScalarProduct();
    sp2->GetOutputHistograms(list2);
    sp2->Finish();
    AliFlowCommonHistResults* res2=sp2->GetCommonHistsRes();
    TH1D *h2=res2->GetHistDiffFlowPtPOI();
    sprintf(name,"v2SP_%s_%i_%i","AllCharged",cmin[i],cmax[i]);
    h2->SetName(name);
    fo->cd();
    h2->Write();
    for(Int_t j=0;j < 2;j++){
      for(Int_t k=0;k < 4;k++){
	TList* list = dynamic_cast<TList*>(directory->Get(listTemp->At(i*ncentr+j*4+k+1)->GetName()));
	AliFlowAnalysisWithScalarProduct* sp = new AliFlowAnalysisWithScalarProduct();
	sp->GetOutputHistograms(list);
	sp->Finish();
	AliFlowCommonHistResults* res=sp->GetCommonHistsRes();
	TH1D *h=res->GetHistDiffFlowPtPOI();
	sprintf(name,"v2SP_%s_%i_%i%s",spe[k],cmin[i],cmax[i],tech[j]);
	h->SetName(name);
	fo->cd();
	h->Write();
      }
    }
  }
  fo->Close();
}




 AddTaskPidVZEROSP.C:1
 AddTaskPidVZEROSP.C:2
 AddTaskPidVZEROSP.C:3
 AddTaskPidVZEROSP.C:4
 AddTaskPidVZEROSP.C:5
 AddTaskPidVZEROSP.C:6
 AddTaskPidVZEROSP.C:7
 AddTaskPidVZEROSP.C:8
 AddTaskPidVZEROSP.C:9
 AddTaskPidVZEROSP.C:10
 AddTaskPidVZEROSP.C:11
 AddTaskPidVZEROSP.C:12
 AddTaskPidVZEROSP.C:13
 AddTaskPidVZEROSP.C:14
 AddTaskPidVZEROSP.C:15
 AddTaskPidVZEROSP.C:16
 AddTaskPidVZEROSP.C:17
 AddTaskPidVZEROSP.C:18
 AddTaskPidVZEROSP.C:19
 AddTaskPidVZEROSP.C:20
 AddTaskPidVZEROSP.C:21
 AddTaskPidVZEROSP.C:22
 AddTaskPidVZEROSP.C:23
 AddTaskPidVZEROSP.C:24
 AddTaskPidVZEROSP.C:25
 AddTaskPidVZEROSP.C:26
 AddTaskPidVZEROSP.C:27
 AddTaskPidVZEROSP.C:28
 AddTaskPidVZEROSP.C:29
 AddTaskPidVZEROSP.C:30
 AddTaskPidVZEROSP.C:31
 AddTaskPidVZEROSP.C:32
 AddTaskPidVZEROSP.C:33
 AddTaskPidVZEROSP.C:34
 AddTaskPidVZEROSP.C:35
 AddTaskPidVZEROSP.C:36
 AddTaskPidVZEROSP.C:37
 AddTaskPidVZEROSP.C:38
 AddTaskPidVZEROSP.C:39
 AddTaskPidVZEROSP.C:40
 AddTaskPidVZEROSP.C:41
 AddTaskPidVZEROSP.C:42
 AddTaskPidVZEROSP.C:43
 AddTaskPidVZEROSP.C:44
 AddTaskPidVZEROSP.C:45
 AddTaskPidVZEROSP.C:46
 AddTaskPidVZEROSP.C:47
 AddTaskPidVZEROSP.C:48
 AddTaskPidVZEROSP.C:49
 AddTaskPidVZEROSP.C:50
 AddTaskPidVZEROSP.C:51
 AddTaskPidVZEROSP.C:52
 AddTaskPidVZEROSP.C:53
 AddTaskPidVZEROSP.C:54
 AddTaskPidVZEROSP.C:55
 AddTaskPidVZEROSP.C:56
 AddTaskPidVZEROSP.C:57
 AddTaskPidVZEROSP.C:58
 AddTaskPidVZEROSP.C:59
 AddTaskPidVZEROSP.C:60
 AddTaskPidVZEROSP.C:61
 AddTaskPidVZEROSP.C:62
 AddTaskPidVZEROSP.C:63
 AddTaskPidVZEROSP.C:64
 AddTaskPidVZEROSP.C:65
 AddTaskPidVZEROSP.C:66
 AddTaskPidVZEROSP.C:67
 AddTaskPidVZEROSP.C:68
 AddTaskPidVZEROSP.C:69
 AddTaskPidVZEROSP.C:70
 AddTaskPidVZEROSP.C:71
 AddTaskPidVZEROSP.C:72
 AddTaskPidVZEROSP.C:73
 AddTaskPidVZEROSP.C:74
 AddTaskPidVZEROSP.C:75
 AddTaskPidVZEROSP.C:76
 AddTaskPidVZEROSP.C:77
 AddTaskPidVZEROSP.C:78
 AddTaskPidVZEROSP.C:79
 AddTaskPidVZEROSP.C:80
 AddTaskPidVZEROSP.C:81
 AddTaskPidVZEROSP.C:82
 AddTaskPidVZEROSP.C:83
 AddTaskPidVZEROSP.C:84
 AddTaskPidVZEROSP.C:85
 AddTaskPidVZEROSP.C:86
 AddTaskPidVZEROSP.C:87
 AddTaskPidVZEROSP.C:88