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