Small update
[u/mrichter/AliRoot.git] / PWGHF / hfe / macros / configs / PbPb / ConfigHFEQA.C
1 AliAnalysisTaskHFEQA* ConfigHFEQA(Bool_t useMC, Bool_t isAOD, Int_t icollisionsystem = 2, Int_t icent = 2){
2   
3   //***************************************//
4   //        Setting up the HFE cuts        //
5   //***************************************//
6
7   AliHFEcuts *hfecuts = new AliHFEcuts("HFEcuts","HFE cuts");
8   hfecuts->CreateStandardCuts();
9   hfecuts->SetMinNClustersTPC(100);
10   hfecuts->SetMinNClustersTPCPID(80);
11   hfecuts->SetMinNClustersITS(3);
12   hfecuts->SetMinRatioTPCclusters(0.6);
13   hfecuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable);
14   hfecuts->SetCutITSpixel(AliHFEextraCuts::kAny);
15   hfecuts->SetCheckITSLayerStatus(kFALSE);
16   hfecuts->SetEtaRange(-0.8,0.8);
17   hfecuts->SetRejectKinkDaughters();
18   hfecuts->SetAcceptKinkMothers();
19   if(isAOD) hfecuts->SetAODFilterBit(4);
20   
21   hfecuts->SetMaxImpactParam(1.,2.);
22   hfecuts->SetUseMixedVertex(kTRUE);
23   hfecuts->SetVertexRange(10.);
24   hfecuts->SetPtRange(0.1,100.);
25   // New pPb cuts (February 2013)
26   hfecuts->SetUseCorrelationVertex();
27   hfecuts->SetSPDVtxResolutionCut();
28   //hfecuts->SetpApileupCut();
29
30   //***************************************//
31   //        Setting up the task            //
32   //***************************************//
33
34   AliAnalysisTaskHFEQA *task = new AliAnalysisTaskHFEQA("taskHFEQA");
35   printf("task %p\n", task);
36   //task->SetpPbAnalysis();
37   //if(!isAOD) task->SetRemoveFirstEventInChunk();
38   //task->SetRemovePileUp(kFALSE);
39   task->SetHFECuts(hfecuts);
40   //task->GetPIDQAManager()->SetHighResolutionHistos();
41   //task->SetRejectKinkMother(kFALSE);
42
43   // Collision system
44   if (icollisionsystem == 2) task->SetPbPbAnalysis();
45   else if (icollisionsystem == 1) task->SetpPbAnalysis();
46   else if (icollisionsystem == 0) task->SetppAnalysis();
47
48
49   // Determine the centrality estimator
50   task->SetCentralityEstimator("V0A");
51   if (icent == 2) task->SetCentralityEstimator("V0M");
52   else if (icent == 3) task->SetCentralityEstimator("CL1");
53   else if (icent == 4) task->SetCentralityEstimator("ZNA");
54
55   
56   //***************************************//
57   //          Configure the PID            //
58   //***************************************//
59
60   AliHFEpid *pidTOFTPC = task->GetPIDTOFTPC();
61   if(useMC) pidTOFTPC->SetHasMCData(kTRUE);
62   pidTOFTPC->AddDetector("TOF", 0);
63   pidTOFTPC->AddDetector("TPC", 1);
64   pidTOFTPC->ConfigureTOF(3.);
65
66   AliHFEpid *pidTPCTRD = task->GetPIDTPCTRD();
67   if(useMC) pidTPCTRD->SetHasMCData(kTRUE);
68   pidTPCTRD->AddDetector("TPC", 0);
69   pidTPCTRD->AddDetector("TRD", 1);
70
71   AliHFEpid *pidTPCEMCal = task->GetPIDTPCEMCal();
72   if(useMC) pidTPCEMCal->SetHasMCData(kTRUE);
73   pidTPCEMCal->AddDetector("EMCAL", 1);
74   pidTPCEMCal->AddDetector("TPC", 0);
75   
76
77   // TPC PID
78   Double_t paramsTPCdEdxcutlowEMCal[12] ={-3.0, -3.0, -3.0,-3.0,-3.0,-3.0,-3.0,-3.0,-3.0,-3.0,-3.0,-3.0};
79   Double_t paramsTPCdEdxcutlow[12] ={0.0, 0.0, 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0};
80   Double_t paramsTPCdEdxcuthigh[12] ={3.0, 3.0, 3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0};
81   char *cutmodel;
82   cutmodel="pol0";
83   for(Int_t a=0;a<11;a++){
84     Double_t tpcparamlowEMCal[1]={paramsTPCdEdxcutlowEMCal[a]};
85     Double_t tpcparamlow[1]={paramsTPCdEdxcutlow[a]};
86     Float_t tpcparamhigh=paramsTPCdEdxcuthigh[a];
87     pidTOFTPC->ConfigureTPCcentralityCut(a,cutmodel,tpcparamlow,tpcparamhigh);
88     pidTPCTRD->ConfigureTPCcentralityCut(a,cutmodel,tpcparamlow,tpcparamhigh);
89     pidTPCEMCal->ConfigureTPCcentralityCut(a,cutmodel,tpcparamlowEMCal,tpcparamhigh);
90   }
91   pidTOFTPC->ConfigureTPCdefaultCut(cutmodel,paramsTPCdEdxcutlow,paramsTPCdEdxcuthigh[0]); 
92   pidTPCTRD->ConfigureTPCdefaultCut(cutmodel,paramsTPCdEdxcutlow,paramsTPCdEdxcuthigh[0]); 
93   pidTPCEMCal->ConfigureTPCdefaultCut(cutmodel,paramsTPCdEdxcutlowEMCal,paramsTPCdEdxcuthigh[0]); 
94
95   // TRD
96   AliHFEpidTRD *trdpid = pidTPCTRD->GetDetPID(AliHFEpid::kTRDpid);
97   trdpid->SetTRD2DPID();
98   trdpid->SetElectronEfficiency(0.80);   // efficiency
99   trdpid->SetNTracklets(6);      // ntracklets threshold
100   trdpid->SetCutNTracklets(6, kTRUE);
101
102   // change E/p cuts
103   AliHFEpidEMCAL *emcpid = pidTPCEMCal->AliHFEpid::GetDetPID(AliHFEpid::kEMCALpid);
104   emcpid->SetEoPMax(1.3);
105   emcpid->SetEoPMim(0.9);
106
107   return task;
108 }