]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGPP/TPC/macros/AddTaskTPCPIDEtaTree.C
- Fixed compiler warnings/errors
[u/mrichter/AliRoot.git] / PWGPP / TPC / macros / AddTaskTPCPIDEtaTree.C
CommitLineData
88b71b9f 1AliAnalysisTask *AddTaskTPCPIDEtaTree(Bool_t correctdEdxEtaDependence = kFALSE, Bool_t correctdEdxMultiplicityDependence = kFALSE,
2 Bool_t setDoAdditionalQA = kFALSE, Bool_t useTPCCutMIGeo = kTRUE, Bool_t usePhiCut = kFALSE){
3 //get the current analysis manager
4 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
5 if (!mgr) {
6 Error("AddTask_bhess_PIDetaTree", "No analysis manager found.");
7 return 0;
8 }
9
10 //========= Add task to the ANALYSIS manager =====
11 AliTPCPIDEtaTree *task = new AliTPCPIDEtaTree("TPCPIDEtaTree");
12 task->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kINT7);
13
14 //
15 // Add track filters
16 //
17 AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
18 AliESDtrackCuts* esdTrackCutsL = 0x0;
19
20 printf("\nSettings:\n");
21 TString listOfFiles = gSystem->Getenv("LIST");
22 if (listOfFiles.Contains("LHC11") || listOfFiles.Contains("LHC12") || listOfFiles.Contains("LHC13")) {
23 esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE);
24 printf("Using standard ITS-TPC track cuts 2011.\n");
25 }
26 else if (listOfFiles.Contains("LHC10")) {
27 esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE);
28 printf("Using standard ITS-TPC track cuts 2010.\n");
29 }
30 else {
31 esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE);
32 printf("WARNING: Cuts not configured for this period!!! Using standard ITS-TPC track cuts 2011\n");
33 }
34
35 if (listOfFiles.Contains("PbPb") || listOfFiles.Contains("pPb") || listOfFiles.Contains("Pbp")) {
36 task->SetStoreMultiplicity(kTRUE);
37 printf("PbPb, pPb or Pbp detected -> Storing multiplicity in tree!\n");
38 }
39 else {
40 task->SetStoreMultiplicity(kFALSE);
41 printf("pp detected -> NOT storing multiplicity in tree!\n");
42 }
43
44
45 // Test whether we have pPb or Pbp
46 if (listOfFiles.Contains("pPb") || listOfFiles.Contains("Pbp")) {
47 task->SetIsPbpOrpPb(kTRUE);
48 printf("pPb/Pbp detected -> Adapting vertex cuts!\n");
49 }
50 else {
51 task->SetIsPbpOrpPb(kFALSE);
52 printf("Collision type different from pPb/Pbp detected -> Using standard vertex cuts!\n");
53 }
54
55
56 trackFilter->AddCuts(esdTrackCutsL);
57 task->SetTrackFilter(trackFilter);
58 task->SetUsePhiCut(usePhiCut);
59 task->SetUseTPCCutMIGeo(useTPCCutMIGeo);
60
61 printf("UsePhiCut: %d\n", task->GetUsePhiCut());
62 printf("UseTPCCutMIGeo: %d\n", task->GetUseTPCCutMIGeo());
63
64
65 task->SetDoAdditionalQA(setDoAdditionalQA);
66
67 if (task->GetDoAdditionalQA())
68 printf("Storing histos for additional QA!\n");
69 else
70 printf("NOT storing histos for additional QA!\n");
71
72 task->SetZvtxCutEvent(10.0);
73 printf("Cut on z position of vertex: %.2f cm\n", task->GetZvtxCutEvent());
74
75 task->SetEtaCut(0.9);
76 printf("EtaCut: %.2f\n", task->GetEtaCut());
77
78 task->SetPtpcPionCut(0.6);
79 printf("P_TPC_Pion cut: %.2f\n", task->GetPtpcPionCut());
80
81 task->SetStoreNumOfSubthresholdclusters(kTRUE);
82 printf("Store num subthreshold clusters: %d\n", task->GetStoreNumOfSubthresholdclusters());
83
84 task->SetStoreNumClustersInActiveVolume(kTRUE);
85 printf("Store num clusters in active volume: %d\n", task->GetStoreNumClustersInActiveVolume());
86
87 task->SetCorrectdEdxEtaDependence(correctdEdxEtaDependence);
88 task->SetCorrectdEdxMultiplicityDependence(correctdEdxMultiplicityDependence);
89
90 printf("Eta correction: %s for this task\n",
91 task->GetCorrectdEdxEtaDependence() ? "enabled (only works if enabled in PIDresponse!)" : "explicitly disabled");
92 printf("Multiplicity correction: %s for this task\n\n",
93 task->GetCorrectdEdxMultiplicityDependence() ? "enabled (only works if enabled in PIDresponse!)" : "explicitly disabled");
94
95 mgr->AddTask(task);
96
97
98 //================================================
99 // data containers
100 //================================================
101 // find input container
102 //below the trunk version
103 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
104
105 //dumm output container
106 AliAnalysisDataContainer *coutput0 =
107 mgr->CreateContainer("TPCPIDEtaTree",
108 TTree::Class(),
109 AliAnalysisManager::kExchangeContainer,
110 "TPCPIDEtaTree_default");
111
112 //define output containers, please use 'username'_'somename'
113 AliAnalysisDataContainer *coutput1 =
114 mgr->CreateContainer("TPCPIDEtaTree", TTree::Class(),
115 AliAnalysisManager::kOutputContainer,"TPCPIDEtaTree.root");
116 AliAnalysisDataContainer *coutput2 =
117 mgr->CreateContainer("TPCPIDEtaTree", TTree::Class(),
118 AliAnalysisManager::kOutputContainer,"TPCPIDEtaTreePions.root");
119 AliAnalysisDataContainer *coutput3 =
120 mgr->CreateContainer("TPCPIDEtaTreeAdditionalQA", TObjArray::Class(),
121 AliAnalysisManager::kOutputContainer,"TPCPIDEtaTreeAddionalQA.root");
122
123 //connect containers
124 mgr->ConnectInput(task, 0, cinput );
125 mgr->ConnectOutput(task, 0, coutput0);
126 mgr->ConnectOutput(task, 1, coutput1);
127 mgr->ConnectOutput(task, 2, coutput2);
128 mgr->ConnectOutput(task, 3, coutput3);
129
130 return task;
131}