]>
Commit | Line | Data |
---|---|---|
1a319cb5 | 1 | TH2D *GetCorrectionsJpsiMean(TString map){ |
2 | if (gSystem->AccessPathName(gSystem->ExpandPathName(map.Data()))){ | |
3 | Warning("ConfigHFE","Centrality map not found: %s",map.Data()); | |
4 | printf("ConfigHFE: Centrality map not found: %s\n",map.Data()); | |
5 | return kFALSE; | |
6 | } | |
7 | printf("File %s\n",map.Data()); | |
8 | TFile *f = TFile::Open(map.Data()); | |
9 | if(!f->IsOpen()) return kFALSE; | |
10 | f->ls(); | |
11 | return (TH2D*)f->Get("centroidCentEta"); | |
12 | } | |
13 | TH2D *GetCorrectionsJpsiWidth(TString map){ | |
14 | if (gSystem->AccessPathName(gSystem->ExpandPathName(map.Data()))){ | |
15 | Warning("ConfigHFE","Centrality map not found: %s",map.Data()); | |
16 | printf("ConfigHFE: Centrality map not found: %s\n",map.Data()); | |
17 | return kFALSE; | |
18 | } | |
19 | printf("File %s\n",map.Data()); | |
20 | TFile *f = TFile::Open(map.Data()); | |
21 | if(!f->IsOpen()) return kFALSE; | |
22 | f->ls(); | |
23 | return (TH2D*)f->Get("widthCentEta"); | |
24 | } | |
bab17338 | 25 | TF1* GetCentralityCorrection(TString listname="LHC11h"){ |
26 | ||
27 | TString etaMap="$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/CentCorrMapsTPC.root"; | |
28 | ||
29 | if (gSystem->AccessPathName(gSystem->ExpandPathName(etaMap.Data()))){ | |
30 | Error("ConfigHFEpbpb","Eta map not found: %s",etaMap.Data()); | |
31 | return 0; | |
32 | } | |
33 | ||
34 | TFile f(etaMap.Data()); | |
35 | if (!f.IsOpen()) return 0; | |
36 | gROOT->cd(); | |
37 | TList *keys=f.GetListOfKeys(); | |
38 | ||
39 | for (Int_t i=0; i<keys->GetEntries(); ++i){ | |
40 | TString kName=keys->At(i)->GetName(); | |
41 | TPRegexp reg(kName); | |
42 | if (reg.MatchB(listname)){ | |
43 | printf("Using Eta Correction Function: %s\n",kName.Data()); | |
44 | return (TF1*)f.Get(kName.Data()); | |
45 | } | |
46 | } | |
47 | return 0; | |
48 | } | |
2747660f | 49 | TF1* GetEtaCorrection(TString listname="LHC11h"){ |
50 | ||
bab17338 | 51 | TString etaMap="$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/EtaCorrMapsTPC.root"; |
2747660f | 52 | |
53 | if (gSystem->AccessPathName(gSystem->ExpandPathName(etaMap.Data()))){ | |
54 | Error("ConfigHFEpbpb","Eta map not found: %s",etaMap.Data()); | |
55 | return 0; | |
56 | } | |
57 | ||
58 | TFile f(etaMap.Data()); | |
59 | if (!f.IsOpen()) return 0; | |
60 | gROOT->cd(); | |
61 | TList *keys=f.GetListOfKeys(); | |
62 | ||
63 | for (Int_t i=0; i<keys->GetEntries(); ++i){ | |
64 | TString kName=keys->At(i)->GetName(); | |
65 | TPRegexp reg(kName); | |
66 | if (reg.MatchB(listname)){ | |
67 | printf("Using Eta Correction Function: %s\n",kName.Data()); | |
68 | return (TF1*)f.Get(kName.Data()); | |
69 | } | |
70 | } | |
71 | return 0; | |
72 | } | |
6b2521a4 | 73 | TF1* Getv2Contamination_30_40(){ |
74 | ||
75 | TString v2Map="$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/raw_TF1_pi_v2_3040.root"; | |
2747660f | 76 | //TString v2Map="$TRAIN_ROOT/bailhach_backgroundhfe/raw_TF1_pi_v2_3040.root"; |
6b2521a4 | 77 | TString trainRoot=gSystem->Getenv("TRAIN_ROOT"); |
78 | ||
79 | if (gSystem->AccessPathName(gSystem->ExpandPathName(v2Map.Data()))){ | |
80 | //Error("ConfigPbPb2010_Cent","v2 map not found: %s",v2Map.Data()); | |
81 | return 0; | |
82 | } | |
83 | ||
84 | TFile f(v2Map.Data()); | |
85 | if (!f.IsOpen()) return 0; | |
86 | gROOT->cd(); | |
87 | TF1 *fg = (TF1 *) f.Get("flogisticTadd"); | |
88 | return fg; | |
89 | ||
90 | } | |
91 | ||
92 | TF1* Getv2Contamination_40_50(){ | |
93 | ||
94 | TString v2Map="$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/raw_TF1_pi_v2_4050.root"; | |
2747660f | 95 | //TString v2Map="$TRAIN_ROOT/bailhach_backgroundhfe/raw_TF1_pi_v2_4050.root"; |
6b2521a4 | 96 | TString trainRoot=gSystem->Getenv("TRAIN_ROOT"); |
97 | ||
98 | if (gSystem->AccessPathName(gSystem->ExpandPathName(v2Map.Data()))){ | |
99 | //Error("ConfigPbPb2010_Cent","v2 map not found: %s",v2Map.Data()); | |
100 | return 0; | |
101 | } | |
102 | ||
103 | TFile f(v2Map.Data()); | |
104 | if (!f.IsOpen()) return 0; | |
105 | gROOT->cd(); | |
106 | TF1 *fg = (TF1 *) f.Get("flogisticTadd"); | |
107 | return fg; | |
108 | ||
109 | } | |
110 | ||
111 | ||
112 | TF1* Getv2Contamination_20_30(){ | |
113 | ||
114 | TString v2Map="$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/raw_TF1_pi_v2_2030.root"; | |
2747660f | 115 | //TString v2Map="$TRAIN_ROOT/bailhach_backgroundhfe/raw_TF1_pi_v2_2030.root"; |
6b2521a4 | 116 | TString trainRoot=gSystem->Getenv("TRAIN_ROOT"); |
117 | ||
118 | if (gSystem->AccessPathName(gSystem->ExpandPathName(v2Map.Data()))){ | |
119 | //Error("ConfigPbPb2010_Cent","v2 map not found: %s",v2Map.Data()); | |
120 | return 0; | |
121 | } | |
122 | ||
123 | TFile f(v2Map.Data()); | |
124 | if (!f.IsOpen()) return 0; | |
125 | gROOT->cd(); | |
126 | TF1 *fg = (TF1 *) f.Get("flogisticTadd"); | |
127 | return fg; | |
128 | ||
129 | } | |
130 | ||
48a7dac2 | 131 | Double_t Contamination_40_50(const Double_t *x, const Double_t *par) |
132 | { | |
133 | ||
134 | if(x[0] < 2.5) return 0.0326072; | |
135 | Double_t value = -0.00908646-0.00201815*x[0]+0.0026871*x[0]*x[0]; | |
136 | if(x[0] >= 2.5) return value; | |
137 | ||
2747660f | 138 | |
48a7dac2 | 139 | } |
1a319cb5 | 140 | AliAnalysisTaskFlowTPCTOFEPSP* ConfigHFE_FLOW_TOFTPC(Bool_t useMC, TString appendix,Int_t trigger,Int_t aodfilter=-1,Bool_t scalarProduct=kFALSE,Bool_t cutPileup=kTRUE,Int_t variableMr = 1,Int_t tpcCls=110, Double_t tpcClsr=60.,Int_t tpcClspid=80, Int_t itsCls=4, Int_t pixellayer=2, Double_t dcaxy=100., Double_t dcaz=200., Double_t tofsig=30., Double_t *tpcdedx=NULL, Int_t vzero=1, Int_t debuglevel=0, Double_t etarange=80, Bool_t withetacorrection=kFALSE, Bool_t withmultcorrection=kFALSE, Double_t ITSclustersback=0,Double_t minTPCback=-2.0,Double_t maxTPCback=5.0) |
d84c68e9 | 141 | { |
142 | // | |
143 | // HFE flow task | |
144 | // | |
f66a9089 | 145 | Double_t tpcsharedfraction=11; |
146 | Double_t chi2peritscl=36.; | |
147 | ||
1a319cb5 | 148 | // multEst = 0 or 10 (VZERO centrality, good, bad runs for Jpsi), = 1 (GetNumberOfESDtracks, Theo) |
149 | Int_t variableM = variableMr; | |
150 | if(variableMr==10) variableM = 0; | |
151 | ||
d84c68e9 | 152 | printf("Summary settings flow task\n"); |
2747660f | 153 | printf("filter %d\n",aodfilter); |
d84c68e9 | 154 | printf("TPC number of tracking clusters %d\n",tpcCls); |
c216e461 | 155 | printf("TPC ratio clusters %f\n",tpcClsr*0.01); |
d84c68e9 | 156 | printf("TPC number of pid clusters %d\n",tpcClspid); |
c216e461 | 157 | printf("Maximal fraction of TPC shared cluster %f\n",tpcsharedfraction*0.01); |
d84c68e9 | 158 | printf("ITS number of clusters %d\n",itsCls); |
c216e461 | 159 | printf("Maximal chi2 per ITS cluster %f\n",chi2peritscl); |
160 | printf("Requirement on the pixel layer %d\n",pixellayer); | |
161 | printf("dcaxy %f\n",dcaxy*0.01); | |
162 | printf("dcaz %f\n",dcaz*0.01); | |
d84c68e9 | 163 | printf("TOF sigma %f\n",tofsig*0.1); |
ae23886f | 164 | printf("TPC min sigma cut 0: %f\n",tpcdedx[0]); |
165 | printf("TPC min sigma cut 1: %f\n",tpcdedx[1]); | |
166 | printf("TPC min sigma cut 2: %f\n",tpcdedx[2]); | |
167 | printf("TPC min sigma cut 3: %f\n",tpcdedx[3]); | |
168 | printf("TPC min sigma cut 4: %f\n",tpcdedx[4]); | |
169 | printf("TPC min sigma cut 5: %f\n",tpcdedx[5]); | |
170 | printf("TPC min sigma cut 6: %f\n",tpcdedx[6]); | |
171 | printf("TPC min sigma cut 7: %f\n",tpcdedx[7]); | |
d84c68e9 | 172 | printf("VZERO event plane %d\n",vzero); |
c216e461 | 173 | printf("Debug level %d\n",debuglevel); |
7d001adf | 174 | printf("Etarange %f\n",etarange*0.01); |
2747660f | 175 | printf("TPC dE/dx Eta correction %d\n",withetacorrection); |
bab17338 | 176 | printf("TPC dE/dx multiplicity correction %d\n",withmultcorrection); |
2747660f | 177 | printf("Number of ITS back clusters %d\n",(Int_t)ITSclustersback); |
178 | printf("Min TPC back %f\n",minTPCback); | |
179 | printf("Max TPC back %f\n",maxTPCback); | |
f66a9089 | 180 | printf("PileUp cut %d\n",cutPileup); |
181 | printf("Scalar Product %d\n",scalarProduct); | |
1a319cb5 | 182 | printf("Multiplicity Esimator %d\n",variableM); |
26c85092 | 183 | |
d84c68e9 | 184 | // Cut HFE |
185 | AliHFEcuts *hfecuts = new AliHFEcuts("hfeCuts","HFE Standard Cuts"); | |
186 | hfecuts->CreateStandardCuts(); | |
7d001adf | 187 | hfecuts->SetEtaRange(etarange*0.01); |
d84c68e9 | 188 | hfecuts->SetMinNClustersTPC(tpcCls); |
189 | hfecuts->SetMinNClustersTPCPID(tpcClspid); | |
c216e461 | 190 | hfecuts->SetMinRatioTPCclusters(tpcClsr*0.01); |
d84c68e9 | 191 | hfecuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable); |
c216e461 | 192 | hfecuts->SetFractionOfSharedTPCClusters(tpcsharedfraction*0.01); |
d84c68e9 | 193 | hfecuts->SetMinNClustersITS(itsCls); |
c216e461 | 194 | hfecuts->SetCutITSpixel(pixellayer); |
d84c68e9 | 195 | hfecuts->SetCheckITSLayerStatus(kFALSE); |
c216e461 | 196 | hfecuts->SetMaxImpactParam(dcaxy*0.01,dcaz*0.01); |
5a30a273 | 197 | hfecuts->SetPtRange(0.1,10.); |
198 | hfecuts->SetAcceptKinkMothers(); | |
d84c68e9 | 199 | |
d84c68e9 | 200 | hfecuts->SetVertexRange(10.); |
f66a9089 | 201 | hfecuts->SetUseSPDVertex(kTRUE); |
202 | hfecuts->SetUseCorrelationVertex(); | |
d84c68e9 | 203 | |
204 | hfecuts->SetTOFPIDStep(kTRUE); | |
205 | ||
0e30407a | 206 | // Cut HFE background |
207 | AliESDtrackCuts *hfeBackgroundCuts = new AliESDtrackCuts(); | |
208 | hfeBackgroundCuts->SetName("backgroundcuts"); | |
2747660f | 209 | //hfeBackgroundCuts->SetAcceptKinkDaughters(kFALSE); |
0e30407a | 210 | hfeBackgroundCuts->SetRequireTPCRefit(kTRUE); |
2747660f | 211 | hfeBackgroundCuts->SetRequireITSRefit(kTRUE); |
212 | if(ITSclustersback>0) hfeBackgroundCuts->SetMinNClustersITS(ITSclustersback); | |
213 | hfeBackgroundCuts->SetEtaRange(-0.8,0.8); | |
0e30407a | 214 | hfeBackgroundCuts->SetRequireSigmaToVertex(kTRUE); |
2747660f | 215 | hfeBackgroundCuts->SetMaxChi2PerClusterTPC(3.5); |
216 | hfeBackgroundCuts->SetMinNClustersTPC(100); | |
217 | hfeBackgroundCuts->SetPtRange(0.5,1e10); | |
ae23886f | 218 | |
d84c68e9 | 219 | // Name |
d84c68e9 | 220 | printf("appendix %s\n", appendix.Data()); |
221 | ||
222 | // The task | |
785288a1 | 223 | AliAnalysisTaskFlowTPCTOFEPSP *task = new AliAnalysisTaskFlowTPCTOFEPSP(Form("HFE_%s", appendix.Data())); |
109ed76d | 224 | //task->SelectCollisionCandidates(trigger); |
225 | task->SetTriggerUsed(trigger); | |
d84c68e9 | 226 | task->SetDebugLevel(1); |
109ed76d | 227 | task->SetVariableMultiplicity(variableM); |
ecaf6269 | 228 | //task->GetPIDQAManager()->SetHighResolutionEtaHistos(); |
bab17338 | 229 | task->GetPIDQAManager()->SetMidResolutionHistos(); |
5613dba4 | 230 | //task->GetPIDQAManager()->SetFillMultiplicity(); |
d84c68e9 | 231 | task->SetHFECuts(hfecuts); |
0e30407a | 232 | task->SetHFEBackgroundCuts(hfeBackgroundCuts); |
2747660f | 233 | if(aodfilter > 0) { |
234 | printf("ON AOD filter %d\n",aodfilter); | |
2747660f | 235 | task->SetFilter(aodfilter); |
236 | } | |
237 | else { | |
5a30a273 | 238 | printf("Default AOD filter 1<<4\n"); |
2747660f | 239 | } |
d84c68e9 | 240 | if(useMC) { |
241 | task->SetMCPID(kTRUE); | |
ae23886f | 242 | //task->SetUseMCReactionPlane(kTRUE); |
d84c68e9 | 243 | task->SetAfterBurnerOn(kTRUE); |
244 | task->SetV1V2V3V4V5(0.0,0.2,0.0,0.0,0.0); | |
245 | } | |
246 | if(vzero>=1) task->SetVZEROEventPlane(kTRUE); | |
247 | if(vzero==2) task->SetVZEROEventPlaneA(kTRUE); | |
248 | if(vzero==3) task->SetVZEROEventPlaneC(kTRUE); | |
ae23886f | 249 | if((vzero==4) && useMC) task->SetUseMCReactionPlane(kTRUE); |
250 | ||
251 | // Debug level | |
c216e461 | 252 | task->SetDebugLevel(debuglevel); |
ae23886f | 253 | if(debuglevel==1) task->SetMonitorEventPlane(kTRUE); |
254 | if(debuglevel==2) task->SetMonitorContamination(kTRUE); | |
255 | if(debuglevel==3) task->SetMonitorPhotonic(kTRUE); | |
256 | if(debuglevel==4) task->SetMonitorWithoutPID(kTRUE); | |
257 | if(debuglevel==5) task->SetMonitorTrackCuts(kTRUE); | |
258 | if(debuglevel==6) task->SetMonitorQCumulant(kTRUE); | |
259 | ||
d84c68e9 | 260 | |
261 | // Define PID | |
262 | AliHFEpid *pid = task->GetPID(); | |
263 | if(useMC) pid->SetHasMCData(kTRUE); | |
264 | pid->AddDetector("TOF", 0); | |
265 | pid->AddDetector("TPC", 1); | |
bab17338 | 266 | |
267 | if(withetacorrection || withmultcorrection) { | |
268 | AliHFEpidTPC *tpcpid = pid->GetDetPID(AliHFEpid::kTPCpid); | |
1a319cb5 | 269 | // Jpsi |
270 | if(variableMr==0) { | |
271 | TH2D *meanc = GetCorrectionsJpsiMean("$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/jpsietacentcorr2_2011.root"); | |
272 | TH2D *widthc = GetCorrectionsJpsiWidth("$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/jpsietacentcorr2_2011.root"); | |
273 | //printf("Set\n"); | |
274 | if(meanc && widthc) { | |
275 | tpcpid->SetJpsiCorrections(meanc,widthc); | |
276 | //printf("Set the histos\n"); | |
277 | } | |
278 | } | |
279 | if(variableMr==10) { | |
280 | TH2D *meanc = GetCorrectionsJpsiMean("$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/jpsietacentcorr3_2011.root"); | |
5613dba4 | 281 | TH2D *widthc = GetCorrectionsJpsiWidth("$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/jpsietacentcorr3_2011.root"); |
1a319cb5 | 282 | if(meanc && widthc) tpcpid->SetJpsiCorrections(meanc,widthc); |
bab17338 | 283 | } |
1a319cb5 | 284 | // Theo |
285 | if(variableMr==1) { | |
5613dba4 | 286 | task->GetPIDQAManager()->SetFillMultiplicity(); |
1a319cb5 | 287 | TF1 *etaCorrMean = GetEtaCorrection("LHC11h_etaCorrMean"); |
288 | TF1 *etaCorrWdth = GetEtaCorrection("LHC11h_etaCorrWidth"); | |
289 | if(etaCorrMean && etaCorrWdth && withetacorrection){ | |
290 | tpcpid->SetEtaCorrections(etaCorrMean, etaCorrWdth); | |
291 | printf("TPC dE/dx Eta correction %p %p\n",etaCorrMean,etaCorrWdth); | |
292 | } | |
293 | TF1 *centCorrMean = GetCentralityCorrection("LHC11h_multCorrMean"); | |
294 | TF1 *centCorrWdth = GetCentralityCorrection("LHC11h_multCorrWidth"); | |
295 | if(centCorrMean && centCorrWdth && withmultcorrection){ | |
296 | tpcpid->SetCentralityCorrections(centCorrMean, centCorrWdth); | |
297 | printf("TPC dE/dx multiplicity correction %p %p\n",centCorrMean,centCorrWdth); | |
298 | } | |
bab17338 | 299 | } |
300 | } | |
301 | ||
f66a9089 | 302 | task->SetPileUpCut(cutPileup); |
303 | task->SetUseSP(scalarProduct); | |
2747660f | 304 | |
ae23886f | 305 | //pid->AddDetector("BAYES", 0); |
306 | //pid->ConfigureBayesDetectorMask(AliPIDResponse::kDetTPC+AliPIDResponse::kDetTOF+AliPIDResponse::kDetTRD); | |
307 | //pid->ConfigureBayesPIDThreshold(0.9); | |
308 | ||
309 | ||
310 | TString datatype=gSystem->Getenv("CONFIG_FILE"); | |
311 | ||
d84c68e9 | 312 | if(!useMC) { |
313 | ||
314 | Double_t params_centr_0_5[1]; | |
315 | Double_t params_centr_5_10[1]; | |
316 | Double_t params_centr_10_20[1]; | |
317 | Double_t params_centr_20_30[1]; | |
26c85092 | 318 | Double_t params_centr_30_40[1]; |
319 | Double_t params_centr_40_50[1]; | |
320 | Double_t params_centr_50_60[1]; | |
d84c68e9 | 321 | Double_t params_centr_per[1]; |
ae23886f | 322 | |
323 | params_centr_0_5[0]=tpcdedx[0]; // cut tuned for 0-5% | |
324 | params_centr_5_10[0]=tpcdedx[1]; // cut tuned for 5-10% | |
325 | params_centr_10_20[0]=tpcdedx[2]; | |
326 | params_centr_20_30[0]=tpcdedx[3]; | |
327 | params_centr_30_40[0]=tpcdedx[4]; | |
328 | params_centr_40_50[0]=tpcdedx[5]; | |
329 | params_centr_50_60[0]=tpcdedx[6]; | |
330 | params_centr_per[0]=tpcdedx[7]; | |
d84c68e9 | 331 | |
332 | char *cutmodel; | |
333 | cutmodel="pol0"; | |
334 | ||
335 | for(Int_t a=0;a<11;a++) | |
336 | { | |
26c85092 | 337 | if(a>6) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_per,3.0); // 60-80% |
338 | if(a==0) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_0_5,3.0); // 0-5% | |
339 | if(a==1) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_5_10,3.0); // 5-10% | |
d84c68e9 | 340 | if(a==2) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_10_20,3.0); // 10-20% |
341 | if(a==3) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_20_30,3.0); // 20-30% | |
26c85092 | 342 | if(a==4) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_30_40,3.0); // 30-40% |
343 | if(a==5) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_40_50,3.0); // 40-50% | |
344 | if(a==6) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_50_60,3.0); // 50-60% | |
d84c68e9 | 345 | } |
346 | ||
347 | } | |
348 | ||
ae23886f | 349 | if(tofsig>0.) pid->ConfigureTOF(tofsig*0.1); |
350 | ||
351 | AliHFEpidTOF *tofpid = pid->GetDetPID(AliHFEpid::kTOFpid); | |
352 | if(tofsig<=0.) { | |
353 | Double_t uppercuttof = TMath::Abs(tofsig)*0.1; | |
354 | Double_t paramsTOFlowercut[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}; | |
355 | Double_t paramsTOFuppercut[12] ={uppercuttof,uppercuttof,uppercuttof,uppercuttof,uppercuttof,uppercuttof,uppercuttof,uppercuttof,uppercuttof,uppercuttof,uppercuttof,uppercuttof}; | |
356 | for(Int_t a=0;a<11;a++) | |
357 | { | |
358 | tofpid->SetTOFnSigmaBandCentrality(paramsTOFlowercut[a],paramsTOFuppercut[a],a); | |
359 | } | |
360 | } | |
0e30407a | 361 | |
2747660f | 362 | |
363 | // Define hadron contamination (Only for 2011, TPC middle) | |
48a7dac2 | 364 | TF1 *hBackground_20_30 = new TF1("hadronicBackgroundFunction_20_30","[0]+[1]*x+[2]*x*x+[3]*x*x*x", 0., 200.); |
365 | hBackground_20_30->SetParameter(0, -0.165789); | |
366 | hBackground_20_30->SetParameter(1, 0.218694); | |
367 | hBackground_20_30->SetParameter(2, -0.076635); | |
368 | hBackground_20_30->SetParameter(3, 0.00947502); | |
369 | task->SetContamination(hBackground_20_30,3); | |
370 | TF1 *fv2_20_30 = Getv2Contamination_20_30(); | |
2747660f | 371 | if(fv2_20_30) { |
372 | fv2_20_30->SetName("fv2_20_30"); | |
373 | task->SetV2Contamination(fv2_20_30,3); | |
374 | } | |
6733d981 | 375 | // 30-40% |
48a7dac2 | 376 | TF1 *hBackground_30_40 = new TF1("hadronicBackgroundFunction_30_40","[0]+[1]*x+[2]*x*x+[3]*x*x*x", 0., 200.); |
377 | hBackground_30_40->SetParameter(0, -0.072222); | |
378 | hBackground_30_40->SetParameter(1, 0.132098); | |
379 | hBackground_30_40->SetParameter(2, -0.0561759); | |
380 | hBackground_30_40->SetParameter(3, 0.00789356); | |
381 | task->SetContamination(hBackground_30_40,4); | |
382 | TF1 *fv2_30_40 = Getv2Contamination_30_40(); | |
2747660f | 383 | if(fv2_30_40) { |
384 | fv2_30_40->SetName("fv2_30_40"); | |
385 | task->SetV2Contamination(fv2_30_40,4); | |
386 | } | |
6b2521a4 | 387 | // 40-50% |
48a7dac2 | 388 | TF1 *hBackground_40_50 = new TF1("hadronicBackgroundFunction_40_50",Contamination_40_50,0.,200.,0); |
2747660f | 389 | printf("contamination 5 in pt range 0.5 %f\n",hBackground_40_50->Eval(0.5)); |
390 | printf("contamination 5 in pt range 1.5 %f\n",hBackground_40_50->Eval(1.5)); | |
391 | printf("contamination 5 in pt range 3.5 %f\n",hBackground_40_50->Eval(3.5)); | |
48a7dac2 | 392 | task->SetContamination(hBackground_40_50,5); |
393 | TF1 *fv2_40_50 = Getv2Contamination_40_50(); | |
2747660f | 394 | if(fv2_40_50) { |
395 | fv2_40_50->SetName("fv2_40_50"); | |
396 | task->SetV2Contamination(fv2_40_50,5); | |
397 | } | |
6733d981 | 398 | |
26c85092 | 399 | // Define PID TOF Only |
400 | AliHFEpid *pidTOFOnly = task->GetPIDTOFOnly(); | |
401 | if(useMC) pidTOFOnly->SetHasMCData(kTRUE); | |
402 | pidTOFOnly->AddDetector("TOF", 0); | |
403 | pidTOFOnly->ConfigureTOF(tofsig*0.1); | |
ae23886f | 404 | |
0e30407a | 405 | // Define PID background |
406 | AliHFEpid *pidbackground = task->GetPIDBackground(); | |
407 | if(useMC) pidbackground->SetHasMCData(kTRUE); | |
26c85092 | 408 | //pidbackground->AddDetector("TOF", 0); |
5a30a273 | 409 | pidbackground->AddDetector("TPC", 0); |
26c85092 | 410 | //pidbackground->ConfigureTOF(3.0); |
2747660f | 411 | pidbackground->ConfigureTPCasymmetric(0.0,9999.,minTPCback,maxTPCback); |
0e30407a | 412 | task->SetMaxopeningtheta(9999.0); |
413 | task->SetMaxopeningphi(9999.0); | |
2747660f | 414 | task->SetMaxopening3D(0.1); |
415 | // Always AliKF and no mass constraint | |
416 | task->SetAlgorithmMA(kFALSE); | |
417 | task->SetMassConstraint(kFALSE); | |
d84c68e9 | 418 | |
419 | printf("*************************************\n"); | |
420 | printf("Configuring standard Task:\n"); | |
421 | task->Print(); | |
422 | pid->PrintStatus(); | |
423 | printf("*************************************\n"); | |
424 | return task; | |
2747660f | 425 | |
d84c68e9 | 426 | } |