3 //Macro to run pi0 calibration on local AOD files.
4 //Author: Boris Polishchuk, adapted to AOD by Gustavo Conesa
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.
11 //AliGeomManager::LoadGeometry("geometry.root");
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)! ):
19 // AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
20 // AliCDBManager::Instance()->SetSpecificStorage("PHOS/*","local://./");
22 // AliCDBManager::Instance()->SetRun(0);
23 // AliCDBEntry* e = AliCDBManager::Instance()->Get("PHOS/Align/Data");
24 // TClonesArray *array = (TClonesArray*) e->GetObject();
25 // AliGeomManager::ApplyAlignObjsToGeom(*array);
27 // load analysis framework
28 gSystem->Load("libANALYSIS");
29 gSystem->Load("libANALYSISalice"); //AliAnalysisTaskSE
30 gSystem->Load("libPWG4CaloCalib");
33 Bool_t bCopy = kTRUE; // True if ESD filter not called before.
34 TString eventType = "ESD";
36 gROOT->LoadMacro("$ALICE_ROOT/PWG0/CreateESDChain.C");
37 TChain* chain = CreateESDChain("list.txt", 15);
39 // for includes use either global setting in $HOME/.rootrc
40 // ACLiC.IncludePaths: -I$ALICE_ROOT/include
42 // gSystem->AddIncludePath("$ALICE_ROOT/include");
44 // Create the analysis manager
45 AliAnalysisManager *mgr = new AliAnalysisManager("PHOSPi0Calib");
48 if(eventType =="ESD"){
49 AliVEventHandler* esdH = new AliESDInputHandler();
50 mgr->SetInputEventHandler(esdH);
52 else if if(eventType =="AOD"){
53 AliVEventHandler* aodH = new AliAODInputHandler();
54 mgr->SetInputEventHandler(aodH);
58 //gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/AddTaskESDfilter.C");
59 //AliAnalysisTaskESDfilter *esdfilter = AddTaskESDfilter(kFALSE);
63 AliAnalysisTaskPHOSPi0CalibSelection *task = new AliAnalysisTaskPHOSPi0CalibSelection("PHOSPi0CalibSelection");
64 task->SetClusterMinEnergy(0.4);
68 // Create containers for input/output
69 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
70 AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("histos", TList::Class(), AliAnalysisManager::kOutputContainer, "PHOShistos.root");
72 // Connect input/output
73 mgr->ConnectInput (task, 0, cinput);
74 mgr->ConnectOutput(task, 1, coutput2);
78 AliAODHandler* aodoutHandler = new AliAODHandler();
79 aodoutHandler->SetOutputFileName("AliAODs_PHOS.root");
80 //aodoutHandler->SetCreateNonStandardAOD();
81 mgr->SetOutputEventHandler(aodoutHandler);
83 AliAnalysisDataContainer *coutput1 = mgr->GetCommonOutputContainer();
84 //mgr->CreateContainer("tree", TTree::Class(),
85 // AliAnalysisManager::kOutputContainer, "AliAODs_PHOS.root");
86 mgr->ConnectOutput (task, 0, coutput1 );
91 // Enable debug printouts
92 //mgr->SetDebugLevel(10);
94 if (!mgr->InitAnalysis())
99 mgr->StartAnalysis("local", chain);