1 //=============================================//
2 const char* centralityEstimator = "TRK";
3 //=============================================//
5 //_________________________________________________________//
6 AliEbyEFluctuationAnalysisTask *AddTaskFluctuations(const char* analysisType = "ESD",
7 const char *analysisMode = "TPC") {
8 // Creates a fluctuations analysis task and adds it to the analysis manager.
9 // Get the pointer to the existing analysis manager via the static access method.
10 //===========================================================================
11 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
13 ::Error("AddTaskFluctuations", "No analysis manager to connect to.");
17 // Check the analysis type using the event handlers connected to the analysis manager.
18 //===========================================================================
19 if (!mgr->GetInputEventHandler()) {
20 ::Error("AddTaskFluctuations", "This task requires an input event handler");
23 TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
25 // Create the task, add it to manager and configure it.
26 //===========================================================================
27 AliEbyEFluctuationAnalysisTask *taskFluctuations = new AliEbyEFluctuationAnalysisTask("FluctuationsTask");
28 mgr->AddTask(taskFluctuations);
29 taskFluctuations->SetAnalysisType(analysisType);
30 if(analysisType == "ESD") {
31 taskFluctuations->SetAnalysisMode(analysisMode);
32 taskFluctuations->SetVertexDiamond(3.,3.,10.);
33 taskFluctuations->SetCentralityEstimator(centralityEstimator);
34 taskFluctuations->SetCentralityBins20();
35 taskFluctuations->SelectCollisionCandidates(AliVEvent::kMB);
38 TString type = analysisType;
39 if (analysisType=="ESD") {
40 gROOT->LoadMacro("configFluctuationsAnalysis.C");
41 AliESDtrackCuts *trackCuts = GetTrackCutsObject();
42 taskFluctuations->SetAnalysisCutObject(trackCuts);
45 // Create ONLY the output containers for the data produced by the task.
46 // Get and connect other common input/output containers via the manager as below
47 //==============================================================================
48 TString outputFileName = AliAnalysisManager::GetCommonFileName();
49 outputFileName += ":outputFluctuationAnalysis.root";
50 AliAnalysisDataContainer *coutFA = mgr->CreateContainer("fluctuationsOutput", TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());
51 mgr->ConnectInput(taskFluctuations, 0, mgr->GetCommonInputContainer());
52 mgr->ConnectOutput(taskFluctuations, 1, coutFA);
54 // Return task pointer at the end
55 return taskFluctuations;