]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/PHOSTasks/PHOS_PbPb/macros/GRID/Pi0SpectrumLHC11h.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / PHOS_PbPb / macros / GRID / Pi0SpectrumLHC11h.C
1 void Pi0SpectrumLHC11h(const char* dataset="collection.xml",
2                        bool recompile = true
3 )
4 {
5   /* $Id$ */
6   TStopwatch timer;
7   timer.Start();
8
9
10     TStringToken libs("Core,Tree,Geom,VMC,Physics,Minuit,Gui,XMLParser,Minuit2,Proof,STEERBase,ESD,AOD,OADB,ANALYSIS,ANALYSISalice,CDB,RAWDatabase,STEER,CORRFW,PHOSUtils,PHOSbase,PHOSpi0Calib,PHOSrec,PHOSshuttle,PHOSsim", ",");
11   while( libs.NextToken() )
12     gSystem->Load( Form("lib%s", libs.Data()) );
13
14   gSystem->Load("libTree");
15   gSystem->Load("libGeom");
16   gSystem->Load("libVMC");
17   gSystem->Load("libPhysics");
18   
19   //load analysis framework
20   gSystem->Load("libANALYSIS");
21   gSystem->Load("libANALYSISalice"); //AliAnalysisTaskSE
22   
23   gSystem->AddIncludePath("-I$ALICE_ROOT/include -I$ALICE_ROOT/PHOS");
24
25   // A task can be compiled dynamically with AClic
26   if( recompile ) {
27     gROOT->LoadMacro("AliCaloPhoton.cxx+g");
28     gROOT->LoadMacro("AliPHOSEPFlattener.cxx+g");
29     gROOT->LoadMacro("AliAnalysisTaskPi0Flow.cxx+g");
30   }
31   else {
32     gSystem->Load("libPWGGAPHOSTasks");
33   }
34   
35   // Connect to alien
36   TString token = gSystem->Getenv("GRID_TOKEN") ;
37   if (1) // token == "OK" ) 
38     TGrid::Connect("alien://");
39   else 
40     AliInfo("You are not connected to the GRID") ; 
41
42   cout << "Pi0Analysis: processing collection " << dataset << endl;
43
44   // Create the chain
45   TChain* chain = new TChain("aodTree");
46
47   TGridCollection * collection = dynamic_cast<TGridCollection*>(TAlienCollection::Open(dataset));
48   
49   TAlienResult* result = collection->GetGridResult("",0 ,0);
50   TList* rawFileList = result->GetFileInfoList();
51   
52   for (Int_t counter=0 ; counter < rawFileList->GetEntries() ; counter++) {
53     TFileInfo * fi =  static_cast<TFileInfo*>(rawFileList->At(counter)) ; 
54     const char * rawFile = fi->GetCurrentUrl()->GetUrl() ;  
55     printf("Processing %s\n", rawFile) ;
56     chain->Add(rawFile);
57     printf("Chain: %d entries.\n",chain->GetEntriesFast()); 
58   }
59
60   // Make the analysis manager
61   AliAnalysisManager *mgr = new AliAnalysisManager("Pi0Spectrum");
62   mgr->SetCommonFileName("histos.root");
63   
64   // AOD input handler
65   AliAODInputHandler* aodH = new AliAODInputHandler();
66   mgr->SetInputEventHandler(aodH);
67
68   
69   // Debug level
70   mgr->SetDebugLevel(2);
71
72   gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskEventplane.C");
73   AliEPSelectionTask *taskEP = AddTaskEventplane() ; 
74
75   gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskVZEROEPSelection.C");
76   AliVZEROEPSelectionTask *selTask = AddTaskVZEROEPSelection();  
77
78   // Add my task
79   AliAnalysisTaskPi0Flow* task;
80   if ( recompile ) {
81     task = new AliAnalysisTaskPi0Flow("AliAnalysisTaskPi0Flow");
82     //task->SetPeriod(AliAnalysisTaskPi0Flow::kLHC11h);
83     mgr->AddTask(task);
84     mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
85     mgr->ConnectOutput(task, 1, mgr->CreateContainer("outCont1", TList::Class(),AliAnalysisManager::kOutputContainer,"histos.root"));
86   } else {
87     gROOT->LoadMacro("$ALICE_ROOT/PWGGA/PHOSTasks/PHOS_PbPb/AddTaskPHOSPi0Flow.C");
88     task = AddTaskPHOSPi0Flow();
89   }
90
91 /*
92   TFile *fBadMap = TFile::Open("alien:///alice/cern.ch/user/p/prsnko/BadMaps/BadMap_LHC10h_period1.root");
93   //  TFile *fBadMap = TFile::Open("BadMap_LHC10h_period1.root");
94   if(fBadMap->IsOpen()){
95     printf("\n\n...Adding PHOS bad channel map \n") ;
96     gROOT->cd();
97     char key[55] ;
98     for(Int_t mod=1;mod<4; mod++){
99       sprintf(key,"PHOS_BadMap_mod%d",mod) ;
100       TH2I * h = (TH2I*)fBadMap->Get(key) ;
101       if(h)
102         task1->SetPHOSBadMap(mod,h) ;
103     }
104     fBadMap->Close() ;
105   }
106 */
107
108
109   
110   // // Create containers for input/output
111   // AliAnalysisDataContainer *cinput   = mgr->GetCommonInputContainer(); 
112   // AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("pi0SpecOut1",TList::Class(),AliAnalysisManager::kOutputContainer,"histos.root");
113   
114   // // Connect input/output
115   // mgr->ConnectInput(task1 , 0, cinput);
116   // mgr->ConnectOutput(task1, 1, coutput1);
117  
118   if (mgr->InitAnalysis()) {
119     mgr->PrintStatus();
120     mgr->StartAnalysis("local", chain);
121   }
122
123   timer.Stop();
124   timer.Print();
125 }