ROOT logo
//=============================================//
const char* centralityEstimator = "TRK";
//=============================================//

//_________________________________________________________//
AliEbyEFluctuationAnalysisTask *AddTaskFluctuations(const char* analysisType = "ESD", 
						    const char *analysisMode = "TPC") {
  // Creates a fluctuations analysis task and adds it to the analysis manager.
  // Get the pointer to the existing analysis manager via the static access method.
  //===========================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskFluctuations", "No analysis manager to connect to.");
    return NULL;
  }

  // Check the analysis type using the event handlers connected to the analysis manager.
  //===========================================================================
  if (!mgr->GetInputEventHandler()) {
    ::Error("AddTaskFluctuations", "This task requires an input event handler");
    return NULL;
  }
  TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"

  // Create the task, add it to manager and configure it.
  //===========================================================================
  AliEbyEFluctuationAnalysisTask *taskFluctuations = new AliEbyEFluctuationAnalysisTask("FluctuationsTask");
  mgr->AddTask(taskFluctuations);
  taskFluctuations->SetAnalysisType(analysisType);
  if(analysisType == "ESD") {
    taskFluctuations->SetAnalysisMode(analysisMode);
    taskFluctuations->SetVertexDiamond(3.,3.,10.);
    taskFluctuations->SetCentralityEstimator(centralityEstimator);
    taskFluctuations->SetCentralityBins20();
    taskFluctuations->SelectCollisionCandidates(AliVEvent::kMB);
  }

  TString type = analysisType;
  if (analysisType=="ESD") {
    gROOT->LoadMacro("configFluctuationsAnalysis.C");
    AliESDtrackCuts *trackCuts = GetTrackCutsObject();
    taskFluctuations->SetAnalysisCutObject(trackCuts);
  }
  
  // Create ONLY the output containers for the data produced by the task.
  // Get and connect other common input/output containers via the manager as below
  //==============================================================================
  TString outputFileName = AliAnalysisManager::GetCommonFileName();
  outputFileName += ":outputFluctuationAnalysis.root";
  AliAnalysisDataContainer *coutFA = mgr->CreateContainer("fluctuationsOutput", TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());
  mgr->ConnectInput(taskFluctuations, 0, mgr->GetCommonInputContainer());
  mgr->ConnectOutput(taskFluctuations, 1, coutFA);

  // Return task pointer at the end
  return taskFluctuations;
}
 AddTaskFluctuations.C:1
 AddTaskFluctuations.C:2
 AddTaskFluctuations.C:3
 AddTaskFluctuations.C:4
 AddTaskFluctuations.C:5
 AddTaskFluctuations.C:6
 AddTaskFluctuations.C:7
 AddTaskFluctuations.C:8
 AddTaskFluctuations.C:9
 AddTaskFluctuations.C:10
 AddTaskFluctuations.C:11
 AddTaskFluctuations.C:12
 AddTaskFluctuations.C:13
 AddTaskFluctuations.C:14
 AddTaskFluctuations.C:15
 AddTaskFluctuations.C:16
 AddTaskFluctuations.C:17
 AddTaskFluctuations.C:18
 AddTaskFluctuations.C:19
 AddTaskFluctuations.C:20
 AddTaskFluctuations.C:21
 AddTaskFluctuations.C:22
 AddTaskFluctuations.C:23
 AddTaskFluctuations.C:24
 AddTaskFluctuations.C:25
 AddTaskFluctuations.C:26
 AddTaskFluctuations.C:27
 AddTaskFluctuations.C:28
 AddTaskFluctuations.C:29
 AddTaskFluctuations.C:30
 AddTaskFluctuations.C:31
 AddTaskFluctuations.C:32
 AddTaskFluctuations.C:33
 AddTaskFluctuations.C:34
 AddTaskFluctuations.C:35
 AddTaskFluctuations.C:36
 AddTaskFluctuations.C:37
 AddTaskFluctuations.C:38
 AddTaskFluctuations.C:39
 AddTaskFluctuations.C:40
 AddTaskFluctuations.C:41
 AddTaskFluctuations.C:42
 AddTaskFluctuations.C:43
 AddTaskFluctuations.C:44
 AddTaskFluctuations.C:45
 AddTaskFluctuations.C:46
 AddTaskFluctuations.C:47
 AddTaskFluctuations.C:48
 AddTaskFluctuations.C:49
 AddTaskFluctuations.C:50
 AddTaskFluctuations.C:51
 AddTaskFluctuations.C:52
 AddTaskFluctuations.C:53
 AddTaskFluctuations.C:54
 AddTaskFluctuations.C:55
 AddTaskFluctuations.C:56
 AddTaskFluctuations.C:57