]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/totEt/macros/CreateAlienHandlerHadEt.C
remaining coverity fixes
[u/mrichter/AliRoot.git] / PWGLF / totEt / macros / CreateAlienHandlerHadEt.C
1 AliAnalysisGrid* CreateAlienHandlerHadEt(Int_t dataset, Bool_t data, Bool_t test, Int_t material, Bool_t altV0Scale = kFALSE, bool runCompiledVersion = kFALSE)
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   }
18   //needed for local testing?
19   //plugin->SetFileForTestMode("files.txt"); // file should contain path name to a local directory containg *ESDs.root etc
20   // Set versions of used packages 
21    plugin->SetAPIVersion("V1.1x");
22    plugin->SetROOTVersion("v5-33-02a");
23    plugin->SetAliROOTVersion("v5-03-15-AN");
24   // Declare input data to be processed.
25
26    plugin->AddIncludePath("-I$ALICE_ROOT/PWGUD/base");
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/pass2/*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");//
117         plugin->SetDataPattern("*ESDs/pass3_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");//
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());
221   if(!runCompiledVersion){
222     plugin->SetAnalysisSource("AliAnalysisEtCuts.cxx AliAnalysisHadEtCorrections.cxx AliAnalysisEtCommon.cxx AliAnalysisHadEt.cxx AliAnalysisHadEtMonteCarlo.cxx AliAnalysisHadEtReconstructed.cxx AliAnalysisTaskTransverseEnergy.cxx AliAnalysisTaskHadEt.cxx");
223   }
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());
231   if(!runCompiledVersion){
232     plugin->SetAdditionalLibs( "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 libPWGUDbase.so");
233   }
234   else{
235     plugin->SetAdditionalLibs( "ConfigHadEtMonteCarlo.C  ConfigHadEtReconstructed.C corrections.root libPWGUDbase.so libPWGLFtotEt.so");
236   }
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