Updates from Chiara
[u/mrichter/AliRoot.git] / PWGJE / FlavourJetTasks / macros / AddTaskSEDmesonsFilterCJ.C
1 AliAnalysisTaskSEDmesonsFilterCJ *AddTaskSEDmesonsFilterCJ(
2   AliAnalysisTaskSEDmesonsFilterCJ::ECandidateType cand = AliAnalysisTaskSEDmesonsFilterCJ::kDstartoKpipi,
3   TString filename = "DStartoKpipiCuts.root",
4   Bool_t theMCon = kFALSE,
5   TString suffix = "")
6 {
7   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
8   if (!mgr) {
9     ::Error("AddTaskSEDmesonsFilterCJ", "No analysis manager to connect to.");
10     return NULL;
11   } 
12
13   Bool_t useStdC = kFALSE;
14   TFile* filecuts=TFile::Open(filename);
15   if(!filecuts || (filecuts && !filecuts->IsOpen())) {
16     cout<<"Input file not found: use std cuts"<<endl;
17     useStdC = kTRUE;
18   }
19
20   AliRDHFCuts *analysiscuts=0x0;
21   switch (cand) {
22   case 0 :
23     if(useStdC) {
24       analysiscuts = new AliRDHFCutsD0toKpi();
25       analysiscuts->SetStandardCutsPP2010();
26     } else
27       analysiscuts = (AliRDHFCutsD0toKpi*)filecuts->Get("D0toKpiCuts");
28     break;
29   case 1 :
30     if(useStdC) {
31       analysiscuts = new AliRDHFCutsDStartoKpipi();
32       analysiscuts->SetStandardCutsPP2010();
33     } else
34       analysiscuts = (AliRDHFCutsDStartoKpipi*)filecuts->Get("DStartoKpipiCuts");
35     analysiscuts->SetName("DStartoKpipiCuts");
36     break;
37   }
38   
39   if (!analysiscuts) { // mm let's see if everything is ok
40     AliFatal("Specific AliRDHFCuts not found");
41     return;
42   } 
43
44   printf("CREATE TASK\n"); //CREATE THE TASK
45
46   // create the task
47   AliAnalysisTaskSEDmesonsFilterCJ *task = new AliAnalysisTaskSEDmesonsFilterCJ("AnaTaskSEDmesonsFilterCJ",analysiscuts,cand);
48   task->SetMC(theMCon); //D meson settings
49   mgr->AddTask(task);
50
51   TString candname="DStar"; 
52   if(cand==0)  candname="D0";
53   
54   // Create and connect containers for input/output
55   TString outputfile = AliAnalysisManager::GetCommonFileName();
56   outputfile += ":PWG3_D2H_DmesonsForJetCorrelations";
57   outputfile += suffix;
58
59   TString nameContainer0="histograms";
60   TString nameContainer1="cuts";
61   //TString nameContainer2="DcandidatesSel";
62
63   nameContainer0 += candname;
64   nameContainer1 += candname;
65   
66   nameContainer0 += suffix;
67   nameContainer1 += suffix;
68 //nameContainer2 += suffix;
69
70   // ------ input data ------
71   AliAnalysisDataContainer *cinput0  = mgr->GetCommonInputContainer();
72   
73   // ----- output data -----
74   
75   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(nameContainer0, TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
76   AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(nameContainer1, AliRDHFCuts::Class(),AliAnalysisManager::kOutputContainer, outputfile.Data());
77 //AliAnalysisDataContainer *coutput3 = mgr->CreateContainer(nameContainer2, TList::Class(),AliAnalysisManager::kExchangeContainer, outputfile.Data());
78   
79   mgr->ConnectInput(task,0,mgr->GetCommonInputContainer());
80   mgr->ConnectOutput(task,1,coutput1);
81   mgr->ConnectOutput(task,2,coutput2);
82 //mgr->ConnectOutput(task,3,coutput3);
83
84   Printf("Input and Output connected to the manager");
85   return task ;
86 }
87