]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/EMCAL/macros/AddTaskEmcalEsdTrackFilter.C
Add ptr to original AliVTrack.
[u/mrichter/AliRoot.git] / PWG / EMCAL / macros / AddTaskEmcalEsdTrackFilter.C
CommitLineData
0601d71e 1// $Id$
2
c8ff0efd 3AliEmcalEsdTrackFilterTask* 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}