]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/hfe/macros/configs/pPb/ConfigEMCalHFEpACorrelation.C
3a268645747ea62fe87cd0ab2c6498ddb257be27
[u/mrichter/AliRoot.git] / PWGHF / hfe / macros / configs / pPb / ConfigEMCalHFEpACorrelation.C
1 ///*******************************************************
2 ///Config Description
3 //configIndex = 0 ---> Default cuts and PID
4 //configIndex = 1 ---> TPC Ncls = 100
5 //configIndex = 2 ---> TPC Ncls = 60
6 //configIndex = 3 ---> SPD kBoth + 3 ITS cls
7 //configIndex = 4 ---> SPD kBoth + 4 ITS cls
8 //configIndex = 5 ---> SPD kAny + 3 ITS cls
9 //configIndex = 6 ---> Mass < 0.05
10 //configIndex = 7 ---> Mass < 0.15
11 //configIndex = 8 ---> Op Angle < 0.1
12 //configIndex = 9 ---> TPC PID: -0.5 to 3.0
13 //configIndex = 10 ---> V0A -> other
14 //configIndex = 11 ---> Associated hadron with SPD::kAny cut
15 ///*******************************************************
16
17 AliAnalysisTaskEMCalHFEpA* ConfigEMCalHFEpACorrelation(
18 Bool_t isMC=kFALSE, 
19 Int_t triggerIndex=0, 
20 Int_t configIndex=0, 
21 Int_t centralityIndex=0, 
22 Bool_t isAOD = kFALSE,
23 Bool_t isEMCal = kFALSE,
24 Int_t EMCalThreshould = 0 //0 == EG1, 1 == EG2
25 )
26
27 {
28 ///_______________________________________________________________________________________________________________
29 ///Track selection: Cuts used to ensure a minimum quality level of the tracks selected to perform the analysis
30         AliHFEcuts *hfecuts = new AliHFEcuts("hfeCutsMinBias","HFE Cuts");
31         hfecuts->CreateStandardCuts();
32         
33         //TPC Cuts
34         
35         hfecuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable);     
36         if(configIndex==1)      hfecuts->SetMinNClustersTPC(100);                                       //Minimum number of clusters on TPC = 100
37         else if(configIndex==2) hfecuts->SetMinNClustersTPC(60);                                        //Minimum number of clusters on TPC = 60
38         else hfecuts->SetMinNClustersTPC(80);                                                                   //Minimum number of clusters on TPC = 80
39         
40         hfecuts->SetMinNClustersTPCPID(80);                                                                 //Minimum number of clusters for dE/dx
41         hfecuts->SetMinRatioTPCclusters(0.6);                                                               //Number of clusters (Found/Findable)
42         
43         //ITS
44         if(configIndex==3) 
45         {
46                 hfecuts->SetCutITSpixel(AliHFEextraCuts::kBoth);                                                        //Require 2 cluster on SPD
47                 hfecuts->SetMinNClustersITS(3);                                                                                         //Minimum number of clusters on ITS
48         }
49         else if(configIndex==4) 
50         {
51                 hfecuts->SetCutITSpixel(AliHFEextraCuts::kBoth);                                                        //Require 2 cluster on SPD
52                 hfecuts->SetMinNClustersITS(4);                                                                                         //Minimum number of clusters on ITS
53         }
54         else if(configIndex==5) 
55         {
56                 hfecuts->SetCutITSpixel(AliHFEextraCuts::kAny);                                         //Require at least one cluster on SPD
57                 hfecuts->SetMinNClustersITS(3);                                                                                         //Minimum number of clusters on ITS
58         }
59         else
60         {
61                 hfecuts->SetCutITSpixel(AliHFEextraCuts::kAny);                                         //Require at least one cluster on SPD
62                 hfecuts->SetMinNClustersITS(2);                                                                                         //Minimum number of clusters on ITS
63         }
64         
65         hfecuts->SetCheckITSLayerStatus(kFALSE); 
66         
67         //Additional Cuts
68         hfecuts->SetPtRange(2, 1e6);                                                                                //Transversal momentum range in GeV/c
69         //hfecuts->SetMaxImpactParam(1,2);                                                                          //DCA to vertex
70         
71         //Event Selection
72         hfecuts->SetVertexRange(10.);                                                                                                   //
73         //hfecuts->SetProductionVertex(0,0.3,0,0.3);                                                                    //
74 ///_______________________________________________________________________________________________________________
75
76 ///_________________________________________________________________________________________________________________________
77 ///Task config
78         AliAnalysisTaskEMCalHFEpA *task = new AliAnalysisTaskEMCalHFEpA(Form("HFECuts%d_%d_%d_%d",triggerIndex,configIndex,centralityIndex,EMCalThreshould));
79         printf("task ------------------------ %p\n ", task);
80         
81         task->SetHFECuts(hfecuts);
82         task->SetCorrelationAnalysis();
83         task->SetAODanalysis(isAOD);
84         task->SetEventMixing(kTRUE);
85         if(configIndex==11) task->SetSPDCutForHadrons()
86         
87         if(configIndex==10) task->SetCentralityEstimator(1);
88         else task->SetCentralityEstimator(0);
89         
90         if(EMCalThreshould==0 && triggerIndex==2) task->SetEMCalTriggerEG1();
91         if(EMCalThreshould==1 && triggerIndex==2) task->SetEMCalTriggerEG2();
92         
93         if(isEMCal) task->SetUseEMCal();
94         
95         if(configIndex==6) task->SetNonHFEmassCut(0.05);
96         else if(configIndex==7) task->SetNonHFEmassCut(0.15);
97         else task->SetNonHFEmassCut(0.1);
98         
99         if(isEMCal) task->SetEtaCut(-0.6,0.6);
100         else task->SetEtaCut(-0.9,0.9);
101         
102         task->SetEoverPCut(0.8,1.2);    //Will work only in case isEMCal = kTRUE
103
104         if(configIndex==8) task->SetNonHFEangleCut(0.1);
105         
106         if(centralityIndex==0) task->SetCentrality(0,20);
107         if(centralityIndex==1) task->SetCentrality(20,60);
108         if(centralityIndex==2) task->SetCentrality(60,100);
109 ///_______________________________________________________________________________________________________________
110
111 ///_______________________________________________________________________________________________________________
112 ///Particle identification
113         AliHFEpid *pid = task->GetPID();
114
115 //______________________________________
116 //In the case of a simulation
117         if(isMC)
118         {
119           pid->SetHasMCData(kTRUE);
120           task->SetMCanalysis();
121         }
122 //______________________________________
123
124 //______________________________________________________
125 //Configure PID
126         //_________________________
127         //TPC+TOF PID
128         pid->AddDetector("TOF", 0);                             //Add TOF PID
129         pid->AddDetector("TPC", 1);                             //Add TPC PID
130         
131         //_________________________
132         //Configure TPC cut
133         //Defaul = -1 to 3 sigmas
134         //Note that it is also possible to define a model instead of a constant
135         //--------->For this change the "cut model"
136         
137         Double_t params[4];
138         char *cutmodel;
139         cutmodel = "pol0";
140         
141         if(configIndex==9) params[0] = 0.0;
142         else params[0] = -0.5;
143         
144         pid->ConfigureTPCdefaultCut(cutmodel,params,3.0); 
145 //_______________________________________________________
146 ///_______________________________________________________________________________________________________________
147
148         printf("*************************************\n");
149         printf("Configuring standard Task:\n");
150         pid->PrintStatus();
151         printf("*************************************\n");
152
153         return task;
154 }