]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/hfe/macros/AddTaskHFEnpePbPb.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGHF / hfe / macros / AddTaskHFEnpePbPb.C
CommitLineData
c683985a 1AliAnalysisTask *AddTaskHFEnpePbPb(Bool_t MCthere,
2 Bool_t isAOD,
465ff082 3 Bool_t kNPERef = kTRUE,
4 Bool_t kNPEkAny = kFALSE,
5 Bool_t kNPERefTPConly = kFALSE,
6 Bool_t kNPETOFITS = kFALSE,
7 Bool_t kNPETOFlast = kFALSE,
8 Bool_t kNPEw = kFALSE,
9 Bool_t kNPEkf = kFALSE)
10
c683985a 11{
12 // Default settings (TOF-TPC PbPb)
13 const int kDefTPCcl = 130;
14 const int kDefTPCclPID = 80;
15 const int kDefTPCclshared = 1.1;
16 const int kDefITScl = 4;
17 const int kDefITSchi2percluster = -1; // cleanup removes badly matching tracks - effects high pt (cut value = 36)
18 const double kDefDCAr = 1.;
19 const double kDefDCAz = 2.;
20 const double kDefTOFs = 3.;
21 const double kDefEtaIncMin = -0.8;
22 const double kDefEtaIncMax = 0.8;
23 const Bool_t etacorrection = kFALSE;
24 const Bool_t multicorrection = kTRUE;
25
26 Double_t dEdxhm[12] = {3.11,3.11,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0};
27 Double_t tpcl1[12] = {-0.14,-0.14,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3};
28
29 // Default setting for the associated electron for the NonPhotonic Analysis
30 const double kassETAm = -0.8;
31 const double kassETAp = 0.8;
32 const int kassITS = 2;
33 const int kassTPCcl = 60;
34 const int kassTPCPIDcl = 60;
35 const double kassDCAr = 1.0;
36 const double kassDCAz = 2.0;
37 const double kassTPCSminus = -3.0;
38 const double kassTPCSplus = 3.0;
39
465ff082 40 Int_t kWei = -1;
41 /*
42 if (MCthere) kWei = 9; // default Pb-Pb
43 enum {
44
45 k11a10abisweiData = 6, // LHC11a10abis weights
46 k11a10bplusweiData = 7, // LHC11a10b_plus weights
47 k11a10bpluswei11a10abis = 8, // LHC11a10b_plus weights for LHC11a10abis
48 k11a10bbisweiData = 9, // LHC11a10bbis weights
49 };
50 */
51
c683985a 52 //get the current analysis manager
53 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
54 if (!mgr) {
55 Error("AddTask_hfe_HFE", "No analysis manager found.");
56 return 0;
57 }
58
59 //mgr->AddClassDebug("AliAnalysisTaskHFE",12);
60
61
62 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
63
64 //@@ 0 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
65
66 Double_t dEdxaclm[12], dEdxachm[12];
67 for(int icent = 0; icent < 12; icent++){
68 dEdxaclm[icent] = kassTPCSminus;
69 dEdxachm[icent] = kassTPCSplus;
70 }
71
465ff082 72
73 const Bool_t isBeauty = kFALSE; // should be false to prevent inclusive analysis
74
c683985a 75 if(kNPERef){
76 // **************************************************************
77 //
78 // Reference task
79 //
80 // **************************************************************
465ff082 81 RegisterTaskNPEPbPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1, dEdxhm, kDefTOFs,0., AliHFEextraCuts::kBoth, kDefITSchi2percluster, kDefTPCclshared, etacorrection, multicorrection, kFALSE, kDefEtaIncMin, kDefEtaIncMax,
82 kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE,-1);
83 }
84
85 if(kNPETOFlast){
86 // **************************************************************
87 //
88 // Apply TOF after TPC for mismatch background studies
89 //
90 // **************************************************************
91 RegisterTaskNPEPbPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1, dEdxhm, kDefTOFs,0., AliHFEextraCuts::kBoth, kDefITSchi2percluster, kDefTPCclshared, etacorrection, multicorrection, kTRUE, kDefEtaIncMin, kDefEtaIncMax,
92 kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE,-1);
c683985a 93 }
94
95 if(kNPEkAny){
96 // **************************************************************
97 //
98 // task for kAny instead of kBoth
99 //
100 // **************************************************************
465ff082 101 RegisterTaskNPEPbPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1, dEdxhm, kDefTOFs,0., AliHFEextraCuts::kAny, kDefITSchi2percluster, kDefTPCclshared, etacorrection, multicorrection, kFALSE, kDefEtaIncMin, kDefEtaIncMax,
102 kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE,-1);
c683985a 103 }
465ff082 104
105 if(kNPEw && MCthere){
c683985a 106 // **************************************************************
107 //
465ff082 108 // Reference task
c683985a 109 //
110 // **************************************************************
465ff082 111 RegisterTaskNPEPbPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1, dEdxhm, kDefTOFs,0., AliHFEextraCuts::kBoth, kDefITSchi2percluster, kDefTPCclshared, etacorrection, multicorrection, kFALSE, kDefEtaIncMin, kDefEtaIncMax,
112 kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE, 0,kWei);
c683985a 113 }
114
115 if(kNPERefTPConly){
116 // **************************************************************
117 //
118 // Reference task
119 //
120 // **************************************************************
465ff082 121 RegisterTaskNPEPbPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1, dEdxhm, 0.,0., AliHFEextraCuts::kBoth, kDefITSchi2percluster, kDefTPCclshared, etacorrection, multicorrection, kFALSE, kDefEtaIncMin, kDefEtaIncMax,
122 kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE,-1);
123 }
124
125
126 if(kNPETOFITS){
127 // **************************************************************
128 //
129 // Reference task
130 //
131 // **************************************************************
132 RegisterTaskNPEPbPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1, dEdxhm, kDefTOFs, kDefITSs, AliHFEextraCuts::kBoth, kDefITSchi2percluster, kDefTPCclshared, etacorrection, multicorrection, kFALSE, kDefEtaIncMin, kDefEtaIncMax,
133 kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE,-1);
134 }
135
136
137 if(kNPEkf){
138 // **************************************************************
139 //
140 // Use KF particle
141 //
142 // **************************************************************
143 RegisterTaskNPEPbPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1, dEdxhm, kDefTOFs,0., AliHFEextraCuts::kBoth, kDefITSchi2percluster, kDefTPCclshared, etacorrection, multicorrection, kFALSE, kDefEtaIncMin, kDefEtaIncMax,
144 kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE,-1,2,kFALSE,kFALSE,kFALSE,kTRUE);
c683985a 145 }
146
465ff082 147
c683985a 148 return NULL;
465ff082 149
c683985a 150}
151
152//===============================================================================
465ff082 153
154//===============================================================================
155AliAnalysisTask *RegisterTaskNPEPbPb(Bool_t useMC, Bool_t isAOD, Bool_t beauty,
156 Int_t tpcCls=120, Int_t tpcClsPID=80,
157 Int_t itsCls=4, Double_t dcaxy=1.0, Double_t dcaz=2.0,
158 Double_t *tpcdEdxcutlow=NULL, Double_t *tpcdEdxcuthigh=NULL,
159 Double_t tofs=3., Double_t itss=0., Int_t itshitpixel =AliHFEextraCuts::kBoth,
160 Double_t itschi2percluster = -1, Double_t tpcsharedcluster = 1.1,
161 Bool_t etacorr=kFALSE, Bool_t multicorr = kFALSE, Bool_t toflast = kFALSE,
162 Double_t etaIncMin = -0.8, Double_t etaIncMax = 0.8,
163 Double_t assETAm=-0.8, Double_t assETAp=0.8, Int_t assITS=2, Int_t assTPCcl=100,
164 Int_t assTPCPIDcl=80, Double_t assDCAr=1.0, Double_t assDCAz=2.0,
165 Double_t *assTPCSminus = NULL, Double_t *assTPCSplus=NULL,
166 Bool_t useCat1Tracks = kTRUE, Bool_t useCat2Tracks = kTRUE,
167 Int_t weightlevelback = -1,Int_t wei = 2,
168 Bool_t releasemcvx = kFALSE,
169 Bool_t ipCharge = kFALSE,
170 Bool_t ipOpp = kFALSE,
171 Bool_t usekfparticle = kFALSE)
c683985a 172{
173
174 //
175 // Cuts on the inclusive leg
176 //
177 Int_t idcaxy = (Int_t)(dcaxy*10.);
178 Int_t idcaz = (Int_t)(dcaz*10.);
179 Int_t tpclow = 0;
180 if(tpcdEdxcutlow) tpclow = (Int_t) (tpcdEdxcutlow[0]*1000.);
181 Int_t itofs = (Int_t)(tofs*10.);
465ff082 182 Int_t iitss = (Int_t)(itss*10.);
c683985a 183 Int_t ipixelany = itshitpixel;
184 Int_t imult = multicorr ? 1 : 0;
465ff082 185 Int_t itofpos = toflast ? 1 : 0;
c683985a 186
187 //
188 // Cuts on the associated leg
189 //
190 Int_t iassDCAr = (Int_t)(assDCAr*10);
191 Int_t iassDCAz = (Int_t)(assDCAz*10);
192 Int_t iassTPCSplus = assTPCSplus ? (Int_t)(assTPCSplus[0]*1000) : 0;
193 Int_t icat1 = useCat1Tracks ? 1 : 0;
194 Int_t icat2 = useCat2Tracks ? 1 : 0;
465ff082 195
196 Bool_t nondefaultcentr = kFALSE;
c683985a 197
465ff082 198 TString cweightsback("");
199 if(weightlevelback>=0) {
200 cweightsback += "Wa";
201 cweightsback += weightlevelback;
202 }
c683985a 203
465ff082 204 TString cmvx("");
205 if(releasemcvx) {
206 cmvx += "MCVR";
207 }
c683985a 208
465ff082 209 TString kfp("");
210 if(usekfparticle) {
211 kfp += "kf";
212 }
213
214 if(beauty) {
215 if(ipCharge && ipOpp) TString cbeauty("BeautyIPopp");
216 else if(ipCharge) TString cbeauty("BeautyIPcrg");
217 else if(!ipCharge) TString cbeauty("Beauty");
218 else TString cbeauty("BeautyWrong");
219 }
220 else TString cbeauty("");
221
222 TString appendix(TString::Format("SPD%d_incTPCc%dTPCp%dITS%dDCAr%dz%dTPCs%dTOFs%dITSs%dm%dt%d_photTPCc%dTPCp%dITS%dDCAr%dDCAz%dTPCs%d%s%s%s%s",ipixelany,tpcCls,tpcClsPID,itsCls,idcaxy,idcaz,tpclow,itofs,iitss,imult,itofpos,assTPCcl,assTPCPIDcl,assITS,iassDCAr,iassDCAz,iassTPCSplus,cweightsback.Data(),cmvx.Data(),cbeauty.Data(),kfp.Data()));
223
224 printf("Add macro appendix %s\n", appendix.Data());
225
52a564ee 226 if(useMC&&!gROOT->GetListOfGlobalFunctions()->FindObject("ConfigWeightFactors")) gROOT->LoadMacro("$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/ConfigWeightFactors.C");
227 if(!gROOT->GetListOfGlobalFunctions()->FindObject("ConfigHFEnpePbPb"))gROOT->LoadMacro("$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/ConfigHFEnpePbPb.C");
465ff082 228
c683985a 229 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
230 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
465ff082 231 AliAnalysisTaskHFE *task = ConfigHFEnpePbPb(useMC, isAOD, appendix, tpcCls, tpcClsPID, itsCls, dcaxy, dcaz, tpcdEdxcutlow, tpcdEdxcuthigh, tofs, 0, itss, itshitpixel, itschi2percluster, tpcsharedcluster, etacorr, multicorr, toflast, etaIncMin, etaIncMax,
232 assETAm, assETAp, assITS, assTPCcl, assTPCPIDcl,
233 assDCAr, assDCAz, assTPCSminus, assTPCSplus,
234 useCat1Tracks, useCat2Tracks, weightlevelback,usekfparticle);
c683985a 235 if(isAOD)
236 task->SetAODAnalysis();
237 else
238 task->SetESDAnalysis();
465ff082 239
c683985a 240 if (useMC) task->SetHasMCData(kTRUE);
241 else task->SetHasMCData(kFALSE);
242
465ff082 243 if(useMC&&(beauty || (weightlevelback>=0))) ConfigWeightFactors(task,kFALSE,wei);//2;For default PbPb
c683985a 244 task->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral);
245
c683985a 246 //create data containers
465ff082 247 task->ConnectOutput(1, mgr->CreateContainer(Form("HFE_Results_%s", appendix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, Form("HFE%s.root", appendix.Data())));
248 task->ConnectOutput(2, mgr->CreateContainer(Form("HFE_QA_%s", appendix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, Form("HFE%s.root", appendix.Data())));
c683985a 249 mgr->ConnectInput(task, 0, cinput );
465ff082 250
c683985a 251 mgr->AddTask(task);
252
253 return NULL;
254}