Code used for pi0 Raa and v2 analysis in LHC10h
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / PHOS_PbPb / Pi0Spectrum.C
1 void Pi0Spectrum(const char* dataset="collection.xml")
2 {
3     
4   gSystem->Load("libTree.so");
5   gSystem->Load("libGeom.so");
6   gSystem->Load("libVMC.so");
7   gSystem->Load("libPhysics.so");
8   
9   //load analysis framework
10   gSystem->Load("libANALYSIS");
11   gSystem->Load("libANALYSISalice"); //AliAnalysisTaskSE
12   
13   gSystem->AddIncludePath("-I$ALICE_ROOT/include -I$ALICE_ROOT/PHOS");
14
15   // A task can be compiled dynamically with AClic
16   gROOT->LoadMacro("AliCaloPhoton.cxx+g");
17   gROOT->LoadMacro("AliAnalysisTaskPi0Flow.cxx+g");
18   
19   // Connect to alien
20   TString token = gSystem->Getenv("GRID_TOKEN") ;
21   if (1) // token == "OK" ) 
22     TGrid::Connect("alien://");
23   else 
24     AliInfo("You are not connected to the GRID") ; 
25
26   cout << "Pi0Analysis: processing collection " << dataset << endl;
27   
28   // Create the chain
29   TChain* chain = new TChain("esdTree");
30  
31   TGridCollection * collection = dynamic_cast<TGridCollection*>(TAlienCollection::Open(dataset));
32   
33   TAlienResult* result = collection->GetGridResult("",0 ,0);
34   TList* rawFileList = result->GetFileInfoList();
35   
36   for (Int_t counter=0 ; counter < rawFileList->GetEntries() ; counter++) {
37     TFileInfo * fi =  static_cast<TFileInfo*>(rawFileList->At(counter)) ; 
38     const char * rawFile = fi->GetCurrentUrl()->GetUrl() ;  
39     printf("Processing %s\n", rawFile) ;
40     chain->Add(rawFile);
41     printf("Chain: %d entries.\n",chain->GetEntries()); 
42   }
43
44
45   // Make the analysis manager
46   AliAnalysisManager *mgr = new AliAnalysisManager("Pi0Spectrum");
47   
48   // ESD input handler
49   AliESDInputHandler* esdH = new AliESDInputHandler();
50   esdH->SetReadFriends(kFALSE);
51   mgr->SetInputEventHandler(esdH);
52
53   
54   // Debug level
55   mgr->SetDebugLevel(0);
56
57   // Add physics selection
58   gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
59   AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection();
60
61   gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
62   AliCentralitySelectionTask *taskCentrality = AddTaskCentrality() ;
63  // taskCentrality->SetPass(2); // remember to set the pass you are processing!!! 
64
65   gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskEventplane.C");
66   AliEPSelectionTask *taskEP = AddTaskEventplane() ; 
67   
68   // Add my task
69   AliAnalysisTaskPi0Flow *task1 = new AliAnalysisTaskPi0Flow("Pi0Spectrum");
70
71   TFile *fBadMap = TFile::Open("alien:///alice/cern.ch/user/p/prsnko/BadMaps/BadMap_LHC10h_period1.root");
72   //  TFile *fBadMap = TFile::Open("BadMap_LHC10h_period1.root");
73   if(fBadMap->IsOpen()){
74     printf("\n\n...Adding PHOS bad channel map \n") ;
75     gROOT->cd();
76     char key[55] ;
77     for(Int_t mod=1;mod<4; mod++){
78       sprintf(key,"PHOS_BadMap_mod%d",mod) ;
79       TH2I * h = (TH2I*)fBadMap->Get(key) ;
80       if(h)
81         task1->SetPHOSBadMap(mod,h) ;
82     }
83     fBadMap->Close() ;
84   }
85
86   task1->SelectCollisionCandidates();
87   mgr->AddTask(task1);
88
89   
90   // Create containers for input/output
91   AliAnalysisDataContainer *cinput   = mgr->GetCommonInputContainer(); 
92   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("histESD",TList::Class(),AliAnalysisManager::kOutputContainer,"histos.root");
93   
94   // Connect input/output
95   mgr->ConnectInput(task1 , 0, cinput);
96   mgr->ConnectOutput(task1, 1, coutput1);
97   
98   if (mgr->InitAnalysis()) {
99     mgr->PrintStatus();
100     mgr->StartAnalysis("local", chain);
101   }
102   
103 }