1 AliAnalysisTaskDijetHadron* AddTaskDijetHadron(
2 const char *ntracks = "Tracks",
3 const char *nclusters = "CaloClusters",
4 const char *njets = "Jets",
5 const char *nMCtracks = "TracksMC",
6 const char *nMCclusters = "CaloClustersMC",
7 const char *nMCjets = "JetsMC",
8 const char *nembtracks = "TracksEmbedded",
9 const char *nembclusters = "CaloClustersEmbedded",
10 const char *nembjets = "EmbJets",
11 const char *nrandtracks = "TracksRandomized",
12 const char *nrandclusters = "CaloClustersRandomized",
13 const char *nPbPbrho = "Rho",
14 const char *nMCrho = "RhoMC",
15 const char *nEMBrho = "RhoEMB",
16 Double_t jetradius = 0.2,
17 Double_t jetareacut = 0.557,
18 Double_t trackptcut = 0.15,
19 Double_t clusptcut = 0.30,
20 const char *type = "TPC",
21 const char *taskname = "AliAnalysisTaskDijetHadron"
24 // Get the pointer to the existing analysis manager via the static access method.
25 //==============================================================================
26 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
29 ::Error("AddTaskHJetCorr", "No analysis manager to connect to.");
33 // Check the analysis type using the event handlers connected to the analysis manager.
34 //==============================================================================
35 if (!mgr->GetInputEventHandler())
37 ::Error("AddTaskHJetCorr", "This task requires an input event handler");
41 //-------------------------------------------------------
42 // Init the task and do settings
43 //-------------------------------------------------------
45 if (strcmp(ntracks, "") == 0 && strcmp(nclusters, "") == 0)
46 name = Form("%s_%s_R0%d_%s",taskname,nPbPbrho,(Int_t)floor(jetradius*100+0.5),type);
47 else if (strcmp(ntracks, "") == 0)
48 name = Form("%s_%s_%s_R0%d_%s",taskname,nclusters,nPbPbrho,(Int_t)floor(jetradius*100+0.5),type);
49 else if (strcmp(nclusters, "") == 0)
50 name = Form("%s_%s_%s_R0%d_%s",taskname,ntracks,nPbPbrho,(Int_t)floor(jetradius*100+0.5),type);
52 name = Form("%s_%s_%s_%s_R0%d_%s",taskname,ntracks,nclusters,nPbPbrho,(Int_t)floor(jetradius*100+0.5),type);
54 AliAnalysisTaskDijetHadron* jetTask = new AliAnalysisTaskDijetHadron(name);
55 jetTask->SetConeRadius(jetradius);
56 jetTask->SetRhoName(nPbPbrho,-1);
57 if (strcmp(type,"TPC")==0)
58 jetTask->SetConeEtaPhiTPC();
59 else if (strcmp(type,"EMCAL")==0)
60 jetTask->SetConeEtaPhiEMCAL();
62 AliParticleContainer *partCont = jetTask->AddParticleContainer(ntracks);
64 partCont->SetName("Tracks");
65 partCont->SetParticlePtCut(trackptcut);
68 AliClusterContainer *clusCont = jetTask->AddClusterContainer(nclusters);
70 clusCont->SetName("CaloClusters");
71 clusCont->SetClusPtCut(clusptcut);
74 AliJetContainer *jetCont = jetTask->AddJetContainer(njets,type,jetradius);
76 jetCont->SetName("Jets");
77 jetCont->SetPercAreaCut(jetareacut);
78 jetCont->SetRhoName(nPbPbrho);
79 jetCont->ConnectParticleContainer(partCont);
80 jetCont->ConnectClusterContainer(clusCont);
83 AliParticleContainer *MCpartCont = jetTask->AddParticleContainer(nMCtracks);
85 MCpartCont->SetName("MCTracks");
86 MCpartCont->SetParticlePtCut(trackptcut);
89 AliClusterContainer *MCclusCont = jetTask->AddClusterContainer(nMCclusters);
91 MCclusCont->SetName("MCCaloClusters");
92 MCclusCont->SetClusPtCut(clusptcut);
95 AliJetContainer *MCjetCont = jetTask->AddJetContainer(nMCjets,type,jetradius);
97 MCjetCont->SetName("MCJets");
98 MCjetCont->SetPercAreaCut(jetareacut);
99 MCjetCont->SetRhoName(nMCrho);
100 MCjetCont->ConnectParticleContainer(MCpartCont);
101 MCjetCont->ConnectClusterContainer(MCclusCont);
104 AliParticleContainer *embPartCont = jetTask->AddParticleContainer(nembtracks);
106 embPartCont->SetName("EmbTracks");
107 embPartCont->SetParticlePtCut(trackptcut);
110 AliClusterContainer *embClusCont = jetTask->AddClusterContainer(nembclusters);
112 embClusCont->SetName("EmbClusters");
113 embClusCont->SetClusPtCut(clusptcut);
116 AliJetContainer *embJetCont = jetTask->AddJetContainer(nembjets,type,jetradius);
118 embJetCont->SetName("EmbJets");
119 embJetCont->SetPercAreaCut(jetareacut);
120 embJetCont->SetRhoName(nEMBrho);
121 embJetCont->ConnectParticleContainer(embPartCont);
122 embJetCont->ConnectClusterContainer(embClusCont);
125 /*AliParticleContainer *randPartCont = jetTask->AddParticleContainer(nrandtracks);
127 randPartCont->SetName("RandTracks");
128 randPartCont->SetParticlePtCut(trackptcut);
131 AliClusterContainer *randClusCont = jetTask->AddClusterContainer(nrandclusters);
133 randClusCont->SetName("RandClusters");
134 randClusCont->SetClusPtCut(clusptcut);
137 //-------------------------------------------------------
138 // Final settings, pass to manager and set the containers
139 //-------------------------------------------------------
141 mgr->AddTask(jetTask);
143 // Create containers for input/output
144 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
145 TString contname(name);
146 contname += "_histos";
147 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(),
148 TList::Class(),AliAnalysisManager::kOutputContainer,
149 Form("%s", AliAnalysisManager::GetCommonFileName()));
150 mgr->ConnectInput(jetTask, 0, cinput1);
151 mgr->ConnectOutput(jetTask, 1, coutput1);