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