]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/hfe/macros/configs/PbPb/ConfigHFE_FLOW_TOFTPC.C
Update config
[u/mrichter/AliRoot.git] / PWGHF / hfe / macros / configs / PbPb / ConfigHFE_FLOW_TOFTPC.C
1 AliAnalysisTaskHFEFlow* ConfigHFE_FLOW_TOFTPC(Bool_t useMC, Int_t tpcCls, Double_t tpcClsr,Int_t tpcClspid, Double_t tpcsharedfraction, Int_t itsCls, Double_t chi2peritscl, Int_t pixellayer, Double_t dcaxy, Double_t dcaz,  Double_t tofsig, Double_t tpcdedx0, Double_t tpcdedx1, Double_t tpcdedx2, Double_t tpcdedx3, Double_t tpcdedx4, Int_t vzero, Int_t debuglevel)
2 {
3   //
4   // HFE flow task 
5   //
6   printf("Summary settings flow task\n");
7   printf("TPC number of tracking clusters %d\n",tpcCls);
8   printf("TPC ratio clusters %f\n",tpcClsr*0.01);
9   printf("TPC number of pid clusters %d\n",tpcClspid);
10   printf("Maximal fraction of TPC shared cluster %f\n",tpcsharedfraction*0.01);
11   printf("ITS number of clusters %d\n",itsCls);
12   printf("Maximal chi2 per ITS cluster %f\n",chi2peritscl);
13   printf("Requirement on the pixel layer %d\n",pixellayer);
14   printf("dcaxy %f\n",dcaxy*0.01);
15   printf("dcaz %f\n",dcaz*0.01);
16   printf("TOF sigma %f\n",tofsig*0.1);
17   printf("TPC min sigma cut 0: %f\n",tpcdedx0*0.01);
18   printf("TPC min sigma cut 1: %f\n",tpcdedx1*0.01);
19   printf("TPC min sigma cut 2: %f\n",tpcdedx2*0.01);
20   printf("TPC min sigma cut 3: %f\n",tpcdedx3*0.01);
21   printf("TPC min sigma cut 4: %f\n",tpcdedx4*0.01);
22   printf("VZERO event plane %d\n",vzero);
23   printf("Debug level %d\n",debuglevel);
24   
25   // Cut HFE
26   AliHFEcuts *hfecuts = new AliHFEcuts("hfeCuts","HFE Standard Cuts");
27   hfecuts->CreateStandardCuts();
28   hfecuts->SetMinNClustersTPC(tpcCls);
29   hfecuts->SetMinNClustersTPCPID(tpcClspid);
30   hfecuts->SetMinRatioTPCclusters(tpcClsr*0.01);
31   hfecuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable);
32   hfecuts->SetFractionOfSharedTPCClusters(tpcsharedfraction*0.01);
33       
34   hfecuts->SetMinNClustersITS(itsCls);
35   hfecuts->SetCutITSpixel(pixellayer);
36   hfecuts->SetCheckITSLayerStatus(kFALSE);
37   
38   hfecuts->SetMaxImpactParam(dcaxy*0.01,dcaz*0.01);
39       
40   //hfecuts->UnsetVertexRequirement();
41   hfecuts->SetVertexRange(10.);
42   
43   hfecuts->SetTOFPIDStep(kTRUE);
44
45   // Name
46   TString appendix(TString::Format("TPC%dTPCr%dTPCpid%dTPCShared%dITScl%dChi2perITS%dPixelLayer%dDCAr%dz%dTOFsig%dTPCmindedx0%dTPCmindedx1%dTPCmindedx2%dTPCmindedx3%dTPCmindedx4%dVZERO%dDebugLevel%decorr%d",tpcCls,(Int_t)tpcClsr,tpcClspid,(Int_t) tpcsharedfraction,itsCls,(Int_t) chi2peritscl,(Int_t) pixellayer,(Int_t)dcaxy,(Int_t)dcaz,(Int_t)tofsig,(Int_t)tpcdedx0,(Int_t)tpcdedx1,(Int_t)tpcdedx2,(Int_t)tpcdedx3,(Int_t)tpcdedx4,vzero,debuglevel,(Int_t)withetacorrection));
47   printf("appendix %s\n", appendix.Data());
48   
49   // The task
50   AliAnalysisTaskHFEFlow *task = new AliAnalysisTaskHFEFlow(Form("HFEFlowtask_%s", appendix.Data()));
51   task->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral); 
52   task->SetDebugLevel(1);
53   task->GetPIDQAManager()->SetHighResolutionHistos();
54   task->SetHFECuts(hfecuts);
55   if(useMC) {
56     task->SetMCPID(kTRUE);
57     //task->SetUseMCReactionPlane(kTRUE);
58     task->SetAfterBurnerOn(kTRUE);
59     task->SetV1V2V3V4V5(0.0,0.2,0.0,0.0,0.0);
60   }
61   if(vzero>=1) task->SetVZEROEventPlane(kTRUE);
62   if(vzero==2) task->SetVZEROEventPlaneA(kTRUE);
63   if(vzero==3) task->SetVZEROEventPlaneC(kTRUE);
64   task->SetDebugLevel(debuglevel);
65
66   // Define PID
67   AliHFEpid *pid = task->GetPID();
68   if(useMC) pid->SetHasMCData(kTRUE);
69   pid->AddDetector("TOF", 0);
70   pid->AddDetector("TPC", 1);
71
72   TString datatype=gSystem->Getenv("CONFIG_FILE");
73   
74   if(!useMC) {
75     
76     Double_t params_centr_0_5[1];
77     Double_t params_centr_5_10[1];
78     Double_t params_centr_10_20[1];
79     Double_t params_centr_20_30[1];
80     Double_t params_centr_per[1];
81     params_centr_0_5[0]=tpcdedx0*0.01;  // cut tuned for 0-10%
82     params_centr_5_10[0]=tpcdedx1*0.01; // cut tuned for 0-10%
83     params_centr_10_20[0]=tpcdedx2*0.01;
84     params_centr_20_30[0]=tpcdedx3*0.01;
85     params_centr_per[0]=tpcdedx4*0.01;
86     
87     char *cutmodel;
88     cutmodel="pol0";
89     
90     for(Int_t a=0;a<11;a++)
91       {
92         if(a>3)  pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_per,3.0);
93         if(a==0) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_0_5,3.0);    //  0-5%
94         if(a==1) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_5_10,3.0);    //  5-10%
95         if(a==2) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_10_20,3.0);    //  10-20%
96         if(a==3) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_20_30,3.0);    //  20-30%
97       }
98     
99   }
100
101   pid->ConfigureTOF(tofsig*0.1);
102   
103   printf("*************************************\n");
104   printf("Configuring standard Task:\n");
105   task->Print();
106   pid->PrintStatus();
107   printf("*************************************\n"); 
108   return task;
109
110 }