]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/macros/AddTaskPID.C
reverted commit 092db0d78a7a4058bb5893bf8110127f6fa3bfe1
[u/mrichter/AliRoot.git] / PWGJE / macros / AddTaskPID.C
CommitLineData
e131b05f 1AliAnalysisTask *AddTaskPID(TString nameSuffix, Bool_t writeOutputToSeparateFiles = kTRUE,
2 Bool_t useConvolutedGauss = kTRUE, TString centralityEstimator = "V0A",
cf2ab645 3 Bool_t considerJets = kTRUE, Bool_t overrideStoreCentralityPercentile = kFALSE,
4 Bool_t overrideStoreCentralityPercentileValue = kFALSE)
e131b05f 5{
6 // Macro to set up and add PID task with default settings.
7 //
8 // Typical parameters to run on 11a1* (MC_pp@7TeV):
9 // "PWGJE_taskPID_Jets", kTRUE, kTRUE, "V0A", kTRUE
10 // and as a second task
11 // "PWGJE_taskPID_Jets_Inclusive", kTRUE, kTRUE, "V0A", kTRUE
12
13 TString taskName = Form("PWGJE_taskPID%s", nameSuffix.Data());
14
15
16 // Get the current analysis manager
17 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
18 if (!mgr) {
19 ::Error("AddTaskPID", "No analysis manager found.");
20 return 0x0;
21 }
22
23 //========= Add task to the ANALYSIS manager =====
24 AliAnalysisTaskPID *task = new AliAnalysisTaskPID(taskName.Data());
25 task->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kINT7);
26
27
28
29 printf("\nSetting up task %s:\n", taskName.Data());
30 TString listOfFiles = gSystem->Getenv("LIST");
31
32 if (!considerJets) {
33 //
34 // Add track filters
35 //
36
37 AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
38 AliESDtrackCuts* esdTrackCutsL = 0x0;
39
40 if (listOfFiles.Contains("LHC11") || listOfFiles.Contains("LHC12") || listOfFiles.Contains("LHC13")) {
41 esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE);
42 printf("Using standard ITS-TPC track cuts 2011\n");
43 trackFilter->SetTitle("Standard ITS-TPC track cuts 2011");
44 }
45 else if (listOfFiles.Contains("LHC10")) {
46 esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE);
47 printf("Using standard ITS-TPC track cuts 2010\n");
48 trackFilter->SetTitle("Standard ITS-TPC track cuts 2010");
49 }
50 else {
51 esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE);
52 printf("WARNING: Cuts not configured for this period!!! Using standard ITS-TPC track cuts 2011\n");
53 trackFilter->SetTitle("Standard ITS-TPC track cuts 2011");
54 }
55 /*
56 esdTrackCutsL->SetMinNCrossedRowsTPC(120);
57 esdTrackCutsL->SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
58 esdTrackCutsL->SetMaxChi2PerClusterITS(36);
59 esdTrackCutsL->SetMaxFractionSharedTPCClusters(0.4);
60 esdTrackCutsL->SetMaxChi2TPCConstrainedGlobal(36);
61 */
62
63 trackFilter->AddCuts(esdTrackCutsL);
64 task->SetTrackFilter(trackFilter);
65 }
66
67 // Test whether we have pPb or Pbp
68 if (listOfFiles.Contains("pPb") || listOfFiles.Contains("Pbp")) {
69 task->SetIsPbpOrpPb(kTRUE);
70 printf("pPb/Pbp detected -> Adapting vertex cuts!\n");
71 }
72 else {
73 task->SetIsPbpOrpPb(kFALSE);
74 printf("Collision type different from pPb/Pbp detected -> Using standard vertex cuts!\n");
75 }
76
8aa84348 77 // Do not store centrality percentile for pp (will be set to -1 for all events) - or use special centrality estimator and store
78 if (listOfFiles.Contains("pp")) {
79 //task->SetStoreCentralityPercentile(kFALSE);
80
81 task->SetStoreCentralityPercentile(kTRUE);
82 task->SetCentralityEstimator("ITSTPCtracklets");
83 }
e131b05f 84 else
85 task->SetStoreCentralityPercentile(kTRUE);
86
cf2ab645 87 if (overrideStoreCentralityPercentile)
88 task->SetStoreCentralityPercentile(overrideStoreCentralityPercentileValue);
89
e131b05f 90 task->SetEtaAbsCutRange(0.0, 0.9);
91 task->SetUsePhiCut(kFALSE);
92
93 // Do not set the covolution parameters if they are not used (saves some cpu time for the initialisation)
94 if (useConvolutedGauss) {
95 if ((listOfFiles.Contains("pPb") || listOfFiles.Contains("Pbp")) && listOfFiles.Contains("LHC13")) {
96 printf("\n13* pPb @ 5.023 ATeV data detected -> Setting corresponding convolution parameters...\n");
97 task->SetConvolutedGaussLambdaParameter(3.0);
98 }
99
100 if (listOfFiles.Contains("LHC11a_without_SDD")) {
101 printf("\n11a (pp 2.76 TeV) detected -> Setting corresponding convolution parameters...\n");
102 task->SetConvolutedGaussLambdaParameter(3.0);
103 }
104 else {
105 printf("\nUsing default convolution parameters...\n");
106 task->SetConvolutedGaussLambdaParameter(2.0);
107 }
108 }
109
110 task->SetCentralityEstimator(centralityEstimator.Data());
111
112 task->SetUseMCidForGeneration(kTRUE);
113 task->SetUseITS(kTRUE);
114 task->SetUseTOF(kTRUE);
115 task->SetUsePriors(kTRUE);
116 task->SetUseTPCDefaultPriors(kTRUE);
117 task->SetUseConvolutedGaus(useConvolutedGauss);
118 task->SetTakeIntoAccountMuons(kTRUE);
119
120 task->SetInputFromOtherTask(considerJets);
121 task->SetStoreAdditionalJetInformation(considerJets);
122
123 task->PrintSettings();
124
125 mgr->AddTask(task);
126
127
128 //================================================
129 // data containers
130 //================================================
131
132 //define output containers
133 AliAnalysisDataContainer *coutput1 =
134 mgr->CreateContainer(Form("%s", taskName.Data()),
135 TObjArray::Class(),
136 AliAnalysisManager::kOutputContainer,
137 writeOutputToSeparateFiles
138 ? Form("%s.root", taskName.Data())
139 : Form("%s:%s", AliAnalysisManager::GetCommonFileName(), taskName.Data()));
9e95a906 140
cf2ab645 141 if (task->GetDoEfficiency()) {
142 AliAnalysisDataContainer *coutput2 =
143 mgr->CreateContainer(Form("%s_efficiency", taskName.Data()),
144 AliCFContainer::Class(),
145 AliAnalysisManager::kOutputContainer,
146 writeOutputToSeparateFiles
147 ? Form("%s_efficiency.root", taskName.Data())
148 : Form("%s:%s_efficiency", AliAnalysisManager::GetCommonFileName(), taskName.Data()));
149 mgr->ConnectOutput (task, 2, coutput2);
150 }
151
152 if (task->GetDoDeDxCheck() || task->GetDoPtResolution()) {
153 AliAnalysisDataContainer *coutput3 =
154 mgr->CreateContainer(Form("%s_PtResolution", taskName.Data()),
155 TObjArray::Class(),
156 AliAnalysisManager::kOutputContainer,
157 writeOutputToSeparateFiles
158 ? Form("%s_PtResolution.root", taskName.Data())
159 : Form("%s:%s_PtResolution", AliAnalysisManager::GetCommonFileName(), taskName.Data()));
160 mgr->ConnectOutput (task, 3, coutput3);
161 }
e131b05f 162 //connect containers
163 mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
164 mgr->ConnectOutput (task, 0, mgr->GetCommonOutputContainer()); // comment to run local
165 mgr->ConnectOutput (task, 1, coutput1);
e131b05f 166
167 return task;
168}