1 AliAnalysisTaskCombinHF *AddTaskCombinHF(Int_t meson = 0,
3 TString containerStr = "",
4 TString cutObjFile = "",
5 TString cutObjNam = "",
11 Double_t bayesThresKaon = 0.4,
12 Double_t bayesThresPion = 0.4,
13 Double_t minMass = 1.6,
14 Double_t maxMass = 2.15,
16 Double_t ptBinWidth = 0.5)
19 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
21 ::Error("AddTaskCombinHF", "No analysis manager to connect to.");
27 AliRDHFCuts* analysiscuts=0x0;
29 if(!cutObjFile.IsNull()){
30 TFile *f=TFile::Open(cutObjFile.Data(),"READ");
32 analysiscuts=(AliRDHFCuts*)f->Get(cutObjNam.Data());
33 AliESDtrackCuts *esdc=analysiscuts->GetTrackCuts();
34 pid=analysiscuts->GetPidHF();
38 if(meson==0) analysiscuts=new AliRDHFCutsD0toKpi();
39 else analysiscuts=new AliRDHFCutsDplustoKpipi();
40 analysiscuts->SetStandardCutsPP2010();
41 pid=new AliAODPidHF();
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.);
52 Printf("Wrong file or cut object name set");
56 AliAnalysisTaskCombinHF *dTask = new AliAnalysisTaskCombinHF(meson,analysiscuts);
57 if(!cutObjFile.IsNull()){
58 dTask->SetKaonTrackCuts(esdc);
59 dTask->SetPionTrackCuts(esdc);
60 dTask->SetTrackCuts(esdc);
62 dTask->SetReadMC(readMC);
63 dTask->SetDebugLevel(0);
65 dTask->SetFilterMask(filterMask);
66 dTask->SetPtAccCut(ptcut);
67 dTask->SetEtaAccCut(etacut);
69 // mass and pt range for histograms
70 dTask->SetMassWindow(minMass, maxMass);
71 dTask->SetMaxPt(maxPt);
72 dTask->SetPtBinWidth(ptBinWidth);
76 dTask->SetPIDstrategy(pidStrategy);
77 dTask->SetPIDselCaseZero(casePID);
78 dTask->SetBayesThres(bayesThresKaon, bayesThresPion);
84 // Create containers for input/output
86 TString mesname="Dzero";
87 if(meson==1) mesname="Dplus";
88 TString inname = Form("cinput%s%s",mesname.Data(),containerStr.Data());
89 TString outname = Form("coutput%s%s",mesname.Data(),containerStr.Data());
90 TString normname = Form("coutput%sNorm%s",mesname.Data(),containerStr.Data());
92 AliAnalysisDataContainer *cinput = mgr->CreateContainer(inname,TChain::Class(),
93 AliAnalysisManager::kInputContainer);
94 TString outputfile = AliAnalysisManager::GetCommonFileName();
95 outputfile += Form(":PWG3_D2H_InvMass%sLowPt%s",mesname.Data(),containerStr.Data());
98 AliAnalysisDataContainer *coutput = mgr->CreateContainer(outname,TList::Class(),
99 AliAnalysisManager::kOutputContainer,
101 AliAnalysisDataContainer *coutputNorm = mgr->CreateContainer(normname,AliNormalizationCounter::Class(),
102 AliAnalysisManager::kOutputContainer,
105 mgr->ConnectInput(dTask,0,mgr->GetCommonInputContainer());
107 mgr->ConnectOutput(dTask,1,coutput);
109 mgr->ConnectOutput(dTask,2,coutputNorm);