]>
Commit | Line | Data |
---|---|---|
f2221737 | 1 | AliAnalysisTaskCombinHF *AddTaskCombinHF(Int_t meson = 0, |
2 | Bool_t readMC = kTRUE, | |
3 | TString containerStr = "", | |
4 | TString cutObjFile = "", | |
5 | TString cutObjNam = "", | |
6 | Int_t filterMask = 1, | |
7 | Double_t ptcut = 0.3, | |
8 | Double_t etacut = 0.9, | |
9 | Int_t pidStrategy = 0, | |
10 | Int_t casePID = 2, | |
11 | Double_t bayesThresKaon = 0.4, | |
12 | Double_t bayesThresPion = 0.4, | |
13 | Double_t minMass = 1.6, | |
14 | Double_t maxMass = 2.15, | |
15 | Double_t maxPt = 20.) | |
811e9cbd | 16 | { |
17 | ||
18 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
19 | if (!mgr) { | |
20 | ::Error("AddTaskCombinHF", "No analysis manager to connect to."); | |
21 | } | |
22 | ||
23 | //Analysis Task | |
24 | ||
ebc460de | 25 | |
26 | AliRDHFCuts* analysiscuts=0x0; | |
27 | AliAODPidHF* pid=0x0; | |
28 | if(!cutObjFile.IsNull()){ | |
29 | TFile *f=TFile::Open(cutObjFile.Data(),"READ"); | |
30 | if(f){ | |
31 | analysiscuts=(AliRDHFCuts*)f->Get(cutObjNam.Data()); | |
a25d1750 | 32 | AliESDtrackCuts *esdc=analysiscuts->GetTrackCuts(); |
ebc460de | 33 | pid=analysiscuts->GetPidHF(); |
34 | } | |
35 | } | |
36 | else { | |
37 | if(meson==0) analysiscuts=new AliRDHFCutsD0toKpi(); | |
38 | else analysiscuts=new AliRDHFCutsDplustoKpipi(); | |
39 | analysiscuts->SetStandardCutsPP2010(); | |
40 | pid=new AliAODPidHF(); | |
41 | pid->SetMatch(5); | |
42 | pid->SetTPCnSigmaRangeForPions(-3.,3.); | |
43 | pid->SetTPCnSigmaRangeForKaons(-2.,3.); | |
44 | pid->SetTPCnSigmaRangeForProtons(-3.,3.); | |
45 | pid->SetTOFnSigmaRangeForPions(-3.,3.); | |
46 | pid->SetTOFnSigmaRangeForKaons(-2.,2.); | |
47 | pid->SetTOFnSigmaRangeForProtons(-3.,3.); | |
48 | ||
49 | } | |
50 | if(!analysiscuts){ | |
51 | Printf("Wrong file or cut object name set"); | |
52 | return 0x0; | |
53 | } | |
54 | ||
811e9cbd | 55 | AliAnalysisTaskCombinHF *dTask = new AliAnalysisTaskCombinHF(meson,analysiscuts); |
a25d1750 | 56 | if(!cutObjFile.IsNull()){ |
57 | dTask->SetKaonTrackCuts(esdc); | |
58 | dTask->SetPionTrackCuts(esdc); | |
59 | dTask->SetTrackCuts(esdc); | |
60 | } | |
811e9cbd | 61 | dTask->SetReadMC(readMC); |
62 | dTask->SetDebugLevel(0); | |
f2221737 | 63 | |
64 | dTask->SetFilterMask(filterMask); | |
65 | dTask->SetPtAccCut(ptcut); | |
66 | dTask->SetEtaAccCut(etacut); | |
67 | ||
68 | // mass and pt range for histograms | |
69 | dTask->SetMassWindow(minMass, maxMass); | |
70 | dTask->SetMaxPt(maxPt); | |
71 | ||
72 | // PID settings | |
811e9cbd | 73 | dTask->SetPIDHF(pid); |
f2221737 | 74 | dTask->SetPIDstrategy(pidStrategy); |
75 | dTask->SetPIDselCaseZero(casePID); | |
76 | dTask->SetBayesThres(bayesThresKaon, bayesThresPion); | |
77 | ||
ebc460de | 78 | |
811e9cbd | 79 | mgr->AddTask(dTask); |
f2221737 | 80 | |
811e9cbd | 81 | |
82 | // Create containers for input/output | |
83 | ||
84 | TString mesname="Dzero"; | |
85 | if(meson==1) mesname="Dplus"; | |
f2221737 | 86 | TString inname = Form("cinput%s%s",mesname.Data(),containerStr.Data()); |
ebc460de | 87 | TString outname = Form("coutput%s%s",mesname.Data(),containerStr.Data()); |
88 | TString normname = Form("coutput%sNorm%s",mesname.Data(),containerStr.Data()); | |
811e9cbd | 89 | |
90 | AliAnalysisDataContainer *cinput = mgr->CreateContainer(inname,TChain::Class(), | |
91 | AliAnalysisManager::kInputContainer); | |
92 | TString outputfile = AliAnalysisManager::GetCommonFileName(); | |
ebc460de | 93 | outputfile += Form(":PWG3_D2H_InvMass%sLowPt%s",mesname.Data(),containerStr.Data()); |
811e9cbd | 94 | |
95 | ||
96 | AliAnalysisDataContainer *coutput = mgr->CreateContainer(outname,TList::Class(), | |
97 | AliAnalysisManager::kOutputContainer, | |
98 | outputfile.Data()); | |
99 | AliAnalysisDataContainer *coutputNorm = mgr->CreateContainer(normname,AliNormalizationCounter::Class(), | |
100 | AliAnalysisManager::kOutputContainer, | |
101 | outputfile.Data()); | |
102 | ||
103 | mgr->ConnectInput(dTask,0,mgr->GetCommonInputContainer()); | |
104 | ||
105 | mgr->ConnectOutput(dTask,1,coutput); | |
106 | ||
107 | mgr->ConnectOutput(dTask,2,coutputNorm); | |
108 | ||
109 | return dTask; | |
110 | } |