1 AliAnalysisTaskEffContBF *AddTaskBalanceEffCont( TString centralityEstimator="V0M",
5 Int_t AODfilterBit = 128,
6 Bool_t bUseElectronRejection = kFALSE,
7 TString fileNameBase="AnalysisResults"
10 // Creates a balance function analysis task and adds it to the analysis manager.
11 // Get the pointer to the existing analysis manager via the static access method.
12 TString centralityName("");
14 centralityName+=Form("%.0f-%.0f_%.0f",centrMin,centrMax,vertexZ);
15 TString outputFileName(fileNameBase);
16 outputFileName.Append(".root");
18 //===========================================================================
19 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
21 ::Error("AddTaskTriggeredBF", "No analysis manager to connect to.");
25 // Check the analysis type using the event handlers connected to the analysis manager.
26 //===========================================================================
27 if (!mgr->GetInputEventHandler()) {
28 ::Error("AddTaskTriggeredBF", "This task requires an input event handler");
31 TString analysisType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
32 if(dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler())) analysisType = "MC";
35 // Create the task, add it to manager and configure it.
36 //===========================================================================
39 AliAnalysisTaskEffContBF *taskEffContBF = new AliAnalysisTaskEffContBF("TaskEffContBF");
42 if(centralityEstimator) {
43 taskEffContBF->UseCentrality();
44 taskEffContBF->SetCentralityEstimator(centralityEstimator);
45 taskEffContBF->SetCentralityPercentileRange(centrMin,centrMax);
47 taskEffContBF->SelectCollisionCandidates(AliVEvent::kMB);
50 taskEffContBF->SetVertexDiamond(.3,.3,vertexZ);
52 //analysis kinematic cuts
53 taskEffContBF->SetMinPt(0.0);
54 taskEffContBF->SetMaxPt(20.0); //5.0
55 //taskEffContBF->SetEtaRange(-0.8,0.8,100,0.0,1.6, 64); //acceptance cuts
56 //taskEffContBF->SetPtRange(0.1, 20.0, 100); //acceptance cuts //5.0,49
57 taskEffContBF->SetEtaRange(-0.8,0.8,100,0.0,1.6, 64); //acceptance cuts
58 taskEffContBF->SetPtRange(0.0, 20.0, 100); //acceptance cuts //5.0,49
61 if(bUseElectronRejection){
62 taskEffContBF->SetElectronOnlyRejection(3.); // no other particle in nsigma (this is what we use standard in BF code)
66 taskEffContBF->SetAODtrackCutBit(AODfilterBit);
67 mgr->AddTask(taskEffContBF);
69 // Create ONLY the output containers for the data produced by the task.
70 // Get and connect other common input/output containers via the manager as below
71 //==============================================================================
72 TString outputFileName = AliAnalysisManager::GetCommonFileName();
73 outputFileName += ":PWGCFEbyE.outputBalanceFunctionEffContAnalysis";
74 AliAnalysisDataContainer *coutQA = mgr->CreateContainer(Form("listQA_%s",centralityName.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());
75 AliAnalysisDataContainer *coutEffContBF = mgr->CreateContainer(Form("listEffContBF_%s",centralityName.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());
77 mgr->ConnectInput(taskEffContBF, 0, mgr->GetCommonInputContainer());
78 mgr->ConnectOutput(taskEffContBF, 1, coutQA);
79 mgr->ConnectOutput(taskEffContBF, 2, coutEffContBF);