ROOT logo
AliAnalysisTaskMuonTrackingEff *AddTaskMUONTrackingEfficiency(AliMuonTrackCuts &trackCuts, TString extension = "") 
{
  //
  // Task for the determination of the MUON tracking chamber efficiency
  //
  // lenhardt@subatech.in2p3.fr
  // lardeux@subatech.in2p3.fr
  //
  
  // Get the pointer to the existing analysis manager via the static access method
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskMUONTrackingEfficiency", "No analysis manager to connect to.");
    return NULL;
  }   
  
  // This task run on ESDs
  TString type = mgr->GetInputEventHandler()->GetDataType();
  if (!type.Contains("ESD")) {
    ::Error("AddTaskMUONTrackingEfficiency", "ESD input handler needed!");
    return NULL;
  }
  
  // Define output file directory
  TString fileName = AliAnalysisManager::GetCommonFileName();
  if (fileName.IsNull()) {
    ::Error("AddTaskMUONTrackingEfficiency", "Common output file is not defined!");
    return NULL;
  }
  fileName += ":MUON_Efficiency";
  TString suffix = (!extension.IsNull()) ? Form("_%s",extension.Data()) : "";
  fileName += suffix;
  
  
  // Create and configure task
  TString name = Form("MuonTrackingEfficiency%s",extension.Data());
  AliAnalysisTaskMuonTrackingEff* taskMuonTrackingEff = new AliAnalysisTaskMuonTrackingEff(name.Data());
  taskMuonTrackingEff->SetMuonTrackCuts(trackCuts);
  
  // Add to the manager
  mgr->AddTask(taskMuonTrackingEff);
  
  // Connect input container
  mgr->ConnectInput (taskMuonTrackingEff, 0, mgr->GetCommonInputContainer());
  
  // Create and connect output containers
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(Form("ClustersCounters%s",suffix.Data()), AliCounterCollection::Class(), AliAnalysisManager::kOutputContainer, fileName);
  AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(Form("TracksDetectedPerChamber%s",suffix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, fileName);
  AliAnalysisDataContainer *coutput3 = mgr->CreateContainer(Form("TotalTracksPerChamber%s",suffix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, fileName);
  AliAnalysisDataContainer *coutput4 = mgr->CreateContainer(Form("SingleDetectedPerChamber%s",suffix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, fileName);
  AliAnalysisDataContainer *coutput5 = mgr->CreateContainer(Form("ExtraHistos%s",suffix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, fileName);
  mgr->ConnectOutput(taskMuonTrackingEff, 1, coutput1);
  mgr->ConnectOutput(taskMuonTrackingEff, 2, coutput2);
  mgr->ConnectOutput(taskMuonTrackingEff, 3, coutput3);
  mgr->ConnectOutput(taskMuonTrackingEff, 4, coutput4);
  mgr->ConnectOutput(taskMuonTrackingEff, 5, coutput5);
  
  return taskMuonTrackingEff;
}

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