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

class AliAnalysisAlien;
class AliAnalysisGrid;
void runTaku() {


  // 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");
    /*
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169837060.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169846080.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169858040.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169859060.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169918060.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169918080.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169919060.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169919080.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169922040.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169922080.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169923040.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169923060.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169923080.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169956040.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169956060.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169956080.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169961040.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169961060.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169961080.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169965040.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169965080.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169975040.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169981040.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169981060.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000169981080.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170027040.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170027060.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170027080.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170036060.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170036080.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170038040.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170038060.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170081080.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170083040.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170084040.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170085060.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170085080.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170088040.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170088080.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170089040.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170089060.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170089080.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170091060.10.root"));
    */
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170152040.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170152060.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170152080.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170155060.10.root"));
    /*
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170155080.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170163080.10.root"));

    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170193040.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170193060.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170193080.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170195040.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170195080.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170204060.10.root"));

    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170205040.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170205060.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170205080.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170207040.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170207060.10.root"));


    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170208040.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170208060.10.root"));
    chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170208080.10.root"));
    */
    //chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170228060.10.root"));

    //chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170264040.10.root"));
    //chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170264060.10.root"));
    //chain->Add( Form("/home/gunji/softwares/data/2011/AliESDs_11000170264080.10.root"));
  }
  AliAnalysisManager *mgr = new AliAnalysisManager("DielectronAnalysisManager");
  AliESDInputHandler *esdH = new AliESDInputHandler();
  mgr->SetInputEventHandler(esdH);
  if(gridMode!="")
    mgr->SetGridHandler(alienHandler);
  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
  AddTaskPhysicsSelection(kFALSE);
  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
  AliCentralitySelectionTask *taskCentrality =AddTaskCentrality();
  //taskCentrality->SetPass(2);

  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->SetROOTVersion("v5-30-03-1");
  plugin->SetAliROOTVersion("v5-01-Rev-19");
  plugin->SetRunPrefix("000");
  gROOT->LoadMacro("AddRunsPbPb.C");
  AddRunsPbPb(plugin);
  //plugin->AddDataFile("/alice/cern.ch/user/t/tgunji/takuv2c123456_rev2_6/000169554_000169553.xml")
  //plugin->AddDataFile("/alice/cern.ch/user/t/tgunji/takuv2c123456_rev2_6/000169557_000169555.xml")
  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 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(50);
  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");


}
 runTaku.C:1
 runTaku.C:2
 runTaku.C:3
 runTaku.C:4
 runTaku.C:5
 runTaku.C:6
 runTaku.C:7
 runTaku.C:8
 runTaku.C:9
 runTaku.C:10
 runTaku.C:11
 runTaku.C:12
 runTaku.C:13
 runTaku.C:14
 runTaku.C:15
 runTaku.C:16
 runTaku.C:17
 runTaku.C:18
 runTaku.C:19
 runTaku.C:20
 runTaku.C:21
 runTaku.C:22
 runTaku.C:23
 runTaku.C:24
 runTaku.C:25
 runTaku.C:26
 runTaku.C:27
 runTaku.C:28
 runTaku.C:29
 runTaku.C:30
 runTaku.C:31
 runTaku.C:32
 runTaku.C:33
 runTaku.C:34
 runTaku.C:35
 runTaku.C:36
 runTaku.C:37
 runTaku.C:38
 runTaku.C:39
 runTaku.C:40
 runTaku.C:41
 runTaku.C:42
 runTaku.C:43
 runTaku.C:44
 runTaku.C:45
 runTaku.C:46
 runTaku.C:47
 runTaku.C:48
 runTaku.C:49
 runTaku.C:50
 runTaku.C:51
 runTaku.C:52
 runTaku.C:53
 runTaku.C:54
 runTaku.C:55
 runTaku.C:56
 runTaku.C:57
 runTaku.C:58
 runTaku.C:59
 runTaku.C:60
 runTaku.C:61
 runTaku.C:62
 runTaku.C:63
 runTaku.C:64
 runTaku.C:65
 runTaku.C:66
 runTaku.C:67
 runTaku.C:68
 runTaku.C:69
 runTaku.C:70
 runTaku.C:71
 runTaku.C:72
 runTaku.C:73
 runTaku.C:74
 runTaku.C:75
 runTaku.C:76
 runTaku.C:77
 runTaku.C:78
 runTaku.C:79
 runTaku.C:80
 runTaku.C:81
 runTaku.C:82
 runTaku.C:83
 runTaku.C:84
 runTaku.C:85
 runTaku.C:86
 runTaku.C:87
 runTaku.C:88
 runTaku.C:89
 runTaku.C:90
 runTaku.C:91
 runTaku.C:92
 runTaku.C:93
 runTaku.C:94
 runTaku.C:95
 runTaku.C:96
 runTaku.C:97
 runTaku.C:98
 runTaku.C:99
 runTaku.C:100
 runTaku.C:101
 runTaku.C:102
 runTaku.C:103
 runTaku.C:104
 runTaku.C:105
 runTaku.C:106
 runTaku.C:107
 runTaku.C:108
 runTaku.C:109
 runTaku.C:110
 runTaku.C:111
 runTaku.C:112
 runTaku.C:113
 runTaku.C:114
 runTaku.C:115
 runTaku.C:116
 runTaku.C:117
 runTaku.C:118
 runTaku.C:119
 runTaku.C:120
 runTaku.C:121
 runTaku.C:122
 runTaku.C:123
 runTaku.C:124
 runTaku.C:125
 runTaku.C:126
 runTaku.C:127
 runTaku.C:128
 runTaku.C:129
 runTaku.C:130
 runTaku.C:131
 runTaku.C:132
 runTaku.C:133
 runTaku.C:134
 runTaku.C:135
 runTaku.C:136
 runTaku.C:137
 runTaku.C:138
 runTaku.C:139
 runTaku.C:140
 runTaku.C:141
 runTaku.C:142
 runTaku.C:143
 runTaku.C:144
 runTaku.C:145
 runTaku.C:146
 runTaku.C:147
 runTaku.C:148
 runTaku.C:149
 runTaku.C:150
 runTaku.C:151
 runTaku.C:152
 runTaku.C:153
 runTaku.C:154
 runTaku.C:155
 runTaku.C:156
 runTaku.C:157
 runTaku.C:158
 runTaku.C:159
 runTaku.C:160
 runTaku.C:161
 runTaku.C:162
 runTaku.C:163
 runTaku.C:164
 runTaku.C:165
 runTaku.C:166
 runTaku.C:167
 runTaku.C:168
 runTaku.C:169
 runTaku.C:170
 runTaku.C:171
 runTaku.C:172
 runTaku.C:173
 runTaku.C:174
 runTaku.C:175
 runTaku.C:176
 runTaku.C:177
 runTaku.C:178
 runTaku.C:179
 runTaku.C:180
 runTaku.C:181
 runTaku.C:182
 runTaku.C:183
 runTaku.C:184
 runTaku.C:185
 runTaku.C:186
 runTaku.C:187
 runTaku.C:188
 runTaku.C:189
 runTaku.C:190
 runTaku.C:191
 runTaku.C:192
 runTaku.C:193
 runTaku.C:194
 runTaku.C:195
 runTaku.C:196
 runTaku.C:197
 runTaku.C:198
 runTaku.C:199
 runTaku.C:200
 runTaku.C:201
 runTaku.C:202
 runTaku.C:203
 runTaku.C:204
 runTaku.C:205
 runTaku.C:206
 runTaku.C:207
 runTaku.C:208
 runTaku.C:209
 runTaku.C:210
 runTaku.C:211
 runTaku.C:212
 runTaku.C:213
 runTaku.C:214
 runTaku.C:215
 runTaku.C:216
 runTaku.C:217
 runTaku.C:218
 runTaku.C:219
 runTaku.C:220
 runTaku.C:221
 runTaku.C:222
 runTaku.C:223
 runTaku.C:224
 runTaku.C:225
 runTaku.C:226
 runTaku.C:227
 runTaku.C:228
 runTaku.C:229
 runTaku.C:230
 runTaku.C:231
 runTaku.C:232
 runTaku.C:233
 runTaku.C:234
 runTaku.C:235
 runTaku.C:236
 runTaku.C:237
 runTaku.C:238
 runTaku.C:239
 runTaku.C:240
 runTaku.C:241