]>
Commit | Line | Data |
---|---|---|
0601d71e | 1 | // $Id$ |
2 | ||
c8ff0efd | 3 | AliEmcalEsdTrackFilterTask* AddTaskEmcalEsdTrackFilter( |
4 | const char *name = "AliEmcalEsdTrackFilter", | |
d0d15051 | 5 | const char *trackCuts = "Hybrid_LHC11h" |
f28a85be | 6 | ) |
e1bdcdfb | 7 | { |
8 | enum CutsType { | |
9 | kHybrid = 0, | |
10 | kTpcOnly = 1 | |
11 | }; | |
12 | ||
13 | enum DataSet { | |
e2b010c2 | 14 | kLHC10h = 0, |
15 | kLHC11a = 1, | |
16 | kLHC11c = 3, | |
17 | kLHC11d = 3, | |
18 | kLHC11h = 3 | |
e1bdcdfb | 19 | }; |
20 | ||
21 | CutsType cutsType = kHybrid; | |
22 | DataSet dataSet = kLHC11h; | |
23 | ||
24 | TString cutsLabel("hybrid tracks"); | |
25 | TString dataSetLabel("LHC11h"); | |
26 | ||
27 | TString strTrackCuts(trackCuts); | |
4289a713 | 28 | strTrackCuts.ToLower(); |
e1bdcdfb | 29 | |
4289a713 | 30 | if (strTrackCuts.Contains("hybrid")) { |
e1bdcdfb | 31 | cutsType = kHybrid; |
32 | } | |
4289a713 | 33 | else if (strTrackCuts.Contains("tpconly")) { |
e1bdcdfb | 34 | cutsType = kTpcOnly; |
35 | cutsLabel = "TPC only constrained tracks"; | |
36 | } | |
37 | else { | |
38 | ::Warning("AddTaskEmcalEsdTpcTrack", "Cuts type not recognized, will assume Hybrid"); | |
39 | } | |
40 | ||
4289a713 | 41 | if (strTrackCuts.Contains("lhc10h")) { |
e2b010c2 | 42 | dataSet = kLHC10h; |
e1bdcdfb | 43 | } |
4289a713 | 44 | else if (strTrackCuts.Contains("lhc11a") || strTrackCuts.Contains("lhc12a15a")) { |
e1bdcdfb | 45 | dataSet = kLHC11a; |
46 | dataSetLabel = "LHC11a"; | |
47 | } | |
843f944d | 48 | else if (strTrackCuts.Contains("lhc10e") || strTrackCuts.Contains("lhc10d") || |
49 | strTrackCuts.Contains("lhc10e20") || strTrackCuts.Contains("lhc10f6a") || | |
50 | strTrackCuts.Contains("lhc11a1a") || strTrackCuts.Contains("lhc11a1b") || | |
51 | strTrackCuts.Contains("lhc11a1c") || strTrackCuts.Contains("lhc11a1d") || | |
52 | strTrackCuts.Contains("lhc11a1e") || strTrackCuts.Contains("lhc11a1f") || | |
53 | strTrackCuts.Contains("lhc11a1g") || strTrackCuts.Contains("lhc11a1h") || | |
54 | strTrackCuts.Contains("lhc11a1i") || strTrackCuts.Contains("lhc11a1j")) { | |
55 | dataSet = kLHC11a; | |
56 | dataSetLabel = "LHC10e"; | |
57 | } | |
4289a713 | 58 | else if (strTrackCuts.Contains("lhc11c")) { |
e2b010c2 | 59 | dataSet = kLHC11c; |
60 | dataSetLabel = "LHC11c"; | |
61 | } | |
4289a713 | 62 | else if (strTrackCuts.Contains("lhc11d")) { |
e2b010c2 | 63 | dataSet = kLHC11d; |
64 | dataSetLabel = "LHC11d"; | |
65 | } | |
4289a713 | 66 | else if (strTrackCuts.Contains("lhc11h") || strTrackCuts.Contains("lhc12a15e")) |
a66ac13a | 67 | { |
e2b010c2 | 68 | dataSet = kLHC11h; |
69 | dataSetLabel = "LHC11h"; | |
70 | } | |
4289a713 | 71 | else if (strTrackCuts.Contains("lhc12g")) |
a66ac13a | 72 | { |
73 | dataSet = kLHC11h; | |
74 | dataSetLabel = "LHC12g"; | |
75 | } | |
4289a713 | 76 | else if (strTrackCuts.Contains("lhc13b")) |
77 | { | |
78 | dataSet = kLHC11h; | |
79 | dataSetLabel = "LHC13b"; | |
80 | } | |
81 | else if (strTrackCuts.Contains("lhc13c")) | |
82 | { | |
83 | dataSet = kLHC11h; | |
84 | dataSetLabel = "LHC13c"; | |
85 | } | |
843f944d | 86 | else if (strTrackCuts.Contains("lhc13d")) |
87 | { | |
88 | dataSet = kLHC11h; | |
89 | dataSetLabel = "LHC13d"; | |
90 | } | |
91 | else if (strTrackCuts.Contains("lhc13e")) | |
92 | { | |
93 | dataSet = kLHC11h; | |
94 | dataSetLabel = "LHC13e"; | |
95 | } | |
96 | else if (strTrackCuts.Contains("lhc13f")) | |
97 | { | |
98 | dataSet = kLHC11h; | |
99 | dataSetLabel = "LHC13f"; | |
100 | } | |
101 | else if (strTrackCuts.Contains("lhc13g")) | |
102 | { | |
103 | dataSet = kLHC11h; | |
104 | dataSetLabel = "LHC13g"; | |
105 | } | |
4289a713 | 106 | else if (strTrackCuts.Contains("lhc12a15f")) |
107 | { | |
108 | dataSet = kLHC11h; | |
109 | dataSetLabel = "LHC12a15f"; | |
110 | } | |
843f944d | 111 | else if (strTrackCuts.Contains("lhc13b4")) |
112 | { | |
113 | dataSet = kLHC11h; | |
114 | dataSetLabel = "LHC13b4"; | |
115 | } | |
ee69aaf0 | 116 | else if (strTrackCuts.Contains("lhc12a15g")) |
117 | { | |
118 | dataSet = kLHC11d; | |
119 | dataSetLabel = "LHC12a15g"; | |
120 | } | |
121 | else if (strTrackCuts.Contains("lhc12f2a")) | |
122 | { | |
123 | dataSet = kLHC11d; | |
124 | dataSetLabel = "LHC12f2a"; | |
125 | } | |
e1bdcdfb | 126 | else { |
127 | ::Warning("AddTaskEmcalEsdTpcTrack", "Dataset not recognized, will assume LHC11h"); | |
128 | } | |
129 | ||
25283b37 | 130 | // Get the pointer to the existing analysis manager via the static access method. |
131 | //============================================================================== | |
132 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
53dca394 | 133 | if (!mgr) { |
25283b37 | 134 | ::Error("AddTaskEmcalEsdTpcTrack", "No analysis manager to connect to."); |
135 | return NULL; | |
136 | } | |
137 | ||
138 | // Check the analysis type using the event handlers connected to the analysis manager. | |
139 | //============================================================================== | |
53dca394 | 140 | AliVEventHandler *evhand = mgr->GetInputEventHandler(); |
141 | if (!evhand) { | |
25283b37 | 142 | ::Error("AddTaskEmcalEsdTpcTrack", "This task requires an input event handler"); |
143 | return NULL; | |
144 | } | |
145 | ||
53dca394 | 146 | if (!evhand->InheritsFrom("AliESDInputHandler")) { |
147 | ::Info("AddTaskEmcalEsdTpcTrack", "This task is only needed for ESD analysis. No task added."); | |
148 | return NULL; | |
149 | } | |
150 | ||
25283b37 | 151 | //------------------------------------------------------- |
152 | // Init the task and do settings | |
153 | //------------------------------------------------------- | |
154 | ||
344cd45d | 155 | gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/CreateTrackCutsPWGJE.C"); |
c15f0298 | 156 | Bool_t includeNoITS = kFALSE; |
c8ff0efd | 157 | AliEmcalEsdTrackFilterTask *eTask = new AliEmcalEsdTrackFilterTask(); // default is TPC only tracks constrained to the vertex |
25283b37 | 158 | |
e2b010c2 | 159 | if ((dataSet == kLHC11c && cutsType == kHybrid) || |
160 | (dataSet == kLHC11d && cutsType == kHybrid) || | |
161 | (dataSet == kLHC11h && cutsType == kHybrid)) { | |
e1bdcdfb | 162 | /* hybrid track cuts*/ |
6231f841 | 163 | AliESDtrackCuts *cutsp = CreateTrackCutsPWGJE(10001008); //1000 adds SPD any requirement |
a66ac13a | 164 | AliESDtrackCuts *hybsp = CreateTrackCutsPWGJE(10041008); //1004 removes ITSrefit requirement from standard set |
e1bdcdfb | 165 | hybsp->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kOff); |
166 | eTask->SetTrackCuts(cutsp); | |
167 | eTask->SetHybridTrackCuts(hybsp); | |
168 | } | |
e2b010c2 | 169 | else if ((dataSet == kLHC10h && cutsType == kHybrid) || |
c72f3f6f | 170 | (dataSet == kLHC11a && cutsType == kHybrid)) { |
e1bdcdfb | 171 | /* hybrid track cuts*/ |
172 | AliESDtrackCuts *cutsp = CreateTrackCutsPWGJE(10001006); //1000 adds SPD any requirement | |
173 | AliESDtrackCuts *hybsp = CreateTrackCutsPWGJE(10041006); //1004 removes ITSrefit requirement from standard set | |
174 | hybsp->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kOff); | |
175 | eTask->SetTrackCuts(cutsp); | |
176 | eTask->SetHybridTrackCuts(hybsp); | |
c15f0298 | 177 | includeNoITS = kTRUE; |
e1bdcdfb | 178 | } |
344cd45d | 179 | |
25283b37 | 180 | eTask->SetTracksName(name); |
f12033ec | 181 | eTask->SetIncludeNoITS(includeNoITS); |
25283b37 | 182 | |
e1bdcdfb | 183 | cout << " *** Track selector task configured to select " << cutsLabel << " in dataset "<< dataSetLabel << " *** " << endl; |
25283b37 | 184 | |
185 | //------------------------------------------------------- | |
186 | // Final settings, pass to manager and set the containers | |
187 | //------------------------------------------------------- | |
25283b37 | 188 | mgr->AddTask(eTask); |
189 | ||
190 | // Create containers for input/output | |
344cd45d | 191 | AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer(); |
192 | mgr->ConnectInput(eTask, 0, cinput1); | |
25283b37 | 193 | |
194 | return eTask; | |
25283b37 | 195 | } |