ROOT logo
void runTask(Float_t etamax=0.5,const char * incollection = 0, const char * outfile = "dndeta.root", Bool_t skipNorm = kFALSE)
{
  // for running with root only
  gSystem->Load("libTree.so");
  gSystem->Load("libGeom.so");
  gSystem->Load("libVMC.so");
  gSystem->Load("libSTEERBase.so");
  gSystem->Load("libESD.so");
  gSystem->Load("libAOD.so"); 

  // load analysis framework
  gSystem->Load("libANALYSIS");
  gSystem->Load("libANALYSISalice");


  TChain * chain = new TChain ("TE");
  if (incollection == 0) {
    chain->Add("galice.root");
  }
  else if (TString(incollection).Contains("xml")){
    TGrid::Connect("alien://");
    TAlienCollection * coll = TAlienCollection::Open (incollection);
    while(coll->Next()){
      chain->Add(TString("alien://")+coll->GetLFN());
    }
  } else {
    ifstream file_collect(incollection);
    TString line;
    while (line.ReadLine(file_collect) ) {
      chain->Add(line.Data());
    }
  }
  chain->GetListOfFiles()->Print();

  // for includes use either global setting in $HOME/.rootrc
  // ACLiC.IncludePaths: -I$(ALICE_ROOT)/include
  // or in each macro
  gSystem->AddIncludePath("-I$ALICE_ROOT/include");

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

  AliVEventHandler* esdH = new AliESDInputHandler;
  ((AliESDInputHandler*)esdH)->SetReadFriends(kFALSE);
  mgr->SetInputEventHandler(esdH);

  // Create tasks
  gROOT->LoadMacro("AliAnalysisTaskdNdetaMC.cxx++g");

  AliAnalysisTask *task1 = new AliAnalysisTaskdNdetaMC("TaskdNdeta");
  ((AliAnalysisTaskdNdetaMC*)task1)->SetEtaMax(etamax);
  if (skipNorm) ((AliAnalysisTaskdNdetaMC*)task1)->SkipNormalization();
  // Enable MC event handler

  AliMCEventHandler* handler = new AliMCEventHandler;
  handler->SetReadTR(kFALSE);
  mgr->SetMCtruthEventHandler(handler);

  // Add tasks
  mgr->AddTask(task1);

  // Create containers for input/output
  AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("coutput", TList::Class(),    AliAnalysisManager::kOutputContainer, outfile);

  // Connect input/output
  mgr->ConnectInput(task1, 0, cinput);
  mgr->ConnectOutput(task1, 1, coutput1);

  // Enable debug printouts
  mgr->SetDebugLevel(0);

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

  mgr->PrintStatus();

  mgr->StartAnalysis("local", chain);
}
 runTask.C:1
 runTask.C:2
 runTask.C:3
 runTask.C:4
 runTask.C:5
 runTask.C:6
 runTask.C:7
 runTask.C:8
 runTask.C:9
 runTask.C:10
 runTask.C:11
 runTask.C:12
 runTask.C:13
 runTask.C:14
 runTask.C:15
 runTask.C:16
 runTask.C:17
 runTask.C:18
 runTask.C:19
 runTask.C:20
 runTask.C:21
 runTask.C:22
 runTask.C:23
 runTask.C:24
 runTask.C:25
 runTask.C:26
 runTask.C:27
 runTask.C:28
 runTask.C:29
 runTask.C:30
 runTask.C:31
 runTask.C:32
 runTask.C:33
 runTask.C:34
 runTask.C:35
 runTask.C:36
 runTask.C:37
 runTask.C:38
 runTask.C:39
 runTask.C:40
 runTask.C:41
 runTask.C:42
 runTask.C:43
 runTask.C:44
 runTask.C:45
 runTask.C:46
 runTask.C:47
 runTask.C:48
 runTask.C:49
 runTask.C:50
 runTask.C:51
 runTask.C:52
 runTask.C:53
 runTask.C:54
 runTask.C:55
 runTask.C:56
 runTask.C:57
 runTask.C:58
 runTask.C:59
 runTask.C:60
 runTask.C:61
 runTask.C:62
 runTask.C:63
 runTask.C:64
 runTask.C:65
 runTask.C:66
 runTask.C:67
 runTask.C:68
 runTask.C:69
 runTask.C:70
 runTask.C:71
 runTask.C:72
 runTask.C:73
 runTask.C:74
 runTask.C:75
 runTask.C:76
 runTask.C:77
 runTask.C:78
 runTask.C:79