Event embedding tasks for PHOS are added (D.Peressounko)
[u/mrichter/AliRoot.git] / PWG4 / UserTasks / PHOS_embedding / CreateAOD.C
1 void CreateAOD()
2 {
3   // Main
4   
5   // LoadLibraries
6   gSystem->Load("libTree.so");
7   gSystem->Load("libGeom.so");
8   gSystem->Load("libVMC.so");
9   gSystem->Load("libXMLIO.so");
10   gSystem->Load("libMatrix.so");
11   gSystem->Load("libPhysics.so");
12   gSystem->Load("libSTEERBase.so");
13   gSystem->Load("libESD.so");
14   gSystem->Load("libAOD.so");
15   gSystem->Load("libANALYSIS.so");
16   gSystem->Load("libANALYSISalice.so");
17   gSystem->Load("libCORRFW.so");
18   gSystem->Load("libPWG3base.so");
19   gSystem->Load("libPWG3muon.so");
20   gSystem->Load("libTENDER.so");
21 //gSystem->Load("libTENDERSupplies.so"); 
22
23   gSystem->AddIncludePath("-I$ALICE_ROOT/include -I$ALICE_ROOT/PHOS");
24   gROOT->LoadMacro("AliPHOSDigitDecalibrate.cxx++") ;
25
26   //Data
27   TChain *chain       = new TChain("esdTree") ;
28   chain->Add("AliESDs.root");
29   
30   if(chain){
31     AliLog::SetGlobalLogLevel(AliLog::kError);//Minimum prints on screen
32     
33     //--------------------------------------
34     // Make the analysis manager
35     //-------------------------------------
36     AliAnalysisManager *mgr  = new AliAnalysisManager("Manager", "Manager");
37     
38     AliMCEventHandler* mcHandler = new AliMCEventHandler();
39     mcHandler->SetReadTR(kFALSE);//Do not search TrackRef file
40     mgr->SetMCtruthEventHandler(mcHandler);
41     
42     AliAODHandler* aodoutHandler   = new AliAODHandler();
43     aodoutHandler->SetOutputFileName("AliAOD.root");
44     ////aodoutHandler->SetCreateNonStandardAOD();
45     mgr->SetOutputEventHandler(aodoutHandler);
46     
47     AliESDInputHandler *esdHandler = new AliESDInputHandler();
48     esdHandler->SetReadFriends(kFALSE);
49     mgr->SetInputEventHandler(esdHandler);
50     
51     //mgr->SetDebugLevel(-1); // For debugging, do not uncomment if you want no messages.
52     
53     //-------------------------------------------------------------------------
54     //Define task, put here any other task that you want to use.
55     //-------------------------------------------------------------------------
56     AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
57     AliAnalysisDataContainer *coutput1;
58     
59     coutput1 = mgr->GetCommonOutputContainer();
60
61
62
63     //========= Add tender to the ANALYSIS manager and set default storage =====
64
65     AliTender *tender=new AliTender("AnalysisTender");
66     tender->SetDefaultCDBStorage("local://$ALICE_ROOT/OCDB"); //comment this you acess grid
67     mgr->AddTask(tender);
68
69     //========= Attach PHOS supply ======
70     AliPHOSDigitDecalibrate *PHOSSupply=new AliPHOSDigitDecalibrate("PHOStender");
71     tender->AddSupply(PHOSSupply);
72     TFile * fDecalib = TFile::Open("Decalibraiton.root") ;
73     char key[55] ;
74     for(Int_t mod=0; mod<5; mod++){
75       sprintf(key,"DecalibrMod%d",mod) ;
76       TH2F * h = (TH2F*)fDecalib->Get(key) ;
77       PHOSSupply->SetDecalibration(mod,h) ;
78     }
79     fDecalib->Close() ;
80
81     //================================================
82     //              data containers
83     //================================================
84
85     //            define output containers, please use 'username'_'somename'
86     AliAnalysisDataContainer *coutput1 =
87       mgr->CreateContainer("tender_event", AliESDEvent::Class(),
88                            AliAnalysisManager::kExchangeContainer,"default_tender");
89  
90     //           connect containers
91     mgr->ConnectInput  (tender,  0, mgr->GetCommonInputContainer() );
92     mgr->ConnectOutput (tender,  1, coutput1);
93
94
95
96
97
98
99     
100     gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskESDFilter.C");
101     AliAnalysisTaskESDfilter *taskesdfilter = AddTaskESDFilter(kTRUE);
102     
103     //-----------------------
104     // Run the analysis
105     //-----------------------    
106     mgr->InitAnalysis();
107     mgr->PrintStatus();
108     mgr->StartAnalysis("local",chain);
109     
110     cout <<" Analysis ended sucessfully "<< endl ;
111     
112   }
113   else cout << "Chain was not produced ! "<<endl;
114   
115 }