ROOT logo
void runAODProof(Int_t c, const char * proofMode = "full")
{

   gEnv->SetValue("XSec.GSI.DelegProxy", "2");

   gSystem->Load("libMinuit.so");
   gSystem->Load("libTree.so");
   gSystem->Load("libGeom.so");
   gSystem->Load("libVMC.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->AddIncludePath("-I$ALICE_ROOT/include");


   AliAnalysisAlien * handler = new AliAnalysisAlien("test");
   handler->SetOverwriteMode();
   handler->SetRunMode(proofMode);
   handler->SetProofReset(0);
   handler->SetAliROOTVersion("v5-02-20-AN");

   //   handler->SetProofCluster(Form("%s@alice-caf.cern.ch", gSystem->Getenv("CAFUSER")));
   handler->SetProofCluster("alice-caf.cern.ch");
//   handler->SetProofCluster(Form("%s@skaf.saske.sk",gSystem->Getenv("CAFUSER")));

   // Set handler for Real DATA:
   if (c == 1)
   {
     handler->SetProofDataSet("/alice/data/LHC10h_000138653_p2_AOD049#aodTree");
 //     handler->SetProofDataSet("/alice/sim/LHC11a10a_000139107_AOD048#aodTree|alice/sim/LHC11a10a_000138653_AOD048#aodTree");
   }
   if (c == 2)
   {
      handler->SetProofDataSet("/alice/sim/LHC11a10a_000139107_AOD048#aodTree|/alice/sim/LHC11a10a_000138653_AOD048#aodTree|/alice/sim/LHC11a10a_000139110_AOD048#aodTree|/alice/sim/LHC11a10a_000138662_AOD048#aodTree|/alice/sim/LHC11a10a_000138666_AOD048#aodTree|/alice/sim/LHC11a10a_000138795_AOD048#aodTree");      
   }
   handler->SetNproofWorkersPerSlave(1);
   handler->SetAliRootMode("default");
   handler->SetAdditionalLibs("AliSpectraAODHistoManager.cxx AliSpectraAODHistoManager.h AliSpectraAODEventCuts.cxx AliSpectraAODEventCuts.h AliSpectraAODTrackCuts.cxx AliSpectraAODTrackCuts.h AliAnalysisTaskSpectraAOD.cxx AliAnalysisTaskSpectraAOD.h");
   handler->SetAnalysisSource("AliSpectraAODHistoManager.cxx+ AliSpectraAODEventCuts.cxx+ AliSpectraAODTrackCuts.cxx+ AliAnalysisTaskSpectraAOD.cxx+");
   handler->SetFileForTestMode("filelist.txt"); // list of local files for testing
   //  handler->SetAliRootMode("");
   handler->SetClearPackages();


   AliAnalysisManager *mgr = new AliAnalysisManager("testAnalysis");
   mgr->SetGridHandler(handler);
   AliAODInputHandler* aodH = new AliAODInputHandler();
   mgr->SetInputEventHandler(aodH);

   gROOT->LoadMacro("AliSpectraAODTrackCuts.cxx+g");
   gROOT->LoadMacro("AliSpectraAODEventCuts.cxx+g");
   gROOT->LoadMacro("AliSpectraAODHistoManager.cxx+g");
   gROOT->LoadMacro("AliAnalysisTaskSpectraAOD.cxx+g");


   // Add PID task
   gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
   Bool_t isMC = kFALSE;
   if (c == 2 || c == 3) isMC = kTRUE;   
   AliAnalysisTask * taskPID = AddTaskPIDResponse(isMC);
   mgr->AddTask(taskPID);


   AliAnalysisTaskSpectraAOD *task = new AliAnalysisTaskSpectraAOD("TaskAODExercise");
   mgr->AddTask(task);

   // Set the cuts
   AliSpectraAODEventCuts * vcuts = new AliSpectraAODEventCuts("Event Cuts");
   AliSpectraAODTrackCuts  * tcuts = new AliSpectraAODTrackCuts("Track Cuts");
   tcuts->SetTrackType(6);
   tcuts->SetEta(.8);
   //   tcuts->SetDCA(.1);
   tcuts->SetPt(1.2);   
   vcuts->SetCentralityCutMax(5.);  // example min max cuts
   vcuts->SetCentralityCutMin(0.);
   task->SetEventCuts(vcuts);
   task->SetTrackCuts(tcuts);
   task->SetNSigmaForIdentification(3.); // FIXME
   task->SetYCut(.5);
   // check for MC or real data
   if (c == 2 || c == 3)
   {
      task->SetIsMC(kTRUE);


      AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
      AliAnalysisDataContainer *coutputpt1 = mgr->CreateContainer("chistpt", AliSpectraAODHistoManager::Class(),  AliAnalysisManager::kOutputContainer, "Pt.AOD.1._MC.root");
      AliAnalysisDataContainer *coutputpt2 = mgr->CreateContainer("cvcutpt", AliSpectraAODEventCuts::Class(),    AliAnalysisManager::kOutputContainer, "Pt.AOD.1._MC.root");
      AliAnalysisDataContainer *coutputpt3 = mgr->CreateContainer("ctcutpt", AliSpectraAODTrackCuts::Class(),     AliAnalysisManager::kOutputContainer, "Pt.AOD.1._MC.root");
   }
   if (c == 1)
   {
      AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
      AliAnalysisDataContainer *coutputpt1 = mgr->CreateContainer("chistpt", AliSpectraAODHistoManager::Class(),  AliAnalysisManager::kOutputContainer, "Pt.AOD.1._data_ptcut.root");
      AliAnalysisDataContainer *coutputpt2 = mgr->CreateContainer("cvcutpt", AliSpectraAODEventCuts::Class(),    AliAnalysisManager::kOutputContainer, "Pt.AOD.1._data_ptcut.root");
      AliAnalysisDataContainer *coutputpt3 = mgr->CreateContainer("ctcutpt", AliSpectraAODTrackCuts::Class(),     AliAnalysisManager::kOutputContainer, "Pt.AOD.1._data_ptcut.root");

   }
   mgr->ConnectInput(task, 0, cinput);
   mgr->ConnectOutput(task, 1, coutputpt1);
   mgr->ConnectOutput(task, 2, coutputpt2);
   mgr->ConnectOutput(task, 3, coutputpt3);
   mgr->SetDebugLevel(2);

   if (!mgr->InitAnalysis()) return;
   mgr->PrintStatus();
   if (c == 3)
   {
      mgr->StartAnalysis("local");
   }
   if (c != 3)
   {
      mgr->StartAnalysis("proof");
   }
}
 runAODProof_init.C:1
 runAODProof_init.C:2
 runAODProof_init.C:3
 runAODProof_init.C:4
 runAODProof_init.C:5
 runAODProof_init.C:6
 runAODProof_init.C:7
 runAODProof_init.C:8
 runAODProof_init.C:9
 runAODProof_init.C:10
 runAODProof_init.C:11
 runAODProof_init.C:12
 runAODProof_init.C:13
 runAODProof_init.C:14
 runAODProof_init.C:15
 runAODProof_init.C:16
 runAODProof_init.C:17
 runAODProof_init.C:18
 runAODProof_init.C:19
 runAODProof_init.C:20
 runAODProof_init.C:21
 runAODProof_init.C:22
 runAODProof_init.C:23
 runAODProof_init.C:24
 runAODProof_init.C:25
 runAODProof_init.C:26
 runAODProof_init.C:27
 runAODProof_init.C:28
 runAODProof_init.C:29
 runAODProof_init.C:30
 runAODProof_init.C:31
 runAODProof_init.C:32
 runAODProof_init.C:33
 runAODProof_init.C:34
 runAODProof_init.C:35
 runAODProof_init.C:36
 runAODProof_init.C:37
 runAODProof_init.C:38
 runAODProof_init.C:39
 runAODProof_init.C:40
 runAODProof_init.C:41
 runAODProof_init.C:42
 runAODProof_init.C:43
 runAODProof_init.C:44
 runAODProof_init.C:45
 runAODProof_init.C:46
 runAODProof_init.C:47
 runAODProof_init.C:48
 runAODProof_init.C:49
 runAODProof_init.C:50
 runAODProof_init.C:51
 runAODProof_init.C:52
 runAODProof_init.C:53
 runAODProof_init.C:54
 runAODProof_init.C:55
 runAODProof_init.C:56
 runAODProof_init.C:57
 runAODProof_init.C:58
 runAODProof_init.C:59
 runAODProof_init.C:60
 runAODProof_init.C:61
 runAODProof_init.C:62
 runAODProof_init.C:63
 runAODProof_init.C:64
 runAODProof_init.C:65
 runAODProof_init.C:66
 runAODProof_init.C:67
 runAODProof_init.C:68
 runAODProof_init.C:69
 runAODProof_init.C:70
 runAODProof_init.C:71
 runAODProof_init.C:72
 runAODProof_init.C:73
 runAODProof_init.C:74
 runAODProof_init.C:75
 runAODProof_init.C:76
 runAODProof_init.C:77
 runAODProof_init.C:78
 runAODProof_init.C:79
 runAODProof_init.C:80
 runAODProof_init.C:81
 runAODProof_init.C:82
 runAODProof_init.C:83
 runAODProof_init.C:84
 runAODProof_init.C:85
 runAODProof_init.C:86
 runAODProof_init.C:87
 runAODProof_init.C:88
 runAODProof_init.C:89
 runAODProof_init.C:90
 runAODProof_init.C:91
 runAODProof_init.C:92
 runAODProof_init.C:93
 runAODProof_init.C:94
 runAODProof_init.C:95
 runAODProof_init.C:96
 runAODProof_init.C:97
 runAODProof_init.C:98
 runAODProof_init.C:99
 runAODProof_init.C:100
 runAODProof_init.C:101
 runAODProof_init.C:102
 runAODProof_init.C:103
 runAODProof_init.C:104
 runAODProof_init.C:105
 runAODProof_init.C:106
 runAODProof_init.C:107
 runAODProof_init.C:108
 runAODProof_init.C:109
 runAODProof_init.C:110
 runAODProof_init.C:111
 runAODProof_init.C:112
 runAODProof_init.C:113
 runAODProof_init.C:114
 runAODProof_init.C:115
 runAODProof_init.C:116
 runAODProof_init.C:117
 runAODProof_init.C:118
 runAODProof_init.C:119
 runAODProof_init.C:120