]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGUD/macros/genLevelSimulation/runTask.C
.so cleanup: removed from gSystem->Load()
[u/mrichter/AliRoot.git] / PWGUD / macros / genLevelSimulation / runTask.C
1 void runTask(Float_t etamax=0.5,const char * incollection = 0, const char * outfile = "dndeta.root", Bool_t skipNorm = kFALSE)
2 {
3   // for running with root only
4   gSystem->Load("libTree");
5   gSystem->Load("libGeom");
6   gSystem->Load("libVMC");
7   gSystem->Load("libSTEERBase");
8   gSystem->Load("libESD");
9   gSystem->Load("libAOD");
10
11   // load analysis framework
12   gSystem->Load("libANALYSIS");
13   gSystem->Load("libANALYSISalice");
14
15
16   TChain * chain = new TChain ("TE");
17   if (incollection == 0) {
18     chain->Add("galice.root");
19   }
20   else if (TString(incollection).Contains("xml")){
21     TGrid::Connect("alien://");
22     TAlienCollection * coll = TAlienCollection::Open (incollection);
23     while(coll->Next()){
24       chain->Add(TString("alien://")+coll->GetLFN());
25     }
26   } else {
27     ifstream file_collect(incollection);
28     TString line;
29     while (line.ReadLine(file_collect) ) {
30       chain->Add(line.Data());
31     }
32   }
33   chain->GetListOfFiles()->Print();
34
35   // for includes use either global setting in $HOME/.rootrc
36   // ACLiC.IncludePaths: -I$(ALICE_ROOT)/include
37   // or in each macro
38   gSystem->AddIncludePath("-I$ALICE_ROOT/include");
39
40   // Create the analysis manager
41   AliAnalysisManager *mgr = new AliAnalysisManager("dNdeta");
42
43   AliVEventHandler* esdH = new AliESDInputHandler;
44   ((AliESDInputHandler*)esdH)->SetReadFriends(kFALSE);
45   mgr->SetInputEventHandler(esdH);
46
47   // Create tasks
48   gROOT->LoadMacro("AliAnalysisTaskdNdetaMC.cxx++g");
49
50   AliAnalysisTask *task1 = new AliAnalysisTaskdNdetaMC("TaskdNdeta");
51   ((AliAnalysisTaskdNdetaMC*)task1)->SetEtaMax(etamax);
52   if (skipNorm) ((AliAnalysisTaskdNdetaMC*)task1)->SkipNormalization();
53   // Enable MC event handler
54
55   AliMCEventHandler* handler = new AliMCEventHandler;
56   handler->SetReadTR(kFALSE);
57   mgr->SetMCtruthEventHandler(handler);
58
59   // Add tasks
60   mgr->AddTask(task1);
61
62   // Create containers for input/output
63   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
64   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("coutput", TList::Class(),    AliAnalysisManager::kOutputContainer, outfile);
65
66   // Connect input/output
67   mgr->ConnectInput(task1, 0, cinput);
68   mgr->ConnectOutput(task1, 1, coutput1);
69
70   // Enable debug printouts
71   mgr->SetDebugLevel(0);
72
73   if (!mgr->InitAnalysis()) return;
74
75   mgr->PrintStatus();
76
77   mgr->StartAnalysis("local", chain);
78 }