]>
Commit | Line | Data |
---|---|---|
6e724276 | 1 | AliAnalysisTaskQASym * AddTaskQAsym(Int_t runNumber, |
2 | UInt_t maskMB, | |
3 | UInt_t maskHM, | |
4 | UInt_t maskEM, | |
5 | UInt_t maskMU) | |
98a5f582 | 6 | |
7 | { | |
8 | // Creates a QA task exploiting simple symmetries phi, eta +/-, charge ... | |
9 | ||
10 | // Get the pointer to the existing analysis manager via the static access method. | |
11 | //============================================================================== | |
12 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
13 | if (!mgr) { | |
14 | ::Error("AddTaskQAsym", "No analysis manager to connect to."); | |
15 | return NULL; | |
16 | } | |
17 | ||
18 | // Check the analysis type using the event handlers connected to the analysis manager. | |
19 | //============================================================================== | |
20 | if (!mgr->GetInputEventHandler()) { | |
21 | ::Error("AddTasQAsym", "This task requires an input event handler"); | |
22 | return NULL; | |
23 | } | |
24 | TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD" | |
25 | ||
26 | // Configure analysis | |
27 | //=========================================================================== | |
28 | ||
29 | ||
30 | //Task for global tracks | |
31 | AliAnalysisTaskQASym *task0 = new AliAnalysisTaskQASym("AliAnalysisTaskQASym_Global"); | |
32 | task0->SetTrackType(0); | |
8e1ee57a | 33 | task0->SelectCollisionCandidates(maskMB); // default setting: kMB = min bias trigger |
da6b678b | 34 | task0->SetNChargedRange(30,50); // comparison of different trigger settings |
1c91c6a4 | 35 | //Task for global tracks (high multiplicity) |
36 | AliAnalysisTaskQASym *task0HM = new AliAnalysisTaskQASym("AliAnalysisTaskQASym_Global_HighMult"); | |
37 | task0HM->SetTrackType(0); | |
8e1ee57a | 38 | task0HM->SelectCollisionCandidates(maskHM); |
da6b678b | 39 | task0HM->SetNChargedRange(30,50); |
6e724276 | 40 | //Task for global tracks (EMCAL trigger) |
41 | AliAnalysisTaskQASym *task0EM = new AliAnalysisTaskQASym("AliAnalysisTaskQASym_Global_EMCAL"); | |
42 | task0EM->SetTrackType(0); | |
43 | task0EM->SelectCollisionCandidates(maskEM); | |
44 | task0EM->SetNChargedRange(30,50); | |
45 | //Task for global tracks (Muon trigger) | |
46 | AliAnalysisTaskQASym *task0MU = new AliAnalysisTaskQASym("AliAnalysisTaskQASym_Global_MUON"); | |
47 | task0MU->SetTrackType(0); | |
48 | task0MU->SelectCollisionCandidates(maskMU); | |
49 | task0MU->SetNChargedRange(30,50); | |
50 | ||
51 | ||
98a5f582 | 52 | //Task for ITS tracks |
53 | AliAnalysisTaskQASym *task1 = new AliAnalysisTaskQASym("AliAnalysisTaskQASym_ITS"); | |
54 | task1->SetTrackType(1); | |
b676e981 | 55 | task1->SetStandAloneTrack(kFALSE); |
8e1ee57a | 56 | task1->SelectCollisionCandidates(maskMB); |
da6b678b | 57 | task1->SetNChargedRange(30,50); |
b676e981 | 58 | //Task for ITS tracks SA |
59 | AliAnalysisTaskQASym *task1sa = new AliAnalysisTaskQASym("AliAnalysisTaskQASym_ITS_SA"); | |
60 | task1sa->SetTrackType(1); | |
61 | task1sa->SetStandAloneTrack(kTRUE); | |
8e1ee57a | 62 | task1sa->SelectCollisionCandidates(maskMB); |
da6b678b | 63 | task1sa->SetNChargedRange(30,50); |
98a5f582 | 64 | //Task for TPC tracks |
65 | AliAnalysisTaskQASym *task2 = new AliAnalysisTaskQASym("AliAnalysisTaskQASym_TPC"); | |
66 | task2->SetTrackType(2); | |
8e1ee57a | 67 | task2->SelectCollisionCandidates(maskMB); |
da6b678b | 68 | task2->SetNChargedRange(30,50); |
98a5f582 | 69 | |
70 | //cuts for global tracks | |
71 | AliESDtrackCuts* esdTrackCutsL0 = new AliESDtrackCuts("AliESDtrackCuts0","Global"); | |
72 | esdTrackCutsL0->SetMinNClustersTPC(70); | |
73 | esdTrackCutsL0->SetRequireTPCRefit(kTRUE); | |
1c91c6a4 | 74 | esdTrackCutsL0->SetRequireITSRefit(kTRUE); |
98a5f582 | 75 | esdTrackCutsL0->SetMaxDCAToVertexXY(3.); |
76 | esdTrackCutsL0->SetMaxDCAToVertexZ(3.); | |
77 | esdTrackCutsL0->SetAcceptKinkDaughters(kFALSE); | |
b676e981 | 78 | |
79 | //cuts for ITS tracks | |
98a5f582 | 80 | AliESDtrackCuts* esdTrackCutsL1 = new AliESDtrackCuts("AliESDtrackCuts1","ITS"); |
81 | esdTrackCutsL1->SetMaxDCAToVertexXY(3.); | |
82 | esdTrackCutsL1->SetMaxDCAToVertexZ(3.); | |
83 | esdTrackCutsL1->SetAcceptKinkDaughters(kFALSE); | |
84 | esdTrackCutsL1->SetRequireITSRefit(kTRUE); | |
c6f320d3 | 85 | esdTrackCutsL1->SetRequireITSStandAlone(kTRUE); |
b676e981 | 86 | |
87 | //cuts for ITS tracks SA | |
8e1ee57a | 88 | AliESDtrackCuts* esdTrackCutsL1sa = new AliESDtrackCuts("AliESDtrackCuts1sa","ITS_SA"); |
b676e981 | 89 | esdTrackCutsL1sa->SetMaxDCAToVertexXY(3.); |
90 | esdTrackCutsL1sa->SetMaxDCAToVertexZ(3.); | |
91 | esdTrackCutsL1sa->SetAcceptKinkDaughters(kFALSE); | |
92 | esdTrackCutsL1sa->SetRequireITSRefit(kTRUE); | |
c6f320d3 | 93 | esdTrackCutsL1sa->SetRequireITSPureStandAlone(kTRUE); |
98a5f582 | 94 | |
95 | //cuts for TPC tracks | |
96 | AliESDtrackCuts* esdTrackCutsL2 = new AliESDtrackCuts("AliESDtrackCuts2","TPC"); | |
97 | esdTrackCutsL2->SetRequireTPCRefit(kFALSE); | |
98 | esdTrackCutsL2->SetAcceptKinkDaughters(kFALSE); | |
99 | //jacek's cuts: | |
100 | esdTrackCutsL2->SetMinNClustersTPC(70); | |
101 | // cut on max ncl=160 in Task | |
102 | esdTrackCutsL2->SetMaxDCAToVertexXY(3.); | |
103 | esdTrackCutsL2->SetMaxDCAToVertexZ(3.); | |
104 | esdTrackCutsL2->SetMaxChi2PerClusterTPC(3.999); | |
105 | //cut minChi=0 in task | |
106 | //esdTrackCutsL2->SetPRange(0.15,16); // not needed for QA | |
107 | //esdTrackCutsL2->SetEtaRange(-0.8, 0.7999); // not needed for QA | |
108 | ||
109 | ||
110 | task0->SetCuts(esdTrackCutsL0); | |
1c91c6a4 | 111 | task0HM->SetCuts(esdTrackCutsL0); |
6e724276 | 112 | task0EM->SetCuts(esdTrackCutsL0); |
113 | task0MU->SetCuts(esdTrackCutsL0); | |
98a5f582 | 114 | task1->SetCuts(esdTrackCutsL1); |
b676e981 | 115 | task1sa->SetCuts(esdTrackCutsL1sa); |
98a5f582 | 116 | task2->SetCuts(esdTrackCutsL2); |
117 | ||
118 | mgr->AddTask(task0); | |
1c91c6a4 | 119 | mgr->AddTask(task0HM); |
6e724276 | 120 | mgr->AddTask(task0EM); |
121 | mgr->AddTask(task0MU); | |
98a5f582 | 122 | mgr->AddTask(task1); |
b676e981 | 123 | mgr->AddTask(task1sa); |
98a5f582 | 124 | mgr->AddTask(task2); |
125 | ||
1c91c6a4 | 126 | AliAnalysisDataContainer *cout0 = 0; |
127 | AliAnalysisDataContainer *cout0HM = 0; | |
6e724276 | 128 | AliAnalysisDataContainer *cout0EM = 0; |
129 | AliAnalysisDataContainer *cout0MU = 0; | |
1c91c6a4 | 130 | AliAnalysisDataContainer *cout1 = 0; |
b676e981 | 131 | AliAnalysisDataContainer *cout1sa = 0; |
1c91c6a4 | 132 | AliAnalysisDataContainer *cout2 = 0; |
98a5f582 | 133 | |
134 | if(runNumber>0){ | |
135 | cout0 = mgr->CreateContainer("QAsymHists_Global",TList::Class(), | |
136 | AliAnalysisManager::kOutputContainer, Form("run%d.root",runNumber)); | |
1c91c6a4 | 137 | cout0HM = mgr->CreateContainer("QAsymHists_Global_HighMult",TList::Class(), |
138 | AliAnalysisManager::kOutputContainer, Form("run%d.root",runNumber)); | |
6e724276 | 139 | cout0EM = mgr->CreateContainer("QAsymHists_Global_Emcal",TList::Class(), |
140 | AliAnalysisManager::kOutputContainer, Form("run%d.root",runNumber)); | |
141 | cout0MU = mgr->CreateContainer("QAsymHists_Global_Muon",TList::Class(), | |
142 | AliAnalysisManager::kOutputContainer, Form("run%d.root",runNumber)); | |
98a5f582 | 143 | cout1 = mgr->CreateContainer("QAsymHists_ITS",TList::Class(), |
144 | AliAnalysisManager::kOutputContainer, Form("run%d.root",runNumber)); | |
b676e981 | 145 | cout1sa = mgr->CreateContainer("QAsymHists_ITS_SA",TList::Class(), |
146 | AliAnalysisManager::kOutputContainer, Form("run%d.root",runNumber)); | |
98a5f582 | 147 | cout2 = mgr->CreateContainer("QAsymHists_TPC",TList::Class(), |
148 | AliAnalysisManager::kOutputContainer, Form("run%d.root",runNumber)); | |
149 | } | |
150 | ||
151 | else{ | |
152 | cout0 = mgr->CreateContainer("QAsymHists_Global",TList::Class(), | |
153 | AliAnalysisManager::kOutputContainer, | |
2bfe5463 | 154 | Form("%s:PWGPP_QAsymHists",AliAnalysisManager::GetCommonFileName())); |
1c91c6a4 | 155 | cout0HM = mgr->CreateContainer("QAsymHists_Global_HighMult",TList::Class(), |
156 | AliAnalysisManager::kOutputContainer, | |
2bfe5463 | 157 | Form("%s:PWGPP_QAsymHists",AliAnalysisManager::GetCommonFileName())); |
6e724276 | 158 | cout0EM = mgr->CreateContainer("QAsymHists_Global_Emcal",TList::Class(), |
159 | AliAnalysisManager::kOutputContainer, | |
2bfe5463 | 160 | Form("%s:PWGPP_QAsymHists",AliAnalysisManager::GetCommonFileName())); |
6e724276 | 161 | cout0MU = mgr->CreateContainer("QAsymHists_Global_Muon",TList::Class(), |
162 | AliAnalysisManager::kOutputContainer, | |
2bfe5463 | 163 | Form("%s:PWGPP_QAsymHists",AliAnalysisManager::GetCommonFileName())); |
98a5f582 | 164 | cout1 = mgr->CreateContainer("QAsymHists_ITS",TList::Class(), |
165 | AliAnalysisManager::kOutputContainer, | |
2bfe5463 | 166 | Form("%s:PWGPP_QAsymHists",AliAnalysisManager::GetCommonFileName())); |
b676e981 | 167 | cout1sa = mgr->CreateContainer("QAsymHists_ITS_SA",TList::Class(), |
168 | AliAnalysisManager::kOutputContainer, | |
2bfe5463 | 169 | Form("%s:PWGPP_QAsymHists",AliAnalysisManager::GetCommonFileName())); |
98a5f582 | 170 | cout2 = mgr->CreateContainer("QAsymHists_TPC",TList::Class(), |
171 | AliAnalysisManager::kOutputContainer, | |
2bfe5463 | 172 | Form("%s:PWGPP_QAsymHists",AliAnalysisManager::GetCommonFileName())); |
98a5f582 | 173 | } |
174 | ||
175 | ||
1c91c6a4 | 176 | mgr->ConnectInput (task0, 0, mgr->GetCommonInputContainer()); |
177 | mgr->ConnectInput (task0HM, 0, mgr->GetCommonInputContainer()); | |
6e724276 | 178 | mgr->ConnectInput (task0EM, 0, mgr->GetCommonInputContainer()); |
179 | mgr->ConnectInput (task0MU, 0, mgr->GetCommonInputContainer()); | |
1c91c6a4 | 180 | mgr->ConnectInput (task1, 0, mgr->GetCommonInputContainer()); |
b676e981 | 181 | mgr->ConnectInput (task1sa, 0, mgr->GetCommonInputContainer()); |
1c91c6a4 | 182 | mgr->ConnectInput (task2, 0, mgr->GetCommonInputContainer()); |
98a5f582 | 183 | |
1c91c6a4 | 184 | mgr->ConnectOutput (task0, 1, cout0); |
185 | mgr->ConnectOutput (task0HM, 1, cout0HM); | |
6e724276 | 186 | mgr->ConnectOutput (task0EM, 1, cout0EM); |
187 | mgr->ConnectOutput (task0MU, 1, cout0MU); | |
1c91c6a4 | 188 | mgr->ConnectOutput (task1, 1, cout1); |
b676e981 | 189 | mgr->ConnectOutput (task1sa, 1, cout1sa); |
1c91c6a4 | 190 | mgr->ConnectOutput (task2, 1, cout2); |
98a5f582 | 191 | |
192 | return task0; | |
193 | ||
194 | } | |
195 | ||
196 |