]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/EMCALJetTasks/macros/runJetAna.C
changes from Salv
[u/mrichter/AliRoot.git] / PWGGA / EMCALJetTasks / macros / runJetAna.C
CommitLineData
e7a7072a 1// $Id$
2
bd70ee2d 3void 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
42 gROOT->LoadMacro("$ALICE_ROOT/PWGGA/EMCALTasks/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
48 gROOT->LoadMacro("$ALICE_ROOT/PWGGA/EMCALTasks/macros/AddTaskEmcalSetup.C");
49 AliEmcalSetupTask *setupTask = AddTaskEmcalSetup();
50
51 // Compatibility task (for skimmed ESD)
52 if (dType == kSesd) {
53 gROOT->LoadMacro("$ALICE_ROOT/PWGGA/EMCALTasks/macros/AddTaskEmcalCompat.C");
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
68 gROOT->LoadMacro("$ALICE_ROOT/PWGGA/EMCALTasks/macros/AddTaskEmcalEsdTpcTrack.C");
69 AliEmcalEsdTpcTrackTask *hybTask = AddTaskEmcalEsdTpcTrack(inputTracks);
70
71 // Track propagator
72 gROOT->LoadMacro("$ALICE_ROOT/PWGGA/EMCALTasks/macros/AddTaskEmcalTrackPropagator.C");
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");
e7a7072a 81 gROOT->LoadMacro("$ALICE_ROOT/PWGGA/EMCALTasks/macros/AddTaskEmcalPicoTrackMaker.C");
bd70ee2d 82 AliEmcalPicoTrackMaker *pTrackTask = AddTaskEmcalPicoTrackMaker(tracksName, inputTracks, "LHC11h");
e7a7072a 83
84 // Cluster-track matcher
bd70ee2d 85 TString clusName("CaloClusters");
86 if (dType == kAod)
87 clusName = "caloClusters";
88 gROOT->LoadMacro("$ALICE_ROOT/PWGGA/EMCALTasks/macros/AddTaskEmcalClusTrackMatcher.C");
89 AliEmcalClusTrackMatcherTask *matcherTask = AddTaskEmcalClusTrackMatcher(tracksName, clusName);
e7a7072a 90
91 // Hadronic correction task
bd70ee2d 92 TString clusNameCorr(Form("%sCorr",clusName.Data()));
e7a7072a 93 gROOT->LoadMacro("$ALICE_ROOT/PWGGA/EMCALJetTasks/macros/AddTaskHadCorr.C");
bd70ee2d 94 AliHadCorrTask *hcorr = AddTaskHadCorr(tracksName, clusName, clusNameCorr);
95
96 // Embedding task
97 gROOT->LoadMacro("$ALICE_ROOT/PWGGA/EMCALJetTasks/macros/AddTaskJetEmbedding.C");
98 AliJetEmbeddingTask* jemb = AddTaskJetEmbedding(tracksName, clusNameCorr, "JetEmbeddingTask", 10, 10, -0.9, 0.9);
99
e7a7072a 100 // Jet finder
101 gROOT->LoadMacro("$ALICE_ROOT/PWGGA/EMCALJetTasks/macros/AddTaskEmcalJet.C");
bd70ee2d 102 AliEmcalJetTask *jetTask = AddTaskEmcalJet(tracksName, clusNameCorr);
e7a7072a 103
e61400a6 104 // Scale task
105 gROOT->LoadMacro("$ALICE_ROOT/PWGGA/EMCALJetTasks/macros/AddTaskScale.C");
bd70ee2d 106 AliAnalysisTaskScale *scaleTask = AddTaskScale(tracksName, clusNameCorr);
e61400a6 107
e7a7072a 108 if (1) {
109 UInt_t val = AliVEvent::kAny;
d41a0b1c 110 //val = AliVEvent::kAnyINT | AliVEvent::kCentral| AliVEvent::kSemiCentral;
e7a7072a 111 //val = AliVEvent::kEMCEGA;
112 //val = AliVEvent::kEMCEJE;
d41a0b1c 113 val = AliEmcalPhysicsSelection::kEmcalHT;
e7a7072a 114
115 TObjArray *toptasks = mgr->GetTasks();
116 for (Int_t i=0; i<toptasks->GetEntries(); ++i) {
117 AliAnalysisTaskSE *task = dynamic_cast<AliAnalysisTaskSE*>(toptasks->At(i));
118 if (!task)
119 continue;
d41a0b1c 120 TString name(task->ClassName());
e7a7072a 121 if (name.Contains("PhysicsSelection"))
122 continue;
123 ::Info("setPSel", "Set physics selection for %s (%s)", task->GetName(), task->ClassName());
124 task->SelectCollisionCandidates(val);
125 }
126 }
127
128 mgr->SetDebugLevel(0);
129 mgr->SetUseProgressBar(1, 25);
130
131 if (!mgr->InitAnalysis())
132 return;
133 mgr->PrintStatus();
134
135 if (rType == kGrid) {
136 mgr->StartAnalysis(gridmode);
137 } else {
bd70ee2d 138 const char *txtfile = gridmode;
e7a7072a 139 if (dType == kAod) {
bd70ee2d 140 gROOT->LoadMacro("$ALICE_ROOT/PWGGA/EMCALTasks/macros/CreateAODChain.C");
141 chain = CreateAODChain(txtfile, 5);
e7a7072a 142 } else {
bd70ee2d 143 gROOT->LoadMacro("$ALICE_ROOT/PWGGA/EMCALTasks/macros/CreateESDChain.C");
144 TChain* chain = CreateESDChain(txtfile, 5);
e7a7072a 145 }
146 mgr->StartAnalysis("local", chain);
147 }
148
149 return;
150}
151
e7a7072a 152void LoadLibs()
153{
154 // load root libraries
155 gSystem->Load("libTree");
156 gSystem->Load("libVMC");
157 gSystem->Load("libGui");
158 gSystem->Load("libXMLParser");
159 gSystem->Load("libMinuit");
160 gSystem->Load("libMinuit2");
161 gSystem->Load("libProof");
162 gSystem->Load("libGeom");
163 gSystem->Load("libPhysics");
164
165 // load aliroot libraries
166 gSystem->Load("libSTEERBase");
167 gSystem->Load("libESD");
168 gSystem->Load("libAOD");
169 gSystem->Load("libOADB");
170 gSystem->Load("libANALYSIS");
171 gSystem->Load("libANALYSISalice");
172 gSystem->Load("libCDB");
173 gSystem->Load("libRAWDatabase");
174 gSystem->Load("libSTEER");
175 gSystem->Load("libCORRFW");
176 gSystem->Load("libEMCALUtils");
177 gSystem->Load("libPHOSUtils");
178 gSystem->Load("libPWGCaloTrackCorrBase");
179 gSystem->Load("libPWGGACaloTrackCorrelations");
180 gSystem->Load("libPWGGACaloTasks");
181 gSystem->Load("libPWGGAEMCALTasks");
182 gSystem->Load("libEMCALraw");
183 gSystem->Load("libEMCALbase");
184 gSystem->Load("libEMCALrec");
185 gSystem->Load("libTRDbase");
186 gSystem->Load("libVZERObase");
187 gSystem->Load("libVZEROrec");
188 gSystem->Load("libTENDER");
189 gSystem->Load("libTENDERSupplies");
190
191 // load fastjet libraries
192 gSystem->Load("libJETAN");
6e8d91c9 193 gSystem->Load("/usr/lib64/libCGAL.so");
e7a7072a 194 gSystem->Load("$FASTJET/lib/libfastjet");
195 gSystem->Load("$FASTJET/lib/libsiscone");
196 gSystem->Load("$FASTJET/lib/libSISConePlugin");
197 gSystem->Load("libFASTJETAN");
198 gSystem->Load("libPWGGAEMCALJetTasks");
199}
200
201AliAnalysisGrid* CreateAlienHandler(const char *taskname,
202 const char *gridmode,
203 const char *proofcluster,
204 const char *proofdataset)
205{
206 // TODO
207 return 0;
208}
209