]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGPP/TPC/macros/AddTaskTPCPIDEtaQA.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGPP / TPC / macros / AddTaskTPCPIDEtaQA.C
CommitLineData
ba8a8d20 1AliAnalysisTask *AddTaskTPCPIDEtaQA(TString period = "", Bool_t isPbpOrpPb = kFALSE,
2 Int_t tpcCutType = AliTPCPIDBase::kTPCCutMIGeo /*AliTPCPIDBase::kTPCnclCut*/,
88b71b9f 3 Bool_t usePhiCut = kFALSE,
4 Double_t ptThresholdForPhiCut = 0.0){
5 //get the current analysis manager
6 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
7 if (!mgr) {
8 Error("AddTask_bhess_PIDetaAdv", "No analysis manager found.");
9 return 0;
10 }
11
12 //========= Add task to the ANALYSIS manager =====
13 AliTPCPIDEtaQA *task = new AliTPCPIDEtaQA("TPCPIDEtaQA");
14 task->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kINT7);
15
16 //
17 // Add track filters
18 //
19 AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
20 AliESDtrackCuts* esdTrackCutsL = 0x0;
21
22 printf("\nSettings:\n");
ba8a8d20 23 if (period.Contains("LHC11") || period.Contains("LHC12") || period.Contains("LHC13")) {
88b71b9f 24 esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE);
25 printf("Using standard ITS-TPC track cuts 2011\n");
26 }
ba8a8d20 27 else if (period.Contains("LHC10")) {
88b71b9f 28 esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE);
29 printf("Using standard ITS-TPC track cuts 2010\n");
30 }
31 else {
32 esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE);
33 printf("WARNING: Cuts not configured for this period!!! Using standard ITS-TPC track cuts 2011\n");
34 }
35
36/*
37 esdTrackCutsL->SetMinNCrossedRowsTPC(120);
38 esdTrackCutsL->SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
39 esdTrackCutsL->SetMaxChi2PerClusterITS(36);
40 esdTrackCutsL->SetMaxFractionSharedTPCClusters(0.4);
41 esdTrackCutsL->SetMaxChi2TPCConstrainedGlobal(36);
42*/
43
ba8a8d20 44 task->SetIsPbpOrpPb(isPbpOrpPb);
45 if (task->GetIsPbpOrpPb()) {
46 printf("Collision type pPb/Pbp set -> Adapting vertex cuts!\n");
88b71b9f 47 }
48 else {
ba8a8d20 49 printf("Collision type different from pPb/Pbp -> Using standard vertex cuts!\n");
88b71b9f 50 }
51
52 trackFilter->AddCuts(esdTrackCutsL);
53 task->SetTrackFilter(trackFilter);
54
55 task->SetEtaCut(0.9);
56 task->SetUsePhiCut(usePhiCut);
57 task->SetPtThresholdForPhiCut(ptThresholdForPhiCut);
58 task->SetTPCcutType(tpcCutType);
59
60 printf("Eta cut: %f\n", task->GetEtaCut());
61 printf("UsePhiCut: %d\n", task->GetUsePhiCut());
62 if (task->GetUsePhiCut())
63 printf("PtThresholdForPhiCut: %f\n", task->GetPtThresholdForPhiCut());
64 printf("UseTPCCutMIGeo: %d\n", task->GetUseTPCCutMIGeo());
65 printf("UseTPCnclCut: %d\n", task->GetUseTPCnclCut());
66
67
68
69
70
71
72 task->SetZvtxCutEvent(10.0);
73 printf("Cut on z position of vertex: %.2f cm\n", task->GetZvtxCutEvent());
74
75 printf("UsePhiCut: %d\nPtThresholdForPhiCut: %.3f GeV/c\n\n", task->GetUsePhiCut(), task->GetPtThresholdForPhiCut());
76 mgr->AddTask(task);
77
78
79 //================================================
80 // data containers
81 //================================================
82 // find input container
83 //below the trunk version
84 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
85
86 //dumm output container
87 AliAnalysisDataContainer *coutput0 =
88 mgr->CreateContainer("TPCPIDEtaQA_tree",
89 TTree::Class(),
90 AliAnalysisManager::kExchangeContainer,
91 "TPCPIDEtaQA_default");
92
93 //define output containers, please use 'username'_'somename'
94 AliAnalysisDataContainer *coutput1 =
95 mgr->CreateContainer("TPCPIDEtaQA", TObjArray::Class(),
96 AliAnalysisManager::kOutputContainer,"TPCPIDEtaQA.root");
97
98 //connect containers
99 mgr->ConnectInput (task, 0, cinput );
100 mgr->ConnectOutput (task, 0, coutput0);
101 mgr->ConnectOutput (task, 1, coutput1);
102
103 return task;
104}