ROOT logo
AliAnalysisGrid* CreateAlienHandler(const Char_t *mode);

void simpleAODtrainJETAN(const Char_t *mode="full"){
  //
  //  Run analysis, mode can be "full", "test", "submit" or "terminate",
  //           see CreateAlienHandler for details.
  //

  // Load common libraries
  gSystem->Load("libCore.so");  
  gSystem->Load("libTree.so");
  gSystem->Load("libGeom.so");
  gSystem->Load("libVMC.so");
  gSystem->Load("libPhysics.so");
  gSystem->Load("libSTEERBase");
  gSystem->Load("libESD");
  gSystem->Load("libAOD");
  gSystem->Load("libANALYSIS");
  gSystem->Load("libANALYSISalice");   

  gSystem->Load("libCORRFW");
  gSystem->Load("libJETAN");
  gSystem->Load("libfastjet");
  gSystem->Load("libSISConePlugin");
  gSystem->Load("libFASTJETAN");
  gSystem->Load("libPWGTools");
  gSystem->Load("libPWGJE");

  // Use AliRoot includes to compile our task
  gSystem->AddIncludePath("-I$ALICE_ROOT/include -I$ALICE_ROOT/JETAN -I$ALICE_ROOT/PWG4/JetTasks");

  // Create and configure the alien handler plugin
  AliAnalysisGrid *alienHandler = CreateAlienHandler(mode);  
  if (!alienHandler) return;

  // Create the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("testAnalysis");

  // Connect plug-in to the analysis manager
  mgr->SetGridHandler(alienHandler);

  // Standard train runs on ESD; AOD may not work?
  AliAODInputHandler* aodH = new AliAODInputHandler();
  mgr->SetInputEventHandler(aodH);

  // Need output handler, but tree is not filled...
  gROOT->LoadMacro(gSystem->ExpandPathName("$ALICE_ROOT/ANALYSIS/macros/train/AddAODOutputHandler.C"));
  AliVEventHandler* handler = AddAODOutputHandler();
  //handler->SetFillAODForRun(kFALSE);

  mgr->SetCommonFileName("AnalysisResult.root");

  // Only for ESD?
  //gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
  //AddTaskPhysicsSelection(kFALSE, kTRUE);


  // gROOT->Macro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C"); // Only for ESD

  gROOT->Macro("$ALICE_ROOT/ANALYSIS/macros/AddTaskEventplane.C");

  gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/ConfigLegoTrainPWGJE.C");
  ConfigLegoTrainPWGJE(1108); // For DeltaAODName; LHC11h settings

  const Int_t kHighPtFilterMask = 768;  // LHC11h
  const Int_t kHighPtFilterMaskBest = 256; // LHC11h
  const Float_t kR = 0.3;

  gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/AddTaskJetCluster.C");
  jetclu = AddTaskJetCluster("AOD","",kHighPtFilterMask,AliVEvent::kAny,"ANTIKT",kR,0,kTRUE, AliAnalysisManager::GetGlobalStr("kJetDeltaAODName",gDebug),0.15,0.9,10,0);

  jetclu->SetEventSelection(kTRUE); 
  jetclu->SetJetTypes(1<<0|1<<2|1<<3);
  jetclu->SetNRandomCones(1);
  jetclu->SetCentralityCut(0.,80.);
  jetclu->SetJetOutputMinPt(0);
  jetclu->SetFilterMaskBestPt(kHighPtFilterMaskBest);
  //jetclu->SetDebugLevel(1);

  // output dir: PWGJE_cluster_AOD__ANTIKT03_B0_Filter00272_Cut00150_Skip00

  jetclukt = AddTaskJetCluster("AOD","",kHighPtFilterMask,AliVEvent::kAny,"KT",kR,0,kTRUE,AliAnalysisManager::GetGlobalStr("kJetDeltaAODName",gDebug),0.15,0.9,10,0);
  jetclukt->SetBackgroundCalc(kTRUE);
  jetclukt->SetEventSelection(kTRUE); 
  jetclukt->SetCentralityCut(0.,80.);
  jetclukt->SetJetOutputMinPt(0);
  jetclukt->SetFilterMaskBestPt(kHighPtFilterMaskBest);
  //jetclukt->SetDebugLevel(1);

  AliAnalysisManager::SetGlobalInt("kPhysicsSelectionFlag",AliVEvent::kMB|AliVEvent::kCentral|AliVEvent::kSemiCentral|AliVEvent::kEMCEJE|AliVEvent::kEMCEGA|AliVEvent::kEMC1);

  Int_t kRpar = Int_t(10*kR + 0.001);
  gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/AddTaskJetBackgroundSubtract.C");
  jetbkg = AddTaskJetBackgroundSubtract(TString(Form("clustersAOD_ANTIKT%02d_B0_Filter%05d_Cut00150_Skip00",kRpar,kHighPtFilterMask)),2);
  jetbkg->SetBackgroundBranch(Form("jeteventbackground_clustersAOD_KT%02d_B0_Filter%05d_Cut00150_Skip00",kRpar,kHighPtFilterMask));
  jetbkg->SelectCollisionCandidates(AliAnalysisManager::GetGlobalInt("kPhysicsSelectionFlag", gDebug));
  jetbkg->SetKeepJets(kTRUE);
  jetbkg->SetNonStdOutputFile(AliAnalysisManager::GetGlobalStr("kJetDeltaAODName",gDebug));
  //jetbkg->SetDebugLevel(1);

  // Looking for input dir: clustersAOD_ANTIKT03_B2_Filter00768_Cut00150_Skip00
  gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/AddTaskFragmentationFunction.C");
  Int_t kEvtClass = 1; // Central events

  // Need to add 'type = AOD' as third argument -- only for MC...
  fftask = AddTaskFragmentationFunction("clustersAOD_ANTIKT", "", "", "", "", kHighPtFilterMask, kR,2,150.,kEvtClass, "_Skip00");
  //fftask->SetPhiCorrHistoBins(); 
  fftask->SetEventSelectionMask(AliVEvent::kMB|AliVEvent::kCentral|AliVEvent::kSemiCentral);
  fftask->UseAODInputJets(kFALSE);  // to pick up jets from the output AOD
  //fftask->SetDebugLevel(1);


  if (!mgr->InitAnalysis())
    return;

  mgr->PrintStatus();

  // Start analysis via AlienPlugin; test runs etc are handled via flag to CreateAlienHandler
  mgr->StartAnalysis("grid"); 
};


AliAnalysisGrid* CreateAlienHandler(const Char_t *mode)
{

   AliAnalysisAlien *plugin = new AliAnalysisAlien();
   plugin->SetOverwriteMode();
// Set the run mode (can be "full", "test", "offline", "submit" or "terminate")
   plugin->SetRunMode(mode); //terminate");
// Set versions of used packages
   plugin->SetAPIVersion("V1.1x");
   plugin->SetROOTVersion("v5-34-08");
   plugin->SetAliROOTVersion("v5-05-11-AN");
   plugin->AddExternalPackage("cgal::v3.6 fastjet::v2.4.2");

   // Declare input data to be processed.
   // Method 1: Create automatically XML collections using alien 'find' command.
   // Define production directory LFN
   // One file:
   //plugin->SetGridDataDir("/alice/data/2011/LHC11h_2/000170081/ESDs/pass2/AOD115/0829/");
   // One run:
   plugin->SetGridDataDir("/alice/data/2011/LHC11h_2/000170081/ESDs/pass2/AOD115/");
   // Set data search pattern
   plugin->SetDataPattern("*AOD.root");

   // Can be extended to multiple runs:
   //
   //   plugin->SetRunPrefix("000");   // real data
   // ...then add run numbers to be considered
   //plugin->AddRunNumber(191027);
   //   plugin->AddRunNumber(104065);  // real data
   //   plugin->SetOutputSingleFolder("output");
   //   plugin->SetOutputToRunNo();

   
   // 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("AOD_jets_PbPb");
   // 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("AliAnalysisAODJetHists.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.
   plugin->SetAdditionalLibs("libCORRFW.so libJETAN.so libCGAL.so libfastjet.so libSISConePlugin.so libFASTJETAN.so libPWGTools.so libPWGJE.so");
   plugin->AddIncludePath("-I$ALICE_ROOT/JETAN -I$ALICE_ROOT/PWGJE");
   // Declare the output file names separated by blancs.
   // (can be like: file.root or file.root@ALICE::Niham::File)
   //   plugin->SetOutputFiles("Pt.ESD.1.root");
   plugin->SetDefaultOutputs(kFALSE);
   plugin->SetOutputFiles("AnalysisResult.root EventStat_temp.root");
   //plugin->SetDefaultOutputs();
   // Optionally define the files to be archived.
   //   plugin->SetOutputArchive("log_archive.zip:stdout,stderr@ALICE::NIHAM::File root_archive.zip:*.root@ALICE::NIHAM::File");
   //   plugin->SetOutputArchive("log_archive.zip:stdout,stderr");
   // Optionally set a name for the generated analysis macro (default MyAnalysis.C)
   plugin->SetAnalysisMacro("AODJetsPbPb.C");
   // Optionally set maximum number of input files/subjob (default 100, put 0 to ignore)
   plugin->SetSplitMaxInputFileNumber(100);
   // Optionally modify the executable name (default analysis.sh)
   plugin->SetExecutable("AODJetsPbPb.sh");
   // 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(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("AODJetsPbPb.jdl");
   // Optionally modify job price (default 1)
   plugin->SetPrice(1);      
   // Optionally modify split mode (default 'se')    
   plugin->SetSplitMode("se");
   return plugin;
}
 simpleAODtrainJETAN.C:1
 simpleAODtrainJETAN.C:2
 simpleAODtrainJETAN.C:3
 simpleAODtrainJETAN.C:4
 simpleAODtrainJETAN.C:5
 simpleAODtrainJETAN.C:6
 simpleAODtrainJETAN.C:7
 simpleAODtrainJETAN.C:8
 simpleAODtrainJETAN.C:9
 simpleAODtrainJETAN.C:10
 simpleAODtrainJETAN.C:11
 simpleAODtrainJETAN.C:12
 simpleAODtrainJETAN.C:13
 simpleAODtrainJETAN.C:14
 simpleAODtrainJETAN.C:15
 simpleAODtrainJETAN.C:16
 simpleAODtrainJETAN.C:17
 simpleAODtrainJETAN.C:18
 simpleAODtrainJETAN.C:19
 simpleAODtrainJETAN.C:20
 simpleAODtrainJETAN.C:21
 simpleAODtrainJETAN.C:22
 simpleAODtrainJETAN.C:23
 simpleAODtrainJETAN.C:24
 simpleAODtrainJETAN.C:25
 simpleAODtrainJETAN.C:26
 simpleAODtrainJETAN.C:27
 simpleAODtrainJETAN.C:28
 simpleAODtrainJETAN.C:29
 simpleAODtrainJETAN.C:30
 simpleAODtrainJETAN.C:31
 simpleAODtrainJETAN.C:32
 simpleAODtrainJETAN.C:33
 simpleAODtrainJETAN.C:34
 simpleAODtrainJETAN.C:35
 simpleAODtrainJETAN.C:36
 simpleAODtrainJETAN.C:37
 simpleAODtrainJETAN.C:38
 simpleAODtrainJETAN.C:39
 simpleAODtrainJETAN.C:40
 simpleAODtrainJETAN.C:41
 simpleAODtrainJETAN.C:42
 simpleAODtrainJETAN.C:43
 simpleAODtrainJETAN.C:44
 simpleAODtrainJETAN.C:45
 simpleAODtrainJETAN.C:46
 simpleAODtrainJETAN.C:47
 simpleAODtrainJETAN.C:48
 simpleAODtrainJETAN.C:49
 simpleAODtrainJETAN.C:50
 simpleAODtrainJETAN.C:51
 simpleAODtrainJETAN.C:52
 simpleAODtrainJETAN.C:53
 simpleAODtrainJETAN.C:54
 simpleAODtrainJETAN.C:55
 simpleAODtrainJETAN.C:56
 simpleAODtrainJETAN.C:57
 simpleAODtrainJETAN.C:58
 simpleAODtrainJETAN.C:59
 simpleAODtrainJETAN.C:60
 simpleAODtrainJETAN.C:61
 simpleAODtrainJETAN.C:62
 simpleAODtrainJETAN.C:63
 simpleAODtrainJETAN.C:64
 simpleAODtrainJETAN.C:65
 simpleAODtrainJETAN.C:66
 simpleAODtrainJETAN.C:67
 simpleAODtrainJETAN.C:68
 simpleAODtrainJETAN.C:69
 simpleAODtrainJETAN.C:70
 simpleAODtrainJETAN.C:71
 simpleAODtrainJETAN.C:72
 simpleAODtrainJETAN.C:73
 simpleAODtrainJETAN.C:74
 simpleAODtrainJETAN.C:75
 simpleAODtrainJETAN.C:76
 simpleAODtrainJETAN.C:77
 simpleAODtrainJETAN.C:78
 simpleAODtrainJETAN.C:79
 simpleAODtrainJETAN.C:80
 simpleAODtrainJETAN.C:81
 simpleAODtrainJETAN.C:82
 simpleAODtrainJETAN.C:83
 simpleAODtrainJETAN.C:84
 simpleAODtrainJETAN.C:85
 simpleAODtrainJETAN.C:86
 simpleAODtrainJETAN.C:87
 simpleAODtrainJETAN.C:88
 simpleAODtrainJETAN.C:89
 simpleAODtrainJETAN.C:90
 simpleAODtrainJETAN.C:91
 simpleAODtrainJETAN.C:92
 simpleAODtrainJETAN.C:93
 simpleAODtrainJETAN.C:94
 simpleAODtrainJETAN.C:95
 simpleAODtrainJETAN.C:96
 simpleAODtrainJETAN.C:97
 simpleAODtrainJETAN.C:98
 simpleAODtrainJETAN.C:99
 simpleAODtrainJETAN.C:100
 simpleAODtrainJETAN.C:101
 simpleAODtrainJETAN.C:102
 simpleAODtrainJETAN.C:103
 simpleAODtrainJETAN.C:104
 simpleAODtrainJETAN.C:105
 simpleAODtrainJETAN.C:106
 simpleAODtrainJETAN.C:107
 simpleAODtrainJETAN.C:108
 simpleAODtrainJETAN.C:109
 simpleAODtrainJETAN.C:110
 simpleAODtrainJETAN.C:111
 simpleAODtrainJETAN.C:112
 simpleAODtrainJETAN.C:113
 simpleAODtrainJETAN.C:114
 simpleAODtrainJETAN.C:115
 simpleAODtrainJETAN.C:116
 simpleAODtrainJETAN.C:117
 simpleAODtrainJETAN.C:118
 simpleAODtrainJETAN.C:119
 simpleAODtrainJETAN.C:120
 simpleAODtrainJETAN.C:121
 simpleAODtrainJETAN.C:122
 simpleAODtrainJETAN.C:123
 simpleAODtrainJETAN.C:124
 simpleAODtrainJETAN.C:125
 simpleAODtrainJETAN.C:126
 simpleAODtrainJETAN.C:127
 simpleAODtrainJETAN.C:128
 simpleAODtrainJETAN.C:129
 simpleAODtrainJETAN.C:130
 simpleAODtrainJETAN.C:131
 simpleAODtrainJETAN.C:132
 simpleAODtrainJETAN.C:133
 simpleAODtrainJETAN.C:134
 simpleAODtrainJETAN.C:135
 simpleAODtrainJETAN.C:136
 simpleAODtrainJETAN.C:137
 simpleAODtrainJETAN.C:138
 simpleAODtrainJETAN.C:139
 simpleAODtrainJETAN.C:140
 simpleAODtrainJETAN.C:141
 simpleAODtrainJETAN.C:142
 simpleAODtrainJETAN.C:143
 simpleAODtrainJETAN.C:144
 simpleAODtrainJETAN.C:145
 simpleAODtrainJETAN.C:146
 simpleAODtrainJETAN.C:147
 simpleAODtrainJETAN.C:148
 simpleAODtrainJETAN.C:149
 simpleAODtrainJETAN.C:150
 simpleAODtrainJETAN.C:151
 simpleAODtrainJETAN.C:152
 simpleAODtrainJETAN.C:153
 simpleAODtrainJETAN.C:154
 simpleAODtrainJETAN.C:155
 simpleAODtrainJETAN.C:156
 simpleAODtrainJETAN.C:157
 simpleAODtrainJETAN.C:158
 simpleAODtrainJETAN.C:159
 simpleAODtrainJETAN.C:160
 simpleAODtrainJETAN.C:161
 simpleAODtrainJETAN.C:162
 simpleAODtrainJETAN.C:163
 simpleAODtrainJETAN.C:164
 simpleAODtrainJETAN.C:165
 simpleAODtrainJETAN.C:166
 simpleAODtrainJETAN.C:167
 simpleAODtrainJETAN.C:168
 simpleAODtrainJETAN.C:169
 simpleAODtrainJETAN.C:170
 simpleAODtrainJETAN.C:171
 simpleAODtrainJETAN.C:172
 simpleAODtrainJETAN.C:173
 simpleAODtrainJETAN.C:174
 simpleAODtrainJETAN.C:175
 simpleAODtrainJETAN.C:176
 simpleAODtrainJETAN.C:177
 simpleAODtrainJETAN.C:178
 simpleAODtrainJETAN.C:179
 simpleAODtrainJETAN.C:180
 simpleAODtrainJETAN.C:181
 simpleAODtrainJETAN.C:182
 simpleAODtrainJETAN.C:183
 simpleAODtrainJETAN.C:184
 simpleAODtrainJETAN.C:185
 simpleAODtrainJETAN.C:186
 simpleAODtrainJETAN.C:187
 simpleAODtrainJETAN.C:188
 simpleAODtrainJETAN.C:189
 simpleAODtrainJETAN.C:190
 simpleAODtrainJETAN.C:191
 simpleAODtrainJETAN.C:192
 simpleAODtrainJETAN.C:193
 simpleAODtrainJETAN.C:194
 simpleAODtrainJETAN.C:195
 simpleAODtrainJETAN.C:196
 simpleAODtrainJETAN.C:197
 simpleAODtrainJETAN.C:198
 simpleAODtrainJETAN.C:199
 simpleAODtrainJETAN.C:200
 simpleAODtrainJETAN.C:201
 simpleAODtrainJETAN.C:202
 simpleAODtrainJETAN.C:203
 simpleAODtrainJETAN.C:204
 simpleAODtrainJETAN.C:205
 simpleAODtrainJETAN.C:206