]>
Commit | Line | Data |
---|---|---|
e131b05f | 1 | AliAnalysisTask *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 | } |