ROOT logo
#if !defined(__CINT__) || defined(__MAKECINT__)
#include "TString.h"
#include "TObjArray.h"

#include "AliLog.h"
#include "AliVEventHandler.h"

#include "AliAnalysisManager.h"
#include "AliAnalysisDataContainer.h"

#include "AliMuonTrackCuts.h"
#include "AliAnalysisTaskFlowSingleMu.h"
#endif

AliAnalysisTaskFlowSingleMu* AddTaskFlowSingleMu(Bool_t isMC = kFALSE)
{
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddtaskFlowSingleMu", "No analysis manager to connect to.");
    return NULL;
  }

  TString type = mgr->GetInputEventHandler()->GetDataType();
  if (!type.Contains("ESD") && !type.Contains("AOD")) {
    ::Error("AddtaskFlowSingleMu", "FlowSingleMu task needs the manager to have an ESD or AOD input handler.");
    return NULL;
  }

  // Create container
  TString currName = "";
  TString outputfile = mgr->GetCommonFileName();
  if ( ! outputfile.IsNull() ) outputfile += ":PWGHF_FlowSingleMu";
  else outputfile = "FlowSingleMuAnalysis.root";

  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("FlowSingleMuOut",TObjArray::Class(),AliAnalysisManager::kOutputContainer,outputfile);

  // Create cuts
  AliMuonTrackCuts* muonTrackCuts = new AliMuonTrackCuts("TestStandardMuonTrackCuts", "TestStandardMuonTrackCuts");
  muonTrackCuts->SetIsMC(isMC);

  // Create task
  AliAnalysisTaskFlowSingleMu *flowSingleMuTask = new AliAnalysisTaskFlowSingleMu("FlowSingleMuTask", *muonTrackCuts);
  if ( isMC ) flowSingleMuTask->SetTrigClassPatterns("ANY");
  flowSingleMuTask->GetMuonEventCuts()->SetVertexVzLimits(-10., 10.);
  mgr->AddTask(flowSingleMuTask);

  // Connect containers
  mgr->ConnectInput  (flowSingleMuTask,  0, mgr->GetCommonInputContainer());
  mgr->ConnectOutput (flowSingleMuTask,  1, coutput1);

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