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