]>
Commit | Line | Data |
---|---|---|
c683985a | 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); | |
1353fa73 | 62 | task->SetJetPtCut(jptcut); |
63 | task->SetPercAreaCut(percjetareacut); | |
64 | ||
c683985a | 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 | } |