ROOT logo
// $Id$

AliMuonEffMC* AddTaskMuonEffMC(Bool_t IsMc = kTRUE,
			       Bool_t MDProcess = kFALSE,
			       Bool_t IsPythia = kFALSE,
			       Int_t PlotMode = 0, 
			       TString centralityEstimator = "V0M",
			       const Int_t NEtaBins = 100,
			       const Int_t NpTBins = 50,
			       const Int_t NCentBins = 1,
			       const Int_t NZvtxBins = 1,
			       const Int_t NPhiBins = 12,
			       const char* outputFileName = 0,
			       const char* folderName = "Muon_TrkEff")
{
  // Get the pointer to the existing analysis manager via the static access method.
  //==============================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr)
  {
    ::Error("AddTaskSOH", "No analysis manager to connect to.");
    return NULL;
  }  
  
  // Check the analysis type using the event handlers connected to the analysis manager.
  //==============================================================================
  if (!mgr->GetInputEventHandler())
  {
    ::Error("AddTaskSOH", "This task requires an input event handler");
    return NULL;
  }

  //-------------------------------------------------------
  // Init the task and do settings
  //-------------------------------------------------------

  AliMuonEffMC *MuonEff = new AliMuonEffMC("MuonEffMC");

  MuonEff->SetMcAna(IsMc);
  MuonEff->SetIsPYTHIA(IsPythia);
  MuonEff->SetMDProcess(MDProcess);
  MuonEff->SetPlotMode(PlotMode);
  MuonEff->SetCentEstimator(centralityEstimator);
  MuonEff->SetNEtaBins(NEtaBins);
  MuonEff->SetNpTBins(NpTBins);
  MuonEff->SetNCentBins(NCentBins);
  MuonEff->SetNZvtxBins(NZvtxBins);
  MuonEff->SetNPhiBins(NPhiBins);
  MuonEff->SelectCollisionCandidates(AliVEvent::kAnyINT);

  // Add task(s)
  mgr->AddTask(MuonEff); 

  // Create containers for input/output
  if (!outputFileName) 
    outputFileName = AliAnalysisManager::GetCommonFileName();

  const char* ModeTitle[4] = {"Gen", "Mu", "MuMother", "Mother"};
  AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutputpt = mgr->CreateContainer(Form("MuonEff_%s_%s",centralityEstimator.Data(), ModeTitle[PlotMode]), 
                                                             TList::Class(), 
                                                             AliAnalysisManager::kOutputContainer, 
                                                             Form("%s:%s", outputFileName, folderName));
  // Connect input/output
  mgr->ConnectInput(MuonEff, 0, cinput);
  mgr->ConnectOutput(MuonEff, 1, coutputpt);

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