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
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");
56 if( AliVEvent::kAny == offlineTriggerMask )
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);
66 if( AliVEvent::kCentral == offlineTriggerMask )
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);
76 if( AliVEvent::kSemiCentral == offlineTriggerMask )
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);
86 if( AliVEvent::kINT7 == offlineTriggerMask || AliVEvent::kPHI7 == offlineTriggerMask)
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);
95 // MB or PHOS Trigger:
96 if( AliVEvent::kMB == offlineTriggerMask || AliVEvent::kPHOSPb == offlineTriggerMask )
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);
106 task->SelectCollisionCandidates(offlineTriggerMask);
107 task->SetInternalTriggerSelection(internalTriggerSelection);
108 task->EnableTOFCut(true, 100.e-9);
109 task->SetCentralityBorders(downCentLimit , upCentLimit) ;
110 task->SetSigmaWidth(sigmaWidth);
113 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer() );
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);