]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muondep/AddTaskESDMCLabelAddition.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWG / muondep / AddTaskESDMCLabelAddition.C
1 AliAnalysisTaskESDMCLabelAddition *AddTaskESDMCLabelAddition(Double_t trkSigmaCut = -1, Double_t trgSigmaCut = -1)
2 {
3   /// Add AliAnalysisTaskESDMCLabelAddition to the train (Philippe Pillot)
4   /// If trkSigmaCut (trgSigmaCut) is negative, value is taken from the OCDB recoParam
5   
6   // Get the pointer to the existing analysis manager via the static access method.
7   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
8   if(!mgr) { 
9     Error("AddTaskESDMCLabelAddition","AliAnalysisManager not set!");
10     return NULL;
11   }
12   
13   // This task runs on ESDs
14   TString type = mgr->GetInputEventHandler()->GetDataType();
15   if (!type.Contains("ESD")) {
16     Error("AddTaskESDMCLabelAddition", "ESD input handler needed!");
17     return NULL;
18   }
19   
20   // This task needs MC input
21   AliMCEventHandler *mcH = (AliMCEventHandler*)mgr->GetMCtruthEventHandler();
22   if (!mcH) {
23     Error("AddTaskESDMCLabelAddition", "No MC handler connected!");
24     return NULL;
25   }   
26   
27   // Create and configure task
28   AliAnalysisTaskESDMCLabelAddition *task = new AliAnalysisTaskESDMCLabelAddition("ESD MC Labels addition");
29   if (!task) {
30     Error("AddTaskESDMCLabelAddition", "MClabel addition task cannot be created!");
31     return NULL;
32   }
33   task->SetExternalTrkSigmaCut(trkSigmaCut);
34   task->SetExternalTrgSigmaCut(trgSigmaCut);
35   
36   // Add task to analysis manager
37   mgr->AddTask(task);
38   
39   // Connect input container
40   mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
41   
42   return task;
43   
44 }
45