]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/FlavourJetTasks/macros/AddTaskFlavourFilterAndJetCorrelations.C
fix typo and MC in Add Flavour tasks
[u/mrichter/AliRoot.git] / PWGJE / FlavourJetTasks / macros / AddTaskFlavourFilterAndJetCorrelations.C
CommitLineData
ae040693 1AliAnalysisTaskFlavourFilterAndJetCorrelations *AddTaskFlavourFilterAndJetCorrelations(
2 AliAnalysisTaskFlavourFilterAndJetCorrelations::ECandidateType cand = AliAnalysisTaskFlavourFilterAndJetCorrelations::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("AddTaskFlavourFilterAndJetCorrelations::AddTaskFlavourFilterAndJetCorrelations", "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 AliAnalysisTaskFlavourFilterAndJetCorrelations *task = new AliAnalysisTaskFlavourFilterAndJetCorrelations("AnaTaskFlavourFilterAndJetCorrelations",
56 analysiscuts, cand);
57 task->SetJetsName(jetArrname);
58 task->SetMC(theMCon);
59 task->SetUseReco(reco);
60 task->SetTriggerOnLeadingJet(triggerOnLeadingJet);
61 task->SetJetAcceptanceType(cutType);
62 task->SetJetPtCut(jptcut);
63 task->SetPercAreaCut(percjetareacut);
64
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_DFilterAndEmcalJet";
75 outputfile += suffix;
76
77 TString candname="DStar";
78 if(cand==0) candname="D0";
79
80 TString nameContainer0="histogramsv12";
81 TString nameContainer1="hCorv12";
82 TString nameContainer2="cutsJv12";
83
84 nameContainer0 += candname;
85 nameContainer1 += candname;
86 nameContainer2 += candname;
87
88 nameContainer0 += suffix;
89 nameContainer1 += suffix;
90 nameContainer2 += suffix;
91
92 // ------ input data ------
93 AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
94
95 // ----- output data -----
96 AliAnalysisDataContainer *coutput0 = mgr->CreateContainer(nameContainer0, TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
97
98 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(nameContainer1, TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
99 AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(nameContainer2, AliRDHFCuts::Class(),AliAnalysisManager::kOutputContainer, outputfile.Data());
100
101 mgr->ConnectInput(task,0,mgr->GetCommonInputContainer());
102
103 mgr->ConnectOutput(task,1,coutput1);
104 mgr->ConnectOutput(task,2,coutput2);
105 mgr->ConnectOutput(task,3,coutput0);
106
107
108 Printf("Input and Output connected to the manager");
109 return task ;
110}