]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/Correlations/macros/fd/AddTaskMuonEffMC.C
update muon-hadron correlations (Saehanseul Oh <saehanseul.oh@cern.ch>)
[u/mrichter/AliRoot.git] / PWGCF / Correlations / macros / fd / AddTaskMuonEffMC.C
1 // $Id$
2
3 AliMuonEffMC* AddTaskMuonEffMC(Bool_t IsMc = kTRUE,
4                                Bool_t MDProcess = kFALSE,
5                                Bool_t IsPythia = kFALSE,
6                                Int_t PlotMode = 0, 
7                                TString centralityEstimator = "V0M",
8                                const Int_t NEtaBins = 100,
9                                const Int_t NpTBins = 50,
10                                const Int_t NCentBins = 1,
11                                const Int_t NZvtxBins = 1,
12                                const Int_t NPhiBins = 12,
13                                const char* outputFileName = 0,
14                                const char* folderName = "Muon_TrkEff")
15 {
16   // Get the pointer to the existing analysis manager via the static access method.
17   //==============================================================================
18   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
19   if (!mgr)
20   {
21     ::Error("AddTaskSOH", "No analysis manager to connect to.");
22     return NULL;
23   }  
24   
25   // Check the analysis type using the event handlers connected to the analysis manager.
26   //==============================================================================
27   if (!mgr->GetInputEventHandler())
28   {
29     ::Error("AddTaskSOH", "This task requires an input event handler");
30     return NULL;
31   }
32
33   //-------------------------------------------------------
34   // Init the task and do settings
35   //-------------------------------------------------------
36
37   AliMuonEffMC *MuonEff = new AliMuonEffMC("MuonEffMC");
38
39   MuonEff->SetMcAna(IsMc);
40   MuonEff->SetIsPYTHIA(IsPythia);
41   MuonEff->SetMDProcess(MDProcess);
42   MuonEff->SetPlotMode(PlotMode);
43   MuonEff->SetCentEstimator(centralityEstimator);
44   MuonEff->SetNEtaBins(NEtaBins);
45   MuonEff->SetNpTBins(NpTBins);
46   MuonEff->SetNCentBins(NCentBins);
47   MuonEff->SetNZvtxBins(NZvtxBins);
48   MuonEff->SetNPhiBins(NPhiBins);
49   MuonEff->SelectCollisionCandidates(AliVEvent::kAnyINT);
50
51   // Add task(s)
52   mgr->AddTask(MuonEff); 
53
54   // Create containers for input/output
55   if (!outputFileName) 
56     outputFileName = AliAnalysisManager::GetCommonFileName();
57
58   const char* ModeTitle[4] = {"Gen", "Mu", "MuMother", "Mother"};
59   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
60   AliAnalysisDataContainer *coutputpt = mgr->CreateContainer(Form("MuonEff_%s_%s",centralityEstimator.Data(), ModeTitle[PlotMode]), 
61                                                              TList::Class(), 
62                                                              AliAnalysisManager::kOutputContainer, 
63                                                              Form("%s:%s", outputFileName, folderName));
64   // Connect input/output
65   mgr->ConnectInput(MuonEff, 0, cinput);
66   mgr->ConnectOutput(MuonEff, 1, coutputpt);
67
68   return MuonEff;
69 }