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