]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/FlavourJetTasks/macros/AddTaskDFilterAndCorrelations.C
fix typo and MC in Add Flavour tasks
[u/mrichter/AliRoot.git] / PWGJE / FlavourJetTasks / macros / AddTaskDFilterAndCorrelations.C
CommitLineData
bbb94467 1void *AddTaskDFilterAndCorrelations(
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 TString jetArrname = "",
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("AddTaskSEDmesonsFilterCJ", "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 AliAnalysisTaskSEDmesonsFilterCJ *taskFilter = new AliAnalysisTaskSEDmesonsFilterCJ("AnaTaskSEDmesonsFilterCJ",analysiscuts,cand);
56 if(!theMCon) reco=kTRUE;
57 taskFilter->SetMC(theMCon); //D meson settings
58 taskFilter->SetUseReco(reco);
59 taskFilter->SetName("AliAnalysisTaskSEDmesonsFilterCJ");
60 mgr->AddTask(taskFilter);
61
62 // create the task
63
64 AliAnalysisTaskFlavourJetCorrelations *taskCorr = new AliAnalysisTaskFlavourJetCorrelations("AnaTaskFlavourJetCorrelations",
65 analysiscuts, cand);
66 taskCorr->SetName("AliAnalysisTaskFlavourJetCorrelations");
67 taskCorr->SetJetsName(jetArrname);
68 taskCorr->SetMC(theMCon);
69 taskCorr->SetUseReco(reco);
70 taskCorr->SetTriggerOnLeadingJet(triggerOnLeadingJet);
71 taskCorr->SetJetAcceptanceType(cutType);
72 taskCorr->SetJetPtCut(jptcut);
73 taskCorr->SetPercAreaCut(percjetareacut);
74
75 mgr->AddTask(taskCorr);
76
77 if(theMCon) {
78 suffix+="MC";
79 if(reco) suffix+="rec";
80 }
81
82 TString candname="DStar";
83 if(cand==0) candname="D0";
84
85 // Create and connect containers for input/output
86 TString outputfile = AliAnalysisManager::GetCommonFileName();
87 TString outputfileF = outputfile, outputfileC = outputfile;
88 outputfileF += ":PWG3_D2H_DmesonsForJetCorrelations";
89 outputfileC += ":PWG3_D2H_DEmcalJet";
90
91 outputfileF += suffix;
92 outputfileC += suffix;
93
94 TString nameContainerF0="histograms";
95 TString nameContainerF1="cuts";
96
97 TString nameContainerC0="hCor";
98 TString nameContainerC1="cutsJ";
99
100 TString nameContainerFC2="Dcandidates";
101 TString nameContainerFC3="DSBcandidates";
102
103 nameContainerF0 += candname;
104 nameContainerF1 += candname;
105 nameContainerC0 += candname;
106 nameContainerC1 += candname;
107 nameContainerFC2 += candname;
108 nameContainerFC3 += candname;
109
110 nameContainerF0 += suffix;
111 nameContainerF1 += suffix;
112 nameContainerC0 += suffix;
113 nameContainerC1 += suffix;
114 nameContainerFC2 += suffix;
115 nameContainerFC3 += suffix;
116
117
118 // ------ input data ------
119 AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
120
121 // ----- output data -----
122
123 AliAnalysisDataContainer *coutputF0 = mgr->CreateContainer(nameContainerF0, TList::Class(),AliAnalysisManager::kOutputContainer,outputfileF.Data());
124
125 AliAnalysisDataContainer *coutputF1 = mgr->CreateContainer(nameContainerF1, AliRDHFCuts::Class(),AliAnalysisManager::kOutputContainer, outputfileF.Data());
126
127 AliAnalysisDataContainer *coutputC0 = mgr->CreateContainer(nameContainerC0, TList::Class(),AliAnalysisManager::kOutputContainer,outputfileC.Data());
128
129 AliAnalysisDataContainer *coutputC1 = mgr->CreateContainer(nameContainerC1, AliRDHFCuts::Class(),AliAnalysisManager::kOutputContainer, outputfileC.Data());
130
131 AliAnalysisDataContainer *coutputFC2 = mgr->CreateContainer(nameContainerFC2, TClonesArray::Class(),AliAnalysisManager::kExchangeContainer, outputfileF.Data()); //
132
133 AliAnalysisDataContainer *coutputFC3 = mgr->CreateContainer(nameContainerFC3, TClonesArray::Class(),AliAnalysisManager::kExchangeContainer, outputfileF.Data()); //
134
135 mgr->ConnectInput(taskFilter,0,mgr->GetCommonInputContainer());
136 mgr->ConnectInput(taskCorr,0,mgr->GetCommonInputContainer());
137
138 mgr->ConnectOutput(taskFilter,1,coutputF0);
139 mgr->ConnectOutput(taskFilter,2,coutputF1);
140 mgr->ConnectOutput(taskFilter,3,coutputFC2);
141 mgr->ConnectOutput(taskFilter,4,coutputFC3);
142
143
144 mgr->ConnectInput(taskCorr,1,coutputFC2);
145 mgr->ConnectInput(taskCorr,2,coutputFC3);
146 mgr->ConnectOutput(taskCorr,1,coutputC0);
147 mgr->ConnectOutput(taskCorr,2,coutputC1);
148 //if(cand==1) mgr->ConnectOutput(task,4,coutput4);
149
150 Printf("Input and Output connected to the manager");
151 return;
152}
153