]>
Commit | Line | Data |
---|---|---|
fba64b41 | 1 | /// **** to run the macro: *********** |
f9a6cab5 | 2 | // alien-token-init username |
f27a407b | 3 | // source /tmp/gclient_env_XXX |
f9a6cab5 | 4 | // root -l runGrid.C |
5 | ||
6 | class AliAnalysisGrid; | |
7 | ||
fba64b41 | 8 | void runGridCascadePbPb( Bool_t useMC = kTRUE, // kTRUE if analysing a MC sample |
9 | Bool_t runperformancetask = kTRUE, | |
10 | Float_t centrlowlim = 0., | |
11 | Float_t centruplim = 90., | |
12 | TString centrest = "V0M", | |
314cd92c | 13 | Bool_t kusecleaning = kTRUE, |
fba64b41 | 14 | Float_t vtxlim = 10., |
79313da9 | 15 | Int_t minnTPCcls = 70, |
fba64b41 | 16 | Bool_t kextrasel = kFALSE, |
79313da9 | 17 | Bool_t kacccut = kFALSE, |
fba64b41 | 18 | Bool_t krelaunchvertexers = kFALSE, |
f27a407b | 19 | Float_t minptondaughtertracks = 0., |
fba64b41 | 20 | TString anatype = "AOD",//"ESD", |
d08623be | 21 | TString gridoutputdir = "LHC10h_AOD086", |
22 | //the following are used for the Cascade task only | |
23 | TString datadir = "/alice/data/2010/LHC10h",///alice/data/2011/LHC11h_2", | |
24 | TString datapattern = "ESDs/pass2/AOD086/*/AliAOD.root", // "ESDs/pass2/*/*ESDs.root" // for data | |
fba64b41 | 25 | const char *plugin_mode ="full") { |
f9a6cab5 | 26 | |
27 | // Load common libraries | |
28 | gSystem->Load("libCore.so"); | |
29 | gSystem->Load("libTree.so"); | |
30 | gSystem->Load("libGeom.so"); | |
31 | gSystem->Load("libVMC.so"); | |
32 | gSystem->Load("libPhysics.so"); | |
33 | gSystem->Load("libMinuit.so"); | |
34 | gSystem->Load("libGui.so"); | |
35 | gSystem->Load("libXMLParser.so"); | |
36 | gSystem->Load("libSTEERBase.so"); | |
37 | gSystem->Load("libESD.so"); | |
38 | gSystem->Load("libCDB.so"); | |
39 | gSystem->Load("libAOD"); | |
40 | gSystem->Load("libANALYSIS"); | |
41 | gSystem->Load("libANALYSISalice"); | |
42 | gSystem->Load("libCORRFW"); | |
43 | gSystem->Load("libProof.so"); | |
44 | gSystem->Load("libRAWDatabase.so"); | |
45 | gSystem->Load("libSTEER.so"); | |
46 | ||
47 | //__________________________________________________________________________ | |
48 | // Use AliRoot includes to compile our task | |
49 | gROOT->ProcessLine(".include $ALICE_ROOT/include"); | |
50 | ||
51 | //__________________________________________________________________________ | |
52 | // Create and configure the alien handler plugin | |
d08623be | 53 | AliAnalysisGrid *alienHandler = CreateAlienHandler(plugin_mode, runperformancetask, useMC, anatype, gridoutputdir, datadir, datapattern); |
f9a6cab5 | 54 | if (!alienHandler) return; |
55 | ||
56 | //__________________________________________________________________________ | |
57 | // Create the analysis manager | |
58 | AliAnalysisManager *mgr = new AliAnalysisManager("CascadePbPbanalysis"); | |
59 | ||
60 | //__________________________________________________________________________ | |
61 | // Connect plug-in to the analysis manager | |
62 | mgr->SetGridHandler(alienHandler); | |
63 | ||
fba64b41 | 64 | // Input handlers |
65 | AliESDInputHandler* esdH = new AliESDInputHandler(); | |
66 | AliAODInputHandler* aodH = new AliAODInputHandler(); | |
67 | if (anatype=="ESD") mgr->SetInputEventHandler(esdH); | |
68 | else mgr->SetInputEventHandler(aodH); | |
69 | if (runperformancetask&&(anatype=="ESD")) { | |
70 | AliMCEventHandler* mcHandler = new AliMCEventHandler(); | |
71 | mgr->SetMCtruthEventHandler(mcHandler); | |
72 | } | |
73 | ||
f9a6cab5 | 74 | //__________________________________________________________________________ |
fba64b41 | 75 | // Add tasks |
76 | ||
d08623be | 77 | if (anatype=="ESD") { |
78 | // Physics selection | |
79 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C"); | |
80 | AliPhysicsSelectionTask *physSel = AddTaskPhysicsSelection(useMC); | |
81 | // Centrality selection | |
fba64b41 | 82 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C"); |
83 | AliCentralitySelectionTask *taskCentr = AddTaskCentrality(); | |
84 | if (useMC){ | |
85 | taskCentr->SetMCInput(); | |
86 | taskCentr->DontUseCleaning(); | |
87 | } | |
88 | } | |
89 | ||
90 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C"); | |
91 | AliAnalysisTaskPIDResponse *pidTask = AddTaskPIDResponse(useMC); | |
f9a6cab5 | 92 | |
93 | if (runperformancetask) { | |
79313da9 | 94 | gROOT->LoadMacro("$ALICE_ROOT/PWGLF/STRANGENESS/Cascades/AliAnalysisTaskCheckPerformanceCascadePbPb.cxx++g"); |
95 | gROOT->LoadMacro("$ALICE_ROOT/PWGLF/STRANGENESS/Cascades/macros/AddTaskCheckPerformanceCascadePbPb.C"); | |
f27a407b | 96 | AliAnalysisTaskCheckPerformanceCascadePbPb *task = AddTaskCheckPerformanceCascadePbPb(minnTPCcls, centrlowlim, centruplim, centrest, kusecleaning, vtxlim,kextrasel ,kacccut ,krelaunchvertexers,minptondaughtertracks); |
79313da9 | 97 | |
f9a6cab5 | 98 | } else { |
79313da9 | 99 | gROOT->LoadMacro("$ALICE_ROOT/PWGLF/STRANGENESS/Cascades/AliAnalysisTaskCheckCascadePbPb.cxx++g"); |
100 | gROOT->LoadMacro("$ALICE_ROOT/PWGLF/STRANGENESS/Cascades/macros/AddTaskCheckCascadePbPb.C"); | |
f27a407b | 101 | AliAnalysisTaskCheckCascadePbPb *task = AddTaskCheckCascadePbPb(minnTPCcls, centrlowlim, centruplim, centrest, kusecleaning, vtxlim, kextrasel ,krelaunchvertexers,minptondaughtertracks); |
79313da9 | 102 | |
f9a6cab5 | 103 | } |
fba64b41 | 104 | |
f9a6cab5 | 105 | //__________________________________________________________________________ |
106 | // Disbale debug printouts | |
107 | mgr->SetDebugLevel(3); | |
108 | AliLog::SetGlobalLogLevel(AliLog::kFatal); | |
109 | AliLog::SetGlobalDebugLevel(0); | |
110 | ||
111 | //__________________________________________________________________________ | |
112 | if (!mgr->InitAnalysis()) return; | |
113 | mgr->PrintStatus(); | |
114 | // Start analysis in grid. | |
115 | mgr->StartAnalysis("grid"); | |
116 | }; | |
117 | ||
118 | //__________________________________________________________________________ | |
119 | ||
d08623be | 120 | AliAnalysisGrid* CreateAlienHandler(const char *plugin_mode, Bool_t runperformancetask, Bool_t useMC, TString anatype, TString gridoutputdir, TString datadir, TString datapattern) { |
f9a6cab5 | 121 | //__________________________________________________________________________ |
122 | // Check if user has a valid token, otherwise make one. This has limitations. | |
123 | // One can always follow the standard procedure of calling alien-token-init then | |
124 | // source /tmp/gclient_env_$UID in the current shell. | |
125 | AliAnalysisAlien *plugin= new AliAnalysisAlien(); | |
126 | ||
127 | //__________________________________________________________________________ | |
128 | // Set the run mode (can be "full", "test", "offline", "submit" or "terminate") | |
129 | plugin->SetRunMode(plugin_mode); | |
130 | ||
131 | plugin->SetNtestFiles(1); | |
132 | //__________________________________________________________________________ | |
133 | // Set versions of used packages | |
134 | plugin->SetAPIVersion("V1.1x"); | |
135 | ||
136 | //__________________________________________________________________________ | |
137 | // On GRID - current | |
f27a407b | 138 | plugin->SetROOTVersion("v5-33-02b"); |
139 | plugin->SetAliROOTVersion("v5-03-32-AN"); | |
f9a6cab5 | 140 | |
141 | //__________________________________________________________________________ | |
142 | // Declare input data to be processed. | |
143 | // Method 1: Create automatically XML collections using alien 'find' command. | |
144 | if (useMC) { | |
d08623be | 145 | //plugin->SetGridDataDir("/alice/sim/LHC11a10a_bis"); // Define production directory |
fba64b41 | 146 | //plugin->SetGridDataDir("/alice/sim/LHC11a10b_plus"); |
147 | plugin->SetGridDataDir("/alice/sim/2011/LHC11f5"); | |
f9a6cab5 | 148 | // Set data search pattern |
fba64b41 | 149 | if (anatype == "ESD") plugin->SetDataPattern("*ESDs.root"); |
d08623be | 150 | else plugin->SetDataPattern("AOD090/*AOD.root"); |
fba64b41 | 151 | plugin->AddRunNumber(137124); |
152 | ||
153 | ||
f9a6cab5 | 154 | } else { |
d08623be | 155 | plugin->SetGridDataDir(datadir.Data()); // Define production directory LFN |
156 | plugin->SetDataPattern(datapattern.Data()); // Set data search pattern | |
df0c0483 | 157 | plugin->SetRunPrefix("000"); |
fba64b41 | 158 | //plugin->SetRunRange(80000,80000); // ...then add run numbers to be considered |
159 | plugin->AddRunNumber(138534); | |
df0c0483 | 160 | |
f9a6cab5 | 161 | } |
fba64b41 | 162 | // Method 2: Use your input collection |
163 | //plugin->AddDataFile("/alice/cern.ch/user/m/mnicassi/139105.xml"); | |
f9a6cab5 | 164 | //__________________________________________________________________________ |
165 | // Define alien work directory where all files will be copied. Relative to alien $HOME. | |
d08623be | 166 | plugin->SetGridWorkingDir(gridoutputdir.Data()); |
fba64b41 | 167 | plugin->SetGridOutputDir("output"); |
f9a6cab5 | 168 | |
fba64b41 | 169 | //__________________________________________________________________________ |
f9a6cab5 | 170 | if (runperformancetask) plugin->SetAnalysisSource("AliAnalysisTaskCheckPerformanceCascadePbPb.cxx"); |
171 | else plugin->SetAnalysisSource("AliAnalysisTaskCheckCascadePbPb.cxx"); | |
172 | ||
173 | //__________________________________________________________________________ | |
174 | //Enable same others packages | |
175 | //plugin->EnablePackage("PWG3dielectron.par"); | |
176 | ||
177 | //__________________________________________________________________________ | |
178 | // Optionally set a name for the generated analysis macro (default MyAnalysis.C) | |
179 | plugin->SetAnalysisMacro("testmacro.C"); | |
180 | //Add all extra files (task.cxx/.h) | |
181 | if (runperformancetask) { | |
182 | plugin->SetAdditionalLibs("AliAnalysisTaskCheckPerformanceCascadePbPb.h AliAnalysisTaskCheckPerformanceCascadePbPb.cxx"); | |
183 | // Optionally modify the executable name (default analysis.sh) | |
184 | plugin->SetExecutable("CascadePerformancePbPb.sh"); | |
f9a6cab5 | 185 | } else { |
fba64b41 | 186 | plugin->SetAdditionalLibs("AliAnalysisTaskCheckCascadePbPb.h AliAnalysisTaskCheckCascadePbPb.cxx "); |
f9a6cab5 | 187 | // Optionally modify the executable name (default analysis.sh) |
188 | plugin->SetExecutable("CascadePbPb.sh"); | |
189 | ||
190 | } | |
fba64b41 | 191 | |
f9a6cab5 | 192 | //__________________________________________________________________________ |
193 | // Declare the output file names separated by blancs. | |
194 | // (can be like: file.root or file.root@ALICE::Niham::File) | |
fba64b41 | 195 | //plugin->SetDefaultOutputs(kFALSE); |
196 | //if (runperformancetask) plugin->SetOutputFiles("CascadePerformance.root"); | |
197 | //else plugin->SetOutputFiles("Cascades.root"); | |
f9a6cab5 | 198 | |
199 | // Optionally define the files to be archived. | |
fba64b41 | 200 | //plugin->SetOutputArchive("root_archive.zip:*.root log_archive.zip:stdout,stderr"); |
f9a6cab5 | 201 | |
202 | //__________________________________________________________________________ | |
203 | // Optionally set maximum number of input files/subjob (default 100, put 0 to ignore) | |
204 | plugin->SetSplitMaxInputFileNumber(100); | |
205 | // Optionally set number of failed jobs that will trigger killing waiting sub-jobs. | |
206 | plugin->SetMasterResubmitThreshold(90); | |
207 | // Optionally set time to live (default 30000 sec) | |
208 | plugin->SetTTL(30000); | |
209 | // Optionally set input format (default xml-single) | |
210 | plugin->SetInputFormat("xml-single"); | |
211 | // Optionally modify the name of the generated JDL (default analysis.jdl) | |
212 | if (runperformancetask) plugin->SetJDLName("TaskCheckPerformanceCascadePbPb.jdl"); | |
213 | else plugin->SetJDLName("TaskCheckCascadePbPb.jdl"); | |
214 | ||
f9a6cab5 | 215 | // Optionally modify job price (default 1) |
216 | plugin->SetPrice(1); | |
217 | ||
218 | // Merge via JDL | |
219 | // comment out the next line when using the "terminate" option, unless | |
220 | // you want separate merged files for each run | |
fba64b41 | 221 | /* plugin->SetMergeViaJDL(kTRUE); // run first in full mode, then in terminate |
222 | plugin->SetOneStageMerging(kFALSE); | |
223 | plugin->SetMaxMergeFiles(50); | |
224 | plugin->SetMaxMergeStages(2);// to define the number of stages | |
225 | */ | |
f9a6cab5 | 226 | // Optionally set number of runs per master |
fba64b41 | 227 | // plugin->SetNrunsPerMaster(1); |
f9a6cab5 | 228 | // |
229 | plugin->SetOutputToRunNo(); | |
230 | // Optionally modify split mode (default 'se') | |
231 | plugin->SetSplitMode("se"); | |
232 | plugin->SetUser("mnicassi"); | |
233 | return plugin; | |
234 | } | |
235 |