ROOT logo
Bool_t RunAnalysisTaskMuonHadronCorrelations(Int_t runNumber = 188362, const char * runMode="full", TString centMethod="V0M") {
  
  TString rootVersion = "v5-34-02-1";
  TString alirootVersion = "v5-04-22-AN";
  gSystem->AddIncludePath("-I$ALICE_ROOT/include ");
  
  gSystem->Load("libTree.so")          ;
  gSystem->Load("libGeom.so")          ;
  gSystem->Load("libVMC.so")           ;
  gSystem->Load("libMinuit.so")        ;
  gSystem->Load("libPhysics.so")       ;
  gSystem->Load("libSTEERBase.so")     ;
  gSystem->Load("libESD.so")           ;
  gSystem->Load("libAOD.so")           ;
  gSystem->Load("libANALYSIS.so")      ;
  gSystem->Load("libOADB.so")          ;
  gSystem->Load("libANALYSISalice.so") ;
  gSystem->Load("libCORRFW.so")        ;
  gSystem->Load("libPWGmuon.so")       ;
  
  // -------------------------------
  // ANALYSIS MANAGER
  // -------------------------------

  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (mgr) delete mgr;
  mgr = new AliAnalysisManager("AM","Analysis Manager");
  
  // -------------------------------
  // INPUT EVENT HANDLER
  // -------------------------------

  AliAODInputHandler* inputHandler = new AliAODInputHandler();
  mgr->SetInputEventHandler(inputHandler);
  
  // -------------------------------
  // ANALYSIS PLUGIN CONFIGURATION
  // -------------------------------

  AliAnalysisAlien *analysisPlugin = new AliAnalysisAlien();
  if (!analysisPlugin) { Printf("Error : analysisPlugin is null !!!"); return kFALSE; }
  analysisPlugin->SetAPIVersion("V1.1x");
  //analysisPlugin->SetROOTVersion(rootVersion.Data());
  analysisPlugin->SetAliROOTVersion(alirootVersion.Data());
  analysisPlugin->SetExecutableCommand("aliroot -b -q");

  // Overwrite all generated files, datasets and output results from a previous session
  analysisPlugin->SetOverwriteMode();
  // Set the run mode (can be "full", "test", "offline", "submit" or "terminate")
  analysisPlugin->SetRunMode(runMode);  // VERY IMPORTANT 
  
  analysisPlugin->SetAdditionalRootLibs("CORRFW");
  analysisPlugin->SetAdditionalRootLibs("PWGmuon");
  
  // -------------------------------
  // GRID CONFIG
  // -------------------------------

  // Location of Data
  analysisPlugin->SetGridDataDir("/alice/data/2012/LHC12g");
  analysisPlugin->SetDataPattern("*ESDs/pass2/AOD/*/AliAOD.root");
  analysisPlugin->SetRunPrefix("000");   // real data

  analysisPlugin->AddRunNumber(runNumber);

  // Define alien work directory where all files will be copied. Relative to alien $HOME.
  //   	   analysisPlugin->SetGridWorkingDir("LHC11h_MUON");
  analysisPlugin->SetGridWorkingDir("MuonHadronCorrelations_LHC12g");
  
  // Declare alien output directory. Relative to working directory.
  analysisPlugin->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.
  analysisPlugin->SetAnalysisSource("AliAnalysisTaskMuonHadronCorrelations.cxx");

  // 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.
  analysisPlugin->SetAdditionalLibs("libCORRFW.so libPWGmuon.so AliAnalysisTaskMuonHadronCorrelations.h AliAnalysisTaskMuonHadronCorrelations.cxx");
  
  analysisPlugin->AddIncludePath("-I.");

  //les repertoires individuels d'output des jobs sur la grille ont comme nom le numero du run
  analysisPlugin->SetOutputToRunNo();
  
  // Optionally define the files to be archived.
  //   analysisPlugin->SetOutputArchive("log_archive.zip:stdout,stderr@ALICE::NIHAM::File root_archive.zip:*.root@ALICE::NIHAM::File");
  //   analysisPlugin->SetOutputArchive("log_archive.zip:stdout,stderr");

  // Optionally set a name for the generated analysis macro (default MyAnalysis.C)
  analysisPlugin->SetAnalysisMacro("MuonHadronCorr.C");

  // Optionally set maximum number of input files/subjob (default 100, put 0 to ignore)
  //	   analysisPlugin->SetSplitMaxInputFileNumber(20);
  analysisPlugin->SetSplitMaxInputFileNumber(40);
  // Number of runs per master job
  analysisPlugin->SetNrunsPerMaster(1);
  
  // Optionally modify the executable name (default analysis.sh)
  analysisPlugin->SetExecutable("MuonHadronCorr.sh");

  // Optionally set number of failed jobs that will trigger killing waiting sub-jobs.
  //   analysisPlugin->SetMaxInitFailed(5);

  // Optionally resubmit threshold.
  //   analysisPlugin->SetMasterResubmitThreshold(90);

  // Optionally set time to live (default 30000 sec)
  analysisPlugin->SetTTL(30000);
  // Optionally set input format (default xml-single)
  analysisPlugin->SetInputFormat("xml-single");
  // Optionally modify the name of the generated JDL (default analysis.jdl)
  analysisPlugin->SetJDLName("MuonHadronCorr.jdl");
  // Optionally modify job price (default 1)
  analysisPlugin->SetPrice(1);      
  // Optionally modify split mode (default 'se')    
  analysisPlugin->SetSplitMode("se");
  
  analysisPlugin->SetNtestFiles(5);
  //   analysisPlugin->SetMergeViaJDL(1);
  analysisPlugin->SetOverwriteMode(kTRUE);
  
  mgr->SetGridHandler(analysisPlugin);
  
  // -------------------------------
  // PHYSICS SELECTION
  // -------------------------------
  //  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
  //  AddTaskPhysicsSelection(0);
  mgr->AddStatisticsTask(AliVEvent::kAny);
  
  gROOT->LoadMacro("AddAnalysisTaskMuonHadronCorrelations.C");
  AddAnalysisTaskMuonHadronCorrelations();

  TStopwatch timer;
  timer.Start();
  // -------------------------------
  // RUN ANALYSIS
  // -------------------------------
  mgr->InitAnalysis();
  mgr->PrintStatus();
  
  mgr->StartAnalysis("grid");
  
  timer.Stop();
  timer.Print();
  return kTRUE;

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