]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG0/genLevelSimulation/runTask.C
Code for the simulations at generator level, used for model comparison in the first...
[u/mrichter/AliRoot.git] / PWG0 / 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.so");
5   gSystem->Load("libGeom.so");
6   gSystem->Load("libVMC.so");
7   gSystem->Load("libSTEERBase.so");
8   gSystem->Load("libESD.so");
9   gSystem->Load("libAOD.so"); 
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   mgr->SetInputEventHandler(esdH);
45
46   // Create tasks
47   gROOT->LoadMacro("AliAnalysisTaskdNdetaMC.cxx++g");
48
49   AliAnalysisTask *task1 = new AliAnalysisTaskdNdetaMC("TaskdNdeta");
50   ((AliAnalysisTaskdNdetaMC*)task1)->SetEtaMax(etamax);
51   if (skipNorm) ((AliAnalysisTaskdNdetaMC*)task1)->SkipNormalization();
52   // Enable MC event handler
53
54   AliMCEventHandler* handler = new AliMCEventHandler;
55   handler->SetReadTR(kFALSE);
56   mgr->SetMCtruthEventHandler(handler);
57
58   // Add tasks
59   mgr->AddTask(task1);
60
61   // Create containers for input/output
62   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
63   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("coutput", TList::Class(),    AliAnalysisManager::kOutputContainer, outfile);
64
65   // Connect input/output
66   mgr->ConnectInput(task1, 0, cinput);
67   mgr->ConnectOutput(task1, 1, coutput1);
68
69   // Enable debug printouts
70   mgr->SetDebugLevel(0);
71
72   if (!mgr->InitAnalysis()) return;
73
74   mgr->PrintStatus();
75
76   mgr->StartAnalysis("local", chain);
77 }