]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/macros/AddTaskKMeans.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / macros / AddTaskKMeans.C
1 AliAnalysisTaskKMeans *AddTaskKMeans()
2 {
3 // Creates a dijet task, configures it and adds it to the analysis manager.
4
5    // Get the pointer to the existing analysis manager via the static access method.
6    //==============================================================================
7    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
8    if (!mgr) {
9       ::Error("AddTaskJets", "No analysis manager to connect to.");
10       return NULL;
11    }
12
13    // Check the analysis type using the event handlers connected to the analysis manager.
14    //==============================================================================
15    if (!mgr->GetInputEventHandler()) {
16       ::Error("AddTaskKMeans", "This task requires an input event handler");
17       return NULL;
18    }
19
20    // Create the task and configure it.
21    //===========================================================================
22
23    AliAnalysisTaskKMeans *taskKMeans = new AliAnalysisTaskKMeans("K-Means Analysis");
24    taskKMeans->SetDebugLevel(0);
25    AliESDtrackCuts* esdTrackCutsL = new AliESDtrackCuts("AliESDtrackCuts", "Standard");
26    esdTrackCutsL->SetMinNClustersTPC(50);
27    esdTrackCutsL->SetRequireTPCRefit(kTRUE);
28    esdTrackCutsL->SetRequireITSRefit(kTRUE);
29    esdTrackCutsL->SetMaxDCAToVertexXY(3.);
30    esdTrackCutsL->SetMaxDCAToVertexZ(3.);
31    esdTrackCutsL->SetAcceptKinkDaughters(kFALSE);
32    taskKMeans->SetCuts(esdTrackCutsL);
33    taskKMeans->SetK(4);
34    taskKMeans->SetMinimumMultiplicity(10);
35    AliKMeansClustering::SetBeta(1.);
36    mgr->AddTask(taskKMeans);
37
38    AliAnalysisDataContainer* cout_kmeans = mgr->CreateContainer("KMeans", TList::Class(),AliAnalysisManager::kOutputContainer,
39      Form("%s:PWG4_KMeans", AliAnalysisManager::GetCommonFileName()));
40
41    // Create ONLY the output containers for the data produced by the task.
42    // Get and connect other common input/output containers via the manager as below
43    //==============================================================================
44    mgr->ConnectInput  (taskKMeans, 0, mgr->GetCommonInputContainer());
45    mgr->ConnectOutput (taskKMeans, 1, cout_kmeans);
46
47    return taskKMeans;
48 }