]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/SPECTRA/PiKaPr/TPCTOF/AddTaskCombinedHadronSpectra.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / TPCTOF / AddTaskCombinedHadronSpectra.C
1
2
3 AliAnalysisTask *AddTaskCombinedHadronSpectra(Int_t identifier = 0, Bool_t isMC = kFALSE, Bool_t isTPConly = kFALSE, Bool_t writeOwnFile = kFALSE, Bool_t saveMotherPDG = kFALSE, Bool_t useEvenDcaBinning = kFALSE, Bool_t smallTHnSparse = kFALSE, Double_t nSigmaTPCLow= -3., Double_t nSigmaTPCHigh = 3., Double_t rapidityLow = -0.2, Double_t rapidityHigh = 0.2, Bool_t setTrackCuts = kFALSE, AliESDtrackCuts *ESDtrackCuts = 0){
4
5
6   //get the current analysis manager
7   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
8   if (!mgr) {
9     Error("AddTask_janielsk_CombinedHadron", "No analysis manager found.");
10     return 0;
11   }
12   //============= Set Task Name ===================
13   TString taskName=("AliAnalysisCombinedHadronSpectra.cxx+g");
14   //===============================================
15   //            Load the task
16   gROOT->LoadMacro(taskName.Data());
17
18
19   
20   //========= Add task to the ANALYSIS manager =====
21
22   //normal tracks
23   AliAnalysisCombinedHadronSpectra *task = new AliAnalysisCombinedHadronSpectra("janielskTaskCombinedHadron");
24   task->SelectCollisionCandidates(AliVEvent::kMB);
25
26   //switches
27   if (isMC) task->SetIsMCtrue(isMC);
28   if (isTPConly)task->SetUseTPConlyTracks(isTPConly);
29   if (saveMotherPDG) task->SetSaveMotherPDG(saveMotherPDG);
30   if (useEvenDcaBinning) task->SetEvenDCAbinning(kTRUE);
31   if (smallTHnSparse){
32     task->SetSmallTHnSparse(kTRUE);
33     task->SetTPCnSigmaCuts(nSigmaTPCLow,nSigmaTPCHigh);
34     task->SetRapidityCuts(rapidityLow,rapidityHigh);
35   }
36
37   //initialize task
38   task->Initialize();
39
40   //esd cuts need to be set after initialize or cuts will be replaced by standard cuts in initialize
41   if (setTrackCuts) task->SetESDtrackCuts(ESDtrackCuts);
42
43   //add task to manager
44   mgr->AddTask(task);
45
46
47   
48
49   //================================================
50   //              data containers
51   //================================================
52   //            find input container
53   //below the trunk version
54   AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
55
56 /*
57   //dumm output container
58   AliAnalysisDataContainer *coutput0 =
59       mgr->CreateContainer(Form("akalweit_tree%i",identifier),
60                            TTree::Class(),
61                            AliAnalysisManager::kExchangeContainer,
62                            Form("akalweit_default%i",identifier));
63
64
65   //define output containers, please use 'username'_'somename'
66   AliAnalysisDataContainer *coutput1 = 
67       mgr->CreateContainer(Form("akalweit_CombinedHadron%i",identifier), TList::Class(),
68                            AliAnalysisManager::kOutputContainer,Form("akalweit_CombinedHadron%i.root",identifier));
69 */
70   if (!writeOwnFile) {
71         AliAnalysisDataContainer *coutput1 =  mgr->CreateContainer(Form("janielsk_CombinedHadron%i",identifier), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:janielsk_CombinedHadron", AliAnalysisManager::GetCommonFileName())); 
72         }
73   else {
74         AliAnalysisDataContainer *coutput1 =  mgr->CreateContainer(Form("janielsk_CombinedHadron%i",identifier), TList::Class(), AliAnalysisManager::kOutputContainer, Form("janielsk_CombinedHadron.root"));
75         }
76
77
78
79   //connect containers
80
81   //
82   mgr->ConnectInput  (task,  0, cinput );
83   //mgr->ConnectOutput (task,  0, coutput0);
84   mgr->ConnectOutput (task,  1, coutput1);
85
86   return task;
87 }