ROOT logo
// $Id$

AliEmcalDebugTask* AddTaskEmcalDebug(
  const UInt_t id       = 0,
  const char *fnametest = 0,
  const char *tnamebase = "DebugTask",
  const char *outputfn  = "AnalysisResults.root"
)
{  
  // Get the pointer to the existing analysis manager via the static access method.
  //==============================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr)
  {
    ::Error("AddTaskEmcalCompat", "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("AddTaskEmcalCompat", "This task requires an input event handler");
    return NULL;
  }

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

  AliEmcalDebugTask *dtask = new AliEmcalDebugTask(tnamebase);
  UInt_t tid = id;
  if (id==0) {
    TRandom3 r(0);
    tid = r.Integer(kMaxUInt);
  }
  ::Info("AddTaskEmcalDebug","Setting up debug task with id %u", tid);
  dtask->SetId(tid);
  if (fnametest) 
    dtask->SetFileTest(fnametest);
  dtask->SelectCollisionCandidates(0);

  //-------------------------------------------------------
  // Final settings, pass to manager and set the containers
  //-------------------------------------------------------
  mgr->AddTask(dtask);
  
  // Create containers for input/output
  AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutput = mgr->CreateContainer(Form("%s_%u",tnamebase,tid),
							   TList::Class(),
							   AliAnalysisManager::kOutputContainer,
							   outputfn);
  mgr->ConnectInput(dtask, 0, cinput);
  mgr->ConnectOutput(dtask,1,coutput);
  
  return dtask;
}
 AddTaskEmcalDebug.C:1
 AddTaskEmcalDebug.C:2
 AddTaskEmcalDebug.C:3
 AddTaskEmcalDebug.C:4
 AddTaskEmcalDebug.C:5
 AddTaskEmcalDebug.C:6
 AddTaskEmcalDebug.C:7
 AddTaskEmcalDebug.C:8
 AddTaskEmcalDebug.C:9
 AddTaskEmcalDebug.C:10
 AddTaskEmcalDebug.C:11
 AddTaskEmcalDebug.C:12
 AddTaskEmcalDebug.C:13
 AddTaskEmcalDebug.C:14
 AddTaskEmcalDebug.C:15
 AddTaskEmcalDebug.C:16
 AddTaskEmcalDebug.C:17
 AddTaskEmcalDebug.C:18
 AddTaskEmcalDebug.C:19
 AddTaskEmcalDebug.C:20
 AddTaskEmcalDebug.C:21
 AddTaskEmcalDebug.C:22
 AddTaskEmcalDebug.C:23
 AddTaskEmcalDebug.C:24
 AddTaskEmcalDebug.C:25
 AddTaskEmcalDebug.C:26
 AddTaskEmcalDebug.C:27
 AddTaskEmcalDebug.C:28
 AddTaskEmcalDebug.C:29
 AddTaskEmcalDebug.C:30
 AddTaskEmcalDebug.C:31
 AddTaskEmcalDebug.C:32
 AddTaskEmcalDebug.C:33
 AddTaskEmcalDebug.C:34
 AddTaskEmcalDebug.C:35
 AddTaskEmcalDebug.C:36
 AddTaskEmcalDebug.C:37
 AddTaskEmcalDebug.C:38
 AddTaskEmcalDebug.C:39
 AddTaskEmcalDebug.C:40
 AddTaskEmcalDebug.C:41
 AddTaskEmcalDebug.C:42
 AddTaskEmcalDebug.C:43
 AddTaskEmcalDebug.C:44
 AddTaskEmcalDebug.C:45
 AddTaskEmcalDebug.C:46
 AddTaskEmcalDebug.C:47
 AddTaskEmcalDebug.C:48
 AddTaskEmcalDebug.C:49
 AddTaskEmcalDebug.C:50
 AddTaskEmcalDebug.C:51
 AddTaskEmcalDebug.C:52
 AddTaskEmcalDebug.C:53
 AddTaskEmcalDebug.C:54
 AddTaskEmcalDebug.C:55
 AddTaskEmcalDebug.C:56
 AddTaskEmcalDebug.C:57
 AddTaskEmcalDebug.C:58
 AddTaskEmcalDebug.C:59