]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/macros/AddTaskDijetHadron.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskDijetHadron.C
CommitLineData
6c7b9d7a 1// $Id$
2
b1e2cf83 3AliAnalysisTaskDijetHadron* AddTaskDijetHadron(
4 const char *ntracks = "Tracks",
5 const char *nclusters = "CaloClusters",
6 const char *njets = "Jets",
6c7b9d7a 7 const char *nMCtracks = "TracksMC",
8 const char *nMCclusters = "CaloClustersMC",
9 const char *nMCjets = "JetsMC",
b1e2cf83 10 const char *nembtracks = "TracksEmbedded",
11 const char *nembclusters = "CaloClustersEmbedded",
12 const char *nembjets = "EmbJets",
13 const char *nrandtracks = "TracksRandomized",
14 const char *nrandclusters = "CaloClustersRandomized",
6c7b9d7a 15 const char *nPbPbrho = "Rho",
16 const char *nMCrho = "RhoMC",
17 const char *nEMBrho = "RhoEMB",
b1e2cf83 18 Double_t jetradius = 0.2,
6c7b9d7a 19 Double_t leadinghadron1 = 0.0,
20 Double_t leadinghadron2 = 3.0,
21 Double_t leadinghadron3 = 5.0,
22 Double_t jet1pt1 = 10.0,
23 Double_t jet1pt2 = 20.0,
24 Double_t jet1pt3 = 30.0,
25 Double_t jet2pt1 = 10.0,
26 Double_t jet2pt2 = 20.0,
27 Double_t jet2pt3 = 30.0,
b1e2cf83 28 Double_t jetareacut = 0.557,
29 Double_t trackptcut = 0.15,
30 Double_t clusptcut = 0.30,
31 const char *type = "TPC",
32 const char *taskname = "AliAnalysisTaskDijetHadron"
33)
34{
35 // Get the pointer to the existing analysis manager via the static access method.
36 //==============================================================================
37 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
38 if (!mgr)
39 {
6c7b9d7a 40 ::Error("AddTaskDijetHadron", "No analysis manager to connect to.");
b1e2cf83 41 return NULL;
42 }
43
44 // Check the analysis type using the event handlers connected to the analysis manager.
45 //==============================================================================
46 if (!mgr->GetInputEventHandler())
47 {
6c7b9d7a 48 ::Error("AddTaskDijetHadron", "This task requires an input event handler");
b1e2cf83 49 return NULL;
50 }
51
52 //-------------------------------------------------------
53 // Init the task and do settings
54 //-------------------------------------------------------
55 TString name;
56 if (strcmp(ntracks, "") == 0 && strcmp(nclusters, "") == 0)
57 name = Form("%s_%s_R0%d_%s",taskname,nPbPbrho,(Int_t)floor(jetradius*100+0.5),type);
58 else if (strcmp(ntracks, "") == 0)
59 name = Form("%s_%s_%s_R0%d_%s",taskname,nclusters,nPbPbrho,(Int_t)floor(jetradius*100+0.5),type);
60 else if (strcmp(nclusters, "") == 0)
61 name = Form("%s_%s_%s_R0%d_%s",taskname,ntracks,nPbPbrho,(Int_t)floor(jetradius*100+0.5),type);
62 else
63 name = Form("%s_%s_%s_%s_R0%d_%s",taskname,ntracks,nclusters,nPbPbrho,(Int_t)floor(jetradius*100+0.5),type);
64
65 AliAnalysisTaskDijetHadron* jetTask = new AliAnalysisTaskDijetHadron(name);
66 jetTask->SetConeRadius(jetradius);
6c7b9d7a 67 jetTask->SetLeadingHadronPtThreshold1(leadinghadron1);
68 jetTask->SetLeadingHadronPtThreshold2(leadinghadron2);
69 jetTask->SetLeadingHadronPtThreshold3(leadinghadron3);
70 jetTask->SetJet1PtThreshold1(jet1pt1);
71 jetTask->SetJet1PtThreshold2(jet1pt2);
72 jetTask->SetJet1PtThreshold3(jet1pt3);
73 jetTask->SetJet2PtThreshold1(jet2pt1);
74 jetTask->SetJet2PtThreshold2(jet2pt2);
75 jetTask->SetJet2PtThreshold3(jet2pt3);
b1e2cf83 76 jetTask->SetRhoName(nPbPbrho,-1);
77 if (strcmp(type,"TPC")==0)
78 jetTask->SetConeEtaPhiTPC();
79 else if (strcmp(type,"EMCAL")==0)
80 jetTask->SetConeEtaPhiEMCAL();
81
82 AliParticleContainer *partCont = jetTask->AddParticleContainer(ntracks);
83 if (partCont) {
84 partCont->SetName("Tracks");
85 partCont->SetParticlePtCut(trackptcut);
86 }
87
88 AliClusterContainer *clusCont = jetTask->AddClusterContainer(nclusters);
89 if (clusCont) {
90 clusCont->SetName("CaloClusters");
91 clusCont->SetClusPtCut(clusptcut);
92 }
93
94 AliJetContainer *jetCont = jetTask->AddJetContainer(njets,type,jetradius);
95 if (jetCont) {
96 jetCont->SetName("Jets");
97 jetCont->SetPercAreaCut(jetareacut);
98 jetCont->SetRhoName(nPbPbrho);
99 jetCont->ConnectParticleContainer(partCont);
100 jetCont->ConnectClusterContainer(clusCont);
101 }
102
103 AliParticleContainer *MCpartCont = jetTask->AddParticleContainer(nMCtracks);
104 if (partCont) {
105 MCpartCont->SetName("MCTracks");
106 MCpartCont->SetParticlePtCut(trackptcut);
107 }
108
109 AliClusterContainer *MCclusCont = jetTask->AddClusterContainer(nMCclusters);
110 if (clusCont) {
111 MCclusCont->SetName("MCCaloClusters");
112 MCclusCont->SetClusPtCut(clusptcut);
113 }
114
115 AliJetContainer *MCjetCont = jetTask->AddJetContainer(nMCjets,type,jetradius);
116 if (jetCont) {
117 MCjetCont->SetName("MCJets");
118 MCjetCont->SetPercAreaCut(jetareacut);
119 MCjetCont->SetRhoName(nMCrho);
120 MCjetCont->ConnectParticleContainer(MCpartCont);
121 MCjetCont->ConnectClusterContainer(MCclusCont);
122 }
123
124 AliParticleContainer *embPartCont = jetTask->AddParticleContainer(nembtracks);
125 if (embPartCont) {
126 embPartCont->SetName("EmbTracks");
127 embPartCont->SetParticlePtCut(trackptcut);
128 }
129
130 AliClusterContainer *embClusCont = jetTask->AddClusterContainer(nembclusters);
131 if (embClusCont) {
132 embClusCont->SetName("EmbClusters");
133 embClusCont->SetClusPtCut(clusptcut);
134 }
135
136 AliJetContainer *embJetCont = jetTask->AddJetContainer(nembjets,type,jetradius);
137 if (embJetCont) {
138 embJetCont->SetName("EmbJets");
139 embJetCont->SetPercAreaCut(jetareacut);
140 embJetCont->SetRhoName(nEMBrho);
141 embJetCont->ConnectParticleContainer(embPartCont);
142 embJetCont->ConnectClusterContainer(embClusCont);
143 }
144
b1e2cf83 145 //-------------------------------------------------------
146 // Final settings, pass to manager and set the containers
147 //-------------------------------------------------------
148
149 mgr->AddTask(jetTask);
150
151 // Create containers for input/output
152 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
153 TString contname(name);
154 contname += "_histos";
155 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(),
156 TList::Class(),AliAnalysisManager::kOutputContainer,
157 Form("%s", AliAnalysisManager::GetCommonFileName()));
158 mgr->ConnectInput(jetTask, 0, cinput1);
159 mgr->ConnectOutput(jetTask, 1, coutput1);
160
161 return jetTask;
162}