]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/TPC/macros/AddTaskTPCPIDEtaQA.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGPP / TPC / macros / AddTaskTPCPIDEtaQA.C
1 AliAnalysisTask *AddTaskTPCPIDEtaQA(TString period = "", Bool_t isPbpOrpPb = kFALSE,
2                                     Int_t tpcCutType = AliTPCPIDBase::kTPCCutMIGeo /*AliTPCPIDBase::kTPCnclCut*/,
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");
23   if (period.Contains("LHC11") || period.Contains("LHC12") || period.Contains("LHC13")) {
24     esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE);
25     printf("Using standard ITS-TPC track cuts 2011\n");
26   }
27   else if (period.Contains("LHC10")) {
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
44   task->SetIsPbpOrpPb(isPbpOrpPb);
45   if (task->GetIsPbpOrpPb()) {
46     printf("Collision type pPb/Pbp set -> Adapting vertex cuts!\n");
47   }
48   else  {
49     printf("Collision type different from pPb/Pbp -> Using standard vertex cuts!\n");
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 }