3 // Template run macro for producer/consumer tasks
5 // Author: Andrei Gheata
7 void CreateAlienHandler();
9 //______________________________________________________________________________
13 gSystem->Load("libCore.so");
14 gSystem->Load("libGeom.so");
15 gSystem->Load("libVMC.so");
16 gSystem->Load("libPhysics.so");
17 gSystem->Load("libTree.so");
18 gSystem->Load("libSTEERBase.so");
19 gSystem->Load("libESD.so");
20 gSystem->Load("libAOD.so");
21 gSystem->Load("libANALYSIS.so");
22 gSystem->Load("libOADB.so");
23 gSystem->Load("libANALYSISalice.so");
25 // add aliroot indlude path
26 gROOT->ProcessLine(Form(".include %s/include",gSystem->ExpandPathName("$ALICE_ROOT")));
27 gROOT->SetStyle("Plain");
30 AliAnalysisManager* mgr = new AliAnalysisManager("example for using producer/consumer tasks");
31 mgr->SetCommonFileName("output.root");
33 // create the alien handler and attach it to the manager
34 AliAnalysisGrid *plugin = CreateAlienHandler();
35 mgr->SetGridHandler(plugin);
37 // create the alien handler and attach it to the manager
39 AliVEventHandler* iH = new AliESDInputHandler();
40 mgr->SetInputEventHandler(iH);
42 // create 2 producer tasks
43 gROOT->LoadMacro("TaskExchange.cxx+g");
44 gROOT->LoadMacro("AddTaskProducer.C");
45 TaskProducer *prod1 = AddTaskProducer("producer1");
46 TaskProducer *prod2 = AddTaskProducer("producer2");
47 if (!prod1 || !prod2) return;
49 // Create 1 consumer task
50 gROOT->LoadMacro("AddTaskConsumer.C");
51 TaskConsumer *task = AddTaskConsumer("consumer", "producer1", "producer2");
53 // enable debug printouts
54 mgr->SetDebugLevel(2);
55 if (!mgr->InitAnalysis()) return;
59 Printf("Starting analysis example for producer/consumers...");
60 mgr->StartAnalysis("local",3);
63 //______________________________________________________________________________
64 AliAnalysisGrid* CreateAlienHandler()
66 AliAnalysisAlien *plugin = new AliAnalysisAlien();
67 // Set the run mode (can be "full", "test", "offline", "submit" or "terminate")
68 plugin->SetRunMode("test");
69 // Plugin test mode works only providing a file containing test file locations, used in "local" mode also
70 plugin->SetFileForTestMode("files.txt"); // file should contain path name to a local directory containg *ESDs.root etc