]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/UserTasks/PHOS_PbPbQA/PHOSPbPb.C
QA task for pi0 parameters in PbPb runs in PHOS
[u/mrichter/AliRoot.git] / PWG4 / UserTasks / PHOS_PbPbQA / PHOSPbPb.C
1 void PHOSPbPbQA(const char* dataset="collection.xml")
2 {
3   gSystem->Load("libTree.so");
4   gSystem->Load("libGeom.so");
5   gSystem->Load("libVMC.so");
6   gSystem->Load("libPhysics.so");
7   
8   //load analysis framework
9   gSystem->Load("libANALYSIS");
10   gSystem->Load("libANALYSISalice"); //AliAnalysisTaskSE
11
12   gSystem->Load("libPWG4UserTasks.so");
13   
14   gSystem->AddIncludePath("-I$ALICE_ROOT/include -I$ALICE_ROOT/PHOS");
15
16   // A task can be compiled dynamically with AClic
17   // gROOT->LoadMacro("AliCaloPhoton.cxx+g");
18   gROOT->LoadMacro("AliAnalysisTaskPHOSPbPbQA.cxx+g");
19
20   cout << "PbPbQA: processing collection " << dataset << endl;
21
22   TString data = dataset;
23   TChain* chain = 0;
24   
25   if(data.Contains(".xml")) {
26     
27     TGrid::Connect("alien://");
28     
29     chain = new TChain("esdTree");
30     TGridCollection * collection = dynamic_cast<TGridCollection*>(TAlienCollection::Open(dataset));
31     
32     TAlienResult* result = collection->GetGridResult("",0 ,0);
33     TList* rawFileList = result->GetFileInfoList();
34     
35     for (Int_t counter=0 ; counter < rawFileList->GetEntries() ; counter++) {
36       TFileInfo * fi =  static_cast<TFileInfo*>(rawFileList->At(counter)) ; 
37       const char * rawFile = fi->GetCurrentUrl()->GetUrl() ;  
38       printf("Processing %s\n", rawFile) ;
39       chain->Add(rawFile);
40       printf("Chain: %d entries.\n",chain->GetEntries()); 
41     }
42   }
43   
44   if(data.Contains(".txt")) {
45     gROOT->LoadMacro("$ALICE_ROOT/PWG0/CreateESDChain.C");
46     chain = CreateESDChain(dataset, 300);
47   }
48   
49   if(data.Contains(".root")) {
50     chain = new TChain("esdTree");
51     chain->Add(dataset);
52   }
53
54   AliLog::SetGlobalLogLevel(AliLog::kError);
55   
56   Int_t nentr = chain->GetEntries();
57   printf("Number of events in the collection is %d\n",nentr);
58
59   // Make the analysis manager
60   AliAnalysisManager *mgr  = new AliAnalysisManager("Manager", "Manager");
61
62     // Input handler
63   AliESDInputHandler *esdHandler = new AliESDInputHandler();
64   mgr->SetInputEventHandler(esdHandler);
65   
66   // Output handler
67   AliESDHandler* esdoutHandler   = new AliESDHandler();
68   
69   // Debug level
70   mgr->SetDebugLevel(0);
71   
72   //Add centrality task!
73   gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
74   AliCentralitySelectionTask *taskCentrality = AddTaskCentrality() ;
75   taskCentrality->SetMCInput();
76
77   //Add REACTION PLANE task!
78   gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskEventplane.C");
79   AliEPSelectionTask*taskEP=  AddTaskEventplane() ;
80   
81   // Add my task
82   AliAnalysisTaskPHOSPbPbQA *task1 = new AliAnalysisTaskPHOSPbPbQA("PbPbQA");
83   mgr->AddTask(task1);
84   
85   // Create containers for input/output
86   AliAnalysisDataContainer *cinput   = mgr->GetCommonInputContainer(); 
87   AliAnalysisDataContainer *coutput = mgr->CreateContainer("histESD",TList::Class(),
88                                                             AliAnalysisManager::kOutputContainer,
89                                                             "PHOSPbPbQA.root"); 
90   
91   // Connect input/output for task1
92   mgr->ConnectInput(task1 , 0, cinput);
93   mgr->ConnectOutput(task1, 1, coutput);
94   
95   if (mgr->InitAnalysis()) {
96     mgr->PrintStatus();
97     mgr->StartAnalysis("local", chain);
98   }
99   
100   cout <<" Analysis ended sucessfully "<< endl ;
101   
102 }