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