1 void PHOSPbPbQA(const char* dataset="collection.xml")
3 gSystem->Load("libTree.so");
4 gSystem->Load("libGeom.so");
5 gSystem->Load("libVMC.so");
6 gSystem->Load("libPhysics.so");
8 //load analysis framework
9 gSystem->Load("libANALYSIS");
10 gSystem->Load("libANALYSISalice"); //AliAnalysisTaskSE
12 gSystem->Load("libPWG4UserTasks.so");
14 gSystem->AddIncludePath("-I$ALICE_ROOT/include -I$ALICE_ROOT/PHOS");
16 cout << "PHOSPbPbQA: processing collection " << dataset << endl;
18 TString data = dataset;
21 if(data.Contains(".xml")) {
23 TGrid::Connect("alien://");
25 chain = new TChain("esdTree");
26 TGridCollection * collection = dynamic_cast<TGridCollection*>(TAlienCollection::Open(dataset));
28 TAlienResult* result = collection->GetGridResult("",0 ,0);
29 TList* rawFileList = result->GetFileInfoList();
31 for (Int_t counter=0 ; counter < rawFileList->GetEntries() ; counter++) {
32 TFileInfo * fi = static_cast<TFileInfo*>(rawFileList->At(counter)) ;
33 const char * rawFile = fi->GetCurrentUrl()->GetUrl() ;
34 printf("Processing %s\n", rawFile) ;
36 printf("Chain: %d entries.\n",chain->GetEntries());
40 if(data.Contains(".txt")) {
41 gROOT->LoadMacro("$ALICE_ROOT/PWG0/CreateESDChain.C");
42 chain = CreateESDChain(dataset, 300);
45 if(data.Contains(".root")) {
46 chain = new TChain("esdTree");
50 AliLog::SetGlobalLogLevel(AliLog::kError);
52 Int_t nentr = chain->GetEntries();
53 printf("Number of events in the collection is %d\n",nentr);
55 // Make the analysis manager
56 AliAnalysisManager *mgr = new AliAnalysisManager("Manager", "Manager");
59 AliESDInputHandler *esdHandler = new AliESDInputHandler();
60 mgr->SetInputEventHandler(esdHandler);
63 AliESDHandler* esdoutHandler = new AliESDHandler();
66 mgr->SetDebugLevel(0);
68 //Add centrality task!
69 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
70 AliCentralitySelectionTask *taskCentrality = AddTaskCentrality() ;
71 // taskCentrality->SetMCInput();
74 AliAnalysisTaskPHOSPbPbQA *task1 = new AliAnalysisTaskPHOSPbPbQA("PbPbQA");
77 // Create containers for input/output
78 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
79 AliAnalysisDataContainer *coutput = mgr->CreateContainer("histESD",TList::Class(),
80 AliAnalysisManager::kOutputContainer,
83 // Connect input/output for task1
84 mgr->ConnectInput(task1 , 0, cinput);
85 mgr->ConnectOutput(task1, 1, coutput);
87 if (mgr->InitAnalysis()) {
89 mgr->StartAnalysis("local", chain);
92 cout <<" Analysis ended sucessfully "<< endl ;