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 )
9 //Author: Ponomarenko Daniil (Daniil.Ponomarenko@cern.ch)
12 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
15 ::Error("AddTaskPi0CorrelationsL", "No analysis manager to connect to");
19 if (!mgr->GetInputEventHandler())
21 ::Error("AddTaskPi0CorrelationsL", "This task requires an input event handler");
28 string strDownCentLimit = ss.str();
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 ;
38 AliPHOSCorrelations* task = new AliPHOSCorrelations(Form("%sTask", sName.Data()),internalTriggerSelection);
40 if( TString(options).Contains("10h") ) {
41 task->SetPeriod( AliPHOSCorrelations::kLHC10h );
42 task->SetCentralityEstimator("V0M");
44 if( TString(options).Contains("11h") ) {
45 task->SetPeriod( AliPHOSCorrelations::kLHC11h );
46 task->SetCentralityEstimator("V0M");
48 if( TString(options).Contains("13") ) {
49 task->SetPeriod( AliPHOSCorrelations::kLHC13 );
50 task->SetCentralityEstimator("V0A");
55 // TODO: Make other binning for 0-10% and 20-50%
57 if( AliVEvent::kAny == offlineTriggerMask )
60 Double_t cbin[nbins+1] = {0., 10., 20., 30., 40., 50., 60., 70., 80.};
61 TArrayD tbin(nbins+1, cbin);
62 Int_t nMixed[nbins] = {6, 40, 40, 40, 40, 80, 80, 80};
63 TArrayI tNMixed(nbins, nMixed);
64 task->SetCentralityBinning(tbin, tNMixed);
67 if( AliVEvent::kCentral == offlineTriggerMask )
70 Double_t cbin[nbins+1] = {0., 5., 8., 9., 10.};
71 TArrayD tbin(nbins+1, cbin);
72 Int_t nMixed[nbins] = {6, 6, 6, 6};
73 TArrayI tNMixed(nbins, nMixed);
74 task->SetCentralityBinning(tbin, tNMixed);
77 if( AliVEvent::kSemiCentral == offlineTriggerMask )
80 Double_t cbin[nbins+1] = {10., 11., 12., 13., 15., 20., 30., 40., 50.};
81 TArrayD tbin(nbins+1, cbin);
82 Int_t nMixed[nbins] = {40, 40, 40, 40, 40, 40, 40, 40};
83 TArrayI tNMixed(nbins, nMixed);
84 task->SetCentralityBinning(tbin, tNMixed);
87 if( AliVEvent::kINT7 == offlineTriggerMask || AliVEvent::kPHI7 == offlineTriggerMask)
90 Double_t cbin[nbins+1] = {0., 10., 20., 30., 40., 50., 60., 70., 80.};
91 TArrayD tbin(nbins+1, cbin);
92 Int_t nMixed[nbins] = {6, 40, 40, 40, 40, 80, 80, 80};
93 TArrayI tNMixed(nbins, nMixed);
94 task->SetCentralityBinning(tbin, tNMixed);
96 // MB or PHOS Trigger:
97 if( AliVEvent::kMB == offlineTriggerMask || AliVEvent::kPHOSPb == offlineTriggerMask )
100 Double_t cbin[nbins+1] = {0., 10., 20., 30., 40., 50., 60., 70., 80.};
101 TArrayD tbin(nbins+1, cbin);
102 Int_t nMixed[nbins] = {6, 40, 40, 40, 40, 80, 80, 80};
103 TArrayI tNMixed(nbins, nMixed);
104 task->SetCentralityBinning(tbin, tNMixed);
107 task->SelectCollisionCandidates(offlineTriggerMask);
108 task->SetInternalTriggerSelection(internalTriggerSelection);
109 task->EnableTOFCut(true, 100.e-9);
110 task->SetCentralityBorders(downCentLimit , upCentLimit) ;
111 task->SetSigmaWidth(sigmaWidth);
114 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer() );
116 TString cname(Form("%sCoutput1", sName.Data()));
117 TString pname(Form("%s:%s", AliAnalysisManager::GetCommonFileName(), sName.Data()));
118 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(cname.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, pname.Data());
119 mgr->ConnectOutput(task, 1, coutput1);