AliAnalysisTaskMuonPerformance *AddTaskMuonPerformance(Bool_t correctClusterResForSystematics = kTRUE, Bool_t fitClusterResiduals = kTRUE) { /// Add AliAnalysisTaskMuonPerformance to the train // Get the pointer to the existing analysis manager via the static access method. //============================================================================== AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); if (!mgr) { ::Error("AddTaskMuonPerformance", "No analysis manager to connect to."); return NULL; } // This task requires an ESD input handler. // Check this using the analysis manager. //=============================================================================== TString type = mgr->GetInputEventHandler()->GetDataType(); if (!type.Contains("ESD")) { ::Error("AddTaskMuonPerformance", "MuonPerformance task needs the manager to have an ESD input handler."); return NULL; } TString baseOutName = "muonPerformance.root"; TString outputfile = mgr->GetCommonFileName(); if ( ! outputfile.IsNull() ) outputfile += ":MUON_Performances"; else outputfile = baseOutName; AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("EffContainer",AliCFContainer::Class(),AliAnalysisManager::kOutputContainer,outputfile); AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("TriggerResolution",TObjArray::Class(),AliAnalysisManager::kOutputContainer,outputfile); AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("TrackerResolution",TObjArray::Class(),AliAnalysisManager::kOutputContainer,outputfile); AliAnalysisDataContainer *coutput4 = mgr->CreateContainer("Efficiency",TObjArray::Class(),AliAnalysisManager::kParamContainer,outputfile); AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("MomentumAtVtx",TObjArray::Class(),AliAnalysisManager::kParamContainer,outputfile); AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("SlopeAtVtx",TObjArray::Class(),AliAnalysisManager::kParamContainer,outputfile); AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("EtaAtVtx",TObjArray::Class(),AliAnalysisManager::kParamContainer,outputfile); AliAnalysisDataContainer *coutput8 = mgr->CreateContainer("PhiAtVtx",TObjArray::Class(),AliAnalysisManager::kParamContainer,outputfile); AliAnalysisDataContainer *coutput9 = mgr->CreateContainer("MomentumAtFirstCl",TObjArray::Class(),AliAnalysisManager::kParamContainer,outputfile); AliAnalysisDataContainer *coutput10 = mgr->CreateContainer("SlopeAtFirstCl",TObjArray::Class(),AliAnalysisManager::kParamContainer,outputfile); AliAnalysisDataContainer *coutput11 = mgr->CreateContainer("DCA",TObjArray::Class(),AliAnalysisManager::kParamContainer,outputfile); AliAnalysisDataContainer *coutput12 = mgr->CreateContainer("Clusters",TObjArray::Class(),AliAnalysisManager::kParamContainer,outputfile); // Create the task, add it to the manager and configure it. //=========================================================================== AliAnalysisTaskMuonPerformance *muonPerformanceTask = new AliAnalysisTaskMuonPerformance("muonPerformanceTask"); mgr->AddTask(muonPerformanceTask); muonPerformanceTask->CorrectClusterResForSystematics(correctClusterResForSystematics); muonPerformanceTask->FitClusterResiduals(fitClusterResiduals); // Create ONLY the output containers for the data produced by the task. // Get and connect other common input/output containers via the manager as below //============================================================================== mgr->ConnectInput (muonPerformanceTask, 0, mgr->GetCommonInputContainer()); mgr->ConnectOutput (muonPerformanceTask, 1, coutput1); mgr->ConnectOutput (muonPerformanceTask, 2, coutput2); mgr->ConnectOutput (muonPerformanceTask, 3, coutput3); mgr->ConnectOutput (muonPerformanceTask, 4, coutput4); mgr->ConnectOutput (muonPerformanceTask, 5, coutput5); mgr->ConnectOutput (muonPerformanceTask, 6, coutput6); mgr->ConnectOutput (muonPerformanceTask, 7, coutput7); mgr->ConnectOutput (muonPerformanceTask, 8, coutput8); mgr->ConnectOutput (muonPerformanceTask, 9, coutput9); mgr->ConnectOutput (muonPerformanceTask, 10, coutput10); mgr->ConnectOutput (muonPerformanceTask, 11, coutput11); mgr->ConnectOutput (muonPerformanceTask, 12, coutput12); return muonPerformanceTask; }