]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/totEt/macros/CreateAlienHandlerHadEt.C
Updating macros for running ET code
[u/mrichter/AliRoot.git] / PWGLF / totEt / macros / CreateAlienHandlerHadEt.C
1 AliAnalysisGrid* CreateAlienHandlerHadEt(Int_t dataset, Bool_t data, Int_t test, Int_t material, Bool_t altV0Scale = kFALSE, bool runCompiledVersion = kFALSE, int simflag = 0)
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==1){
13     plugin->SetRunMode("test");  // VERY IMPORTANT - DECRIBED BELOW
14   }
15   else{
16     if(test==0){
17       plugin->SetRunMode("full");  // VERY IMPORTANT - DECRIBED BELOW
18     }
19     else{
20       plugin->SetRunMode("terminate");  // VERY IMPORTANT - DECRIBED BELOW
21     }
22   }
23   //needed for local testing?
24   //plugin->SetFileForTestMode("files.txt"); // file should contain path name to a local directory containg *ESDs.root etc
25   // Set versions of used packages 
26    plugin->SetAPIVersion("V1.1x");
27    plugin->SetROOTVersion("v5-34-08");
28    plugin->SetAliROOTVersion("v5-05-55-AN");
29   // Declare input data to be processed.
30
31    plugin->AddIncludePath("-I$ALICE_ROOT/PWGUD/base  -I$ALICE_ROOT/ANALYSIS -I$ALICE_ROOT/PWGPP -I$ALICE_ROOT/PWGPP/ITS");
32   // Method 1: Create automatically XML collections using alien 'find' command.
33   // Define production directory LFN
34   //   plugin->SetGridDataDir("/alice/sim/LHC10a18");
35   // Set data search pattern
36   //   plugin->SetDataPattern("*ESDs.root");  // simulated, tags not used
37   //   plugin->SetDataPattern("*ESDs/pass4/*ESDs.root"); // real data check reco pass and data base directory
38   //   plugin->SetRunPrefix("000");   // real data
39   //   plugin->SetDataPattern("*tag.root");  // Use ESD tags (same applies for AOD's)
40   // ...then add run numbers to be considered
41   //   plugin->AddRunNumber(125020);    // simulated
42   //   plugin->AddRunNumber(104065);  // real data
43
44   // Method 2: Declare existing data files (raw collections, xml collections, root file)
45   // If no path mentioned data is supposed to be in the work directory (see SetGridWorkingDir())
46   // XML collections added via this method can be combined with the first method if
47   // the content is compatible (using or not tags)
48   //plugin->AddDataFile("tag.xml");
49   //   plugin->AddDataFile("/alice/data/2008/LHC08c/000057657/raw/Run57657.Merged.RAW.tag.root");
50   if(dataset==20100){//PbPb 2.76 TeV
51     if(data){//185 jobs
52       cout<<"Running over data"<<endl;
53       plugin->SetGridDataDir("/alice/data/2010/LHC10h");//PbPb data
54       plugin->SetDataPattern("*ESDs/pass2/*ESDs.root");
55       plugin->SetRunPrefix("000");   // real data
56     }
57     else{
58       cout<<"Running over MC"<<endl;
59       if(material==0){
60           plugin->SetGridDataDir("/alice/sim/LHC11a10a_bis");
61         //plugin->SetGridDataDir("/alice/sim/LHC11a4_bis");//PbPb simulation
62       }
63       if(material==1){//7% more material
64         plugin->SetGridDataDir("/alice/sim/LHC10h9");//PbPb simulation
65       }
66       if(material==-1){//7% less material
67         plugin->SetGridDataDir("/alice/sim/LHC10h10");//PbPb simulation
68       }
69       if(material==10){//OK it's a cheat but this runs on DPM jet
70         plugin->SetGridDataDir("/alice/sim/LHC10h2");//PbPb simulation
71       }
72       if(material==11){//OK it's a cheat but this runs on AMPT
73         plugin->SetGridDataDir(" /alice/sim/LHC11a9a");//PbPb simulation
74       }
75       plugin->SetDataPattern("*ESDs.root");
76       //plugin->SetGridWorkingDir("etPbPbSim");
77     }
78     plugin->AddRunNumber(139465);
79 //     plugin->AddRunNumber(137366);
80 //     plugin->AddRunNumber(137161);
81   }
82   else{
83     if(dataset==2009){//pp 900 GeV
84       if(data){//only 233 jobs!
85         cout<<"Running over data"<<endl;
86         plugin->SetGridDataDir("/alice/data/2010/LHC10c");//PbPb data
87         //plugin->SetDataPattern("*ESDs/pass3/*ESDs.root");
88         plugin->SetDataPattern("*ESDs/pass3/*ESDs.root");
89         plugin->SetRunPrefix("000");   // real data
90       }
91       else{//sim over 1500 jobs, some get killed because it's above quota
92         cout<<"Running over MC"<<endl;
93         if(simflag==0){
94           if(material==0){
95             plugin->SetGridDataDir("/alice/sim/LHC11b1a");//PbPb simulation
96           }
97           if(material==1){//10% more material budget
98             plugin->SetGridDataDir("/alice/sim/LHC11b1b");//PbPb simulation
99           }
100           if(material==-1){//10% less material budget
101             plugin->SetGridDataDir("/alice/sim/LHC11b1c");//PbPb simulation
102           }
103         }
104         if(simflag==1)  plugin->SetGridDataDir("/alice/sim/2011/LHC11h1a");//PYTHIA
105         if(simflag==2)  plugin->SetGridDataDir("/alice/sim/2011/LHC11h1b");//PHOJET
106         if(simflag==3)  plugin->SetGridDataDir("/alice/sim/2011/LHC11h1c");//PYTHIA Flat
107         plugin->SetDataPattern("*ESDs.root");
108       }
109       plugin->AddRunNumber(118506);
110 //       plugin->AddRunNumber(121040);
111 //       plugin->AddRunNumber(121039);
112 //       plugin->AddRunNumber(118561);
113 //       plugin->AddRunNumber(118560);
114 //       plugin->AddRunNumber(118558);
115 //       plugin->AddRunNumber(118557);
116 //       plugin->AddRunNumber(118556);
117 //       plugin->AddRunNumber(118518);
118 //       plugin->AddRunNumber(118512);
119 //       plugin->AddRunNumber(118507);
120 //       plugin->AddRunNumber(118506);
121 //if(data){
122 //      plugin->AddRunNumber(118504);
123 //      plugin->AddRunNumber(118503);
124 //    }
125     }
126   
127     if(dataset==20111){//pp 2.76 TeV 
128       if(data){//257 jobs
129         cout<<"Running over data"<<endl;
130         plugin->SetGridDataDir("/alice/data/2011/LHC11a");//
131         plugin->SetDataPattern("*ESDs/pass4_with_SDD/*ESDs.root");
132         plugin->SetRunPrefix("000");   // real data
133       }
134       else{//sim - 332 jobs
135         cout<<"Running over MC"<<endl;
136         if(simflag==0)  plugin->SetGridDataDir("/alice/sim/LHC11b10a");//
137         if(simflag==1)  plugin->SetGridDataDir("/alice/sim/2011/LHC11h5a");//PYTHIA
138         if(simflag==2)  plugin->SetGridDataDir("/alice/sim/2011/LHC11h5b");//PHOJET
139         if(simflag==3)  plugin->SetGridDataDir("/alice/sim/2011/LHC11h5c");//PYTHIA Flat
140         plugin->SetDataPattern("*ESDs.root");
141       }
142 //       plugin->AddRunNumber(146860);
143 //       plugin->AddRunNumber(146859);
144 //       plugin->AddRunNumber(146856);
145 //       plugin->AddRunNumber(146824);
146 //       plugin->AddRunNumber(146817);
147 //       plugin->AddRunNumber(146806);
148 //       plugin->AddRunNumber(146805);
149 //       plugin->AddRunNumber(146804);
150 //       plugin->AddRunNumber(146803);
151 //       plugin->AddRunNumber(146802);
152 //       plugin->AddRunNumber(146801);
153 //       plugin->AddRunNumber(146748);
154 //       plugin->AddRunNumber(146747);
155 //       plugin->AddRunNumber(146746);
156
157   //     plugin->AddRunNumber(146860);
158 //       plugin->AddRunNumber(146859);
159 //       plugin->AddRunNumber(146858);
160 //       plugin->AddRunNumber(146857);
161 //       plugin->AddRunNumber(146856);
162       //        plugin->AddRunNumber(146824);
163       //        if(data){//these productions are not yet done for MC
164       //         plugin->AddRunNumber(146817);
165       //         plugin->AddRunNumber(146807);
166       //         plugin->AddRunNumber(146806);
167       //         plugin->AddRunNumber(146805);
168       //         plugin->AddRunNumber(146804);
169       //         plugin->AddRunNumber(146803);
170       //         plugin->AddRunNumber(146802);
171       //        }
172       plugin->AddRunNumber(146805);
173
174     }
175     if(dataset==2010){//pp 7 TeV
176       if(data){//data - 569 jobs
177         cout<<"Running over 7 TeV data"<<endl;
178         plugin->SetGridDataDir("/alice/data/2010/LHC10e");//PbPb data
179         plugin->SetDataPattern("*ESDs/pass2/*ESDs.root");
180         cout<<"Setting run prefix to be 000"<<endl;
181         plugin->SetRunPrefix("000");   // real data
182       }
183       else{//sim- 346 jobs
184         if(simflag==0)  plugin->SetGridDataDir("/alice/sim/LHC10e20");//
185         if(simflag==1)  plugin->SetGridDataDir("/alice/sim/2011/LHC11h4a");//PYTHIA
186         if(simflag==2)  plugin->SetGridDataDir("/alice/sim/2011/LHC11h4b");//PHOJET
187         if(simflag==3)  plugin->SetGridDataDir("/alice/sim/2011/LHC11h4c");//PYTHIA Flat
188         plugin->SetDataPattern("*ESDs.root");
189       }
190       plugin->AddRunNumber("130795");
191 //      plugin->AddRunNumber("130840");
192 //      plugin->AddRunNumber("130834");
193 //      plugin->AddRunNumber("130833");
194 //      plugin->AddRunNumber("130831");
195 //      plugin->AddRunNumber("130804");
196 //      plugin->AddRunNumber("130803");
197 //      plugin->AddRunNumber("130802");
198 //      plugin->AddRunNumber("130799");
199 //      plugin->AddRunNumber("130798");
200 //      plugin->AddRunNumber("130795");
201     }
202
203     if(dataset==2012){//pp 8 TeV
204       if(data){//data - 569 jobs
205         cout<<"Running over 8 TeV data"<<endl;
206         plugin->SetGridDataDir("/alice/data/2012/LHC12b");//PbPb data
207         plugin->SetDataPattern("*ESDs/pass1/*ESDs.root");
208         cout<<"Setting run prefix to be 000"<<endl;
209         plugin->SetRunPrefix("000");   // real data
210       }
211       else{//sim- 346 jobs
212         plugin->SetGridDataDir("/alice/sim/2012/LHC12c1b");//
213       }
214       //plugin->AddRunNumber("177799");
215       plugin->AddRunNumber("178030");
216     }
217     if(dataset==2013){//pPb 
218       if(data){//data - 569 jobs
219         cout<<"Running over pPb data"<<endl;
220         plugin->SetGridDataDir("/alice/data/2013/LHC13b");//PbPb data
221         plugin->SetDataPattern("*ESDs/pass3/*ESDs.root");
222         cout<<"Setting run prefix to be 000"<<endl;
223         plugin->SetRunPrefix("000");   // real data
224       }
225       else{//sim- 346 jobs
226         plugin->SetGridDataDir(" /alice/sim/2013/LHC13b3");//
227       }
228       plugin->AddRunNumber("195483");
229     }
230   }
231
232
233   if(dataset==20100){//PbPb 2.76 TeV
234     if(data){
235       plugin->SetGridWorkingDir("etPbPbData");
236     }
237     else{
238       if(material==0){plugin->SetGridWorkingDir("etPbPbSim");}
239       if(material==-1) plugin->SetGridWorkingDir("etPbPbSimMatBudLow");
240       if(material==1) plugin->SetGridWorkingDir("etPbPbSimMatBudHigh");
241       if(material==10)  plugin->SetGridWorkingDir("etPbPbSimDPMJET");
242        if(material==11)  plugin->SetGridWorkingDir("etPbPbSimAMPT");
243     }
244   }
245   else{
246     if(dataset==2009){//pp 900 GeV
247       if(data){
248         plugin->SetGridWorkingDir("etpp900GeVData");
249       }
250       else{
251         if(simflag==0){
252           if(material==0) plugin->SetGridWorkingDir("etpp900GeVSim");
253           if(material==-1) plugin->SetGridWorkingDir("etpp900GeVSimMatBudLow");
254           if(material==1) plugin->SetGridWorkingDir("etpp900GeVSimMatBudHigh");
255         }
256         if(simflag==1)  plugin->SetGridWorkingDir("etpp900GeVSimPYTHIA");//PYTHIA
257         if(simflag==2)  plugin->SetGridWorkingDir("etpp900GeVSimPHOJET");//PHOJET
258         if(simflag==3)  plugin->SetGridWorkingDir("etpp900GeVSimPYTHIAFLAT");//PYTHIA Flat
259       }
260     }
261     if(dataset==20111){//pp 2.76 TeV
262       if(data){
263         plugin->SetGridWorkingDir("etpp276TeVData");
264       }
265       else{
266         if(altV0Scale) plugin->SetGridWorkingDir("etpp276TeVSimAlt");
267         else{
268           // plugin->SetGridWorkingDir("etpp276TeVSim");
269           
270           if(simflag==0)        plugin->SetGridWorkingDir("etpp276TeVSim");//
271           if(simflag==1)        plugin->SetGridWorkingDir("etpp276TeVSimPYTHIA");//PYTHIA
272           if(simflag==2)        plugin->SetGridWorkingDir("etpp276TeVSimPHOJET");//PHOJET
273           if(simflag==3)        plugin->SetGridWorkingDir("etpp276TeVSimPYTHIAFLAT");//PYTHIA Flat
274         }
275       }
276     }
277     if(dataset==2010){//pp 7 TeV
278       if(data){
279         plugin->SetGridWorkingDir("etpp7TeVData");
280       }
281       else{
282         if(simflag==0)  plugin->SetGridWorkingDir("etpp7TeVSim");//
283         if(simflag==1)  plugin->SetGridWorkingDir("etpp7TeVSimPYTHIA");//PYTHIA
284         if(simflag==2)  plugin->SetGridWorkingDir("etpp7TeVSimPHOJET");//PHOJET
285         if(simflag==3)  plugin->SetGridWorkingDir("etpp7TeVSimPYTHIAFLAT");//PYTHIA Flat
286       }
287     }
288     if(dataset==2012){//pp 8 TeV
289       if(data){
290         plugin->SetGridWorkingDir("etpp8TeVData");
291       }
292       else{
293         plugin->SetGridWorkingDir("etpp8TeVSim");
294       }
295     }
296     if(dataset==2013){//pPb
297       if(data){
298         plugin->SetGridWorkingDir("etpPb5TeVData");
299       }
300       else{
301         plugin->SetGridWorkingDir("etpPb5TeVSim");
302       }
303     }
304   }
305
306
307   // Define alien work directory where all files will be copied. Relative to alien $HOME.
308   //plugin->SetGridWorkingDir("et");
309   // Declare alien output directory. Relative to working directory.
310   plugin->SetGridOutputDir("output"); // In this case will be $HOME/work/output
311   // Declare the analysis source files names separated by blancs. To be compiled runtime IN THE SAME ORDER THEY ARE LISTED
312   // using ACLiC on the worker nodes.
313   //plugin->SetAnalysisSource("AliAnalysisTaskHadEt.cxx");
314   //plugin->SetAnalysisSource("AliAnalysisEt.cxx AliAnalysisEtMonteCarlo.cxx AliAnalysisEtMonteCarloPhos.cxx AliAnalysisEtReconstructed.cxx AliAnalysisEtReconstructedPhos.cxx AliAnalysisHadEt.cxx AliAnalysisHadEtMonteCarlo.cxx AliAnalysisHadEtReconstructed.cxx AliAnalysisTaskHadEt.cxx AliAnalysisTaskTotEt.cxx");
315   //TString sourcefiles = "AliAnalysisEtCuts.cxx AliAnalysisHadEtCorrections.cxx AliAnalysisEtCommon.cxx AliAnalysisHadEt.cxx AliAnalysisHadEtMonteCarlo.cxx AliAnalysisHadEtReconstructed.cxx AliAnalysisEtSelectionContainer.cxx AliAnalysisEtSelectionHandler.cxx AliAnalysisTaskTransverseEnergy.cxx AliAnalysisTaskHadEt.cxx";
316   //plugin->SetAnalysisSource(sourcefiles.Data());
317   if(!runCompiledVersion){
318     plugin->SetAnalysisSource("AliAnalysisEtCuts.cxx AliAnalysisHadEtCorrections.cxx AliAnalysisEtCommon.cxx AliAnalysisHadEt.cxx AliAnalysisHadEtMonteCarlo.cxx AliAnalysisHadEtReconstructed.cxx AliAnalysisTaskTransverseEnergy.cxx AliAnalysisTaskHadEt.cxx");
319   }
320    
321   //cout<<"Setting source files "<<sourcefiles<<endl;
322   // Declare all libraries (other than the default ones for the framework. These will be
323   // loaded by the generated analysis macro. Add all extra files (task .cxx/.h) here.
324   //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";
325   //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";
326   //plugin->SetAdditionalLibs(additionallibs.Data());
327   if(!runCompiledVersion){//
328     plugin->SetAdditionalLibs( "libPWGUDbase.so AliAnalysisEtCuts.h AliAnalysisEtCuts.cxx AliAnalysisHadEtCorrections.h AliAnalysisHadEtCorrections.cxx AliAnalysisTaskTransverseEnergy.cxx AliAnalysisEtCommon.h AliAnalysisEtCommon.cxx AliAnalysisHadEt.cxx AliAnalysisHadEtMonteCarlo.cxx AliAnalysisHadEtReconstructed.cxx AliAnalysisTaskHadEt.cxx AliAnalysisHadEt.h AliAnalysisHadEtMonteCarlo.h AliAnalysisHadEtReconstructed.h AliAnalysisTaskHadEt.h AliAnalysisTaskTransverseEnergy.h ConfigHadEtMonteCarlo.C  ConfigHadEtReconstructed.C corrections.root");
329   }
330   else{
331     plugin->SetAdditionalLibs( "ConfigHadEtMonteCarlo.C  ConfigHadEtReconstructed.C corrections.root libPWGUDbase.so libPWGLFtotEt.so");
332   }
333   // No need for output file names. Procedure is automatic. <-- not true
334   //plugin->SetDefaultOutputs(kFALSE);
335   //plugin->SetOutputFiles("Et.ESD.new.sim.root");
336   // No need define the files to be archived. Note that this is handled automatically by the plugin.
337   //   plugin->SetOutputArchive("log_archive.zip:stdout,stderr");
338   // Set a name for the generated analysis macro (default MyAnalysis.C) Make this unique !
339   plugin->SetAnalysisMacro("ChristinesEtAnalysis.C");
340   // Optionally set maximum number of input files/subjob (default 100, put 0 to ignore). The optimum for an analysis
341   // is correlated with the run time - count few hours TTL per job, not minutes !
342   plugin->SetSplitMaxInputFileNumber(50);
343   if(dataset==2013){//pPb 
344     plugin->SetSplitMaxInputFileNumber(20);
345     }
346   // Optionally set number of failed jobs that will trigger killing waiting sub-jobs.
347   //plugin->SetMaxInitFailed(5);
348   // Optionally resubmit threshold.
349   //plugin->SetMasterResubmitThreshold(90);
350   // Optionally set time to live (default 30000 sec)
351   plugin->SetTTL(20000);
352   // Optionally set input format (default xml-single)
353   plugin->SetInputFormat("xml-single");
354   // Optionally modify the name of the generated JDL (default analysis.jdl)
355   plugin->SetJDLName("TaskEt.jdl");
356   // Optionally modify job price (default 1)
357   plugin->SetPrice(1); 
358   // Optionally modify split mode (default 'se')    
359   plugin->SetSplitMode("se");
360   plugin->SetTerminateFiles("event_stat.root") ;
361   plugin->SetKeepLogs();
362   plugin->SetMergeViaJDL();
363   return plugin;
364