ROOT logo
AliAnalysisTaskMuonFakes* AddTaskMuonFakes(Bool_t useMCLabels = kFALSE, Bool_t combineMCId = kFALSE,
					   Bool_t matchTrig = kFALSE, Bool_t applyAccCut = kFALSE,
					   TString extension = "")
{
  /// Add AliAnalysisTaskMuonFakes to the train (Philippe Pillot)
  
  // Get the pointer to the existing analysis manager via the static access method.
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if(!mgr) { 
    Error("AddTaskMuonFakes","AliAnalysisManager not set!");
    return NULL;
  }
  
  // This task run on ESDs
  TString type = mgr->GetInputEventHandler()->GetDataType();
  if (!type.Contains("ESD")) {
    Error("AddTaskMuonFakes", "ESD input handler needed!");
    return NULL;
  }
  
  // Create and configure task
  TString name = Form("MUONFakes%s",extension.Data());
  AliAnalysisTaskMuonFakes *task = new AliAnalysisTaskMuonFakes(name.Data());
  if (!task) {
    Error("AddTaskMuonFakes", "Muon fakes task cannot be created!");
    return NULL;
  }
  task->UseMCLabels(useMCLabels);
  task->CombineMCId(combineMCId);
  task->MatchTrigger(matchTrig);
  task->ApplyAccCut(applyAccCut);
  
  // Add task to analysis manager
  mgr->AddTask(task);
  
  // Connect input container
  mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
  
  // Define output file directory
  TString outputfile = AliAnalysisManager::GetCommonFileName();
  if ( outputfile.IsNull() ) {
    Error("AddTaskMuonFakes", "Common output file is not defined!");
    return NULL;
  }
  outputfile += ":MUON_Fakes";
  TString suffix = (!extension.IsNull()) ? Form("_%s",extension.Data()) : "";
  outputfile += suffix;
  
  // Create and connect output containers
  AliAnalysisDataContainer *cout_histo = mgr->CreateContainer(Form("histos%s",suffix.Data()), TObjArray::Class(), AliAnalysisManager::kOutputContainer, outputfile.Data());
  AliAnalysisDataContainer *cout_track = mgr->CreateContainer(Form("trackCounters%s",suffix.Data()), AliCounterCollection::Class(), AliAnalysisManager::kOutputContainer, outputfile.Data());
  AliAnalysisDataContainer *cout_fakeTrack = mgr->CreateContainer(Form("fakeTrackCounters%s",suffix.Data()), AliCounterCollection::Class(), AliAnalysisManager::kOutputContainer, outputfile.Data());
  AliAnalysisDataContainer *cout_matchTrack = mgr->CreateContainer(Form("matchedTrackCounters%s",suffix.Data()), AliCounterCollection::Class(), AliAnalysisManager::kOutputContainer, outputfile.Data());
  AliAnalysisDataContainer *cout_event = mgr->CreateContainer(Form("eventCounters%s",suffix.Data()), AliCounterCollection::Class(), AliAnalysisManager::kOutputContainer, outputfile.Data());
  AliAnalysisDataContainer *cout_histo2 = mgr->CreateContainer(Form("histos2%s",suffix.Data()), TObjArray::Class(), AliAnalysisManager::kOutputContainer, outputfile.Data());
  AliAnalysisDataContainer *cout_pair = mgr->CreateContainer(Form("pairCounters%s",suffix.Data()), AliCounterCollection::Class(), AliAnalysisManager::kOutputContainer, outputfile.Data());
  mgr->ConnectOutput(task, 1, cout_histo);
  mgr->ConnectOutput(task, 2, cout_track);
  mgr->ConnectOutput(task, 3, cout_fakeTrack);
  mgr->ConnectOutput(task, 4, cout_matchTrack);
  mgr->ConnectOutput(task, 5, cout_event);
  mgr->ConnectOutput(task, 6, cout_histo2);
  mgr->ConnectOutput(task, 7, cout_pair);
  
  return task;
}

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