]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/EMCAL/macros/AddTaskEmcalPhysicsSelection.C
consistently figure out track cuts (from Ruediger)
[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 )
16 {
17   // Add EMCAL physics selection task.
18
19   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
20   if (!mgr) {
21     ::Error("AddTaskEmcalPhysicsSelection", "No analysis manager found.");
22     return 0;
23   }
24
25   if (!mgr->GetInputEventHandler()) {
26     ::Error("AddTaskEmcalPhysicsSelection", "This task requires an input event handler");
27     return NULL;
28   }
29
30   Bool_t isMC = (mgr->GetMCtruthEventHandler()) ? kTRUE:kFALSE; 
31   AliEmcalPhysicsSelectionTask *pseltask = new AliEmcalPhysicsSelectionTask("EmcalPSel");
32   pseltask->SetDoWriteHistos(wHistos);
33   AliEmcalPhysicsSelection *physSel = static_cast<AliEmcalPhysicsSelection*>(pseltask->GetPhysicsSelection());
34   if (physSel) {
35     physSel->SetSkipFastOnly(exFOnly);
36     if (isMC)      
37       physSel->SetAnalyzeMC();
38     physSel->SetClusMinE(minE);
39     physSel->SetTrackMinPt(minPt);
40     physSel->SetTriggers(triggers);
41     physSel->SetCentRange(cmin,cmax);
42     physSel->SetZVertex(vz);
43     physSel->SetCheckZvertexDiff(vzdiff);
44     physSel->SetCellTrackScale(minCellTrackScale,maxCellTrackScale);
45   } else {
46     ::Error("AddTaskEmcalPhysicsSelection", "No AliEmcalPhysicsSelection object found.");
47   }
48
49   mgr->AddTask(pseltask);
50
51   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
52   AliAnalysisDataContainer *coutput = mgr->CreateContainer("cstatsout",
53                 TList::Class(),
54                 AliAnalysisManager::kOutputContainer,
55                 "EventStat_temp.root");
56                 
57   mgr->ConnectInput(pseltask,  0, cinput);
58   mgr->ConnectOutput(pseltask, 1, coutput);
59
60   return pseltask;
61 }