]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/FlavourJetTasks/macros/AddTaskFlavourJetCorrelations.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGJE / FlavourJetTasks / macros / AddTaskFlavourJetCorrelations.C
1 AliAnalysisTaskFlavourJetCorrelations *AddTaskFlavourJetCorrelations(\r
2   AliAnalysisTaskFlavourJetCorrelations::ECandidateType cand = AliAnalysisTaskFlavourJetCorrelations::kDstartoKpipi,\r
3   TString filename = "DStartoKpipiCuts.root",\r
4   Bool_t theMCon = kFALSE,\r
5   Bool_t reco = kTRUE /*must be true if theMCon is false*/,\r
6   TString jetArrname = "",\r
7   TString suffix = "",\r
8   Bool_t triggerOnLeadingJet = kFALSE,\r
9   Int_t leadingHadType = 0 /*0 = charged, 1 = neutral, 2 = both*/,\r
10   Float_t R = 0.4,\r
11   Float_t jptcut = 10.,\r
12   const char *cutType = "TPC",\r
13   Double_t percjetareacut = 1.)\r
14 {\r
15   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
16   if (!mgr) {\r
17     ::Error("AddTaskFlavourJetCorrelations::AddTaskFlavourJetCorrelations", "No analysis manager to connect to.");\r
18     return NULL;\r
19   } \r
20 \r
21   Bool_t useStdC = kFALSE;\r
22   TFile* filecuts=TFile::Open(filename);\r
23   if (!filecuts || (filecuts && !filecuts->IsOpen())) {\r
24     cout<<"Input file not found: use std cuts"<<endl;\r
25     useStdC = kTRUE;\r
26   }\r
27 \r
28   AliRDHFCuts *analysiscuts = 0x0;\r
29   switch (cand) {\r
30   case 0 :\r
31     if (useStdC) {\r
32       analysiscuts = new AliRDHFCutsD0toKpi();\r
33       analysiscuts->SetStandardCutsPP2010();\r
34     } else\r
35       analysiscuts = (AliRDHFCutsD0toKpi*)filecuts->Get("D0toKpiCuts");\r
36     break;\r
37   case 1 :\r
38     if(useStdC) {\r
39       analysiscuts = new AliRDHFCutsDStartoKpipi();\r
40       analysiscuts->SetStandardCutsPP2010();\r
41     } else\r
42       analysiscuts = (AliRDHFCutsDStartoKpipi*)filecuts->Get("DStartoKpipiCuts");\r
43     analysiscuts->SetName("DStartoKpipiCuts");\r
44     break;\r
45   }\r
46   \r
47   if (!analysiscuts) { // mm let's see if everything is ok\r
48     AliFatal("Specific AliRDHFCuts not found");\r
49     return;\r
50   }\r
51 \r
52   printf("CREATE TASK\n"); //CREATE THE TASK\r
53 \r
54   // create the task\r
55   AliAnalysisTaskFlavourJetCorrelations *task = new AliAnalysisTaskFlavourJetCorrelations("AnaTaskFlavourJetCorrelations", \r
56      analysiscuts, cand);\r
57   task->SetJetsName(jetArrname);\r
58   task->SetMC(theMCon);\r
59   task->SetUseReco(reco);\r
60   task->SetTriggerOnLeadingJet(triggerOnLeadingJet);\r
61   task->SetJetAcceptanceType(cutType);\r
62 \r
63   mgr->AddTask(task);\r
64 \r
65   if(theMCon) {\r
66      suffix+="MC";\r
67      if(reco) suffix+="rec";  \r
68   }\r
69 \r
70   // Create and connect containers for input/output\r
71   TString outputfile = AliAnalysisManager::GetCommonFileName();\r
72   outputfile += ":PWG3_D2H_DEmcalJet";\r
73   outputfile += suffix;\r
74 \r
75   TString candname="DStar"; \r
76   if(cand==0)  candname="D0";\r
77 \r
78   TString nameContainer1="hCor";\r
79   TString nameContainer2="cutsJ";\r
80 \r
81   nameContainer1 += candname;\r
82   nameContainer2 += candname;\r
83   \r
84   nameContainer1 += suffix;\r
85   nameContainer2 += suffix;\r
86   // ------ input data ------\r
87   AliAnalysisDataContainer *cinput0  = mgr->GetCommonInputContainer();\r
88 \r
89   // ----- output data -----\r
90   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(nameContainer1, TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());\r
91   AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(nameContainer2, AliRDHFCuts::Class(),AliAnalysisManager::kOutputContainer, outputfile.Data());\r
92 \r
93   mgr->ConnectInput(task,0,mgr->GetCommonInputContainer());\r
94   mgr->ConnectOutput(task,1,coutput1);\r
95   mgr->ConnectOutput(task,2,coutput2);\r
96 \r
97 \r
98   Printf("Input and Output connected to the manager");\r
99   return task ;\r
100 }\r