]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/EMCAL/macros/AddTaskEmcalPhysicsSelection.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWG / EMCAL / macros / AddTaskEmcalPhysicsSelection.C
1 // $Id$
2
3 AliEmcalPhysicsSelectionTask* AddTaskEmcalPhysicsSelection(
4   Bool_t exFOnly, 
5   Bool_t wHistos   = kTRUE,
6   UInt_t triggers  = 0,
7   Double_t minE    = -1,
8   Double_t minPt   = -1,
9   Double_t vz      = -1,
10   Bool_t vzdiff    = kFALSE, 
11   Double_t cmin    = -1,
12   Double_t cmax    = -1,
13   Double_t minCellTrackScale = -1,
14   Double_t maxCellTrackScale = -1,
15   Bool_t byPassPhysSelTask = kFALSE
16 )
17 {
18   if(byPassPhysSelTask)
19     return 0;
20
21   // Add EMCAL physics selection task.
22
23   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
24   if (!mgr) {
25     ::Error("AddTaskEmcalPhysicsSelection", "No analysis manager found.");
26     return 0;
27   }
28
29   if (!mgr->GetInputEventHandler()) {
30     ::Error("AddTaskEmcalPhysicsSelection", "This task requires an input event handler");
31     return NULL;
32   }
33
34   Bool_t isMC = (mgr->GetMCtruthEventHandler()) ? kTRUE:kFALSE; 
35   AliEmcalPhysicsSelectionTask *pseltask = new AliEmcalPhysicsSelectionTask("EmcalPSel");
36   pseltask->SetDoWriteHistos(wHistos);
37   AliEmcalPhysicsSelection *physSel = static_cast<AliEmcalPhysicsSelection*>(pseltask->GetPhysicsSelection());
38   if (physSel) {
39     physSel->SetSkipFastOnly(exFOnly);
40     if (isMC)      
41       physSel->SetAnalyzeMC();
42     physSel->SetClusMinE(minE);
43     physSel->SetTrackMinPt(minPt);
44     physSel->SetTriggers(triggers);
45     physSel->SetCentRange(cmin,cmax);
46     physSel->SetZVertex(vz);
47     physSel->SetCheckZvertexDiff(vzdiff);
48     physSel->SetCellTrackScale(minCellTrackScale,maxCellTrackScale);
49   } else {
50     ::Error("AddTaskEmcalPhysicsSelection", "No AliEmcalPhysicsSelection object found.");
51   }
52
53   mgr->AddTask(pseltask);
54
55   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
56   AliAnalysisDataContainer *coutput = mgr->CreateContainer("cstatsout",
57                 TList::Class(),
58                 AliAnalysisManager::kOutputContainer,
59                 "EventStat_temp.root");
60                 
61   mgr->ConnectInput(pseltask,  0, cinput);
62   mgr->ConnectOutput(pseltask, 1, coutput);
63
64   return pseltask;
65 }