AliPHOSCorrelations* AddTaskPi0Correlations ( const char* name = "Pi0Corr", const char* options = "11h", Double_t sigmaWidth = 3., Int_t downCentLimit = 0, Int_t upCentLimit = 90 ) { //Author: Ponomarenko Daniil (Daniil.Ponomarenko@cern.ch) /* $Id$ */ AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); if (!mgr) { ::Error("AddTaskPi0Correlations", "No analysis manager to connect to"); return NULL; } if (!mgr->GetInputEventHandler()) { ::Error("AddTaskPi0Correlations", "This task requires an input event handler"); return NULL; } stringstream ss; ss << downCentLimit; string strDownCentLimit = ss.str(); char text[255]; sprintf(text,"%2i",upCentLimit); string strUpCentLimit = text; TString centralityBorder = TString ("CB") + strDownCentLimit.c_str() + TString ("t") + strUpCentLimit.c_str() + TString ("Cnt"); TString sigmaBorder = Form("%2iSigma", int(sigmaWidth*10.)); if (sigmaWidth == 0) sigmaBorder = "00Sigma"; TString sName = TString (name) + sigmaBorder + centralityBorder ; AliPHOSCorrelations* task = new AliPHOSCorrelations( Form("%sTask", sName.Data()) ); if( TString(options).Contains("10h") ) { task->SetPeriod( AliPHOSCorrelations::kLHC10h ); task->SetCentralityEstimator("V0M"); } if( TString(options).Contains("11h") ) { task->SetPeriod( AliPHOSCorrelations::kLHC11h ); task->SetCentralityEstimator("V0M"); if( downCentLimit == 0 && upCentLimit == 10 ) { task->SetMassMeanParametrs(-4.03237e-05, 0.138352); task->SetMassSigmaParametrs(0.00722915, 1.24329e-08, 0.00553326, 0.00128347); } if( downCentLimit == 20 && upCentLimit == 50 ) { task->SetMassMeanParametrs(1.00796e-05, 0.136096); task->SetMassSigmaParametrs(0.00100059, 1.10485, 0.00570446, 0.00100001); } } if( TString(options).Contains("13") ) { task->SetPeriod( AliPHOSCorrelations::kLHC13 ); task->SetCentralityEstimator("V0A"); if( downCentLimit == 0 && upCentLimit == 10 ) { task->SetMassMeanParametrs(-1.15288e-05, 0.134496); task->SetMassSigmaParametrs(0.00541561, 1.55431e-15, 0.00661674, 0.00899229); } if( downCentLimit == 20 && upCentLimit == 50 ) { task->SetMassMeanParametrs(-8.28487e-06, 0.134528); task->SetMassSigmaParametrs(0.0070921, 2.05058e-12, 0.00660061, 0.00750263); } } // Binning // TODO: Make other binning for 0-10% and 20-50% //Central: if( downCentLimit == 0 && upCentLimit == 10 ) { const int nbins = 5; Double_t cbin[nbins+1] = {0., 2., 4., 6., 8., 10.}; TArrayD tbin(nbins+1, cbin); Int_t nMixed[nbins] = {100, 100, 100, 100, 100}; TArrayI tNMixed(nbins, nMixed); task->SetCentralityBinning(tbin, tNMixed); } // SemiCentral: if( downCentLimit == 20 && upCentLimit == 50 ) { const int nbins = 6; Double_t cbin[nbins+1] = {20., 25., 30., 35., 40., 45., 50.}; TArrayD tbin(nbins+1, cbin); Int_t nMixed[nbins] = {100, 100, 100, 100, 100, 100}; TArrayI tNMixed(nbins, nMixed); task->SetCentralityBinning(tbin, tNMixed); } task->SetAnalysisAlgoritmForReal("ME"); task->SetAnalysisAlgoritmForMix("ME"); task->EnableTOFCut(false, 100.e-9); task->SelectCollisionCandidates(AliVEvent::kAny); task->SetCentralityBorders(downCentLimit , upCentLimit) ; task->SetSigmaWidth(sigmaWidth); task->SetUseEfficiency(true); mgr->AddTask(task); mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer() ); TString cname(Form("%sCoutput1", sName.Data())); TString pname(Form("%s:%s", AliAnalysisManager::GetCommonFileName(), sName.Data())); AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(cname.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, pname.Data()); mgr->ConnectOutput(task, 1, coutput1); return task; }