]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/CaloCalib/macros/anaTask.C
New calibration task for EMCAL with Pi0
[u/mrichter/AliRoot.git] / PWG4 / CaloCalib / macros / anaTask.C
1 void anaTask()
2 {
3   //Macro to run pi0 calibration on local AOD files.
4   //Author: Boris Polishchuk, adapted to AOD by Gustavo Conesa
5         
6   //Uncomment the line below if your ESD files are from old productions
7   //so there are no PHOS geometry matrices written in the ESD.
8   //You can find an ideal geometry here: $ALICE_ROOT/test/QA/geometry.root
9   //and copy to your working directory.
10         
11   //AliGeomManager::LoadGeometry("geometry.root");
12         
13   //You can apply misalignment by following
14   //(remember that your local OCDB in ./PHOS should contain a copy of the
15   //$ALICE_ROOT/OCDB/PHOS/Align directory while ./PHOS/Calib/EmcGainPedestals
16   //should contain the corrections to the calibration coefficients (~1) 
17   //instead of real CC (~0.005)! ):
18         
19   //   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
20   //   AliCDBManager::Instance()->SetSpecificStorage("PHOS/*","local://./");
21         
22   //   AliCDBManager::Instance()->SetRun(0);
23   //   AliCDBEntry* e = AliCDBManager::Instance()->Get("PHOS/Align/Data");
24   //   TClonesArray *array = (TClonesArray*) e->GetObject();
25   //   AliGeomManager::ApplyAlignObjsToGeom(*array);
26         
27   // load analysis framework
28   gSystem->Load("libANALYSIS");
29   gSystem->Load("libANALYSISalice"); //AliAnalysisTaskSE
30   gSystem->Load("libPWG4CaloCalib");
31   
32   //Analysis settings
33  Bool_t bCopy = kTRUE; // True if ESD filter not called before.
34  TString eventType = "ESD";
35
36   gROOT->LoadMacro("$ALICE_ROOT/PWG0/CreateESDChain.C");
37   TChain* chain = CreateESDChain("list.txt", 15);
38   
39   // for includes use either global setting in $HOME/.rootrc
40   // ACLiC.IncludePaths: -I$ALICE_ROOT/include
41   // or in each macro
42   // gSystem->AddIncludePath("$ALICE_ROOT/include");
43   
44   // Create the analysis manager
45   AliAnalysisManager *mgr = new AliAnalysisManager("PHOSPi0Calib");
46   
47   //Input event handler
48   if(eventType =="ESD"){
49     AliVEventHandler* esdH = new AliESDInputHandler();
50     mgr->SetInputEventHandler(esdH);
51   }
52   else if   if(eventType =="AOD"){
53     AliVEventHandler* aodH = new AliAODInputHandler();
54     mgr->SetInputEventHandler(aodH);
55   }
56   
57   // ESD filter task
58   //gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/AddTaskESDfilter.C");
59   //AliAnalysisTaskESDfilter *esdfilter = AddTaskESDfilter(kFALSE);
60   
61   // Calibration task 
62   //
63   AliAnalysisTaskPHOSPi0CalibSelection *task = new AliAnalysisTaskPHOSPi0CalibSelection("PHOSPi0CalibSelection");
64   task->SetClusterMinEnergy(0.4); 
65   task->CopyAOD(bCopy);
66   mgr->AddTask(task);
67   
68   // Create containers for input/output
69   AliAnalysisDataContainer *cinput   = mgr->GetCommonInputContainer();
70   AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("histos", TList::Class(),  AliAnalysisManager::kOutputContainer, "PHOShistos.root");
71   
72   // Connect input/output
73   mgr->ConnectInput   (task, 0, cinput);
74   mgr->ConnectOutput(task, 1, coutput2);
75   
76   if(bCopy){
77
78     AliAODHandler* aodoutHandler   = new AliAODHandler();
79     aodoutHandler->SetOutputFileName("AliAODs_PHOS.root");
80     //aodoutHandler->SetCreateNonStandardAOD();
81     mgr->SetOutputEventHandler(aodoutHandler);
82
83     AliAnalysisDataContainer *coutput1 =    mgr->GetCommonOutputContainer();
84     //mgr->CreateContainer("tree", TTree::Class(),
85     //             AliAnalysisManager::kOutputContainer, "AliAODs_PHOS.root");
86     mgr->ConnectOutput (task,     0, coutput1 );
87
88   }
89
90
91   // Enable debug printouts
92   //mgr->SetDebugLevel(10);
93   
94   if (!mgr->InitAnalysis())
95     return;
96   
97   mgr->PrintStatus();
98   
99   mgr->StartAnalysis("local", chain);
100 }