/
AddTaskUpsilonTreeTuned.C
54 lines (43 loc) · 1.98 KB
/
AddTaskUpsilonTreeTuned.C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#if !defined(__CINT__) || defined(__MAKECINT__)
#include "TString.h"
#include "TObjArray.h"
#include "AliLog.h"
#include "AliVEventHandler.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisDataContainer.h"
#include "AliMuonTrackCuts.h"
#include "AliAnalysisTaskUpsilonTreeTuned.h"
#endif
AliAnalysisTaskUpsilonTreeTuned* AddTaskUpsilonTreeTuned(Bool_t isMC = kFALSE, TString changeName = "")
{
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
::Error("AddtaskUpsilon", "No analysis manager to connect to.");
return NULL;
}
TString type = mgr->GetInputEventHandler()->GetDataType();
if (!type.Contains("ESD") && !type.Contains("AOD")) {
::Error("AddtaskUpsilon", "Upsilon task needs the manager to have an ESD or AOD input handler.");
return NULL;
}
// Create container
TString outputfile = mgr->GetCommonFileName();
if ( ! outputfile.IsNull() ) outputfile += ":Upsilon" + changeName;
else outputfile = "UpsilonAnalysis" + changeName + ".root";
TString containerName = "UpsilonOut" + changeName;
AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(containerName.Data(),TList::Class(),AliAnalysisManager::kOutputContainer,outputfile);
// Create cuts
TString cutsName = "StdMuonPairCuts" + changeName;
AliMuonPairCuts* muonPairCuts = new AliMuonPairCuts(cutsName.Data(), cutsName.Data());
muonPairCuts->SetIsMC(isMC);
// Create task
TString taskName = "UpsilonTask" + changeName;
AliMuonTrackCuts *muonCuts = new AliMuonTrackCuts("cuts","cuts");
AliAnalysisTaskUpsilonTreeTuned *upsilonAnalysisTask = new AliAnalysisTaskUpsilonTreeTuned(taskName.Data(),muonCuts);
if ( isMC ) upsilonAnalysisTask->SetTrigClassPatterns("ANY");
mgr->AddTask(upsilonAnalysisTask);
// Connect containers
mgr->ConnectInput (upsilonAnalysisTask, 0, mgr->GetCommonInputContainer());
mgr->ConnectOutput (upsilonAnalysisTask, 1, coutput1);
return upsilonAnalysisTask;
}