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