]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muon/AddTaskSingleMuonAnalysis.C
For AliAnalysisTaskSingleMu: remove check for IsPileupSPD; possibility to add the...
[u/mrichter/AliRoot.git] / PWG / muon / AddTaskSingleMuonAnalysis.C
1 #if !defined(__CINT__) || defined(__MAKECINT__)
2 #include "TString.h"
3 #include "TObjArray.h"
4
5 #include "AliLog.h"
6 #include "AliVEventHandler.h"
7
8 #include "AliAnalysisManager.h"
9 #include "AliAnalysisDataContainer.h"
10
11 #include "AliMuonTrackCuts.h"
12 #include "AliAnalysisTaskSingleMu.h"
13 #endif
14
15 AliAnalysisTaskSingleMu* AddTaskSingleMuonAnalysis(Bool_t isMC = kFALSE, TString changeName = "")
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
30   TString outputfile = mgr->GetCommonFileName();
31   if ( ! outputfile.IsNull() ) outputfile += ":PWG3_SingleMu" + changeName;
32   else outputfile = "SingleMuAnalysis" + changeName + ".root";
33
34   TString containerName = "SingleMuOut" + changeName;
35   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(containerName.Data(),TObjArray::Class(),AliAnalysisManager::kOutputContainer,outputfile);
36
37   // Create cuts
38   TString cutsName = "StdMuonTrackCuts" + changeName;
39   AliMuonTrackCuts* muonTrackCuts = new AliMuonTrackCuts(cutsName.Data(), cutsName.Data());
40   muonTrackCuts->SetIsMC(isMC);
41
42   // Create task
43   TString taskName = "SingleMuTask" + changeName;
44   AliAnalysisTaskSingleMu *singleMuAnalysisTask = new AliAnalysisTaskSingleMu(taskName.Data(), *muonTrackCuts);
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;
53 }