]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/vertexingHF/macros/AddTaskCombinHF.C
Enable usage of compatibility band for PID (A. Rossi)
[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       AliESDtrackCuts *esdc=analysiscuts->GetTrackCuts();
19       pid=analysiscuts->GetPidHF();
20     }
21   }
22   else {
23     if(meson==0) analysiscuts=new AliRDHFCutsD0toKpi();
24     else analysiscuts=new AliRDHFCutsDplustoKpipi();
25     analysiscuts->SetStandardCutsPP2010();
26     pid=new AliAODPidHF();
27     pid->SetMatch(5);
28     pid->SetTPCnSigmaRangeForPions(-3.,3.);
29     pid->SetTPCnSigmaRangeForKaons(-2.,3.);
30     pid->SetTPCnSigmaRangeForProtons(-3.,3.);
31     pid->SetTOFnSigmaRangeForPions(-3.,3.);
32     pid->SetTOFnSigmaRangeForKaons(-2.,2.);
33     pid->SetTOFnSigmaRangeForProtons(-3.,3.);
34
35   }
36   if(!analysiscuts){
37     Printf("Wrong file or cut object name set");
38     return 0x0;
39   }
40
41   AliAnalysisTaskCombinHF *dTask = new AliAnalysisTaskCombinHF(meson,analysiscuts);
42   if(!cutObjFile.IsNull()){
43     dTask->SetKaonTrackCuts(esdc);
44     dTask->SetPionTrackCuts(esdc);
45     dTask->SetTrackCuts(esdc);
46   }
47   dTask->SetReadMC(readMC);
48   dTask->SetDebugLevel(0);
49   dTask->SetPIDHF(pid);
50
51
52   mgr->AddTask(dTask);
53   
54   // Create containers for input/output 
55
56   TString mesname="Dzero";
57   if(meson==1) mesname="Dplus";
58   TString inname = Form("cinput%s",mesname.Data());
59   TString outname = Form("coutput%s%s",mesname.Data(),containerStr.Data());
60   TString normname = Form("coutput%sNorm%s",mesname.Data(),containerStr.Data());
61
62   AliAnalysisDataContainer *cinput = mgr->CreateContainer(inname,TChain::Class(),
63                                                           AliAnalysisManager::kInputContainer);
64   TString outputfile = AliAnalysisManager::GetCommonFileName();
65   outputfile += Form(":PWG3_D2H_InvMass%sLowPt%s",mesname.Data(),containerStr.Data());
66   
67   
68   AliAnalysisDataContainer *coutput = mgr->CreateContainer(outname,TList::Class(),
69                                                                 AliAnalysisManager::kOutputContainer,
70                                                                 outputfile.Data());
71   AliAnalysisDataContainer *coutputNorm = mgr->CreateContainer(normname,AliNormalizationCounter::Class(),
72                                                                 AliAnalysisManager::kOutputContainer,
73                                                                 outputfile.Data());
74   
75   mgr->ConnectInput(dTask,0,mgr->GetCommonInputContainer());
76   
77   mgr->ConnectOutput(dTask,1,coutput);
78   
79   mgr->ConnectOutput(dTask,2,coutputNorm);  
80
81   return dTask;
82 }