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