ROOT logo
 
// "ESDs/pass2/AOD086/*/AliAOD.root"
// "/alice/data/2010/LHC10h"

class AliAnalysisAlien;

void runGridLambdaOverK0sJets(TString  runMode    = "full", 
			      TString  alirootVer = "vAN-20140708",
			      TString  rootVer    = "v5-34-08-6",
			      TString  dataPath   = /*"AOD124/* /AliAOD.root"*/"ESDs/pass2/AOD115/*/AliAOD.root",
			      TString  dataDir    = /*"/alice/sim/2012/LHC12a17d_fix"*/"/alice/data/2011/LHC11h_2",		      
			      TString  workDir    = "test",
			      TString  name       = "LambdaOverK0sRatio", 
			      TString  data       = "PbPb2011",
			      Float_t  minCen     = 0.,
			      Float_t  maxCen     = 40.,
			      Bool_t   sepInjec   = kFALSE,
			      Bool_t   isMC       = kFALSE,
			      Bool_t   usePID     = kFALSE,
			      Bool_t   doQA       = kTRUE,
			      Bool_t   useEtaCut  = kFALSE,
			      Int_t    run        = 169838/*137530*//*138624*/){


  
  Printf("   \nThe parameters of the programm are : \n ");
  Printf(" \t Analysis mode:\t %s\n \t Centrality:\t %.1lf - %.1lf\n \t Use MC Data?:\t %s\n \t Use PID?:\t %s\n",
	 "Grid",minCen,maxCen,
	 (isMC) ? "Yes" : "No",
	 (usePID) ? "Yes" : "No");
  
  // _____________________________________________________ //
  
  InitAndLoadLibs();
  
  AliAnalysisManager *mgr = new AliAnalysisManager("Manager");
  
  AliAnalysisGrid *alienHandler = CreateAlienHandler(runMode,alirootVer,rootVer,dataPath,dataDir,workDir,isMC,run);  
  if (!alienHandler) return;
  mgr->SetGridHandler(alienHandler);
    
  AliAODInputHandler* aodH = new AliAODInputHandler;
  mgr->SetInputEventHandler(aodH);
  
  //PID
  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
  AliAnalysisTask *pidTask = AddTaskPIDResponse(isMC);
  //AliAnalysisTask *pidTask = AddTaskPIDResponse(isMC,kTRUE);
  if(!pidTask) { printf("no PIDtask\n"); return; }
 
  //Float_t checkIDTrig= kTRUE;

  // My task
  gROOT->LoadMacro("AliAnalysisTaskLambdaOverK0sJets.cxx++g"); 
  //gSystem->Load("libPWGLFSTRANGENESS");
  gROOT->LoadMacro("AddTaskLambdaOverK0sJets.C");
  AliAnalysisTaskLambdaOverK0sJets *task = AddTaskLambdaOverK0sJets(name,data,minCen,maxCen,sepInjec,isMC,doQA,useEtaCut);
   // _____________________________________________________ //
 
   if (!mgr->InitAnalysis()) return;
   mgr->PrintStatus();
   
   mgr->StartAnalysis("grid");
}

// ______________________________________________________________

void InitAndLoadLibs() {
  
    gSystem->Load("libCore.so"); 
    gSystem->Load("libTree.so");                 
    gSystem->Load("libGeom.so");
    gSystem->Load("libVMC.so");
    gSystem->Load("libPhysics");
    gSystem->Load("libMinuit.so");  
    gSystem->Load("libProof.so");
    gSystem->Load("libGui.so");
    gSystem->Load("libXMLParser.so");
    gSystem->Load("libProofPlayer.so");
    gSystem->Load("libXMLIO.so");

    gSystem->Load("libSTEERBase.so");
    gSystem->Load("libESD.so");
    gSystem->Load("libAOD.so");
    gSystem->Load("libCDB.so");
    gSystem->Load("libANALYSIS.so");
    gSystem->Load("libANALYSISalice.so");
    gSystem->Load("libCORRFW.so");
    gSystem->Load("libJETAN.so");
    gSystem->Load("libRAWDatabase.so");
    gSystem->Load("libSTEER.so");
    gSystem->Load("libCORRFW.so");

   
    gSystem->AddIncludePath("-I$ALICE_ROOT/include");
}

// ___________________________________________________________________ //

// **** It is change 'AliAnalysisGrid' by 'AliAnalysisAlien'
AliAnalysisAlien* CreateAlienHandler(TString runMode,TString alirootVer,
				     TString rootVer,TString dataPath,
				     TString dataDir,TString workDir,
				     Bool_t isMC,Int_t kRun) {
  
  AliAnalysisAlien *plugin = new AliAnalysisAlien();
  plugin->SetCheckCopy(kFALSE);

  plugin->SetRunMode(runMode);
  // Set versions of used packages
  plugin->SetAPIVersion("V1.1x");
  plugin->SetROOTVersion(rootVer);
  plugin->SetAliROOTVersion(alirootVer);
  
  /////////////////////////////////////////////////////////////////

  // Declare input data to be processed.
  // Method 1: Create automatically XML collections using alien 'find' command.
  plugin->SetGridDataDir(dataDir);
  
  if (!isMC) 
    plugin->SetRunPrefix("000");
  plugin->SetDataPattern(dataPath);
    
  plugin->AddRunNumber(kRun);

  // Method 2: Declare existing data files (raw collections, xml collections, root file)
  const char working_dir[250];

  sprintf(working_dir, "%s/%d",workDir.Data(),kRun);
  TString path = TString(working_dir);
  plugin->SetGridWorkingDir(path);

  //plugin->SetGridWorkingDir(workDir);
  // 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
  plugin->SetAnalysisSource("AliAnalysisTaskLambdaOverK0sJets.cxx");
  //plugin->SetAdditionalLibs("AliAnalysisTaskMultiplicity.h AliAnalysisTaskMultiplicity.cxx");
  plugin->SetAdditionalLibs("AliAnalysisTaskLambdaOverK0sJets.cxx AliAnalysisTaskLambdaOverK0sJets.h");
  // Optionally set a name for the generated analysis macro (default MyAnalysis.C)
  plugin->SetAnalysisMacro("AnalysisProduction.C");
  //plugin->SetAnalysisMacro("mytask.C");
  // Optionally set maximum number of input files/subjob (default 100, put 0 to ignore)
  plugin->SetSplitMaxInputFileNumber(20);
  // Optionally set number of failed jobs that will trigger killing waiting sub-jobs.
  plugin->SetMaxInitFailed(12);
  // Optionally resubmit threshold.
  plugin->SetMasterResubmitThreshold(90);
  // Optionally set time to live (default 30000 sec)
  plugin->SetTTL(30000);
  // Optionally set input format (default xml-single)
  plugin->SetInputFormat("xml-single");
  // Optionally modify the name of the generated JDL (default analysis.jdl)
  plugin->SetJDLName("TaskProduction.jdl");
  //plugin->SetJDLName("mytask.jdl");
  plugin->SetMergeViaJDL(kTRUE);
  // Optionally modify job price (default 1)
  plugin->SetPrice(1);      
  // Optionally modify split mode (default 'se')    
  plugin->SetSplitMode("se");
  return plugin;

}
 runGridLambdaOverK0sJets.C:1
 runGridLambdaOverK0sJets.C:2
 runGridLambdaOverK0sJets.C:3
 runGridLambdaOverK0sJets.C:4
 runGridLambdaOverK0sJets.C:5
 runGridLambdaOverK0sJets.C:6
 runGridLambdaOverK0sJets.C:7
 runGridLambdaOverK0sJets.C:8
 runGridLambdaOverK0sJets.C:9
 runGridLambdaOverK0sJets.C:10
 runGridLambdaOverK0sJets.C:11
 runGridLambdaOverK0sJets.C:12
 runGridLambdaOverK0sJets.C:13
 runGridLambdaOverK0sJets.C:14
 runGridLambdaOverK0sJets.C:15
 runGridLambdaOverK0sJets.C:16
 runGridLambdaOverK0sJets.C:17
 runGridLambdaOverK0sJets.C:18
 runGridLambdaOverK0sJets.C:19
 runGridLambdaOverK0sJets.C:20
 runGridLambdaOverK0sJets.C:21
 runGridLambdaOverK0sJets.C:22
 runGridLambdaOverK0sJets.C:23
 runGridLambdaOverK0sJets.C:24
 runGridLambdaOverK0sJets.C:25
 runGridLambdaOverK0sJets.C:26
 runGridLambdaOverK0sJets.C:27
 runGridLambdaOverK0sJets.C:28
 runGridLambdaOverK0sJets.C:29
 runGridLambdaOverK0sJets.C:30
 runGridLambdaOverK0sJets.C:31
 runGridLambdaOverK0sJets.C:32
 runGridLambdaOverK0sJets.C:33
 runGridLambdaOverK0sJets.C:34
 runGridLambdaOverK0sJets.C:35
 runGridLambdaOverK0sJets.C:36
 runGridLambdaOverK0sJets.C:37
 runGridLambdaOverK0sJets.C:38
 runGridLambdaOverK0sJets.C:39
 runGridLambdaOverK0sJets.C:40
 runGridLambdaOverK0sJets.C:41
 runGridLambdaOverK0sJets.C:42
 runGridLambdaOverK0sJets.C:43
 runGridLambdaOverK0sJets.C:44
 runGridLambdaOverK0sJets.C:45
 runGridLambdaOverK0sJets.C:46
 runGridLambdaOverK0sJets.C:47
 runGridLambdaOverK0sJets.C:48
 runGridLambdaOverK0sJets.C:49
 runGridLambdaOverK0sJets.C:50
 runGridLambdaOverK0sJets.C:51
 runGridLambdaOverK0sJets.C:52
 runGridLambdaOverK0sJets.C:53
 runGridLambdaOverK0sJets.C:54
 runGridLambdaOverK0sJets.C:55
 runGridLambdaOverK0sJets.C:56
 runGridLambdaOverK0sJets.C:57
 runGridLambdaOverK0sJets.C:58
 runGridLambdaOverK0sJets.C:59
 runGridLambdaOverK0sJets.C:60
 runGridLambdaOverK0sJets.C:61
 runGridLambdaOverK0sJets.C:62
 runGridLambdaOverK0sJets.C:63
 runGridLambdaOverK0sJets.C:64
 runGridLambdaOverK0sJets.C:65
 runGridLambdaOverK0sJets.C:66
 runGridLambdaOverK0sJets.C:67
 runGridLambdaOverK0sJets.C:68
 runGridLambdaOverK0sJets.C:69
 runGridLambdaOverK0sJets.C:70
 runGridLambdaOverK0sJets.C:71
 runGridLambdaOverK0sJets.C:72
 runGridLambdaOverK0sJets.C:73
 runGridLambdaOverK0sJets.C:74
 runGridLambdaOverK0sJets.C:75
 runGridLambdaOverK0sJets.C:76
 runGridLambdaOverK0sJets.C:77
 runGridLambdaOverK0sJets.C:78
 runGridLambdaOverK0sJets.C:79
 runGridLambdaOverK0sJets.C:80
 runGridLambdaOverK0sJets.C:81
 runGridLambdaOverK0sJets.C:82
 runGridLambdaOverK0sJets.C:83
 runGridLambdaOverK0sJets.C:84
 runGridLambdaOverK0sJets.C:85
 runGridLambdaOverK0sJets.C:86
 runGridLambdaOverK0sJets.C:87
 runGridLambdaOverK0sJets.C:88
 runGridLambdaOverK0sJets.C:89
 runGridLambdaOverK0sJets.C:90
 runGridLambdaOverK0sJets.C:91
 runGridLambdaOverK0sJets.C:92
 runGridLambdaOverK0sJets.C:93
 runGridLambdaOverK0sJets.C:94
 runGridLambdaOverK0sJets.C:95
 runGridLambdaOverK0sJets.C:96
 runGridLambdaOverK0sJets.C:97
 runGridLambdaOverK0sJets.C:98
 runGridLambdaOverK0sJets.C:99
 runGridLambdaOverK0sJets.C:100
 runGridLambdaOverK0sJets.C:101
 runGridLambdaOverK0sJets.C:102
 runGridLambdaOverK0sJets.C:103
 runGridLambdaOverK0sJets.C:104
 runGridLambdaOverK0sJets.C:105
 runGridLambdaOverK0sJets.C:106
 runGridLambdaOverK0sJets.C:107
 runGridLambdaOverK0sJets.C:108
 runGridLambdaOverK0sJets.C:109
 runGridLambdaOverK0sJets.C:110
 runGridLambdaOverK0sJets.C:111
 runGridLambdaOverK0sJets.C:112
 runGridLambdaOverK0sJets.C:113
 runGridLambdaOverK0sJets.C:114
 runGridLambdaOverK0sJets.C:115
 runGridLambdaOverK0sJets.C:116
 runGridLambdaOverK0sJets.C:117
 runGridLambdaOverK0sJets.C:118
 runGridLambdaOverK0sJets.C:119
 runGridLambdaOverK0sJets.C:120
 runGridLambdaOverK0sJets.C:121
 runGridLambdaOverK0sJets.C:122
 runGridLambdaOverK0sJets.C:123
 runGridLambdaOverK0sJets.C:124
 runGridLambdaOverK0sJets.C:125
 runGridLambdaOverK0sJets.C:126
 runGridLambdaOverK0sJets.C:127
 runGridLambdaOverK0sJets.C:128
 runGridLambdaOverK0sJets.C:129
 runGridLambdaOverK0sJets.C:130
 runGridLambdaOverK0sJets.C:131
 runGridLambdaOverK0sJets.C:132
 runGridLambdaOverK0sJets.C:133
 runGridLambdaOverK0sJets.C:134
 runGridLambdaOverK0sJets.C:135
 runGridLambdaOverK0sJets.C:136
 runGridLambdaOverK0sJets.C:137
 runGridLambdaOverK0sJets.C:138
 runGridLambdaOverK0sJets.C:139
 runGridLambdaOverK0sJets.C:140
 runGridLambdaOverK0sJets.C:141
 runGridLambdaOverK0sJets.C:142
 runGridLambdaOverK0sJets.C:143
 runGridLambdaOverK0sJets.C:144
 runGridLambdaOverK0sJets.C:145
 runGridLambdaOverK0sJets.C:146
 runGridLambdaOverK0sJets.C:147
 runGridLambdaOverK0sJets.C:148
 runGridLambdaOverK0sJets.C:149
 runGridLambdaOverK0sJets.C:150
 runGridLambdaOverK0sJets.C:151
 runGridLambdaOverK0sJets.C:152
 runGridLambdaOverK0sJets.C:153
 runGridLambdaOverK0sJets.C:154
 runGridLambdaOverK0sJets.C:155
 runGridLambdaOverK0sJets.C:156
 runGridLambdaOverK0sJets.C:157
 runGridLambdaOverK0sJets.C:158
 runGridLambdaOverK0sJets.C:159
 runGridLambdaOverK0sJets.C:160
 runGridLambdaOverK0sJets.C:161
 runGridLambdaOverK0sJets.C:162
 runGridLambdaOverK0sJets.C:163
 runGridLambdaOverK0sJets.C:164
 runGridLambdaOverK0sJets.C:165