ROOT logo
// $Id$

AliAnalysisTaskSOH* AddTaskSOH()
{
  // Get the pointer to the existing analysis manager via the static access method.
  //==============================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr)
  {
    ::Error("AddTaskSOH", "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("AddTaskSOH", "This task requires an input event handler");
    return NULL;
  }

  //-------------------------------------------------------
  // Init the task and do settings
  //-------------------------------------------------------

  AliAnalysisTaskSOH *taskSOH = new AliAnalysisTaskSOH("AliAnalysisTaskSOH");

  AliESDtrackCuts *esdTrackCuts = 0x0;
  AliESDtrackCuts *hybridTrackCuts1 = 0x0;
  AliESDtrackCuts *hybridTrackCuts2 = 0x0;
  gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/CreateTrackCutsPWGJE.C");

  esdTrackCuts = CreateTrackCutsPWGJE(10001006);
  hybridTrackCuts1 = CreateTrackCutsPWGJE(1006);
  hybridTrackCuts2 = CreateTrackCutsPWGJE(10041006);
  
  taskSOH->SetEsdTrackCuts(esdTrackCuts);
  taskSOH->SetHybridTrackCuts1(hybridTrackCuts1);
  taskSOH->SetHybridTrackCuts2(hybridTrackCuts2);

  taskSOH->SetMcProcess(kTRUE);
  taskSOH->SetTrackProcess(kTRUE);
  taskSOH->SetSFProcess(kFALSE);
  taskSOH->SetClusterProcess(kFALSE);
  taskSOH->SetZvtx(10);

  // Add task(s)
  mgr->AddTask(taskSOH); 

  // ESD handler
  AliESDInputHandler* esdH = new AliESDInputHandler();
  mgr->SetInputEventHandler(esdH);
  
  // MC truth handler
  AliMCEventHandler* mcEvtHdl = new AliMCEventHandler();
  mcEvtHdl->SetReadTR(kTRUE);
  mgr->SetMCtruthEventHandler(mcEvtHdl); 

  // Create containers for input/output
  AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutputpt = mgr->CreateContainer("soh", 
                                                             TList::Class(), 
                                                             AliAnalysisManager::kOutputContainer, 
                                                             "AnalysisResults.root");

  // Connect input/output
  mgr->ConnectInput(taskSOH, 0, cinput);
  mgr->ConnectOutput(taskSOH, 1, coutputpt);

  return taskSOH;
}
 AddTaskSOH.C:1
 AddTaskSOH.C:2
 AddTaskSOH.C:3
 AddTaskSOH.C:4
 AddTaskSOH.C:5
 AddTaskSOH.C:6
 AddTaskSOH.C:7
 AddTaskSOH.C:8
 AddTaskSOH.C:9
 AddTaskSOH.C:10
 AddTaskSOH.C:11
 AddTaskSOH.C:12
 AddTaskSOH.C:13
 AddTaskSOH.C:14
 AddTaskSOH.C:15
 AddTaskSOH.C:16
 AddTaskSOH.C:17
 AddTaskSOH.C:18
 AddTaskSOH.C:19
 AddTaskSOH.C:20
 AddTaskSOH.C:21
 AddTaskSOH.C:22
 AddTaskSOH.C:23
 AddTaskSOH.C:24
 AddTaskSOH.C:25
 AddTaskSOH.C:26
 AddTaskSOH.C:27
 AddTaskSOH.C:28
 AddTaskSOH.C:29
 AddTaskSOH.C:30
 AddTaskSOH.C:31
 AddTaskSOH.C:32
 AddTaskSOH.C:33
 AddTaskSOH.C:34
 AddTaskSOH.C:35
 AddTaskSOH.C:36
 AddTaskSOH.C:37
 AddTaskSOH.C:38
 AddTaskSOH.C:39
 AddTaskSOH.C:40
 AddTaskSOH.C:41
 AddTaskSOH.C:42
 AddTaskSOH.C:43
 AddTaskSOH.C:44
 AddTaskSOH.C:45
 AddTaskSOH.C:46
 AddTaskSOH.C:47
 AddTaskSOH.C:48
 AddTaskSOH.C:49
 AddTaskSOH.C:50
 AddTaskSOH.C:51
 AddTaskSOH.C:52
 AddTaskSOH.C:53
 AddTaskSOH.C:54
 AddTaskSOH.C:55
 AddTaskSOH.C:56
 AddTaskSOH.C:57
 AddTaskSOH.C:58
 AddTaskSOH.C:59
 AddTaskSOH.C:60
 AddTaskSOH.C:61
 AddTaskSOH.C:62
 AddTaskSOH.C:63
 AddTaskSOH.C:64
 AddTaskSOH.C:65
 AddTaskSOH.C:66
 AddTaskSOH.C:67
 AddTaskSOH.C:68
 AddTaskSOH.C:69
 AddTaskSOH.C:70
 AddTaskSOH.C:71
 AddTaskSOH.C:72