ROOT logo
AliAnalysisTaskKMeans *AddTaskKMeans()
{
// Creates a dijet task, configures it 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("AddTaskJets", "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("AddTaskKMeans", "This task requires an input event handler");
      return NULL;
   }

   // Create the task and configure it.
   //===========================================================================

   AliAnalysisTaskKMeans *taskKMeans = new AliAnalysisTaskKMeans("K-Means Analysis");
   taskKMeans->SetDebugLevel(0);
   AliESDtrackCuts* esdTrackCutsL = new AliESDtrackCuts("AliESDtrackCuts", "Standard");
   esdTrackCutsL->SetMinNClustersTPC(50);
   esdTrackCutsL->SetRequireTPCRefit(kTRUE);
   esdTrackCutsL->SetRequireITSRefit(kTRUE);
   esdTrackCutsL->SetMaxDCAToVertexXY(3.);
   esdTrackCutsL->SetMaxDCAToVertexZ(3.);
   esdTrackCutsL->SetAcceptKinkDaughters(kFALSE);
   taskKMeans->SetCuts(esdTrackCutsL);
   taskKMeans->SetK(4);
   taskKMeans->SetMinimumMultiplicity(10);
   AliKMeansClustering::SetBeta(1.);
   mgr->AddTask(taskKMeans);

   AliAnalysisDataContainer* cout_kmeans = mgr->CreateContainer("KMeans", TList::Class(),AliAnalysisManager::kOutputContainer,
     Form("%s:PWG4_KMeans", AliAnalysisManager::GetCommonFileName()));

   // 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
   //==============================================================================
   mgr->ConnectInput  (taskKMeans, 0, mgr->GetCommonInputContainer());
   mgr->ConnectOutput (taskKMeans, 1, cout_kmeans);

   return taskKMeans;
}
 AddTaskKMeans.C:1
 AddTaskKMeans.C:2
 AddTaskKMeans.C:3
 AddTaskKMeans.C:4
 AddTaskKMeans.C:5
 AddTaskKMeans.C:6
 AddTaskKMeans.C:7
 AddTaskKMeans.C:8
 AddTaskKMeans.C:9
 AddTaskKMeans.C:10
 AddTaskKMeans.C:11
 AddTaskKMeans.C:12
 AddTaskKMeans.C:13
 AddTaskKMeans.C:14
 AddTaskKMeans.C:15
 AddTaskKMeans.C:16
 AddTaskKMeans.C:17
 AddTaskKMeans.C:18
 AddTaskKMeans.C:19
 AddTaskKMeans.C:20
 AddTaskKMeans.C:21
 AddTaskKMeans.C:22
 AddTaskKMeans.C:23
 AddTaskKMeans.C:24
 AddTaskKMeans.C:25
 AddTaskKMeans.C:26
 AddTaskKMeans.C:27
 AddTaskKMeans.C:28
 AddTaskKMeans.C:29
 AddTaskKMeans.C:30
 AddTaskKMeans.C:31
 AddTaskKMeans.C:32
 AddTaskKMeans.C:33
 AddTaskKMeans.C:34
 AddTaskKMeans.C:35
 AddTaskKMeans.C:36
 AddTaskKMeans.C:37
 AddTaskKMeans.C:38
 AddTaskKMeans.C:39
 AddTaskKMeans.C:40
 AddTaskKMeans.C:41
 AddTaskKMeans.C:42
 AddTaskKMeans.C:43
 AddTaskKMeans.C:44
 AddTaskKMeans.C:45
 AddTaskKMeans.C:46
 AddTaskKMeans.C:47
 AddTaskKMeans.C:48
 AddTaskKMeans.C:49