]>
Commit | Line | Data |
---|---|---|
0601d71e | 1 | // $Id$ |
2 | ||
f28a85be | 3 | AliEmcalEsdTpcTrackTask* AddTaskEmcalEsdTpcTrack( |
f12033ec | 4 | const char *name = "TpcSpdVertexConstrainedTracks", |
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 | } | |
4289a713 | 48 | else if (strTrackCuts.Contains("lhc11c")) { |
e2b010c2 | 49 | dataSet = kLHC11c; |
50 | dataSetLabel = "LHC11c"; | |
51 | } | |
4289a713 | 52 | else if (strTrackCuts.Contains("lhc11d")) { |
e2b010c2 | 53 | dataSet = kLHC11d; |
54 | dataSetLabel = "LHC11d"; | |
55 | } | |
4289a713 | 56 | else if (strTrackCuts.Contains("lhc11h") || strTrackCuts.Contains("lhc12a15e")) |
a66ac13a | 57 | { |
e2b010c2 | 58 | dataSet = kLHC11h; |
59 | dataSetLabel = "LHC11h"; | |
60 | } | |
4289a713 | 61 | else if (strTrackCuts.Contains("lhc12g")) |
a66ac13a | 62 | { |
63 | dataSet = kLHC11h; | |
64 | dataSetLabel = "LHC12g"; | |
65 | } | |
4289a713 | 66 | else if (strTrackCuts.Contains("lhc13b")) |
67 | { | |
68 | dataSet = kLHC11h; | |
69 | dataSetLabel = "LHC13b"; | |
70 | } | |
71 | else if (strTrackCuts.Contains("lhc13c")) | |
72 | { | |
73 | dataSet = kLHC11h; | |
74 | dataSetLabel = "LHC13c"; | |
75 | } | |
76 | else if (strTrackCuts.Contains("lhc12a15f")) | |
77 | { | |
78 | dataSet = kLHC11h; | |
79 | dataSetLabel = "LHC12a15f"; | |
80 | } | |
ee69aaf0 | 81 | else if (strTrackCuts.Contains("lhc12a15g")) |
82 | { | |
83 | dataSet = kLHC11d; | |
84 | dataSetLabel = "LHC12a15g"; | |
85 | } | |
86 | else if (strTrackCuts.Contains("lhc12f2a")) | |
87 | { | |
88 | dataSet = kLHC11d; | |
89 | dataSetLabel = "LHC12f2a"; | |
90 | } | |
e1bdcdfb | 91 | else { |
92 | ::Warning("AddTaskEmcalEsdTpcTrack", "Dataset not recognized, will assume LHC11h"); | |
93 | } | |
94 | ||
25283b37 | 95 | // Get the pointer to the existing analysis manager via the static access method. |
96 | //============================================================================== | |
97 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
53dca394 | 98 | if (!mgr) { |
25283b37 | 99 | ::Error("AddTaskEmcalEsdTpcTrack", "No analysis manager to connect to."); |
100 | return NULL; | |
101 | } | |
102 | ||
103 | // Check the analysis type using the event handlers connected to the analysis manager. | |
104 | //============================================================================== | |
53dca394 | 105 | AliVEventHandler *evhand = mgr->GetInputEventHandler(); |
106 | if (!evhand) { | |
25283b37 | 107 | ::Error("AddTaskEmcalEsdTpcTrack", "This task requires an input event handler"); |
108 | return NULL; | |
109 | } | |
110 | ||
53dca394 | 111 | if (!evhand->InheritsFrom("AliESDInputHandler")) { |
112 | ::Info("AddTaskEmcalEsdTpcTrack", "This task is only needed for ESD analysis. No task added."); | |
113 | return NULL; | |
114 | } | |
115 | ||
25283b37 | 116 | //------------------------------------------------------- |
117 | // Init the task and do settings | |
118 | //------------------------------------------------------- | |
119 | ||
344cd45d | 120 | gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/CreateTrackCutsPWGJE.C"); |
c15f0298 | 121 | Bool_t includeNoITS = kFALSE; |
e1bdcdfb | 122 | AliEmcalEsdTpcTrackTask *eTask = new AliEmcalEsdTpcTrackTask(); // default is TPC only tracks constrained to the vertex |
25283b37 | 123 | |
e2b010c2 | 124 | if ((dataSet == kLHC11c && cutsType == kHybrid) || |
125 | (dataSet == kLHC11d && cutsType == kHybrid) || | |
126 | (dataSet == kLHC11h && cutsType == kHybrid)) { | |
e1bdcdfb | 127 | /* hybrid track cuts*/ |
6231f841 | 128 | AliESDtrackCuts *cutsp = CreateTrackCutsPWGJE(10001008); //1000 adds SPD any requirement |
a66ac13a | 129 | AliESDtrackCuts *hybsp = CreateTrackCutsPWGJE(10041008); //1004 removes ITSrefit requirement from standard set |
e1bdcdfb | 130 | hybsp->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kOff); |
131 | eTask->SetTrackCuts(cutsp); | |
132 | eTask->SetHybridTrackCuts(hybsp); | |
133 | } | |
e2b010c2 | 134 | else if ((dataSet == kLHC10h && cutsType == kHybrid) || |
c72f3f6f | 135 | (dataSet == kLHC11a && cutsType == kHybrid)) { |
e1bdcdfb | 136 | /* hybrid track cuts*/ |
137 | AliESDtrackCuts *cutsp = CreateTrackCutsPWGJE(10001006); //1000 adds SPD any requirement | |
138 | AliESDtrackCuts *hybsp = CreateTrackCutsPWGJE(10041006); //1004 removes ITSrefit requirement from standard set | |
139 | hybsp->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kOff); | |
140 | eTask->SetTrackCuts(cutsp); | |
141 | eTask->SetHybridTrackCuts(hybsp); | |
c15f0298 | 142 | includeNoITS = kTRUE; |
e1bdcdfb | 143 | } |
344cd45d | 144 | |
25283b37 | 145 | eTask->SetTracksName(name); |
f12033ec | 146 | eTask->SetIncludeNoITS(includeNoITS); |
25283b37 | 147 | |
e1bdcdfb | 148 | cout << " *** Track selector task configured to select " << cutsLabel << " in dataset "<< dataSetLabel << " *** " << endl; |
25283b37 | 149 | |
150 | //------------------------------------------------------- | |
151 | // Final settings, pass to manager and set the containers | |
152 | //------------------------------------------------------- | |
25283b37 | 153 | mgr->AddTask(eTask); |
154 | ||
155 | // Create containers for input/output | |
344cd45d | 156 | AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer(); |
157 | mgr->ConnectInput(eTask, 0, cinput1); | |
25283b37 | 158 | |
159 | return eTask; | |
25283b37 | 160 | } |