]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/vertexingHF/macros/AddTaskCombinHF.C
Possibility to set the pt bin width from the AddTaskMacro (Francesco, Christian)
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / macros / AddTaskCombinHF.C
CommitLineData
f2221737 1AliAnalysisTaskCombinHF *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}