]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/PHOSTasks/UserTasks/macros/AddTaskPHOSpPbPi0.C
a77a3ae47c930f687c35d219ac311b961ea858c5
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / UserTasks / macros / AddTaskPHOSpPbPi0.C
1 AliAnalysisTaskSEPHOSpPbPi0* AddTaskPHOSpPbPi0(Bool_t isMCtruth=kFALSE, UInt_t triggerMask = AliVEvent::kMB, Bool_t isBadMap=kFALSE)
2 {
3   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4   if (!mgr) {
5     ::Error("AddTaskPHOSpPbPi0", "No analysis manager to connect to.");
6     return NULL;
7   }
8   TString type = mgr->GetInputEventHandler()->GetDataType();
9   if (!type.Contains("ESD") && !type.Contains("AOD")) {
10     ::Error("AddTaskPHOSpPbPi0", "PHOSpPbPi0 task needs the manager to have an ESD or AOD input handler.");
11     return NULL;
12   }
13   if (isMCtruth && type.Contains("ESD")) {
14     AliMCEventHandler *mcH = mgr->GetMCtruthEventHandler();
15     if (!mcH) {
16       ::Error("AddTaskPHOSpPbPi0", "PHOSpPbPi0 task needs the manager to have an MC evnet handler.");
17       return NULL;
18     }
19   }
20
21   const Int_t nBins = 6;
22   Double_t cBin[nBins+1] = {0., 20., 40., 60., 80., 90., 100.}; TArrayD tCent(nBins+1, cBin);
23   Int_t    buffer[nBins] = { 40,  80,  80,  100,  100,  100  }; TArrayI tBuffer(nBins, buffer);
24
25   AliAnalysisTaskSEPHOSpPbPi0 *task = new AliAnalysisTaskSEPHOSpPbPi0("TaskPHOSpPbPi0");
26   task->SetUseMC(isMCtruth);
27   task->SetXBins(tCent, tBuffer);
28   task->SetLogWeight(0.06);
29   task->SetMinNCells(2);
30   task->SetMinClusterEnergy(0.3);
31   task->SetMinM02(0.2);
32   task->SetMinDistToBad(2.5);
33   task->SetDebugLevel(-1);
34
35   // Bad maps for PHOS
36   if (isBadMap) {
37     AliOADBContainer badmapContainer("phosBadMap");
38     badmapContainer.InitFromFile("$ALICE_ROOT/OADB/PHOS/PHOSBadMaps.root","phosBadMap");
39     TObjArray *maps = (TObjArray*)badmapContainer.GetObject(144871,"phosBadMap"); //run number LHC11a
40
41     for (Int_t mod=1;mod<4; mod++) {
42       TH2I * h = (TH2I*)maps->At(mod);
43       if(h) task->SetPHOSBadMap(mod,h);
44     }
45   }
46
47   task->SelectCollisionCandidates(triggerMask); 
48   mgr->AddTask(task);
49
50   mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
51
52   AliAnalysisDataContainer *coutput = mgr->CreateContainer("histosPHOS", TList::Class(), AliAnalysisManager::kOutputContainer, "histosPHOS.root");
53   mgr->ConnectOutput(task, 1, coutput);
54
55   return task;
56 }