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