]>
Commit | Line | Data |
---|---|---|
e7a7072a | 1 | // $Id$ |
2 | ||
bd70ee2d | 3 | void runJetAna( |
d41a0b1c | 4 | const char *datatype = "aod", // aod, esd, sesd |
5 | const char *runtype = "local", // local or grid (when local gridmode specifies input txt file) | |
6 | const char *gridmode = "aod_files.txt", // grid mode (can be "full", "test", "offline", "submit" or "terminate") | |
7 | const char *taskname = "JetAna") // name of grid generated macros | |
e7a7072a | 8 | { |
9 | ||
10 | enum eDataType { kAod, kEsd, kSesd }; | |
11 | enum eRunType { kLocal, kGrid }; | |
12 | ||
13 | eRunType rType = kLocal; | |
bd70ee2d | 14 | if (strcmp(runtype, "grid")==0) |
e7a7072a | 15 | rType = kGrid; |
16 | eDataType dType = kAod; | |
bd70ee2d | 17 | if (strcmp(datatype, "esd")==0) |
e7a7072a | 18 | dType = kEsd; |
bd70ee2d | 19 | else if (strcmp(datatype, "sesd")==0) |
e7a7072a | 20 | dType = kSesd; |
21 | ||
22 | // load the libraries | |
23 | LoadLibs(); | |
24 | ||
25 | // analysis manager | |
26 | AliAnalysisManager* mgr = new AliAnalysisManager(taskname); | |
27 | ||
28 | if (dType == kAod) { | |
29 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/train/AddAODHandler.C"); | |
30 | AliAODInputHandler* inH = AddAODHandler(); | |
31 | } else { | |
32 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/train/AddESDHandler.C"); | |
33 | AliESDInputHandler* inH = AddESDHandler(); | |
34 | } | |
35 | ||
36 | if (0) { | |
37 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/train/AddAODOutputHandler.C"); | |
38 | AliAODHandler* aodoutHandler = AddAODOutputHandler(); | |
39 | } | |
40 | ||
41 | // PSel task | |
2b392b11 | 42 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalPhysicsSelection.C"); |
d41a0b1c | 43 | AliPhysicsSelectionTask *physSelTask = AddTaskEmcalPhysicsSelection(kTRUE, kTRUE, |
6e8d91c9 | 44 | AliVEvent::kAnyINT /*| AliVEvent::kCentral| AliVEvent::kSemiCentral*/, |
45 | 10,10); | |
bd70ee2d | 46 | |
47 | // Setup task | |
2b392b11 | 48 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalSetup.C"); |
bd70ee2d | 49 | AliEmcalSetupTask *setupTask = AddTaskEmcalSetup(); |
50 | ||
51 | // Compatibility task (for skimmed ESD) | |
52 | if (dType == kSesd) { | |
2b392b11 | 53 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalCompat.C"); |
bd70ee2d | 54 | AliEmcalCompatTask *comptask = AddTaskEmcalCompat(); |
55 | } | |
e7a7072a | 56 | |
57 | // Centrality task | |
58 | if (dType == kEsd) { | |
59 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C"); | |
60 | AliCentralitySelectionTask *centralityTask = AddTaskCentrality(); | |
61 | } | |
62 | ||
bd70ee2d | 63 | TString inputTracks("tracks"); |
64 | if (dType == kEsd) { | |
65 | inputTracks = "HybridTracks"; | |
66 | ||
67 | // Hybrid tracks maker for ESD | |
2b392b11 | 68 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalEsdTpcTrack.C"); |
bd70ee2d | 69 | AliEmcalEsdTpcTrackTask *hybTask = AddTaskEmcalEsdTpcTrack(inputTracks); |
70 | ||
71 | // Track propagator | |
2b392b11 | 72 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTrackPropagator.C"); |
bd70ee2d | 73 | AliEmcalTrackPropagatorTask *propTask = AddTaskEmcalTrackPropagator(inputTracks); |
74 | } | |
75 | else if (dType == kSesd) { | |
76 | inputTracks = "Tracks"; | |
77 | } | |
e7a7072a | 78 | |
bd70ee2d | 79 | // PicoTracks maker |
80 | TString tracksName("PicoTracks"); | |
2b392b11 | 81 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalPicoTrackMaker.C"); |
bd70ee2d | 82 | AliEmcalPicoTrackMaker *pTrackTask = AddTaskEmcalPicoTrackMaker(tracksName, inputTracks, "LHC11h"); |
e7a7072a | 83 | |
bd70ee2d | 84 | TString clusName("CaloClusters"); |
85 | if (dType == kAod) | |
86 | clusName = "caloClusters"; | |
e22bc1b8 | 87 | |
88 | // EmcalParticle maker | |
2b392b11 | 89 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalParticleMaker.C"); |
e22bc1b8 | 90 | AliEmcalParticleMaker *emcalParts = |
91 | AddTaskEmcalParticleMaker(tracksName,clusName,"EmcalTracks","EmcalClusters"); | |
92 | ||
93 | // Cluster-track matcher | |
2b392b11 | 94 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalClusTrackMatcher.C"); |
e22bc1b8 | 95 | AliEmcalClusTrackMatcherTask *matcherTask = AddTaskEmcalClusTrackMatcher("EmcalTracks","EmcalClusters"); |
e7a7072a | 96 | |
97 | // Hadronic correction task | |
bd70ee2d | 98 | TString clusNameCorr(Form("%sCorr",clusName.Data())); |
2b392b11 | 99 | gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskHadCorr.C"); |
e22bc1b8 | 100 | AliHadCorrTask *hcorr = AddTaskHadCorr("EmcalTracks","EmcalClusters",clusNameCorr); |
bd70ee2d | 101 | |
e22bc1b8 | 102 | if (0) { |
bd70ee2d | 103 | // Embedding task |
2b392b11 | 104 | gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskJetEmbedding.C"); |
bd70ee2d | 105 | AliJetEmbeddingTask* jemb = AddTaskJetEmbedding(tracksName, clusNameCorr, "JetEmbeddingTask", 10, 10, -0.9, 0.9); |
106 | ||
e7a7072a | 107 | // Jet finder |
2b392b11 | 108 | gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C"); |
bd70ee2d | 109 | AliEmcalJetTask *jetTask = AddTaskEmcalJet(tracksName, clusNameCorr); |
e7a7072a | 110 | |
e61400a6 | 111 | // Scale task |
2b392b11 | 112 | gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskScale.C"); |
bd70ee2d | 113 | AliAnalysisTaskScale *scaleTask = AddTaskScale(tracksName, clusNameCorr); |
e22bc1b8 | 114 | } |
e7a7072a | 115 | if (1) { |
116 | UInt_t val = AliVEvent::kAny; | |
d41a0b1c | 117 | //val = AliVEvent::kAnyINT | AliVEvent::kCentral| AliVEvent::kSemiCentral; |
e7a7072a | 118 | //val = AliVEvent::kEMCEGA; |
119 | //val = AliVEvent::kEMCEJE; | |
d41a0b1c | 120 | val = AliEmcalPhysicsSelection::kEmcalHT; |
e7a7072a | 121 | |
122 | TObjArray *toptasks = mgr->GetTasks(); | |
123 | for (Int_t i=0; i<toptasks->GetEntries(); ++i) { | |
124 | AliAnalysisTaskSE *task = dynamic_cast<AliAnalysisTaskSE*>(toptasks->At(i)); | |
125 | if (!task) | |
126 | continue; | |
d41a0b1c | 127 | TString name(task->ClassName()); |
e7a7072a | 128 | if (name.Contains("PhysicsSelection")) |
129 | continue; | |
130 | ::Info("setPSel", "Set physics selection for %s (%s)", task->GetName(), task->ClassName()); | |
131 | task->SelectCollisionCandidates(val); | |
132 | } | |
133 | } | |
134 | ||
135 | mgr->SetDebugLevel(0); | |
136 | mgr->SetUseProgressBar(1, 25); | |
137 | ||
138 | if (!mgr->InitAnalysis()) | |
139 | return; | |
140 | mgr->PrintStatus(); | |
141 | ||
142 | if (rType == kGrid) { | |
143 | mgr->StartAnalysis(gridmode); | |
144 | } else { | |
bd70ee2d | 145 | const char *txtfile = gridmode; |
e7a7072a | 146 | if (dType == kAod) { |
2b392b11 | 147 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/CreateAODChain.C"); |
bd70ee2d | 148 | chain = CreateAODChain(txtfile, 5); |
e7a7072a | 149 | } else { |
2b392b11 | 150 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/CreateESDChain.C"); |
bd70ee2d | 151 | TChain* chain = CreateESDChain(txtfile, 5); |
e7a7072a | 152 | } |
153 | mgr->StartAnalysis("local", chain); | |
154 | } | |
155 | ||
156 | return; | |
157 | } | |
158 | ||
e7a7072a | 159 | void LoadLibs() |
160 | { | |
161 | // load root libraries | |
162 | gSystem->Load("libTree"); | |
163 | gSystem->Load("libVMC"); | |
164 | gSystem->Load("libGui"); | |
165 | gSystem->Load("libXMLParser"); | |
166 | gSystem->Load("libMinuit"); | |
167 | gSystem->Load("libMinuit2"); | |
168 | gSystem->Load("libProof"); | |
169 | gSystem->Load("libGeom"); | |
170 | gSystem->Load("libPhysics"); | |
171 | ||
172 | // load aliroot libraries | |
173 | gSystem->Load("libSTEERBase"); | |
174 | gSystem->Load("libESD"); | |
175 | gSystem->Load("libAOD"); | |
176 | gSystem->Load("libOADB"); | |
177 | gSystem->Load("libANALYSIS"); | |
178 | gSystem->Load("libANALYSISalice"); | |
179 | gSystem->Load("libCDB"); | |
180 | gSystem->Load("libRAWDatabase"); | |
181 | gSystem->Load("libSTEER"); | |
182 | gSystem->Load("libCORRFW"); | |
183 | gSystem->Load("libEMCALUtils"); | |
184 | gSystem->Load("libPHOSUtils"); | |
185 | gSystem->Load("libPWGCaloTrackCorrBase"); | |
186 | gSystem->Load("libPWGGACaloTrackCorrelations"); | |
187 | gSystem->Load("libPWGGACaloTasks"); | |
e7a7072a | 188 | gSystem->Load("libEMCALraw"); |
189 | gSystem->Load("libEMCALbase"); | |
190 | gSystem->Load("libEMCALrec"); | |
191 | gSystem->Load("libTRDbase"); | |
192 | gSystem->Load("libVZERObase"); | |
193 | gSystem->Load("libVZEROrec"); | |
194 | gSystem->Load("libTENDER"); | |
195 | gSystem->Load("libTENDERSupplies"); | |
196 | ||
197 | // load fastjet libraries | |
198 | gSystem->Load("libJETAN"); | |
6e8d91c9 | 199 | gSystem->Load("/usr/lib64/libCGAL.so"); |
e7a7072a | 200 | gSystem->Load("$FASTJET/lib/libfastjet"); |
201 | gSystem->Load("$FASTJET/lib/libsiscone"); | |
202 | gSystem->Load("$FASTJET/lib/libSISConePlugin"); | |
203 | gSystem->Load("libFASTJETAN"); | |
879daaa3 | 204 | gSystem->Load("libPWGEMCAL"); |
205 | gSystem->Load("libPWGGAEMCALTasks"); | |
206 | gSystem->Load("libPWGJEEMCALJetTasks"); | |
e7a7072a | 207 | } |
208 | ||
209 | AliAnalysisGrid* CreateAlienHandler(const char *taskname, | |
210 | const char *gridmode, | |
211 | const char *proofcluster, | |
212 | const char *proofdataset) | |
213 | { | |
214 | // TODO | |
215 | return 0; | |
216 | } | |
217 |