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