]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskV0sInJetsEmcal.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskV0sInJetsEmcal.C
1 AliAnalysisTaskV0sInJetsEmcal* AddTaskV0sInJetsEmcal(TString jetBranchName = "", Double_t dRadius = 0.2, TString jetBranchBgName = "", Double_t dRadiusBg = 0.2, TString outputFile = "output.root", Bool_t bIsMC = kFALSE, TString label = "", TString tracksName = "PicoTracks", TString clustersCorrName = "CaloClustersCorr", TString rhoName = "Rho", TString sType = "TPC")
2 {
3   AliAnalysisManager* mgr = AliAnalysisManager::GetAnalysisManager();
4   if(!mgr)
5   {
6     Error("AddTaskV0sInJetsEmcal", "No analysis manager found.");
7     return 0;
8   }
9
10   TString taskName = "V0";
11   TString containerName = "V0histo";
12   if(jetBranchName.Length())
13   {
14     taskName += Form("_%s", jetBranchName.Data());
15     containerName += Form("_%s", jetBranchName.Data());
16   }
17   if(label.Length())
18   {
19     taskName += Form("_%s", label.Data());
20     containerName += Form("_%s", label.Data());
21   }
22   AliAnalysisTaskV0sInJetsEmcal* mytask = new AliAnalysisTaskV0sInJetsEmcal(taskName.Data());
23   // Configure task
24   mytask->SetMCAnalysis(bIsMC);
25
26   AliParticleContainer* trackCont = mytask->AddParticleContainer(tracksName);
27   AliClusterContainer* clusterCont = mytask->AddClusterContainer(clustersCorrName);
28
29   AliJetContainer* jetCont = mytask->AddJetContainer(jetBranchName, sType, dRadius);
30   if(jetCont)
31   {
32     jetCont->SetRhoName(rhoName);
33     jetCont->SetLeadingHadronType(0);
34     jetCont->ConnectParticleContainer(trackCont);
35     jetCont->ConnectClusterContainer(clusterCont);
36   }
37   AliJetContainer* jetContBg = mytask->AddJetContainer(jetBranchBgName, sType, dRadiusBg);
38   if(jetContBg)
39   {
40     jetContBg->SetJetAreaCut(0.01);
41     jetContBg->SetAreaEmcCut(0);
42     jetContBg->SetJetPtCut(0);
43     jetContBg->ConnectParticleContainer(trackCont);
44     jetContBg->ConnectClusterContainer(clusterCont);
45   }
46
47   // Add task
48   mgr->AddTask(mytask);
49
50   // Create containers for input/output
51   AliAnalysisDataContainer* cinput0 = mgr->GetCommonInputContainer();
52   AliAnalysisDataContainer* coutput0 = mgr->GetCommonOutputContainer();
53   AliAnalysisDataContainer* coutput1 = mgr->CreateContainer(Form("%s_%s", containerName.Data(), "Std"), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:%s", outputFile.Data(), taskName.Data()));
54   AliAnalysisDataContainer* coutput2 = mgr->CreateContainer(Form("%s_%s", containerName.Data(), "QA"), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:%s", outputFile.Data(), taskName.Data()));
55   AliAnalysisDataContainer* coutput3 = mgr->CreateContainer(Form("%s_%s", containerName.Data(), "Cuts"), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:%s", outputFile.Data(), taskName.Data()));
56   AliAnalysisDataContainer* coutput4 = mgr->CreateContainer(Form("%s_%s", containerName.Data(), "MC"), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:%s", outputFile.Data(), taskName.Data()));
57
58   // Connect input/output
59   mgr->ConnectInput(mytask, 0, cinput0);
60   mgr->ConnectOutput(mytask, 1, coutput1);
61   mgr->ConnectOutput(mytask, 2, coutput2);
62   mgr->ConnectOutput(mytask, 3, coutput3);
63   mgr->ConnectOutput(mytask, 4, coutput4);
64
65   return mytask;
66 }