ROOT logo
AliAnalysisGrid* CreateAnalysisPlugin(TString analysisMode="full") 
{ 
  AliAnalysisAlien *plugin = new AliAnalysisAlien();

  // Overwrite all generated files, datasets and output results from a previous session
  plugin->SetOverwriteMode();
  // Set the run mode (can be "full", "test", "offline", "submit" or "terminate") 

  plugin->SetRunMode(TString (analysisMode.Data()));

  // Set versions of used packages 
  plugin->SetAPIVersion("V1.1x"); 
  plugin->SetROOTVersion("v5-28-00f");
  plugin->SetAliROOTVersion("v4-21-33-AN"); 
  // Declare input data to be processed. 

  // Method 1: Create automatically XML collections using alien 'find' command. 
  // Define production directory LFN 
  //    plugin->SetGridDataDir("/alice/sim/LHC10a6"); 
  //*   plugin->SetGridDataDir("/alice/data/2010/LHC10b"); 
  // Set data search pattern 
  //   plugin->SetDataPattern("*ESDs.root");  // simulated, tags not used
  //*  plugin->SetDataPattern("*ESDs/pass2/*ESDs.root"); // real data check reco pass and data base directory
  //*  plugin->SetRunPrefix("000");   // real data
  //    plugin->SetDataPattern("*tag.root");  // Use ESD tags (same applies for AOD's)
  // ...then add run numbers to be considered 
  //    plugin->AddRunNumber(125020);    // simulated
							
  //for ESDs
  plugin->SetGridDataDir("/alice/data/2011/LHC11a"); 
  plugin->SetDataPattern("*ESDs/pass1/*ESDs.root");
  plugin->SetRunPrefix("000");

  //ESDs sim
  // plugin->SetGridDataDir("/alice/sim/LHC10f9b");
  //plugin->SetDataPattern("*ESDs.root"); 

  //for AODs
  // plugin->SetGridDataDir("/alice/data/2010/LHC10c"); 
  // plugin->SetRunPrefix("000");   // real data
  //plugin->SetDataPattern("*ESDs/pass2_recovery_900GeV/AOD017/*AOD.root"); 
  
  //sim AODs
  // plugin->SetGridDataDir("/alice/sim/LHC10d4a"); 
  //plugin->SetDataPattern("*AOD012/*AOD.root");
  
  //  TString runs ="120824:120823:120822:120821:120820:120758:120750:120741:120671:120617:120616:120505:120504:120503:120244:120079:120076:120073:120072:120069:120067:119862:119859:119856:119853:119849:119846:119845:119844:119842:119841:119163:119161:119159:119086:119085:119084:119079:119077:119067:119061:119047:119041:119037"; // dont forget last two runs
  
  //TString runs ="120829:120825";
  // TString runs="118506:118507:118512:118518:118556:118558:118560:118561";
  TString runs ="146801";

  TObjArray* array = runs.Tokenize ( ":" );
  TObjString *str;
  TString strr,strr2_1,strr2_2;
  for ( Int_t i = 0;i < array->GetEntriesFast();i++ ) {
    str = ( TObjString * ) array->At ( i );
    strr = str->GetString();
    if ( !strr.IsNull() ) {
      plugin->AddRunNumber(strr.Atoi());
    }
  }  
	 
  // Method 2: Declare existing data files (raw collections, xml collections, root file) 
  // If no path mentioned data is supposed to be in the work directory (see SetGridWorkingDir()) 
  // XML collections added via this method can be combined with the first method if 
  // the content is compatible (using or not tags) 
  //   plugin->AddDataFile("tag.xml"); 
  //   plugin->AddDataFile("/alice/data/2008/LHC08c/000057657/raw/Run57657.Merged.RAW.tag.root"); 

  // Define alien work directory where all files will be copied. Relative to alien $HOME. 
  plugin->SetGridWorkingDir("146801"); 
  // Declare alien output directory. Relative to working directory. 
  plugin->SetGridOutputDir("output"); // In this case will be $HOME/work/output 
  // Declare the analysis source files names separated by blancs. To be compiled runtime 
  // using ACLiC on the worker nodes. 
  plugin->SetAnalysisSource("AliAnalysisTaskEfficiency.cxx"); 
  //    plugin->SetAdditionalRootLibs("CORRFW PWG2resonances");
  //    plugin->SetAdditionalRootLibs("PWG2resonances");
  //    plugin->SetAdditionalRootLibs("PWG2resonances");
  // 
  plugin->SetAdditionalLibs("AliAnalysisTaskEfficiency.h AliAnalysisTaskEfficiency.cxx");
  //    plugin->EnablePackage("PWG2resonances");
  //    plugin->EnablePackage("");
  //    plugin->EnablePackage("");
  // Declare all libraries (other than the default ones for the framework. These will be 
  // loaded by the generated analysis macro. Add all extra files (task .cxx/.h) here. 

  // No need for output file names. Procedure is automatic. 
  //   plugin->SetOutputFiles("Pt.ESD.1.root"); 
  //   plugin->SetDefaultOutputs(); 
  // No need define the files to be archived. Note that this is handled automatically by the plugin.
  //   plugin->SetOutputArchive("log_archive.zip:stdout,stderr"); 
  // Set a name for the generated analysis macro (default MyAnalysis.C) Make this unique !
  plugin->SetAnalysisMacro("AnalysisTest.C"); 
  // Optionally set maximum number of input files/subjob (default 100, put 0 to ignore). The optimum for an analysis
  // is correlated with the run time - count few hours TTL per job, not minutes !
  plugin->SetSplitMaxInputFileNumber(100); 
  // Optionally set number of failed jobs that will trigger killing waiting sub-jobs. 
  plugin->SetMaxInitFailed(5); 
  // Optionally resubmit threshold. 
  plugin->SetMasterResubmitThreshold(90); 
  // Optionally set time to live (default 30000 sec) 
  plugin->SetTTL(20000); 
  // Optionally set input format (default xml-single) 
  plugin->SetInputFormat("xml-single"); 
  // Optionally modify the name of the generated JDL (default analysis.jdl) 
  plugin->SetJDLName("TaskRsn.jdl"); 
  // Optionally modify job price (default 1) 
  plugin->SetPrice(1);  
  // Optionally modify split mode (default 'se')     
  plugin->SetSplitMode("se"); 
   
   
  //++++++++++++++++ PROOF ++++++++++++++++
  //    Proof cluster
   
  plugin->SetProofCluster("alice-caf");
  //plugin->SetProofCluster("skaf.saske.sk");
  //   plugin->SetProofCluster("skaf-test.saske.sk");
  // Dataset to be used
  //     plugin->SetProofDataSet("/alice/sim/LHC10a12_104316#esdTree");
  //       plugin->SetProofDataSet("/alice/sim/LHC10a12_104157#esdTree");
  //     plugin->SetProofDataSet("ds.txt");
  plugin->SetProofDataSet("g4g.txt");
  // May need to reset proof. Supported modes: 0-no reset, 1-soft, 2-hard
  plugin->SetProofReset(0);
  // May limit the number of workers per slave. If used with SetNproofWorkers, SetParallel(nproofworkers) will be called after connection
  //plugin->SetNproofWorkersPerSlave(1);
  // May request connection to alien upon connection to grid
  //     plugin->SetProofConnectGrid(kTRUE);
    
  // plugin->SetNproofWorkers(51);
  // May use a specific version of root installed in proof
  //     plugin->SetRootVersionForProof("current");
  // May set the aliroot mode. Check http://aaf.cern.ch/node/83
  plugin->SetAliRootMode("default"); // Loads AF libs by default
  // May request ClearPackages (individual ClearPackage not supported)
  plugin->SetClearPackages(kFALSE);
  // Plugin test mode works only providing a file containing test file locations
  //    plugin->SetFileForTestMode("AOD.txt");
  plugin->SetFileForTestMode("test.txt");
  //++++++++++++++ end PROOF ++++++++++++++++
  return plugin; 
} 
 CreateAnalysisPlugin.C:1
 CreateAnalysisPlugin.C:2
 CreateAnalysisPlugin.C:3
 CreateAnalysisPlugin.C:4
 CreateAnalysisPlugin.C:5
 CreateAnalysisPlugin.C:6
 CreateAnalysisPlugin.C:7
 CreateAnalysisPlugin.C:8
 CreateAnalysisPlugin.C:9
 CreateAnalysisPlugin.C:10
 CreateAnalysisPlugin.C:11
 CreateAnalysisPlugin.C:12
 CreateAnalysisPlugin.C:13
 CreateAnalysisPlugin.C:14
 CreateAnalysisPlugin.C:15
 CreateAnalysisPlugin.C:16
 CreateAnalysisPlugin.C:17
 CreateAnalysisPlugin.C:18
 CreateAnalysisPlugin.C:19
 CreateAnalysisPlugin.C:20
 CreateAnalysisPlugin.C:21
 CreateAnalysisPlugin.C:22
 CreateAnalysisPlugin.C:23
 CreateAnalysisPlugin.C:24
 CreateAnalysisPlugin.C:25
 CreateAnalysisPlugin.C:26
 CreateAnalysisPlugin.C:27
 CreateAnalysisPlugin.C:28
 CreateAnalysisPlugin.C:29
 CreateAnalysisPlugin.C:30
 CreateAnalysisPlugin.C:31
 CreateAnalysisPlugin.C:32
 CreateAnalysisPlugin.C:33
 CreateAnalysisPlugin.C:34
 CreateAnalysisPlugin.C:35
 CreateAnalysisPlugin.C:36
 CreateAnalysisPlugin.C:37
 CreateAnalysisPlugin.C:38
 CreateAnalysisPlugin.C:39
 CreateAnalysisPlugin.C:40
 CreateAnalysisPlugin.C:41
 CreateAnalysisPlugin.C:42
 CreateAnalysisPlugin.C:43
 CreateAnalysisPlugin.C:44
 CreateAnalysisPlugin.C:45
 CreateAnalysisPlugin.C:46
 CreateAnalysisPlugin.C:47
 CreateAnalysisPlugin.C:48
 CreateAnalysisPlugin.C:49
 CreateAnalysisPlugin.C:50
 CreateAnalysisPlugin.C:51
 CreateAnalysisPlugin.C:52
 CreateAnalysisPlugin.C:53
 CreateAnalysisPlugin.C:54
 CreateAnalysisPlugin.C:55
 CreateAnalysisPlugin.C:56
 CreateAnalysisPlugin.C:57
 CreateAnalysisPlugin.C:58
 CreateAnalysisPlugin.C:59
 CreateAnalysisPlugin.C:60
 CreateAnalysisPlugin.C:61
 CreateAnalysisPlugin.C:62
 CreateAnalysisPlugin.C:63
 CreateAnalysisPlugin.C:64
 CreateAnalysisPlugin.C:65
 CreateAnalysisPlugin.C:66
 CreateAnalysisPlugin.C:67
 CreateAnalysisPlugin.C:68
 CreateAnalysisPlugin.C:69
 CreateAnalysisPlugin.C:70
 CreateAnalysisPlugin.C:71
 CreateAnalysisPlugin.C:72
 CreateAnalysisPlugin.C:73
 CreateAnalysisPlugin.C:74
 CreateAnalysisPlugin.C:75
 CreateAnalysisPlugin.C:76
 CreateAnalysisPlugin.C:77
 CreateAnalysisPlugin.C:78
 CreateAnalysisPlugin.C:79
 CreateAnalysisPlugin.C:80
 CreateAnalysisPlugin.C:81
 CreateAnalysisPlugin.C:82
 CreateAnalysisPlugin.C:83
 CreateAnalysisPlugin.C:84
 CreateAnalysisPlugin.C:85
 CreateAnalysisPlugin.C:86
 CreateAnalysisPlugin.C:87
 CreateAnalysisPlugin.C:88
 CreateAnalysisPlugin.C:89
 CreateAnalysisPlugin.C:90
 CreateAnalysisPlugin.C:91
 CreateAnalysisPlugin.C:92
 CreateAnalysisPlugin.C:93
 CreateAnalysisPlugin.C:94
 CreateAnalysisPlugin.C:95
 CreateAnalysisPlugin.C:96
 CreateAnalysisPlugin.C:97
 CreateAnalysisPlugin.C:98
 CreateAnalysisPlugin.C:99
 CreateAnalysisPlugin.C:100
 CreateAnalysisPlugin.C:101
 CreateAnalysisPlugin.C:102
 CreateAnalysisPlugin.C:103
 CreateAnalysisPlugin.C:104
 CreateAnalysisPlugin.C:105
 CreateAnalysisPlugin.C:106
 CreateAnalysisPlugin.C:107
 CreateAnalysisPlugin.C:108
 CreateAnalysisPlugin.C:109
 CreateAnalysisPlugin.C:110
 CreateAnalysisPlugin.C:111
 CreateAnalysisPlugin.C:112
 CreateAnalysisPlugin.C:113
 CreateAnalysisPlugin.C:114
 CreateAnalysisPlugin.C:115
 CreateAnalysisPlugin.C:116
 CreateAnalysisPlugin.C:117
 CreateAnalysisPlugin.C:118
 CreateAnalysisPlugin.C:119
 CreateAnalysisPlugin.C:120
 CreateAnalysisPlugin.C:121
 CreateAnalysisPlugin.C:122
 CreateAnalysisPlugin.C:123
 CreateAnalysisPlugin.C:124
 CreateAnalysisPlugin.C:125
 CreateAnalysisPlugin.C:126
 CreateAnalysisPlugin.C:127
 CreateAnalysisPlugin.C:128
 CreateAnalysisPlugin.C:129
 CreateAnalysisPlugin.C:130
 CreateAnalysisPlugin.C:131
 CreateAnalysisPlugin.C:132
 CreateAnalysisPlugin.C:133
 CreateAnalysisPlugin.C:134
 CreateAnalysisPlugin.C:135
 CreateAnalysisPlugin.C:136
 CreateAnalysisPlugin.C:137
 CreateAnalysisPlugin.C:138
 CreateAnalysisPlugin.C:139
 CreateAnalysisPlugin.C:140
 CreateAnalysisPlugin.C:141
 CreateAnalysisPlugin.C:142
 CreateAnalysisPlugin.C:143
 CreateAnalysisPlugin.C:144
 CreateAnalysisPlugin.C:145
 CreateAnalysisPlugin.C:146