ROOT logo
AliAnalysisTaskSEMuonsHF* AddTaskMuonsHF(Int_t mode=0, Int_t passN=2, Bool_t isMC=kFALSE, Bool_t isTree=kFALSE, Bool_t isSel=kTRUE)
{
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskMuonsHF", "No analysis manager to connect to.");
    return NULL;
  }
  TString type = mgr->GetInputEventHandler()->GetDataType();
  if (!type.Contains("ESD") && !type.Contains("AOD")) {
    ::Error("AddTaskMuonsHF", "MuonsHF task needs the manager to have an ESD or AOD input handler.");
    return NULL;
  }
  if (isMC && type.Contains("ESD")) {
    AliMCEventHandler *mcH = mgr->GetMCtruthEventHandler();
    if (!mcH) {
      ::Error("AddTaskMuonsHF", "MuonsHF task needs the manager to have an MC evnet handler.");
      return NULL;
    }
  }
  if (isTree) {
    AliAODHandler *aodH = (AliAODHandler*)mgr->GetOutputEventHandler();
    if (!aodH) {
      ::Error("AddTaskMuonsHF", "MuonsHF task needs the manager to have an AOD output handler.");
      return NULL;
    }
  }

  // set cuts for events or muons selection
  Double_t cutsEvsH[5] ={-999999.0,   // low limit of Ncontrs
                          999999.0,   // up limit of |vz|
                          999999.0,   // up limit of vt
                         -999999.0,   // centrality min
                          999999.0};  // centrality max
  AliMuonTrackCuts *cutsMuon = new AliMuonTrackCuts("cutsMuon", "cutsMuon"); cutsMuon->SetIsMC(isMC); cutsMuon->SetPassNumber(passN);
  AliMuonPairCuts  *cutsDimu = new  AliMuonPairCuts("cutsDimu", "cutsDimu"); cutsDimu->SetIsMC(isMC); cutsDimu->GetMuonTrackCuts()->SetPassNumber(passN);
  AliAnalysisTaskSEMuonsHF *taskMuonsHF = new AliAnalysisTaskSEMuonsHF("MuonsHF Analysis Task",*cutsMuon,*cutsDimu);
  taskMuonsHF->SetAnaMode(mode);
  taskMuonsHF->SetUseMC(isMC);
  taskMuonsHF->SetIsOutputTree(isTree);
  taskMuonsHF->SetEvsHCuts(cutsEvsH);
  if (isSel) taskMuonsHF->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kMUON);
  mgr->AddTask(taskMuonsHF);

  mgr->ConnectInput(taskMuonsHF, 0, mgr->GetCommonInputContainer());
  if (isTree) mgr->ConnectOutput(taskMuonsHF, 0, mgr->GetCommonOutputContainer());

  char *fileName = "muonsHF.root";
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("histosList",TList::Class(),AliAnalysisManager::kOutputContainer,fileName);
  mgr->ConnectOutput(taskMuonsHF,1,coutput1);

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