]>
Commit | Line | Data |
---|---|---|
c683985a | 1 | AliAnalysisTaskSEDmesonsFilterCJ *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 |