]>
Commit | Line | Data |
---|---|---|
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 | 15 | AliAnalysisTaskSingleMu* 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 | } |