]>
Commit | Line | Data |
---|---|---|
2eca0e87 | 1 | AliAnalysisGrid* CreateAlienHandlerHadEt(Int_t dataset, Bool_t data, Bool_t test, Int_t material, Bool_t altV0Scale = kFALSE, bool runCompiledVersion = kFALSE) |
16dad6e3 | 2 | { |
3 | // Check if user has a valid token, otherwise make one. This has limitations. | |
4 | // One can always follow the standard procedure of calling alien-token-init then | |
5 | // source /tmp/gclient_env_$UID in the current shell. | |
6 | //if (!AliAnalysisGrid::CreateToken()) return NULL; | |
7 | AliAnalysisAlien *plugin = new AliAnalysisAlien(); | |
8 | ||
9 | // Overwrite all generated files, datasets and output results from a previous session | |
10 | plugin->SetOverwriteMode(); | |
11 | // Set the run mode (can be "full", "test", "offline", "submit" or "terminate") | |
12 | if(test){ | |
13 | plugin->SetRunMode("test"); // VERY IMPORTANT - DECRIBED BELOW | |
14 | } | |
15 | else{ | |
16 | plugin->SetRunMode("full"); // VERY IMPORTANT - DECRIBED BELOW | |
17 | } | |
2eca0e87 | 18 | //needed for local testing? |
19 | //plugin->SetFileForTestMode("files.txt"); // file should contain path name to a local directory containg *ESDs.root etc | |
16dad6e3 | 20 | // Set versions of used packages |
21 | plugin->SetAPIVersion("V1.1x"); | |
2eca0e87 | 22 | plugin->SetROOTVersion("v5-33-02a"); |
23 | plugin->SetAliROOTVersion("v5-03-15-AN"); | |
16dad6e3 | 24 | // Declare input data to be processed. |
25 | ||
2eca0e87 | 26 | plugin->AddIncludePath("-I$ALICE_ROOT/PWGUD/base"); |
16dad6e3 | 27 | // Method 1: Create automatically XML collections using alien 'find' command. |
28 | // Define production directory LFN | |
29 | // plugin->SetGridDataDir("/alice/sim/LHC10a18"); | |
30 | // Set data search pattern | |
31 | // plugin->SetDataPattern("*ESDs.root"); // simulated, tags not used | |
32 | // plugin->SetDataPattern("*ESDs/pass4/*ESDs.root"); // real data check reco pass and data base directory | |
33 | // plugin->SetRunPrefix("000"); // real data | |
34 | // plugin->SetDataPattern("*tag.root"); // Use ESD tags (same applies for AOD's) | |
35 | // ...then add run numbers to be considered | |
36 | // plugin->AddRunNumber(125020); // simulated | |
37 | // plugin->AddRunNumber(104065); // real data | |
38 | ||
39 | // Method 2: Declare existing data files (raw collections, xml collections, root file) | |
40 | // If no path mentioned data is supposed to be in the work directory (see SetGridWorkingDir()) | |
41 | // XML collections added via this method can be combined with the first method if | |
42 | // the content is compatible (using or not tags) | |
43 | //plugin->AddDataFile("tag.xml"); | |
44 | // plugin->AddDataFile("/alice/data/2008/LHC08c/000057657/raw/Run57657.Merged.RAW.tag.root"); | |
45 | if(dataset==20100){//PbPb 2.76 TeV | |
46 | if(data){//185 jobs | |
47 | cout<<"Running over data"<<endl; | |
48 | plugin->SetGridDataDir("/alice/data/2010/LHC10h");//PbPb data | |
49 | plugin->SetDataPattern("*ESDs/pass1/*ESDs.root"); | |
50 | plugin->SetRunPrefix("000"); // real data | |
51 | } | |
52 | else{ | |
53 | cout<<"Running over MC"<<endl; | |
54 | if(material==0){ | |
55 | plugin->SetGridDataDir("/alice/sim/LHC11a4_bis");//PbPb simulation | |
56 | } | |
57 | if(material==1){//7% more material | |
58 | plugin->SetGridDataDir("/alice/sim/LHC10h9");//PbPb simulation | |
59 | } | |
60 | if(material==-1){//7% less material | |
61 | plugin->SetGridDataDir("/alice/sim/LHC10h10");//PbPb simulation | |
62 | } | |
63 | if(material==10){//OK it's a cheat but this runs on DPM jet | |
64 | plugin->SetGridDataDir("/alice/sim/LHC10h2");//PbPb simulation | |
65 | } | |
66 | if(material==11){//OK it's a cheat but this runs on AMPT | |
67 | plugin->SetGridDataDir(" /alice/sim/LHC11a9a");//PbPb simulation | |
68 | } | |
69 | plugin->SetDataPattern("*ESDs.root"); | |
70 | //plugin->SetGridWorkingDir("etPbPbSim"); | |
71 | } | |
72 | plugin->AddRunNumber(137366); | |
73 | plugin->AddRunNumber(137161); | |
74 | } | |
75 | else{ | |
76 | if(dataset==2009){//pp 900 GeV | |
77 | if(data){//only 233 jobs! | |
78 | cout<<"Running over data"<<endl; | |
79 | plugin->SetGridDataDir("/alice/data/2010/LHC10c");//PbPb data | |
80 | plugin->SetDataPattern("*ESDs/pass3/*ESDs.root"); | |
81 | plugin->SetRunPrefix("000"); // real data | |
82 | } | |
83 | else{//sim over 1500 jobs, some get killed because it's above quota | |
84 | cout<<"Running over MC"<<endl; | |
85 | if(material==0){ | |
86 | plugin->SetGridDataDir("/alice/sim/LHC11b1a");//PbPb simulation | |
87 | } | |
88 | if(material==1){//10% more material budget | |
89 | plugin->SetGridDataDir("/alice/sim/LHC11b1b");//PbPb simulation | |
90 | } | |
91 | if(material==-1){//10% less material budget | |
92 | plugin->SetGridDataDir("/alice/sim/LHC11b1c");//PbPb simulation | |
93 | } | |
94 | plugin->SetDataPattern("*ESDs.root"); | |
95 | } | |
96 | plugin->AddRunNumber(121040); | |
97 | plugin->AddRunNumber(121039); | |
98 | plugin->AddRunNumber(118561); | |
99 | plugin->AddRunNumber(118560); | |
100 | plugin->AddRunNumber(118558); | |
101 | plugin->AddRunNumber(118557); | |
102 | plugin->AddRunNumber(118556); | |
103 | plugin->AddRunNumber(118518); | |
104 | plugin->AddRunNumber(118512); | |
105 | plugin->AddRunNumber(118507); | |
106 | plugin->AddRunNumber(118506); | |
107 | if(data){ | |
108 | plugin->AddRunNumber(118504); | |
109 | plugin->AddRunNumber(118503); | |
110 | } | |
111 | } | |
112 | ||
113 | if(dataset==20111){//pp 2.76 TeV | |
114 | if(data){//257 jobs | |
115 | cout<<"Running over data"<<endl; | |
116 | plugin->SetGridDataDir("/alice/data/2011/LHC11a");//PbPb data | |
117 | plugin->SetDataPattern("*ESDs/pass2_with_SDD/*ESDs.root"); | |
118 | plugin->SetRunPrefix("000"); // real data | |
119 | } | |
120 | else{//sim - 332 jobs | |
121 | cout<<"Running over MC"<<endl; | |
122 | plugin->SetGridDataDir("/alice/sim/LHC11b10a");//PbPb simulation | |
123 | plugin->SetDataPattern("*ESDs.root"); | |
124 | } | |
125 | plugin->AddRunNumber(146860); | |
126 | plugin->AddRunNumber(146859); | |
127 | plugin->AddRunNumber(146858); | |
128 | plugin->AddRunNumber(146857); | |
129 | plugin->AddRunNumber(146856); | |
130 | // plugin->AddRunNumber(146824); | |
131 | // if(data){//these productions are not yet done for MC | |
132 | // plugin->AddRunNumber(146817); | |
133 | // plugin->AddRunNumber(146807); | |
134 | // plugin->AddRunNumber(146806); | |
135 | // plugin->AddRunNumber(146805); | |
136 | // plugin->AddRunNumber(146804); | |
137 | // plugin->AddRunNumber(146803); | |
138 | // plugin->AddRunNumber(146802); | |
139 | // } | |
140 | ||
141 | } | |
142 | if(dataset==2010){//pp 7 TeV | |
143 | if(data){//data - 569 jobs | |
144 | cout<<"Running over 7 TeV data"<<endl; | |
145 | plugin->SetGridDataDir("/alice/data/2010/LHC10e");//PbPb data | |
146 | plugin->SetDataPattern("*ESDs/pass2/*ESDs.root"); | |
147 | cout<<"Setting run prefix to be 000"<<endl; | |
148 | plugin->SetRunPrefix("000"); // real data | |
149 | } | |
150 | else{//sim- 346 jobs | |
151 | plugin->SetGridDataDir("/alice/sim/LHC10e20"); | |
152 | plugin->SetDataPattern("*ESDs.root"); | |
153 | } | |
154 | plugin->AddRunNumber("130840"); | |
155 | plugin->AddRunNumber("130834"); | |
156 | plugin->AddRunNumber("130833"); | |
157 | plugin->AddRunNumber("130831"); | |
158 | plugin->AddRunNumber("130804"); | |
159 | plugin->AddRunNumber("130803"); | |
160 | plugin->AddRunNumber("130802"); | |
161 | plugin->AddRunNumber("130799"); | |
162 | plugin->AddRunNumber("130798"); | |
163 | plugin->AddRunNumber("130795"); | |
164 | } | |
165 | } | |
166 | ||
167 | ||
168 | if(dataset==20100){//PbPb 2.76 TeV | |
169 | if(data){ | |
170 | plugin->SetGridWorkingDir("etPbPbData"); | |
171 | } | |
172 | else{ | |
173 | if(material==0){plugin->SetGridWorkingDir("etPbPbSim");} | |
174 | if(material==-1) plugin->SetGridWorkingDir("etPbPbSimMatBudLow"); | |
175 | if(material==1) plugin->SetGridWorkingDir("etPbPbSimMatBudHigh"); | |
176 | if(material==10) plugin->SetGridWorkingDir("etPbPbSimDPMJET"); | |
177 | if(material==11) plugin->SetGridWorkingDir("etPbPbSimAMPT"); | |
178 | } | |
179 | } | |
180 | else{ | |
181 | if(dataset==2009){//pp 900 GeV | |
182 | if(data){ | |
183 | plugin->SetGridWorkingDir("etpp900GeVData"); | |
184 | } | |
185 | else{ | |
186 | if(material==0) plugin->SetGridWorkingDir("etpp900GeVSim"); | |
187 | if(material==-1) plugin->SetGridWorkingDir("etpp900GeVSimMatBudLow"); | |
188 | if(material==1) plugin->SetGridWorkingDir("etpp900GeVSimMatBudHigh"); | |
189 | } | |
190 | } | |
191 | if(dataset==20111){//pp 2.76 TeV | |
192 | if(data){ | |
193 | plugin->SetGridWorkingDir("etpp276TeVData"); | |
194 | } | |
195 | else{ | |
196 | if(altV0Scale) plugin->SetGridWorkingDir("etpp276TeVSimAlt"); | |
197 | else{plugin->SetGridWorkingDir("etpp276TeVSim");} | |
198 | } | |
199 | } | |
200 | if(dataset==2010){//pp 7 TeV | |
201 | if(data){ | |
202 | plugin->SetGridWorkingDir("etpp7TeVData"); | |
203 | } | |
204 | else{ | |
205 | plugin->SetGridWorkingDir("etpp7TeVSim"); | |
206 | } | |
207 | } | |
208 | } | |
209 | ||
210 | ||
211 | // Define alien work directory where all files will be copied. Relative to alien $HOME. | |
212 | //plugin->SetGridWorkingDir("et"); | |
213 | // Declare alien output directory. Relative to working directory. | |
214 | plugin->SetGridOutputDir("output"); // In this case will be $HOME/work/output | |
215 | // Declare the analysis source files names separated by blancs. To be compiled runtime IN THE SAME ORDER THEY ARE LISTED | |
216 | // using ACLiC on the worker nodes. | |
217 | //plugin->SetAnalysisSource("AliAnalysisTaskHadEt.cxx"); | |
218 | //plugin->SetAnalysisSource("AliAnalysisEt.cxx AliAnalysisEtMonteCarlo.cxx AliAnalysisEtMonteCarloPhos.cxx AliAnalysisEtReconstructed.cxx AliAnalysisEtReconstructedPhos.cxx AliAnalysisHadEt.cxx AliAnalysisHadEtMonteCarlo.cxx AliAnalysisHadEtReconstructed.cxx AliAnalysisTaskHadEt.cxx AliAnalysisTaskTotEt.cxx"); | |
219 | //TString sourcefiles = "AliAnalysisEtCuts.cxx AliAnalysisHadEtCorrections.cxx AliAnalysisEtCommon.cxx AliAnalysisHadEt.cxx AliAnalysisHadEtMonteCarlo.cxx AliAnalysisHadEtReconstructed.cxx AliAnalysisEtSelectionContainer.cxx AliAnalysisEtSelectionHandler.cxx AliAnalysisTaskTransverseEnergy.cxx AliAnalysisTaskHadEt.cxx"; | |
220 | //plugin->SetAnalysisSource(sourcefiles.Data()); | |
2eca0e87 | 221 | if(!runCompiledVersion){ |
222 | plugin->SetAnalysisSource("AliAnalysisEtCuts.cxx AliAnalysisHadEtCorrections.cxx AliAnalysisEtCommon.cxx AliAnalysisHadEt.cxx AliAnalysisHadEtMonteCarlo.cxx AliAnalysisHadEtReconstructed.cxx AliAnalysisEtSelectionContainer.cxx AliAnalysisEtSelectionHandler.cxx AliAnalysisTaskTransverseEnergy.cxx AliAnalysisTaskHadEt.cxx"); | |
223 | } | |
16dad6e3 | 224 | |
225 | //cout<<"Setting source files "<<sourcefiles<<endl; | |
226 | // Declare all libraries (other than the default ones for the framework. These will be | |
227 | // loaded by the generated analysis macro. Add all extra files (task .cxx/.h) here. | |
228 | //TString additionallibs = "AliAnalysisEtCuts.h AliAnalysisEtCuts.cxx AliAnalysisHadEtCorrections.h AliAnalysisHadEtCorrections.cxx AliAnalysisEtSelectionContainer.cxx AliAnalysisEtSelectionHandler.cxx AliAnalysisTaskTransverseEnergy.cxx AliAnalysisEtCommon.h AliAnalysisEtCommon.cxx AliAnalysisHadEt.cxx AliAnalysisHadEtMonteCarlo.cxx AliAnalysisHadEtReconstructed.cxx AliAnalysisTaskHadEt.cxx AliAnalysisHadEt.h AliAnalysisHadEtMonteCarlo.h AliAnalysisHadEtReconstructed.h AliAnalysisTaskHadEt.h AliAnalysisEtSelectionContainer.h AliAnalysisEtSelectionHandler.h AliAnalysisTaskTransverseEnergy.h corrections.root ConfigHadEtAnalysis.C ConfigHadEtMonteCarlo.C ConfigHadEtReconstructed.C physicsSelections.root"; | |
229 | //TString additionallibs = "AliAnalysisEtCuts.h AliAnalysisEtCuts.cxx AliAnalysisHadEtCorrections.h AliAnalysisHadEtCorrections.cxx AliAnalysisEtSelectionContainer.cxx AliAnalysisEtSelectionHandler.cxx AliAnalysisTaskTransverseEnergy.cxx AliAnalysisEtCommon.h AliAnalysisEtCommon.cxx AliAnalysisHadEt.cxx AliAnalysisHadEtMonteCarlo.cxx AliAnalysisHadEtReconstructed.cxx AliAnalysisTaskHadEt.cxx AliAnalysisHadEt.h AliAnalysisHadEtMonteCarlo.h AliAnalysisHadEtReconstructed.h AliAnalysisTaskHadEt.h AliAnalysisEtSelectionContainer.h AliAnalysisEtSelectionHandler.h AliAnalysisTaskTransverseEnergy.h physicsSelections.root ConfigHadEtMonteCarlo.C ConfigHadEtReconstructed.C corrections.root"; | |
230 | //plugin->SetAdditionalLibs(additionallibs.Data()); | |
2eca0e87 | 231 | if(!runCompiledVersion){ |
232 | plugin->SetAdditionalLibs( "AliAnalysisEtCuts.h AliAnalysisEtCuts.cxx AliAnalysisHadEtCorrections.h AliAnalysisHadEtCorrections.cxx AliAnalysisEtSelectionContainer.cxx AliAnalysisEtSelectionHandler.cxx AliAnalysisTaskTransverseEnergy.cxx AliAnalysisEtCommon.h AliAnalysisEtCommon.cxx AliAnalysisHadEt.cxx AliAnalysisHadEtMonteCarlo.cxx AliAnalysisHadEtReconstructed.cxx AliAnalysisTaskHadEt.cxx AliAnalysisHadEt.h AliAnalysisHadEtMonteCarlo.h AliAnalysisHadEtReconstructed.h AliAnalysisTaskHadEt.h AliAnalysisEtSelectionContainer.h AliAnalysisEtSelectionHandler.h AliAnalysisTaskTransverseEnergy.h physicsSelections.root ConfigHadEtMonteCarlo.C ConfigHadEtReconstructed.C corrections.root libPWGUDbase.so"); | |
233 | } | |
234 | else{ | |
235 | plugin->SetAdditionalLibs( "physicsSelections.root ConfigHadEtMonteCarlo.C ConfigHadEtReconstructed.C corrections.root libPWGUDbase.so libPWGLFtotEt.so"); | |
236 | } | |
16dad6e3 | 237 | // No need for output file names. Procedure is automatic. <-- not true |
238 | //plugin->SetDefaultOutputs(kFALSE); | |
239 | //plugin->SetOutputFiles("Et.ESD.new.sim.root"); | |
240 | // No need define the files to be archived. Note that this is handled automatically by the plugin. | |
241 | // plugin->SetOutputArchive("log_archive.zip:stdout,stderr"); | |
242 | // Set a name for the generated analysis macro (default MyAnalysis.C) Make this unique ! | |
243 | plugin->SetAnalysisMacro("ChristinesEtAnalysis.C"); | |
244 | // Optionally set maximum number of input files/subjob (default 100, put 0 to ignore). The optimum for an analysis | |
245 | // is correlated with the run time - count few hours TTL per job, not minutes ! | |
246 | plugin->SetSplitMaxInputFileNumber(100); | |
247 | // Optionally set number of failed jobs that will trigger killing waiting sub-jobs. | |
248 | //plugin->SetMaxInitFailed(5); | |
249 | // Optionally resubmit threshold. | |
250 | //plugin->SetMasterResubmitThreshold(90); | |
251 | // Optionally set time to live (default 30000 sec) | |
252 | plugin->SetTTL(20000); | |
253 | // Optionally set input format (default xml-single) | |
254 | plugin->SetInputFormat("xml-single"); | |
255 | // Optionally modify the name of the generated JDL (default analysis.jdl) | |
256 | plugin->SetJDLName("TaskEt.jdl"); | |
257 | // Optionally modify job price (default 1) | |
258 | plugin->SetPrice(1); | |
259 | // Optionally modify split mode (default 'se') | |
260 | plugin->SetSplitMode("se"); | |
261 | plugin->SetTerminateFiles("event_stat.root") ; | |
262 | plugin->SetKeepLogs(); | |
263 | return plugin; | |
264 | } |