]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/PHOSTasks/PHOS_Correlation/AddTaskPi0Correlations.C
Added line at the end
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / PHOS_Correlation / AddTaskPi0Correlations.C
1 AliPHOSCorrelations* AddTaskPi0Correlations (           const char* name = "Pi0Corr",
2                                                         const char* options = "11h",
3                                                         UInt_t offlineTriggerMask = AliVEvent::kCentral,
4                                                         AliPHOSCorrelations::TriggerSelection internalTriggerSelection = AliPHOSCorrelations::kNoSelection,
5                                                         Double_t sigmaWidth = 3.,
6                                                         Int_t downCentLimit = 0,
7                                                         Int_t upCentLimit = 90 )
8 {
9         //Author: Ponomarenko Daniil 
10         /* $Id$ */
11
12         AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
13         if (!mgr) 
14         {
15                 ::Error("AddTaskPi0CorrelationsL", "No analysis manager to connect to");
16                 return NULL;
17         }
18
19         if (!mgr->GetInputEventHandler()) 
20         {
21                 ::Error("AddTaskPi0CorrelationsL", "This task requires an input event handler");
22                 return NULL;
23         }
24         
25                 
26         stringstream ss;
27         ss << downCentLimit;
28         string strDownCentLimit = ss.str();
29         char text[255];
30         sprintf(text,"%2i",upCentLimit);
31         string strUpCentLimit = text;
32         TString centralityBorder = TString ("CB") + strDownCentLimit.c_str() + TString ("t") + strUpCentLimit.c_str() + TString ("Cnt");
33         TString sigmaBorder = Form("%2iSigma", int(sigmaWidth*10.));
34         if (sigmaWidth == 0) sigmaBorder = "00Sigma";
35         TString sName = TString (name) + sigmaBorder + centralityBorder ;
36
37
38         AliPHOSCorrelations* task = new AliPHOSCorrelations(Form("%sTask", sName.Data()),internalTriggerSelection);
39
40         if( TString(options).Contains("10h") )  {
41                 task->SetPeriod( AliPHOSCorrelations::kLHC10h );
42                 task->SetCentralityEstimator("V0M");
43         }
44         if( TString(options).Contains("11h") )  {
45                 task->SetPeriod( AliPHOSCorrelations::kLHC11h );
46                 task->SetCentralityEstimator("V0M");
47         }
48         if( TString(options).Contains("13") )   {
49                 task->SetPeriod( AliPHOSCorrelations::kLHC13 );
50                 task->SetCentralityEstimator("V0A");
51         }
52
53
54         // Binning 
55         //Any:
56         if( AliVEvent::kAny == offlineTriggerMask ) 
57         {
58                 const int nbins = 8;
59                 Double_t cbin[nbins+1] = {0., 10., 20., 30., 40., 50., 60., 70., 80.};
60                 TArrayD tbin(nbins+1, cbin);
61                 Int_t    nMixed[nbins] = {6, 40, 40, 40, 40, 80, 80, 80};
62                 TArrayI tNMixed(nbins, nMixed);
63                 task->SetCentralityBinning(tbin, tNMixed);
64         }
65         //Central:
66         if( AliVEvent::kCentral == offlineTriggerMask ) 
67         {
68                 const int nbins = 4;
69                 Double_t cbin[nbins+1] = {0., 5., 8., 9., 10.};
70                 TArrayD tbin(nbins+1, cbin);
71                 Int_t    nMixed[nbins] = {6, 6, 6, 6};
72                 TArrayI tNMixed(nbins, nMixed);
73                 task->SetCentralityBinning(tbin, tNMixed);
74         }
75         // SemiCentral:
76         if( AliVEvent::kSemiCentral == offlineTriggerMask ) 
77         {
78                 const int nbins = 8;
79                 Double_t cbin[nbins+1] = {10., 11., 12., 13., 15., 20., 30., 40., 50.};
80                 TArrayD tbin(nbins+1, cbin);
81                 Int_t    nMixed[nbins] = {40, 40, 40, 40, 40, 40, 40, 40};
82                 TArrayI tNMixed(nbins, nMixed);
83                 task->SetCentralityBinning(tbin, tNMixed);
84         }
85         //INT7:
86         if( AliVEvent::kINT7 == offlineTriggerMask || AliVEvent::kPHI7 == offlineTriggerMask) 
87         {
88                 const int nbins = 8;
89                 Double_t cbin[nbins+1] = {0., 10., 20., 30., 40., 50., 60., 70., 80.};
90                 TArrayD tbin(nbins+1, cbin);
91                 Int_t    nMixed[nbins] = {6, 40, 40, 40, 40, 80, 80, 80};
92                 TArrayI tNMixed(nbins, nMixed);
93                 task->SetCentralityBinning(tbin, tNMixed);
94         }
95         // MB or PHOS Trigger:
96         if( AliVEvent::kMB == offlineTriggerMask || AliVEvent::kPHOSPb == offlineTriggerMask ) 
97         {
98                 const int nbins = 8;
99                 Double_t cbin[nbins+1] = {0., 10., 20., 30., 40., 50., 60., 70., 80.};
100                 TArrayD tbin(nbins+1, cbin);
101                 Int_t    nMixed[nbins] = {6, 40, 40, 40, 40, 80, 80, 80};
102                 TArrayI tNMixed(nbins, nMixed);
103                 task->SetCentralityBinning(tbin, tNMixed);
104         }
105
106         task->SelectCollisionCandidates(offlineTriggerMask);
107         task->SetInternalTriggerSelection(internalTriggerSelection);
108         task->EnableTOFCut(true, 100.e-9);
109         task->SetCentralityBorders(downCentLimit , upCentLimit) ;
110         task->SetSigmaWidth(sigmaWidth);
111
112         mgr->AddTask(task);
113         mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer() );
114
115         TString cname(Form("%sCoutput1", sName.Data()));
116         TString pname(Form("%s:%s", AliAnalysisManager::GetCommonFileName(), sName.Data()));
117         AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(cname.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, pname.Data());
118         mgr->ConnectOutput(task, 1, coutput1);
119
120         return task;
121 }
122