]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/PHOSTasks/PHOS_PbPb/AddTaskPHOSPi0Flow.C
Fixed TOF cut implementation
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / PHOS_PbPb / AddTaskPHOSPi0Flow.C
1 AliAnalysisTaskPi0Flow* AddTaskPHOSPi0Flow (const char* name = "PHOSPi0Flow",
2                                             const char* options = "",
3                                             UInt_t offlineTriggerMask = AliVEvent::kCentral,
4                                             AliAnalysisTaskPi0Flow::TriggerSelection internalTriggerSelection = AliAnalysisTaskPi0Flow::kNoSelection )
5 {
6   //Add a task AliAnalysisTaskPi0Flow to the analysis train
7   //Author: Henrik Qvigstad
8   /* $Id$ */
9
10   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
11   if (!mgr) {
12     ::Error("AddTaskPHOSPi0Flow", "No analysis manager to connect to");
13     return NULL;
14   }
15   
16   if (!mgr->GetInputEventHandler()) {
17     ::Error("AddTaskPHOSPi0Flow", "This task requires an input event handler");
18     return NULL;
19   }
20
21   AliAnalysisTaskPi0Flow* task = new AliAnalysisTaskPi0Flow(Form("%sTask", name));
22
23   // Binning
24   // Central:
25   if( AliVEvent::kCentral == offlineTriggerMask ) {
26     const int nbins = 4;
27     Double_t cbin[nbins+1] = {0., 5., 8., 9., 10.};
28     TArrayD tbin(nbins+1, cbin);
29     Int_t    nMixed[nbins] = {6, 6, 6, 6};
30     TArrayI tNMixed(nbins, nMixed);
31     task->SetCentralityBinning(tbin, tNMixed);
32   }
33   // SemiCentral:
34   if( AliVEvent::kSemiCentral == offlineTriggerMask ) {
35     const int nbins = 8;
36     Double_t cbin[nbins+1] = {10., 11., 12., 13., 15., 20., 30., 40., 50.};
37     TArrayD tbin(nbins+1, cbin);
38     Int_t    nMixed[nbins] = {40, 40, 40, 40, 40, 40, 40, 40};
39     TArrayI tNMixed(nbins, nMixed);
40     task->SetCentralityBinning(tbin, tNMixed);
41   }
42   // MB or PHOS Trigger:
43   if( AliVEvent::kMB == offlineTriggerMask || AliVEvent::kPHOSPb == offlineTriggerMask ) {
44     const int nbins = 8;
45     Double_t cbin[nbins+1] = {0., 10., 20., 30., 40., 50., 60., 70., 80.};
46     TArrayD tbin(nbins+1, cbin);
47     Int_t    nMixed[nbins] = {6, 40, 40, 40, 40, 80, 80, 80};
48     TArrayI tNMixed(nbins, nMixed);
49     task->SetCentralityBinning(tbin, tNMixed);
50   }
51
52   //task->SetEventMixingRPBinning(9);
53   //task->SetMixingArraysLength(10);
54   task->SelectCollisionCandidates(offlineTriggerMask);
55   task->SetInternalTriggerSelection(internalTriggerSelection);
56   task->EnableTOFCut(true, 100.e-9, true);
57   
58   if( TString(options).Contains("11h") )
59     task->SetPeriod( AliAnalysisTaskPi0Flow::kLHC11h );
60
61   mgr->AddTask(task);
62   mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer() );
63   
64   TString cname(Form("%sCoutput1", name));
65   TString pname(Form("%s:%s", AliAnalysisManager::GetCommonFileName(), name));
66   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(cname.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, pname.Data());
67   mgr->ConnectOutput(task, 1, coutput1);
68   
69   return task;
70 }