]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/vertexingHF/macros/AddTaskCombinHF.C
Add possibility of fine Ntracklets bin (bins of 1 unit till 100 for pp, 200 for pPb)
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / macros / AddTaskCombinHF.C
1 AliAnalysisTaskCombinHF *AddTaskCombinHF(Int_t meson=0, TString containerStr="",Bool_t readMC=kTRUE, TString cutObjFile="",TString cutObjNam="")
2 {
3
4   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
5   if (!mgr) {
6     ::Error("AddTaskCombinHF", "No analysis manager to connect to.");
7   }
8
9   //Analysis Task
10
11
12   AliRDHFCuts* analysiscuts=0x0;
13   AliAODPidHF* pid=0x0;
14   if(!cutObjFile.IsNull()){
15     TFile *f=TFile::Open(cutObjFile.Data(),"READ");
16     if(f){
17       analysiscuts=(AliRDHFCuts*)f->Get(cutObjNam.Data());
18       pid=analysiscuts->GetPidHF();
19     }
20   }
21   else {
22     if(meson==0) analysiscuts=new AliRDHFCutsD0toKpi();
23     else analysiscuts=new AliRDHFCutsDplustoKpipi();
24     analysiscuts->SetStandardCutsPP2010();
25     pid=new AliAODPidHF();
26     pid->SetMatch(5);
27     pid->SetTPCnSigmaRangeForPions(-3.,3.);
28     pid->SetTPCnSigmaRangeForKaons(-2.,3.);
29     pid->SetTPCnSigmaRangeForProtons(-3.,3.);
30     pid->SetTOFnSigmaRangeForPions(-3.,3.);
31     pid->SetTOFnSigmaRangeForKaons(-2.,2.);
32     pid->SetTOFnSigmaRangeForProtons(-3.,3.);
33
34   }
35   if(!analysiscuts){
36     Printf("Wrong file or cut object name set");
37     return 0x0;
38   }
39
40   AliAnalysisTaskCombinHF *dTask = new AliAnalysisTaskCombinHF(meson,analysiscuts);
41   dTask->SetReadMC(readMC);
42   dTask->SetDebugLevel(0);
43   dTask->SetPIDHF(pid);
44
45
46   mgr->AddTask(dTask);
47   
48   // Create containers for input/output 
49
50   TString mesname="Dzero";
51   if(meson==1) mesname="Dplus";
52   TString inname = Form("cinput%s",mesname.Data());
53   TString outname = Form("coutput%s%s",mesname.Data(),containerStr.Data());
54   TString normname = Form("coutput%sNorm%s",mesname.Data(),containerStr.Data());
55
56   AliAnalysisDataContainer *cinput = mgr->CreateContainer(inname,TChain::Class(),
57                                                           AliAnalysisManager::kInputContainer);
58   TString outputfile = AliAnalysisManager::GetCommonFileName();
59   outputfile += Form(":PWG3_D2H_InvMass%sLowPt%s",mesname.Data(),containerStr.Data());
60   
61   
62   AliAnalysisDataContainer *coutput = mgr->CreateContainer(outname,TList::Class(),
63                                                                 AliAnalysisManager::kOutputContainer,
64                                                                 outputfile.Data());
65   AliAnalysisDataContainer *coutputNorm = mgr->CreateContainer(normname,AliNormalizationCounter::Class(),
66                                                                 AliAnalysisManager::kOutputContainer,
67                                                                 outputfile.Data());
68   
69   mgr->ConnectInput(dTask,0,mgr->GetCommonInputContainer());
70   
71   mgr->ConnectOutput(dTask,1,coutput);
72   
73   mgr->ConnectOutput(dTask,2,coutputNorm);  
74
75   return dTask;
76 }