]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muondep/AddTaskMuonPerformance.C
Updates to run with deltas (L. Cunqueiro)
[u/mrichter/AliRoot.git] / PWG / muondep / AddTaskMuonPerformance.C
1 AliAnalysisTaskMuonPerformance *AddTaskMuonPerformance(Bool_t correctClusterResForSystematics = kTRUE,
2                                                        Bool_t fitClusterResiduals = kTRUE)
3 {
4   /// Add AliAnalysisTaskMuonPerformance to the train
5   
6   // Get the pointer to the existing analysis manager via the static access method.
7   //==============================================================================
8   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
9   if (!mgr) {
10     ::Error("AddTaskMuonPerformance", "No analysis manager to connect to.");
11     return NULL;
12   }   
13   
14   // This task requires an ESD input handler.
15   // Check this using the analysis manager.
16   //===============================================================================
17   TString type = mgr->GetInputEventHandler()->GetDataType();
18   if (!type.Contains("ESD")) {
19     ::Error("AddTaskMuonPerformance", "MuonPerformance task needs the manager to have an ESD input handler.");
20     return NULL;
21   }
22   
23   TString baseOutName = "muonPerformance.root";
24   TString outputfile = mgr->GetCommonFileName();
25   if ( ! outputfile.IsNull() ) outputfile += ":MUON_Performances";
26   else outputfile = baseOutName;
27   
28   AliAnalysisDataContainer *coutput1  = mgr->CreateContainer("EffContainer",AliCFContainer::Class(),AliAnalysisManager::kOutputContainer,outputfile);
29   AliAnalysisDataContainer *coutput2  = mgr->CreateContainer("Efficiency",TObjArray::Class(),AliAnalysisManager::kParamContainer,outputfile);
30   AliAnalysisDataContainer *coutput3  = mgr->CreateContainer("TriggerResolution",TObjArray::Class(),AliAnalysisManager::kOutputContainer,outputfile);
31   AliAnalysisDataContainer *coutput4  = mgr->CreateContainer("TrackerResolution",TObjArray::Class(),AliAnalysisManager::kOutputContainer,outputfile);
32   AliAnalysisDataContainer *coutput5  = mgr->CreateContainer("MomentumAtVtx",TObjArray::Class(),AliAnalysisManager::kParamContainer,outputfile);
33   AliAnalysisDataContainer *coutput6  = mgr->CreateContainer("SlopeAtVtx",TObjArray::Class(),AliAnalysisManager::kParamContainer,outputfile);
34   AliAnalysisDataContainer *coutput7  = mgr->CreateContainer("EtaAtVtx",TObjArray::Class(),AliAnalysisManager::kParamContainer,outputfile);
35   AliAnalysisDataContainer *coutput8  = mgr->CreateContainer("PhiAtVtx",TObjArray::Class(),AliAnalysisManager::kParamContainer,outputfile);
36   AliAnalysisDataContainer *coutput9  = mgr->CreateContainer("MomentumAtFirstCl",TObjArray::Class(),AliAnalysisManager::kParamContainer,outputfile);
37   AliAnalysisDataContainer *coutput10 = mgr->CreateContainer("SlopeAtFirstCl",TObjArray::Class(),AliAnalysisManager::kParamContainer,outputfile);
38   AliAnalysisDataContainer *coutput11 = mgr->CreateContainer("DCA",TObjArray::Class(),AliAnalysisManager::kParamContainer,outputfile);
39   AliAnalysisDataContainer *coutput12 = mgr->CreateContainer("Clusters",TObjArray::Class(),AliAnalysisManager::kParamContainer,outputfile);
40   
41   // Create the task, add it to the manager and configure it.
42   //===========================================================================   
43   AliAnalysisTaskMuonPerformance *muonPerformanceTask = new AliAnalysisTaskMuonPerformance("muonPerformanceTask");
44   mgr->AddTask(muonPerformanceTask);
45   muonPerformanceTask->CorrectClusterResForSystematics(correctClusterResForSystematics);
46   muonPerformanceTask->FitClusterResiduals(fitClusterResiduals);
47   
48   // Create ONLY the output containers for the data produced by the task.
49   // Get and connect other common input/output containers via the manager as below
50   //==============================================================================
51   mgr->ConnectInput  (muonPerformanceTask, 0, mgr->GetCommonInputContainer());
52   mgr->ConnectOutput (muonPerformanceTask, 1, coutput1);
53   mgr->ConnectOutput (muonPerformanceTask, 2, coutput2);
54   mgr->ConnectOutput (muonPerformanceTask, 3, coutput3);
55   mgr->ConnectOutput (muonPerformanceTask, 4, coutput4);
56   mgr->ConnectOutput (muonPerformanceTask, 5, coutput5);
57   mgr->ConnectOutput (muonPerformanceTask, 6, coutput6);
58   mgr->ConnectOutput (muonPerformanceTask, 7, coutput7);
59   mgr->ConnectOutput (muonPerformanceTask, 8, coutput8);
60   mgr->ConnectOutput (muonPerformanceTask, 9, coutput9);
61   mgr->ConnectOutput (muonPerformanceTask, 10, coutput10);
62   mgr->ConnectOutput (muonPerformanceTask, 11, coutput11);
63   mgr->ConnectOutput (muonPerformanceTask, 12, coutput12);
64   
65   return muonPerformanceTask;
66 }