ROOT logo
AliAnalysisTaskSEVertexingHF *AddTaskVertexingHF(const char* fname="AliAOD.VertexingHF.root") {
  //
  // Creates a task for heavy flavour vertexing and adds it to the analysis manager.
  // andrea.dainese@lnl.infn.it
  //

  // Get the pointer to the existing analysis manager via the static access method.
  //==============================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskVertexingHF", "No analysis manager to connect to.");
    return NULL;
  }   
   
  // This task requires an ESD or AOD input handler and an AOD output handler.
  // Check this using the analysis manager.
  //===============================================================================
  TString type = mgr->GetInputEventHandler()->GetDataType();
  if (!type.Contains("ESD") && !type.Contains("AOD")) {
    ::Error("AddTaskVertexingHF", "HF vertexing task needs the manager to have an ESD or AOD input handler.");
    return NULL;
  }   
  // Check if AOD output handler exist.
  AliAODHandler *aodh = (AliAODHandler*)mgr->GetOutputEventHandler();
  if (!aodh) {
    ::Error("AddTaskVertexingHF", "HF vertexing task needs the manager to have an AOD output handler.");
    return NULL;
  }   
  
  // Create the task, add it to the manager and configure it.
  //===========================================================================
  AliAnalysisTaskSEVertexingHF *hfTask = new AliAnalysisTaskSEVertexingHF("vertexing HF");
  hfTask->SetDeltaAODFileName(fname);
  mgr->AddTask(hfTask);

  //
  // Create containers for input/output
  AliAnalysisDataContainer *coutputListOfCuts = mgr->CreateContainer("ListOfCuts",TList::Class(),AliAnalysisManager::kOutputContainer,hfTask->GetDeltaAODFileName()); //cuts

  mgr->ConnectInput(hfTask,0,mgr->GetCommonInputContainer());
  mgr->ConnectOutput(hfTask,0,mgr->GetCommonOutputContainer());
  mgr->ConnectOutput(hfTask,1,coutputListOfCuts);

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