]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/muon/AddTaskSingleMuonAnalysis.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / muon / AddTaskSingleMuonAnalysis.C
CommitLineData
4ab8d5a6 1#if !defined(__CINT__) || defined(__MAKECINT__)
2#include "TString.h"
a07db2fb 3#include "TObjArray.h"
4ab8d5a6 4
5#include "AliLog.h"
6#include "AliVEventHandler.h"
7
8#include "AliAnalysisManager.h"
9#include "AliAnalysisDataContainer.h"
10
a07db2fb 11#include "AliMuonTrackCuts.h"
4ab8d5a6 12#include "AliAnalysisTaskSingleMu.h"
13#endif
14
d5a197f5 15AliAnalysisTaskSingleMu* AddTaskSingleMuonAnalysis(Bool_t isMC = kFALSE, TString changeName = "")
a07db2fb 16{
17 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
18 if (!mgr) {
19 ::Error("AddtaskSingleMu", "No analysis manager to connect to.");
20 return NULL;
21 }
22
23 TString type = mgr->GetInputEventHandler()->GetDataType();
24 if (!type.Contains("ESD") && !type.Contains("AOD")) {
25 ::Error("AddtaskSingleMu", "SingleMu task needs the manager to have an ESD or AOD input handler.");
26 return NULL;
27 }
28
29 // Create container
a07db2fb 30 TString outputfile = mgr->GetCommonFileName();
d5a197f5 31 if ( ! outputfile.IsNull() ) outputfile += ":PWG3_SingleMu" + changeName;
32 else outputfile = "SingleMuAnalysis" + changeName + ".root";
a07db2fb 33
d5a197f5 34 TString containerName = "SingleMuOut" + changeName;
35 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(containerName.Data(),TObjArray::Class(),AliAnalysisManager::kOutputContainer,outputfile);
a07db2fb 36
37 // Create cuts
d5a197f5 38 TString cutsName = "StdMuonTrackCuts" + changeName;
39 AliMuonTrackCuts* muonTrackCuts = new AliMuonTrackCuts(cutsName.Data(), cutsName.Data());
a07db2fb 40 muonTrackCuts->SetIsMC(isMC);
41
42 // Create task
d5a197f5 43 TString taskName = "SingleMuTask" + changeName;
44 AliAnalysisTaskSingleMu *singleMuAnalysisTask = new AliAnalysisTaskSingleMu(taskName.Data(), *muonTrackCuts);
a07db2fb 45 if ( isMC ) singleMuAnalysisTask->SetTrigClassPatterns("ANY");
46 mgr->AddTask(singleMuAnalysisTask);
47
48 // Connect containers
49 mgr->ConnectInput (singleMuAnalysisTask, 0, mgr->GetCommonInputContainer());
50 mgr->ConnectOutput (singleMuAnalysisTask, 1, coutput1);
51
52 return singleMuAnalysisTask;
4ab8d5a6 53}