ROOT logo
//char *gridMode="";
char *gridMode = "full"; // "" for local
char *workingDir = "takuv2c123456_rev3_2_mc";
TString commonOutputFileName = Form("Results%s",workingDir);

class AliAnalysisAlien;
class AliAnalysisGrid;
void runTakuMC() {


  gSystem->Setenv("alien_CLOSE_SE", "ALICE::GSI::SE");
  cout << "alien_CLOSE_SE: " << gSystem->Getenv("alien_CLOSE_SE") << endl;
  TGrid::Connect("alien://");


  TStopwatch timer; timer.Start();
  LoadLibraries();
  if(gridMode!="")
    AliAnalysisGrid *alienHandler = CreateAlienHandler();
  else {
    TChain *chain = new TChain("esdTree");
    for(int i=1; i!=10; ++i)
      chain->Add( Form("/home/gunji/softwares/dielectron/data/esd138740_mc/%d0/AliESDs.root",i) );
  }
  AliAnalysisManager *mgr = new AliAnalysisManager("DielectronAnalysisManager");
  AliESDInputHandler *esdH = new AliESDInputHandler();
  mgr->SetInputEventHandler(esdH);
  if(gridMode!="")
    mgr->SetGridHandler(alienHandler);


  AliMCEventHandler *MC = new AliMCEventHandler;
  mgr->SetMCtruthEventHandler(MC);

  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
  AliPhysicsSelectionTask* physicsSelTask = AddTaskPhysicsSelection(kTRUE);
  physicsSelTask->GetPhysicsSelection()->SetAnalyzeMC();


  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
  AliCentralitySelectionTask *taskCentrality =AddTaskCentrality();
  ///taskCentrality->SetPass(2);
  taskCentrality->SetMCInput();

  gROOT->LoadMacro("AliDielectronDebugTreeTaku.cxx++");
  gROOT->LoadMacro("AliDielectronHistosTaku.cxx++");
  gROOT->LoadMacro("AliDielectronTaku.cxx++");
  gROOT->LoadMacro("AliAnalysisTaskMultiDielectronNewTaku.cxx++");

  LoadAddLibraries();
  
  TString configFile("./ConfigJpsi2eeDataTaku.C");
  //Bool_t hasMC=(mgr->GetMCtruthEventHandler()!=0x0);
  //if (hasMC){
  //configFile="$ALICE_ROOT/PWG3/dielectron/macros/ConfigJpsi2eeEff.C";
  //}
  gROOT->LoadMacro(configFile.Data());

  gROOT->LoadMacro("AddTaskDielectronTaku.C");
  

  
  AddTaskDielectronTaku( 0, 99, commonOutputFileName.Data(), "CENT1" );
  /*
  AddTaskDielectronTaku( 10, 20, commonOutputFileName.Data(), "CENT2" );
  AddTaskDielectronTaku( 20, 30, commonOutputFileName.Data(), "CENT3" );
  AddTaskDielectronTaku( 30, 40, commonOutputFileName.Data(), "CENT4" );
  AddTaskDielectronTaku( 40, 50, commonOutputFileName.Data(), "CENT5" );  
  AddTaskDielectronTaku( 50, 60, commonOutputFileName.Data(), "CENT6" );
  AddTaskDielectronTaku( 60, 70, commonOutputFileName.Data(), "CENT7" );
  AddTaskDielectronTaku( 70, 80, commonOutputFileName.Data(), "CENT8" );
  AddTaskDielectronTaku( 80, 99, commonOutputFileName.Data(), "CENT9" );
  */

  mgr->SetDebugLevel(2);
  mgr->SetDebugLevel(0);
  if(!mgr->InitAnalysis()) return;
  mgr->PrintStatus();
  if(gridMode!="")
    mgr->StartAnalysis("grid");
  else
    mgr->StartAnalysis("local",chain);
  timer.Stop();
  timer.Print();  

}

AliAnalysisGrid* CreateAlienHandler() {
  AliAnalysisAlien *plugin = new AliAnalysisAlien();
  plugin->SetRunMode(gridMode);
  plugin->SetNtestFiles(1);
  plugin->SetAPIVersion("V1.1x");

  plugin->SetROOTVersion("v5-28-00d");
  plugin->SetAliROOTVersion("v4-21-25-AN");
  //  plugin->SetRunPrefix("000");
  gROOT->LoadMacro("AddRunsPbPbMC.C");
  AddRunsPbPbMC(plugin);
  plugin->SetOutputToRunNo();  
  plugin->SetGridWorkingDir(workingDir);
  plugin->SetGridOutputDir("output");
  plugin->AddIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TPC -I$ALICE_ROOT/CONTAINERS -I$ALICE_ROOT/STEER -I$ALICE_ROOT/TRD -I$ALICE_ROOT/macros -I$ALICE_ROOT/ANALYSIS -I$ALICE_ROOT/PWG2/FLOW/AliFlowCommon -I$ALICE_ROOT/PWG2/FLOW/AliFlowTasks -I$ALICE_ROOT/PWG3/dielectron/ -g");
  plugin->SetAnalysisSource("AliDielectronHistosTaku.cxx AliDielectronDebugTreeTaku.cxx AliDielectronTaku.cxx AliAnalysisTaskMultiDielectronNewTaku.cxx");
  //  plugin->SetAdditionalLibs("libCORRFW.so libPWG3base.so libPWG3dielectron.so libPWG3hfe.so libTENDER.so libTENDERSupplies.so  AliAnalysisTaskMultiDielectronNew.h AliAnalysisTaskMultiDielectronNew.cxx");
  plugin->SetAdditionalLibs("libCORRFW.so libPWG3base.so libPWG3dielectron.so libPWG3hfe.so libPWG2flowCommon.so libPWG2flowTasks.so AliDielectronHistosTaku.h AliDielectronHistosTaku.cxx AliDielectronDebugTreeTaku.h AliDielectronDebugTreeTaku.cxx AliDielectronTaku.h AliDielectronTaku.cxx AliAnalysisTaskMultiDielectronNewTaku.h AliAnalysisTaskMultiDielectronNewTaku.cxx");
  plugin->SetDefaultOutputs(kTRUE);
  plugin->SetAnalysisMacro(Form("%s.C",workingDir));
  plugin->SetExecutable(Form("%s.sh",workingDir));
  plugin->SetSplitMaxInputFileNumber(100);
  plugin->SetOverwriteMode(kTRUE);
  plugin->SetMaxInitFailed(20);
  plugin->SetTTL(90000);
  plugin->SetOutputToRunNo(kTRUE);
  plugin->SetMasterResubmitThreshold(90);
  plugin->SetInputFormat("xml-single");
  plugin->SetJDLName(Form("%s.jdl",workingDir));
  plugin->SetPrice(1);      
  plugin->SetSplitMode("se");
  plugin->SetKeepLogs(kTRUE);
  plugin->SetExecutableCommand("aliroot -b -q ");
  return plugin;
}

void LoadLibraries()
{
  gSystem->SetIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT -I$ALICE_ROOT/build/include -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TPC -I$ALICE_ROOT/CONTAINERS -I$ALICE_ROOT/STEER -I$ALICE_ROOT/TRD -I$ALICE_ROOT/macros -I$ALICE_ROOT/ANALYSIS -I$ALICE_ROOT/PWG2/FLOW/AliFlowCommon -I$ALICE_ROOT/PWG2/FLOW/AliFlowTasks -I$ALICE_ROOT/PWG3/dielectron/ -g");
  gSystem->Load("libCore");// no
  gSystem->Load("libTree");
  gSystem->Load("libGeom");
  gSystem->Load("libVMC");
  gSystem->Load("libXMLIO");// no
  gSystem->Load("libPhysics");
  gSystem->Load("libXMLParser");
  gSystem->Load("libProof");
  gSystem->Load("libMinuit");

  gSystem->Load("libSTEERBase");
  gSystem->Load("libCDB");
  gSystem->Load("libRAWDatabase");
  gSystem->Load("libRAWDatarec");
  gSystem->Load("libESD");
  gSystem->Load("libAOD");
  gSystem->Load("libSTEER");
  gSystem->Load("libANALYSIS");
  gSystem->Load("libANALYSISalice");
  gSystem->Load("libTOFbase");
  gSystem->Load("libTOFrec");
  gSystem->Load("libT0base");
  gSystem->Load("libT0rec");
  gSystem->Load("libPWG2flowCommon");
  gSystem->Load("libPWG2flowTasks");

  gSystem->Load("libTENDER");
  gSystem->Load("libTENDERSupplies");



  gSystem->Load("libCORRFW.so");
  gSystem->Load("libPWG3base.so");
  gSystem->Load("libPWG3dielectron.so");
  gSystem->Load("libPWG3hfe.so");

}

void LoadAddLibraries(){
  gSystem->Load("./AliDielectronHistosTaku_cxx.so");
  gSystem->Load("./AliDielectronDebugTreeTaku_cxx.so");
  gSystem->Load("./AliDielectronTaku_cxx.so");


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